@pie-lib/editable-html 7.17.4-next.42 → 7.17.4-next.437

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.json +165 -0
  2. package/CHANGELOG.md +286 -0
  3. package/lib/editor.js +325 -178
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +63 -52
  6. package/lib/index.js.map +1 -1
  7. package/lib/parse-html.js.map +1 -1
  8. package/lib/plugins/characters/custom-popover.js +70 -0
  9. package/lib/plugins/characters/custom-popover.js.map +1 -0
  10. package/lib/plugins/characters/index.js +266 -0
  11. package/lib/plugins/characters/index.js.map +1 -0
  12. package/lib/plugins/characters/utils.js +382 -0
  13. package/lib/plugins/characters/utils.js.map +1 -0
  14. package/lib/plugins/image/component.js +251 -77
  15. package/lib/plugins/image/component.js.map +1 -1
  16. package/lib/plugins/image/image-toolbar.js +49 -63
  17. package/lib/plugins/image/image-toolbar.js.map +1 -1
  18. package/lib/plugins/image/index.js +56 -19
  19. package/lib/plugins/image/index.js.map +1 -1
  20. package/lib/plugins/image/insert-image-handler.js +9 -15
  21. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  22. package/lib/plugins/index.js +20 -12
  23. package/lib/plugins/index.js.map +1 -1
  24. package/lib/plugins/list/index.js +82 -14
  25. package/lib/plugins/list/index.js.map +1 -1
  26. package/lib/plugins/math/index.js +50 -55
  27. package/lib/plugins/math/index.js.map +1 -1
  28. package/lib/plugins/media/index.js +26 -25
  29. package/lib/plugins/media/index.js.map +1 -1
  30. package/lib/plugins/media/media-dialog.js +45 -56
  31. package/lib/plugins/media/media-dialog.js.map +1 -1
  32. package/lib/plugins/media/media-toolbar.js +24 -30
  33. package/lib/plugins/media/media-toolbar.js.map +1 -1
  34. package/lib/plugins/media/media-wrapper.js +28 -35
  35. package/lib/plugins/media/media-wrapper.js.map +1 -1
  36. package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
  37. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  38. package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
  39. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  40. package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
  41. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  42. package/lib/plugins/respArea/icons/index.js +11 -11
  43. package/lib/plugins/respArea/icons/index.js.map +1 -1
  44. package/lib/plugins/respArea/index.js +58 -42
  45. package/lib/plugins/respArea/index.js.map +1 -1
  46. package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
  47. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  48. package/lib/plugins/respArea/utils.js +5 -5
  49. package/lib/plugins/respArea/utils.js.map +1 -1
  50. package/lib/plugins/table/icons/index.js +12 -12
  51. package/lib/plugins/table/icons/index.js.map +1 -1
  52. package/lib/plugins/table/index.js +83 -27
  53. package/lib/plugins/table/index.js.map +1 -1
  54. package/lib/plugins/table/table-toolbar.js +41 -50
  55. package/lib/plugins/table/table-toolbar.js.map +1 -1
  56. package/lib/plugins/toolbar/default-toolbar.js +14 -11
  57. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  58. package/lib/plugins/toolbar/done-button.js +5 -5
  59. package/lib/plugins/toolbar/done-button.js.map +1 -1
  60. package/lib/plugins/toolbar/editor-and-toolbar.js +43 -43
  61. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  62. package/lib/plugins/toolbar/index.js +5 -5
  63. package/lib/plugins/toolbar/index.js.map +1 -1
  64. package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
  65. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  66. package/lib/plugins/toolbar/toolbar.js +60 -64
  67. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  68. package/lib/plugins/utils.js +1 -1
  69. package/lib/plugins/utils.js.map +1 -1
  70. package/lib/serialization.js +32 -9
  71. package/lib/serialization.js.map +1 -1
  72. package/lib/theme.js.map +1 -1
  73. package/package.json +5 -5
  74. package/src/editor.jsx +165 -30
  75. package/src/index.jsx +20 -3
  76. package/src/plugins/characters/custom-popover.js +45 -0
  77. package/src/plugins/characters/index.jsx +244 -0
  78. package/src/plugins/characters/utils.js +448 -0
  79. package/src/plugins/image/component.jsx +202 -21
  80. package/src/plugins/image/image-toolbar.jsx +26 -20
  81. package/src/plugins/image/index.jsx +40 -9
  82. package/src/plugins/index.jsx +4 -1
  83. package/src/plugins/list/index.jsx +67 -5
  84. package/src/plugins/math/index.jsx +31 -37
  85. package/src/plugins/media/index.jsx +3 -0
  86. package/src/plugins/media/media-dialog.js +1 -1
  87. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
  88. package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
  89. package/src/plugins/respArea/index.jsx +51 -31
  90. package/src/plugins/table/index.jsx +61 -14
  91. package/src/plugins/toolbar/default-toolbar.jsx +8 -0
  92. package/src/plugins/toolbar/editor-and-toolbar.jsx +12 -4
  93. package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
  94. package/src/plugins/toolbar/toolbar.jsx +14 -4
  95. package/src/serialization.jsx +19 -3
@@ -1,126 +1,112 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = exports.ImageToolbar = void 0;
7
9
 
8
- var _toolbarButtons = require("../toolbar/toolbar-buttons");
9
-
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
- var _react = _interopRequireDefault(require("react"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
11
 
14
- var _debug = _interopRequireDefault(require("debug"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
13
 
16
- var _styles = require("@material-ui/core/styles");
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
15
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
17
 
20
- function _typeof(obj) { 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); }
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
19
 
22
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
21
 
24
- 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); } }
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
23
 
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
25
 
28
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
26
+ var _react = _interopRequireDefault(require("react"));
29
27
 
30
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
28
+ var _debug = _interopRequireDefault(require("debug"));
31
29
 
32
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
30
+ var _styles = require("@material-ui/core/styles");
33
31
 
34
- 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); }
32
+ var _toolbarButtons = require("../toolbar/toolbar-buttons");
35
33
 
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
35
 
38
- 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; }
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; } }
39
37
 
40
38
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:image-toolbar');
41
39
 
42
- var PercentButton = function PercentButton(_ref) {
43
- var percent = _ref.percent,
40
+ var AlignmentButton = function AlignmentButton(_ref) {
41
+ var alignment = _ref.alignment,
44
42
  active = _ref.active,
45
43
  onClick = _ref.onClick;
46
- var label = "".concat(percent, "%");
47
- return _react["default"].createElement(_toolbarButtons.MarkButton, {
44
+ return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
48
45
  active: active,
49
46
  onToggle: function onToggle() {
50
- return onClick(percent);
47
+ return onClick(alignment);
51
48
  },
52
- label: label
53
- }, label);
49
+ label: alignment
50
+ }, alignment);
54
51
  };
55
52
 
56
- PercentButton.propTypes = {
57
- percent: _propTypes["default"].number.isRequired,
53
+ AlignmentButton.propTypes = {
54
+ alignment: _propTypes["default"].string.isRequired,
58
55
  active: _propTypes["default"].bool.isRequired,
59
56
  onClick: _propTypes["default"].func.isRequired
60
57
  };
61
58
 
62
- var ImageToolbar =
63
- /*#__PURE__*/
64
- function (_React$Component) {
65
- _inherits(ImageToolbar, _React$Component);
59
+ var ImageToolbar = /*#__PURE__*/function (_React$Component) {
60
+ (0, _inherits2["default"])(ImageToolbar, _React$Component);
66
61
 
67
- function ImageToolbar() {
68
- var _getPrototypeOf2;
62
+ var _super = _createSuper(ImageToolbar);
69
63
 
64
+ function ImageToolbar() {
70
65
  var _this;
71
66
 
72
- _classCallCheck(this, ImageToolbar);
67
+ (0, _classCallCheck2["default"])(this, ImageToolbar);
73
68
 
74
69
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
75
70
  args[_key] = arguments[_key];
76
71
  }
77
72
 
78
- _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ImageToolbar)).call.apply(_getPrototypeOf2, [this].concat(args)));
73
+ _this = _super.call.apply(_super, [this].concat(args));
74
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlignmentClick", function (alignment) {
75
+ log('[onAlignmentClick]: alignment:', alignment);
79
76
 
80
- _defineProperty(_assertThisInitialized(_this), "onPercentClick", function (percent) {
81
- log('[onPercentClick]: percent:', percent);
82
-
83
- _this.props.onChange(percent);
77
+ _this.props.onChange(alignment);
84
78
  });
85
-
86
79
  return _this;
87
80
  }
88
81
 
89
- _createClass(ImageToolbar, [{
82
+ (0, _createClass2["default"])(ImageToolbar, [{
90
83
  key: "render",
91
84
  value: function render() {
92
85
  var _this$props = this.props,
93
86
  classes = _this$props.classes,
94
- percent = _this$props.percent;
95
- return _react["default"].createElement("div", {
87
+ alignment = _this$props.alignment;
88
+ return /*#__PURE__*/_react["default"].createElement("div", {
96
89
  className: classes.holder
97
- }, _react["default"].createElement(PercentButton, {
98
- percent: 25,
99
- active: percent === 25,
100
- onClick: this.onPercentClick
101
- }), _react["default"].createElement(PercentButton, {
102
- percent: 50,
103
- active: percent === 50,
104
- onClick: this.onPercentClick
105
- }), _react["default"].createElement(PercentButton, {
106
- active: percent === 75,
107
- percent: 75,
108
- onClick: this.onPercentClick
109
- }), _react["default"].createElement(PercentButton, {
110
- percent: 100,
111
- active: percent === 100 || !percent,
112
- onClick: this.onPercentClick
90
+ }, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
91
+ alignment: 'left',
92
+ active: alignment === 'left',
93
+ onClick: this.onAlignmentClick
94
+ }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
95
+ alignment: 'center',
96
+ active: alignment === 'center',
97
+ onClick: this.onAlignmentClick
98
+ }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
99
+ alignment: 'right',
100
+ active: alignment === 'right',
101
+ onClick: this.onAlignmentClick
113
102
  }));
114
103
  }
115
104
  }]);
116
-
117
105
  return ImageToolbar;
118
106
  }(_react["default"].Component);
119
107
 
120
108
  exports.ImageToolbar = ImageToolbar;
121
-
122
- _defineProperty(ImageToolbar, "propTypes", {
123
- percent: _propTypes["default"].number.isRequired,
109
+ (0, _defineProperty2["default"])(ImageToolbar, "propTypes", {
124
110
  onChange: _propTypes["default"].func.isRequired,
125
111
  classes: _propTypes["default"].object.isRequired
126
112
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/image-toolbar.jsx"],"names":["log","PercentButton","percent","active","onClick","label","propTypes","PropTypes","number","isRequired","bool","func","ImageToolbar","props","onChange","classes","holder","onPercentClick","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,oDAAN,CAAZ;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAAkC;AAAA,MAA/BC,OAA+B,QAA/BA,OAA+B;AAAA,MAAtBC,MAAsB,QAAtBA,MAAsB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AACtD,MAAMC,KAAK,aAAMH,OAAN,MAAX;AACA,SACE,gCAAC,0BAAD;AAAY,IAAA,MAAM,EAAEC,MAApB;AAA4B,IAAA,QAAQ,EAAE;AAAA,aAAMC,OAAO,CAACF,OAAD,CAAb;AAAA,KAAtC;AAA8D,IAAA,KAAK,EAAEG;AAArE,KACGA,KADH,CADF;AAKD,CAPD;;AASAJ,aAAa,CAACK,SAAd,GAA0B;AACxBJ,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADF;AAExBN,EAAAA,MAAM,EAAEI,sBAAUG,IAAV,CAAeD,UAFC;AAGxBL,EAAAA,OAAO,EAAEG,sBAAUI,IAAV,CAAeF;AAHA,CAA1B;;IAMaG,Y;;;;;;;;;;;;;;;;;;qEAOM,UAAAV,OAAO,EAAI;AAC1BF,MAAAA,GAAG,CAAC,4BAAD,EAA+BE,OAA/B,CAAH;;AACA,YAAKW,KAAL,CAAWC,QAAX,CAAoBZ,OAApB;AACD,K;;;;;;;6BAEQ;AAAA,wBACsB,KAAKW,KAD3B;AAAA,UACCE,OADD,eACCA,OADD;AAAA,UACUb,OADV,eACUA,OADV;AAEP,aACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACC;AAAxB,SACE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEd,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QADF,EAEE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAFF,EAGE,gCAAC,aAAD;AAAe,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAnC;AAAuC,QAAA,OAAO,EAAE,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAHF,EAIE,gCAAC,aAAD;AACE,QAAA,OAAO,EAAE,GADX;AAEE,QAAA,MAAM,EAAEf,OAAO,KAAK,GAAZ,IAAmB,CAACA,OAF9B;AAGE,QAAA,OAAO,EAAE,KAAKe;AAHhB,QAJF,CADF;AAYD;;;;EA1B+BC,kBAAMC,S;;;;gBAA3BP,Y,eACQ;AACjBV,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADT;AAEjBK,EAAAA,QAAQ,EAAEP,sBAAUI,IAAV,CAAeF,UAFR;AAGjBM,EAAAA,OAAO,EAAER,sBAAUa,MAAV,CAAiBX;AAHT,C;;AA4BrB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBN,IAAAA,MAAM,EAAE;AACNO,MAAAA,WAAW,EAAED,KAAK,CAACE,OAAN,CAAcC,IADrB;AAENC,MAAAA,OAAO,EAAE,MAFH;AAGNC,MAAAA,UAAU,EAAE;AAHN;AADe,GAAL;AAAA,CAApB;;eAQe,wBAAWN,MAAX,EAAmBT,YAAnB,C","sourcesContent":["import { MarkButton } from '../toolbar/toolbar-buttons';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst PercentButton = ({ percent, active, onClick }) => {\n const label = `${percent}%`;\n return (\n <MarkButton active={active} onToggle={() => onClick(percent)} label={label}>\n {label}\n </MarkButton>\n );\n};\n\nPercentButton.propTypes = {\n percent: PropTypes.number.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n percent: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n onPercentClick = percent => {\n log('[onPercentClick]: percent:', percent);\n this.props.onChange(percent);\n };\n\n render() {\n const { classes, percent } = this.props;\n return (\n <div className={classes.holder}>\n <PercentButton percent={25} active={percent === 25} onClick={this.onPercentClick} />\n <PercentButton percent={50} active={percent === 50} onClick={this.onPercentClick} />\n <PercentButton active={percent === 75} percent={75} onClick={this.onPercentClick} />\n <PercentButton\n percent={100}\n active={percent === 100 || !percent}\n onClick={this.onPercentClick}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n }\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"file":"image-toolbar.js"}
1
+ {"version":3,"file":"image-toolbar.js","names":["log","debug","AlignmentButton","alignment","active","onClick","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","props","onChange","classes","holder","onAlignmentClick","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems","withStyles"],"sources":["../../../src/plugins/image/image-toolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n onAlignmentClick = alignment => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange(alignment);\n };\n\n render() {\n const { classes, alignment } = this.props;\n\n return (\n <div className={classes.holder}>\n <AlignmentButton\n alignment={'left'}\n active={alignment === 'left'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'center'}\n active={alignment === 'center'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'right'}\n active={alignment === 'right'}\n onClick={this.onAlignmentClick}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n }\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,oDAAN,CAAZ;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,OAAoC;EAAA,IAAjCC,SAAiC,QAAjCA,SAAiC;EAAA,IAAtBC,MAAsB,QAAtBA,MAAsB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EAC1D,oBACE,gCAAC,0BAAD;IAAY,MAAM,EAAED,MAApB;IAA4B,QAAQ,EAAE;MAAA,OAAMC,OAAO,CAACF,SAAD,CAAb;IAAA,CAAtC;IAAgE,KAAK,EAAEA;EAAvE,GACGA,SADH,CADF;AAKD,CAND;;AAQAD,eAAe,CAACI,SAAhB,GAA4B;EAC1BH,SAAS,EAAEI,qBAAA,CAAUC,MAAV,CAAiBC,UADF;EAE1BL,MAAM,EAAEG,qBAAA,CAAUG,IAAV,CAAeD,UAFG;EAG1BJ,OAAO,EAAEE,qBAAA,CAAUI,IAAV,CAAeF;AAHE,CAA5B;;IAMaG,Y;;;;;;;;;;;;;;;yGAMQ,UAAAT,SAAS,EAAI;MAC9BH,GAAG,CAAC,gCAAD,EAAmCG,SAAnC,CAAH;;MACA,MAAKU,KAAL,CAAWC,QAAX,CAAoBX,SAApB;IACD,C;;;;;;WAED,kBAAS;MACP,kBAA+B,KAAKU,KAApC;MAAA,IAAQE,OAAR,eAAQA,OAAR;MAAA,IAAiBZ,SAAjB,eAAiBA,SAAjB;MAEA,oBACE;QAAK,SAAS,EAAEY,OAAO,CAACC;MAAxB,gBACE,gCAAC,eAAD;QACE,SAAS,EAAE,MADb;QAEE,MAAM,EAAEb,SAAS,KAAK,MAFxB;QAGE,OAAO,EAAE,KAAKc;MAHhB,EADF,eAME,gCAAC,eAAD;QACE,SAAS,EAAE,QADb;QAEE,MAAM,EAAEd,SAAS,KAAK,QAFxB;QAGE,OAAO,EAAE,KAAKc;MAHhB,EANF,eAWE,gCAAC,eAAD;QACE,SAAS,EAAE,OADb;QAEE,MAAM,EAAEd,SAAS,KAAK,OAFxB;QAGE,OAAO,EAAE,KAAKc;MAHhB,EAXF,CADF;IAmBD;;;EAjC+BC,iBAAA,CAAMC,S;;;iCAA3BP,Y,eACQ;EACjBE,QAAQ,EAAEP,qBAAA,CAAUI,IAAV,CAAeF,UADR;EAEjBM,OAAO,EAAER,qBAAA,CAAUa,MAAV,CAAiBX;AAFT,C;;AAmCrB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACvBN,MAAM,EAAE;MACNO,WAAW,EAAED,KAAK,CAACE,OAAN,CAAcC,IADrB;MAENC,OAAO,EAAE,MAFH;MAGNC,UAAU,EAAE;IAHN;EADe,CAAL;AAAA,CAApB;;eAQe,IAAAC,kBAAA,EAAWP,MAAX,EAAmBT,YAAnB,C"}
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = ImagePlugin;
7
9
  exports.serialization = void 0;
8
10
 
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+
9
13
  var _slate = require("slate");
10
14
 
11
15
  var _Image = _interopRequireDefault(require("@material-ui/icons/Image"));
@@ -20,19 +24,15 @@ var _react = _interopRequireDefault(require("react"));
20
24
 
21
25
  var _debug = _interopRequireDefault(require("debug"));
22
26
 
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
-
25
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
28
 
27
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
-
29
- 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; }
29
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
30
30
 
31
31
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image');
32
32
 
33
33
  function ImagePlugin(opts) {
34
34
  var toolbar = opts.insertImageRequested && {
35
- icon: _react["default"].createElement(_Image["default"], null),
35
+ icon: /*#__PURE__*/_react["default"].createElement(_Image["default"], null),
36
36
  onClick: function onClick(value, onChange) {
37
37
  log('[toolbar] onClick');
38
38
 
@@ -55,11 +55,11 @@ function ImagePlugin(opts) {
55
55
  return node.object === 'inline' && node.type === 'image';
56
56
  },
57
57
  customToolbar: function customToolbar(node, value, onToolbarDone) {
58
- var percent = node.data.get('resizePercent');
58
+ var alignment = node.data.get('alignment');
59
59
 
60
- var onChange = function onChange(resizePercent) {
61
- var update = _objectSpread({}, node.data.toObject(), {
62
- resizePercent: resizePercent
60
+ var onChange = function onChange(alignment) {
61
+ var update = _objectSpread(_objectSpread({}, node.data.toObject()), {}, {
62
+ alignment: alignment
63
63
  });
64
64
 
65
65
  var change = value.change().setNodeByKey(node.key, {
@@ -69,8 +69,8 @@ function ImagePlugin(opts) {
69
69
  };
70
70
 
71
71
  var Tb = function Tb() {
72
- return _react["default"].createElement(_imageToolbar["default"], {
73
- percent: percent || 100,
72
+ return /*#__PURE__*/_react["default"].createElement(_imageToolbar["default"], {
73
+ alignment: alignment || 'left',
74
74
  onChange: onChange
75
75
  });
76
76
  };
@@ -128,9 +128,11 @@ function ImagePlugin(opts) {
128
128
  var all = Object.assign({
129
129
  onDelete: opts.onDelete,
130
130
  onFocus: opts.onFocus,
131
- onBlur: opts.onBlur
131
+ onBlur: opts.onBlur,
132
+ maxImageWidth: opts.maxImageWidth,
133
+ maxImageHeight: opts.maxImageHeight
132
134
  }, props);
133
- return _react["default"].createElement(_component["default"], all);
135
+ return /*#__PURE__*/_react["default"].createElement(_component["default"], all);
134
136
  }
135
137
  },
136
138
  normalizeNode: function normalizeNode(node) {
@@ -172,7 +174,9 @@ var serialization = {
172
174
  log('deserialize: ', name);
173
175
  var style = el.style || {
174
176
  width: '',
175
- height: ''
177
+ height: '',
178
+ margin: '',
179
+ justifyContent: ''
176
180
  };
177
181
  var width = parseInt(style.width.replace('px', ''), 10) || null;
178
182
  var height = parseInt(style.height.replace('px', ''), 10) || null;
@@ -183,7 +187,10 @@ var serialization = {
183
187
  data: {
184
188
  src: el.getAttribute('src'),
185
189
  width: width,
186
- height: height
190
+ height: height,
191
+ margin: el.style.margin,
192
+ justifyContent: el.style.justifyContent,
193
+ alignment: el.getAttribute('alignment')
187
194
  }
188
195
  };
189
196
  log('return object: ', out);
@@ -197,6 +204,9 @@ var serialization = {
197
204
  var src = data.get('src');
198
205
  var width = data.get('width');
199
206
  var height = data.get('height');
207
+ var alignment = data.get('alignment');
208
+ var margin = data.get('margin');
209
+ var justifyContent = data.get('margin');
200
210
  var style = {};
201
211
 
202
212
  if (width) {
@@ -207,12 +217,39 @@ var serialization = {
207
217
  style.height = "".concat(height, "px");
208
218
  }
209
219
 
220
+ style.margin = margin;
221
+ style.justifyContent = justifyContent;
222
+
223
+ if (alignment) {
224
+ switch (alignment) {
225
+ case 'left':
226
+ style.justifyContent = 'flex-start';
227
+ style.margin = '0';
228
+ break;
229
+
230
+ case 'center':
231
+ style.justifyContent = 'center';
232
+ style.margin = '0 auto';
233
+ break;
234
+
235
+ case 'right':
236
+ style.justifyContent = 'flex-end';
237
+ style.margin = 'auto 0 0 auto';
238
+ break;
239
+
240
+ default:
241
+ style.justifyContent = 'flex-start';
242
+ break;
243
+ }
244
+ }
245
+
210
246
  style.objectFit = 'contain';
211
247
  var props = {
212
248
  src: src,
213
- style: style
249
+ style: style,
250
+ alignment: alignment
214
251
  };
215
- return _react["default"].createElement("img", props);
252
+ return /*#__PURE__*/_react["default"].createElement("img", props);
216
253
  }
217
254
  };
218
255
  exports.serialization = serialization;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/index.jsx"],"names":["log","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","percent","get","resizePercent","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","parseInt","replace","out","getAttribute","serialize","objectFit"],"mappings":"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","sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const percent = node.data.get('resizePercent');\n\n const onChange = resizePercent => {\n const update = {\n ...node.data.toObject(),\n resizePercent\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => <ImageToolbar percent={percent || 100} onChange={onChange} />;\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style\n };\n\n return <img {...props} />;\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","alignment","get","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","maxImageWidth","maxImageHeight","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","margin","justifyContent","parseInt","replace","out","getAttribute","serialize","objectFit"],"sources":["../../../src/plugins/image/index.jsx"],"sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const alignment = node.data.get('alignment');\n const onChange = alignment => {\n const update = {\n ...node.data.toObject(),\n alignment\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => <ImageToolbar alignment={alignment || 'left'} onChange={onChange} />;\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur,\n maxImageWidth: opts.maxImageWidth,\n maxImageHeight: opts.maxImageHeight\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '', margin: '', justifyContent: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height,\n margin: el.style.margin,\n justifyContent: el.style.justifyContent,\n alignment: el.getAttribute('alignment')\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const alignment = data.get('alignment');\n const margin = data.get('margin');\n const justifyContent = data.get('margin');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.margin = margin;\n style.justifyContent = justifyContent;\n\n if (alignment) {\n switch (alignment) {\n case 'left':\n style.justifyContent = 'flex-start';\n style.margin = '0';\n break;\n case 'center':\n style.justifyContent = 'center';\n style.margin = '0 auto';\n break;\n case 'right':\n style.justifyContent = 'flex-end';\n style.margin = 'auto 0 0 auto';\n break;\n default:\n style.justifyContent = 'flex-start';\n break;\n }\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style,\n alignment\n };\n\n return <img {...props} />;\n }\n};\n"],"mappings":";;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,sCAAN,CAAZ;;AAEe,SAASC,WAAT,CAAqBC,IAArB,EAA2B;EACxC,IAAMC,OAAO,GAAGD,IAAI,CAACE,oBAAL,IAA6B;IAC3CC,IAAI,eAAE,gCAAC,iBAAD,OADqC;IAE3CC,OAAO,EAAE,iBAACC,KAAD,EAAQC,QAAR,EAAqB;MAC5BT,GAAG,CAAC,mBAAD,CAAH;;MACA,IAAMU,MAAM,GAAGC,aAAA,CAAOC,MAAP,CAAc;QAC3BC,IAAI,EAAE,OADqB;QAE3BC,MAAM,EAAE,IAFmB;QAG3BC,IAAI,EAAE;UACJC,MAAM,EAAE,KADJ;UAEJC,GAAG,EAAEC;QAFD;MAHqB,CAAd,CAAf;;MASA,IAAMC,MAAM,GAAGX,KAAK,CAACW,MAAN,GAAeC,YAAf,CAA4BV,MAA5B,CAAf;MACAD,QAAQ,CAACU,MAAD,CAAR;MACAhB,IAAI,CAACE,oBAAL,CAA0B,UAAAgB,QAAQ;QAAA,OAAI,IAAIC,8BAAJ,CAAuBZ,MAAvB,EAA+BW,QAA/B,EAAyCZ,QAAzC,CAAJ;MAAA,CAAlC;IACD,CAhB0C;IAiB3Cc,QAAQ,EAAE,kBAAAC,IAAI;MAAA,OAAIA,IAAI,CAACC,MAAL,KAAgB,QAAhB,IAA4BD,IAAI,CAACX,IAAL,KAAc,OAA9C;IAAA,CAjB6B;IAkB3Ca,aAAa,EAAE,uBAACF,IAAD,EAAOhB,KAAP,EAAcmB,aAAd,EAAgC;MAC7C,IAAMC,SAAS,GAAGJ,IAAI,CAACT,IAAL,CAAUc,GAAV,CAAc,WAAd,CAAlB;;MACA,IAAMpB,QAAQ,GAAG,SAAXA,QAAW,CAAAmB,SAAS,EAAI;QAC5B,IAAME,MAAM,mCACPN,IAAI,CAACT,IAAL,CAAUgB,QAAV,EADO;UAEVH,SAAS,EAATA;QAFU,EAAZ;;QAKA,IAAMT,MAAM,GAAGX,KAAK,CAACW,MAAN,GAAea,YAAf,CAA4BR,IAAI,CAACS,GAAjC,EAAsC;UAAElB,IAAI,EAAEe;QAAR,CAAtC,CAAf;QACAH,aAAa,CAACR,MAAD,EAAS,KAAT,CAAb;MACD,CARD;;MAUA,IAAMe,EAAE,GAAG,SAALA,EAAK;QAAA,oBAAM,gCAAC,wBAAD;UAAc,SAAS,EAAEN,SAAS,IAAI,MAAtC;UAA8C,QAAQ,EAAEnB;QAAxD,EAAN;MAAA,CAAX;;MACA,OAAOyB,EAAP;IACD,CAhC0C;IAiC3CC,QAAQ,EAAE;EAjCiC,CAA7C;EAoCA,OAAO;IACLC,IAAI,EAAE,OADD;IAELhC,OAAO,EAAPA,OAFK;IAGLiC,UAAU,EAAE,oBAACC,CAAD,EAAId,IAAJ,EAAUhB,KAAV,EAAiBC,QAAjB,EAA8B;MACxC6B,CAAC,CAACC,cAAF;;MACA,IAAIpC,IAAI,CAACqC,QAAT,EAAmB;QACjB,IAAMV,MAAM,GAAGN,IAAI,CAACT,IAAL,CAAU0B,KAAV,CAAgBC,WAAA,CAAK9B,MAAL,CAAY;UAAE+B,YAAY,EAAE;QAAhB,CAAZ,CAAhB,CAAf;QAEA,IAAIxB,MAAM,GAAGX,KAAK,CAACW,MAAN,GAAea,YAAf,CAA4BR,IAAI,CAACS,GAAjC,EAAsC;UAAElB,IAAI,EAAEe;QAAR,CAAtC,CAAb;QAEArB,QAAQ,CAACU,MAAD,CAAR;QACAhB,IAAI,CAACqC,QAAL,CAAchB,IAAI,CAACT,IAAL,CAAUc,GAAV,CAAc,KAAd,CAAd,EAAoC,UAACe,GAAD,EAAMC,CAAN,EAAY;UAC9C,IAAI,CAACD,GAAL,EAAU;YACRzB,MAAM,GAAG0B,CAAC,CAAC1B,MAAF,GAAW2B,eAAX,CAA2BtB,IAAI,CAACS,GAAhC,CAAT;UACD,CAFD,MAEO;YACLjC,GAAG,CAAC,WAAD,EAAc4C,GAAd,CAAH;YACAzB,MAAM,GAAG0B,CAAC,CACP1B,MADM,GAENa,YAFM,CAEOR,IAAI,CAACS,GAFZ,EAEiBT,IAAI,CAACT,IAAL,CAAU0B,KAAV,CAAgBC,WAAA,CAAK9B,MAAL,CAAY;cAAE+B,YAAY,EAAE;YAAhB,CAAZ,CAAhB,CAFjB,CAAT;UAGD;;UACDlC,QAAQ,CAACU,MAAD,CAAR;QACD,CAVD;MAWD,CAjBD,MAiBO;QACL,IAAIA,OAAM,GAAGX,KAAK,CAACW,MAAN,GAAe2B,eAAf,CAA+BtB,IAAI,CAACS,GAApC,CAAb;;QACAxB,QAAQ,CAACU,OAAD,CAAR;MACD;IACF,CA1BI;IA2BL4B,SAAS,EAAE,mBAAAvC,KAAK,EAAI;MAClB,IAAMwC,mBAAmB,GAAGxC,KAAK,CAACyC,QAAN,CAAeC,cAAf,CAA8B,UAAAC,CAAC,EAAI;QAC7D,IAAIA,CAAC,CAACtC,IAAF,KAAW,OAAf,EAAwB;UACtB;QACD;;QACD,OAAOsC,CAAC,CAACpC,IAAF,CAAOc,GAAP,CAAW,QAAX,MAAyB,KAAhC;MACD,CAL2B,CAA5B;MAMA;;MACA,OAAOmB,mBAAmB,KAAK9B,SAAxB,IAAqC8B,mBAAmB,KAAK,IAApE;IACD,CApCI;IAqCLI,UArCK,sBAqCMC,KArCN,EAqCa;MAChB,IAAIA,KAAK,CAAC7B,IAAN,CAAWX,IAAX,KAAoB,OAAxB,EAAiC;QAC/B,IAAMyC,GAAG,GAAGC,MAAM,CAACC,MAAP,CACV;UACEhB,QAAQ,EAAErC,IAAI,CAACqC,QADjB;UAEEiB,OAAO,EAAEtD,IAAI,CAACsD,OAFhB;UAGEC,MAAM,EAAEvD,IAAI,CAACuD,MAHf;UAIEC,aAAa,EAAExD,IAAI,CAACwD,aAJtB;UAKEC,cAAc,EAAEzD,IAAI,CAACyD;QALvB,CADU,EAQVP,KARU,CAAZ;QAUA,oBAAO,gCAAC,qBAAD,EAAoBC,GAApB,CAAP;MACD;IACF,CAnDI;IAoDLO,aAAa,EAAE,uBAAArC,IAAI,EAAI;MACrB,IAAMsC,WAAW,GAAG,EAApB;MACA,IAAMC,gBAAgB,GAAG,EAAzB;MACA,IAAIC,KAAK,GAAG,CAAZ;MAEA,IAAIxC,IAAI,CAACC,MAAL,KAAgB,UAApB,EAAgC;MAEhCD,IAAI,CAAC0B,cAAL,CAAoB,UAAAe,CAAC,EAAI;QACvB,IAAIA,CAAC,CAACxC,MAAF,KAAa,MAAjB,EAAyB;UACvBqC,WAAW,CAACE,KAAD,CAAX,GAAqBC,CAArB;QACD;;QAED,IAAIA,CAAC,CAACpD,IAAF,KAAW,OAAf,EAAwB;UACtB,IAAImD,KAAK,GAAG,CAAR,IAAaF,WAAW,CAACE,KAAK,GAAG,CAAT,CAAxB,IAAuCF,WAAW,CAACE,KAAK,GAAG,CAAT,CAAX,CAAuBE,IAAvB,KAAgC,EAA3E,EAA+E;YAC7EH,gBAAgB,CAACI,IAAjB,CAAsBL,WAAW,CAACE,KAAK,GAAG,CAAT,CAAjC;UACD;QACF;;QAEDA,KAAK;MACN,CAZD;MAcA,IAAI,CAACD,gBAAgB,CAACK,MAAtB,EAA8B;MAE9B,OAAO,UAAAjD,MAAM,EAAI;QACfA,MAAM,CAACkD,oBAAP,CAA4B,YAAM;UAChCN,gBAAgB,CAACO,OAAjB,CAAyB,UAAAnB,CAAC;YAAA,OAAIhC,MAAM,CAACoD,eAAP,CAAuBpB,CAAC,CAAClB,GAAzB,EAA8B,CAA9B,EAAiC,GAAjC,CAAJ;UAAA,CAA1B;QACD,CAFD;MAGD,CAJD;IAKD;EAhFI,CAAP;AAkFD;;AAEM,IAAMuC,aAAa,GAAG;EAC3BC,WAD2B,uBACfC;EAAG;EADY,EACA;IACzB,IAAMtC,IAAI,GAAGsC,EAAE,CAACC,OAAH,CAAWC,WAAX,EAAb;IACA,IAAIxC,IAAI,KAAK,KAAb,EAAoB;IAEpBpC,GAAG,CAAC,eAAD,EAAkBoC,IAAlB,CAAH;IACA,IAAMyC,KAAK,GAAGH,EAAE,CAACG,KAAH,IAAY;MAAEC,KAAK,EAAE,EAAT;MAAaC,MAAM,EAAE,EAArB;MAAyBC,MAAM,EAAE,EAAjC;MAAqCC,cAAc,EAAE;IAArD,CAA1B;IACA,IAAMH,KAAK,GAAGI,QAAQ,CAACL,KAAK,CAACC,KAAN,CAAYK,OAAZ,CAAoB,IAApB,EAA0B,EAA1B,CAAD,EAAgC,EAAhC,CAAR,IAA+C,IAA7D;IACA,IAAMJ,MAAM,GAAGG,QAAQ,CAACL,KAAK,CAACE,MAAN,CAAaI,OAAb,CAAqB,IAArB,EAA2B,EAA3B,CAAD,EAAiC,EAAjC,CAAR,IAAgD,IAA/D;IAEA,IAAMC,GAAG,GAAG;MACV3D,MAAM,EAAE,QADE;MAEVZ,IAAI,EAAE,OAFI;MAGVC,MAAM,EAAE,IAHE;MAIVC,IAAI,EAAE;QACJE,GAAG,EAAEyD,EAAE,CAACW,YAAH,CAAgB,KAAhB,CADD;QAEJP,KAAK,EAALA,KAFI;QAGJC,MAAM,EAANA,MAHI;QAIJC,MAAM,EAAEN,EAAE,CAACG,KAAH,CAASG,MAJb;QAKJC,cAAc,EAAEP,EAAE,CAACG,KAAH,CAASI,cALrB;QAMJrD,SAAS,EAAE8C,EAAE,CAACW,YAAH,CAAgB,WAAhB;MANP;IAJI,CAAZ;IAaArF,GAAG,CAAC,iBAAD,EAAoBoF,GAApB,CAAH;IACA,OAAOA,GAAP;EACD,CAzB0B;EA0B3BE,SA1B2B,qBA0BjB7D;EAAO;EA1BU,EA0BM;IAC/B,IAAIA,MAAM,CAACZ,IAAP,KAAgB,OAApB,EAA6B;IAE7B,IAAQE,IAAR,GAAiBU,MAAjB,CAAQV,IAAR;IACA,IAAME,GAAG,GAAGF,IAAI,CAACc,GAAL,CAAS,KAAT,CAAZ;IACA,IAAMiD,KAAK,GAAG/D,IAAI,CAACc,GAAL,CAAS,OAAT,CAAd;IACA,IAAMkD,MAAM,GAAGhE,IAAI,CAACc,GAAL,CAAS,QAAT,CAAf;IACA,IAAMD,SAAS,GAAGb,IAAI,CAACc,GAAL,CAAS,WAAT,CAAlB;IACA,IAAMmD,MAAM,GAAGjE,IAAI,CAACc,GAAL,CAAS,QAAT,CAAf;IACA,IAAMoD,cAAc,GAAGlE,IAAI,CAACc,GAAL,CAAS,QAAT,CAAvB;IACA,IAAMgD,KAAK,GAAG,EAAd;;IACA,IAAIC,KAAJ,EAAW;MACTD,KAAK,CAACC,KAAN,aAAiBA,KAAjB;IACD;;IAED,IAAIC,MAAJ,EAAY;MACVF,KAAK,CAACE,MAAN,aAAkBA,MAAlB;IACD;;IAEDF,KAAK,CAACG,MAAN,GAAeA,MAAf;IACAH,KAAK,CAACI,cAAN,GAAuBA,cAAvB;;IAEA,IAAIrD,SAAJ,EAAe;MACb,QAAQA,SAAR;QACE,KAAK,MAAL;UACEiD,KAAK,CAACI,cAAN,GAAuB,YAAvB;UACAJ,KAAK,CAACG,MAAN,GAAe,GAAf;UACA;;QACF,KAAK,QAAL;UACEH,KAAK,CAACI,cAAN,GAAuB,QAAvB;UACAJ,KAAK,CAACG,MAAN,GAAe,QAAf;UACA;;QACF,KAAK,OAAL;UACEH,KAAK,CAACI,cAAN,GAAuB,UAAvB;UACAJ,KAAK,CAACG,MAAN,GAAe,eAAf;UACA;;QACF;UACEH,KAAK,CAACI,cAAN,GAAuB,YAAvB;UACA;MAfJ;IAiBD;;IAEDJ,KAAK,CAACU,SAAN,GAAkB,SAAlB;IAEA,IAAMlC,KAAK,GAAG;MACZpC,GAAG,EAAHA,GADY;MAEZ4D,KAAK,EAALA,KAFY;MAGZjD,SAAS,EAATA;IAHY,CAAd;IAMA,oBAAO,uCAASyB,KAAT,CAAP;EACD;AA7E0B,CAAtB"}
@@ -1,21 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
8
- var _slate = require("slate");
9
-
10
- var _debug = _interopRequireDefault(require("debug"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
11
 
14
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
13
 
16
- 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); } }
14
+ var _slate = require("slate");
17
15
 
18
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16
+ var _debug = _interopRequireDefault(require("debug"));
19
17
 
20
18
  var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
21
19
  /**
@@ -25,18 +23,15 @@ var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-hand
25
23
  * @param {Function} onChange - callback to notify changes applied by the handler
26
24
  */
27
25
 
28
- var InsertImageHandler =
29
- /*#__PURE__*/
30
- function () {
26
+ var InsertImageHandler = /*#__PURE__*/function () {
31
27
  function InsertImageHandler(placeholderBlock, getValue, onChange) {
32
- _classCallCheck(this, InsertImageHandler);
33
-
28
+ (0, _classCallCheck2["default"])(this, InsertImageHandler);
34
29
  this.placeholderBlock = placeholderBlock;
35
30
  this.getValue = getValue;
36
31
  this.onChange = onChange;
37
32
  }
38
33
 
39
- _createClass(InsertImageHandler, [{
34
+ (0, _createClass2["default"])(InsertImageHandler, [{
40
35
  key: "getPlaceholderInDocument",
41
36
  value: function getPlaceholderInDocument(value) {
42
37
  var document = value.document;
@@ -132,7 +127,6 @@ function () {
132
127
  this.onChange(change);
133
128
  }
134
129
  }]);
135
-
136
130
  return InsertImageHandler;
137
131
  }();
138
132
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/insert-image-handler.js"],"names":["log","InsertImageHandler","placeholderBlock","getValue","onChange","value","document","directChild","getChild","key","child","getDescendant","Error","c","change","removeNodeByKey","err","src","console","getPlaceholderInDocument","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"mappings":"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","sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, getValue, onChange) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onChange = onChange;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n const c = this.getValue()\n .change()\n .removeNodeByKey(this.placeholderBlock.key);\n this.onChange(c);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n}\n\nexport default InsertImageHandler;\n"],"file":"insert-image-handler.js"}
1
+ {"version":3,"file":"insert-image-handler.js","names":["log","debug","InsertImageHandler","placeholderBlock","getValue","onChange","value","document","directChild","getChild","key","child","getDescendant","Error","c","change","removeNodeByKey","err","src","console","getPlaceholderInDocument","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"sources":["../../../src/plugins/image/insert-image-handler.js"],"sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, getValue, onChange) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onChange = onChange;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n const c = this.getValue()\n .change()\n .removeNodeByKey(this.placeholderBlock.key);\n this.onChange(c);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.buildPlugins = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
7
9
 
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
8
12
  var _FormatBold = _interopRequireDefault(require("@material-ui/icons/FormatBold"));
9
13
 
10
14
  var _FormatListBulleted = _interopRequireDefault(require("@material-ui/icons/FormatListBulleted"));
@@ -15,6 +19,8 @@ var _image = _interopRequireDefault(require("./image"));
15
19
 
16
20
  var _media = _interopRequireDefault(require("./media"));
17
21
 
22
+ var _characters = _interopRequireDefault(require("./characters"));
23
+
18
24
  var _FormatItalic = _interopRequireDefault(require("@material-ui/icons/FormatItalic"));
19
25
 
20
26
  var _math = _interopRequireDefault(require("./math"));
@@ -39,8 +45,6 @@ var _table = _interopRequireDefault(require("./table"));
39
45
 
40
46
  var _respArea = _interopRequireDefault(require("./respArea"));
41
47
 
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
43
-
44
48
  // import Code from '@material-ui/icons/Code';
45
49
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
46
50
 
@@ -63,7 +67,7 @@ function MarkHotkey(options) {
63
67
  renderMark: function renderMark(props) {
64
68
  if (props.mark.type === type) {
65
69
  var K = tag || type;
66
- return _react["default"].createElement(K, null, props.children);
70
+ return /*#__PURE__*/_react["default"].createElement(K, null, props.children);
67
71
  }
68
72
  },
69
73
  onKeyDown: function onKeyDown(event, change) {
@@ -79,7 +83,7 @@ function MarkHotkey(options) {
79
83
  }
80
84
 
81
85
  var ALL_PLUGINS = ['bold', // 'code',
82
- 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'table', 'video', 'audio', 'responseArea'];
86
+ 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'table', 'video', 'audio', 'responseArea'];
83
87
  exports.ALL_PLUGINS = ALL_PLUGINS;
84
88
  var DEFAULT_PLUGINS = ALL_PLUGINS.filter(function (plug) {
85
89
  return plug !== 'responseArea';
@@ -100,33 +104,37 @@ var buildPlugins = function buildPlugins(activePlugins, opts) {
100
104
  return (0, _compact["default"])([addIf('table', (0, _table["default"])(opts.table, (0, _compact["default"])([imagePlugin, mathPlugin, respAreaPlugin]))), addIf('bold', MarkHotkey({
101
105
  key: 'b',
102
106
  type: 'bold',
103
- icon: _react["default"].createElement(_FormatBold["default"], null),
107
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], null),
104
108
  tag: 'strong'
105
109
  })), // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
106
110
  addIf('italic', MarkHotkey({
107
111
  key: 'i',
108
112
  type: 'italic',
109
- icon: _react["default"].createElement(_FormatItalic["default"], null),
113
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatItalic["default"], null),
110
114
  tag: 'em'
111
115
  })), addIf('strikethrough', MarkHotkey({
112
116
  key: '~',
113
117
  type: 'strikethrough',
114
- icon: _react["default"].createElement(_FormatStrikethrough["default"], null),
118
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatStrikethrough["default"], null),
115
119
  tag: 'del'
116
120
  })), addIf('underline', MarkHotkey({
117
121
  key: 'u',
118
122
  type: 'underline',
119
- icon: _react["default"].createElement(_FormatUnderlined["default"], null),
123
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], null),
120
124
  tag: 'u'
121
- })), addIf('image', imagePlugin), addIf('video', (0, _media["default"])('video', opts.media)), addIf('audio', (0, _media["default"])('audio', opts.media)), addIf('math', mathPlugin), addIf('bulleted-list', (0, _list["default"])({
125
+ })), addIf('image', imagePlugin), addIf('video', (0, _media["default"])('video', opts.media)), addIf('audio', (0, _media["default"])('audio', opts.media)), addIf('math', mathPlugin)].concat((0, _toConsumableArray2["default"])(opts.languageCharacters.map(function (config) {
126
+ return addIf('languageCharacters', (0, _characters["default"])(config));
127
+ })), [addIf('bulleted-list', (0, _list["default"])({
122
128
  key: 'l',
123
129
  type: 'ul_list',
124
- icon: _react["default"].createElement(_FormatListBulleted["default"], null)
130
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], null)
125
131
  })), addIf('numbered-list', (0, _list["default"])({
126
132
  key: 'n',
127
133
  type: 'ol_list',
128
- icon: _react["default"].createElement(_FormatListNumbered["default"], null)
129
- })), (0, _toolbar["default"])(opts.toolbar), (0, _slateSoftBreak["default"])(), addIf('responseArea', respAreaPlugin)]);
134
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], null)
135
+ })), (0, _toolbar["default"])(opts.toolbar), (0, _slateSoftBreak["default"])({
136
+ shift: true
137
+ }), addIf('responseArea', respAreaPlugin)]));
130
138
  };
131
139
 
132
140
  exports.buildPlugins = buildPlugins;