@jotforminc/dnd-builder 2.0.0 β†’ 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
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.2.0](https://github.com/jotform/dnd-builder/compare/v2.0.3...v2.2.0) (2022-06-14)
6
+
7
+ ### [2.0.3](https://github.com/jotform/dnd-builder/compare/v2.0.2...v2.0.3) (2022-03-10)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * changed withclickoutside logic ([5b0cac3](https://github.com/jotform/dnd-builder/commit/5b0cac338e740ede76de9bfe04eebe13bfb135ef))
13
+ * **readme:** readme img height fix ([18cf8cb](https://github.com/jotform/dnd-builder/commit/18cf8cbf2c653caebc7d7a6f6a17e8a3b2c4dc20))
14
+
15
+ ### [2.0.2](https://github.com/jotform/dnd-builder/compare/v2.0.0...v2.0.2) (2021-12-02)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **assets:** logo & readme gif has added ([6385694](https://github.com/jotform/dnd-builder/commit/6385694f86d9bad8ddd27d51b45b620973f07f8a))
21
+ * **storybook:** new branding updates ([f2d28f2](https://github.com/jotform/dnd-builder/commit/f2d28f221c1b6debd9ba71a9bdf0a5c418a12e56))
22
+ * **storybook:** theme added ([f22e8bc](https://github.com/jotform/dnd-builder/commit/f22e8bcdf12709635f9d26a4bf794be7d373a0be))
23
+
5
24
  ## [2.0.0](https://github.com/jotform/dnd-builder/compare/v2.0.0-beta.3...v2.0.0) (2021-11-29)
6
25
 
7
26
 
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 JotForm
3
+ Copyright (c) 2021 Jotform
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
6
 
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <p align="center">
2
- <img src="/.storybook/assets/logo.png" alt="react beautiful dnd logo" />
2
+ <img src="https://cdn.jotfor.ms/assets/img/logo2021/jotform-logo-dnd.png" alt="Jotform DND Builder" height="50px" />
3
3
  </p>
4
- <h1 align="center">JotForm - React Page Builder <small></small></h1>
4
+ <h1 align="center">Jotform - React Page Builder <small></small></h1>
5
5
 
6
6
  <div align="center">
7
7
 
@@ -40,13 +40,11 @@ $npm install @jotforminc/dnd-builder --save
40
40
  ```
41
41
 
42
42
 
43
- ## Documentation & API ReferenceπŸ“–
43
+ ## Documentation & API Reference πŸ“–
44
44
 
45
45
  [Stories & Documentation](https://www.jotform.com/open-source/dnd-builder/)
46
46
 
47
- ## Features
48
-
49
- ## Core characteristics
47
+ ## Features & Core characteristics
50
48
 
51
49
  - Ready to use 🎁 πŸ’ˆ
52
50
  - Draggable Elements 🧀
@@ -62,4 +60,4 @@ $npm install @jotforminc/dnd-builder --save
62
60
 
63
61
  ## License
64
62
 
65
- Code copyright 2021 JotForm. Code released under [the MIT license](https://github.com/jotform/dnd-builder/blob/master/LICENSE.md).
63
+ Code copyright 2021 Jotform. Code released under [the MIT license](https://github.com/jotform/dnd-builder/blob/master/LICENSE.md).
@@ -73,12 +73,13 @@ ReportWrapper.propTypes = {
73
73
  children: PropTypes__default['default'].any,
74
74
  mode: PropTypes__default['default'].string,
75
75
  pageCount: PropTypes__default['default'].number,
76
- theme: PropTypes__default['default'].oneOf(['lightMode', 'darkMode']).isRequired
76
+ theme: PropTypes__default['default'].oneOf(['lightMode', 'darkMode'])
77
77
  };
78
78
  ReportWrapper.defaultProps = {
79
79
  children: null,
80
80
  mode: '',
81
- pageCount: 0
81
+ pageCount: 0,
82
+ theme: 'lightMode'
82
83
  };
83
84
  var ReportWrapper$1 = /*#__PURE__*/React.memo(ReportWrapper);
84
85
 
@@ -1 +1 @@
1
- {"version":3,"file":"ReportWrapper.js","sources":["../../../src/components/ReportWrapper.js"],"sourcesContent":["import { memo, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderContext } from '../utils/builderContext';\nimport { useFitZoom } from '../utils/hooks';\nimport { usePropContext } from '../utils/propContext';\n\nconst getModeClass = mode => `${mode}Mode`;\n\nconst ReportWrapper = ({\n children,\n mode,\n pageCount,\n theme,\n}) => {\n const {\n isAllSlidesPanelOpen,\n isLeftPanelOpen,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setZoom,\n } = useBuilderContext();\n const { settings } = usePropContext();\n const decidedWhichPanelToOpen = useRef(false);\n\n useFitZoom({\n handler: setZoom,\n isModeCustomize: mode === 'customize',\n settings,\n });\n\n useEffect(() => {\n if (mode !== 'customize' || decidedWhichPanelToOpen.current) {\n return;\n }\n\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }, [mode, pageCount]);\n\n const wrapperClass = classNames(\n 'jfReport',\n 'f-height',\n 'd-flex',\n getModeClass(mode),\n isLeftPanelOpen === true ? 'leftPaneIsActive' : '',\n isRightPanelOpen === true || isSlidesPanelOpen === true ? 'rightPaneIsActive' : '',\n isSlidesPanelOpen === true ? 'slidesPaneIsActive' : '',\n isAllSlidesPanelOpen === true ? 'allSlidesPaneIsActive' : '',\n theme,\n );\n return (\n <div\n className={wrapperClass}\n >\n {children}\n </div>\n );\n};\n\nReportWrapper.propTypes = {\n children: PropTypes.any,\n mode: PropTypes.string,\n pageCount: PropTypes.number,\n theme: PropTypes.oneOf(['lightMode', 'darkMode']).isRequired,\n};\n\nReportWrapper.defaultProps = {\n children: null,\n mode: '',\n pageCount: 0,\n};\n\nexport default memo(ReportWrapper);\n"],"names":["getModeClass","mode","ReportWrapper","children","pageCount","theme","useBuilderContext","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setZoom","usePropContext","settings","decidedWhichPanelToOpen","useRef","useFitZoom","handler","isModeCustomize","useEffect","current","wrapperClass","classNames","_jsx","propTypes","PropTypes","any","string","number","oneOf","isRequired","defaultProps","memo"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,IAAI;AAAA,mBAAOA,IAAP;AAAA,CAAzB;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJF,IAGI,QAHJA,IAGI;AAAA,MAFJG,SAEI,QAFJA,SAEI;AAAA,MADJC,KACI,QADJA,KACI;;AACJ,2BAQIC,gCAAiB,EARrB;AAAA,MACEC,oBADF,sBACEA,oBADF;AAAA,MAEEC,eAFF,sBAEEA,eAFF;AAAA,MAGEC,gBAHF,sBAGEA,gBAHF;AAAA,MAIEC,iBAJF,sBAIEA,iBAJF;AAAA,MAKEC,kBALF,sBAKEA,kBALF;AAAA,MAMEC,oBANF,sBAMEA,oBANF;AAAA,MAOEC,OAPF,sBAOEA,OAPF;;AASA,wBAAqBC,0BAAc,EAAnC;AAAA,MAAQC,QAAR,mBAAQA,QAAR;;AACA,MAAMC,uBAAuB,GAAGC,YAAM,CAAC,KAAD,CAAtC;AAEAC,EAAAA,gBAAU,CAAC;AACTC,IAAAA,OAAO,EAAEN,OADA;AAETO,IAAAA,eAAe,EAAEnB,IAAI,KAAK,WAFjB;AAGTc,IAAAA,QAAQ,EAARA;AAHS,GAAD,CAAV;AAMAM,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIpB,IAAI,KAAK,WAAT,IAAwBe,uBAAuB,CAACM,OAApD,EAA6D;AAC3D;AACD;;AAED,QAAIlB,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAII,eAAJ,EAAqB;AACnBG,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,MAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,KALD,MAKO;AACL,UAAIF,iBAAJ,EAAuB;AACrBE,QAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDK,IAAAA,uBAAuB,CAACM,OAAxB,GAAkC,IAAlC;AACD,GAlBQ,EAkBN,CAACrB,IAAD,EAAOG,SAAP,CAlBM,CAAT;AAoBA,MAAMmB,YAAY,GAAGC,8BAAU,CAC7B,UAD6B,EAE7B,UAF6B,EAG7B,QAH6B,EAI7BxB,YAAY,CAACC,IAAD,CAJiB,EAK7BO,eAAe,KAAK,IAApB,GAA2B,kBAA3B,GAAgD,EALnB,EAM7BC,gBAAgB,KAAK,IAArB,IAA6BC,iBAAiB,KAAK,IAAnD,GAA0D,mBAA1D,GAAgF,EANnD,EAO7BA,iBAAiB,KAAK,IAAtB,GAA6B,oBAA7B,GAAoD,EAPvB,EAQ7BH,oBAAoB,KAAK,IAAzB,GAAgC,uBAAhC,GAA0D,EAR7B,EAS7BF,KAT6B,CAA/B;AAWA,sBACEoB;AACE,IAAA,SAAS,EAAEF,YADb;AAAA,cAGGpB;AAHH,IADF;AAOD,CA9DD;;AAgEAD,aAAa,CAACwB,SAAd,GAA0B;AACxBvB,EAAAA,QAAQ,EAAEwB,6BAAS,CAACC,GADI;AAExB3B,EAAAA,IAAI,EAAE0B,6BAAS,CAACE,MAFQ;AAGxBzB,EAAAA,SAAS,EAAEuB,6BAAS,CAACG,MAHG;AAIxBzB,EAAAA,KAAK,EAAEsB,6BAAS,CAACI,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,EAA2CC;AAJ1B,CAA1B;AAOA9B,aAAa,CAAC+B,YAAd,GAA6B;AAC3B9B,EAAAA,QAAQ,EAAE,IADiB;AAE3BF,EAAAA,IAAI,EAAE,EAFqB;AAG3BG,EAAAA,SAAS,EAAE;AAHgB,CAA7B;AAMA,mCAAe8B,UAAI,CAAChC,aAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"ReportWrapper.js","sources":["../../../src/components/ReportWrapper.js"],"sourcesContent":["import { memo, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderContext } from '../utils/builderContext';\nimport { useFitZoom } from '../utils/hooks';\nimport { usePropContext } from '../utils/propContext';\n\nconst getModeClass = mode => `${mode}Mode`;\n\nconst ReportWrapper = ({\n children,\n mode,\n pageCount,\n theme,\n}) => {\n const {\n isAllSlidesPanelOpen,\n isLeftPanelOpen,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setZoom,\n } = useBuilderContext();\n const { settings } = usePropContext();\n const decidedWhichPanelToOpen = useRef(false);\n\n useFitZoom({\n handler: setZoom,\n isModeCustomize: mode === 'customize',\n settings,\n });\n\n useEffect(() => {\n if (mode !== 'customize' || decidedWhichPanelToOpen.current) {\n return;\n }\n\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }, [mode, pageCount]);\n\n const wrapperClass = classNames(\n 'jfReport',\n 'f-height',\n 'd-flex',\n getModeClass(mode),\n isLeftPanelOpen === true ? 'leftPaneIsActive' : '',\n isRightPanelOpen === true || isSlidesPanelOpen === true ? 'rightPaneIsActive' : '',\n isSlidesPanelOpen === true ? 'slidesPaneIsActive' : '',\n isAllSlidesPanelOpen === true ? 'allSlidesPaneIsActive' : '',\n theme,\n );\n return (\n <div\n className={wrapperClass}\n >\n {children}\n </div>\n );\n};\n\nReportWrapper.propTypes = {\n children: PropTypes.any,\n mode: PropTypes.string,\n pageCount: PropTypes.number,\n theme: PropTypes.oneOf(['lightMode', 'darkMode']),\n};\n\nReportWrapper.defaultProps = {\n children: null,\n mode: '',\n pageCount: 0,\n theme: 'lightMode',\n};\n\nexport default memo(ReportWrapper);\n"],"names":["getModeClass","mode","ReportWrapper","children","pageCount","theme","useBuilderContext","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setZoom","usePropContext","settings","decidedWhichPanelToOpen","useRef","useFitZoom","handler","isModeCustomize","useEffect","current","wrapperClass","classNames","_jsx","propTypes","PropTypes","any","string","number","oneOf","defaultProps","memo"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,IAAI;AAAA,mBAAOA,IAAP;AAAA,CAAzB;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJF,IAGI,QAHJA,IAGI;AAAA,MAFJG,SAEI,QAFJA,SAEI;AAAA,MADJC,KACI,QADJA,KACI;;AACJ,2BAQIC,gCAAiB,EARrB;AAAA,MACEC,oBADF,sBACEA,oBADF;AAAA,MAEEC,eAFF,sBAEEA,eAFF;AAAA,MAGEC,gBAHF,sBAGEA,gBAHF;AAAA,MAIEC,iBAJF,sBAIEA,iBAJF;AAAA,MAKEC,kBALF,sBAKEA,kBALF;AAAA,MAMEC,oBANF,sBAMEA,oBANF;AAAA,MAOEC,OAPF,sBAOEA,OAPF;;AASA,wBAAqBC,0BAAc,EAAnC;AAAA,MAAQC,QAAR,mBAAQA,QAAR;;AACA,MAAMC,uBAAuB,GAAGC,YAAM,CAAC,KAAD,CAAtC;AAEAC,EAAAA,gBAAU,CAAC;AACTC,IAAAA,OAAO,EAAEN,OADA;AAETO,IAAAA,eAAe,EAAEnB,IAAI,KAAK,WAFjB;AAGTc,IAAAA,QAAQ,EAARA;AAHS,GAAD,CAAV;AAMAM,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIpB,IAAI,KAAK,WAAT,IAAwBe,uBAAuB,CAACM,OAApD,EAA6D;AAC3D;AACD;;AAED,QAAIlB,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAII,eAAJ,EAAqB;AACnBG,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,MAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,KALD,MAKO;AACL,UAAIF,iBAAJ,EAAuB;AACrBE,QAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDK,IAAAA,uBAAuB,CAACM,OAAxB,GAAkC,IAAlC;AACD,GAlBQ,EAkBN,CAACrB,IAAD,EAAOG,SAAP,CAlBM,CAAT;AAoBA,MAAMmB,YAAY,GAAGC,8BAAU,CAC7B,UAD6B,EAE7B,UAF6B,EAG7B,QAH6B,EAI7BxB,YAAY,CAACC,IAAD,CAJiB,EAK7BO,eAAe,KAAK,IAApB,GAA2B,kBAA3B,GAAgD,EALnB,EAM7BC,gBAAgB,KAAK,IAArB,IAA6BC,iBAAiB,KAAK,IAAnD,GAA0D,mBAA1D,GAAgF,EANnD,EAO7BA,iBAAiB,KAAK,IAAtB,GAA6B,oBAA7B,GAAoD,EAPvB,EAQ7BH,oBAAoB,KAAK,IAAzB,GAAgC,uBAAhC,GAA0D,EAR7B,EAS7BF,KAT6B,CAA/B;AAWA,sBACEoB;AACE,IAAA,SAAS,EAAEF,YADb;AAAA,cAGGpB;AAHH,IADF;AAOD,CA9DD;;AAgEAD,aAAa,CAACwB,SAAd,GAA0B;AACxBvB,EAAAA,QAAQ,EAAEwB,6BAAS,CAACC,GADI;AAExB3B,EAAAA,IAAI,EAAE0B,6BAAS,CAACE,MAFQ;AAGxBzB,EAAAA,SAAS,EAAEuB,6BAAS,CAACG,MAHG;AAIxBzB,EAAAA,KAAK,EAAEsB,6BAAS,CAACI,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB;AAJiB,CAA1B;AAOA7B,aAAa,CAAC8B,YAAd,GAA6B;AAC3B7B,EAAAA,QAAQ,EAAE,IADiB;AAE3BF,EAAAA,IAAI,EAAE,EAFqB;AAG3BG,EAAAA,SAAS,EAAE,CAHgB;AAI3BC,EAAAA,KAAK,EAAE;AAJoB,CAA7B;AAOA,mCAAe4B,UAAI,CAAC/B,aAAD,CAAnB;;;;"}
@@ -4,7 +4,6 @@ require('core-js/modules/es.array.map.js');
4
4
  var React = require('react');
5
5
  var ReactQuill = require('react-quill');
6
6
  var PropTypes = require('prop-types');
7
- var withClickOutside = require('../withClickOutside.js');
8
7
  var textEditorConstants = require('./textEditorConstants.js');
9
8
  var fonts = require('../../constants/fonts.js');
10
9
  require('react-quill/dist/quill.snow.css');
@@ -12,58 +11,111 @@ var jsxRuntime = require('react/jsx-runtime');
12
11
 
13
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
13
 
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
15
  var ReactQuill__default = /*#__PURE__*/_interopDefaultLegacy(ReactQuill);
16
16
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
17
17
 
18
+ 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); }
19
+
20
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21
+
22
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
23
+
24
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
25
+
26
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
27
+
28
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
+
30
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
31
+
32
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
33
+
34
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
35
+
36
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+
38
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
39
+
40
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
41
  var Size = ReactQuill__default['default'].Quill.import('attributors/style/size');
19
42
  Size.whitelist = fonts.fontSizes.map(function (s) {
20
43
  return "".concat(s, "px");
21
44
  });
22
45
  ReactQuill__default['default'].Quill.register(Size, true);
23
46
 
24
- var QuillEditor = function QuillEditor(_ref) {
25
- var content = _ref.content,
26
- handleSave = _ref.handleSave,
27
- placeholder = _ref.placeholder,
28
- setIsTextEditorOpen = _ref.setIsTextEditorOpen;
29
- var quill = React.useRef(null);
30
-
31
- var saveAndQuit = function saveAndQuit() {
32
- if (quill.current === null) return;
33
- var editor = quill.current.getEditor();
34
- var unprivilegedEditor = quill.current.makeUnprivilegedEditor(editor);
35
- handleSave(unprivilegedEditor.getHTML());
36
- setIsTextEditorOpen(false);
37
- };
38
-
39
- React.useEffect(function () {
40
- if (quill.current !== null) {
41
- var editor = quill.current.getEditor();
42
- editor.setSelection(0, content.length);
43
- }
47
+ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
48
+ _inherits(QuillEditor, _React$PureComponent);
44
49
 
45
- return saveAndQuit;
46
- }, []);
47
- var handleKeyDown = React.useCallback(function (e) {
48
- e.stopPropagation();
50
+ var _super = _createSuper(QuillEditor);
49
51
 
50
- if (e.keyCode === 27) {
51
- saveAndQuit();
52
+ function QuillEditor(props) {
53
+ var _this;
54
+
55
+ _classCallCheck(this, QuillEditor);
56
+
57
+ _this = _super.call(this, props);
58
+
59
+ _defineProperty(_assertThisInitialized(_this), "saveAndQuit", function () {
60
+ var _this$props = _this.props,
61
+ content = _this$props.content,
62
+ handleSave = _this$props.handleSave,
63
+ setIsTextEditorOpen = _this$props.setIsTextEditorOpen;
64
+ setIsTextEditorOpen(false);
65
+ handleSave(content);
66
+ });
67
+
68
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
69
+ e.stopPropagation();
70
+
71
+ if (e.keyCode === 27) {
72
+ _this.saveAndQuit();
73
+ }
74
+ });
75
+
76
+ _this.quill = /*#__PURE__*/React__default['default'].createRef();
77
+ return _this;
78
+ }
79
+
80
+ _createClass(QuillEditor, [{
81
+ key: "componentDidMount",
82
+ value: function componentDidMount() {
83
+ if (this.quill.current !== null) {
84
+ var content = this.props.content;
85
+ var editor = this.quill.current.getEditor();
86
+ editor.setSelection(0, content.length);
87
+ }
52
88
  }
53
- }, []);
54
- return /*#__PURE__*/jsxRuntime.jsx("div", {
55
- className: "f-all",
56
- onKeyDown: handleKeyDown,
57
- children: /*#__PURE__*/jsxRuntime.jsx(ReactQuill__default['default'], {
58
- ref: quill,
59
- defaultValue: content,
60
- formats: QuillEditor.formats,
61
- modules: QuillEditor.modules,
62
- placeholder: placeholder,
63
- preserveWhitespace: true
64
- })
65
- });
66
- };
89
+ }, {
90
+ key: "componentWillUnmount",
91
+ value: function componentWillUnmount() {
92
+ this.saveAndQuit();
93
+ }
94
+ }, {
95
+ key: "render",
96
+ value: function render() {
97
+ var _this$props2 = this.props,
98
+ content = _this$props2.content,
99
+ placeholder = _this$props2.placeholder,
100
+ setContent = _this$props2.setContent;
101
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
102
+ className: "f-all",
103
+ onKeyDown: this.handleKeyDown,
104
+ children: /*#__PURE__*/jsxRuntime.jsx(ReactQuill__default['default'], {
105
+ ref: this.quill,
106
+ formats: QuillEditor.formats,
107
+ modules: QuillEditor.modules,
108
+ onChange: setContent,
109
+ placeholder: placeholder,
110
+ preserveWhitespace: true,
111
+ value: content
112
+ })
113
+ });
114
+ }
115
+ }]);
116
+
117
+ return QuillEditor;
118
+ }(React__default['default'].PureComponent);
67
119
 
68
120
  QuillEditor.modules = textEditorConstants.modules;
69
121
  QuillEditor.formats = textEditorConstants.formats;
@@ -71,15 +123,16 @@ QuillEditor.propTypes = {
71
123
  content: PropTypes__default['default'].string,
72
124
  handleSave: PropTypes__default['default'].func,
73
125
  placeholder: PropTypes__default['default'].string,
126
+ setContent: PropTypes__default['default'].func,
74
127
  setIsTextEditorOpen: PropTypes__default['default'].func
75
128
  };
76
129
  QuillEditor.defaultProps = {
77
130
  content: '',
78
131
  handleSave: function handleSave() {},
79
132
  placeholder: 'Click to edit text',
80
- setIsTextEditorOpen: {}
133
+ setContent: function setContent() {},
134
+ setIsTextEditorOpen: function setIsTextEditorOpen() {}
81
135
  };
82
- var QuillEditor$1 = withClickOutside(QuillEditor);
83
136
 
84
- module.exports = QuillEditor$1;
137
+ module.exports = QuillEditor;
85
138
  //# sourceMappingURL=QuillEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react';\nimport ReactQuill from 'react-quill';\nimport PropTypes from 'prop-types';\nimport withClickOutside from '../withClickOutside';\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\nconst QuillEditor = ({\n content,\n handleSave,\n placeholder,\n setIsTextEditorOpen,\n}) => {\n const quill = useRef(null);\n const saveAndQuit = () => {\n if (quill.current === null) return;\n const editor = quill.current.getEditor();\n const unprivilegedEditor = quill.current.makeUnprivilegedEditor(editor);\n handleSave(unprivilegedEditor.getHTML());\n setIsTextEditorOpen(false);\n };\n\n useEffect(() => {\n if (quill.current !== null) {\n const editor = quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n return saveAndQuit;\n }, []);\n\n const handleKeyDown = useCallback(e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n saveAndQuit();\n }\n }, []);\n\n return (\n <div\n className=\"f-all\"\n onKeyDown={handleKeyDown}\n >\n <ReactQuill\n ref={quill}\n defaultValue={content}\n formats={QuillEditor.formats}\n modules={QuillEditor.modules}\n placeholder={placeholder}\n preserveWhitespace\n />\n </div>\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 setIsTextEditorOpen: PropTypes.func,\n};\n\nQuillEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n placeholder: 'Click to edit text',\n setIsTextEditorOpen: {},\n};\n\nexport default withClickOutside(QuillEditor);\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","content","handleSave","placeholder","setIsTextEditorOpen","quill","useRef","saveAndQuit","current","editor","getEditor","unprivilegedEditor","makeUnprivilegedEditor","getHTML","useEffect","setSelection","length","handleKeyDown","useCallback","e","stopPropagation","keyCode","_jsx","formats","modules","propTypes","PropTypes","string","func","defaultProps","withClickOutside"],"mappings":";;;;;;;;;;;;;;;;;AAQA,IAAMA,IAAI,GAAGC,8BAAU,CAACC,KAAX,CAAiBC,MAAjB,CAAwB,wBAAxB,CAAb;AACAH,IAAI,CAACI,SAAL,GAAiBC,eAAS,CAACC,GAAV,CAAc,UAAAC,CAAC;AAAA,mBAAOA,CAAP;AAAA,CAAf,CAAjB;AACAN,8BAAU,CAACC,KAAX,CAAiBM,QAAjB,CAA0BR,IAA1B,EAAgC,IAAhC;;AAEA,IAAMS,WAAW,GAAG,SAAdA,WAAc,OAKd;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,UAGI,QAHJA,UAGI;AAAA,MAFJC,WAEI,QAFJA,WAEI;AAAA,MADJC,mBACI,QADJA,mBACI;AACJ,MAAMC,KAAK,GAAGC,YAAM,CAAC,IAAD,CAApB;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAIF,KAAK,CAACG,OAAN,KAAkB,IAAtB,EAA4B;AAC5B,QAAMC,MAAM,GAAGJ,KAAK,CAACG,OAAN,CAAcE,SAAd,EAAf;AACA,QAAMC,kBAAkB,GAAGN,KAAK,CAACG,OAAN,CAAcI,sBAAd,CAAqCH,MAArC,CAA3B;AACAP,IAAAA,UAAU,CAACS,kBAAkB,CAACE,OAAnB,EAAD,CAAV;AACAT,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,GAND;;AAQAU,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIT,KAAK,CAACG,OAAN,KAAkB,IAAtB,EAA4B;AAC1B,UAAMC,MAAM,GAAGJ,KAAK,CAACG,OAAN,CAAcE,SAAd,EAAf;AACAD,MAAAA,MAAM,CAACM,YAAP,CAAoB,CAApB,EAAuBd,OAAO,CAACe,MAA/B;AACD;;AACD,WAAOT,WAAP;AACD,GANQ,EAMN,EANM,CAAT;AAQA,MAAMU,aAAa,GAAGC,iBAAW,CAAC,UAAAC,CAAC,EAAI;AACrCA,IAAAA,CAAC,CAACC,eAAF;;AACA,QAAID,CAAC,CAACE,OAAF,KAAc,EAAlB,EAAsB;AACpBd,MAAAA,WAAW;AACZ;AACF,GALgC,EAK9B,EAL8B,CAAjC;AAOA,sBACEe;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,SAAS,EAAEL,aAFb;AAAA,2BAIEK,eAAC9B,8BAAD;AACE,MAAA,GAAG,EAAEa,KADP;AAEE,MAAA,YAAY,EAAEJ,OAFhB;AAGE,MAAA,OAAO,EAAED,WAAW,CAACuB,OAHvB;AAIE,MAAA,OAAO,EAAEvB,WAAW,CAACwB,OAJvB;AAKE,MAAA,WAAW,EAAErB,WALf;AAME,MAAA,kBAAkB;AANpB;AAJF,IADF;AAeD,CA7CD;;AA+CAH,WAAW,CAACwB,OAAZ,GAAsBA,2BAAtB;AACAxB,WAAW,CAACuB,OAAZ,GAAsBA,2BAAtB;AAEAvB,WAAW,CAACyB,SAAZ,GAAwB;AACtBxB,EAAAA,OAAO,EAAEyB,6BAAS,CAACC,MADG;AAEtBzB,EAAAA,UAAU,EAAEwB,6BAAS,CAACE,IAFA;AAGtBzB,EAAAA,WAAW,EAAEuB,6BAAS,CAACC,MAHD;AAItBvB,EAAAA,mBAAmB,EAAEsB,6BAAS,CAACE;AAJT,CAAxB;AAOA5B,WAAW,CAAC6B,YAAZ,GAA2B;AACzB5B,EAAAA,OAAO,EAAE,EADgB;AAEzBC,EAAAA,UAAU,EAAE,sBAAM,EAFO;AAGzBC,EAAAA,WAAW,EAAE,oBAHY;AAIzBC,EAAAA,mBAAmB,EAAE;AAJI,CAA3B;AAOA,oBAAe0B,gBAAgB,CAAC9B,WAAD,CAA/B;;;;"}
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 {\n content,\n placeholder,\n setContent,\n } = 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={setContent}\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","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","setContent","_jsx","handleKeyDown","formats","modules","PureComponent","propTypes","PropTypes","string","func","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,IAAI,GAAGC,8BAAU,CAACC,KAAX,CAAiBC,MAAjB,CAAwB,wBAAxB,CAAb;AACAH,IAAI,CAACI,SAAL,GAAiBC,eAAS,CAACC,GAAV,CAAc,UAAAC,CAAC;AAAA,mBAAOA,CAAP;AAAA,CAAf,CAAjB;AACAN,8BAAU,CAACC,KAAX,CAAiBM,QAAjB,CAA0BR,IAA1B,EAAgC,IAAhC;;IAEMS;;;;;AACJ,uBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;;AADiB,kEAkBL,YAAM;AAClB,wBAAqD,MAAKA,KAA1D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,UAAjB,eAAiBA,UAAjB;AAAA,UAA6BC,mBAA7B,eAA6BA,mBAA7B;AACAA,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAD,MAAAA,UAAU,CAACD,OAAD,CAAV;AACD,KAtBkB;;AAAA,oEAwBH,UAAAG,CAAC,EAAI;AACnBA,MAAAA,CAAC,CAACC,eAAF;;AACA,UAAID,CAAC,CAACE,OAAF,KAAc,EAAlB,EAAsB;AACpB,cAAKC,WAAL;AACD;AACF,KA7BkB;;AAGjB,UAAKC,KAAL,gBAAaC,yBAAK,CAACC,SAAN,EAAb;AAHiB;AAIlB;;;;WAED,6BAAoB;AAClB,UAAI,KAAKF,KAAL,CAAWG,OAAX,KAAuB,IAA3B,EAAiC;AAC/B,YAAQV,OAAR,GAAoB,KAAKD,KAAzB,CAAQC,OAAR;AACA,YAAMW,MAAM,GAAG,KAAKJ,KAAL,CAAWG,OAAX,CAAmBE,SAAnB,EAAf;AACAD,QAAAA,MAAM,CAACE,YAAP,CAAoB,CAApB,EAAuBb,OAAO,CAACc,MAA/B;AACD;AACF;;;WAED,gCAAuB;AACrB,WAAKR,WAAL;AACD;;;WAeD,kBAAS;AACP,yBAII,KAAKP,KAJT;AAAA,UACEC,OADF,gBACEA,OADF;AAAA,UAEEe,WAFF,gBAEEA,WAFF;AAAA,UAGEC,UAHF,gBAGEA,UAHF;AAMA,0BACEC;AACE,QAAA,SAAS,EAAC,OADZ;AAEE,QAAA,SAAS,EAAE,KAAKC,aAFlB;AAAA,+BAIED,eAAC3B,8BAAD;AACE,UAAA,GAAG,EAAE,KAAKiB,KADZ;AAEE,UAAA,OAAO,EAAET,WAAW,CAACqB,OAFvB;AAGE,UAAA,OAAO,EAAErB,WAAW,CAACsB,OAHvB;AAIE,UAAA,QAAQ,EAAEJ,UAJZ;AAKE,UAAA,WAAW,EAAED,WALf;AAME,UAAA,kBAAkB,MANpB;AAOE,UAAA,KAAK,EAAEf;AAPT;AAJF,QADF;AAgBD;;;;EAvDuBQ,yBAAK,CAACa;;AA0DhCvB,WAAW,CAACsB,OAAZ,GAAsBA,2BAAtB;AACAtB,WAAW,CAACqB,OAAZ,GAAsBA,2BAAtB;AAEArB,WAAW,CAACwB,SAAZ,GAAwB;AACtBtB,EAAAA,OAAO,EAAEuB,6BAAS,CAACC,MADG;AAEtBvB,EAAAA,UAAU,EAAEsB,6BAAS,CAACE,IAFA;AAGtBV,EAAAA,WAAW,EAAEQ,6BAAS,CAACC,MAHD;AAItBR,EAAAA,UAAU,EAAEO,6BAAS,CAACE,IAJA;AAKtBvB,EAAAA,mBAAmB,EAAEqB,6BAAS,CAACE;AALT,CAAxB;AAQA3B,WAAW,CAAC4B,YAAZ,GAA2B;AACzB1B,EAAAA,OAAO,EAAE,EADgB;AAEzBC,EAAAA,UAAU,EAAE,sBAAM,EAFO;AAGzBc,EAAAA,WAAW,EAAE,oBAHY;AAIzBC,EAAAA,UAAU,EAAE,sBAAM,EAJO;AAKzBd,EAAAA,mBAAmB,EAAE,+BAAM;AALF,CAA3B;;;;"}
@@ -10,6 +10,18 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
12
12
 
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+
19
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20
+
21
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
22
+
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
+
13
25
  var TextEditor = function TextEditor(_ref) {
14
26
  var content = _ref.content,
15
27
  handleSave = _ref.handleSave,
@@ -17,6 +29,11 @@ var TextEditor = function TextEditor(_ref) {
17
29
  isSelected = _ref.isSelected,
18
30
  placeholder = _ref.placeholder;
19
31
 
32
+ var _useState = React.useState(content),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ _content = _useState2[0],
35
+ setContent = _useState2[1];
36
+
20
37
  var _useBuilderContext = builderContext.useBuilderContext(),
21
38
  isTextEditorOpen = _useBuilderContext.isTextEditorOpen,
22
39
  setIsTextEditorOpen = _useBuilderContext.setIsTextEditorOpen;
@@ -28,26 +45,19 @@ var TextEditor = function TextEditor(_ref) {
28
45
  }, [isSelected, isLocked]);
29
46
  var isNotEmpty = React.useMemo(function () {
30
47
  var el = document.createElement('div');
31
- el.innerHTML = content;
48
+ el.innerHTML = _content;
32
49
  return !!el.innerText;
33
- }, [content]);
34
- var onClickOutside = React.useCallback(function () {
35
- setTimeout(function () {
36
- return setIsTextEditorOpen(false);
37
- }, 1000);
38
- }, [isTextEditorOpen]);
50
+ }, [_content]);
39
51
  return isSelected && isTextEditorOpen ? /*#__PURE__*/jsxRuntime.jsx(QuillEditor, {
40
- content: content,
41
- exceptionalClasses: ['ql-toolbar'],
52
+ content: _content,
42
53
  handleSave: handleSave,
43
- onClickOutside: onClickOutside,
44
54
  placeholder: placeholder,
45
- setIsTextEditorOpen: setIsTextEditorOpen,
46
- withClickOutsideWrapperClass: "textEditorWrapper f-all"
55
+ setContent: setContent,
56
+ setIsTextEditorOpen: setIsTextEditorOpen
47
57
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
48
58
  className: "f-all ql-editor".concat(isNotEmpty ? '' : ' isEmptyTextElement'),
49
59
  dangerouslySetInnerHTML: {
50
- __html: isNotEmpty ? content : placeholder
60
+ __html: isNotEmpty ? _content : placeholder
51
61
  },
52
62
  onClick: onClick,
53
63
  onKeyDown: function onKeyDown() {}
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\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 { 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 const onClickOutside = useCallback(() => {\n setTimeout(() => setIsTextEditorOpen(false), 1000);\n }, [isTextEditorOpen]);\n\n return isSelected && isTextEditorOpen ? (\n <QuillEditor\n content={content}\n exceptionalClasses={['ql-toolbar']}\n handleSave={handleSave}\n onClickOutside={onClickOutside}\n placeholder={placeholder}\n setIsTextEditorOpen={setIsTextEditorOpen}\n withClickOutsideWrapperClass=\"textEditorWrapper f-all\"\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","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","onClickOutside","setTimeout","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;IAKMA,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,2BAAkDC,gCAAiB,EAAnE;AAAA,MAAQC,gBAAR,sBAAQA,gBAAR;AAAA,MAA0BC,mBAA1B,sBAA0BA,mBAA1B;;AAEA,MAAMC,OAAO,GAAGC,iBAAW,CAAC,YAAM;AAChC,QAAIN,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BK,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACJ,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMQ,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAef,OAAf;AACA,WAAO,CAAC,CAACY,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAAChB,OAAD,CAJuB,CAA1B;AAMA,MAAMiB,cAAc,GAAGR,iBAAW,CAAC,YAAM;AACvCS,IAAAA,UAAU,CAAC;AAAA,aAAMX,mBAAmB,CAAC,KAAD,CAAzB;AAAA,KAAD,EAAmC,IAAnC,CAAV;AACD,GAFiC,EAE/B,CAACD,gBAAD,CAF+B,CAAlC;AAIA,SAAOH,UAAU,IAAIG,gBAAd,gBACLa,eAAC,WAAD;AACE,IAAA,OAAO,EAAEnB,OADX;AAEE,IAAA,kBAAkB,EAAE,CAAC,YAAD,CAFtB;AAGE,IAAA,UAAU,EAAEC,UAHd;AAIE,IAAA,cAAc,EAAEgB,cAJlB;AAKE,IAAA,WAAW,EAAEb,WALf;AAME,IAAA,mBAAmB,EAAEG,mBANvB;AAOE,IAAA,4BAA4B,EAAC;AAP/B,IADK,gBAWLY;AACE,IAAA,SAAS,2BAAoBT,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBU,MAAAA,MAAM,EAAEV,UAAU,GAAGV,OAAH,GAAaI;AADR,KAF3B;AAKE,IAAA,OAAO,EAAEI,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IAXF;AAoBD;;AAEDT,UAAU,CAACsB,SAAX,GAAuB;AACrBrB,EAAAA,OAAO,EAAEsB,6BAAS,CAACC,MADE;AAErBtB,EAAAA,UAAU,EAAEqB,6BAAS,CAACE,IAFD;AAGrBtB,EAAAA,QAAQ,EAAEoB,6BAAS,CAACG,IAHC;AAIrBtB,EAAAA,UAAU,EAAEmB,6BAAS,CAACG,IAJD;AAKrBrB,EAAAA,WAAW,EAAEkB,6BAAS,CAACC;AALF,CAAvB;AAQAxB,UAAU,CAAC2B,YAAX,GAA0B;AACxB1B,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;;;;"}
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 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 = _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","_content","setContent","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;IAKMA,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,CAACL,OAAD,CAAvC;AAAA;AAAA,MAAOM,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,QAAIT,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BQ,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACP,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMW,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,SAAOH,UAAU,IAAIM,gBAAd,gBACLW,eAAC,WAAD;AACE,IAAA,OAAO,EAAEd,QADX;AAEE,IAAA,UAAU,EAAEL,UAFd;AAGE,IAAA,WAAW,EAAEG,WAHf;AAIE,IAAA,UAAU,EAAEG,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,GAAcF;AADT,KAF3B;AAKE,IAAA,OAAO,EAAEO,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDZ,UAAU,CAACuB,SAAX,GAAuB;AACrBtB,EAAAA,OAAO,EAAEuB,6BAAS,CAACC,MADE;AAErBvB,EAAAA,UAAU,EAAEsB,6BAAS,CAACE,IAFD;AAGrBvB,EAAAA,QAAQ,EAAEqB,6BAAS,CAACG,IAHC;AAIrBvB,EAAAA,UAAU,EAAEoB,6BAAS,CAACG,IAJD;AAKrBtB,EAAAA,WAAW,EAAEmB,6BAAS,CAACC;AALF,CAAvB;AAQAzB,UAAU,CAAC4B,YAAX,GAA0B;AACxB3B,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;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  .lightMode {
4
4
  .jfReport-toolbox, .jfPresentation-toolbox {
5
- background-color: #f1f1f5;
5
+ background-color: $white;
6
6
  }
7
7
 
8
8
  .jfReport-pane {
@@ -5,6 +5,8 @@
5
5
 
6
6
  // Mixins //
7
7
 
8
+ @use "sass:math";
9
+
8
10
  @mixin text-ellipsis {
9
11
  overflow: hidden;
10
12
  text-overflow: ellipsis;
@@ -35,7 +37,7 @@
35
37
  $base: $base * 1px;
36
38
  }
37
39
 
38
- @return $pxval / $base * 1em;
40
+ @return math.div($pxval, $base) * 1em;
39
41
  }
40
42
 
41
43
  // Functions //
@@ -66,12 +66,13 @@ ReportWrapper.propTypes = {
66
66
  children: PropTypes.any,
67
67
  mode: PropTypes.string,
68
68
  pageCount: PropTypes.number,
69
- theme: PropTypes.oneOf(['lightMode', 'darkMode']).isRequired
69
+ theme: PropTypes.oneOf(['lightMode', 'darkMode'])
70
70
  };
71
71
  ReportWrapper.defaultProps = {
72
72
  children: null,
73
73
  mode: '',
74
- pageCount: 0
74
+ pageCount: 0,
75
+ theme: 'lightMode'
75
76
  };
76
77
  var ReportWrapper$1 = /*#__PURE__*/memo(ReportWrapper);
77
78
 
@@ -1 +1 @@
1
- {"version":3,"file":"ReportWrapper.js","sources":["../../../src/components/ReportWrapper.js"],"sourcesContent":["import { memo, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderContext } from '../utils/builderContext';\nimport { useFitZoom } from '../utils/hooks';\nimport { usePropContext } from '../utils/propContext';\n\nconst getModeClass = mode => `${mode}Mode`;\n\nconst ReportWrapper = ({\n children,\n mode,\n pageCount,\n theme,\n}) => {\n const {\n isAllSlidesPanelOpen,\n isLeftPanelOpen,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setZoom,\n } = useBuilderContext();\n const { settings } = usePropContext();\n const decidedWhichPanelToOpen = useRef(false);\n\n useFitZoom({\n handler: setZoom,\n isModeCustomize: mode === 'customize',\n settings,\n });\n\n useEffect(() => {\n if (mode !== 'customize' || decidedWhichPanelToOpen.current) {\n return;\n }\n\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }, [mode, pageCount]);\n\n const wrapperClass = classNames(\n 'jfReport',\n 'f-height',\n 'd-flex',\n getModeClass(mode),\n isLeftPanelOpen === true ? 'leftPaneIsActive' : '',\n isRightPanelOpen === true || isSlidesPanelOpen === true ? 'rightPaneIsActive' : '',\n isSlidesPanelOpen === true ? 'slidesPaneIsActive' : '',\n isAllSlidesPanelOpen === true ? 'allSlidesPaneIsActive' : '',\n theme,\n );\n return (\n <div\n className={wrapperClass}\n >\n {children}\n </div>\n );\n};\n\nReportWrapper.propTypes = {\n children: PropTypes.any,\n mode: PropTypes.string,\n pageCount: PropTypes.number,\n theme: PropTypes.oneOf(['lightMode', 'darkMode']).isRequired,\n};\n\nReportWrapper.defaultProps = {\n children: null,\n mode: '',\n pageCount: 0,\n};\n\nexport default memo(ReportWrapper);\n"],"names":["getModeClass","mode","ReportWrapper","children","pageCount","theme","useBuilderContext","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setZoom","usePropContext","settings","decidedWhichPanelToOpen","useRef","useFitZoom","handler","isModeCustomize","useEffect","current","wrapperClass","classNames","_jsx","propTypes","PropTypes","any","string","number","oneOf","isRequired","defaultProps","memo"],"mappings":";;;;;;;;AAOA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,IAAI;AAAA,mBAAOA,IAAP;AAAA,CAAzB;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJF,IAGI,QAHJA,IAGI;AAAA,MAFJG,SAEI,QAFJA,SAEI;AAAA,MADJC,KACI,QADJA,KACI;;AACJ,2BAQIC,iBAAiB,EARrB;AAAA,MACEC,oBADF,sBACEA,oBADF;AAAA,MAEEC,eAFF,sBAEEA,eAFF;AAAA,MAGEC,gBAHF,sBAGEA,gBAHF;AAAA,MAIEC,iBAJF,sBAIEA,iBAJF;AAAA,MAKEC,kBALF,sBAKEA,kBALF;AAAA,MAMEC,oBANF,sBAMEA,oBANF;AAAA,MAOEC,OAPF,sBAOEA,OAPF;;AASA,wBAAqBC,cAAc,EAAnC;AAAA,MAAQC,QAAR,mBAAQA,QAAR;;AACA,MAAMC,uBAAuB,GAAGC,MAAM,CAAC,KAAD,CAAtC;AAEAC,EAAAA,UAAU,CAAC;AACTC,IAAAA,OAAO,EAAEN,OADA;AAETO,IAAAA,eAAe,EAAEnB,IAAI,KAAK,WAFjB;AAGTc,IAAAA,QAAQ,EAARA;AAHS,GAAD,CAAV;AAMAM,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIpB,IAAI,KAAK,WAAT,IAAwBe,uBAAuB,CAACM,OAApD,EAA6D;AAC3D;AACD;;AAED,QAAIlB,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAII,eAAJ,EAAqB;AACnBG,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,MAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,KALD,MAKO;AACL,UAAIF,iBAAJ,EAAuB;AACrBE,QAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDK,IAAAA,uBAAuB,CAACM,OAAxB,GAAkC,IAAlC;AACD,GAlBQ,EAkBN,CAACrB,IAAD,EAAOG,SAAP,CAlBM,CAAT;AAoBA,MAAMmB,YAAY,GAAGC,UAAU,CAC7B,UAD6B,EAE7B,UAF6B,EAG7B,QAH6B,EAI7BxB,YAAY,CAACC,IAAD,CAJiB,EAK7BO,eAAe,KAAK,IAApB,GAA2B,kBAA3B,GAAgD,EALnB,EAM7BC,gBAAgB,KAAK,IAArB,IAA6BC,iBAAiB,KAAK,IAAnD,GAA0D,mBAA1D,GAAgF,EANnD,EAO7BA,iBAAiB,KAAK,IAAtB,GAA6B,oBAA7B,GAAoD,EAPvB,EAQ7BH,oBAAoB,KAAK,IAAzB,GAAgC,uBAAhC,GAA0D,EAR7B,EAS7BF,KAT6B,CAA/B;AAWA,sBACEoB;AACE,IAAA,SAAS,EAAEF,YADb;AAAA,cAGGpB;AAHH,IADF;AAOD,CA9DD;;AAgEAD,aAAa,CAACwB,SAAd,GAA0B;AACxBvB,EAAAA,QAAQ,EAAEwB,SAAS,CAACC,GADI;AAExB3B,EAAAA,IAAI,EAAE0B,SAAS,CAACE,MAFQ;AAGxBzB,EAAAA,SAAS,EAAEuB,SAAS,CAACG,MAHG;AAIxBzB,EAAAA,KAAK,EAAEsB,SAAS,CAACI,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB,EAA2CC;AAJ1B,CAA1B;AAOA9B,aAAa,CAAC+B,YAAd,GAA6B;AAC3B9B,EAAAA,QAAQ,EAAE,IADiB;AAE3BF,EAAAA,IAAI,EAAE,EAFqB;AAG3BG,EAAAA,SAAS,EAAE;AAHgB,CAA7B;AAMA,mCAAe8B,IAAI,CAAChC,aAAD,CAAnB;;;;"}
1
+ {"version":3,"file":"ReportWrapper.js","sources":["../../../src/components/ReportWrapper.js"],"sourcesContent":["import { memo, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useBuilderContext } from '../utils/builderContext';\nimport { useFitZoom } from '../utils/hooks';\nimport { usePropContext } from '../utils/propContext';\n\nconst getModeClass = mode => `${mode}Mode`;\n\nconst ReportWrapper = ({\n children,\n mode,\n pageCount,\n theme,\n}) => {\n const {\n isAllSlidesPanelOpen,\n isLeftPanelOpen,\n isRightPanelOpen,\n isSlidesPanelOpen,\n setIsLeftPanelOpen,\n setIsSlidesPanelOpen,\n setZoom,\n } = useBuilderContext();\n const { settings } = usePropContext();\n const decidedWhichPanelToOpen = useRef(false);\n\n useFitZoom({\n handler: setZoom,\n isModeCustomize: mode === 'customize',\n settings,\n });\n\n useEffect(() => {\n if (mode !== 'customize' || decidedWhichPanelToOpen.current) {\n return;\n }\n\n if (pageCount > 1) {\n if (isLeftPanelOpen) {\n setIsLeftPanelOpen(false);\n }\n setIsSlidesPanelOpen(true);\n } else {\n if (isSlidesPanelOpen) {\n setIsSlidesPanelOpen(false);\n }\n setIsLeftPanelOpen(true);\n }\n\n decidedWhichPanelToOpen.current = true;\n }, [mode, pageCount]);\n\n const wrapperClass = classNames(\n 'jfReport',\n 'f-height',\n 'd-flex',\n getModeClass(mode),\n isLeftPanelOpen === true ? 'leftPaneIsActive' : '',\n isRightPanelOpen === true || isSlidesPanelOpen === true ? 'rightPaneIsActive' : '',\n isSlidesPanelOpen === true ? 'slidesPaneIsActive' : '',\n isAllSlidesPanelOpen === true ? 'allSlidesPaneIsActive' : '',\n theme,\n );\n return (\n <div\n className={wrapperClass}\n >\n {children}\n </div>\n );\n};\n\nReportWrapper.propTypes = {\n children: PropTypes.any,\n mode: PropTypes.string,\n pageCount: PropTypes.number,\n theme: PropTypes.oneOf(['lightMode', 'darkMode']),\n};\n\nReportWrapper.defaultProps = {\n children: null,\n mode: '',\n pageCount: 0,\n theme: 'lightMode',\n};\n\nexport default memo(ReportWrapper);\n"],"names":["getModeClass","mode","ReportWrapper","children","pageCount","theme","useBuilderContext","isAllSlidesPanelOpen","isLeftPanelOpen","isRightPanelOpen","isSlidesPanelOpen","setIsLeftPanelOpen","setIsSlidesPanelOpen","setZoom","usePropContext","settings","decidedWhichPanelToOpen","useRef","useFitZoom","handler","isModeCustomize","useEffect","current","wrapperClass","classNames","_jsx","propTypes","PropTypes","any","string","number","oneOf","defaultProps","memo"],"mappings":";;;;;;;;AAOA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,IAAI;AAAA,mBAAOA,IAAP;AAAA,CAAzB;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAKhB;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJF,IAGI,QAHJA,IAGI;AAAA,MAFJG,SAEI,QAFJA,SAEI;AAAA,MADJC,KACI,QADJA,KACI;;AACJ,2BAQIC,iBAAiB,EARrB;AAAA,MACEC,oBADF,sBACEA,oBADF;AAAA,MAEEC,eAFF,sBAEEA,eAFF;AAAA,MAGEC,gBAHF,sBAGEA,gBAHF;AAAA,MAIEC,iBAJF,sBAIEA,iBAJF;AAAA,MAKEC,kBALF,sBAKEA,kBALF;AAAA,MAMEC,oBANF,sBAMEA,oBANF;AAAA,MAOEC,OAPF,sBAOEA,OAPF;;AASA,wBAAqBC,cAAc,EAAnC;AAAA,MAAQC,QAAR,mBAAQA,QAAR;;AACA,MAAMC,uBAAuB,GAAGC,MAAM,CAAC,KAAD,CAAtC;AAEAC,EAAAA,UAAU,CAAC;AACTC,IAAAA,OAAO,EAAEN,OADA;AAETO,IAAAA,eAAe,EAAEnB,IAAI,KAAK,WAFjB;AAGTc,IAAAA,QAAQ,EAARA;AAHS,GAAD,CAAV;AAMAM,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIpB,IAAI,KAAK,WAAT,IAAwBe,uBAAuB,CAACM,OAApD,EAA6D;AAC3D;AACD;;AAED,QAAIlB,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAII,eAAJ,EAAqB;AACnBG,QAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;;AACDC,MAAAA,oBAAoB,CAAC,IAAD,CAApB;AACD,KALD,MAKO;AACL,UAAIF,iBAAJ,EAAuB;AACrBE,QAAAA,oBAAoB,CAAC,KAAD,CAApB;AACD;;AACDD,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;;AAEDK,IAAAA,uBAAuB,CAACM,OAAxB,GAAkC,IAAlC;AACD,GAlBQ,EAkBN,CAACrB,IAAD,EAAOG,SAAP,CAlBM,CAAT;AAoBA,MAAMmB,YAAY,GAAGC,UAAU,CAC7B,UAD6B,EAE7B,UAF6B,EAG7B,QAH6B,EAI7BxB,YAAY,CAACC,IAAD,CAJiB,EAK7BO,eAAe,KAAK,IAApB,GAA2B,kBAA3B,GAAgD,EALnB,EAM7BC,gBAAgB,KAAK,IAArB,IAA6BC,iBAAiB,KAAK,IAAnD,GAA0D,mBAA1D,GAAgF,EANnD,EAO7BA,iBAAiB,KAAK,IAAtB,GAA6B,oBAA7B,GAAoD,EAPvB,EAQ7BH,oBAAoB,KAAK,IAAzB,GAAgC,uBAAhC,GAA0D,EAR7B,EAS7BF,KAT6B,CAA/B;AAWA,sBACEoB;AACE,IAAA,SAAS,EAAEF,YADb;AAAA,cAGGpB;AAHH,IADF;AAOD,CA9DD;;AAgEAD,aAAa,CAACwB,SAAd,GAA0B;AACxBvB,EAAAA,QAAQ,EAAEwB,SAAS,CAACC,GADI;AAExB3B,EAAAA,IAAI,EAAE0B,SAAS,CAACE,MAFQ;AAGxBzB,EAAAA,SAAS,EAAEuB,SAAS,CAACG,MAHG;AAIxBzB,EAAAA,KAAK,EAAEsB,SAAS,CAACI,KAAV,CAAgB,CAAC,WAAD,EAAc,UAAd,CAAhB;AAJiB,CAA1B;AAOA7B,aAAa,CAAC8B,YAAd,GAA6B;AAC3B7B,EAAAA,QAAQ,EAAE,IADiB;AAE3BF,EAAAA,IAAI,EAAE,EAFqB;AAG3BG,EAAAA,SAAS,EAAE,CAHgB;AAI3BC,EAAAA,KAAK,EAAE;AAJoB,CAA7B;AAOA,mCAAe4B,IAAI,CAAC/B,aAAD,CAAnB;;;;"}
@@ -1,62 +1,113 @@
1
1
  import 'core-js/modules/es.array.map.js';
2
- import { useRef, useEffect, useCallback } from 'react';
2
+ import React from 'react';
3
3
  import ReactQuill from 'react-quill';
4
4
  import PropTypes from 'prop-types';
5
- import withClickOutside from '../withClickOutside.js';
6
5
  import { modules, formats } from './textEditorConstants.js';
7
6
  import { fontSizes } from '../../constants/fonts.js';
8
7
  import 'react-quill/dist/quill.snow.css';
9
8
  import { jsx } from 'react/jsx-runtime';
10
9
 
10
+ 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); }
11
+
12
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13
+
14
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
15
+
16
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17
+
18
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
19
+
20
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21
+
22
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
23
+
24
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
25
+
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+
28
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
+
30
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
31
+
32
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
33
  var Size = ReactQuill.Quill.import('attributors/style/size');
12
34
  Size.whitelist = fontSizes.map(function (s) {
13
35
  return "".concat(s, "px");
14
36
  });
15
37
  ReactQuill.Quill.register(Size, true);
16
38
 
17
- var QuillEditor = function QuillEditor(_ref) {
18
- var content = _ref.content,
19
- handleSave = _ref.handleSave,
20
- placeholder = _ref.placeholder,
21
- setIsTextEditorOpen = _ref.setIsTextEditorOpen;
22
- var quill = useRef(null);
23
-
24
- var saveAndQuit = function saveAndQuit() {
25
- if (quill.current === null) return;
26
- var editor = quill.current.getEditor();
27
- var unprivilegedEditor = quill.current.makeUnprivilegedEditor(editor);
28
- handleSave(unprivilegedEditor.getHTML());
29
- setIsTextEditorOpen(false);
30
- };
31
-
32
- useEffect(function () {
33
- if (quill.current !== null) {
34
- var editor = quill.current.getEditor();
35
- editor.setSelection(0, content.length);
36
- }
39
+ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
40
+ _inherits(QuillEditor, _React$PureComponent);
37
41
 
38
- return saveAndQuit;
39
- }, []);
40
- var handleKeyDown = useCallback(function (e) {
41
- e.stopPropagation();
42
+ var _super = _createSuper(QuillEditor);
42
43
 
43
- if (e.keyCode === 27) {
44
- saveAndQuit();
44
+ function QuillEditor(props) {
45
+ var _this;
46
+
47
+ _classCallCheck(this, QuillEditor);
48
+
49
+ _this = _super.call(this, props);
50
+
51
+ _defineProperty(_assertThisInitialized(_this), "saveAndQuit", function () {
52
+ var _this$props = _this.props,
53
+ content = _this$props.content,
54
+ handleSave = _this$props.handleSave,
55
+ setIsTextEditorOpen = _this$props.setIsTextEditorOpen;
56
+ setIsTextEditorOpen(false);
57
+ handleSave(content);
58
+ });
59
+
60
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
61
+ e.stopPropagation();
62
+
63
+ if (e.keyCode === 27) {
64
+ _this.saveAndQuit();
65
+ }
66
+ });
67
+
68
+ _this.quill = /*#__PURE__*/React.createRef();
69
+ return _this;
70
+ }
71
+
72
+ _createClass(QuillEditor, [{
73
+ key: "componentDidMount",
74
+ value: function componentDidMount() {
75
+ if (this.quill.current !== null) {
76
+ var content = this.props.content;
77
+ var editor = this.quill.current.getEditor();
78
+ editor.setSelection(0, content.length);
79
+ }
45
80
  }
46
- }, []);
47
- return /*#__PURE__*/jsx("div", {
48
- className: "f-all",
49
- onKeyDown: handleKeyDown,
50
- children: /*#__PURE__*/jsx(ReactQuill, {
51
- ref: quill,
52
- defaultValue: content,
53
- formats: QuillEditor.formats,
54
- modules: QuillEditor.modules,
55
- placeholder: placeholder,
56
- preserveWhitespace: true
57
- })
58
- });
59
- };
81
+ }, {
82
+ key: "componentWillUnmount",
83
+ value: function componentWillUnmount() {
84
+ this.saveAndQuit();
85
+ }
86
+ }, {
87
+ key: "render",
88
+ value: function render() {
89
+ var _this$props2 = this.props,
90
+ content = _this$props2.content,
91
+ placeholder = _this$props2.placeholder,
92
+ setContent = _this$props2.setContent;
93
+ return /*#__PURE__*/jsx("div", {
94
+ className: "f-all",
95
+ onKeyDown: this.handleKeyDown,
96
+ children: /*#__PURE__*/jsx(ReactQuill, {
97
+ ref: this.quill,
98
+ formats: QuillEditor.formats,
99
+ modules: QuillEditor.modules,
100
+ onChange: setContent,
101
+ placeholder: placeholder,
102
+ preserveWhitespace: true,
103
+ value: content
104
+ })
105
+ });
106
+ }
107
+ }]);
108
+
109
+ return QuillEditor;
110
+ }(React.PureComponent);
60
111
 
61
112
  QuillEditor.modules = modules;
62
113
  QuillEditor.formats = formats;
@@ -64,15 +115,16 @@ QuillEditor.propTypes = {
64
115
  content: PropTypes.string,
65
116
  handleSave: PropTypes.func,
66
117
  placeholder: PropTypes.string,
118
+ setContent: PropTypes.func,
67
119
  setIsTextEditorOpen: PropTypes.func
68
120
  };
69
121
  QuillEditor.defaultProps = {
70
122
  content: '',
71
123
  handleSave: function handleSave() {},
72
124
  placeholder: 'Click to edit text',
73
- setIsTextEditorOpen: {}
125
+ setContent: function setContent() {},
126
+ setIsTextEditorOpen: function setIsTextEditorOpen() {}
74
127
  };
75
- var QuillEditor$1 = withClickOutside(QuillEditor);
76
128
 
77
- export default QuillEditor$1;
129
+ export default QuillEditor;
78
130
  //# sourceMappingURL=QuillEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react';\nimport ReactQuill from 'react-quill';\nimport PropTypes from 'prop-types';\nimport withClickOutside from '../withClickOutside';\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\nconst QuillEditor = ({\n content,\n handleSave,\n placeholder,\n setIsTextEditorOpen,\n}) => {\n const quill = useRef(null);\n const saveAndQuit = () => {\n if (quill.current === null) return;\n const editor = quill.current.getEditor();\n const unprivilegedEditor = quill.current.makeUnprivilegedEditor(editor);\n handleSave(unprivilegedEditor.getHTML());\n setIsTextEditorOpen(false);\n };\n\n useEffect(() => {\n if (quill.current !== null) {\n const editor = quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n return saveAndQuit;\n }, []);\n\n const handleKeyDown = useCallback(e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n saveAndQuit();\n }\n }, []);\n\n return (\n <div\n className=\"f-all\"\n onKeyDown={handleKeyDown}\n >\n <ReactQuill\n ref={quill}\n defaultValue={content}\n formats={QuillEditor.formats}\n modules={QuillEditor.modules}\n placeholder={placeholder}\n preserveWhitespace\n />\n </div>\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 setIsTextEditorOpen: PropTypes.func,\n};\n\nQuillEditor.defaultProps = {\n content: '',\n handleSave: () => {},\n placeholder: 'Click to edit text',\n setIsTextEditorOpen: {},\n};\n\nexport default withClickOutside(QuillEditor);\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","content","handleSave","placeholder","setIsTextEditorOpen","quill","useRef","saveAndQuit","current","editor","getEditor","unprivilegedEditor","makeUnprivilegedEditor","getHTML","useEffect","setSelection","length","handleKeyDown","useCallback","e","stopPropagation","keyCode","_jsx","formats","modules","propTypes","PropTypes","string","func","defaultProps","withClickOutside"],"mappings":";;;;;;;;;;AAQA,IAAMA,IAAI,GAAGC,UAAU,CAACC,KAAX,CAAiBC,MAAjB,CAAwB,wBAAxB,CAAb;AACAH,IAAI,CAACI,SAAL,GAAiBC,SAAS,CAACC,GAAV,CAAc,UAAAC,CAAC;AAAA,mBAAOA,CAAP;AAAA,CAAf,CAAjB;AACAN,UAAU,CAACC,KAAX,CAAiBM,QAAjB,CAA0BR,IAA1B,EAAgC,IAAhC;;AAEA,IAAMS,WAAW,GAAG,SAAdA,WAAc,OAKd;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,UAGI,QAHJA,UAGI;AAAA,MAFJC,WAEI,QAFJA,WAEI;AAAA,MADJC,mBACI,QADJA,mBACI;AACJ,MAAMC,KAAK,GAAGC,MAAM,CAAC,IAAD,CAApB;;AACA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAIF,KAAK,CAACG,OAAN,KAAkB,IAAtB,EAA4B;AAC5B,QAAMC,MAAM,GAAGJ,KAAK,CAACG,OAAN,CAAcE,SAAd,EAAf;AACA,QAAMC,kBAAkB,GAAGN,KAAK,CAACG,OAAN,CAAcI,sBAAd,CAAqCH,MAArC,CAA3B;AACAP,IAAAA,UAAU,CAACS,kBAAkB,CAACE,OAAnB,EAAD,CAAV;AACAT,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,GAND;;AAQAU,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIT,KAAK,CAACG,OAAN,KAAkB,IAAtB,EAA4B;AAC1B,UAAMC,MAAM,GAAGJ,KAAK,CAACG,OAAN,CAAcE,SAAd,EAAf;AACAD,MAAAA,MAAM,CAACM,YAAP,CAAoB,CAApB,EAAuBd,OAAO,CAACe,MAA/B;AACD;;AACD,WAAOT,WAAP;AACD,GANQ,EAMN,EANM,CAAT;AAQA,MAAMU,aAAa,GAAGC,WAAW,CAAC,UAAAC,CAAC,EAAI;AACrCA,IAAAA,CAAC,CAACC,eAAF;;AACA,QAAID,CAAC,CAACE,OAAF,KAAc,EAAlB,EAAsB;AACpBd,MAAAA,WAAW;AACZ;AACF,GALgC,EAK9B,EAL8B,CAAjC;AAOA,sBACEe;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,SAAS,EAAEL,aAFb;AAAA,2BAIEK,IAAC,UAAD;AACE,MAAA,GAAG,EAAEjB,KADP;AAEE,MAAA,YAAY,EAAEJ,OAFhB;AAGE,MAAA,OAAO,EAAED,WAAW,CAACuB,OAHvB;AAIE,MAAA,OAAO,EAAEvB,WAAW,CAACwB,OAJvB;AAKE,MAAA,WAAW,EAAErB,WALf;AAME,MAAA,kBAAkB;AANpB;AAJF,IADF;AAeD,CA7CD;;AA+CAH,WAAW,CAACwB,OAAZ,GAAsBA,OAAtB;AACAxB,WAAW,CAACuB,OAAZ,GAAsBA,OAAtB;AAEAvB,WAAW,CAACyB,SAAZ,GAAwB;AACtBxB,EAAAA,OAAO,EAAEyB,SAAS,CAACC,MADG;AAEtBzB,EAAAA,UAAU,EAAEwB,SAAS,CAACE,IAFA;AAGtBzB,EAAAA,WAAW,EAAEuB,SAAS,CAACC,MAHD;AAItBvB,EAAAA,mBAAmB,EAAEsB,SAAS,CAACE;AAJT,CAAxB;AAOA5B,WAAW,CAAC6B,YAAZ,GAA2B;AACzB5B,EAAAA,OAAO,EAAE,EADgB;AAEzBC,EAAAA,UAAU,EAAE,sBAAM,EAFO;AAGzBC,EAAAA,WAAW,EAAE,oBAHY;AAIzBC,EAAAA,mBAAmB,EAAE;AAJI,CAA3B;AAOA,oBAAe0B,gBAAgB,CAAC9B,WAAD,CAA/B;;;;"}
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 {\n content,\n placeholder,\n setContent,\n } = 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={setContent}\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","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","setContent","_jsx","handleKeyDown","formats","modules","PureComponent","propTypes","PropTypes","string","func","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,IAAI,GAAGC,UAAU,CAACC,KAAX,CAAiBC,MAAjB,CAAwB,wBAAxB,CAAb;AACAH,IAAI,CAACI,SAAL,GAAiBC,SAAS,CAACC,GAAV,CAAc,UAAAC,CAAC;AAAA,mBAAOA,CAAP;AAAA,CAAf,CAAjB;AACAN,UAAU,CAACC,KAAX,CAAiBM,QAAjB,CAA0BR,IAA1B,EAAgC,IAAhC;;IAEMS;;;;;AACJ,uBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;;AADiB,kEAkBL,YAAM;AAClB,wBAAqD,MAAKA,KAA1D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,UAAjB,eAAiBA,UAAjB;AAAA,UAA6BC,mBAA7B,eAA6BA,mBAA7B;AACAA,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACAD,MAAAA,UAAU,CAACD,OAAD,CAAV;AACD,KAtBkB;;AAAA,oEAwBH,UAAAG,CAAC,EAAI;AACnBA,MAAAA,CAAC,CAACC,eAAF;;AACA,UAAID,CAAC,CAACE,OAAF,KAAc,EAAlB,EAAsB;AACpB,cAAKC,WAAL;AACD;AACF,KA7BkB;;AAGjB,UAAKC,KAAL,gBAAaC,KAAK,CAACC,SAAN,EAAb;AAHiB;AAIlB;;;;WAED,6BAAoB;AAClB,UAAI,KAAKF,KAAL,CAAWG,OAAX,KAAuB,IAA3B,EAAiC;AAC/B,YAAQV,OAAR,GAAoB,KAAKD,KAAzB,CAAQC,OAAR;AACA,YAAMW,MAAM,GAAG,KAAKJ,KAAL,CAAWG,OAAX,CAAmBE,SAAnB,EAAf;AACAD,QAAAA,MAAM,CAACE,YAAP,CAAoB,CAApB,EAAuBb,OAAO,CAACc,MAA/B;AACD;AACF;;;WAED,gCAAuB;AACrB,WAAKR,WAAL;AACD;;;WAeD,kBAAS;AACP,yBAII,KAAKP,KAJT;AAAA,UACEC,OADF,gBACEA,OADF;AAAA,UAEEe,WAFF,gBAEEA,WAFF;AAAA,UAGEC,UAHF,gBAGEA,UAHF;AAMA,0BACEC;AACE,QAAA,SAAS,EAAC,OADZ;AAEE,QAAA,SAAS,EAAE,KAAKC,aAFlB;AAAA,+BAIED,IAAC,UAAD;AACE,UAAA,GAAG,EAAE,KAAKV,KADZ;AAEE,UAAA,OAAO,EAAET,WAAW,CAACqB,OAFvB;AAGE,UAAA,OAAO,EAAErB,WAAW,CAACsB,OAHvB;AAIE,UAAA,QAAQ,EAAEJ,UAJZ;AAKE,UAAA,WAAW,EAAED,WALf;AAME,UAAA,kBAAkB,MANpB;AAOE,UAAA,KAAK,EAAEf;AAPT;AAJF,QADF;AAgBD;;;;EAvDuBQ,KAAK,CAACa;;AA0DhCvB,WAAW,CAACsB,OAAZ,GAAsBA,OAAtB;AACAtB,WAAW,CAACqB,OAAZ,GAAsBA,OAAtB;AAEArB,WAAW,CAACwB,SAAZ,GAAwB;AACtBtB,EAAAA,OAAO,EAAEuB,SAAS,CAACC,MADG;AAEtBvB,EAAAA,UAAU,EAAEsB,SAAS,CAACE,IAFA;AAGtBV,EAAAA,WAAW,EAAEQ,SAAS,CAACC,MAHD;AAItBR,EAAAA,UAAU,EAAEO,SAAS,CAACE,IAJA;AAKtBvB,EAAAA,mBAAmB,EAAEqB,SAAS,CAACE;AALT,CAAxB;AAQA3B,WAAW,CAAC4B,YAAZ,GAA2B;AACzB1B,EAAAA,OAAO,EAAE,EADgB;AAEzBC,EAAAA,UAAU,EAAE,sBAAM,EAFO;AAGzBc,EAAAA,WAAW,EAAE,oBAHY;AAIzBC,EAAAA,UAAU,EAAE,sBAAM,EAJO;AAKzBd,EAAAA,mBAAmB,EAAE,+BAAM;AALF,CAA3B;;;;"}
@@ -1,9 +1,21 @@
1
- import { useCallback, useMemo } from 'react';
1
+ import { useState, useCallback, useMemo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import QuillEditor from './QuillEditor.js';
4
4
  import { useBuilderContext } from '../../utils/builderContext.js';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14
+
15
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16
+
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
+
7
19
  var TextEditor = function TextEditor(_ref) {
8
20
  var content = _ref.content,
9
21
  handleSave = _ref.handleSave,
@@ -11,6 +23,11 @@ var TextEditor = function TextEditor(_ref) {
11
23
  isSelected = _ref.isSelected,
12
24
  placeholder = _ref.placeholder;
13
25
 
26
+ var _useState = useState(content),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ _content = _useState2[0],
29
+ setContent = _useState2[1];
30
+
14
31
  var _useBuilderContext = useBuilderContext(),
15
32
  isTextEditorOpen = _useBuilderContext.isTextEditorOpen,
16
33
  setIsTextEditorOpen = _useBuilderContext.setIsTextEditorOpen;
@@ -22,26 +39,19 @@ var TextEditor = function TextEditor(_ref) {
22
39
  }, [isSelected, isLocked]);
23
40
  var isNotEmpty = useMemo(function () {
24
41
  var el = document.createElement('div');
25
- el.innerHTML = content;
42
+ el.innerHTML = _content;
26
43
  return !!el.innerText;
27
- }, [content]);
28
- var onClickOutside = useCallback(function () {
29
- setTimeout(function () {
30
- return setIsTextEditorOpen(false);
31
- }, 1000);
32
- }, [isTextEditorOpen]);
44
+ }, [_content]);
33
45
  return isSelected && isTextEditorOpen ? /*#__PURE__*/jsx(QuillEditor, {
34
- content: content,
35
- exceptionalClasses: ['ql-toolbar'],
46
+ content: _content,
36
47
  handleSave: handleSave,
37
- onClickOutside: onClickOutside,
38
48
  placeholder: placeholder,
39
- setIsTextEditorOpen: setIsTextEditorOpen,
40
- withClickOutsideWrapperClass: "textEditorWrapper f-all"
49
+ setContent: setContent,
50
+ setIsTextEditorOpen: setIsTextEditorOpen
41
51
  }) : /*#__PURE__*/jsx("div", {
42
52
  className: "f-all ql-editor".concat(isNotEmpty ? '' : ' isEmptyTextElement'),
43
53
  dangerouslySetInnerHTML: {
44
- __html: isNotEmpty ? content : placeholder
54
+ __html: isNotEmpty ? _content : placeholder
45
55
  },
46
56
  onClick: onClick,
47
57
  onKeyDown: function onKeyDown() {}
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\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 { 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 const onClickOutside = useCallback(() => {\n setTimeout(() => setIsTextEditorOpen(false), 1000);\n }, [isTextEditorOpen]);\n\n return isSelected && isTextEditorOpen ? (\n <QuillEditor\n content={content}\n exceptionalClasses={['ql-toolbar']}\n handleSave={handleSave}\n onClickOutside={onClickOutside}\n placeholder={placeholder}\n setIsTextEditorOpen={setIsTextEditorOpen}\n withClickOutsideWrapperClass=\"textEditorWrapper f-all\"\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","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","onClickOutside","setTimeout","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;IAKMA,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,2BAAkDC,iBAAiB,EAAnE;AAAA,MAAQC,gBAAR,sBAAQA,gBAAR;AAAA,MAA0BC,mBAA1B,sBAA0BA,mBAA1B;;AAEA,MAAMC,OAAO,GAAGC,WAAW,CAAC,YAAM;AAChC,QAAIN,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BK,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACJ,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMQ,UAAU,GAAGC,OAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAef,OAAf;AACA,WAAO,CAAC,CAACY,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAAChB,OAAD,CAJuB,CAA1B;AAMA,MAAMiB,cAAc,GAAGR,WAAW,CAAC,YAAM;AACvCS,IAAAA,UAAU,CAAC;AAAA,aAAMX,mBAAmB,CAAC,KAAD,CAAzB;AAAA,KAAD,EAAmC,IAAnC,CAAV;AACD,GAFiC,EAE/B,CAACD,gBAAD,CAF+B,CAAlC;AAIA,SAAOH,UAAU,IAAIG,gBAAd,gBACLa,IAAC,WAAD;AACE,IAAA,OAAO,EAAEnB,OADX;AAEE,IAAA,kBAAkB,EAAE,CAAC,YAAD,CAFtB;AAGE,IAAA,UAAU,EAAEC,UAHd;AAIE,IAAA,cAAc,EAAEgB,cAJlB;AAKE,IAAA,WAAW,EAAEb,WALf;AAME,IAAA,mBAAmB,EAAEG,mBANvB;AAOE,IAAA,4BAA4B,EAAC;AAP/B,IADK,gBAWLY;AACE,IAAA,SAAS,2BAAoBT,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBU,MAAAA,MAAM,EAAEV,UAAU,GAAGV,OAAH,GAAaI;AADR,KAF3B;AAKE,IAAA,OAAO,EAAEI,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IAXF;AAoBD;;AAEDT,UAAU,CAACsB,SAAX,GAAuB;AACrBrB,EAAAA,OAAO,EAAEsB,SAAS,CAACC,MADE;AAErBtB,EAAAA,UAAU,EAAEqB,SAAS,CAACE,IAFD;AAGrBtB,EAAAA,QAAQ,EAAEoB,SAAS,CAACG,IAHC;AAIrBtB,EAAAA,UAAU,EAAEmB,SAAS,CAACG,IAJD;AAKrBrB,EAAAA,WAAW,EAAEkB,SAAS,CAACC;AALF,CAAvB;AAQAxB,UAAU,CAAC2B,YAAX,GAA0B;AACxB1B,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;;;;"}
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 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 = _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","_content","setContent","useBuilderContext","isTextEditorOpen","setIsTextEditorOpen","onClick","useCallback","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;IAKMA,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,CAACL,OAAD,CAAvC;AAAA;AAAA,MAAOM,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,QAAIT,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BQ,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACP,UAAD,EAAaD,QAAb,CAJwB,CAA3B;AAMA,MAAMW,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,SAAOH,UAAU,IAAIM,gBAAd,gBACLW,IAAC,WAAD;AACE,IAAA,OAAO,EAAEd,QADX;AAEE,IAAA,UAAU,EAAEL,UAFd;AAGE,IAAA,WAAW,EAAEG,WAHf;AAIE,IAAA,UAAU,EAAEG,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,GAAcF;AADT,KAF3B;AAKE,IAAA,OAAO,EAAEO,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDZ,UAAU,CAACuB,SAAX,GAAuB;AACrBtB,EAAAA,OAAO,EAAEuB,SAAS,CAACC,MADE;AAErBvB,EAAAA,UAAU,EAAEsB,SAAS,CAACE,IAFD;AAGrBvB,EAAAA,QAAQ,EAAEqB,SAAS,CAACG,IAHC;AAIrBvB,EAAAA,UAAU,EAAEoB,SAAS,CAACG,IAJD;AAKrBtB,EAAAA,WAAW,EAAEmB,SAAS,CAACC;AALF,CAAvB;AAQAzB,UAAU,CAAC4B,YAAX,GAA0B;AACxB3B,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;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  .lightMode {
4
4
  .jfReport-toolbox, .jfPresentation-toolbox {
5
- background-color: #f1f1f5;
5
+ background-color: $white;
6
6
  }
7
7
 
8
8
  .jfReport-pane {
@@ -5,6 +5,8 @@
5
5
 
6
6
  // Mixins //
7
7
 
8
+ @use "sass:math";
9
+
8
10
  @mixin text-ellipsis {
9
11
  overflow: hidden;
10
12
  text-overflow: ellipsis;
@@ -35,7 +37,7 @@
35
37
  $base: $base * 1px;
36
38
  }
37
39
 
38
- @return $pxval / $base * 1em;
40
+ @return math.div($pxval, $base) * 1em;
39
41
  }
40
42
 
41
43
  // Functions //
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jotforminc/dnd-builder",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "files": [
5
5
  "lib"
6
6
  ],
@@ -83,11 +83,11 @@
83
83
  "jest": "26.6.3",
84
84
  "jest-canvas-mock": "2.3.1",
85
85
  "lint-staged": "10.5.4",
86
- "node-sass": "5.0.0",
87
86
  "rollup": "2.39.0",
88
87
  "rollup-plugin-delete": "2.0.0",
89
88
  "rollup-plugin-sourcemaps": "0.6.3",
90
89
  "rollup-plugin-static-import": "0.1.1",
90
+ "sass": "1.52.3",
91
91
  "sass-loader": "10.1.1",
92
92
  "standard-version": "9.3.0",
93
93
  "style-loader": "2.0.0",