@pie-lib/editable-html 11.4.0 → 11.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +24 -52
  2. package/package.json +8 -7
  3. package/src/editor.jsx +2 -2
  4. package/src/plugins/media/media-dialog.js +1 -1
  5. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +1 -1
  6. package/src/plugins/toolbar/editor-and-toolbar.jsx +1 -1
  7. package/lib/block-tags.js +0 -25
  8. package/lib/block-tags.js.map +0 -1
  9. package/lib/constants.js +0 -16
  10. package/lib/constants.js.map +0 -1
  11. package/lib/editor.js +0 -1355
  12. package/lib/editor.js.map +0 -1
  13. package/lib/index.js +0 -269
  14. package/lib/index.js.map +0 -1
  15. package/lib/parse-html.js +0 -16
  16. package/lib/parse-html.js.map +0 -1
  17. package/lib/plugins/characters/custom-popper.js +0 -73
  18. package/lib/plugins/characters/custom-popper.js.map +0 -1
  19. package/lib/plugins/characters/index.js +0 -305
  20. package/lib/plugins/characters/index.js.map +0 -1
  21. package/lib/plugins/characters/utils.js +0 -381
  22. package/lib/plugins/characters/utils.js.map +0 -1
  23. package/lib/plugins/css/icons/index.js +0 -37
  24. package/lib/plugins/css/icons/index.js.map +0 -1
  25. package/lib/plugins/css/index.js +0 -397
  26. package/lib/plugins/css/index.js.map +0 -1
  27. package/lib/plugins/customPlugin/index.js +0 -114
  28. package/lib/plugins/customPlugin/index.js.map +0 -1
  29. package/lib/plugins/html/icons/index.js +0 -38
  30. package/lib/plugins/html/icons/index.js.map +0 -1
  31. package/lib/plugins/html/index.js +0 -80
  32. package/lib/plugins/html/index.js.map +0 -1
  33. package/lib/plugins/image/alt-dialog.js +0 -129
  34. package/lib/plugins/image/alt-dialog.js.map +0 -1
  35. package/lib/plugins/image/component.js +0 -419
  36. package/lib/plugins/image/component.js.map +0 -1
  37. package/lib/plugins/image/image-toolbar.js +0 -177
  38. package/lib/plugins/image/image-toolbar.js.map +0 -1
  39. package/lib/plugins/image/index.js +0 -263
  40. package/lib/plugins/image/index.js.map +0 -1
  41. package/lib/plugins/image/insert-image-handler.js +0 -161
  42. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  43. package/lib/plugins/index.js +0 -402
  44. package/lib/plugins/index.js.map +0 -1
  45. package/lib/plugins/list/index.js +0 -334
  46. package/lib/plugins/list/index.js.map +0 -1
  47. package/lib/plugins/math/index.js +0 -454
  48. package/lib/plugins/math/index.js.map +0 -1
  49. package/lib/plugins/media/index.js +0 -387
  50. package/lib/plugins/media/index.js.map +0 -1
  51. package/lib/plugins/media/media-dialog.js +0 -709
  52. package/lib/plugins/media/media-dialog.js.map +0 -1
  53. package/lib/plugins/media/media-toolbar.js +0 -101
  54. package/lib/plugins/media/media-toolbar.js.map +0 -1
  55. package/lib/plugins/media/media-wrapper.js +0 -93
  56. package/lib/plugins/media/media-wrapper.js.map +0 -1
  57. package/lib/plugins/rendering/index.js +0 -46
  58. package/lib/plugins/rendering/index.js.map +0 -1
  59. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -254
  60. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  61. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -97
  62. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  63. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -57
  64. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  65. package/lib/plugins/respArea/icons/index.js +0 -95
  66. package/lib/plugins/respArea/icons/index.js.map +0 -1
  67. package/lib/plugins/respArea/index.js +0 -341
  68. package/lib/plugins/respArea/index.js.map +0 -1
  69. package/lib/plugins/respArea/inline-dropdown/index.js +0 -75
  70. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  71. package/lib/plugins/respArea/math-templated/index.js +0 -130
  72. package/lib/plugins/respArea/math-templated/index.js.map +0 -1
  73. package/lib/plugins/respArea/utils.js +0 -125
  74. package/lib/plugins/respArea/utils.js.map +0 -1
  75. package/lib/plugins/table/CustomTablePlugin.js +0 -133
  76. package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
  77. package/lib/plugins/table/icons/index.js +0 -69
  78. package/lib/plugins/table/icons/index.js.map +0 -1
  79. package/lib/plugins/table/index.js +0 -483
  80. package/lib/plugins/table/index.js.map +0 -1
  81. package/lib/plugins/table/table-toolbar.js +0 -187
  82. package/lib/plugins/table/table-toolbar.js.map +0 -1
  83. package/lib/plugins/textAlign/icons/index.js +0 -226
  84. package/lib/plugins/textAlign/icons/index.js.map +0 -1
  85. package/lib/plugins/textAlign/index.js +0 -34
  86. package/lib/plugins/textAlign/index.js.map +0 -1
  87. package/lib/plugins/toolbar/default-toolbar.js +0 -229
  88. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  89. package/lib/plugins/toolbar/done-button.js +0 -53
  90. package/lib/plugins/toolbar/done-button.js.map +0 -1
  91. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -286
  92. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  93. package/lib/plugins/toolbar/index.js +0 -34
  94. package/lib/plugins/toolbar/index.js.map +0 -1
  95. package/lib/plugins/toolbar/toolbar-buttons.js +0 -194
  96. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  97. package/lib/plugins/toolbar/toolbar.js +0 -376
  98. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  99. package/lib/plugins/utils.js +0 -62
  100. package/lib/plugins/utils.js.map +0 -1
  101. package/lib/serialization.js +0 -677
  102. package/lib/serialization.js.map +0 -1
  103. package/lib/shared/alert-dialog.js +0 -75
  104. package/lib/shared/index.js +0 -136
  105. package/lib/theme.js +0 -9
  106. package/lib/theme.js.map +0 -1
@@ -1,229 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.ToolbarButton = exports.DefaultToolbar = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _doneButton = require("./done-button");
15
-
16
- var _propTypes = _interopRequireDefault(require("prop-types"));
17
-
18
- var _react = _interopRequireDefault(require("react"));
19
-
20
- var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
21
-
22
- var _utils = require("../utils");
23
-
24
- var _styles = require("@material-ui/core/styles");
25
-
26
- var _toolbarButtons = require("./toolbar-buttons");
27
-
28
- var _debug = _interopRequireDefault(require("debug"));
29
-
30
- 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; }
31
-
32
- 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; }
33
-
34
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
35
-
36
- var ToolbarButton = function ToolbarButton(props) {
37
- var onToggle = function onToggle() {
38
- var c = props.onToggle(props.value.change(), props);
39
- props.onChange(c);
40
- };
41
-
42
- if (props.isMark) {
43
- var _isActive = (0, _utils.hasMark)(props.value, props.type);
44
-
45
- var fnToCall = props.type === 'css' ? function () {
46
- return props.onClick(props.value, props.onChange, props.getFocusedValue);
47
- } : onToggle;
48
- log('[ToolbarButton] mark:isActive: ', _isActive);
49
- var ariaLabel;
50
-
51
- if (props.type === 'sup') {
52
- ariaLabel = 'Superscript (marks text as superscripted)';
53
- } else if (props.type === 'sub') {
54
- ariaLabel = 'Subscript (marks text as subscripted)';
55
- } else {
56
- ariaLabel = props.type;
57
- }
58
-
59
- return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
60
- active: _isActive,
61
- onToggle: fnToCall,
62
- mark: props.type,
63
- label: ariaLabel
64
- }, props.icon);
65
- }
66
-
67
- var disabled = props.disabled;
68
- var isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
69
- log('[ToolbarButton] block:isActive: ', isActive);
70
-
71
- var newIcon = /*#__PURE__*/_react["default"].cloneElement(props.icon);
72
-
73
- return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
74
- ariaLabel: props.ariaLabel,
75
- active: isActive,
76
- disabled: disabled,
77
- onClick: function onClick(event) {
78
- return props.onClick(props.value, props.onChange, props.getFocusedValue, event);
79
- },
80
- extraStyles: props.buttonStyles
81
- }, newIcon);
82
- };
83
-
84
- exports.ToolbarButton = ToolbarButton;
85
- ToolbarButton.propTypes = {
86
- buttonStyles: _propTypes["default"].object,
87
- disabled: _propTypes["default"].bool,
88
- icon: _propTypes["default"].any,
89
- isActive: _propTypes["default"].bool,
90
- isMark: _propTypes["default"].bool,
91
- getFocusedValue: _propTypes["default"].func,
92
- onToggle: _propTypes["default"].func,
93
- onChange: _propTypes["default"].func,
94
- onClick: _propTypes["default"].func,
95
- type: _propTypes["default"].string,
96
- value: _propTypes["default"].object,
97
- ariaLabel: _propTypes["default"].string
98
- };
99
-
100
- var isActiveToolbarPlugin = function isActiveToolbarPlugin(props) {
101
- return function (plugin) {
102
- var isDisabled = (props[plugin.name] || {}).disabled;
103
- return plugin && plugin.toolbar && !isDisabled;
104
- };
105
- };
106
-
107
- var DefaultToolbar = function DefaultToolbar(_ref) {
108
- var plugins = _ref.plugins,
109
- pluginProps = _ref.pluginProps,
110
- value = _ref.value,
111
- onChange = _ref.onChange,
112
- getFocusedValue = _ref.getFocusedValue,
113
- onDone = _ref.onDone,
114
- classes = _ref.classes,
115
- showDone = _ref.showDone,
116
- deletable = _ref.deletable,
117
- isHtmlMode = _ref.isHtmlMode,
118
- doneButtonRef = _ref.doneButtonRef,
119
- onBlur = _ref.onBlur,
120
- onFocus = _ref.onFocus;
121
- pluginProps = _objectSpread({
122
- // disable HTML plugin by default, at least for now
123
- html: {
124
- disabled: true
125
- }
126
- }, pluginProps);
127
- var filtered;
128
-
129
- var handleFocus = function handleFocus(event) {
130
- var _doneButtonRef$curren, _event$target;
131
-
132
- var doneButtonClassName = doneButtonRef === null || doneButtonRef === void 0 ? void 0 : (_doneButtonRef$curren = doneButtonRef.current) === null || _doneButtonRef$curren === void 0 ? void 0 : _doneButtonRef$curren.className;
133
- var isRawDoneButton = doneButtonClassName && ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.closest("[class*=\"".concat(doneButtonClassName, "\"]")));
134
-
135
- if (onFocus && !isRawDoneButton) {
136
- onFocus(event);
137
- }
138
- };
139
-
140
- if (isHtmlMode) {
141
- filtered = plugins.filter(function (plugin) {
142
- return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');
143
- }).map(function (p) {
144
- return p.toolbar;
145
- });
146
- } else {
147
- filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
148
- return p.toolbar;
149
- });
150
- }
151
-
152
- var isListActive = plugins.some(function (plugin) {
153
- return isActiveToolbarPlugin(pluginProps)(plugin) && ['ul_list', 'ol_list'].includes(plugin.name) && plugin.toolbar.isActive(value, plugin.name);
154
- });
155
- var isTableActive = plugins.some(function (plugin) {
156
- return isActiveToolbarPlugin(pluginProps)(plugin) && plugin.name === 'table' && plugin.utils && plugin.utils.isSelectionInTable && plugin.utils.isSelectionInTable(value);
157
- });
158
-
159
- var isToolbarButtonDisabled = function isToolbarButtonDisabled(plugin) {
160
- if (plugin.type === 'table') {
161
- return isListActive;
162
- } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {
163
- return isTableActive;
164
- }
165
-
166
- return plugin.disabled;
167
- };
168
-
169
- return /*#__PURE__*/_react["default"].createElement("div", {
170
- className: classes.defaultToolbar,
171
- onFocus: handleFocus,
172
- tabIndex: "1",
173
- onBlur: onBlur
174
- }, /*#__PURE__*/_react["default"].createElement("div", {
175
- className: classes.buttonsContainer
176
- }, filtered.map(function (p, index) {
177
- return /*#__PURE__*/_react["default"].createElement(ToolbarButton, (0, _extends2["default"])({}, p, {
178
- key: index,
179
- value: value,
180
- onChange: onChange,
181
- getFocusedValue: getFocusedValue,
182
- disabled: isToolbarButtonDisabled(p)
183
- }));
184
- })), showDone && !deletable && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
185
- doneButtonRef: doneButtonRef,
186
- onClick: onDone
187
- }));
188
- };
189
-
190
- exports.DefaultToolbar = DefaultToolbar;
191
- DefaultToolbar.propTypes = {
192
- classes: _propTypes["default"].object.isRequired,
193
- plugins: _propTypes["default"].array.isRequired,
194
- pluginProps: _propTypes["default"].object,
195
- value: _slatePropTypes["default"].value.isRequired,
196
- onChange: _propTypes["default"].func.isRequired,
197
- getFocusedValue: _propTypes["default"].func.isRequired,
198
- onDone: _propTypes["default"].func.isRequired,
199
- showDone: _propTypes["default"].bool,
200
- addArea: _propTypes["default"].bool,
201
- deletable: _propTypes["default"].bool,
202
- isHtmlMode: _propTypes["default"].bool,
203
- doneButtonRef: _propTypes["default"].func,
204
- onBlur: _propTypes["default"].func,
205
- onFocus: _propTypes["default"].func
206
- };
207
- DefaultToolbar.defaultProps = {
208
- pluginProps: {}
209
- };
210
-
211
- var toolbarStyles = function toolbarStyles() {
212
- return {
213
- defaultToolbar: {
214
- display: 'flex',
215
- width: '100%',
216
- justifyContent: 'space-between'
217
- },
218
- buttonsContainer: {
219
- alignItems: 'center',
220
- display: 'flex',
221
- width: '100%'
222
- }
223
- };
224
- };
225
-
226
- var _default = (0, _styles.withStyles)(toolbarStyles)(DefaultToolbar);
227
-
228
- exports["default"] = _default;
229
- //# sourceMappingURL=default-toolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"names":["log","ToolbarButton","props","onToggle","c","value","change","onChange","isMark","isActive","type","fnToCall","onClick","getFocusedValue","ariaLabel","icon","disabled","newIcon","React","cloneElement","event","buttonStyles","propTypes","PropTypes","object","bool","any","func","string","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","isHtmlMode","doneButtonRef","onBlur","onFocus","html","filtered","handleFocus","doneButtonClassName","current","className","isRawDoneButton","target","closest","filter","map","p","isListActive","some","includes","isTableActive","utils","isSelectionInTable","isToolbarButtonDisabled","defaultToolbar","buttonsContainer","index","isRequired","array","SlatePropTypes","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,wCAAN,CAAZ;;AAEO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;AACtC,MAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACrB,QAAMC,CAAC,GAAGF,KAAK,CAACC,QAAN,CAAeD,KAAK,CAACG,KAAN,CAAYC,MAAZ,EAAf,EAAqCJ,KAArC,CAAV;AAEAA,IAAAA,KAAK,CAACK,QAAN,CAAeH,CAAf;AACD,GAJD;;AAMA,MAAIF,KAAK,CAACM,MAAV,EAAkB;AAChB,QAAMC,SAAQ,GAAG,oBAAQP,KAAK,CAACG,KAAd,EAAqBH,KAAK,CAACQ,IAA3B,CAAjB;;AACA,QAAMC,QAAQ,GACZT,KAAK,CAACQ,IAAN,KAAe,KAAf,GAAuB;AAAA,aAAMR,KAAK,CAACU,OAAN,CAAcV,KAAK,CAACG,KAApB,EAA2BH,KAAK,CAACK,QAAjC,EAA2CL,KAAK,CAACW,eAAjD,CAAN;AAAA,KAAvB,GAAiGV,QADnG;AAGAH,IAAAA,GAAG,CAAC,iCAAD,EAAoCS,SAApC,CAAH;AAEA,QAAIK,SAAJ;;AAEA,QAAIZ,KAAK,CAACQ,IAAN,KAAe,KAAnB,EAA0B;AACxBI,MAAAA,SAAS,GAAG,2CAAZ;AACD,KAFD,MAEO,IAAIZ,KAAK,CAACQ,IAAN,KAAe,KAAnB,EAA0B;AAC/BI,MAAAA,SAAS,GAAG,uCAAZ;AACD,KAFM,MAEA;AACLA,MAAAA,SAAS,GAAGZ,KAAK,CAACQ,IAAlB;AACD;;AAED,wBACE,gCAAC,0BAAD;AAAY,MAAA,MAAM,EAAED,SAApB;AAA8B,MAAA,QAAQ,EAAEE,QAAxC;AAAkD,MAAA,IAAI,EAAET,KAAK,CAACQ,IAA9D;AAAoE,MAAA,KAAK,EAAEI;AAA3E,OACGZ,KAAK,CAACa,IADT,CADF;AAKD;;AAED,MAAQC,QAAR,GAAqBd,KAArB,CAAQc,QAAR;AACA,MAAMP,QAAQ,GAAGP,KAAK,CAACO,QAAN,GAAiBP,KAAK,CAACO,QAAN,CAAeP,KAAK,CAACG,KAArB,EAA4BH,KAAK,CAACQ,IAAlC,CAAjB,GAA2D,qBAASR,KAAK,CAACG,KAAf,EAAsBH,KAAK,CAACQ,IAA5B,CAA5E;AAEAV,EAAAA,GAAG,CAAC,kCAAD,EAAqCS,QAArC,CAAH;;AACA,MAAMQ,OAAO,gBAAGC,kBAAMC,YAAN,CAAmBjB,KAAK,CAACa,IAAzB,CAAhB;;AAEA,sBACE,gCAAC,sBAAD;AACE,IAAA,SAAS,EAAEb,KAAK,CAACY,SADnB;AAEE,IAAA,MAAM,EAAEL,QAFV;AAGE,IAAA,QAAQ,EAAEO,QAHZ;AAIE,IAAA,OAAO,EAAE,iBAACI,KAAD;AAAA,aAAWlB,KAAK,CAACU,OAAN,CAAcV,KAAK,CAACG,KAApB,EAA2BH,KAAK,CAACK,QAAjC,EAA2CL,KAAK,CAACW,eAAjD,EAAkEO,KAAlE,CAAX;AAAA,KAJX;AAKE,IAAA,WAAW,EAAElB,KAAK,CAACmB;AALrB,KAOGJ,OAPH,CADF;AAWD,CAhDM;;;AAkDPhB,aAAa,CAACqB,SAAd,GAA0B;AACxBD,EAAAA,YAAY,EAAEE,sBAAUC,MADA;AAExBR,EAAAA,QAAQ,EAAEO,sBAAUE,IAFI;AAGxBV,EAAAA,IAAI,EAAEQ,sBAAUG,GAHQ;AAIxBjB,EAAAA,QAAQ,EAAEc,sBAAUE,IAJI;AAKxBjB,EAAAA,MAAM,EAAEe,sBAAUE,IALM;AAMxBZ,EAAAA,eAAe,EAAEU,sBAAUI,IANH;AAOxBxB,EAAAA,QAAQ,EAAEoB,sBAAUI,IAPI;AAQxBpB,EAAAA,QAAQ,EAAEgB,sBAAUI,IARI;AASxBf,EAAAA,OAAO,EAAEW,sBAAUI,IATK;AAUxBjB,EAAAA,IAAI,EAAEa,sBAAUK,MAVQ;AAWxBvB,EAAAA,KAAK,EAAEkB,sBAAUC,MAXO;AAYxBV,EAAAA,SAAS,EAAES,sBAAUK;AAZG,CAA1B;;AAeA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC3B,KAAD;AAAA,SAAW,UAAC4B,MAAD,EAAY;AACnD,QAAMC,UAAU,GAAG,CAAC7B,KAAK,CAAC4B,MAAM,CAACE,IAAR,CAAL,IAAsB,EAAvB,EAA2BhB,QAA9C;AAEA,WAAOc,MAAM,IAAIA,MAAM,CAACG,OAAjB,IAA4B,CAACF,UAApC;AACD,GAJ6B;AAAA,CAA9B;;AAMO,IAAMG,cAAc,GAAG,SAAjBA,cAAiB,OAcxB;AAAA,MAbJC,OAaI,QAbJA,OAaI;AAAA,MAZJC,WAYI,QAZJA,WAYI;AAAA,MAXJ/B,KAWI,QAXJA,KAWI;AAAA,MAVJE,QAUI,QAVJA,QAUI;AAAA,MATJM,eASI,QATJA,eASI;AAAA,MARJwB,MAQI,QARJA,MAQI;AAAA,MAPJC,OAOI,QAPJA,OAOI;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,MALJC,SAKI,QALJA,SAKI;AAAA,MAJJC,UAII,QAJJA,UAII;AAAA,MAHJC,aAGI,QAHJA,aAGI;AAAA,MAFJC,MAEI,QAFJA,MAEI;AAAA,MADJC,OACI,QADJA,OACI;AACJR,EAAAA,WAAW;AACT;AACAS,IAAAA,IAAI,EAAE;AAAE7B,MAAAA,QAAQ,EAAE;AAAZ;AAFG,KAGNoB,WAHM,CAAX;AAKA,MAAIU,QAAJ;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC3B,KAAD,EAAW;AAAA;;AAC7B,QAAM4B,mBAAmB,GAAGN,aAAH,aAAGA,aAAH,gDAAGA,aAAa,CAAEO,OAAlB,0DAAG,sBAAwBC,SAApD;AACA,QAAMC,eAAe,GAAGH,mBAAmB,sBAAI5B,KAAK,CAACgC,MAAV,kDAAI,cAAcC,OAAd,qBAAkCL,mBAAlC,SAAJ,CAA3C;;AAEA,QAAIJ,OAAO,IAAI,CAACO,eAAhB,EAAiC;AAC/BP,MAAAA,OAAO,CAACxB,KAAD,CAAP;AACD;AACF,GAPD;;AASA,MAAIqB,UAAJ,EAAgB;AACdK,IAAAA,QAAQ,GAAGX,OAAO,CACfmB,MADQ,CACD,UAACxB,MAAD,EAAY;AAClB,aAAOD,qBAAqB,CAACO,WAAD,CAArB,CAAmCN,MAAnC,MAA+CA,MAAM,CAACE,IAAP,KAAgB,YAAhB,IAAgCF,MAAM,CAACE,IAAP,KAAgB,MAA/F,CAAP;AACD,KAHQ,EAIRuB,GAJQ,CAIJ,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACvB,OAAT;AAAA,KAJI,CAAX;AAKD,GAND,MAMO;AACLa,IAAAA,QAAQ,GAAGX,OAAO,CAACmB,MAAR,CAAezB,qBAAqB,CAACO,WAAD,CAApC,EAAmDmB,GAAnD,CAAuD,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACvB,OAAT;AAAA,KAAvD,CAAX;AACD;;AAED,MAAMwB,YAAY,GAAGtB,OAAO,CAACuB,IAAR,CACnB,UAAC5B,MAAD;AAAA,WACED,qBAAqB,CAACO,WAAD,CAArB,CAAmCN,MAAnC,KACA,CAAC,SAAD,EAAY,SAAZ,EAAuB6B,QAAvB,CAAgC7B,MAAM,CAACE,IAAvC,CADA,IAEAF,MAAM,CAACG,OAAP,CAAexB,QAAf,CAAwBJ,KAAxB,EAA+ByB,MAAM,CAACE,IAAtC,CAHF;AAAA,GADmB,CAArB;AAOA,MAAM4B,aAAa,GAAGzB,OAAO,CAACuB,IAAR,CACpB,UAAC5B,MAAD;AAAA,WACED,qBAAqB,CAACO,WAAD,CAArB,CAAmCN,MAAnC,KACAA,MAAM,CAACE,IAAP,KAAgB,OADhB,IAEAF,MAAM,CAAC+B,KAFP,IAGA/B,MAAM,CAAC+B,KAAP,CAAaC,kBAHb,IAIAhC,MAAM,CAAC+B,KAAP,CAAaC,kBAAb,CAAgCzD,KAAhC,CALF;AAAA,GADoB,CAAtB;;AASA,MAAM0D,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACjC,MAAD,EAAY;AAC1C,QAAIA,MAAM,CAACpB,IAAP,KAAgB,OAApB,EAA6B;AAC3B,aAAO+C,YAAP;AACD,KAFD,MAEO,IAAI3B,MAAM,CAACpB,IAAP,KAAgB,SAAhB,IAA6BoB,MAAM,CAACpB,IAAP,KAAgB,SAAjD,EAA4D;AACjE,aAAOkD,aAAP;AACD;;AACD,WAAO9B,MAAM,CAACd,QAAd;AACD,GAPD;;AASA,sBACE;AAAK,IAAA,SAAS,EAAEsB,OAAO,CAAC0B,cAAxB;AAAwC,IAAA,OAAO,EAAEjB,WAAjD;AAA8D,IAAA,QAAQ,EAAC,GAAvE;AAA2E,IAAA,MAAM,EAAEJ;AAAnF,kBACE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAAC2B;AAAxB,KACGnB,QAAQ,CAACS,GAAT,CAAa,UAACC,CAAD,EAAIU,KAAJ,EAAc;AAC1B,wBACE,gCAAC,aAAD,gCACMV,CADN;AAEE,MAAA,GAAG,EAAEU,KAFP;AAGE,MAAA,KAAK,EAAE7D,KAHT;AAIE,MAAA,QAAQ,EAAEE,QAJZ;AAKE,MAAA,eAAe,EAAEM,eALnB;AAME,MAAA,QAAQ,EAAEkD,uBAAuB,CAACP,CAAD;AANnC,OADF;AAUD,GAXA,CADH,CADF,EAeGjB,QAAQ,IAAI,CAACC,SAAb,iBAA0B,gCAAC,sBAAD;AAAY,IAAA,aAAa,EAAEE,aAA3B;AAA0C,IAAA,OAAO,EAAEL;AAAnD,IAf7B,CADF;AAmBD,CArFM;;;AAuFPH,cAAc,CAACZ,SAAf,GAA2B;AACzBgB,EAAAA,OAAO,EAAEf,sBAAUC,MAAV,CAAiB2C,UADD;AAEzBhC,EAAAA,OAAO,EAAEZ,sBAAU6C,KAAV,CAAgBD,UAFA;AAGzB/B,EAAAA,WAAW,EAAEb,sBAAUC,MAHE;AAIzBnB,EAAAA,KAAK,EAAEgE,2BAAehE,KAAf,CAAqB8D,UAJH;AAKzB5D,EAAAA,QAAQ,EAAEgB,sBAAUI,IAAV,CAAewC,UALA;AAMzBtD,EAAAA,eAAe,EAAEU,sBAAUI,IAAV,CAAewC,UANP;AAOzB9B,EAAAA,MAAM,EAAEd,sBAAUI,IAAV,CAAewC,UAPE;AAQzB5B,EAAAA,QAAQ,EAAEhB,sBAAUE,IARK;AASzB6C,EAAAA,OAAO,EAAE/C,sBAAUE,IATM;AAUzBe,EAAAA,SAAS,EAAEjB,sBAAUE,IAVI;AAWzBgB,EAAAA,UAAU,EAAElB,sBAAUE,IAXG;AAYzBiB,EAAAA,aAAa,EAAEnB,sBAAUI,IAZA;AAazBgB,EAAAA,MAAM,EAAEpB,sBAAUI,IAbO;AAczBiB,EAAAA,OAAO,EAAErB,sBAAUI;AAdM,CAA3B;AAiBAO,cAAc,CAACqC,YAAf,GAA8B;AAC5BnC,EAAAA,WAAW,EAAE;AADe,CAA9B;;AAIA,IAAMoC,aAAa,GAAG,SAAhBA,aAAgB;AAAA,SAAO;AAC3BR,IAAAA,cAAc,EAAE;AACdS,MAAAA,OAAO,EAAE,MADK;AAEdC,MAAAA,KAAK,EAAE,MAFO;AAGdC,MAAAA,cAAc,EAAE;AAHF,KADW;AAM3BV,IAAAA,gBAAgB,EAAE;AAChBW,MAAAA,UAAU,EAAE,QADI;AAEhBH,MAAAA,OAAO,EAAE,MAFO;AAGhBC,MAAAA,KAAK,EAAE;AAHS;AANS,GAAP;AAAA,CAAtB;;eAae,wBAAWF,aAAX,EAA0BtC,cAA1B,C","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 const fnToCall =\n props.type === 'css' ? () => props.onClick(props.value, props.onChange, props.getFocusedValue) : onToggle;\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n let ariaLabel;\n\n if (props.type === 'sup') {\n ariaLabel = 'Superscript (marks text as superscripted)';\n } else if (props.type === 'sub') {\n ariaLabel = 'Subscript (marks text as subscripted)';\n } else {\n ariaLabel = props.type;\n }\n\n return (\n <MarkButton active={isActive} onToggle={fnToCall} mark={props.type} label={ariaLabel}>\n {props.icon}\n </MarkButton>\n );\n }\n\n const { disabled } = props;\n const isActive = props.isActive ? props.isActive(props.value, props.type) : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n const newIcon = React.cloneElement(props.icon);\n\n return (\n <Button\n ariaLabel={props.ariaLabel}\n active={isActive}\n disabled={disabled}\n onClick={(event) => props.onClick(props.value, props.onChange, props.getFocusedValue, event)}\n extraStyles={props.buttonStyles}\n >\n {newIcon}\n </Button>\n );\n};\n\nToolbarButton.propTypes = {\n buttonStyles: PropTypes.object,\n disabled: PropTypes.bool,\n icon: PropTypes.any,\n isActive: PropTypes.bool,\n isMark: PropTypes.bool,\n getFocusedValue: PropTypes.func,\n onToggle: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n type: PropTypes.string,\n value: PropTypes.object,\n ariaLabel: PropTypes.string,\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 isHtmlMode,\n doneButtonRef,\n onBlur,\n onFocus,\n}) => {\n pluginProps = {\n // disable HTML plugin by default, at least for now\n html: { disabled: true },\n ...pluginProps,\n };\n let filtered;\n\n const handleFocus = (event) => {\n const doneButtonClassName = doneButtonRef?.current?.className;\n const isRawDoneButton = doneButtonClassName && event.target?.closest(`[class*=\"${doneButtonClassName}\"]`);\n\n if (onFocus && !isRawDoneButton) {\n onFocus(event);\n }\n };\n\n if (isHtmlMode) {\n filtered = plugins\n .filter((plugin) => {\n return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');\n })\n .map((p) => p.toolbar);\n } else {\n filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n }\n\n const isListActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n ['ul_list', 'ol_list'].includes(plugin.name) &&\n plugin.toolbar.isActive(value, plugin.name),\n );\n\n const isTableActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n plugin.name === 'table' &&\n plugin.utils &&\n plugin.utils.isSelectionInTable &&\n plugin.utils.isSelectionInTable(value),\n );\n\n const isToolbarButtonDisabled = (plugin) => {\n if (plugin.type === 'table') {\n return isListActive;\n } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {\n return isTableActive;\n }\n return plugin.disabled;\n };\n\n return (\n <div className={classes.defaultToolbar} onFocus={handleFocus} tabIndex=\"1\" onBlur={onBlur}>\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 disabled={isToolbarButtonDisabled(p)}\n />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton doneButtonRef={doneButtonRef} 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 isHtmlMode: PropTypes.bool,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\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,53 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.RawDoneButton = exports.DoneButton = void 0;
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
13
-
14
- var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
15
-
16
- var _styles = require("@material-ui/core/styles");
17
-
18
- var _propTypes = _interopRequireDefault(require("prop-types"));
19
-
20
- var RawDoneButton = function RawDoneButton(_ref) {
21
- var classes = _ref.classes,
22
- onClick = _ref.onClick,
23
- doneButtonRef = _ref.doneButtonRef;
24
- return /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
25
- "aria-label": "Done",
26
- className: classes.iconRoot,
27
- buttonRef: doneButtonRef,
28
- onClick: onClick,
29
- classes: {
30
- label: classes.label,
31
- root: classes.iconRoot
32
- }
33
- }, /*#__PURE__*/_react["default"].createElement(_Check["default"], null));
34
- };
35
-
36
- exports.RawDoneButton = RawDoneButton;
37
- RawDoneButton.propTypes = {
38
- classes: _propTypes["default"].object.isRequired,
39
- onClick: _propTypes["default"].func,
40
- doneButtonRef: _propTypes["default"].func
41
- };
42
- var styles = {
43
- iconRoot: {
44
- verticalAlign: 'top',
45
- width: '28px',
46
- height: '28px',
47
- color: 'var(--editable-html-toolbar-check, #00bb00)',
48
- padding: '4px'
49
- }
50
- };
51
- var DoneButton = (0, _styles.withStyles)(styles)(RawDoneButton);
52
- exports.DoneButton = DoneButton;
53
- //# sourceMappingURL=done-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/done-button.jsx"],"names":["RawDoneButton","classes","onClick","doneButtonRef","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,MAAqBC,aAArB,QAAqBA,aAArB;AAAA,sBAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAEF,OAAO,CAACG,QAFrB;AAGE,IAAA,SAAS,EAAED,aAHb;AAIE,IAAA,OAAO,EAAED,OAJX;AAKE,IAAA,OAAO,EAAE;AACPG,MAAAA,KAAK,EAAEJ,OAAO,CAACI,KADR;AAEPC,MAAAA,IAAI,EAAEL,OAAO,CAACG;AAFP;AALX,kBAUE,gCAAC,iBAAD,OAVF,CAD2B;AAAA,CAAtB;;;AAePJ,aAAa,CAACO,SAAd,GAA0B;AACxBN,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC,UADF;AAExBR,EAAAA,OAAO,EAAEM,sBAAUG,IAFK;AAGxBR,EAAAA,aAAa,EAAEK,sBAAUG;AAHD,CAA1B;AAMA,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,EAAmBZ,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, doneButtonRef }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n buttonRef={doneButtonRef}\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 doneButtonRef: 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,286 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.EditorAndToolbar = void 0;
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
-
22
- var _react = _interopRequireDefault(require("react"));
23
-
24
- var _toolbar = _interopRequireDefault(require("./toolbar"));
25
-
26
- var _classnames = _interopRequireDefault(require("classnames"));
27
-
28
- var _debug = _interopRequireDefault(require("debug"));
29
-
30
- var _theme = require("../../theme");
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
- var _propTypes = _interopRequireDefault(require("prop-types"));
35
-
36
- var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
37
-
38
- var _index = require("./../../shared/index");
39
-
40
- 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); }; }
41
-
42
- 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; } }
43
-
44
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');
45
-
46
- var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
47
- (0, _inherits2["default"])(EditorAndToolbar, _React$Component);
48
-
49
- var _super = _createSuper(EditorAndToolbar);
50
-
51
- function EditorAndToolbar() {
52
- (0, _classCallCheck2["default"])(this, EditorAndToolbar);
53
- return _super.apply(this, arguments);
54
- }
55
-
56
- (0, _createClass2["default"])(EditorAndToolbar, [{
57
- key: "render",
58
- value: function render() {
59
- var _classNames,
60
- _this = this,
61
- _classNames2;
62
-
63
- var _this$props = this.props,
64
- classes = _this$props.classes,
65
- children = _this$props.children,
66
- value = _this$props.value,
67
- plugins = _this$props.plugins,
68
- onChange = _this$props.onChange,
69
- getFocusedValue = _this$props.getFocusedValue,
70
- onDone = _this$props.onDone,
71
- focusedNode = _this$props.focusedNode,
72
- autoWidth = _this$props.autoWidth,
73
- readOnly = _this$props.readOnly,
74
- disableScrollbar = _this$props.disableScrollbar,
75
- disableUnderline = _this$props.disableUnderline,
76
- pluginProps = _this$props.pluginProps,
77
- toolbarOpts = _this$props.toolbarOpts,
78
- onDataChange = _this$props.onDataChange,
79
- toolbarRef = _this$props.toolbarRef,
80
- doneButtonRef = _this$props.doneButtonRef,
81
- focusToolbar = _this$props.focusToolbar,
82
- onToolbarFocus = _this$props.onToolbarFocus,
83
- onToolbarBlur = _this$props.onToolbarBlur;
84
- var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined || focusToolbar;
85
- 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));
86
- var clonedChildren = children;
87
-
88
- if (typeof children !== 'string') {
89
- clonedChildren = /*#__PURE__*/_react["default"].cloneElement(children, {
90
- ref: function ref(el) {
91
- return _this.editorRef = el;
92
- }
93
- });
94
- }
95
-
96
- log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);
97
- return /*#__PURE__*/_react["default"].createElement("div", {
98
- 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)
99
- }, /*#__PURE__*/_react["default"].createElement("div", {
100
- className: holderNames
101
- }, /*#__PURE__*/_react["default"].createElement("div", {
102
- className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.noPadding, toolbarOpts && toolbarOpts.noPadding), classes.children)
103
- }, clonedChildren)), /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
104
- autoWidth: autoWidth,
105
- plugins: plugins,
106
- focusedNode: focusedNode,
107
- value: value,
108
- isFocused: inFocus,
109
- onBlur: onToolbarBlur,
110
- onFocus: onToolbarFocus,
111
- onChange: onChange,
112
- getFocusedValue: getFocusedValue,
113
- onDone: onDone,
114
- onDataChange: onDataChange,
115
- toolbarRef: toolbarRef,
116
- doneButtonRef: doneButtonRef,
117
- pluginProps: pluginProps,
118
- toolbarOpts: toolbarOpts
119
- }));
120
- }
121
- }]);
122
- return EditorAndToolbar;
123
- }(_react["default"].Component);
124
-
125
- exports.EditorAndToolbar = EditorAndToolbar;
126
- (0, _defineProperty2["default"])(EditorAndToolbar, "propTypes", {
127
- children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
128
- value: _slatePropTypes["default"].value.isRequired,
129
- plugins: _propTypes["default"].array.isRequired,
130
- onChange: _propTypes["default"].func.isRequired,
131
- getFocusedValue: _propTypes["default"].func.isRequired,
132
- onDone: _propTypes["default"].func.isRequired,
133
- onDataChange: _propTypes["default"].func,
134
- toolbarRef: _propTypes["default"].func,
135
- focusedNode: _slatePropTypes["default"].node,
136
- readOnly: _propTypes["default"].bool,
137
- disableScrollbar: _propTypes["default"].bool,
138
- disableUnderline: _propTypes["default"].bool,
139
- autoWidth: _propTypes["default"].bool,
140
- classes: _propTypes["default"].object.isRequired,
141
- pluginProps: _propTypes["default"].object,
142
- toolbarOpts: _propTypes["default"].shape({
143
- position: _propTypes["default"].oneOf(['bottom', 'top']),
144
- alwaysVisible: _propTypes["default"].bool,
145
- error: _propTypes["default"].string,
146
- noBorder: _propTypes["default"].any,
147
- noPadding: _propTypes["default"].any
148
- }),
149
- focusToolbar: _propTypes["default"].bool.isRequired,
150
- onToolbarFocus: _propTypes["default"].func.isRequired,
151
- onToolbarBlur: _propTypes["default"].func.isRequired,
152
- doneButtonRef: _propTypes["default"].func
153
- });
154
-
155
- var style = function style(theme) {
156
- return {
157
- root: {
158
- position: 'relative',
159
- padding: '0px',
160
- border: '1px solid #ccc',
161
- borderRadius: '4px',
162
- cursor: 'text',
163
- '& [data-slate-editor="true"]': {
164
- wordBreak: 'break-word',
165
- overflow: 'visible',
166
- maxHeight: '500px',
167
- // needed in order to be able to put the focus before a void element when it is the first one in the editor
168
- padding: '5px'
169
- }
170
- },
171
- children: {
172
- padding: '10px 16px'
173
- },
174
- editorHolder: {
175
- position: 'relative',
176
- padding: '0px',
177
- overflowY: 'auto',
178
- color: _index.color.text(),
179
- backgroundColor: _index.color.background(),
180
- '&::before': {
181
- left: '0',
182
- right: '0',
183
- bottom: '0',
184
- height: '1px',
185
- content: '""',
186
- position: 'absolute',
187
- transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',
188
- pointerEvents: 'none',
189
- backgroundColor: 'rgba(0, 0, 0, 0.42)'
190
- },
191
- '&::after': {
192
- left: '0',
193
- right: '0',
194
- bottom: '0',
195
- height: '1px',
196
- content: '""',
197
- position: 'absolute',
198
- transform: 'scaleX(0)',
199
- transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',
200
- backgroundColor: 'rgba(0, 0, 0, 0.42)'
201
- },
202
- '&:focus': {
203
- '&::after': {
204
- transform: 'scaleX(1)',
205
- backgroundColor: _theme.primary,
206
- height: '2px'
207
- }
208
- },
209
- '&:hover': {
210
- '&::after': {
211
- transform: 'scaleX(1)',
212
- backgroundColor: theme.palette.common.black,
213
- height: '2px'
214
- }
215
- }
216
- },
217
- disabledUnderline: {
218
- '&::before': {
219
- display: 'none'
220
- },
221
- '&::after': {
222
- display: 'none'
223
- }
224
- },
225
- disabledScrollbar: {
226
- '&::-webkit-scrollbar': {
227
- display: 'none'
228
- },
229
- scrollbarWidth: 'none',
230
- '-ms-overflow-style': 'none'
231
- },
232
- readOnly: {
233
- '&::before': {
234
- background: 'transparent',
235
- backgroundSize: '5px 1px',
236
- backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',
237
- backgroundRepeat: 'repeat-x',
238
- backgroundPosition: 'left top'
239
- },
240
- '&::after': {
241
- left: '0',
242
- right: '0',
243
- bottom: '0',
244
- height: '1px',
245
- content: '""',
246
- position: 'absolute',
247
- transform: 'scaleX(0)',
248
- transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',
249
- backgroundColor: 'rgba(0, 0, 0, 0)'
250
- },
251
- '&:hover': {
252
- '&::after': {
253
- transform: 'scaleX(0)',
254
- backgroundColor: theme.palette.common.black,
255
- height: '2px'
256
- }
257
- }
258
- },
259
- editorInFocus: {
260
- '&::after': {
261
- transform: 'scaleX(1)',
262
- backgroundColor: _theme.primary,
263
- height: '2px'
264
- },
265
- '&:hover': {
266
- '&::after': {
267
- backgroundColor: _theme.primary
268
- }
269
- }
270
- },
271
- error: {
272
- border: "2px solid ".concat(theme.palette.error.main, " !important")
273
- },
274
- noBorder: {
275
- border: 'none'
276
- },
277
- noPadding: {
278
- padding: 0
279
- }
280
- };
281
- };
282
-
283
- var _default = (0, _styles.withStyles)(style)(EditorAndToolbar);
284
-
285
- exports["default"] = _default;
286
- //# sourceMappingURL=editor-and-toolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/editor-and-toolbar.jsx"],"names":["log","EditorAndToolbar","props","classes","children","value","plugins","onChange","getFocusedValue","onDone","focusedNode","autoWidth","readOnly","disableScrollbar","disableUnderline","pluginProps","toolbarOpts","onDataChange","toolbarRef","doneButtonRef","focusToolbar","onToolbarFocus","onToolbarBlur","inFocus","isFocused","undefined","holderNames","editorHolder","editorInFocus","disabledUnderline","disabledScrollbar","clonedChildren","React","cloneElement","ref","el","editorRef","noBorder","error","root","noPadding","Component","PropTypes","oneOfType","arrayOf","node","isRequired","SlatePropTypes","array","func","bool","object","shape","position","oneOf","alwaysVisible","string","any","style","theme","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","overflowY","color","text","backgroundColor","background","left","right","bottom","height","content","transition","pointerEvents","transform","primary","palette","common","black","display","scrollbarWidth","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition","main"],"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 { color } from '../../../../render-ui/src/index';\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 noBorder: PropTypes.any,\n noPadding: PropTypes.any,\n }),\n focusToolbar: PropTypes.bool.isRequired,\n onToolbarFocus: PropTypes.func.isRequired,\n onToolbarBlur: PropTypes.func.isRequired,\n doneButtonRef: PropTypes.func,\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 doneButtonRef,\n focusToolbar,\n onToolbarFocus,\n onToolbarBlur,\n } = this.props;\n\n let inFocus = value.isFocused || (focusedNode !== null && focusedNode !== undefined) || focusToolbar;\n\n const holderNames = classNames(classes.editorHolder, {\n [classes.editorInFocus]: inFocus,\n [classes.readOnly]: readOnly,\n [classes.disabledUnderline]: disableUnderline,\n [classes.disabledScrollbar]: disableScrollbar,\n });\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('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);\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.noPadding,\n },\n classes.children,\n )}\n >\n {clonedChildren}\n </div>\n </div>\n\n <Toolbar\n autoWidth={autoWidth}\n plugins={plugins}\n focusedNode={focusedNode}\n value={value}\n isFocused={inFocus}\n onBlur={onToolbarBlur}\n onFocus={onToolbarFocus}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n onDone={onDone}\n onDataChange={onDataChange}\n toolbarRef={toolbarRef}\n doneButtonRef={doneButtonRef}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\n\nconst style = (theme) => ({\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: 'auto',\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: '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: theme.palette.common.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: theme.palette.common.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 ${theme.palette.error.main} !important`,\n },\n noBorder: {\n border: 'none',\n },\n noPadding: {\n padding: 0,\n },\n});\n\nexport default withStyles(style)(EditorAndToolbar);\n"],"file":"editor-and-toolbar.js"}