@jotforminc/dnd-builder 2.2.1 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/lib/cjs/components/Builder/Builder.js +10 -1
- package/lib/cjs/components/Builder/Builder.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/cjs/components/TextEditor/QuillEditor.js +9 -3
- package/lib/cjs/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/cjs/components/TextEditor/TextEditor.js +2 -2
- package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/cjs/styles/_jfReportsPages.scss +2 -1
- package/lib/cjs/utils/builderContext.js +20 -4
- package/lib/cjs/utils/builderContext.js.map +1 -1
- package/lib/esm/components/Builder/Builder.js +10 -1
- package/lib/esm/components/Builder/Builder.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
- package/lib/esm/components/TextEditor/QuillEditor.js +8 -3
- package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/esm/components/TextEditor/TextEditor.js +2 -2
- package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/esm/styles/_jfReportsPages.scss +2 -1
- package/lib/esm/utils/builderContext.js +20 -4
- package/lib/esm/utils/builderContext.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
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
|
+
### [2.4.2](https://github.com/jotform/dnd-builder/compare/v2.4.1...v2.4.2) (2022-07-20)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **context-menu:** fix context menu spacing ([e802453](https://github.com/jotform/dnd-builder/commit/e802453919842cf4d9f4a9ec928b093a287c0f3b))
|
|
11
|
+
|
|
12
|
+
### [2.4.1](https://github.com/jotform/dnd-builder/compare/v2.4.0...v2.4.1) (2022-06-29)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **panels:** return close button ([9094afe](https://github.com/jotform/dnd-builder/commit/9094afe680b32720441e51949665b24b550d96eb))
|
|
18
|
+
|
|
19
|
+
## [2.4.0](https://github.com/jotform/dnd-builder/compare/v2.2.1...v2.4.0) (2022-06-29)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* **buildercontext:** add callback for right panel ([1dde660](https://github.com/jotform/dnd-builder/commit/1dde66089df4846ff973fcc99620cec6f3cf6e82))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* hide toggle panel buttons when panel is open ([3081e80](https://github.com/jotform/dnd-builder/commit/3081e8000613acb68d42837fb99b5bfd8d8ec2b2))
|
|
30
|
+
* **TextEditor:** purify about content ([0fcad20](https://github.com/jotform/dnd-builder/commit/0fcad2075116cf5365fc42facbd5aa6adae25db8))
|
|
31
|
+
|
|
32
|
+
### [2.3.0](https://github.com/jotform/dnd-builder/compare/v2.2.1...v2.3.0) (2022-06-24)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* **RightPanel**: hide the right panel toggle when a panel is already open
|
|
38
|
+
* **SlidesPanel**: hide the slides panel when the panel is already open
|
|
39
|
+
|
|
5
40
|
### [2.2.1](https://github.com/jotform/dnd-builder/compare/v2.0.2...v2.2.1) (2022-06-24)
|
|
6
41
|
|
|
7
42
|
|
|
@@ -22,7 +22,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
22
22
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
23
23
|
var objectHash__default = /*#__PURE__*/_interopDefaultLegacy(objectHash);
|
|
24
24
|
|
|
25
|
-
var _excluded = ["acceptedItems", "additionalPageItems", "disableInteraction", "itemAccessor", "lastScrollPosition", "leftPanelConfig", "onAnEventTrigger", "onItemAdd", "onItemChange", "onItemMove", "onItemRemove", "onItemResize", "onItemsMove", "onPageAdd", "onPageChange", "onPageDuplicate", "onPageOrdersChange", "onPageRemove", "onSettingChange", "pages", "settings", "theme", "useExperimentalFeatures"];
|
|
25
|
+
var _excluded = ["acceptedItems", "additionalPageItems", "disableInteraction", "itemAccessor", "lastScrollPosition", "leftPanelConfig", "onAnEventTrigger", "onItemAdd", "onItemChange", "onItemMove", "onItemRemove", "onItemResize", "onItemsMove", "onPageAdd", "onPageChange", "onPageDuplicate", "onPageOrdersChange", "onPageRemove", "onRightPanelsToggled", "onSettingChange", "pages", "settings", "theme", "useExperimentalFeatures"];
|
|
26
26
|
|
|
27
27
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
28
28
|
|
|
@@ -47,6 +47,7 @@ var Builder = function Builder(_ref) {
|
|
|
47
47
|
onPageDuplicate = _ref.onPageDuplicate,
|
|
48
48
|
onPageOrdersChange = _ref.onPageOrdersChange,
|
|
49
49
|
onPageRemove = _ref.onPageRemove,
|
|
50
|
+
onRightPanelsToggled = _ref.onRightPanelsToggled,
|
|
50
51
|
onSettingChange = _ref.onSettingChange,
|
|
51
52
|
pages = _ref.pages,
|
|
52
53
|
settings = _ref.settings,
|
|
@@ -57,6 +58,7 @@ var Builder = function Builder(_ref) {
|
|
|
57
58
|
var hashCode = objectHash__default['default'](otherProps);
|
|
58
59
|
return /*#__PURE__*/jsxRuntime.jsx(React.StrictMode, {
|
|
59
60
|
children: /*#__PURE__*/jsxRuntime.jsx(builderContext.BuilderProvider, {
|
|
61
|
+
onRightPanelsToggled: onRightPanelsToggled,
|
|
60
62
|
children: /*#__PURE__*/jsxRuntime.jsx(propContext.PropProvider, {
|
|
61
63
|
acceptedItems: acceptedItems,
|
|
62
64
|
disableInteraction: disableInteraction,
|
|
@@ -167,6 +169,12 @@ Builder.propTypes = {
|
|
|
167
169
|
/** Function called upon removing a page */
|
|
168
170
|
onPageRemove: PropTypes__default['default'].func,
|
|
169
171
|
|
|
172
|
+
/** Function called when the slides or the right panel is
|
|
173
|
+
* toggled takes a boolean value to indicate whether or
|
|
174
|
+
* not the panel is toggled open.
|
|
175
|
+
*/
|
|
176
|
+
onRightPanelsToggled: PropTypes__default['default'].func,
|
|
177
|
+
|
|
170
178
|
/** Function called upon editing a general report setting */
|
|
171
179
|
onSettingChange: PropTypes__default['default'].func,
|
|
172
180
|
|
|
@@ -199,6 +207,7 @@ Builder.defaultProps = {
|
|
|
199
207
|
onPageDuplicate: function onPageDuplicate() {},
|
|
200
208
|
onPageOrdersChange: function onPageOrdersChange() {},
|
|
201
209
|
onPageRemove: function onPageRemove() {},
|
|
210
|
+
onRightPanelsToggled: function onRightPanelsToggled() {},
|
|
202
211
|
onSettingChange: function onSettingChange() {},
|
|
203
212
|
pages: [],
|
|
204
213
|
settings: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import { StrictMode } from 'react';\nimport PropTypes from 'prop-types';\nimport objectHash from 'object-hash';\nimport DndWrapper from './DndWrapper';\nimport { BuilderProvider } from '../../utils/builderContext';\nimport { PropProvider } from '../../utils/propContext';\nimport ReportWrapper from '../ReportWrapper';\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';\n\nimport 'intersection-observer';\nimport '../../styles/jfReportsBundle.scss';\n\nconst Builder = ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n itemAccessor,\n lastScrollPosition,\n leftPanelConfig,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n onSettingChange,\n pages,\n settings,\n theme,\n useExperimentalFeatures,\n ...otherProps\n}) => {\n const hashCode = objectHash(otherProps);\n\n return (\n <StrictMode>\n <BuilderProvider>\n <PropProvider\n acceptedItems={acceptedItems}\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n settings={settings}\n useExperimentalFeatures={useExperimentalFeatures}\n >\n <ReportWrapper\n mode=\"customize\"\n pageCount={pages.length}\n theme={theme}\n >\n <DndWrapper>\n <LeftPanel\n leftPanelConfig={leftPanelConfig}\n onItemAdd={onItemAdd}\n />\n <Scene\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n lastScrollPosition={lastScrollPosition}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemMove={onItemMove}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n onItemsMove={onItemsMove}\n onPageAdd={onPageAdd}\n onPageChange={onPageChange}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n </DndWrapper>\n <RightPanel\n itemAccessor={itemAccessor}\n onItemChange={onItemChange}\n onPageChange={onPageChange}\n onSettingChange={onSettingChange}\n pages={pages}\n />\n <SlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n {useExperimentalFeatures && (\n <AllSlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n )}\n </ReportWrapper>\n </PropProvider>\n </BuilderProvider>\n </StrictMode>\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 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 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\nBuilder.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n itemAccessor: () => {},\n lastScrollPosition: 0,\n leftPanelConfig: [],\n onAnEventTrigger: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemMove: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n onItemsMove: () => {},\n onPageAdd: () => {},\n onPageChange: () => {},\n onPageDuplicate: () => {},\n onPageOrdersChange: () => {},\n onPageRemove: () => {},\n onSettingChange: () => {},\n pages: [],\n settings: {},\n theme: 'lightMode',\n useExperimentalFeatures: false,\n};\n\nexport default Builder;\n"],"names":["Builder","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","lastScrollPosition","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onSettingChange","pages","settings","theme","useExperimentalFeatures","otherProps","hashCode","objectHash","_jsx","StrictMode","BuilderProvider","PropProvider","_jsxs","length","propTypes","PropTypes","shape","arrayOf","node","string","func","number","leftPanelConfigPropType","oneOf","bool","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import { StrictMode } from 'react';\nimport PropTypes from 'prop-types';\nimport objectHash from 'object-hash';\nimport DndWrapper from './DndWrapper';\nimport { BuilderProvider } from '../../utils/builderContext';\nimport { PropProvider } from '../../utils/propContext';\nimport ReportWrapper from '../ReportWrapper';\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';\n\nimport 'intersection-observer';\nimport '../../styles/jfReportsBundle.scss';\n\nconst Builder = ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n itemAccessor,\n lastScrollPosition,\n leftPanelConfig,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n onRightPanelsToggled,\n onSettingChange,\n pages,\n settings,\n theme,\n useExperimentalFeatures,\n ...otherProps\n}) => {\n const hashCode = objectHash(otherProps);\n\n return (\n <StrictMode>\n <BuilderProvider onRightPanelsToggled={onRightPanelsToggled}>\n <PropProvider\n acceptedItems={acceptedItems}\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n settings={settings}\n useExperimentalFeatures={useExperimentalFeatures}\n >\n <ReportWrapper\n mode=\"customize\"\n pageCount={pages.length}\n theme={theme}\n >\n <DndWrapper>\n <LeftPanel\n leftPanelConfig={leftPanelConfig}\n onItemAdd={onItemAdd}\n />\n <Scene\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n lastScrollPosition={lastScrollPosition}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemMove={onItemMove}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n onItemsMove={onItemsMove}\n onPageAdd={onPageAdd}\n onPageChange={onPageChange}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n </DndWrapper>\n <RightPanel\n itemAccessor={itemAccessor}\n onItemChange={onItemChange}\n onPageChange={onPageChange}\n onSettingChange={onSettingChange}\n pages={pages}\n />\n <SlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n {useExperimentalFeatures && (\n <AllSlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n )}\n </ReportWrapper>\n </PropProvider>\n </BuilderProvider>\n </StrictMode>\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 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\nBuilder.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n itemAccessor: () => { },\n lastScrollPosition: 0,\n leftPanelConfig: [],\n onAnEventTrigger: () => { },\n onItemAdd: () => { },\n onItemChange: () => { },\n onItemMove: () => { },\n onItemRemove: () => { },\n onItemResize: () => { },\n onItemsMove: () => { },\n onPageAdd: () => { },\n onPageChange: () => { },\n onPageDuplicate: () => { },\n onPageOrdersChange: () => { },\n onPageRemove: () => { },\n onRightPanelsToggled: () => { },\n onSettingChange: () => { },\n pages: [],\n settings: {},\n theme: 'lightMode',\n useExperimentalFeatures: false,\n};\n\nexport default Builder;\n"],"names":["Builder","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","lastScrollPosition","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onRightPanelsToggled","onSettingChange","pages","settings","theme","useExperimentalFeatures","otherProps","hashCode","objectHash","_jsx","StrictMode","BuilderProvider","PropProvider","_jsxs","length","propTypes","PropTypes","shape","arrayOf","node","string","func","number","leftPanelConfigPropType","oneOf","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBMA,OAAO,GAAG,SAAVA,OAAU,OA0BV;AAAA,MAzBJC,aAyBI,QAzBJA,aAyBI;AAAA,MAxBJC,mBAwBI,QAxBJA,mBAwBI;AAAA,MAvBJC,kBAuBI,QAvBJA,kBAuBI;AAAA,MAtBJC,YAsBI,QAtBJA,YAsBI;AAAA,MArBJC,kBAqBI,QArBJA,kBAqBI;AAAA,MApBJC,eAoBI,QApBJA,eAoBI;AAAA,MAnBJC,gBAmBI,QAnBJA,gBAmBI;AAAA,MAlBJC,SAkBI,QAlBJA,SAkBI;AAAA,MAjBJC,YAiBI,QAjBJA,YAiBI;AAAA,MAhBJC,UAgBI,QAhBJA,UAgBI;AAAA,MAfJC,YAeI,QAfJA,YAeI;AAAA,MAdJC,YAcI,QAdJA,YAcI;AAAA,MAbJC,WAaI,QAbJA,WAaI;AAAA,MAZJC,SAYI,QAZJA,SAYI;AAAA,MAXJC,YAWI,QAXJA,YAWI;AAAA,MAVJC,eAUI,QAVJA,eAUI;AAAA,MATJC,kBASI,QATJA,kBASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,oBAOI,QAPJA,oBAOI;AAAA,MANJC,eAMI,QANJA,eAMI;AAAA,MALJC,KAKI,QALJA,KAKI;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJC,KAGI,QAHJA,KAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADDC,UACC;;AACJ,MAAMC,QAAQ,GAAGC,8BAAU,CAACF,UAAD,CAA3B;AAEA,sBACEG,eAACC,gBAAD;AAAA,2BACED,eAACE,8BAAD;AAAiB,MAAA,oBAAoB,EAAEX,oBAAvC;AAAA,6BACES,eAACG,wBAAD;AACE,QAAA,aAAa,EAAE9B,aADjB;AAEE,QAAA,kBAAkB,EAAEE,kBAFtB;AAGE,QAAA,gBAAgB,EAAEI,gBAHpB;AAIE,QAAA,QAAQ,EAAEe,QAJZ;AAKE,QAAA,uBAAuB,EAAEE,uBAL3B;AAAA,+BAOEQ,gBAAC,aAAD;AACE,UAAA,IAAI,EAAC,WADP;AAEE,UAAA,SAAS,EAAEX,KAAK,CAACY,MAFnB;AAGE,UAAA,KAAK,EAAEV,KAHT;AAAA,kCAKES,gBAAC,UAAD;AAAA,oCACEJ,eAAC,SAAD;AACE,cAAA,eAAe,EAAEtB,eADnB;AAEE,cAAA,SAAS,EAAEE;AAFb,cADF,eAKEoB,eAAC,KAAD;AACE,cAAA,mBAAmB,EAAE1B,mBADvB;AAEE,cAAA,QAAQ,EAAEwB,QAFZ;AAGE,cAAA,YAAY,EAAEtB,YAHhB;AAIE,cAAA,kBAAkB,EAAEC,kBAJtB;AAKE,cAAA,SAAS,EAAEG,SALb;AAME,cAAA,YAAY,EAAEC,YANhB;AAOE,cAAA,UAAU,EAAEC,UAPd;AAQE,cAAA,YAAY,EAAEC,YARhB;AASE,cAAA,YAAY,EAAEC,YAThB;AAUE,cAAA,WAAW,EAAEC,WAVf;AAWE,cAAA,SAAS,EAAEC,SAXb;AAYE,cAAA,YAAY,EAAEC,YAZhB;AAaE,cAAA,eAAe,EAAEC,eAbnB;AAcE,cAAA,kBAAkB,EAAEC,kBAdtB;AAeE,cAAA,YAAY,EAAEC,YAfhB;AAgBE,cAAA,KAAK,EAAEG;AAhBT,cALF;AAAA,YALF,eA6BEO,eAAC,UAAD;AACE,YAAA,YAAY,EAAExB,YADhB;AAEE,YAAA,YAAY,EAAEK,YAFhB;AAGE,YAAA,YAAY,EAAEM,YAHhB;AAIE,YAAA,eAAe,EAAEK,eAJnB;AAKE,YAAA,KAAK,EAAEC;AALT,YA7BF,eAoCEO,eAAC,WAAD;AACE,YAAA,mBAAmB,EAAE1B,mBADvB;AAEE,YAAA,QAAQ,EAAEwB,QAFZ;AAGE,YAAA,YAAY,EAAEtB,YAHhB;AAIE,YAAA,SAAS,EAAEU,SAJb;AAKE,YAAA,eAAe,EAAEE,eALnB;AAME,YAAA,kBAAkB,EAAEC,kBANtB;AAOE,YAAA,YAAY,EAAEC,YAPhB;AAQE,YAAA,KAAK,EAAEG;AART,YApCF,EA8CGG,uBAAuB,iBACtBI,eAAC,cAAD;AACE,YAAA,mBAAmB,EAAE1B,mBADvB;AAEE,YAAA,QAAQ,EAAEwB,QAFZ;AAGE,YAAA,YAAY,EAAEtB,YAHhB;AAIE,YAAA,SAAS,EAAEU,SAJb;AAKE,YAAA,eAAe,EAAEE,eALnB;AAME,YAAA,kBAAkB,EAAEC,kBANtB;AAOE,YAAA,YAAY,EAAEC,YAPhB;AAQE,YAAA,KAAK,EAAEG;AART,YA/CJ;AAAA;AAPF;AADF;AADF,IADF;AAyED;;AAEDrB,OAAO,CAACkC,SAAR,GAAoB;AAClB;AACAjC,EAAAA,aAAa,EAAEkC,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CAFG;;AAGlB;AACAlC,EAAAA,mBAAmB,EAAEiC,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACG,IAA5B,CAJH;AAKlBnC,EAAAA,kBAAkB,EAAEgC,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACI,MAA5B,CALF;;AAMlB;AACAnC,EAAAA,YAAY,EAAE+B,6BAAS,CAACK,IAPN;AAQlBnC,EAAAA,kBAAkB,EAAE8B,6BAAS,CAACM,MARZ;AASlBnC,EAAAA,eAAe,EAAEoC,iCATC;;AAUlB;AACAnC,EAAAA,gBAAgB,EAAE4B,6BAAS,CAACK,IAXV;;AAYlB;AACAhC,EAAAA,SAAS,EAAE2B,6BAAS,CAACK,IAbH;;AAclB;AACA/B,EAAAA,YAAY,EAAE0B,6BAAS,CAACK,IAfN;;AAgBlB;AACA9B,EAAAA,UAAU,EAAEyB,6BAAS,CAACK,IAjBJ;;AAkBlB;AACA7B,EAAAA,YAAY,EAAEwB,6BAAS,CAACK,IAnBN;;AAoBlB;AACA5B,EAAAA,YAAY,EAAEuB,6BAAS,CAACK,IArBN;AAsBlB3B,EAAAA,WAAW,EAAEsB,6BAAS,CAACK,IAtBL;;AAuBlB;AACA1B,EAAAA,SAAS,EAAEqB,6BAAS,CAACK,IAxBH;;AAyBlB;AACAzB,EAAAA,YAAY,EAAEoB,6BAAS,CAACK,IA1BN;;AA2BlB;AACAxB,EAAAA,eAAe,EAAEmB,6BAAS,CAACK,IA5BT;;AA6BlB;AACAvB,EAAAA,kBAAkB,EAAEkB,6BAAS,CAACK,IA9BZ;;AA+BlB;AACAtB,EAAAA,YAAY,EAAEiB,6BAAS,CAACK,IAhCN;;AAiClB;AACF;AACA;AACA;AACErB,EAAAA,oBAAoB,EAAEgB,6BAAS,CAACK,IArCd;;AAsClB;AACApB,EAAAA,eAAe,EAAEe,6BAAS,CAACK,IAvCT;;AAwClB;AACAnB,EAAAA,KAAK,EAAEc,6BAAS,CAACE,OAAV,CACLF,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CADK,CAzCW;;AA4ClB;AACAd,EAAAA,QAAQ,EAAEa,6BAAS,CAACC,KAAV,CAAgB,EAAhB,CA7CQ;;AA8ClB;AACAb,EAAAA,KAAK,EAAEY,6BAAS,CAACQ,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,CA/CW;AAgDlBnB,EAAAA,uBAAuB,EAAEW,6BAAS,CAACS;AAhDjB,CAApB;AAmDA5C,OAAO,CAAC6C,YAAR,GAAuB;AACrB5C,EAAAA,aAAa,EAAE,EADM;AAErBC,EAAAA,mBAAmB,EAAE,EAFA;AAGrBC,EAAAA,kBAAkB,EAAE,EAHC;AAIrBC,EAAAA,YAAY,EAAE,wBAAM,EAJC;AAKrBC,EAAAA,kBAAkB,EAAE,CALC;AAMrBC,EAAAA,eAAe,EAAE,EANI;AAOrBC,EAAAA,gBAAgB,EAAE,4BAAM,EAPH;AAQrBC,EAAAA,SAAS,EAAE,qBAAM,EARI;AASrBC,EAAAA,YAAY,EAAE,wBAAM,EATC;AAUrBC,EAAAA,UAAU,EAAE,sBAAM,EAVG;AAWrBC,EAAAA,YAAY,EAAE,wBAAM,EAXC;AAYrBC,EAAAA,YAAY,EAAE,wBAAM,EAZC;AAarBC,EAAAA,WAAW,EAAE,uBAAM,EAbE;AAcrBC,EAAAA,SAAS,EAAE,qBAAM,EAdI;AAerBC,EAAAA,YAAY,EAAE,wBAAM,EAfC;AAgBrBC,EAAAA,eAAe,EAAE,2BAAM,EAhBF;AAiBrBC,EAAAA,kBAAkB,EAAE,8BAAM,EAjBL;AAkBrBC,EAAAA,YAAY,EAAE,wBAAM,EAlBC;AAmBrBC,EAAAA,oBAAoB,EAAE,gCAAM,EAnBP;AAoBrBC,EAAAA,eAAe,EAAE,2BAAM,EApBF;AAqBrBC,EAAAA,KAAK,EAAE,EArBc;AAsBrBC,EAAAA,QAAQ,EAAE,EAtBW;AAuBrBC,EAAAA,KAAK,EAAE,WAvBc;AAwBrBC,EAAAA,uBAAuB,EAAE;AAxBJ,CAAvB;;;;"}
|
|
@@ -199,7 +199,7 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
199
199
|
children: /*#__PURE__*/jsxRuntime.jsxs(Panel, {
|
|
200
200
|
ref: panelRef,
|
|
201
201
|
additionalClassName: panelAdditionalClassName,
|
|
202
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(RightPanelToggler, {}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
202
|
+
children: [isSlidesPanelOpen ? null : /*#__PURE__*/jsxRuntime.jsx(RightPanelToggler, {}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
203
203
|
className: "toolItemWrapper f-height d-flex dir-col",
|
|
204
204
|
children: /*#__PURE__*/jsxRuntime.jsxs(Section, {
|
|
205
205
|
title: title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n memo,\n useEffect,\n useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\nimport { capitalize } from '../../../utils/string';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = ({\n itemAccessor,\n onItemChange,\n onPageChange,\n onSettingChange,\n pages,\n}) => {\n const {\n activeTab,\n editedElement,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setActiveElement,\n setActiveTab,\n setIsRightPanelOpen,\n } = useBuilderContext();\n const { acceptedItems, settings: layoutSettings } = usePropContext();\n const panelRef = useRef(null);\n const { LAYOUT_SETTINGS, PAGE_SETTINGS, SETTINGS } = useTranslatedTexts();\n const settingMap = {\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n return `${capitalize(acceptedItems[item.itemType].title || item.itemType)} ${SETTINGS}`;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, setActiveElement, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => PAGE_SETTINGS,\n updater: onPageChange,\n },\n };\n\n let editedEl;\n let editedElId;\n let selectedItem;\n let element;\n let updateFunc;\n let title;\n\n const panelConfig = () => {\n selectedItem = editedEl.details(editedElId);\n element = editedEl.settings(selectedItem);\n updateFunc = editedEl.updater;\n title = editedEl.title(selectedItem);\n };\n\n const fallback = () => {\n setActiveElement(null);\n editedEl = settingMap.l_;\n editedElId = editedElement.substr(2);\n panelConfig();\n };\n\n try {\n editedEl = settingMap[editedElement.substr(0, 2)];\n editedElId = editedElement.substr(2);\n const checkSelectedItem = editedEl.details(editedElId);\n if (Object.keys(checkSelectedItem).length === 0) {\n fallback();\n } else {\n panelConfig();\n }\n } catch (e) {\n fallback();\n }\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n <RightPanelToggler />\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n itemAccessor={itemAccessor}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nRightPanel.propTypes = {\n itemAccessor: PropTypes.func,\n onItemChange: PropTypes.func,\n onPageChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nRightPanel.defaultProps = {\n itemAccessor: () => {},\n onItemChange: () => {},\n onPageChange: () => {},\n onSettingChange: () => {},\n pages: [],\n};\n\nexport default memo(RightPanel);\n"],"names":["exceptionalClasses","RightPanel","itemAccessor","onItemChange","onPageChange","onSettingChange","pages","useBuilderContext","activeTab","editedElement","isRightPanelOpen","isSlidesPanelOpen","setActiveElement","setActiveTab","setIsRightPanelOpen","usePropContext","acceptedItems","layoutSettings","settings","panelRef","useRef","useTranslatedTexts","LAYOUT_SETTINGS","PAGE_SETTINGS","SETTINGS","settingMap","i_","details","id","item","findItemById","itemType","title","capitalize","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","editedEl","editedElId","selectedItem","element","updateFunc","panelConfig","fallback","substr","checkSelectedItem","Object","keys","length","e","tabsWithSettings","getTabsWithSettings","tabs","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs","propTypes","PropTypes","func","arrayOf","shape","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n memo,\n useEffect,\n useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\nimport { capitalize } from '../../../utils/string';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = ({\n itemAccessor,\n onItemChange,\n onPageChange,\n onSettingChange,\n pages,\n}) => {\n const {\n activeTab,\n editedElement,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setActiveElement,\n setActiveTab,\n setIsRightPanelOpen,\n } = useBuilderContext();\n const { acceptedItems, settings: layoutSettings } = usePropContext();\n const panelRef = useRef(null);\n const { LAYOUT_SETTINGS, PAGE_SETTINGS, SETTINGS } = useTranslatedTexts();\n const settingMap = {\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n return `${capitalize(acceptedItems[item.itemType].title || item.itemType)} ${SETTINGS}`;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, setActiveElement, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => PAGE_SETTINGS,\n updater: onPageChange,\n },\n };\n\n let editedEl;\n let editedElId;\n let selectedItem;\n let element;\n let updateFunc;\n let title;\n\n const panelConfig = () => {\n selectedItem = editedEl.details(editedElId);\n element = editedEl.settings(selectedItem);\n updateFunc = editedEl.updater;\n title = editedEl.title(selectedItem);\n };\n\n const fallback = () => {\n setActiveElement(null);\n editedEl = settingMap.l_;\n editedElId = editedElement.substr(2);\n panelConfig();\n };\n\n try {\n editedEl = settingMap[editedElement.substr(0, 2)];\n editedElId = editedElement.substr(2);\n const checkSelectedItem = editedEl.details(editedElId);\n if (Object.keys(checkSelectedItem).length === 0) {\n fallback();\n } else {\n panelConfig();\n }\n } catch (e) {\n fallback();\n }\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n itemAccessor={itemAccessor}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nRightPanel.propTypes = {\n itemAccessor: PropTypes.func,\n onItemChange: PropTypes.func,\n onPageChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nRightPanel.defaultProps = {\n itemAccessor: () => { },\n onItemChange: () => { },\n onPageChange: () => { },\n onSettingChange: () => { },\n pages: [],\n};\n\nexport default memo(RightPanel);\n"],"names":["exceptionalClasses","RightPanel","itemAccessor","onItemChange","onPageChange","onSettingChange","pages","useBuilderContext","activeTab","editedElement","isRightPanelOpen","isSlidesPanelOpen","setActiveElement","setActiveTab","setIsRightPanelOpen","usePropContext","acceptedItems","layoutSettings","settings","panelRef","useRef","useTranslatedTexts","LAYOUT_SETTINGS","PAGE_SETTINGS","SETTINGS","settingMap","i_","details","id","item","findItemById","itemType","title","capitalize","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","editedEl","editedElId","selectedItem","element","updateFunc","panelConfig","fallback","substr","checkSelectedItem","Object","keys","length","e","tabsWithSettings","getTabsWithSettings","tabs","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs","propTypes","PropTypes","func","arrayOf","shape","defaultProps","memo"],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ var SlidesPanel = function SlidesPanel(_ref) {
|
|
|
103
103
|
return /*#__PURE__*/jsxRuntime.jsxs(Panel, {
|
|
104
104
|
additionalClassName: panelAdditionalClassName,
|
|
105
105
|
onAnimationEnd: onAnimationEnd,
|
|
106
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(SlidesPanelToggler, {
|
|
106
|
+
children: [isRightPanelOpen ? null : /*#__PURE__*/jsxRuntime.jsx(SlidesPanelToggler, {
|
|
107
107
|
onClosePanel: onClosePanel
|
|
108
108
|
}), (isSlidesPanelOpen || !isSlidesPanelOpen && !animationEnd) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
109
109
|
className: "toolItemWrapper f-height d-flex dir-col",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { memo, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FixedSizeList } from 'react-window';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { arrayMove } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport Button from '../../Settings/Button';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n onPageAdd,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const {\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsAllSlidesPanelOpen,\n setIsSlidesPanelOpen,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings: reportSettings,\n useExperimentalFeatures,\n } = usePropContext();\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }, nativeEvent, ref) => {\n const instance = ref.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n\n list.forceUpdate();\n }, [pages]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n <SlidesPanelToggler onClosePanel={onClosePanel}
|
|
1
|
+
{"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { memo, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FixedSizeList } from 'react-window';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { arrayMove } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport Button from '../../Settings/Button';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n onPageAdd,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const {\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsAllSlidesPanelOpen,\n setIsSlidesPanelOpen,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings: reportSettings,\n useExperimentalFeatures,\n } = usePropContext();\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }, nativeEvent, ref) => {\n const instance = ref.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n\n list.forceUpdate();\n }, [pages]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n {isRightPanelOpen\n ? null\n : <SlidesPanelToggler onClosePanel={onClosePanel} />}\n {(isSlidesPanelOpen || (!isSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section\n additionalComponent={useExperimentalFeatures ? (\n <Button\n classNames=\"jfReportButton isAccent showAll\"\n icon=\"allSlides\"\n onClick={() => setIsAllSlidesPanelOpen(true)}\n title=\"Show All\"\n />\n ) : null}\n icon=\"slides\"\n title={SLIDES}\n >\n <div className=\"toolItem-tabContent hasInnerScroll\">\n <ListWrapper\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n component={SortablePageList(FixedSizeList)}\n disableInteraction={disableInteraction}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onAnEventTrigger={onAnEventTrigger}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageRemove={onPageRemove}\n onSortEnd={onPageSort}\n pageCount={pages.length}\n pageGetter={pageGetter}\n reportSettings={reportSettings}\n />\n </div>\n </Section>\n </div>\n )}\n </Panel>\n );\n};\n\nSlidesPanel.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageOrdersChange: PropTypes.func,\n onPageRemove: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nSlidesPanel.defaultProps = {\n additionalPageItems: [],\n hashCode: '',\n itemAccessor: () => { },\n onPageAdd: () => { },\n onPageDuplicate: () => { },\n onPageOrdersChange: () => { },\n onPageRemove: () => { },\n pages: [],\n};\n\nexport default memo(SlidesPanel);\n"],"names":["SlidesPanel","additionalPageItems","hashCode","itemAccessor","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","pages","useBuilderContext","isRightPanelOpen","isSlidesPanelOpen","setIsAllSlidesPanelOpen","setIsSlidesPanelOpen","usePropContext","acceptedItems","disableInteraction","onAnEventTrigger","reportSettings","settings","useExperimentalFeatures","useState","animationEnd","setAnimationEnd","pageGetter","useCallback","index","onPageSort","nativeEvent","ref","newIndex","oldIndex","instance","getWrappedInstance","list","sortablePageListRef","current","newPageOrders","arrayMove","reduce","acc","page","id","order","forceUpdate","panelAdditionalClassName","classNames","isIdle","otherOpened","onClosePanel","onAnimationEnd","useClickOutsideListener","useTranslatedTexts","SLIDES","_jsxs","_jsx","SortablePageList","FixedSizeList","length","propTypes","PropTypes","arrayOf","node","string","func","shape","defaultProps","memo"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require('core-js/modules/es.array.map.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var ReactQuill = require('react-quill');
|
|
6
|
+
var domPurify = require('dompurify');
|
|
6
7
|
var PropTypes = require('prop-types');
|
|
7
8
|
var textEditorConstants = require('./textEditorConstants.js');
|
|
8
9
|
var fonts = require('../../constants/fonts.js');
|
|
@@ -13,6 +14,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
14
|
|
|
14
15
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
16
|
var ReactQuill__default = /*#__PURE__*/_interopDefaultLegacy(ReactQuill);
|
|
17
|
+
var domPurify__default = /*#__PURE__*/_interopDefaultLegacy(domPurify);
|
|
16
18
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
17
19
|
|
|
18
20
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
@@ -73,6 +75,11 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
73
75
|
}
|
|
74
76
|
});
|
|
75
77
|
|
|
78
|
+
_defineProperty(_assertThisInitialized(_this), "handleSetContent", function (value) {
|
|
79
|
+
var setContent = _this.props.setContent;
|
|
80
|
+
setContent(domPurify__default['default'].sanitize(value));
|
|
81
|
+
});
|
|
82
|
+
|
|
76
83
|
_this.quill = /*#__PURE__*/React__default['default'].createRef();
|
|
77
84
|
return _this;
|
|
78
85
|
}
|
|
@@ -96,8 +103,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
96
103
|
value: function render() {
|
|
97
104
|
var _this$props2 = this.props,
|
|
98
105
|
content = _this$props2.content,
|
|
99
|
-
placeholder = _this$props2.placeholder
|
|
100
|
-
setContent = _this$props2.setContent;
|
|
106
|
+
placeholder = _this$props2.placeholder;
|
|
101
107
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
102
108
|
className: "f-all",
|
|
103
109
|
onKeyDown: this.handleKeyDown,
|
|
@@ -105,7 +111,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
105
111
|
ref: this.quill,
|
|
106
112
|
formats: QuillEditor.formats,
|
|
107
113
|
modules: QuillEditor.modules,
|
|
108
|
-
onChange:
|
|
114
|
+
onChange: this.handleSetContent,
|
|
109
115
|
placeholder: placeholder,
|
|
110
116
|
preserveWhitespace: true,
|
|
111
117
|
value: content
|
|
@@ -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 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 render() {\n const {
|
|
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 => {\n const { setContent } = this.props;\n setContent(domPurify.sanitize(value));\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,\n setContent: PropTypes.func,\n setIsTextEditorOpen: PropTypes.func,\n};\n\nQuillEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n placeholder: 'Click to edit text',\n setContent: () => {},\n setIsTextEditorOpen: () => {},\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","setContent","domPurify","sanitize","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","_jsx","handleKeyDown","formats","modules","handleSetContent","PureComponent","propTypes","PropTypes","string","func","defaultProps"],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
31
31
|
isSelected = _ref.isSelected,
|
|
32
32
|
placeholder = _ref.placeholder;
|
|
33
33
|
|
|
34
|
-
var _useState = React.useState(content),
|
|
34
|
+
var _useState = React.useState(domPurify__default['default'].sanitize(content)),
|
|
35
35
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36
36
|
_content = _useState2[0],
|
|
37
37
|
setContent = _useState2[1];
|
|
@@ -47,7 +47,7 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
47
47
|
}, [isSelected, isLocked]);
|
|
48
48
|
var isNotEmpty = React.useMemo(function () {
|
|
49
49
|
var el = document.createElement('div');
|
|
50
|
-
el.innerHTML =
|
|
50
|
+
el.innerHTML = _content;
|
|
51
51
|
return !!el.innerText;
|
|
52
52
|
}, [_content]);
|
|
53
53
|
return isSelected && isTextEditorOpen ? /*#__PURE__*/jsxRuntime.jsx(QuillEditor, {
|
|
@@ -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 { useBuilderContext } from '../../utils/builderContext';\n\nconst TextEditor = ({\n content,\n handleSave,\n isLocked,\n isSelected,\n placeholder,\n}) => {\n const [_content, setContent] = useState(content);\n\n const { isTextEditorOpen, setIsTextEditorOpen } = useBuilderContext();\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked]);\n\n const isNotEmpty = useMemo(() => {\n const el = document.createElement('div');\n el.innerHTML =
|
|
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 { useBuilderContext } from '../../utils/builderContext';\n\nconst TextEditor = ({\n content,\n handleSave,\n isLocked,\n isSelected,\n placeholder,\n}) => {\n const [_content, setContent] = useState(domPurify.sanitize(content));\n\n const { isTextEditorOpen, setIsTextEditorOpen } = useBuilderContext();\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked]);\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,\n};\n\nTextEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n isLocked: false,\n isSelected: false,\n placeholder: 'Click to edit text',\n};\n\nexport default TextEditor;\n"],"names":["TextEditor","content","handleSave","isLocked","isSelected","placeholder","useState","domPurify","sanitize","_content","setContent","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAMMA,UAAU,GAAG,SAAbA,UAAa,OAMb;AAAA,MALJC,OAKI,QALJA,OAKI;AAAA,MAJJC,UAII,QAJJA,UAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,UAEI,QAFJA,UAEI;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,2BAAkDC,gCAAiB,EAAnE;AAAA,MAAQC,gBAAR,sBAAQA,gBAAR;AAAA,MAA0BC,mBAA1B,sBAA0BA,mBAA1B;;AAEA,MAAMC,OAAO,GAAGC,iBAAW,CAAC,YAAM;AAChC,QAAIX,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BU,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACT,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMa,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAeZ,QAAf;AACA,WAAO,CAAC,CAACS,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAACb,QAAD,CAJuB,CAA1B;AAMA,SAAOL,UAAU,IAAIQ,gBAAd,gBACLW,eAAC,WAAD;AACE,IAAA,OAAO,EAAEd,QADX;AAEE,IAAA,UAAU,EAAEP,UAFd;AAGE,IAAA,WAAW,EAAEG,WAHf;AAIE,IAAA,UAAU,EAAEK,UAJd;AAKE,IAAA,mBAAmB,EAAEG;AALvB,IADK,gBASLU;AACE,IAAA,SAAS,2BAAoBP,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBQ,MAAAA,MAAM,EAAER,UAAU,GAAGP,QAAH,GAAcJ;AADT,KAF3B;AAKE,IAAA,OAAO,EAAES,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDd,UAAU,CAACyB,SAAX,GAAuB;AACrBxB,EAAAA,OAAO,EAAEyB,6BAAS,CAACC,MADE;AAErBzB,EAAAA,UAAU,EAAEwB,6BAAS,CAACE,IAFD;AAGrBzB,EAAAA,QAAQ,EAAEuB,6BAAS,CAACG,IAHC;AAIrBzB,EAAAA,UAAU,EAAEsB,6BAAS,CAACG,IAJD;AAKrBxB,EAAAA,WAAW,EAAEqB,6BAAS,CAACC;AALF,CAAvB;AAQA3B,UAAU,CAAC8B,YAAX,GAA0B;AACxB7B,EAAAA,OAAO,EAAE,EADe;AAExBC,EAAAA,UAAU,EAAE,sBAAM,EAFM;AAGxBC,EAAAA,QAAQ,EAAE,KAHc;AAIxBC,EAAAA,UAAU,EAAE,KAJY;AAKxBC,EAAAA,WAAW,EAAE;AALW,CAA1B;;;;"}
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
color: #fff;
|
|
157
157
|
display: block;
|
|
158
158
|
position: absolute;
|
|
159
|
-
width:
|
|
159
|
+
width: 165px;
|
|
160
160
|
z-index: 10;
|
|
161
161
|
box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.2);
|
|
162
162
|
}
|
|
@@ -171,6 +171,7 @@
|
|
|
171
171
|
height: 45px;
|
|
172
172
|
width: 100%;
|
|
173
173
|
font-size: 0.875rem;
|
|
174
|
+
padding-left: 14px;
|
|
174
175
|
|
|
175
176
|
.contextMenu-icon {
|
|
176
177
|
margin-right: 9px;
|
|
@@ -149,7 +149,9 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
149
149
|
});
|
|
150
150
|
|
|
151
151
|
_defineProperty(_assertThisInitialized(_this), "setIsRightPanelOpen", function (status) {
|
|
152
|
-
var
|
|
152
|
+
var _this$state = _this.state,
|
|
153
|
+
isEnoughCanvasSize = _this$state.isEnoughCanvasSize,
|
|
154
|
+
onRightPanelsToggled = _this$state.onRightPanelsToggled;
|
|
153
155
|
|
|
154
156
|
_this.setState(_objectSpread(_objectSpread({
|
|
155
157
|
isRightPanelOpen: status
|
|
@@ -158,10 +160,14 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
158
160
|
}), status && {
|
|
159
161
|
isSlidesPanelOpen: false
|
|
160
162
|
}));
|
|
163
|
+
|
|
164
|
+
onRightPanelsToggled(status);
|
|
161
165
|
});
|
|
162
166
|
|
|
163
167
|
_defineProperty(_assertThisInitialized(_this), "setIsSlidesPanelOpen", function (status) {
|
|
164
|
-
var
|
|
168
|
+
var _this$state2 = _this.state,
|
|
169
|
+
isEnoughCanvasSize = _this$state2.isEnoughCanvasSize,
|
|
170
|
+
onRightPanelsToggled = _this$state2.onRightPanelsToggled;
|
|
165
171
|
|
|
166
172
|
_this.setState(_objectSpread(_objectSpread({
|
|
167
173
|
isSlidesPanelOpen: status
|
|
@@ -170,6 +176,8 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
170
176
|
}), status && {
|
|
171
177
|
isRightPanelOpen: false
|
|
172
178
|
}));
|
|
179
|
+
|
|
180
|
+
onRightPanelsToggled(status);
|
|
173
181
|
});
|
|
174
182
|
|
|
175
183
|
_defineProperty(_assertThisInitialized(_this), "setIsAllSlidesPanelOpen", function (status) {
|
|
@@ -231,6 +239,7 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
231
239
|
isLeftPanelOpen: props.isLeftPanelOpen,
|
|
232
240
|
isRightPanelOpen: props.isRightPanelOpen,
|
|
233
241
|
isSlidesPanelOpen: props.isSlidesPanelOpen,
|
|
242
|
+
onRightPanelsToggled: props.onRightPanelsToggled,
|
|
234
243
|
setActiveElement: _this.setActiveElement,
|
|
235
244
|
setActiveTab: _this.setActiveTab,
|
|
236
245
|
setContextMenuProps: _this.setContextMenuProps,
|
|
@@ -268,7 +277,13 @@ BuilderProvider.propTypes = {
|
|
|
268
277
|
isEnoughCanvasSize: PropTypes__default['default'].bool,
|
|
269
278
|
isLeftPanelOpen: PropTypes__default['default'].bool,
|
|
270
279
|
isRightPanelOpen: PropTypes__default['default'].bool,
|
|
271
|
-
isSlidesPanelOpen: PropTypes__default['default'].bool
|
|
280
|
+
isSlidesPanelOpen: PropTypes__default['default'].bool,
|
|
281
|
+
|
|
282
|
+
/** Function called when a slides or right panel is toggled
|
|
283
|
+
* takes a boolean value to indicate whether or not the panel
|
|
284
|
+
* is toggled open.
|
|
285
|
+
*/
|
|
286
|
+
onRightPanelsToggled: PropTypes__default['default'].func
|
|
272
287
|
};
|
|
273
288
|
BuilderProvider.defaultProps = {
|
|
274
289
|
activeElement: null,
|
|
@@ -282,7 +297,8 @@ BuilderProvider.defaultProps = {
|
|
|
282
297
|
isEnoughCanvasSize: false,
|
|
283
298
|
isLeftPanelOpen: false,
|
|
284
299
|
isRightPanelOpen: false,
|
|
285
|
-
isSlidesPanelOpen: false
|
|
300
|
+
isSlidesPanelOpen: false,
|
|
301
|
+
onRightPanelsToggled: function onRightPanelsToggled() {}
|
|
286
302
|
};
|
|
287
303
|
BuilderContext.Consumer;
|
|
288
304
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builderContext.js","sources":["../../../src/utils/builderContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const BuilderContext = createContext({\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n contextMenuProps: false,\n editedElement: 'l_layout',\n isAllSlidesPanelOpen: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n isTextEditorOpen: false,\n setActiveElement: () => {},\n setActiveTab: () => {},\n setContextMenuProps: () => {},\n setEditedElement: () => {},\n setIsAllSlidesPanelOpen: () => {},\n setIsLeftPanelOpen: () => {},\n setIsRightPanelOpen: () => {},\n setIsSlidesPanelOpen: () => {},\n setIsTextEditorOpen: () => {},\n setZoom: () => {},\n zoom: 1,\n});\n\nexport const useBuilderContext = () => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('BuilderContext must be used with BuilderProvider!');\n }\n return context;\n};\n\nexport class BuilderProvider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeElement: props.activeElement,\n activeTab: props.activeTab,\n contextMenuProps: props.contextMenuProps,\n editedElement: props.editedElement,\n isEnoughCanvasSize: props.isEnoughCanvasSize,\n isLeftPanelOpen: props.isLeftPanelOpen,\n isRightPanelOpen: props.isRightPanelOpen,\n isSlidesPanelOpen: props.isSlidesPanelOpen,\n setActiveElement: this.setActiveElement,\n setActiveTab: this.setActiveTab,\n setContextMenuProps: this.setContextMenuProps,\n setEditedElement: this.setEditedElement,\n setIsAllSlidesPanelOpen: this.setIsAllSlidesPanelOpen,\n setIsLeftPanelOpen: this.setIsLeftPanelOpen,\n setIsRightPanelOpen: this.setIsRightPanelOpen,\n setIsSlidesPanelOpen: this.setIsSlidesPanelOpen,\n setIsTextEditorOpen: this.setIsTextEditorOpen,\n setZoom: this.setZoom,\n zoom: 1,\n };\n }\n\n setActiveElement = (itemID, edit = true, multiple = false) => {\n if (!multiple) {\n const config = {\n activeElement: itemID === null ? null : [itemID],\n };\n if (edit) {\n const editedElement = !itemID ? 'l_layout' : `i_${itemID}`;\n config.editedElement = editedElement;\n }\n this.setState(config);\n } else {\n const { activeElement } = this.state;\n const config = {\n activeElement: activeElement === null ? [itemID] : [...activeElement, itemID],\n };\n this.setState(config);\n }\n };\n\n setEditedElement = id => {\n this.setState(prevState => {\n if (prevState.editedElement !== id) {\n return { editedElement: id };\n }\n return null;\n });\n }\n\n setActiveTab = (panel, tabIndex) => {\n const { activeTab } = this.state;\n this.setState({ activeTab: { ...activeTab, [panel]: tabIndex } });\n };\n\n setContextMenuProps = status => {\n this.setState({ contextMenuProps: status });\n }\n\n setIsRightPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n };\n\n setIsSlidesPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n };\n\n setIsAllSlidesPanelOpen = status => {\n this.setState({\n isAllSlidesPanelOpen: status,\n });\n };\n\n setIsLeftPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n };\n\n setIsTextEditorOpen = status => {\n this.setState({ isTextEditorOpen: status });\n }\n\n setZoom = (zoom, isModeCustomize = false, layoutWidth, onLoad = false) => {\n this.setState({ zoom });\n if (isModeCustomize && !onLoad) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n this.setState({ isEnoughCanvasSize: true });\n } else {\n this.setState({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <BuilderContext.Provider value={this.state}>\n {children}\n </BuilderContext.Provider>\n );\n }\n}\n\nBuilderProvider.propTypes = {\n activeElement: PropTypes.string,\n activeTab: PropTypes.shape({}),\n children: PropTypes.any,\n contextMenuProps: PropTypes.shape({}),\n editedElement: PropTypes.string,\n isEnoughCanvasSize: PropTypes.bool,\n isLeftPanelOpen: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSlidesPanelOpen: PropTypes.bool,\n};\n\nBuilderProvider.defaultProps = {\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n children: null,\n contextMenuProps: null,\n editedElement: 'l_layout',\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n"],"names":["BuilderContext","createContext","activeElement","activeTab","left","right","contextMenuProps","editedElement","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","setActiveElement","setActiveTab","setContextMenuProps","setEditedElement","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setZoom","zoom","useBuilderContext","context","useContext","Error","BuilderProvider","props","itemID","edit","multiple","config","setState","state","id","prevState","panel","tabIndex","status","isEnoughCanvasSize","isModeCustomize","layoutWidth","onLoad","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","children","_jsx","React","Component","propTypes","PropTypes","string","shape","any","bool","defaultProps","Consumer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builderContext.js","sources":["../../../src/utils/builderContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const BuilderContext = createContext({\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n contextMenuProps: false,\n editedElement: 'l_layout',\n isAllSlidesPanelOpen: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n isTextEditorOpen: false,\n setActiveElement: () => { },\n setActiveTab: () => { },\n setContextMenuProps: () => { },\n setEditedElement: () => { },\n setIsAllSlidesPanelOpen: () => { },\n setIsLeftPanelOpen: () => { },\n setIsRightPanelOpen: () => { },\n setIsSlidesPanelOpen: () => { },\n setIsTextEditorOpen: () => { },\n setZoom: () => { },\n zoom: 1,\n});\n\nexport const useBuilderContext = () => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('BuilderContext must be used with BuilderProvider!');\n }\n return context;\n};\n\nexport class BuilderProvider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeElement: props.activeElement,\n activeTab: props.activeTab,\n contextMenuProps: props.contextMenuProps,\n editedElement: props.editedElement,\n isEnoughCanvasSize: props.isEnoughCanvasSize,\n isLeftPanelOpen: props.isLeftPanelOpen,\n isRightPanelOpen: props.isRightPanelOpen,\n isSlidesPanelOpen: props.isSlidesPanelOpen,\n onRightPanelsToggled: props.onRightPanelsToggled,\n setActiveElement: this.setActiveElement,\n setActiveTab: this.setActiveTab,\n setContextMenuProps: this.setContextMenuProps,\n setEditedElement: this.setEditedElement,\n setIsAllSlidesPanelOpen: this.setIsAllSlidesPanelOpen,\n setIsLeftPanelOpen: this.setIsLeftPanelOpen,\n setIsRightPanelOpen: this.setIsRightPanelOpen,\n setIsSlidesPanelOpen: this.setIsSlidesPanelOpen,\n setIsTextEditorOpen: this.setIsTextEditorOpen,\n setZoom: this.setZoom,\n zoom: 1,\n };\n }\n\n setActiveElement = (itemID, edit = true, multiple = false) => {\n if (!multiple) {\n const config = {\n activeElement: itemID === null ? null : [itemID],\n };\n if (edit) {\n const editedElement = !itemID ? 'l_layout' : `i_${itemID}`;\n config.editedElement = editedElement;\n }\n this.setState(config);\n } else {\n const { activeElement } = this.state;\n const config = {\n activeElement: activeElement === null ? [itemID] : [...activeElement, itemID],\n };\n this.setState(config);\n }\n };\n\n setEditedElement = id => {\n this.setState(prevState => {\n if (prevState.editedElement !== id) {\n return { editedElement: id };\n }\n return null;\n });\n }\n\n setActiveTab = (panel, tabIndex) => {\n const { activeTab } = this.state;\n this.setState({ activeTab: { ...activeTab, [panel]: tabIndex } });\n };\n\n setContextMenuProps = status => {\n this.setState({ contextMenuProps: status });\n }\n\n setIsRightPanelOpen = status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = this.state;\n this.setState({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n };\n\n setIsSlidesPanelOpen = status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = this.state;\n this.setState({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n };\n\n setIsAllSlidesPanelOpen = status => {\n this.setState({\n isAllSlidesPanelOpen: status,\n });\n };\n\n setIsLeftPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n };\n\n setIsTextEditorOpen = status => {\n this.setState({ isTextEditorOpen: status });\n }\n\n setZoom = (zoom, isModeCustomize = false, layoutWidth, onLoad = false) => {\n this.setState({ zoom });\n if (isModeCustomize && !onLoad) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n this.setState({ isEnoughCanvasSize: true });\n } else {\n this.setState({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <BuilderContext.Provider value={this.state}>\n {children}\n </BuilderContext.Provider>\n );\n }\n}\n\nBuilderProvider.propTypes = {\n activeElement: PropTypes.string,\n activeTab: PropTypes.shape({}),\n children: PropTypes.any,\n contextMenuProps: PropTypes.shape({}),\n editedElement: PropTypes.string,\n isEnoughCanvasSize: PropTypes.bool,\n isLeftPanelOpen: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSlidesPanelOpen: PropTypes.bool,\n /** Function called when a slides or right panel is toggled\n * takes a boolean value to indicate whether or not the panel\n * is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n};\n\nBuilderProvider.defaultProps = {\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n children: null,\n contextMenuProps: null,\n editedElement: 'l_layout',\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n onRightPanelsToggled: () => { },\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n"],"names":["BuilderContext","createContext","activeElement","activeTab","left","right","contextMenuProps","editedElement","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","setActiveElement","setActiveTab","setContextMenuProps","setEditedElement","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setZoom","zoom","useBuilderContext","context","useContext","Error","BuilderProvider","props","itemID","edit","multiple","config","setState","state","id","prevState","panel","tabIndex","status","isEnoughCanvasSize","onRightPanelsToggled","isModeCustomize","layoutWidth","onLoad","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","children","_jsx","React","Component","propTypes","PropTypes","string","shape","any","bool","func","defaultProps","Consumer"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import 'intersection-observer';
|
|
|
15
15
|
import '../../styles/jfReportsBundle.scss';
|
|
16
16
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
17
17
|
|
|
18
|
-
var _excluded = ["acceptedItems", "additionalPageItems", "disableInteraction", "itemAccessor", "lastScrollPosition", "leftPanelConfig", "onAnEventTrigger", "onItemAdd", "onItemChange", "onItemMove", "onItemRemove", "onItemResize", "onItemsMove", "onPageAdd", "onPageChange", "onPageDuplicate", "onPageOrdersChange", "onPageRemove", "onSettingChange", "pages", "settings", "theme", "useExperimentalFeatures"];
|
|
18
|
+
var _excluded = ["acceptedItems", "additionalPageItems", "disableInteraction", "itemAccessor", "lastScrollPosition", "leftPanelConfig", "onAnEventTrigger", "onItemAdd", "onItemChange", "onItemMove", "onItemRemove", "onItemResize", "onItemsMove", "onPageAdd", "onPageChange", "onPageDuplicate", "onPageOrdersChange", "onPageRemove", "onRightPanelsToggled", "onSettingChange", "pages", "settings", "theme", "useExperimentalFeatures"];
|
|
19
19
|
|
|
20
20
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
21
21
|
|
|
@@ -40,6 +40,7 @@ var Builder = function Builder(_ref) {
|
|
|
40
40
|
onPageDuplicate = _ref.onPageDuplicate,
|
|
41
41
|
onPageOrdersChange = _ref.onPageOrdersChange,
|
|
42
42
|
onPageRemove = _ref.onPageRemove,
|
|
43
|
+
onRightPanelsToggled = _ref.onRightPanelsToggled,
|
|
43
44
|
onSettingChange = _ref.onSettingChange,
|
|
44
45
|
pages = _ref.pages,
|
|
45
46
|
settings = _ref.settings,
|
|
@@ -50,6 +51,7 @@ var Builder = function Builder(_ref) {
|
|
|
50
51
|
var hashCode = objectHash(otherProps);
|
|
51
52
|
return /*#__PURE__*/jsx(StrictMode, {
|
|
52
53
|
children: /*#__PURE__*/jsx(BuilderProvider, {
|
|
54
|
+
onRightPanelsToggled: onRightPanelsToggled,
|
|
53
55
|
children: /*#__PURE__*/jsx(PropProvider, {
|
|
54
56
|
acceptedItems: acceptedItems,
|
|
55
57
|
disableInteraction: disableInteraction,
|
|
@@ -160,6 +162,12 @@ Builder.propTypes = {
|
|
|
160
162
|
/** Function called upon removing a page */
|
|
161
163
|
onPageRemove: PropTypes.func,
|
|
162
164
|
|
|
165
|
+
/** Function called when the slides or the right panel is
|
|
166
|
+
* toggled takes a boolean value to indicate whether or
|
|
167
|
+
* not the panel is toggled open.
|
|
168
|
+
*/
|
|
169
|
+
onRightPanelsToggled: PropTypes.func,
|
|
170
|
+
|
|
163
171
|
/** Function called upon editing a general report setting */
|
|
164
172
|
onSettingChange: PropTypes.func,
|
|
165
173
|
|
|
@@ -192,6 +200,7 @@ Builder.defaultProps = {
|
|
|
192
200
|
onPageDuplicate: function onPageDuplicate() {},
|
|
193
201
|
onPageOrdersChange: function onPageOrdersChange() {},
|
|
194
202
|
onPageRemove: function onPageRemove() {},
|
|
203
|
+
onRightPanelsToggled: function onRightPanelsToggled() {},
|
|
195
204
|
onSettingChange: function onSettingChange() {},
|
|
196
205
|
pages: [],
|
|
197
206
|
settings: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import { StrictMode } from 'react';\nimport PropTypes from 'prop-types';\nimport objectHash from 'object-hash';\nimport DndWrapper from './DndWrapper';\nimport { BuilderProvider } from '../../utils/builderContext';\nimport { PropProvider } from '../../utils/propContext';\nimport ReportWrapper from '../ReportWrapper';\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';\n\nimport 'intersection-observer';\nimport '../../styles/jfReportsBundle.scss';\n\nconst Builder = ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n itemAccessor,\n lastScrollPosition,\n leftPanelConfig,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n onSettingChange,\n pages,\n settings,\n theme,\n useExperimentalFeatures,\n ...otherProps\n}) => {\n const hashCode = objectHash(otherProps);\n\n return (\n <StrictMode>\n <BuilderProvider>\n <PropProvider\n acceptedItems={acceptedItems}\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n settings={settings}\n useExperimentalFeatures={useExperimentalFeatures}\n >\n <ReportWrapper\n mode=\"customize\"\n pageCount={pages.length}\n theme={theme}\n >\n <DndWrapper>\n <LeftPanel\n leftPanelConfig={leftPanelConfig}\n onItemAdd={onItemAdd}\n />\n <Scene\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n lastScrollPosition={lastScrollPosition}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemMove={onItemMove}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n onItemsMove={onItemsMove}\n onPageAdd={onPageAdd}\n onPageChange={onPageChange}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n </DndWrapper>\n <RightPanel\n itemAccessor={itemAccessor}\n onItemChange={onItemChange}\n onPageChange={onPageChange}\n onSettingChange={onSettingChange}\n pages={pages}\n />\n <SlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n {useExperimentalFeatures && (\n <AllSlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n )}\n </ReportWrapper>\n </PropProvider>\n </BuilderProvider>\n </StrictMode>\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 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 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\nBuilder.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n itemAccessor: () => {},\n lastScrollPosition: 0,\n leftPanelConfig: [],\n onAnEventTrigger: () => {},\n onItemAdd: () => {},\n onItemChange: () => {},\n onItemMove: () => {},\n onItemRemove: () => {},\n onItemResize: () => {},\n onItemsMove: () => {},\n onPageAdd: () => {},\n onPageChange: () => {},\n onPageDuplicate: () => {},\n onPageOrdersChange: () => {},\n onPageRemove: () => {},\n onSettingChange: () => {},\n pages: [],\n settings: {},\n theme: 'lightMode',\n useExperimentalFeatures: false,\n};\n\nexport default Builder;\n"],"names":["Builder","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","lastScrollPosition","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onSettingChange","pages","settings","theme","useExperimentalFeatures","otherProps","hashCode","objectHash","_jsx","_jsxs","length","propTypes","PropTypes","shape","arrayOf","node","string","func","number","leftPanelConfigPropType","oneOf","bool","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Builder.js","sources":["../../../../src/components/Builder/Builder.js"],"sourcesContent":["import { StrictMode } from 'react';\nimport PropTypes from 'prop-types';\nimport objectHash from 'object-hash';\nimport DndWrapper from './DndWrapper';\nimport { BuilderProvider } from '../../utils/builderContext';\nimport { PropProvider } from '../../utils/propContext';\nimport ReportWrapper from '../ReportWrapper';\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';\n\nimport 'intersection-observer';\nimport '../../styles/jfReportsBundle.scss';\n\nconst Builder = ({\n acceptedItems,\n additionalPageItems,\n disableInteraction,\n itemAccessor,\n lastScrollPosition,\n leftPanelConfig,\n onAnEventTrigger,\n onItemAdd,\n onItemChange,\n onItemMove,\n onItemRemove,\n onItemResize,\n onItemsMove,\n onPageAdd,\n onPageChange,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n onRightPanelsToggled,\n onSettingChange,\n pages,\n settings,\n theme,\n useExperimentalFeatures,\n ...otherProps\n}) => {\n const hashCode = objectHash(otherProps);\n\n return (\n <StrictMode>\n <BuilderProvider onRightPanelsToggled={onRightPanelsToggled}>\n <PropProvider\n acceptedItems={acceptedItems}\n disableInteraction={disableInteraction}\n onAnEventTrigger={onAnEventTrigger}\n settings={settings}\n useExperimentalFeatures={useExperimentalFeatures}\n >\n <ReportWrapper\n mode=\"customize\"\n pageCount={pages.length}\n theme={theme}\n >\n <DndWrapper>\n <LeftPanel\n leftPanelConfig={leftPanelConfig}\n onItemAdd={onItemAdd}\n />\n <Scene\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n lastScrollPosition={lastScrollPosition}\n onItemAdd={onItemAdd}\n onItemChange={onItemChange}\n onItemMove={onItemMove}\n onItemRemove={onItemRemove}\n onItemResize={onItemResize}\n onItemsMove={onItemsMove}\n onPageAdd={onPageAdd}\n onPageChange={onPageChange}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n </DndWrapper>\n <RightPanel\n itemAccessor={itemAccessor}\n onItemChange={onItemChange}\n onPageChange={onPageChange}\n onSettingChange={onSettingChange}\n pages={pages}\n />\n <SlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n {useExperimentalFeatures && (\n <AllSlidesPanel\n additionalPageItems={additionalPageItems}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageOrdersChange={onPageOrdersChange}\n onPageRemove={onPageRemove}\n pages={pages}\n />\n )}\n </ReportWrapper>\n </PropProvider>\n </BuilderProvider>\n </StrictMode>\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 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\nBuilder.defaultProps = {\n acceptedItems: {},\n additionalPageItems: [],\n disableInteraction: [],\n itemAccessor: () => { },\n lastScrollPosition: 0,\n leftPanelConfig: [],\n onAnEventTrigger: () => { },\n onItemAdd: () => { },\n onItemChange: () => { },\n onItemMove: () => { },\n onItemRemove: () => { },\n onItemResize: () => { },\n onItemsMove: () => { },\n onPageAdd: () => { },\n onPageChange: () => { },\n onPageDuplicate: () => { },\n onPageOrdersChange: () => { },\n onPageRemove: () => { },\n onRightPanelsToggled: () => { },\n onSettingChange: () => { },\n pages: [],\n settings: {},\n theme: 'lightMode',\n useExperimentalFeatures: false,\n};\n\nexport default Builder;\n"],"names":["Builder","acceptedItems","additionalPageItems","disableInteraction","itemAccessor","lastScrollPosition","leftPanelConfig","onAnEventTrigger","onItemAdd","onItemChange","onItemMove","onItemRemove","onItemResize","onItemsMove","onPageAdd","onPageChange","onPageDuplicate","onPageOrdersChange","onPageRemove","onRightPanelsToggled","onSettingChange","pages","settings","theme","useExperimentalFeatures","otherProps","hashCode","objectHash","_jsx","_jsxs","length","propTypes","PropTypes","shape","arrayOf","node","string","func","number","leftPanelConfigPropType","oneOf","bool","defaultProps"],"mappings":"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"}
|
|
@@ -192,7 +192,7 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
192
192
|
children: /*#__PURE__*/jsxs(Panel, {
|
|
193
193
|
ref: panelRef,
|
|
194
194
|
additionalClassName: panelAdditionalClassName,
|
|
195
|
-
children: [/*#__PURE__*/jsx(RightPanelToggler, {}), /*#__PURE__*/jsx("div", {
|
|
195
|
+
children: [isSlidesPanelOpen ? null : /*#__PURE__*/jsx(RightPanelToggler, {}), /*#__PURE__*/jsx("div", {
|
|
196
196
|
className: "toolItemWrapper f-height d-flex dir-col",
|
|
197
197
|
children: /*#__PURE__*/jsxs(Section, {
|
|
198
198
|
title: title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n memo,\n useEffect,\n useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\nimport { capitalize } from '../../../utils/string';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = ({\n itemAccessor,\n onItemChange,\n onPageChange,\n onSettingChange,\n pages,\n}) => {\n const {\n activeTab,\n editedElement,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setActiveElement,\n setActiveTab,\n setIsRightPanelOpen,\n } = useBuilderContext();\n const { acceptedItems, settings: layoutSettings } = usePropContext();\n const panelRef = useRef(null);\n const { LAYOUT_SETTINGS, PAGE_SETTINGS, SETTINGS } = useTranslatedTexts();\n const settingMap = {\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n return `${capitalize(acceptedItems[item.itemType].title || item.itemType)} ${SETTINGS}`;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, setActiveElement, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => PAGE_SETTINGS,\n updater: onPageChange,\n },\n };\n\n let editedEl;\n let editedElId;\n let selectedItem;\n let element;\n let updateFunc;\n let title;\n\n const panelConfig = () => {\n selectedItem = editedEl.details(editedElId);\n element = editedEl.settings(selectedItem);\n updateFunc = editedEl.updater;\n title = editedEl.title(selectedItem);\n };\n\n const fallback = () => {\n setActiveElement(null);\n editedEl = settingMap.l_;\n editedElId = editedElement.substr(2);\n panelConfig();\n };\n\n try {\n editedEl = settingMap[editedElement.substr(0, 2)];\n editedElId = editedElement.substr(2);\n const checkSelectedItem = editedEl.details(editedElId);\n if (Object.keys(checkSelectedItem).length === 0) {\n fallback();\n } else {\n panelConfig();\n }\n } catch (e) {\n fallback();\n }\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n <RightPanelToggler />\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n itemAccessor={itemAccessor}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nRightPanel.propTypes = {\n itemAccessor: PropTypes.func,\n onItemChange: PropTypes.func,\n onPageChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nRightPanel.defaultProps = {\n itemAccessor: () => {},\n onItemChange: () => {},\n onPageChange: () => {},\n onSettingChange: () => {},\n pages: [],\n};\n\nexport default memo(RightPanel);\n"],"names":["exceptionalClasses","RightPanel","itemAccessor","onItemChange","onPageChange","onSettingChange","pages","useBuilderContext","activeTab","editedElement","isRightPanelOpen","isSlidesPanelOpen","setActiveElement","setActiveTab","setIsRightPanelOpen","usePropContext","acceptedItems","layoutSettings","settings","panelRef","useRef","useTranslatedTexts","LAYOUT_SETTINGS","PAGE_SETTINGS","SETTINGS","settingMap","i_","details","id","item","findItemById","itemType","title","capitalize","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","editedEl","editedElId","selectedItem","element","updateFunc","panelConfig","fallback","substr","checkSelectedItem","Object","keys","length","e","tabsWithSettings","getTabsWithSettings","tabs","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs","propTypes","PropTypes","func","arrayOf","shape","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/Panels/RightPanel/RightPanel.js"],"sourcesContent":["import {\n memo,\n useEffect,\n useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport Section from '../../Builder/Section';\nimport Layout from '../../../constants/reportSettings';\nimport Page from '../../../constants/pageSettings';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { findItemById, getTabsWithSettings } from '../../../utils/functions';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport {\n REPORT_SETTINGS_ITEM_TYPE, PAGE_SETTINGS_ITEM_TYPE,\n} from '../../../constants/itemTypes';\nimport Tabs from '../../Builder/Tabs';\nimport Settings from './Settings';\nimport RightPanelToggler from './RightPanelToggler';\nimport { capitalize } from '../../../utils/string';\n\nconst exceptionalClasses = [\n 'pageSettingSideBtn', 'paneClose', 'paneToggler', 'forZoom', 'jSheetContextMenu',\n];\n\nconst RightPanel = ({\n itemAccessor,\n onItemChange,\n onPageChange,\n onSettingChange,\n pages,\n}) => {\n const {\n activeTab,\n editedElement,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setActiveElement,\n setActiveTab,\n setIsRightPanelOpen,\n } = useBuilderContext();\n const { acceptedItems, settings: layoutSettings } = usePropContext();\n const panelRef = useRef(null);\n const { LAYOUT_SETTINGS, PAGE_SETTINGS, SETTINGS } = useTranslatedTexts();\n const settingMap = {\n i_: {\n details: id => {\n const item = findItemById(id, pages);\n return item;\n },\n settings: item => {\n return acceptedItems[item.itemType];\n },\n title: item => {\n return `${capitalize(acceptedItems[item.itemType].title || item.itemType)} ${SETTINGS}`;\n },\n updater: onItemChange,\n },\n l_: {\n details: () => {\n return {\n ...layoutSettings,\n id: REPORT_SETTINGS_ITEM_TYPE,\n itemType: REPORT_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n return acceptedItems[REPORT_SETTINGS_ITEM_TYPE] || Layout;\n },\n title: () => LAYOUT_SETTINGS,\n updater: onSettingChange,\n },\n p_: {\n details: id => {\n return {\n backgroundColor: layoutSettings.reportBackgroundColor,\n ...pages.find(page => page.id === id),\n itemType: PAGE_SETTINGS_ITEM_TYPE,\n };\n },\n settings: () => {\n const pageItem = acceptedItems[PAGE_SETTINGS_ITEM_TYPE] || Page;\n return {\n ...pageItem,\n settings: pageItem.settings.map(setting => {\n if (setting.key === 'pageLayer') {\n return { ...setting, setActiveElement, updater: onItemChange };\n }\n return setting;\n }) || Page.settings,\n };\n },\n title: () => PAGE_SETTINGS,\n updater: onPageChange,\n },\n };\n\n let editedEl;\n let editedElId;\n let selectedItem;\n let element;\n let updateFunc;\n let title;\n\n const panelConfig = () => {\n selectedItem = editedEl.details(editedElId);\n element = editedEl.settings(selectedItem);\n updateFunc = editedEl.updater;\n title = editedEl.title(selectedItem);\n };\n\n const fallback = () => {\n setActiveElement(null);\n editedEl = settingMap.l_;\n editedElId = editedElement.substr(2);\n panelConfig();\n };\n\n try {\n editedEl = settingMap[editedElement.substr(0, 2)];\n editedElId = editedElement.substr(2);\n const checkSelectedItem = editedEl.details(editedElId);\n if (Object.keys(checkSelectedItem).length === 0) {\n fallback();\n } else {\n panelConfig();\n }\n } catch (e) {\n fallback();\n }\n\n // Tabs\n const tabsWithSettings = getTabsWithSettings(element, selectedItem, itemAccessor);\n const tabs = Object.keys(tabsWithSettings);\n\n useEffect(() => {\n const currentTab = tabs[activeTab.right];\n if (!tabsWithSettings[currentTab]) {\n // This is due to conditionaly hiding tabs\n setActiveTab('right', 0);\n }\n }, [activeTab, tabs]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSettings f-height',\n {\n isIdle: !isRightPanelOpen,\n otherOpened: isSlidesPanelOpen,\n },\n );\n\n const onClickOutsideForPanel = e => {\n if (editedElement.substr(0, 2) === 'i_'\n || panelRef.current.contains(e.target)\n || panelRef.current.contains(document.activeElement)\n || Array.from(e.target.classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(xClass => e.target.closest(`.${xClass}`))\n ) {\n return;\n }\n setIsRightPanelOpen(false);\n setActiveElement(null);\n };\n\n useEffect(() => {\n if (isRightPanelOpen) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => {\n window.removeEventListener('click', onClickOutsideForPanel, false);\n };\n }, [isRightPanelOpen]);\n\n return (\n <>\n <Panel\n ref={panelRef}\n additionalClassName={panelAdditionalClassName}\n >\n {isSlidesPanelOpen ? null : <RightPanelToggler />}\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section title={title}>\n <Tabs\n panel=\"right\"\n tabs={tabs}\n />\n <Settings\n key={selectedItem.id}\n element={element}\n item={selectedItem}\n itemAccessor={itemAccessor}\n onChange={updateFunc}\n settings={tabsWithSettings}\n tabs={tabs}\n />\n </Section>\n </div>\n </Panel>\n </>\n );\n};\n\nRightPanel.propTypes = {\n itemAccessor: PropTypes.func,\n onItemChange: PropTypes.func,\n onPageChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nRightPanel.defaultProps = {\n itemAccessor: () => { },\n onItemChange: () => { },\n onPageChange: () => { },\n onSettingChange: () => { },\n pages: [],\n};\n\nexport default memo(RightPanel);\n"],"names":["exceptionalClasses","RightPanel","itemAccessor","onItemChange","onPageChange","onSettingChange","pages","useBuilderContext","activeTab","editedElement","isRightPanelOpen","isSlidesPanelOpen","setActiveElement","setActiveTab","setIsRightPanelOpen","usePropContext","acceptedItems","layoutSettings","settings","panelRef","useRef","useTranslatedTexts","LAYOUT_SETTINGS","PAGE_SETTINGS","SETTINGS","settingMap","i_","details","id","item","findItemById","itemType","title","capitalize","updater","l_","REPORT_SETTINGS_ITEM_TYPE","Layout","p_","backgroundColor","reportBackgroundColor","find","page","PAGE_SETTINGS_ITEM_TYPE","pageItem","Page","map","setting","key","editedEl","editedElId","selectedItem","element","updateFunc","panelConfig","fallback","substr","checkSelectedItem","Object","keys","length","e","tabsWithSettings","getTabsWithSettings","tabs","useEffect","currentTab","right","panelAdditionalClassName","classNames","isIdle","otherOpened","onClickOutsideForPanel","current","contains","target","document","activeElement","Array","from","classList","some","xClass","includes","closest","window","addEventListener","removeEventListener","_jsx","_jsxs","propTypes","PropTypes","func","arrayOf","shape","defaultProps","memo"],"mappings":"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"}
|
|
@@ -96,7 +96,7 @@ var SlidesPanel = function SlidesPanel(_ref) {
|
|
|
96
96
|
return /*#__PURE__*/jsxs(Panel, {
|
|
97
97
|
additionalClassName: panelAdditionalClassName,
|
|
98
98
|
onAnimationEnd: onAnimationEnd,
|
|
99
|
-
children: [/*#__PURE__*/jsx(SlidesPanelToggler, {
|
|
99
|
+
children: [isRightPanelOpen ? null : /*#__PURE__*/jsx(SlidesPanelToggler, {
|
|
100
100
|
onClosePanel: onClosePanel
|
|
101
101
|
}), (isSlidesPanelOpen || !isSlidesPanelOpen && !animationEnd) && /*#__PURE__*/jsx("div", {
|
|
102
102
|
className: "toolItemWrapper f-height d-flex dir-col",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { memo, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FixedSizeList } from 'react-window';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { arrayMove } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport Button from '../../Settings/Button';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n onPageAdd,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const {\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsAllSlidesPanelOpen,\n setIsSlidesPanelOpen,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings: reportSettings,\n useExperimentalFeatures,\n } = usePropContext();\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }, nativeEvent, ref) => {\n const instance = ref.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n\n list.forceUpdate();\n }, [pages]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n <SlidesPanelToggler onClosePanel={onClosePanel}
|
|
1
|
+
{"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { memo, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FixedSizeList } from 'react-window';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderContext } from '../../../utils/builderContext';\nimport { usePropContext } from '../../../utils/propContext';\nimport { arrayMove } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport Button from '../../Settings/Button';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = ({\n additionalPageItems,\n hashCode,\n itemAccessor,\n onPageAdd,\n onPageDuplicate,\n onPageOrdersChange,\n onPageRemove,\n pages,\n}) => {\n const {\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsAllSlidesPanelOpen,\n setIsSlidesPanelOpen,\n } = useBuilderContext();\n const {\n acceptedItems,\n disableInteraction,\n onAnEventTrigger,\n settings: reportSettings,\n useExperimentalFeatures,\n } = usePropContext();\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }, nativeEvent, ref) => {\n const instance = ref.getWrappedInstance();\n const list = instance.sortablePageListRef.current;\n\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n\n list.forceUpdate();\n }, [pages]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n\n return (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n {isRightPanelOpen\n ? null\n : <SlidesPanelToggler onClosePanel={onClosePanel} />}\n {(isSlidesPanelOpen || (!isSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section\n additionalComponent={useExperimentalFeatures ? (\n <Button\n classNames=\"jfReportButton isAccent showAll\"\n icon=\"allSlides\"\n onClick={() => setIsAllSlidesPanelOpen(true)}\n title=\"Show All\"\n />\n ) : null}\n icon=\"slides\"\n title={SLIDES}\n >\n <div className=\"toolItem-tabContent hasInnerScroll\">\n <ListWrapper\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n component={SortablePageList(FixedSizeList)}\n disableInteraction={disableInteraction}\n hashCode={hashCode}\n itemAccessor={itemAccessor}\n onAnEventTrigger={onAnEventTrigger}\n onPageAdd={onPageAdd}\n onPageDuplicate={onPageDuplicate}\n onPageRemove={onPageRemove}\n onSortEnd={onPageSort}\n pageCount={pages.length}\n pageGetter={pageGetter}\n reportSettings={reportSettings}\n />\n </div>\n </Section>\n </div>\n )}\n </Panel>\n );\n};\n\nSlidesPanel.propTypes = {\n additionalPageItems: PropTypes.arrayOf(PropTypes.node),\n hashCode: PropTypes.string,\n itemAccessor: PropTypes.func,\n onPageAdd: PropTypes.func,\n onPageDuplicate: PropTypes.func,\n onPageOrdersChange: PropTypes.func,\n onPageRemove: PropTypes.func,\n pages: PropTypes.arrayOf(\n PropTypes.shape({}),\n ),\n};\n\nSlidesPanel.defaultProps = {\n additionalPageItems: [],\n hashCode: '',\n itemAccessor: () => { },\n onPageAdd: () => { },\n onPageDuplicate: () => { },\n onPageOrdersChange: () => { },\n onPageRemove: () => { },\n pages: [],\n};\n\nexport default memo(SlidesPanel);\n"],"names":["SlidesPanel","additionalPageItems","hashCode","itemAccessor","onPageAdd","onPageDuplicate","onPageOrdersChange","onPageRemove","pages","useBuilderContext","isRightPanelOpen","isSlidesPanelOpen","setIsAllSlidesPanelOpen","setIsSlidesPanelOpen","usePropContext","acceptedItems","disableInteraction","onAnEventTrigger","reportSettings","settings","useExperimentalFeatures","useState","animationEnd","setAnimationEnd","pageGetter","useCallback","index","onPageSort","nativeEvent","ref","newIndex","oldIndex","instance","getWrappedInstance","list","sortablePageListRef","current","newPageOrders","arrayMove","reduce","acc","page","id","order","forceUpdate","panelAdditionalClassName","classNames","isIdle","otherOpened","onClosePanel","onAnimationEnd","useClickOutsideListener","useTranslatedTexts","SLIDES","_jsxs","_jsx","SortablePageList","FixedSizeList","length","propTypes","PropTypes","arrayOf","node","string","func","shape","defaultProps","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAMA,WAAW,GAAG,SAAdA,WAAc,OASd;AAAA,MARJC,mBAQI,QARJA,mBAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,YAMI,QANJA,YAMI;AAAA,MALJC,SAKI,QALJA,SAKI;AAAA,MAJJC,eAII,QAJJA,eAII;AAAA,MAHJC,kBAGI,QAHJA,kBAGI;AAAA,MAFJC,YAEI,QAFJA,YAEI;AAAA,MADJC,KACI,QADJA,KACI;;AACJ,2BAKIC,iBAAiB,EALrB;AAAA,MACEC,gBADF,sBACEA,gBADF;AAAA,MAEEC,iBAFF,sBAEEA,iBAFF;AAAA,MAGEC,uBAHF,sBAGEA,uBAHF;AAAA,MAIEC,oBAJF,sBAIEA,oBAJF;;AAMA,wBAMIC,cAAc,EANlB;AAAA,MACEC,aADF,mBACEA,aADF;AAAA,MAEEC,kBAFF,mBAEEA,kBAFF;AAAA,MAGEC,gBAHF,mBAGEA,gBAHF;AAAA,MAIYC,cAJZ,mBAIEC,QAJF;AAAA,MAKEC,uBALF,mBAKEA,uBALF;;AAOA,kBAAwCC,QAAQ,CAAC,IAAD,CAAhD;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAEA,MAAMC,UAAU,GAAGC,WAAW,CAAC,UAAAC,KAAK,EAAI;AACtC,WAAOlB,KAAK,CAACkB,KAAD,CAAZ;AACD,GAF6B,EAE3B,CAAClB,KAAD,CAF2B,CAA9B;AAIA,MAAMmB,UAAU,GAAGF,WAAW,CAAC,iBAAyBG,WAAzB,EAAsCC,GAAtC,EAA8C;AAAA,QAA3CC,QAA2C,SAA3CA,QAA2C;AAAA,QAAjCC,QAAiC,SAAjCA,QAAiC;AAC3E,QAAMC,QAAQ,GAAGH,GAAG,CAACI,kBAAJ,EAAjB;AACA,QAAMC,IAAI,GAAGF,QAAQ,CAACG,mBAAT,CAA6BC,OAA1C;AAEA,QAAMC,aAAa,GAAGC,SAAS,CAAC9B,KAAD,EAAQuB,QAAR,EAAkBD,QAAlB,CAAT,CAAqCS,MAArC,CAA4C,UAACC,GAAD,EAAMC,IAAN,EAAYf,KAAZ,EAAsB;AACtFc,MAAAA,GAAG,CAACC,IAAI,CAACC,EAAN,CAAH,GAAe;AAAEC,QAAAA,KAAK,EAAEjB,KAAK,GAAG;AAAjB,OAAf;AACA,aAAOc,GAAP;AACD,KAHqB,EAGnB,EAHmB,CAAtB;AAKAlC,IAAAA,kBAAkB,CAAC+B,aAAD,CAAlB;AACApB,IAAAA,gBAAgB,CAAC,oBAAD,CAAhB;AAEAiB,IAAAA,IAAI,CAACU,WAAL;AACD,GAb6B,EAa3B,CAACpC,KAAD,CAb2B,CAA9B,CApBI;;AAoCJ,MAAMqC,wBAAwB,GAAGC,UAAU,CACzC,sCADyC,EAEzC;AACEC,IAAAA,MAAM,EAAE,CAACpC,iBADX;AAEEqC,IAAAA,WAAW,EAAEtC;AAFf,GAFyC,CAA3C;;AAQA,MAAMuC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB1B,IAAAA,eAAe,CAAC,KAAD,CAAf;AACAV,IAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD,GAHD;;AAKA,MAAMqC,cAAc,GAAGzB,WAAW,CAAC,YAAM;AACvC,QAAI,CAACd,iBAAL,EAAwB;AACtBY,MAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,GAJiC,EAI/B,CAACZ,iBAAD,CAJ+B,CAAlC;AAMAwC,EAAAA,uBAAuB,CACrB,CAAC,iBAAD,EAAoB,mBAApB,EAAyC,mBAAzC,CADqB,EAErBxC,iBAFqB,EAGrBsC,YAHqB,CAAvB;;AAMA,4BAAmBG,kBAAkB,EAArC;AAAA,MAAQC,MAAR,uBAAQA,MAAR;;AAEA,sBACEC,KAAC,KAAD;AACE,IAAA,mBAAmB,EAAET,wBADvB;AAEE,IAAA,cAAc,EAAEK,cAFlB;AAAA,eAIGxC,gBAAgB,GACb,IADa,gBAEb6C,IAAC,kBAAD;AAAoB,MAAA,YAAY,EAAEN;AAAlC,MANN,EAOG,CAACtC,iBAAiB,IAAK,CAACA,iBAAD,IAAsB,CAACW,YAA9C,kBACCiC;AAAK,MAAA,SAAS,EAAC,yCAAf;AAAA,6BACEA,IAAC,OAAD;AACE,QAAA,mBAAmB,EAAEnC,uBAAuB,gBAC1CmC,IAAC,MAAD;AACE,UAAA,UAAU,EAAC,iCADb;AAEE,UAAA,IAAI,EAAC,WAFP;AAGE,UAAA,OAAO,EAAE;AAAA,mBAAM3C,uBAAuB,CAAC,IAAD,CAA7B;AAAA,WAHX;AAIE,UAAA,KAAK,EAAC;AAJR,UAD0C,GAOxC,IARN;AASE,QAAA,IAAI,EAAC,QATP;AAUE,QAAA,KAAK,EAAEyC,MAVT;AAAA,+BAYEE;AAAK,UAAA,SAAS,EAAC,oCAAf;AAAA,iCACEA,IAAC,WAAD;AACE,YAAA,aAAa,EAAExC,aADjB;AAEE,YAAA,mBAAmB,EAAEd,mBAFvB;AAGE,YAAA,SAAS,EAAEuD,gBAAgB,CAACC,aAAD,CAH7B;AAIE,YAAA,kBAAkB,EAAEzC,kBAJtB;AAKE,YAAA,QAAQ,EAAEd,QALZ;AAME,YAAA,YAAY,EAAEC,YANhB;AAOE,YAAA,gBAAgB,EAAEc,gBAPpB;AAQE,YAAA,SAAS,EAAEb,SARb;AASE,YAAA,eAAe,EAAEC,eATnB;AAUE,YAAA,YAAY,EAAEE,YAVhB;AAWE,YAAA,SAAS,EAAEoB,UAXb;AAYE,YAAA,SAAS,EAAEnB,KAAK,CAACkD,MAZnB;AAaE,YAAA,UAAU,EAAElC,UAbd;AAcE,YAAA,cAAc,EAAEN;AAdlB;AADF;AAZF;AADF,MARJ;AAAA,IADF;AA6CD,CArHD;;AAuHAlB,WAAW,CAAC2D,SAAZ,GAAwB;AACtB1D,EAAAA,mBAAmB,EAAE2D,SAAS,CAACC,OAAV,CAAkBD,SAAS,CAACE,IAA5B,CADC;AAEtB5D,EAAAA,QAAQ,EAAE0D,SAAS,CAACG,MAFE;AAGtB5D,EAAAA,YAAY,EAAEyD,SAAS,CAACI,IAHF;AAItB5D,EAAAA,SAAS,EAAEwD,SAAS,CAACI,IAJC;AAKtB3D,EAAAA,eAAe,EAAEuD,SAAS,CAACI,IALL;AAMtB1D,EAAAA,kBAAkB,EAAEsD,SAAS,CAACI,IANR;AAOtBzD,EAAAA,YAAY,EAAEqD,SAAS,CAACI,IAPF;AAQtBxD,EAAAA,KAAK,EAAEoD,SAAS,CAACC,OAAV,CACLD,SAAS,CAACK,KAAV,CAAgB,EAAhB,CADK;AARe,CAAxB;AAaAjE,WAAW,CAACkE,YAAZ,GAA2B;AACzBjE,EAAAA,mBAAmB,EAAE,EADI;AAEzBC,EAAAA,QAAQ,EAAE,EAFe;AAGzBC,EAAAA,YAAY,EAAE,wBAAM,EAHK;AAIzBC,EAAAA,SAAS,EAAE,qBAAM,EAJQ;AAKzBC,EAAAA,eAAe,EAAE,2BAAM,EALE;AAMzBC,EAAAA,kBAAkB,EAAE,8BAAM,EAND;AAOzBC,EAAAA,YAAY,EAAE,wBAAM,EAPK;AAQzBC,EAAAA,KAAK,EAAE;AARkB,CAA3B;AAWA,iCAAe2D,IAAI,CAACnE,WAAD,CAAnB;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'core-js/modules/es.array.map.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import ReactQuill from 'react-quill';
|
|
4
|
+
import domPurify from 'dompurify';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
6
|
import { modules, formats } from './textEditorConstants.js';
|
|
6
7
|
import { fontSizes } from '../../constants/fonts.js';
|
|
@@ -65,6 +66,11 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
65
66
|
}
|
|
66
67
|
});
|
|
67
68
|
|
|
69
|
+
_defineProperty(_assertThisInitialized(_this), "handleSetContent", function (value) {
|
|
70
|
+
var setContent = _this.props.setContent;
|
|
71
|
+
setContent(domPurify.sanitize(value));
|
|
72
|
+
});
|
|
73
|
+
|
|
68
74
|
_this.quill = /*#__PURE__*/React.createRef();
|
|
69
75
|
return _this;
|
|
70
76
|
}
|
|
@@ -88,8 +94,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
88
94
|
value: function render() {
|
|
89
95
|
var _this$props2 = this.props,
|
|
90
96
|
content = _this$props2.content,
|
|
91
|
-
placeholder = _this$props2.placeholder
|
|
92
|
-
setContent = _this$props2.setContent;
|
|
97
|
+
placeholder = _this$props2.placeholder;
|
|
93
98
|
return /*#__PURE__*/jsx("div", {
|
|
94
99
|
className: "f-all",
|
|
95
100
|
onKeyDown: this.handleKeyDown,
|
|
@@ -97,7 +102,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
97
102
|
ref: this.quill,
|
|
98
103
|
formats: QuillEditor.formats,
|
|
99
104
|
modules: QuillEditor.modules,
|
|
100
|
-
onChange:
|
|
105
|
+
onChange: this.handleSetContent,
|
|
101
106
|
placeholder: placeholder,
|
|
102
107
|
preserveWhitespace: true,
|
|
103
108
|
value: content
|
|
@@ -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 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 render() {\n const {
|
|
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 => {\n const { setContent } = this.props;\n setContent(domPurify.sanitize(value));\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,\n setContent: PropTypes.func,\n setIsTextEditorOpen: PropTypes.func,\n};\n\nQuillEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n placeholder: 'Click to edit text',\n setContent: () => {},\n setIsTextEditorOpen: () => {},\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","setContent","domPurify","sanitize","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","_jsx","handleKeyDown","formats","modules","handleSetContent","PureComponent","propTypes","PropTypes","string","func","defaultProps"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
24
24
|
isSelected = _ref.isSelected,
|
|
25
25
|
placeholder = _ref.placeholder;
|
|
26
26
|
|
|
27
|
-
var _useState = useState(content),
|
|
27
|
+
var _useState = useState(domPurify.sanitize(content)),
|
|
28
28
|
_useState2 = _slicedToArray(_useState, 2),
|
|
29
29
|
_content = _useState2[0],
|
|
30
30
|
setContent = _useState2[1];
|
|
@@ -40,7 +40,7 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
40
40
|
}, [isSelected, isLocked]);
|
|
41
41
|
var isNotEmpty = useMemo(function () {
|
|
42
42
|
var el = document.createElement('div');
|
|
43
|
-
el.innerHTML =
|
|
43
|
+
el.innerHTML = _content;
|
|
44
44
|
return !!el.innerText;
|
|
45
45
|
}, [_content]);
|
|
46
46
|
return isSelected && isTextEditorOpen ? /*#__PURE__*/jsx(QuillEditor, {
|
|
@@ -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 { useBuilderContext } from '../../utils/builderContext';\n\nconst TextEditor = ({\n content,\n handleSave,\n isLocked,\n isSelected,\n placeholder,\n}) => {\n const [_content, setContent] = useState(content);\n\n const { isTextEditorOpen, setIsTextEditorOpen } = useBuilderContext();\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked]);\n\n const isNotEmpty = useMemo(() => {\n const el = document.createElement('div');\n el.innerHTML =
|
|
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 { useBuilderContext } from '../../utils/builderContext';\n\nconst TextEditor = ({\n content,\n handleSave,\n isLocked,\n isSelected,\n placeholder,\n}) => {\n const [_content, setContent] = useState(domPurify.sanitize(content));\n\n const { isTextEditorOpen, setIsTextEditorOpen } = useBuilderContext();\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked]);\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,\n};\n\nTextEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n isLocked: false,\n isSelected: false,\n placeholder: 'Click to edit text',\n};\n\nexport default TextEditor;\n"],"names":["TextEditor","content","handleSave","isLocked","isSelected","placeholder","useState","domPurify","sanitize","_content","setContent","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;IAMMA,UAAU,GAAG,SAAbA,UAAa,OAMb;AAAA,MALJC,OAKI,QALJA,OAKI;AAAA,MAJJC,UAII,QAJJA,UAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJC,UAEI,QAFJA,UAEI;AAAA,MADJC,WACI,QADJA,WACI;;AACJ,kBAA+BC,QAAQ,CAACC,SAAS,CAACC,QAAV,CAAmBP,OAAnB,CAAD,CAAvC;AAAA;AAAA,MAAOQ,QAAP;AAAA,MAAiBC,UAAjB;;AAEA,2BAAkDC,iBAAiB,EAAnE;AAAA,MAAQC,gBAAR,sBAAQA,gBAAR;AAAA,MAA0BC,mBAA1B,sBAA0BA,mBAA1B;;AAEA,MAAMC,OAAO,GAAGC,WAAW,CAAC,YAAM;AAChC,QAAIX,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BU,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACT,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMa,UAAU,GAAGC,OAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAeZ,QAAf;AACA,WAAO,CAAC,CAACS,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAACb,QAAD,CAJuB,CAA1B;AAMA,SAAOL,UAAU,IAAIQ,gBAAd,gBACLW,IAAC,WAAD;AACE,IAAA,OAAO,EAAEd,QADX;AAEE,IAAA,UAAU,EAAEP,UAFd;AAGE,IAAA,WAAW,EAAEG,WAHf;AAIE,IAAA,UAAU,EAAEK,UAJd;AAKE,IAAA,mBAAmB,EAAEG;AALvB,IADK,gBASLU;AACE,IAAA,SAAS,2BAAoBP,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBQ,MAAAA,MAAM,EAAER,UAAU,GAAGP,QAAH,GAAcJ;AADT,KAF3B;AAKE,IAAA,OAAO,EAAES,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDd,UAAU,CAACyB,SAAX,GAAuB;AACrBxB,EAAAA,OAAO,EAAEyB,SAAS,CAACC,MADE;AAErBzB,EAAAA,UAAU,EAAEwB,SAAS,CAACE,IAFD;AAGrBzB,EAAAA,QAAQ,EAAEuB,SAAS,CAACG,IAHC;AAIrBzB,EAAAA,UAAU,EAAEsB,SAAS,CAACG,IAJD;AAKrBxB,EAAAA,WAAW,EAAEqB,SAAS,CAACC;AALF,CAAvB;AAQA3B,UAAU,CAAC8B,YAAX,GAA0B;AACxB7B,EAAAA,OAAO,EAAE,EADe;AAExBC,EAAAA,UAAU,EAAE,sBAAM,EAFM;AAGxBC,EAAAA,QAAQ,EAAE,KAHc;AAIxBC,EAAAA,UAAU,EAAE,KAJY;AAKxBC,EAAAA,WAAW,EAAE;AALW,CAA1B;;;;"}
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
color: #fff;
|
|
157
157
|
display: block;
|
|
158
158
|
position: absolute;
|
|
159
|
-
width:
|
|
159
|
+
width: 165px;
|
|
160
160
|
z-index: 10;
|
|
161
161
|
box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.2);
|
|
162
162
|
}
|
|
@@ -171,6 +171,7 @@
|
|
|
171
171
|
height: 45px;
|
|
172
172
|
width: 100%;
|
|
173
173
|
font-size: 0.875rem;
|
|
174
|
+
padding-left: 14px;
|
|
174
175
|
|
|
175
176
|
.contextMenu-icon {
|
|
176
177
|
margin-right: 9px;
|
|
@@ -140,7 +140,9 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
140
140
|
});
|
|
141
141
|
|
|
142
142
|
_defineProperty(_assertThisInitialized(_this), "setIsRightPanelOpen", function (status) {
|
|
143
|
-
var
|
|
143
|
+
var _this$state = _this.state,
|
|
144
|
+
isEnoughCanvasSize = _this$state.isEnoughCanvasSize,
|
|
145
|
+
onRightPanelsToggled = _this$state.onRightPanelsToggled;
|
|
144
146
|
|
|
145
147
|
_this.setState(_objectSpread(_objectSpread({
|
|
146
148
|
isRightPanelOpen: status
|
|
@@ -149,10 +151,14 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
149
151
|
}), status && {
|
|
150
152
|
isSlidesPanelOpen: false
|
|
151
153
|
}));
|
|
154
|
+
|
|
155
|
+
onRightPanelsToggled(status);
|
|
152
156
|
});
|
|
153
157
|
|
|
154
158
|
_defineProperty(_assertThisInitialized(_this), "setIsSlidesPanelOpen", function (status) {
|
|
155
|
-
var
|
|
159
|
+
var _this$state2 = _this.state,
|
|
160
|
+
isEnoughCanvasSize = _this$state2.isEnoughCanvasSize,
|
|
161
|
+
onRightPanelsToggled = _this$state2.onRightPanelsToggled;
|
|
156
162
|
|
|
157
163
|
_this.setState(_objectSpread(_objectSpread({
|
|
158
164
|
isSlidesPanelOpen: status
|
|
@@ -161,6 +167,8 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
161
167
|
}), status && {
|
|
162
168
|
isRightPanelOpen: false
|
|
163
169
|
}));
|
|
170
|
+
|
|
171
|
+
onRightPanelsToggled(status);
|
|
164
172
|
});
|
|
165
173
|
|
|
166
174
|
_defineProperty(_assertThisInitialized(_this), "setIsAllSlidesPanelOpen", function (status) {
|
|
@@ -222,6 +230,7 @@ var BuilderProvider = /*#__PURE__*/function (_React$Component) {
|
|
|
222
230
|
isLeftPanelOpen: props.isLeftPanelOpen,
|
|
223
231
|
isRightPanelOpen: props.isRightPanelOpen,
|
|
224
232
|
isSlidesPanelOpen: props.isSlidesPanelOpen,
|
|
233
|
+
onRightPanelsToggled: props.onRightPanelsToggled,
|
|
225
234
|
setActiveElement: _this.setActiveElement,
|
|
226
235
|
setActiveTab: _this.setActiveTab,
|
|
227
236
|
setContextMenuProps: _this.setContextMenuProps,
|
|
@@ -259,7 +268,13 @@ BuilderProvider.propTypes = {
|
|
|
259
268
|
isEnoughCanvasSize: PropTypes.bool,
|
|
260
269
|
isLeftPanelOpen: PropTypes.bool,
|
|
261
270
|
isRightPanelOpen: PropTypes.bool,
|
|
262
|
-
isSlidesPanelOpen: PropTypes.bool
|
|
271
|
+
isSlidesPanelOpen: PropTypes.bool,
|
|
272
|
+
|
|
273
|
+
/** Function called when a slides or right panel is toggled
|
|
274
|
+
* takes a boolean value to indicate whether or not the panel
|
|
275
|
+
* is toggled open.
|
|
276
|
+
*/
|
|
277
|
+
onRightPanelsToggled: PropTypes.func
|
|
263
278
|
};
|
|
264
279
|
BuilderProvider.defaultProps = {
|
|
265
280
|
activeElement: null,
|
|
@@ -273,7 +288,8 @@ BuilderProvider.defaultProps = {
|
|
|
273
288
|
isEnoughCanvasSize: false,
|
|
274
289
|
isLeftPanelOpen: false,
|
|
275
290
|
isRightPanelOpen: false,
|
|
276
|
-
isSlidesPanelOpen: false
|
|
291
|
+
isSlidesPanelOpen: false,
|
|
292
|
+
onRightPanelsToggled: function onRightPanelsToggled() {}
|
|
277
293
|
};
|
|
278
294
|
BuilderContext.Consumer;
|
|
279
295
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builderContext.js","sources":["../../../src/utils/builderContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const BuilderContext = createContext({\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n contextMenuProps: false,\n editedElement: 'l_layout',\n isAllSlidesPanelOpen: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n isTextEditorOpen: false,\n setActiveElement: () => {},\n setActiveTab: () => {},\n setContextMenuProps: () => {},\n setEditedElement: () => {},\n setIsAllSlidesPanelOpen: () => {},\n setIsLeftPanelOpen: () => {},\n setIsRightPanelOpen: () => {},\n setIsSlidesPanelOpen: () => {},\n setIsTextEditorOpen: () => {},\n setZoom: () => {},\n zoom: 1,\n});\n\nexport const useBuilderContext = () => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('BuilderContext must be used with BuilderProvider!');\n }\n return context;\n};\n\nexport class BuilderProvider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeElement: props.activeElement,\n activeTab: props.activeTab,\n contextMenuProps: props.contextMenuProps,\n editedElement: props.editedElement,\n isEnoughCanvasSize: props.isEnoughCanvasSize,\n isLeftPanelOpen: props.isLeftPanelOpen,\n isRightPanelOpen: props.isRightPanelOpen,\n isSlidesPanelOpen: props.isSlidesPanelOpen,\n setActiveElement: this.setActiveElement,\n setActiveTab: this.setActiveTab,\n setContextMenuProps: this.setContextMenuProps,\n setEditedElement: this.setEditedElement,\n setIsAllSlidesPanelOpen: this.setIsAllSlidesPanelOpen,\n setIsLeftPanelOpen: this.setIsLeftPanelOpen,\n setIsRightPanelOpen: this.setIsRightPanelOpen,\n setIsSlidesPanelOpen: this.setIsSlidesPanelOpen,\n setIsTextEditorOpen: this.setIsTextEditorOpen,\n setZoom: this.setZoom,\n zoom: 1,\n };\n }\n\n setActiveElement = (itemID, edit = true, multiple = false) => {\n if (!multiple) {\n const config = {\n activeElement: itemID === null ? null : [itemID],\n };\n if (edit) {\n const editedElement = !itemID ? 'l_layout' : `i_${itemID}`;\n config.editedElement = editedElement;\n }\n this.setState(config);\n } else {\n const { activeElement } = this.state;\n const config = {\n activeElement: activeElement === null ? [itemID] : [...activeElement, itemID],\n };\n this.setState(config);\n }\n };\n\n setEditedElement = id => {\n this.setState(prevState => {\n if (prevState.editedElement !== id) {\n return { editedElement: id };\n }\n return null;\n });\n }\n\n setActiveTab = (panel, tabIndex) => {\n const { activeTab } = this.state;\n this.setState({ activeTab: { ...activeTab, [panel]: tabIndex } });\n };\n\n setContextMenuProps = status => {\n this.setState({ contextMenuProps: status });\n }\n\n setIsRightPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n };\n\n setIsSlidesPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n };\n\n setIsAllSlidesPanelOpen = status => {\n this.setState({\n isAllSlidesPanelOpen: status,\n });\n };\n\n setIsLeftPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n };\n\n setIsTextEditorOpen = status => {\n this.setState({ isTextEditorOpen: status });\n }\n\n setZoom = (zoom, isModeCustomize = false, layoutWidth, onLoad = false) => {\n this.setState({ zoom });\n if (isModeCustomize && !onLoad) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n this.setState({ isEnoughCanvasSize: true });\n } else {\n this.setState({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <BuilderContext.Provider value={this.state}>\n {children}\n </BuilderContext.Provider>\n );\n }\n}\n\nBuilderProvider.propTypes = {\n activeElement: PropTypes.string,\n activeTab: PropTypes.shape({}),\n children: PropTypes.any,\n contextMenuProps: PropTypes.shape({}),\n editedElement: PropTypes.string,\n isEnoughCanvasSize: PropTypes.bool,\n isLeftPanelOpen: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSlidesPanelOpen: PropTypes.bool,\n};\n\nBuilderProvider.defaultProps = {\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n children: null,\n contextMenuProps: null,\n editedElement: 'l_layout',\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n"],"names":["BuilderContext","createContext","activeElement","activeTab","left","right","contextMenuProps","editedElement","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","setActiveElement","setActiveTab","setContextMenuProps","setEditedElement","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setZoom","zoom","useBuilderContext","context","useContext","Error","BuilderProvider","props","itemID","edit","multiple","config","setState","state","id","prevState","panel","tabIndex","status","isEnoughCanvasSize","isModeCustomize","layoutWidth","onLoad","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","children","_jsx","React","Component","propTypes","PropTypes","string","shape","any","bool","defaultProps","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,cAAc,gBAAGC,aAAa,CAAC;AAC1CC,EAAAA,aAAa,EAAE,IAD2B;AAE1CC,EAAAA,SAAS,EAAE;AAAEC,IAAAA,IAAI,EAAE,CAAR;AAAWC,IAAAA,KAAK,EAAE;AAAlB,GAF+B;AAG1CC,EAAAA,gBAAgB,EAAE,KAHwB;AAI1CC,EAAAA,aAAa,EAAE,UAJ2B;AAK1CC,EAAAA,oBAAoB,EAAE,KALoB;AAM1CC,EAAAA,eAAe,EAAE,KANyB;AAO1CC,EAAAA,gBAAgB,EAAE,KAPwB;AAQ1CC,EAAAA,iBAAiB,EAAE,KARuB;AAS1CC,EAAAA,gBAAgB,EAAE,KATwB;AAU1CC,EAAAA,gBAAgB,EAAE,4BAAM,EAVkB;AAW1CC,EAAAA,YAAY,EAAE,wBAAM,EAXsB;AAY1CC,EAAAA,mBAAmB,EAAE,+BAAM,EAZe;AAa1CC,EAAAA,gBAAgB,EAAE,4BAAM,EAbkB;AAc1CC,EAAAA,uBAAuB,EAAE,mCAAM,EAdW;AAe1CC,EAAAA,kBAAkB,EAAE,8BAAM,EAfgB;AAgB1CC,EAAAA,mBAAmB,EAAE,+BAAM,EAhBe;AAiB1CC,EAAAA,oBAAoB,EAAE,gCAAM,EAjBc;AAkB1CC,EAAAA,mBAAmB,EAAE,+BAAM,EAlBe;AAmB1CC,EAAAA,OAAO,EAAE,mBAAM,EAnB2B;AAoB1CC,EAAAA,IAAI,EAAE;AApBoC,CAAD;IAuB9BC,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AACrC,MAAMC,OAAO,GAAGC,UAAU,CAAC1B,cAAD,CAA1B;;AACA,MAAI,CAACyB,OAAL,EAAc;AACZ,UAAM,IAAIE,KAAJ,CAAU,mDAAV,CAAN;AACD;;AACD,SAAOF,OAAP;AACD;IAEYG,eAAb;AAAA;;AAAA;;AACE,2BAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;;AADiB,uEAyBA,UAACC,MAAD,EAA2C;AAAA,UAAlCC,IAAkC,uEAA3B,IAA2B;AAAA,UAArBC,QAAqB,uEAAV,KAAU;;AAC5D,UAAI,CAACA,QAAL,EAAe;AACb,YAAMC,MAAM,GAAG;AACb/B,UAAAA,aAAa,EAAE4B,MAAM,KAAK,IAAX,GAAkB,IAAlB,GAAyB,CAACA,MAAD;AAD3B,SAAf;;AAGA,YAAIC,IAAJ,EAAU;AACR,cAAMxB,aAAa,GAAG,CAACuB,MAAD,GAAU,UAAV,eAA4BA,MAA5B,CAAtB;AACAG,UAAAA,MAAM,CAAC1B,aAAP,GAAuBA,aAAvB;AACD;;AACD,cAAK2B,QAAL,CAAcD,MAAd;AACD,OATD,MASO;AACL,YAAQ/B,aAAR,GAA0B,MAAKiC,KAA/B,CAAQjC,aAAR;AACA,YAAM+B,OAAM,GAAG;AACb/B,UAAAA,aAAa,EAAEA,aAAa,KAAK,IAAlB,GAAyB,CAAC4B,MAAD,CAAzB,gCAAwC5B,aAAxC,IAAuD4B,MAAvD;AADF,SAAf;;AAGA,cAAKI,QAAL,CAAcD,OAAd;AACD;AACF,KA1CkB;;AAAA,uEA4CA,UAAAG,EAAE,EAAI;AACvB,YAAKF,QAAL,CAAc,UAAAG,SAAS,EAAI;AACzB,YAAIA,SAAS,CAAC9B,aAAV,KAA4B6B,EAAhC,EAAoC;AAClC,iBAAO;AAAE7B,YAAAA,aAAa,EAAE6B;AAAjB,WAAP;AACD;;AACD,eAAO,IAAP;AACD,OALD;AAMD,KAnDkB;;AAAA,mEAqDJ,UAACE,KAAD,EAAQC,QAAR,EAAqB;AAClC,UAAQpC,SAAR,GAAsB,MAAKgC,KAA3B,CAAQhC,SAAR;;AACA,YAAK+B,QAAL,CAAc;AAAE/B,QAAAA,SAAS,kCAAOA,SAAP,2BAAmBmC,KAAnB,EAA2BC,QAA3B;AAAX,OAAd;AACD,KAxDkB;;AAAA,0EA0DG,UAAAC,MAAM,EAAI;AAC9B,YAAKN,QAAL,CAAc;AAAE5B,QAAAA,gBAAgB,EAAEkC;AAApB,OAAd;AACD,KA5DkB;;AAAA,0EA8DG,UAAAA,MAAM,EAAI;AAC9B,UAAQC,kBAAR,GAA+B,MAAKN,KAApC,CAAQM,kBAAR;;AACA,YAAKP,QAAL;AACExB,QAAAA,gBAAgB,EAAE8B;AADpB,SAEKA,MAAM,IAAI,CAACC,kBAAX,IAAiC;AAAEhC,QAAAA,eAAe,EAAE;AAAnB,OAFtC,GAGK+B,MAAM,IAAI;AAAE7B,QAAAA,iBAAiB,EAAE;AAArB,OAHf;AAKD,KArEkB;;AAAA,2EAuEI,UAAA6B,MAAM,EAAI;AAC/B,UAAQC,kBAAR,GAA+B,MAAKN,KAApC,CAAQM,kBAAR;;AACA,YAAKP,QAAL;AACEvB,QAAAA,iBAAiB,EAAE6B;AADrB,SAEKA,MAAM,IAAI,CAACC,kBAAX,IAAiC;AAAEhC,QAAAA,eAAe,EAAE;AAAnB,OAFtC,GAGK+B,MAAM,IAAI;AAAE9B,QAAAA,gBAAgB,EAAE;AAApB,OAHf;AAKD,KA9EkB;;AAAA,8EAgFO,UAAA8B,MAAM,EAAI;AAClC,YAAKN,QAAL,CAAc;AACZ1B,QAAAA,oBAAoB,EAAEgC;AADV,OAAd;AAGD,KApFkB;;AAAA,yEAsFE,UAAAA,MAAM,EAAI;AAC7B,UAAQC,kBAAR,GAA+B,MAAKN,KAApC,CAAQM,kBAAR;;AACA,YAAKP,QAAL;AACEzB,QAAAA,eAAe,EAAE+B;AADnB,SAEKA,MAAM,IAAI,CAACC,kBAAX,IAAiC;AAAE/B,QAAAA,gBAAgB,EAAE;AAApB,OAFtC;AAID,KA5FkB;;AAAA,0EA8FG,UAAA8B,MAAM,EAAI;AAC9B,YAAKN,QAAL,CAAc;AAAEtB,QAAAA,gBAAgB,EAAE4B;AAApB,OAAd;AACD,KAhGkB;;AAAA,8DAkGT,UAACjB,IAAD,EAAgE;AAAA,UAAzDmB,eAAyD,uEAAvC,KAAuC;AAAA,UAAhCC,WAAgC;AAAA,UAAnBC,MAAmB,uEAAV,KAAU;;AACxE,YAAKV,QAAL,CAAc;AAAEX,QAAAA,IAAI,EAAJA;AAAF,OAAd;;AACA,UAAImB,eAAe,IAAI,CAACE,MAAxB,EAAgC;AAC9B,oCAAmCC,QAAQ,CAACC,aAAT,CAAuB,iCAAvB,CAAnC;AAAA,YAAqBC,SAArB,yBAAQC,WAAR;;AACA,YAAMC,UAAU,GAAGC,QAAQ,CAACP,WAAD,EAAc,EAAd,CAAR,GAA4BpB,IAA/C;;AACA,YAAI4B,MAAM,CAACC,UAAP,GAAoBH,UAApB,GAAiC,GAAjC,GAAwCF,SAAS,GAAG,CAAxD,EAA4D;AAC1D,gBAAKb,QAAL,CAAc;AAAEO,YAAAA,kBAAkB,EAAE;AAAtB,WAAd;AACD,SAFD,MAEO;AACL,gBAAKP,QAAL,CAAc;AACZO,YAAAA,kBAAkB,EAAE,KADR;AAEZhC,YAAAA,eAAe,EAAE;AAFL,WAAd;AAID;AACF;AACF,KAhHkB;;AAEjB,UAAK0B,KAAL,GAAa;AACXjC,MAAAA,aAAa,EAAE2B,KAAK,CAAC3B,aADV;AAEXC,MAAAA,SAAS,EAAE0B,KAAK,CAAC1B,SAFN;AAGXG,MAAAA,gBAAgB,EAAEuB,KAAK,CAACvB,gBAHb;AAIXC,MAAAA,aAAa,EAAEsB,KAAK,CAACtB,aAJV;AAKXkC,MAAAA,kBAAkB,EAAEZ,KAAK,CAACY,kBALf;AAMXhC,MAAAA,eAAe,EAAEoB,KAAK,CAACpB,eANZ;AAOXC,MAAAA,gBAAgB,EAAEmB,KAAK,CAACnB,gBAPb;AAQXC,MAAAA,iBAAiB,EAAEkB,KAAK,CAAClB,iBARd;AASXE,MAAAA,gBAAgB,EAAE,MAAKA,gBATZ;AAUXC,MAAAA,YAAY,EAAE,MAAKA,YAVR;AAWXC,MAAAA,mBAAmB,EAAE,MAAKA,mBAXf;AAYXC,MAAAA,gBAAgB,EAAE,MAAKA,gBAZZ;AAaXC,MAAAA,uBAAuB,EAAE,MAAKA,uBAbnB;AAcXC,MAAAA,kBAAkB,EAAE,MAAKA,kBAdd;AAeXC,MAAAA,mBAAmB,EAAE,MAAKA,mBAff;AAgBXC,MAAAA,oBAAoB,EAAE,MAAKA,oBAhBhB;AAiBXC,MAAAA,mBAAmB,EAAE,MAAKA,mBAjBf;AAkBXC,MAAAA,OAAO,EAAE,MAAKA,OAlBH;AAmBXC,MAAAA,IAAI,EAAE;AAnBK,KAAb;AAFiB;AAuBlB;;AAxBH;AAAA;AAAA,WAmHE,kBAAS;AACP,UAAQ8B,QAAR,GAAqB,KAAKxB,KAA1B,CAAQwB,QAAR;AACA,0BACEC,IAAC,cAAD,CAAgB,QAAhB;AAAyB,QAAA,KAAK,EAAE,KAAKnB,KAArC;AAAA,kBACGkB;AADH,QADF;AAKD;AA1HH;;AAAA;AAAA,EAAqCE,KAAK,CAACC,SAA3C;AA6HA5B,eAAe,CAAC6B,SAAhB,GAA4B;AAC1BvD,EAAAA,aAAa,EAAEwD,SAAS,CAACC,MADC;AAE1BxD,EAAAA,SAAS,EAAEuD,SAAS,CAACE,KAAV,CAAgB,EAAhB,CAFe;AAG1BP,EAAAA,QAAQ,EAAEK,SAAS,CAACG,GAHM;AAI1BvD,EAAAA,gBAAgB,EAAEoD,SAAS,CAACE,KAAV,CAAgB,EAAhB,CAJQ;AAK1BrD,EAAAA,aAAa,EAAEmD,SAAS,CAACC,MALC;AAM1BlB,EAAAA,kBAAkB,EAAEiB,SAAS,CAACI,IANJ;AAO1BrD,EAAAA,eAAe,EAAEiD,SAAS,CAACI,IAPD;AAQ1BpD,EAAAA,gBAAgB,EAAEgD,SAAS,CAACI,IARF;AAS1BnD,EAAAA,iBAAiB,EAAE+C,SAAS,CAACI;AATH,CAA5B;AAYAlC,eAAe,CAACmC,YAAhB,GAA+B;AAC7B7D,EAAAA,aAAa,EAAE,IADc;AAE7BC,EAAAA,SAAS,EAAE;AAAEC,IAAAA,IAAI,EAAE,CAAR;AAAWC,IAAAA,KAAK,EAAE;AAAlB,GAFkB;AAG7BgD,EAAAA,QAAQ,EAAE,IAHmB;AAI7B/C,EAAAA,gBAAgB,EAAE,IAJW;AAK7BC,EAAAA,aAAa,EAAE,UALc;AAM7BkC,EAAAA,kBAAkB,EAAE,KANS;AAO7BhC,EAAAA,eAAe,EAAE,KAPY;AAQ7BC,EAAAA,gBAAgB,EAAE,KARW;AAS7BC,EAAAA,iBAAiB,EAAE;AATU,CAA/B;AAY+BX,cAAc,CAACgE;;;;"}
|
|
1
|
+
{"version":3,"file":"builderContext.js","sources":["../../../src/utils/builderContext.js"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { createContext, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const BuilderContext = createContext({\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n contextMenuProps: false,\n editedElement: 'l_layout',\n isAllSlidesPanelOpen: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n isTextEditorOpen: false,\n setActiveElement: () => { },\n setActiveTab: () => { },\n setContextMenuProps: () => { },\n setEditedElement: () => { },\n setIsAllSlidesPanelOpen: () => { },\n setIsLeftPanelOpen: () => { },\n setIsRightPanelOpen: () => { },\n setIsSlidesPanelOpen: () => { },\n setIsTextEditorOpen: () => { },\n setZoom: () => { },\n zoom: 1,\n});\n\nexport const useBuilderContext = () => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('BuilderContext must be used with BuilderProvider!');\n }\n return context;\n};\n\nexport class BuilderProvider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeElement: props.activeElement,\n activeTab: props.activeTab,\n contextMenuProps: props.contextMenuProps,\n editedElement: props.editedElement,\n isEnoughCanvasSize: props.isEnoughCanvasSize,\n isLeftPanelOpen: props.isLeftPanelOpen,\n isRightPanelOpen: props.isRightPanelOpen,\n isSlidesPanelOpen: props.isSlidesPanelOpen,\n onRightPanelsToggled: props.onRightPanelsToggled,\n setActiveElement: this.setActiveElement,\n setActiveTab: this.setActiveTab,\n setContextMenuProps: this.setContextMenuProps,\n setEditedElement: this.setEditedElement,\n setIsAllSlidesPanelOpen: this.setIsAllSlidesPanelOpen,\n setIsLeftPanelOpen: this.setIsLeftPanelOpen,\n setIsRightPanelOpen: this.setIsRightPanelOpen,\n setIsSlidesPanelOpen: this.setIsSlidesPanelOpen,\n setIsTextEditorOpen: this.setIsTextEditorOpen,\n setZoom: this.setZoom,\n zoom: 1,\n };\n }\n\n setActiveElement = (itemID, edit = true, multiple = false) => {\n if (!multiple) {\n const config = {\n activeElement: itemID === null ? null : [itemID],\n };\n if (edit) {\n const editedElement = !itemID ? 'l_layout' : `i_${itemID}`;\n config.editedElement = editedElement;\n }\n this.setState(config);\n } else {\n const { activeElement } = this.state;\n const config = {\n activeElement: activeElement === null ? [itemID] : [...activeElement, itemID],\n };\n this.setState(config);\n }\n };\n\n setEditedElement = id => {\n this.setState(prevState => {\n if (prevState.editedElement !== id) {\n return { editedElement: id };\n }\n return null;\n });\n }\n\n setActiveTab = (panel, tabIndex) => {\n const { activeTab } = this.state;\n this.setState({ activeTab: { ...activeTab, [panel]: tabIndex } });\n };\n\n setContextMenuProps = status => {\n this.setState({ contextMenuProps: status });\n }\n\n setIsRightPanelOpen = status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = this.state;\n this.setState({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n };\n\n setIsSlidesPanelOpen = status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = this.state;\n this.setState({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n };\n\n setIsAllSlidesPanelOpen = status => {\n this.setState({\n isAllSlidesPanelOpen: status,\n });\n };\n\n setIsLeftPanelOpen = status => {\n const { isEnoughCanvasSize } = this.state;\n this.setState({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n };\n\n setIsTextEditorOpen = status => {\n this.setState({ isTextEditorOpen: status });\n }\n\n setZoom = (zoom, isModeCustomize = false, layoutWidth, onLoad = false) => {\n this.setState({ zoom });\n if (isModeCustomize && !onLoad) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n this.setState({ isEnoughCanvasSize: true });\n } else {\n this.setState({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <BuilderContext.Provider value={this.state}>\n {children}\n </BuilderContext.Provider>\n );\n }\n}\n\nBuilderProvider.propTypes = {\n activeElement: PropTypes.string,\n activeTab: PropTypes.shape({}),\n children: PropTypes.any,\n contextMenuProps: PropTypes.shape({}),\n editedElement: PropTypes.string,\n isEnoughCanvasSize: PropTypes.bool,\n isLeftPanelOpen: PropTypes.bool,\n isRightPanelOpen: PropTypes.bool,\n isSlidesPanelOpen: PropTypes.bool,\n /** Function called when a slides or right panel is toggled\n * takes a boolean value to indicate whether or not the panel\n * is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n};\n\nBuilderProvider.defaultProps = {\n activeElement: null,\n activeTab: { left: 0, right: 0 },\n children: null,\n contextMenuProps: null,\n editedElement: 'l_layout',\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n isRightPanelOpen: false,\n isSlidesPanelOpen: false,\n onRightPanelsToggled: () => { },\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n"],"names":["BuilderContext","createContext","activeElement","activeTab","left","right","contextMenuProps","editedElement","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","setActiveElement","setActiveTab","setContextMenuProps","setEditedElement","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setZoom","zoom","useBuilderContext","context","useContext","Error","BuilderProvider","props","itemID","edit","multiple","config","setState","state","id","prevState","panel","tabIndex","status","isEnoughCanvasSize","onRightPanelsToggled","isModeCustomize","layoutWidth","onLoad","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","children","_jsx","React","Component","propTypes","PropTypes","string","shape","any","bool","func","defaultProps","Consumer"],"mappings":"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"}
|