@pie-lib/editable-html 7.17.4-next.62 → 7.17.4-next.631

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 (101) hide show
  1. package/CHANGELOG.json +135 -0
  2. package/CHANGELOG.md +421 -0
  3. package/lib/editor.js +399 -171
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +66 -53
  6. package/lib/index.js.map +1 -1
  7. package/lib/parse-html.js.map +1 -1
  8. package/lib/plugins/characters/custom-popper.js +73 -0
  9. package/lib/plugins/characters/custom-popper.js.map +1 -0
  10. package/lib/plugins/characters/index.js +285 -0
  11. package/lib/plugins/characters/index.js.map +1 -0
  12. package/lib/plugins/characters/utils.js +381 -0
  13. package/lib/plugins/characters/utils.js.map +1 -0
  14. package/lib/plugins/image/alt-dialog.js +119 -0
  15. package/lib/plugins/image/alt-dialog.js.map +1 -0
  16. package/lib/plugins/image/component.js +253 -77
  17. package/lib/plugins/image/component.js.map +1 -1
  18. package/lib/plugins/image/image-toolbar.js +95 -61
  19. package/lib/plugins/image/image-toolbar.js.map +1 -1
  20. package/lib/plugins/image/index.js +62 -20
  21. package/lib/plugins/image/index.js.map +1 -1
  22. package/lib/plugins/image/insert-image-handler.js +12 -15
  23. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  24. package/lib/plugins/index.js +20 -12
  25. package/lib/plugins/index.js.map +1 -1
  26. package/lib/plugins/list/index.js +82 -14
  27. package/lib/plugins/list/index.js.map +1 -1
  28. package/lib/plugins/math/index.js +50 -55
  29. package/lib/plugins/math/index.js.map +1 -1
  30. package/lib/plugins/media/index.js +73 -27
  31. package/lib/plugins/media/index.js.map +1 -1
  32. package/lib/plugins/media/media-dialog.js +274 -74
  33. package/lib/plugins/media/media-dialog.js.map +1 -1
  34. package/lib/plugins/media/media-toolbar.js +26 -30
  35. package/lib/plugins/media/media-toolbar.js.map +1 -1
  36. package/lib/plugins/media/media-wrapper.js +28 -35
  37. package/lib/plugins/media/media-wrapper.js.map +1 -1
  38. package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
  39. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  40. package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
  41. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  42. package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
  43. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  44. package/lib/plugins/respArea/icons/index.js +11 -11
  45. package/lib/plugins/respArea/icons/index.js.map +1 -1
  46. package/lib/plugins/respArea/index.js +58 -42
  47. package/lib/plugins/respArea/index.js.map +1 -1
  48. package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
  49. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  50. package/lib/plugins/respArea/utils.js +5 -5
  51. package/lib/plugins/respArea/utils.js.map +1 -1
  52. package/lib/plugins/table/icons/index.js +12 -12
  53. package/lib/plugins/table/icons/index.js.map +1 -1
  54. package/lib/plugins/table/index.js +83 -27
  55. package/lib/plugins/table/index.js.map +1 -1
  56. package/lib/plugins/table/table-toolbar.js +41 -50
  57. package/lib/plugins/table/table-toolbar.js.map +1 -1
  58. package/lib/plugins/toolbar/default-toolbar.js +19 -13
  59. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  60. package/lib/plugins/toolbar/done-button.js +5 -5
  61. package/lib/plugins/toolbar/done-button.js.map +1 -1
  62. package/lib/plugins/toolbar/editor-and-toolbar.js +62 -45
  63. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/index.js +6 -5
  65. package/lib/plugins/toolbar/index.js.map +1 -1
  66. package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
  67. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  68. package/lib/plugins/toolbar/toolbar.js +64 -62
  69. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  70. package/lib/plugins/utils.js +1 -1
  71. package/lib/plugins/utils.js.map +1 -1
  72. package/lib/serialization.js +32 -9
  73. package/lib/serialization.js.map +1 -1
  74. package/lib/theme.js.map +1 -1
  75. package/package.json +7 -6
  76. package/src/editor.jsx +229 -26
  77. package/src/index.jsx +22 -5
  78. package/src/plugins/characters/custom-popper.js +48 -0
  79. package/src/plugins/characters/index.jsx +268 -0
  80. package/src/plugins/characters/utils.js +447 -0
  81. package/src/plugins/image/alt-dialog.jsx +69 -0
  82. package/src/plugins/image/component.jsx +204 -21
  83. package/src/plugins/image/image-toolbar.jsx +68 -22
  84. package/src/plugins/image/index.jsx +47 -9
  85. package/src/plugins/image/insert-image-handler.js +3 -1
  86. package/src/plugins/index.jsx +4 -1
  87. package/src/plugins/list/index.jsx +67 -5
  88. package/src/plugins/math/index.jsx +31 -37
  89. package/src/plugins/media/index.jsx +49 -6
  90. package/src/plugins/media/media-dialog.js +285 -89
  91. package/src/plugins/media/media-toolbar.jsx +7 -4
  92. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
  93. package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
  94. package/src/plugins/respArea/index.jsx +50 -31
  95. package/src/plugins/table/index.jsx +63 -14
  96. package/src/plugins/toolbar/default-toolbar.jsx +20 -2
  97. package/src/plugins/toolbar/editor-and-toolbar.jsx +50 -11
  98. package/src/plugins/toolbar/index.jsx +1 -0
  99. package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
  100. package/src/plugins/toolbar/toolbar.jsx +18 -3
  101. package/src/serialization.jsx +19 -3
@@ -1,9 +1,13 @@
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
- exports["default"] = exports.DefaultToolbar = exports.ToolbarButton = void 0;
8
+ exports["default"] = exports.ToolbarButton = exports.DefaultToolbar = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
11
 
8
12
  var _doneButton = require("./done-button");
9
13
 
@@ -21,10 +25,6 @@ var _toolbarButtons = require("./toolbar-buttons");
21
25
 
22
26
  var _debug = _interopRequireDefault(require("debug"));
23
27
 
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
-
26
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
-
28
28
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
29
29
 
30
30
  var ToolbarButton = function ToolbarButton(props) {
@@ -36,20 +36,23 @@ var ToolbarButton = function ToolbarButton(props) {
36
36
  if (props.isMark) {
37
37
  var isActive = (0, _utils.hasMark)(props.value, props.type);
38
38
  log('[ToolbarButton] mark:isActive: ', isActive);
39
- return _react["default"].createElement(_toolbarButtons.MarkButton, {
39
+ return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
40
40
  active: isActive,
41
41
  label: props.type,
42
42
  onToggle: onToggle,
43
43
  mark: props.type
44
44
  }, props.icon);
45
45
  } else {
46
+ var disabled = props.disabled;
47
+
46
48
  var _isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
47
49
 
48
50
  log('[ToolbarButton] block:isActive: ', _isActive);
49
- return _react["default"].createElement(_toolbarButtons.Button, {
51
+ return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
50
52
  active: _isActive,
53
+ disabled: disabled,
51
54
  onClick: function onClick() {
52
- return props.onClick(props.value, props.onChange);
55
+ return props.onClick(props.value, props.onChange, props.getFocusedValue);
53
56
  },
54
57
  extraStyles: props.buttonStyles
55
58
  }, props.icon);
@@ -70,6 +73,7 @@ var DefaultToolbar = function DefaultToolbar(_ref) {
70
73
  pluginProps = _ref.pluginProps,
71
74
  value = _ref.value,
72
75
  onChange = _ref.onChange,
76
+ getFocusedValue = _ref.getFocusedValue,
73
77
  onDone = _ref.onDone,
74
78
  classes = _ref.classes,
75
79
  showDone = _ref.showDone,
@@ -77,17 +81,18 @@ var DefaultToolbar = function DefaultToolbar(_ref) {
77
81
  var filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
78
82
  return p.toolbar;
79
83
  });
80
- return _react["default"].createElement("div", {
84
+ return /*#__PURE__*/_react["default"].createElement("div", {
81
85
  className: classes.defaultToolbar
82
- }, _react["default"].createElement("div", {
86
+ }, /*#__PURE__*/_react["default"].createElement("div", {
83
87
  className: classes.buttonsContainer
84
88
  }, filtered.map(function (p, index) {
85
- return _react["default"].createElement(ToolbarButton, _extends({}, p, {
89
+ return /*#__PURE__*/_react["default"].createElement(ToolbarButton, (0, _extends2["default"])({}, p, {
86
90
  key: index,
87
91
  value: value,
88
- onChange: onChange
92
+ onChange: onChange,
93
+ getFocusedValue: getFocusedValue
89
94
  }));
90
- })), showDone && !deletable && _react["default"].createElement(_doneButton.DoneButton, {
95
+ })), showDone && !deletable && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
91
96
  onClick: onDone
92
97
  }));
93
98
  };
@@ -99,6 +104,7 @@ DefaultToolbar.propTypes = {
99
104
  pluginProps: _propTypes["default"].object,
100
105
  value: _slatePropTypes["default"].value.isRequired,
101
106
  onChange: _propTypes["default"].func.isRequired,
107
+ getFocusedValue: _propTypes["default"].func.isRequired,
102
108
  onDone: _propTypes["default"].func.isRequired,
103
109
  showDone: _propTypes["default"].bool,
104
110
  addArea: _propTypes["default"].bool,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"names":["log","ToolbarButton","props","onToggle","c","value","change","onChange","isMark","isActive","type","icon","onClick","buttonStyles","isActiveToolbarPlugin","plugin","isDisabled","name","disabled","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","filtered","filter","map","p","defaultToolbar","buttonsContainer","index","propTypes","PropTypes","object","isRequired","array","SlatePropTypes","func","bool","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems"],"mappings":"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","sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nexport const ToolbarButton = props => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n log('[ToolbarButton] mark:isActive: ', isActive);\n return (\n <MarkButton active={isActive} label={props.type} onToggle={onToggle} mark={props.type}>\n {props.icon}\n </MarkButton>\n );\n } else {\n const isActive = props.isActive\n ? props.isActive(props.value, props.type)\n : hasBlock(props.value, props.type);\n log('[ToolbarButton] block:isActive: ', isActive);\n return (\n <Button\n active={isActive}\n onClick={() => props.onClick(props.value, props.onChange)}\n extraStyles={props.buttonStyles}\n >\n {props.icon}\n </Button>\n );\n }\n};\n\nconst isActiveToolbarPlugin = props => plugin => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n onDone,\n classes,\n showDone,\n deletable\n}) => {\n const filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(p => p.toolbar);\n\n return (\n <div className={classes.defaultToolbar}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return <ToolbarButton {...p} key={index} value={value} onChange={onChange} />;\n })}\n </div>\n {showDone && !deletable && <DoneButton onClick={onDone} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {}\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between'\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%'\n }\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n"],"file":"default-toolbar.js"}
1
+ {"version":3,"file":"default-toolbar.js","names":["log","debug","ToolbarButton","props","onToggle","c","value","change","onChange","isMark","isActive","hasMark","type","icon","disabled","hasBlock","onClick","getFocusedValue","buttonStyles","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","filtered","filter","map","p","defaultToolbar","buttonsContainer","index","propTypes","PropTypes","object","isRequired","array","SlatePropTypes","func","bool","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems","withStyles"],"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nexport const ToolbarButton = props => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n return (\n <MarkButton active={isActive} label={props.type} onToggle={onToggle} mark={props.type}>\n {props.icon}\n </MarkButton>\n );\n } else {\n const { disabled } = props;\n const isActive = props.isActive\n ? props.isActive(props.value, props.type)\n : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n\n return (\n <Button\n active={isActive}\n disabled={disabled}\n onClick={() => props.onClick(props.value, props.onChange, props.getFocusedValue)}\n extraStyles={props.buttonStyles}\n >\n {props.icon}\n </Button>\n );\n }\n};\n\nconst isActiveToolbarPlugin = props => plugin => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n classes,\n showDone,\n deletable\n}) => {\n const filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(p => p.toolbar);\n\n return (\n <div className={classes.defaultToolbar}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton\n {...p}\n key={index}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton onClick={onDone} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {}\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between'\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%'\n }\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n"],"mappings":"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"}
@@ -1,9 +1,11 @@
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
- exports.DoneButton = exports.RawDoneButton = void 0;
8
+ exports.RawDoneButton = exports.DoneButton = void 0;
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
@@ -15,12 +17,10 @@ var _styles = require("@material-ui/core/styles");
15
17
 
16
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
19
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
20
  var RawDoneButton = function RawDoneButton(_ref) {
21
21
  var classes = _ref.classes,
22
22
  onClick = _ref.onClick;
23
- return _react["default"].createElement(_IconButton["default"], {
23
+ return /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
24
24
  "aria-label": "Done",
25
25
  className: classes.iconRoot,
26
26
  onClick: onClick,
@@ -28,7 +28,7 @@ var RawDoneButton = function RawDoneButton(_ref) {
28
28
  label: classes.label,
29
29
  root: classes.iconRoot
30
30
  }
31
- }, _react["default"].createElement(_Check["default"], null));
31
+ }, /*#__PURE__*/_react["default"].createElement(_Check["default"], null));
32
32
  };
33
33
 
34
34
  exports.RawDoneButton = RawDoneButton;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/done-button.jsx"],"names":["RawDoneButton","classes","onClick","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","padding","DoneButton"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,SAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAED,OAAO,CAACE,QAFrB;AAGE,IAAA,OAAO,EAAED,OAHX;AAIE,IAAA,OAAO,EAAE;AACPE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KADR;AAEPC,MAAAA,IAAI,EAAEJ,OAAO,CAACE;AAFP;AAJX,KASE,gCAAC,iBAAD,OATF,CAD2B;AAAA,CAAtB;;;AAcPH,aAAa,CAACM,SAAd,GAA0B;AACxBL,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADF;AAExBP,EAAAA,OAAO,EAAEK,sBAAUG;AAFK,CAA1B;AAKA,IAAMC,MAAM,GAAG;AACbR,EAAAA,QAAQ,EAAE;AACRS,IAAAA,aAAa,EAAE,KADP;AAERC,IAAAA,KAAK,EAAE,MAFC;AAGRC,IAAAA,MAAM,EAAE,MAHA;AAIRC,IAAAA,KAAK,EAAE,6CAJC;AAKRC,IAAAA,OAAO,EAAE;AALD;AADG,CAAf;AASO,IAAMC,UAAU,GAAG,wBAAWN,MAAX,EAAmBX,aAAnB,CAAnB","sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px'\n }\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"file":"done-button.js"}
1
+ {"version":3,"file":"done-button.js","names":["RawDoneButton","classes","onClick","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","padding","DoneButton","withStyles"],"sources":["../../../src/plugins/toolbar/done-button.jsx"],"sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px'\n }\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;EAAA,IAAGC,OAAH,QAAGA,OAAH;EAAA,IAAYC,OAAZ,QAAYA,OAAZ;EAAA,oBAC3B,gCAAC,sBAAD;IACE,cAAW,MADb;IAEE,SAAS,EAAED,OAAO,CAACE,QAFrB;IAGE,OAAO,EAAED,OAHX;IAIE,OAAO,EAAE;MACPE,KAAK,EAAEH,OAAO,CAACG,KADR;MAEPC,IAAI,EAAEJ,OAAO,CAACE;IAFP;EAJX,gBASE,gCAAC,iBAAD,OATF,CAD2B;AAAA,CAAtB;;;AAcPH,aAAa,CAACM,SAAd,GAA0B;EACxBL,OAAO,EAAEM,qBAAA,CAAUC,MAAV,CAAiBC,UADF;EAExBP,OAAO,EAAEK,qBAAA,CAAUG;AAFK,CAA1B;AAKA,IAAMC,MAAM,GAAG;EACbR,QAAQ,EAAE;IACRS,aAAa,EAAE,KADP;IAERC,KAAK,EAAE,MAFC;IAGRC,MAAM,EAAE,MAHA;IAIRC,KAAK,EAAE,6CAJC;IAKRC,OAAO,EAAE;EALD;AADG,CAAf;AASO,IAAMC,UAAU,GAAG,IAAAC,kBAAA,EAAWP,MAAX,EAAmBX,aAAnB,CAAnB"}
@@ -1,10 +1,24 @@
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.EditorAndToolbar = void 0;
7
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
8
22
  var _react = _interopRequireDefault(require("react"));
9
23
 
10
24
  var _toolbar = _interopRequireDefault(require("./toolbar"));
@@ -25,48 +39,29 @@ var _slateDevEnvironment = require("slate-dev-environment");
25
39
 
26
40
  var _renderUi = require("@pie-lib/render-ui");
27
41
 
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
-
30
- 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); }
31
-
32
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
-
34
- 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); } }
35
-
36
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
-
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
-
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
42
+ 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); }; }
43
43
 
44
- 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); }
45
-
46
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
47
-
48
- 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; }
44
+ 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; } }
49
45
 
50
46
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');
51
47
 
52
- var EditorAndToolbar =
53
- /*#__PURE__*/
54
- function (_React$Component) {
55
- _inherits(EditorAndToolbar, _React$Component);
48
+ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
49
+ (0, _inherits2["default"])(EditorAndToolbar, _React$Component);
56
50
 
57
- function EditorAndToolbar() {
58
- _classCallCheck(this, EditorAndToolbar);
51
+ var _super = _createSuper(EditorAndToolbar);
59
52
 
60
- return _possibleConstructorReturn(this, _getPrototypeOf(EditorAndToolbar).apply(this, arguments));
53
+ function EditorAndToolbar() {
54
+ (0, _classCallCheck2["default"])(this, EditorAndToolbar);
55
+ return _super.apply(this, arguments);
61
56
  }
62
57
 
63
- _createClass(EditorAndToolbar, [{
58
+ (0, _createClass2["default"])(EditorAndToolbar, [{
64
59
  key: "componentDidMount",
65
-
60
+ value:
66
61
  /** This is an interim fix until this PR is merged in slate:
67
62
  * https://github.com/ianstormtaylor/slate/pull/2236
68
63
  */
69
- value: function componentDidMount() {
64
+ function componentDidMount() {
70
65
  if (_slateDevEnvironment.IS_FIREFOX) {
71
66
  this.editorRef.tmp.isUpdatingSelection = true;
72
67
  }
@@ -74,7 +69,9 @@ function (_React$Component) {
74
69
  }, {
75
70
  key: "render",
76
71
  value: function render() {
77
- var _this = this;
72
+ var _classNames,
73
+ _this = this,
74
+ _classNames2;
78
75
 
79
76
  var _this$props = this.props,
80
77
  classes = _this$props.classes,
@@ -82,21 +79,23 @@ function (_React$Component) {
82
79
  value = _this$props.value,
83
80
  plugins = _this$props.plugins,
84
81
  onChange = _this$props.onChange,
82
+ getFocusedValue = _this$props.getFocusedValue,
85
83
  onDone = _this$props.onDone,
86
84
  focusedNode = _this$props.focusedNode,
87
85
  autoWidth = _this$props.autoWidth,
88
86
  readOnly = _this$props.readOnly,
87
+ disableScrollbar = _this$props.disableScrollbar,
89
88
  disableUnderline = _this$props.disableUnderline,
90
89
  pluginProps = _this$props.pluginProps,
91
90
  toolbarOpts = _this$props.toolbarOpts,
92
91
  onDataChange = _this$props.onDataChange,
93
92
  toolbarRef = _this$props.toolbarRef;
94
93
  var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined;
95
- var holderNames = (0, _classnames["default"])(classes.editorHolder, inFocus && classes.editorInFocus, readOnly && classes.readOnly, disableUnderline && classes.disabledUnderline);
94
+ var holderNames = (0, _classnames["default"])(classes.editorHolder, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.editorInFocus, inFocus), (0, _defineProperty2["default"])(_classNames, classes.readOnly, readOnly), (0, _defineProperty2["default"])(_classNames, classes.disabledUnderline, disableUnderline), (0, _defineProperty2["default"])(_classNames, classes.disabledScrollbar, disableScrollbar), _classNames));
96
95
  var clonedChildren = children;
97
96
 
98
97
  if (typeof children !== 'string') {
99
- clonedChildren = _react["default"].cloneElement(children, {
98
+ clonedChildren = /*#__PURE__*/_react["default"].cloneElement(children, {
100
99
  ref: function ref(el) {
101
100
  return _this.editorRef = el;
102
101
  }
@@ -104,19 +103,20 @@ function (_React$Component) {
104
103
  }
105
104
 
106
105
  log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);
107
- return _react["default"].createElement("div", {
108
- className: classes.root
109
- }, _react["default"].createElement("div", {
106
+ return /*#__PURE__*/_react["default"].createElement("div", {
107
+ className: (0, _classnames["default"])((_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, classes.noBorder, toolbarOpts && toolbarOpts.noBorder), (0, _defineProperty2["default"])(_classNames2, classes.error, toolbarOpts && toolbarOpts.error), _classNames2), classes.root)
108
+ }, /*#__PURE__*/_react["default"].createElement("div", {
110
109
  className: holderNames
111
- }, _react["default"].createElement("div", {
112
- className: classes.children
113
- }, clonedChildren)), _react["default"].createElement(_toolbar["default"], {
110
+ }, /*#__PURE__*/_react["default"].createElement("div", {
111
+ className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.noPadding, toolbarOpts && toolbarOpts.noBorder), classes.children)
112
+ }, clonedChildren)), /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
114
113
  autoWidth: autoWidth,
115
114
  plugins: plugins,
116
115
  focusedNode: focusedNode,
117
116
  value: value,
118
117
  isFocused: inFocus,
119
118
  onChange: onChange,
119
+ getFocusedValue: getFocusedValue,
120
120
  onDone: onDone,
121
121
  onDataChange: onDataChange,
122
122
  toolbarRef: toolbarRef,
@@ -125,32 +125,32 @@ function (_React$Component) {
125
125
  }));
126
126
  }
127
127
  }]);
128
-
129
128
  return EditorAndToolbar;
130
129
  }(_react["default"].Component);
131
130
 
132
131
  exports.EditorAndToolbar = EditorAndToolbar;
133
-
134
- _defineProperty(EditorAndToolbar, "propTypes", {
132
+ (0, _defineProperty2["default"])(EditorAndToolbar, "propTypes", {
135
133
  children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
136
134
  value: _slatePropTypes["default"].value.isRequired,
137
135
  plugins: _propTypes["default"].array.isRequired,
138
136
  onChange: _propTypes["default"].func.isRequired,
137
+ getFocusedValue: _propTypes["default"].func.isRequired,
139
138
  onDone: _propTypes["default"].func.isRequired,
140
139
  onDataChange: _propTypes["default"].func,
141
140
  toolbarRef: _propTypes["default"].func,
142
141
  focusedNode: _slatePropTypes["default"].node,
143
142
  readOnly: _propTypes["default"].bool,
143
+ disableScrollbar: _propTypes["default"].bool,
144
144
  disableUnderline: _propTypes["default"].bool,
145
145
  autoWidth: _propTypes["default"].bool,
146
146
  classes: _propTypes["default"].object.isRequired,
147
147
  pluginProps: _propTypes["default"].object,
148
148
  toolbarOpts: _propTypes["default"].shape({
149
149
  position: _propTypes["default"].oneOf(['bottom', 'top']),
150
- alwaysVisible: _propTypes["default"].bool
150
+ alwaysVisible: _propTypes["default"].bool,
151
+ error: _propTypes["default"].string
151
152
  })
152
153
  });
153
-
154
154
  var style = {
155
155
  root: {
156
156
  position: 'relative',
@@ -162,7 +162,8 @@ var style = {
162
162
  wordBreak: 'break-word',
163
163
  overflow: 'visible',
164
164
  maxHeight: '500px',
165
- padding: '5px 0'
165
+ // needed in order to be able to put the focus before a void element when it is the first one in the editor
166
+ padding: '5px'
166
167
  }
167
168
  },
168
169
  children: {
@@ -219,6 +220,13 @@ var style = {
219
220
  display: 'none'
220
221
  }
221
222
  },
223
+ disabledScrollbar: {
224
+ '&::-webkit-scrollbar': {
225
+ display: 'none'
226
+ },
227
+ scrollbarWidth: 'none',
228
+ '-ms-overflow-style': 'none'
229
+ },
222
230
  readOnly: {
223
231
  '&::before': {
224
232
  background: 'transparent',
@@ -257,6 +265,15 @@ var style = {
257
265
  backgroundColor: _theme.primary
258
266
  }
259
267
  }
268
+ },
269
+ error: {
270
+ border: '2px solid red'
271
+ },
272
+ noBorder: {
273
+ border: 'none'
274
+ },
275
+ noPadding: {
276
+ padding: 0
260
277
  }
261
278
  };
262
279
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/editor-and-toolbar.jsx"],"names":["log","EditorAndToolbar","IS_FIREFOX","editorRef","tmp","isUpdatingSelection","props","classes","children","value","plugins","onChange","onDone","focusedNode","autoWidth","readOnly","disableUnderline","pluginProps","toolbarOpts","onDataChange","toolbarRef","inFocus","isFocused","undefined","holderNames","editorHolder","editorInFocus","disabledUnderline","clonedChildren","React","cloneElement","ref","el","root","Component","PropTypes","oneOfType","arrayOf","node","isRequired","SlatePropTypes","array","func","bool","object","shape","position","oneOf","alwaysVisible","style","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","overflowY","color","text","backgroundColor","background","left","right","bottom","height","content","transition","pointerEvents","transform","primary","display","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Toolbar from './toolbar';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { primary } from '../../theme';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { IS_FIREFOX } from 'slate-dev-environment';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');\n\nexport class EditorAndToolbar extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onDataChange: PropTypes.func,\n toolbarRef: PropTypes.func,\n focusedNode: SlatePropTypes.node,\n readOnly: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidth: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alwaysVisible: PropTypes.bool\n })\n };\n\n /** This is an interim fix until this PR is merged in slate:\n * https://github.com/ianstormtaylor/slate/pull/2236\n */\n componentDidMount() {\n if (IS_FIREFOX) {\n this.editorRef.tmp.isUpdatingSelection = true;\n }\n }\n\n render() {\n const {\n classes,\n children,\n value,\n plugins,\n onChange,\n onDone,\n focusedNode,\n autoWidth,\n readOnly,\n disableUnderline,\n pluginProps,\n toolbarOpts,\n onDataChange,\n toolbarRef\n } = this.props;\n\n const inFocus = value.isFocused || (focusedNode !== null && focusedNode !== undefined);\n const holderNames = classNames(\n classes.editorHolder,\n inFocus && classes.editorInFocus,\n readOnly && classes.readOnly,\n disableUnderline && classes.disabledUnderline\n );\n let clonedChildren = children;\n\n if (typeof children !== 'string') {\n clonedChildren = React.cloneElement(children, {\n ref: el => (this.editorRef = el)\n });\n }\n\n log(\n '[render] inFocus: ',\n inFocus,\n 'value.isFocused:',\n value.isFocused,\n 'focused node: ',\n focusedNode\n );\n\n return (\n <div className={classes.root}>\n <div className={holderNames}>\n <div className={classes.children}>{clonedChildren}</div>\n </div>\n <Toolbar\n autoWidth={autoWidth}\n plugins={plugins}\n focusedNode={focusedNode}\n value={value}\n isFocused={inFocus}\n onChange={onChange}\n onDone={onDone}\n onDataChange={onDataChange}\n toolbarRef={toolbarRef}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\n\nconst style = {\n root: {\n position: 'relative',\n padding: '0px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n padding: '5px 0'\n }\n },\n children: {\n padding: '10px 16px'\n },\n editorHolder: {\n position: 'relative',\n padding: '0px',\n overflowY: 'scroll',\n color: color.text(),\n backgroundColor: color.background(),\n '&::before': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.42)'\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition:\n 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0.42)'\n },\n '&:focus': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px'\n }\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: 'black',\n height: '2px'\n }\n }\n },\n disabledUnderline: {\n '&::before': {\n display: 'none'\n },\n '&::after': {\n display: 'none'\n }\n },\n\n readOnly: {\n '&::before': {\n background: 'transparent',\n backgroundSize: '5px 1px',\n backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',\n backgroundRepeat: 'repeat-x',\n backgroundPosition: 'left top'\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0)'\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(0)',\n backgroundColor: 'black',\n height: '2px'\n }\n }\n },\n editorInFocus: {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px'\n },\n '&:hover': {\n '&::after': {\n backgroundColor: primary\n }\n }\n }\n};\n\nexport default withStyles(style)(EditorAndToolbar);\n"],"file":"editor-and-toolbar.js"}
1
+ {"version":3,"file":"editor-and-toolbar.js","names":["log","debug","EditorAndToolbar","IS_FIREFOX","editorRef","tmp","isUpdatingSelection","props","classes","children","value","plugins","onChange","getFocusedValue","onDone","focusedNode","autoWidth","readOnly","disableScrollbar","disableUnderline","pluginProps","toolbarOpts","onDataChange","toolbarRef","inFocus","isFocused","undefined","holderNames","classNames","editorHolder","editorInFocus","disabledUnderline","disabledScrollbar","clonedChildren","React","cloneElement","ref","el","noBorder","error","root","noPadding","Component","PropTypes","oneOfType","arrayOf","node","isRequired","SlatePropTypes","array","func","bool","object","shape","position","oneOf","alwaysVisible","string","style","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","overflowY","color","text","backgroundColor","background","left","right","bottom","height","content","transition","pointerEvents","transform","primary","display","scrollbarWidth","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition","withStyles"],"sources":["../../../src/plugins/toolbar/editor-and-toolbar.jsx"],"sourcesContent":["import React from 'react';\nimport Toolbar from './toolbar';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { primary } from '../../theme';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { IS_FIREFOX } from 'slate-dev-environment';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');\n\nexport class EditorAndToolbar extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onDataChange: PropTypes.func,\n toolbarRef: PropTypes.func,\n focusedNode: SlatePropTypes.node,\n readOnly: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidth: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alwaysVisible: PropTypes.bool,\n error: PropTypes.string\n })\n };\n\n /** This is an interim fix until this PR is merged in slate:\n * https://github.com/ianstormtaylor/slate/pull/2236\n */\n componentDidMount() {\n if (IS_FIREFOX) {\n this.editorRef.tmp.isUpdatingSelection = true;\n }\n }\n\n render() {\n const {\n classes,\n children,\n value,\n plugins,\n onChange,\n getFocusedValue,\n onDone,\n focusedNode,\n autoWidth,\n readOnly,\n disableScrollbar,\n disableUnderline,\n pluginProps,\n toolbarOpts,\n onDataChange,\n toolbarRef\n } = this.props;\n\n const inFocus = value.isFocused || (focusedNode !== null && focusedNode !== undefined);\n const holderNames = classNames(classes.editorHolder, {\n [classes.editorInFocus]: inFocus,\n [classes.readOnly]: readOnly,\n [classes.disabledUnderline]: disableUnderline,\n [classes.disabledScrollbar]: disableScrollbar\n });\n let clonedChildren = children;\n\n if (typeof children !== 'string') {\n clonedChildren = React.cloneElement(children, {\n ref: el => (this.editorRef = el)\n });\n }\n\n log(\n '[render] inFocus: ',\n inFocus,\n 'value.isFocused:',\n value.isFocused,\n 'focused node: ',\n focusedNode\n );\n\n return (\n <div\n className={classNames(\n {\n [classes.noBorder]: toolbarOpts && toolbarOpts.noBorder,\n [classes.error]: toolbarOpts && toolbarOpts.error\n },\n classes.root\n )}\n >\n <div className={holderNames}>\n <div\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts && toolbarOpts.noBorder\n },\n classes.children\n )}\n >\n {clonedChildren}\n </div>\n </div>\n <Toolbar\n autoWidth={autoWidth}\n plugins={plugins}\n focusedNode={focusedNode}\n value={value}\n isFocused={inFocus}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n onDone={onDone}\n onDataChange={onDataChange}\n toolbarRef={toolbarRef}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\n\nconst style = {\n root: {\n position: 'relative',\n padding: '0px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n // needed in order to be able to put the focus before a void element when it is the first one in the editor\n padding: '5px'\n }\n },\n children: {\n padding: '10px 16px'\n },\n editorHolder: {\n position: 'relative',\n padding: '0px',\n overflowY: 'scroll',\n color: color.text(),\n backgroundColor: color.background(),\n '&::before': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.42)'\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition:\n 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0.42)'\n },\n '&:focus': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px'\n }\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: 'black',\n height: '2px'\n }\n }\n },\n disabledUnderline: {\n '&::before': {\n display: 'none'\n },\n '&::after': {\n display: 'none'\n }\n },\n disabledScrollbar: {\n '&::-webkit-scrollbar': {\n display: 'none'\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none'\n },\n readOnly: {\n '&::before': {\n background: 'transparent',\n backgroundSize: '5px 1px',\n backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',\n backgroundRepeat: 'repeat-x',\n backgroundPosition: 'left top'\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0)'\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(0)',\n backgroundColor: 'black',\n height: '2px'\n }\n }\n },\n editorInFocus: {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px'\n },\n '&:hover': {\n '&::after': {\n backgroundColor: primary\n }\n }\n },\n error: {\n border: '2px solid red'\n },\n noBorder: {\n border: 'none'\n },\n noPadding: {\n padding: 0\n }\n};\n\nexport default withStyles(style)(EditorAndToolbar);\n"],"mappings":"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"}
@@ -1,18 +1,18 @@
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"] = ToolbarPlugin;
7
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
 
10
14
  var _editorAndToolbar = _interopRequireDefault(require("./editor-and-toolbar"));
11
15
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
-
14
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
-
16
16
  /**
17
17
  * Adds a toolbar which is shown when the editor is focused.
18
18
  * @param {*} opts
@@ -21,8 +21,9 @@ function ToolbarPlugin(opts) {
21
21
  return {
22
22
  /* eslint-disable-next-line */
23
23
  renderEditor: function renderEditor(props) {
24
- return _react["default"].createElement(_editorAndToolbar["default"], _extends({}, props, {
24
+ return /*#__PURE__*/_react["default"].createElement(_editorAndToolbar["default"], (0, _extends2["default"])({}, props, {
25
25
  mainEditorRef: opts.mainEditorRef,
26
+ disableScrollbar: opts.disableScrollbar,
26
27
  disableUnderline: opts.disableUnderline,
27
28
  onDone: opts.onDone
28
29
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/index.jsx"],"names":["ToolbarPlugin","opts","renderEditor","props","mainEditorRef","disableUnderline","onDone"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;AAEA;;;;AAIe,SAASA,aAAT,CAAuBC,IAAvB,EAA6B;AAC1C,SAAO;AACL;AACAC,IAAAA,YAAY,EAAE,sBAAAC,KAAK;AAAA,aACjB,gCAAC,4BAAD,eACMA,KADN;AAEE,QAAA,aAAa,EAAEF,IAAI,CAACG,aAFtB;AAGE,QAAA,gBAAgB,EAAEH,IAAI,CAACI,gBAHzB;AAIE,QAAA,MAAM,EAAEJ,IAAI,CAACK;AAJf,SADiB;AAAA;AAFd,GAAP;AAWD","sourcesContent":["import React from 'react';\n\nimport EditorAndToolbar from './editor-and-toolbar';\n\n/**\n * Adds a toolbar which is shown when the editor is focused.\n * @param {*} opts\n */\nexport default function ToolbarPlugin(opts) {\n return {\n /* eslint-disable-next-line */\n renderEditor: props => (\n <EditorAndToolbar\n {...props}\n mainEditorRef={opts.mainEditorRef}\n disableUnderline={opts.disableUnderline}\n onDone={opts.onDone}\n />\n )\n };\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["ToolbarPlugin","opts","renderEditor","props","mainEditorRef","disableScrollbar","disableUnderline","onDone"],"sources":["../../../src/plugins/toolbar/index.jsx"],"sourcesContent":["import React from 'react';\n\nimport EditorAndToolbar from './editor-and-toolbar';\n\n/**\n * Adds a toolbar which is shown when the editor is focused.\n * @param {*} opts\n */\nexport default function ToolbarPlugin(opts) {\n return {\n /* eslint-disable-next-line */\n renderEditor: props => (\n <EditorAndToolbar\n {...props}\n mainEditorRef={opts.mainEditorRef}\n disableScrollbar={opts.disableScrollbar}\n disableUnderline={opts.disableUnderline}\n onDone={opts.onDone}\n />\n )\n };\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACe,SAASA,aAAT,CAAuBC,IAAvB,EAA6B;EAC1C,OAAO;IACL;IACAC,YAAY,EAAE,sBAAAC,KAAK;MAAA,oBACjB,gCAAC,4BAAD,gCACMA,KADN;QAEE,aAAa,EAAEF,IAAI,CAACG,aAFtB;QAGE,gBAAgB,EAAEH,IAAI,CAACI,gBAHzB;QAIE,gBAAgB,EAAEJ,IAAI,CAACK,gBAJzB;QAKE,MAAM,EAAEL,IAAI,CAACM;MALf,GADiB;IAAA;EAFd,CAAP;AAYD"}