@pie-lib/editable-html 10.0.0-beta.7 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -1
- package/CHANGELOG.md +81 -0
- package/LICENSE.md +5 -0
- package/lib/editor.js +410 -543
- package/lib/editor.js.map +1 -1
- package/lib/index.js +200 -101
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +5 -6
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +12 -2
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +71 -19
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/html/icons/index.js +38 -0
- package/lib/plugins/html/icons/index.js.map +1 -0
- package/lib/plugins/html/index.js +75 -0
- package/lib/plugins/html/index.js.map +1 -0
- package/lib/plugins/image/alt-dialog.js +26 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +124 -90
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +45 -7
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +91 -113
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +54 -72
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +71 -31
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +129 -58
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +152 -118
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +185 -168
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +197 -110
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +24 -4
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +65 -23
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +50 -10
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +22 -9
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +9 -4
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +18 -1
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +133 -122
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +10 -4
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +33 -15
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +7 -0
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +279 -390
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +47 -14
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +63 -51
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +9 -1
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +140 -83
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +5 -0
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +39 -8
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +261 -225
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +16 -19
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +70 -11
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +18 -17
- package/src/editor.jsx +139 -434
- package/src/index.jsx +96 -62
- package/src/plugins/characters/index.jsx +17 -12
- package/src/plugins/html/icons/index.jsx +19 -0
- package/src/plugins/html/index.jsx +68 -0
- package/src/plugins/image/component.jsx +38 -60
- package/src/plugins/image/index.jsx +42 -95
- package/src/plugins/image/insert-image-handler.js +27 -62
- package/src/plugins/index.jsx +39 -21
- package/src/plugins/list/index.jsx +90 -62
- package/src/plugins/math/index.jsx +70 -93
- package/src/plugins/media/index.jsx +117 -146
- package/src/plugins/media/media-dialog.js +9 -10
- package/src/plugins/media/media-wrapper.jsx +27 -29
- package/src/plugins/respArea/drag-in-the-blank/index.jsx +4 -5
- package/src/plugins/respArea/explicit-constructed-response/index.jsx +1 -2
- package/src/plugins/respArea/index.jsx +84 -114
- package/src/plugins/respArea/inline-dropdown/index.jsx +2 -3
- package/src/plugins/respArea/utils.jsx +28 -23
- package/src/plugins/table/index.jsx +214 -334
- package/src/plugins/table/table-toolbar.jsx +4 -3
- package/src/plugins/toolbar/default-toolbar.jsx +30 -48
- package/src/plugins/toolbar/editor-and-toolbar.jsx +114 -114
- package/src/plugins/toolbar/toolbar.jsx +224 -254
- package/src/plugins/utils.js +0 -16
- package/src/serialization.jsx +1 -1
- package/lib/components.js +0 -92
- package/lib/components.js.map +0 -1
- package/lib/new-serialization.js +0 -280
- package/lib/new-serialization.js.map +0 -1
- package/lib/plugins/hotKeys/index.js +0 -60
- package/lib/plugins/hotKeys/index.js.map +0 -1
- package/lib/test-serializer.js +0 -138
- package/lib/test-serializer.js.map +0 -1
- package/src/components.js +0 -135
- package/src/new-serialization.jsx +0 -310
- package/src/plugins/hotKeys/index.js +0 -54
- package/src/test-serializer.js +0 -132
|
@@ -1,28 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = CharactersPlugin;
|
|
8
9
|
exports.removeDialogs = void 0;
|
|
9
|
-
|
|
10
|
+
|
|
10
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
|
|
11
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
|
+
|
|
12
15
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
|
-
var _slate = require("slate");
|
|
16
|
+
|
|
15
17
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
16
|
-
|
|
18
|
+
|
|
17
19
|
var _debug = _interopRequireDefault(require("debug"));
|
|
20
|
+
|
|
18
21
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
22
|
+
|
|
19
23
|
var _mathToolbar = require("@pie-lib/math-toolbar");
|
|
24
|
+
|
|
20
25
|
var _customPopper = _interopRequireDefault(require("./custom-popper"));
|
|
26
|
+
|
|
21
27
|
var _utils = require("../respArea/utils");
|
|
28
|
+
|
|
22
29
|
var _utils2 = require("./utils");
|
|
30
|
+
|
|
31
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
32
|
+
|
|
23
33
|
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; }
|
|
34
|
+
|
|
24
35
|
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; }
|
|
36
|
+
|
|
25
37
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:characters');
|
|
38
|
+
|
|
26
39
|
var removePopOvers = function removePopOvers() {
|
|
27
40
|
var prevPopOvers = document.querySelectorAll('#mouse-over-popover');
|
|
28
41
|
log('[characters:removePopOvers]');
|
|
@@ -30,6 +43,7 @@ var removePopOvers = function removePopOvers() {
|
|
|
30
43
|
return s.remove();
|
|
31
44
|
});
|
|
32
45
|
};
|
|
46
|
+
|
|
33
47
|
var removeDialogs = function removeDialogs() {
|
|
34
48
|
var prevDialogs = document.querySelectorAll('.insert-character-dialog');
|
|
35
49
|
log('[characters:removeDialogs]');
|
|
@@ -38,56 +52,70 @@ var removeDialogs = function removeDialogs() {
|
|
|
38
52
|
});
|
|
39
53
|
removePopOvers();
|
|
40
54
|
};
|
|
55
|
+
|
|
41
56
|
exports.removeDialogs = removeDialogs;
|
|
57
|
+
|
|
42
58
|
var insertDialog = function insertDialog(_ref) {
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
59
|
+
var editorDOM = _ref.editorDOM,
|
|
60
|
+
value = _ref.value,
|
|
61
|
+
callback = _ref.callback,
|
|
62
|
+
opts = _ref.opts;
|
|
46
63
|
var newEl = document.createElement('div');
|
|
47
64
|
log('[characters:insertDialog]');
|
|
48
65
|
removeDialogs();
|
|
49
66
|
newEl.className = 'insert-character-dialog';
|
|
50
67
|
var configToUse;
|
|
68
|
+
|
|
51
69
|
switch (true) {
|
|
52
70
|
case opts.language === 'spanish':
|
|
53
71
|
configToUse = _utils2.spanishConfig;
|
|
54
72
|
break;
|
|
73
|
+
|
|
55
74
|
case opts.language === 'special':
|
|
56
75
|
configToUse = _utils2.specialConfig;
|
|
57
76
|
break;
|
|
77
|
+
|
|
58
78
|
default:
|
|
59
79
|
configToUse = opts;
|
|
60
80
|
}
|
|
81
|
+
|
|
61
82
|
if (!configToUse.characters) {
|
|
62
83
|
(0, _utils.insertSnackBar)('No characters provided or language not recognized');
|
|
63
84
|
return;
|
|
64
85
|
}
|
|
86
|
+
|
|
65
87
|
var layoutForCharacters = configToUse.characters.reduce(function (obj, arr) {
|
|
66
88
|
if (arr.length >= obj.columns) {
|
|
67
89
|
obj.columns = arr.length;
|
|
68
90
|
}
|
|
91
|
+
|
|
69
92
|
return obj;
|
|
70
93
|
}, {
|
|
71
94
|
rows: configToUse.characters.length,
|
|
72
95
|
columns: 0
|
|
73
96
|
});
|
|
74
97
|
var popoverEl;
|
|
98
|
+
|
|
75
99
|
var closePopOver = function closePopOver() {
|
|
76
100
|
if (popoverEl) {
|
|
77
101
|
popoverEl.remove();
|
|
78
102
|
}
|
|
103
|
+
|
|
79
104
|
removePopOvers();
|
|
80
105
|
};
|
|
106
|
+
|
|
81
107
|
var renderPopOver = function renderPopOver(event, el) {
|
|
82
108
|
if (!event) {
|
|
83
109
|
return;
|
|
84
110
|
}
|
|
111
|
+
|
|
85
112
|
var infoStyle = {
|
|
86
113
|
fontSize: '20px',
|
|
87
114
|
lineHeight: '20px'
|
|
88
115
|
};
|
|
89
116
|
closePopOver();
|
|
90
117
|
popoverEl = document.createElement('div');
|
|
118
|
+
|
|
91
119
|
_reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_customPopper["default"], {
|
|
92
120
|
onClose: closePopOver,
|
|
93
121
|
anchorEl: event.currentTarget
|
|
@@ -96,17 +124,20 @@ var insertDialog = function insertDialog(_ref) {
|
|
|
96
124
|
}, el.description), /*#__PURE__*/_react["default"].createElement("div", {
|
|
97
125
|
style: infoStyle
|
|
98
126
|
}, el.unicode)), popoverEl);
|
|
127
|
+
|
|
99
128
|
document.body.appendChild(newEl);
|
|
100
129
|
};
|
|
130
|
+
|
|
101
131
|
var firstCallMade = false;
|
|
132
|
+
|
|
102
133
|
var listener = function listener(e) {
|
|
103
134
|
// this will be triggered right after setting it because
|
|
104
135
|
// this toolbar is added on the mousedown event
|
|
105
136
|
// so right after mouseup, the click will be triggered
|
|
106
137
|
if (firstCallMade) {
|
|
107
138
|
var focusIsInModals = newEl.contains(e.target) || popoverEl && popoverEl.contains(e.target);
|
|
108
|
-
var editorDOM = _slateReact.ReactEditor.toDOMNode(editor, editor);
|
|
109
139
|
var focusIsInEditor = editorDOM.contains(e.target);
|
|
140
|
+
|
|
110
141
|
if (!(focusIsInModals || focusIsInEditor)) {
|
|
111
142
|
handleClose();
|
|
112
143
|
}
|
|
@@ -114,17 +145,20 @@ var insertDialog = function insertDialog(_ref) {
|
|
|
114
145
|
firstCallMade = true;
|
|
115
146
|
}
|
|
116
147
|
};
|
|
148
|
+
|
|
117
149
|
var handleClose = function handleClose() {
|
|
118
150
|
callback(undefined, true);
|
|
119
151
|
newEl.remove();
|
|
120
152
|
closePopOver();
|
|
121
153
|
document.body.removeEventListener('click', listener);
|
|
122
154
|
};
|
|
155
|
+
|
|
123
156
|
var handleChange = function handleChange(val) {
|
|
124
157
|
if (typeof val === 'string') {
|
|
125
158
|
callback(val, true);
|
|
126
159
|
}
|
|
127
160
|
};
|
|
161
|
+
|
|
128
162
|
var el = /*#__PURE__*/_react["default"].createElement(_mathToolbar.PureToolbar, {
|
|
129
163
|
autoFocus: true,
|
|
130
164
|
noDecimal: true,
|
|
@@ -160,21 +194,21 @@ var insertDialog = function insertDialog(_ref) {
|
|
|
160
194
|
onChange: handleChange,
|
|
161
195
|
onDone: handleClose
|
|
162
196
|
});
|
|
197
|
+
|
|
163
198
|
_reactDom["default"].render(el, newEl, function () {
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
nodeAtSelection = _Editor$node2[0];
|
|
167
|
-
var cursorItem = _slateReact.ReactEditor.toDOMNode(editor, nodeAtSelection);
|
|
199
|
+
var cursorItem = document.querySelector("[data-key=\"".concat(value.anchorKey, "\"]"));
|
|
200
|
+
|
|
168
201
|
if (cursorItem) {
|
|
169
202
|
var bodyRect = document.body.getBoundingClientRect();
|
|
170
203
|
var boundRect = cursorItem.getBoundingClientRect();
|
|
171
|
-
document.body.appendChild(newEl);
|
|
204
|
+
document.body.appendChild(newEl); // when height of toolbar exceeds screen - can happen in scrollable contexts
|
|
172
205
|
|
|
173
|
-
// when height of toolbar exceeds screen - can happen in scrollable contexts
|
|
174
206
|
var additionalTopOffset = 0;
|
|
207
|
+
|
|
175
208
|
if (boundRect.y < newEl.offsetHeight) {
|
|
176
209
|
additionalTopOffset = newEl.offsetHeight - boundRect.y + 10;
|
|
177
210
|
}
|
|
211
|
+
|
|
178
212
|
newEl.style.maxWidth = '500px';
|
|
179
213
|
newEl.style.position = 'absolute';
|
|
180
214
|
newEl.style.top = "".concat(boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10 + additionalTopOffset, "px");
|
|
@@ -188,15 +222,18 @@ var insertDialog = function insertDialog(_ref) {
|
|
|
188
222
|
var rightAlignedWidth = newEl.offsetWidth;
|
|
189
223
|
newEl.style.left = 'unset';
|
|
190
224
|
newEl.style.right = 'unset';
|
|
225
|
+
|
|
191
226
|
if (leftAlignedWidth >= rightAlignedWidth) {
|
|
192
227
|
newEl.style.left = leftValue;
|
|
193
228
|
} else {
|
|
194
229
|
newEl.style.right = rightValue;
|
|
195
230
|
}
|
|
231
|
+
|
|
196
232
|
document.body.addEventListener('click', listener);
|
|
197
233
|
}
|
|
198
234
|
});
|
|
199
235
|
};
|
|
236
|
+
|
|
200
237
|
var CharacterIcon = function CharacterIcon(_ref2) {
|
|
201
238
|
var letter = _ref2.letter;
|
|
202
239
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -206,9 +243,11 @@ var CharacterIcon = function CharacterIcon(_ref2) {
|
|
|
206
243
|
}
|
|
207
244
|
}, letter);
|
|
208
245
|
};
|
|
246
|
+
|
|
209
247
|
CharacterIcon.propTypes = {
|
|
210
248
|
letter: _propTypes["default"].string
|
|
211
249
|
};
|
|
250
|
+
|
|
212
251
|
function CharactersPlugin(opts) {
|
|
213
252
|
removeDialogs();
|
|
214
253
|
return {
|
|
@@ -217,19 +256,32 @@ function CharactersPlugin(opts) {
|
|
|
217
256
|
icon: /*#__PURE__*/_react["default"].createElement(CharacterIcon, {
|
|
218
257
|
letter: opts.characterIcon || _utils2.characterIcons[opts.language] || 'ñ'
|
|
219
258
|
}),
|
|
220
|
-
onClick: function onClick(
|
|
259
|
+
onClick: function onClick(value, onChange, getFocusedValue) {
|
|
260
|
+
var editorDOM = document.querySelector("[data-key=\"".concat(value.document.key, "\"]"));
|
|
261
|
+
var valueToUse = value;
|
|
262
|
+
|
|
221
263
|
var callback = function callback(_char, focus) {
|
|
264
|
+
valueToUse = getFocusedValue();
|
|
265
|
+
|
|
222
266
|
if (_char) {
|
|
223
|
-
|
|
224
|
-
|
|
267
|
+
var change = valueToUse.change().insertTextByKey(valueToUse.anchorKey, valueToUse.anchorOffset, _char);
|
|
268
|
+
valueToUse = change.value;
|
|
269
|
+
log('[characters:insert]: ', value);
|
|
270
|
+
onChange(change);
|
|
225
271
|
}
|
|
272
|
+
|
|
226
273
|
log('[characters:click]');
|
|
274
|
+
|
|
227
275
|
if (focus) {
|
|
228
|
-
|
|
276
|
+
if (editorDOM) {
|
|
277
|
+
editorDOM.focus();
|
|
278
|
+
}
|
|
229
279
|
}
|
|
230
280
|
};
|
|
281
|
+
|
|
231
282
|
insertDialog({
|
|
232
|
-
|
|
283
|
+
editorDOM: editorDOM,
|
|
284
|
+
value: valueToUse,
|
|
233
285
|
callback: callback,
|
|
234
286
|
opts: opts
|
|
235
287
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_slateReact","_slate","_reactDom","_propTypes","_debug","_get","_mathToolbar","_customPopper","_utils","_utils2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","removePopOvers","prevPopOvers","document","querySelectorAll","s","remove","removeDialogs","prevDialogs","exports","insertDialog","_ref","editor","callback","opts","newEl","createElement","className","configToUse","language","spanishConfig","specialConfig","characters","insertSnackBar","layoutForCharacters","reduce","obj","arr","columns","rows","popoverEl","closePopOver","renderPopOver","event","el","infoStyle","fontSize","lineHeight","ReactDOM","render","onClose","anchorEl","currentTarget","label","style","description","unicode","body","appendChild","firstCallMade","listener","e","focusIsInModals","contains","editorDOM","ReactEditor","toDOMNode","focusIsInEditor","handleClose","undefined","removeEventListener","handleChange","val","PureToolbar","autoFocus","noDecimal","hideInput","noLatexHandling","hideDoneButtonBackground","layoutForKeyPad","additionalKeys","n","concat","_toConsumableArray2","map","k","name","get","write","category","extraClass","extraProps","border","hasPreview","actions","onMouseEnter","ev","onMouseLeave","keypadMode","onChange","onDone","_Editor$node","Editor","node","selection","_Editor$node2","_slicedToArray2","nodeAtSelection","cursorItem","bodyRect","getBoundingClientRect","boundRect","additionalTopOffset","y","offsetHeight","maxWidth","position","top","Math","abs","zIndex","leftValue","left","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CharacterIcon","_ref2","letter","propTypes","PropTypes","string","CharactersPlugin","toolbar","icon","characterIcon","characterIcons","onClick","char","focus","insertText","pluginStyles","parentNode","p"],"sources":["../../../src/plugins/characters/index.jsx"],"sourcesContent":["import React from 'react';\nimport { ReactEditor } from 'slate-react';\nimport { Editor } from 'slate';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport get from 'lodash/get';\n\nimport { PureToolbar } from '@pie-lib/math-toolbar';\n\nimport CustomPopper from './custom-popper';\nimport { insertSnackBar } from '../respArea/utils';\nimport { characterIcons, spanishConfig, specialConfig } from './utils';\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nconst removePopOvers = () => {\n const prevPopOvers = document.querySelectorAll('#mouse-over-popover');\n\n log('[characters:removePopOvers]');\n prevPopOvers.forEach((s) => s.remove());\n};\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-character-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach((s) => s.remove());\n removePopOvers();\n};\n\nconst insertDialog = ({ editor, callback, opts }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-character-dialog';\n\n let configToUse;\n\n switch (true) {\n case opts.language === 'spanish':\n configToUse = spanishConfig;\n break;\n case opts.language === 'special':\n configToUse = specialConfig;\n break;\n default:\n configToUse = opts;\n }\n\n if (!configToUse.characters) {\n insertSnackBar('No characters provided or language not recognized');\n return;\n }\n\n const layoutForCharacters = configToUse.characters.reduce(\n (obj, arr) => {\n if (arr.length >= obj.columns) {\n obj.columns = arr.length;\n }\n\n return obj;\n },\n { rows: configToUse.characters.length, columns: 0 },\n );\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n\n removePopOvers();\n };\n\n const renderPopOver = (event, el) => {\n if (!event) {\n return;\n }\n\n const infoStyle = { fontSize: '20px', lineHeight: '20px' };\n\n closePopOver();\n\n popoverEl = document.createElement('div');\n ReactDOM.render(\n <CustomPopper onClose={closePopOver} anchorEl={event.currentTarget}>\n <div>{el.label}</div>\n\n <div style={infoStyle}>{el.description}</div>\n\n <div style={infoStyle}>{el.unicode}</div>\n </CustomPopper>,\n popoverEl,\n );\n\n document.body.appendChild(newEl);\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals =\n newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const editorDOM = ReactEditor.toDOMNode(editor, editor);\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (val) => {\n if (typeof val === 'string') {\n callback(val, true);\n }\n };\n\n const el = (\n <PureToolbar\n autoFocus\n noDecimal\n hideInput\n noLatexHandling\n hideDoneButtonBackground\n layoutForKeyPad={layoutForCharacters}\n additionalKeys={configToUse.characters.reduce((arr, n) => {\n arr = [\n ...arr,\n ...n.map((k) => ({\n name: get(k, 'name') || k,\n write: get(k, 'write') || k,\n label: get(k, 'label') || k,\n category: 'character',\n extraClass: 'character',\n extraProps: {\n ...(k.extraProps || {}),\n style: {\n ...(k.extraProps || {}).style,\n border: '1px solid #000',\n },\n },\n ...(configToUse.hasPreview\n ? {\n actions: { onMouseEnter: (ev) => renderPopOver(ev, k), onMouseLeave: closePopOver },\n }\n : {}),\n })),\n ];\n\n return arr;\n }, [])}\n keypadMode=\"language\"\n onChange={handleChange}\n onDone={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl, () => {\n const [nodeAtSelection] = Editor.node(editor, editor.selection);\n const cursorItem = ReactEditor.toDOMNode(editor, nodeAtSelection);\n\n if (cursorItem) {\n const bodyRect = document.body.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n document.body.appendChild(newEl);\n\n // when height of toolbar exceeds screen - can happen in scrollable contexts\n let additionalTopOffset = 0;\n if (boundRect.y < newEl.offsetHeight) {\n additionalTopOffset = newEl.offsetHeight - boundRect.y + 10;\n }\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = `${boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10 + additionalTopOffset}px`;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorItem.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst CharacterIcon = ({ letter }) => (\n <div\n style={{\n fontSize: '25px',\n lineHeight: '15px',\n }}\n >\n {letter}\n </div>\n);\n\nCharacterIcon.propTypes = {\n letter: PropTypes.string,\n};\n\nexport default function CharactersPlugin(opts) {\n removeDialogs();\n return {\n name: 'characters',\n toolbar: {\n icon: <CharacterIcon letter={opts.characterIcon || characterIcons[opts.language] || 'ñ'} />,\n onClick: editor => {\n const callback = (char, focus) => {\n if (char) {\n log('[characters:insert]: ', char);\n editor.insertText(char);\n }\n\n log('[characters:click]');\n\n if (focus) {\n ReactEditor.focus(editor);\n }\n };\n\n insertDialog({ editor, callback, opts });\n },\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial',\n };\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/plugins/characters/index.jsx"],"names":["log","removePopOvers","prevPopOvers","document","querySelectorAll","forEach","s","remove","removeDialogs","prevDialogs","insertDialog","editorDOM","value","callback","opts","newEl","createElement","className","configToUse","language","spanishConfig","specialConfig","characters","layoutForCharacters","reduce","obj","arr","length","columns","rows","popoverEl","closePopOver","renderPopOver","event","el","infoStyle","fontSize","lineHeight","ReactDOM","render","currentTarget","label","description","unicode","body","appendChild","firstCallMade","listener","e","focusIsInModals","contains","target","focusIsInEditor","handleClose","undefined","removeEventListener","handleChange","val","n","map","k","name","write","category","extraClass","extraProps","style","border","hasPreview","actions","onMouseEnter","ev","onMouseLeave","cursorItem","querySelector","anchorKey","bodyRect","getBoundingClientRect","boundRect","additionalTopOffset","y","offsetHeight","maxWidth","position","top","Math","abs","zIndex","leftValue","left","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CharacterIcon","letter","propTypes","PropTypes","string","CharactersPlugin","toolbar","icon","characterIcon","characterIcons","onClick","onChange","getFocusedValue","key","valueToUse","char","focus","change","insertTextByKey","anchorOffset","pluginStyles","node","parentNode","p"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport get from 'lodash/get';\n\nimport { PureToolbar } from '@pie-lib/math-toolbar';\n\nimport CustomPopper from './custom-popper';\nimport { insertSnackBar } from '../respArea/utils';\nimport { characterIcons, spanishConfig, specialConfig } from './utils';\nimport PropTypes from 'prop-types';\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nconst removePopOvers = () => {\n const prevPopOvers = document.querySelectorAll('#mouse-over-popover');\n\n log('[characters:removePopOvers]');\n prevPopOvers.forEach((s) => s.remove());\n};\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-character-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach((s) => s.remove());\n removePopOvers();\n};\n\nconst insertDialog = ({ editorDOM, value, callback, opts }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-character-dialog';\n\n let configToUse;\n\n switch (true) {\n case opts.language === 'spanish':\n configToUse = spanishConfig;\n break;\n case opts.language === 'special':\n configToUse = specialConfig;\n break;\n default:\n configToUse = opts;\n }\n\n if (!configToUse.characters) {\n insertSnackBar('No characters provided or language not recognized');\n return;\n }\n\n const layoutForCharacters = configToUse.characters.reduce(\n (obj, arr) => {\n if (arr.length >= obj.columns) {\n obj.columns = arr.length;\n }\n\n return obj;\n },\n { rows: configToUse.characters.length, columns: 0 },\n );\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n\n removePopOvers();\n };\n\n const renderPopOver = (event, el) => {\n if (!event) {\n return;\n }\n\n const infoStyle = { fontSize: '20px', lineHeight: '20px' };\n\n closePopOver();\n\n popoverEl = document.createElement('div');\n ReactDOM.render(\n <CustomPopper onClose={closePopOver} anchorEl={event.currentTarget}>\n <div>{el.label}</div>\n\n <div style={infoStyle}>{el.description}</div>\n\n <div style={infoStyle}>{el.unicode}</div>\n </CustomPopper>,\n popoverEl,\n );\n\n document.body.appendChild(newEl);\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals = newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (val) => {\n if (typeof val === 'string') {\n callback(val, true);\n }\n };\n\n const el = (\n <PureToolbar\n autoFocus\n noDecimal\n hideInput\n noLatexHandling\n hideDoneButtonBackground\n layoutForKeyPad={layoutForCharacters}\n additionalKeys={configToUse.characters.reduce((arr, n) => {\n arr = [\n ...arr,\n ...n.map((k) => ({\n name: get(k, 'name') || k,\n write: get(k, 'write') || k,\n label: get(k, 'label') || k,\n category: 'character',\n extraClass: 'character',\n extraProps: {\n ...(k.extraProps || {}),\n style: {\n ...(k.extraProps || {}).style,\n border: '1px solid #000',\n },\n },\n ...(configToUse.hasPreview\n ? {\n actions: { onMouseEnter: (ev) => renderPopOver(ev, k), onMouseLeave: closePopOver },\n }\n : {}),\n })),\n ];\n\n return arr;\n }, [])}\n keypadMode=\"language\"\n onChange={handleChange}\n onDone={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = document.querySelector(`[data-key=\"${value.anchorKey}\"]`);\n\n if (cursorItem) {\n const bodyRect = document.body.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n document.body.appendChild(newEl);\n\n // when height of toolbar exceeds screen - can happen in scrollable contexts\n let additionalTopOffset = 0;\n if (boundRect.y < newEl.offsetHeight) {\n additionalTopOffset = newEl.offsetHeight - boundRect.y + 10;\n }\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = `${boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10 + additionalTopOffset}px`;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorItem.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst CharacterIcon = ({ letter }) => (\n <div\n style={{\n fontSize: '25px',\n lineHeight: '15px',\n }}\n >\n {letter}\n </div>\n);\n\nCharacterIcon.propTypes = {\n letter: PropTypes.string,\n};\n\nexport default function CharactersPlugin(opts) {\n removeDialogs();\n return {\n name: 'characters',\n toolbar: {\n icon: <CharacterIcon letter={opts.characterIcon || characterIcons[opts.language] || 'ñ'} />,\n onClick: (value, onChange, getFocusedValue) => {\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n const callback = (char, focus) => {\n valueToUse = getFocusedValue();\n\n if (char) {\n const change = valueToUse.change().insertTextByKey(valueToUse.anchorKey, valueToUse.anchorOffset, char);\n\n valueToUse = change.value;\n log('[characters:insert]: ', value);\n onChange(change);\n }\n\n log('[characters:click]');\n\n if (focus) {\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n };\n\n insertDialog({ editorDOM, value: valueToUse, callback, opts });\n },\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial',\n };\n }\n },\n };\n}\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["spanishConfig","characters","exports","specialConfig","hasPreview","unicode","description","write","label","extraProps","style","gridRow","String","fromCodePoint","characterIcons","spanish","special"],"sources":["../../../src/plugins/characters/utils.js"],"sourcesContent":["export const spanishConfig = {\n characters: [\n ['á', 'é', 'í', 'ó', 'ú'],\n ['Á', 'É', 'Í', 'Ó', 'Ú'],\n ['—', '«', '»', 'ñ', 'ü'],\n ['-', '¿', '¡', 'Ñ', 'Ü'],\n ],\n};\n\nexport const specialConfig = {\n hasPreview: true,\n characters: [\n [\n {\n unicode: 'U+00A2',\n description: 'CENT SIGN',\n write: '¢',\n label: '¢',\n },\n {\n unicode: 'U+00BF',\n description: 'INVERTED QUESTION MARK',\n write: '¿',\n label: '¿',\n },\n {\n unicode: 'U+00B4',\n description: 'ACUTE ACCENT',\n write: '´',\n label: '´',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E1',\n description: 'LATIN SMALL LETTER A WITH ACUTE',\n write: 'á',\n label: 'á',\n },\n {\n unicode: 'U+00E9',\n description: 'LATIN SMALL LETTER E WITH ACUTE',\n write: 'é',\n label: 'é',\n },\n {\n unicode: 'U+00ED',\n description: 'LATIN SMALL LETTER I WITH ACUTE',\n write: 'í',\n label: 'í',\n },\n {\n unicode: 'U+00F3',\n description: 'LATIN SMALL LETTER O WITH ACUTE',\n write: 'ó',\n label: 'ó',\n },\n {\n unicode: 'U+00FA',\n description: 'LATIN SMALL LETTER U WITH ACUTE',\n write: 'ú',\n label: 'ú',\n },\n {\n unicode: 'U+00F1',\n description: 'LATIN SMALL LETTER N WITH TILDE',\n write: 'ñ',\n label: 'ñ',\n },\n ],\n [\n {\n unicode: 'U+20AC',\n description: 'EURO SIGN',\n write: '€',\n label: '€',\n },\n {\n unicode: 'U+00A1',\n description: 'INVERTED EXCLAMATION MARK',\n write: '¡',\n label: '¡',\n },\n {\n unicode: 'U+00C1',\n description: 'LATIN CAPITAL LETTER A WITH ACUTE',\n write: 'Á',\n label: 'Á',\n },\n {\n unicode: 'U+00C9',\n description: 'LATIN CAPITAL LETTER E WITH ACUTE',\n write: 'É',\n label: 'É',\n },\n {\n unicode: 'U+00CD',\n description: 'LATIN CAPITAL LETTER I WITH ACUTE',\n write: 'Í',\n label: 'Í',\n },\n {\n unicode: 'U+00D3',\n description: 'LATIN CAPITAL LETTER O WITH ACUTE',\n write: 'Ó',\n label: 'Ó',\n },\n {\n unicode: 'U+00DA',\n description: 'LATIN CAPITAL LETTER U WITH ACUTE',\n write: 'Ú',\n label: 'Ú',\n },\n {\n unicode: 'U+00D1',\n description: 'LATIN CAPITAL LETTER N WITH TILDE',\n write: 'Ñ',\n label: 'Ñ',\n },\n ],\n [\n {\n unicode: 'U+00A3',\n description: 'POUND SIGN',\n write: '£',\n label: '£',\n },\n {\n unicode: 'U+00AB',\n description: 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '«',\n label: '«',\n },\n {\n unicode: 'U+005E',\n description: 'CIRCUMFLEX ACCENT',\n write: '^',\n label: '^',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E2',\n description: 'LATIN SMALL LETTER A WITH CIRCUMFLEX',\n write: 'â',\n label: 'â',\n },\n {\n unicode: 'U+00EA',\n description: 'LATIN SMALL LETTER E WITH CIRCUMFLEX',\n write: 'ê',\n label: 'ê',\n },\n {\n unicode: 'U+00EE',\n description: 'LATIN SMALL LETTER I WITH CIRCUMFLEX',\n write: 'î',\n label: 'î',\n },\n {\n unicode: 'U+00F4',\n description: 'LATIN SMALL LETTER O WITH CIRCUMFLEX',\n write: 'ô',\n label: 'ô',\n },\n {\n unicode: 'U+00FB',\n description: 'LATIN SMALL LETTER U WITH CIRCUMFLEX',\n write: 'û',\n label: 'û',\n },\n {\n unicode: 'U+00E7',\n description: 'LATIN SMALL LETTER C WITH CEDILLA',\n write: 'ç',\n label: 'ç',\n },\n ],\n [\n {\n unicode: 'U+00A5',\n description: 'YEN SIGN',\n write: '¥',\n label: '¥',\n },\n {\n unicode: 'U+00BB',\n description: 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '»',\n label: '»',\n },\n {\n unicode: 'U+00C2',\n description: 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX',\n write: 'Â',\n label: 'Â',\n },\n {\n unicode: 'U+00CA',\n description: 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX',\n write: 'Ê',\n label: 'Ê',\n },\n {\n unicode: 'U+00CE',\n description: 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX',\n write: 'Î',\n label: 'Î',\n },\n {\n unicode: 'U+00D4',\n description: 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX',\n write: 'Ô',\n label: 'Ô',\n },\n {\n unicode: 'U+00DB',\n description: 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX',\n write: 'Û',\n label: 'Û',\n },\n {\n unicode: 'U+00C7',\n description: 'LATIN CAPITAL LETTER C WITH CEDILLA',\n write: 'Ç',\n label: 'Ç',\n },\n ],\n [\n {\n unicode: 'U+00A0',\n description: 'NO-BREAK SPACE',\n write: String.fromCodePoint('0x00A0'),\n label: ' ',\n },\n {\n unicode: 'U+00A7',\n description: 'SECTION SIGN',\n write: '§',\n label: '§',\n },\n {\n unicode: 'U+00A8',\n description: 'DIAERESIS',\n write: '¨',\n label: '¨',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E4',\n description: 'LATIN SMALL LETTER A WITH DIAERESIS',\n write: 'ä',\n label: 'ä',\n },\n {\n unicode: 'U+00EB',\n description: 'LATIN SMALL LETTER E WITH DIAERESIS',\n write: 'ë',\n label: 'ë',\n },\n {\n unicode: 'U+00EF',\n description: 'LATIN SMALL LETTER I WITH DIAERESIS',\n write: 'ï',\n label: 'ï',\n },\n {\n unicode: 'U+00F6',\n description: 'LATIN SMALL LETTER O WITH DIAERESIS',\n write: 'ö',\n label: 'ö',\n },\n {\n unicode: 'U+00FC',\n description: 'LATIN SMALL LETTER U WITH DIAERESIS',\n write: 'ü',\n label: 'ü',\n },\n {\n unicode: 'U+00DF',\n description: 'LATIN SMALL LETTER SHARP S',\n write: 'ß',\n label: 'ß',\n },\n ],\n [\n {\n unicode: 'U+2009',\n description: 'THIN SPACE',\n write: String.fromCodePoint('0x2009'),\n label: ' ',\n },\n {\n unicode: 'U+2026',\n description: 'HORIZONTAL ELLIPSIS',\n write: '…',\n label: '…',\n },\n {\n unicode: 'U+00C4',\n description: 'LATIN CAPITAL LETTER A WITH DIAERESIS',\n write: 'Ä',\n label: 'Ä',\n },\n {\n unicode: 'U+00CB',\n description: 'LATIN CAPITAL LETTER E WITH DIAERESIS',\n write: 'Ë',\n label: 'Ë',\n },\n {\n unicode: 'U+00CF',\n description: 'LATIN CAPITAL LETTER I WITH DIAERESIS',\n write: 'Ï',\n label: 'Ï',\n },\n {\n unicode: 'U+00D6',\n description: 'LATIN CAPITAL LETTER O WITH DIAERESIS',\n write: 'Ö',\n label: 'Ö',\n },\n {\n unicode: 'U+00DC',\n description: 'LATIN CAPITAL LETTER U WITH DIAERESIS',\n write: 'Ü',\n label: 'Ü',\n },\n {\n unicode: 'U+2212',\n description: 'MINUS SIGN',\n write: '−',\n label: '−',\n },\n ],\n [\n {\n unicode: 'U+200A',\n description: 'HAIR SPACE',\n write: String.fromCodePoint('0x200A'),\n label: ' ',\n },\n {\n unicode: 'U+2022',\n description: 'BULLET',\n write: '•',\n label: '•',\n },\n {\n unicode: 'U+0060',\n description: 'GRAVE ACCENT',\n write: '`',\n label: '`',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E0',\n description: 'LATIN SMALL LETTER A WITH GRAVE',\n write: 'à',\n label: 'à',\n },\n {\n unicode: 'U+00E8',\n description: 'LATIN SMALL LETTER E WITH GRAVE',\n write: 'è',\n label: 'è',\n },\n {\n unicode: 'U+00EC',\n description: 'LATIN SMALL LETTER I WITH GRAVE',\n write: 'ì',\n label: 'ì',\n },\n {\n unicode: 'U+00F2',\n description: 'LATIN SMALL LETTER O WITH GRAVE',\n write: 'ò',\n label: 'ò',\n },\n {\n unicode: 'U+00F9',\n description: 'LATIN SMALL LETTER U WITH GRAVE',\n write: 'ù',\n label: 'ù',\n },\n {\n unicode: 'U+2013',\n description: 'EN DASH',\n write: '–',\n label: '–',\n },\n ],\n [\n {\n unicode: 'U+0009',\n description: 'TAB',\n write: String.fromCodePoint('0x0009'),\n label: 'TAB',\n },\n {\n unicode: 'U+25E6',\n description: 'WHITE BULLET',\n write: '◦',\n label: '◦',\n },\n {\n unicode: 'U+00C0',\n description: 'LATIN CAPITAL LETTER A WITH GRAVE',\n write: 'À',\n label: 'À',\n },\n {\n unicode: 'U+00C8',\n description: 'LATIN CAPITAL LETTER E WITH GRAVE',\n write: 'È',\n label: 'È',\n },\n {\n unicode: 'U+00CC',\n description: 'LATIN CAPITAL LETTER I WITH GRAVE',\n write: 'Ì',\n label: 'Ì',\n },\n {\n unicode: 'U+00D2',\n description: 'LATIN CAPITAL LETTER O WITH GRAVE',\n write: 'Ò',\n label: 'Ò',\n },\n {\n unicode: 'U+00D9',\n description: 'LATIN CAPITAL LETTER U WITH GRAVE',\n write: 'Ù',\n label: 'Ù',\n },\n {\n unicode: 'U+2014',\n description: 'EM DASH',\n write: '—',\n label: '—',\n },\n ],\n ],\n};\n\nexport const characterIcons = {\n spanish: 'ñ',\n special: '€',\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/plugins/characters/utils.js"],"names":["spanishConfig","characters","specialConfig","hasPreview","unicode","description","write","label","extraProps","style","gridRow","String","fromCodePoint","characterIcons","spanish","special"],"mappings":"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","sourcesContent":["export const spanishConfig = {\n characters: [\n ['á', 'é', 'í', 'ó', 'ú'],\n ['Á', 'É', 'Í', 'Ó', 'Ú'],\n ['—', '«', '»', 'ñ', 'ü'],\n ['-', '¿', '¡', 'Ñ', 'Ü'],\n ],\n};\n\nexport const specialConfig = {\n hasPreview: true,\n characters: [\n [\n {\n unicode: 'U+00A2',\n description: 'CENT SIGN',\n write: '¢',\n label: '¢',\n },\n {\n unicode: 'U+00BF',\n description: 'INVERTED QUESTION MARK',\n write: '¿',\n label: '¿',\n },\n {\n unicode: 'U+00B4',\n description: 'ACUTE ACCENT',\n write: '´',\n label: '´',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E1',\n description: 'LATIN SMALL LETTER A WITH ACUTE',\n write: 'á',\n label: 'á',\n },\n {\n unicode: 'U+00E9',\n description: 'LATIN SMALL LETTER E WITH ACUTE',\n write: 'é',\n label: 'é',\n },\n {\n unicode: 'U+00ED',\n description: 'LATIN SMALL LETTER I WITH ACUTE',\n write: 'í',\n label: 'í',\n },\n {\n unicode: 'U+00F3',\n description: 'LATIN SMALL LETTER O WITH ACUTE',\n write: 'ó',\n label: 'ó',\n },\n {\n unicode: 'U+00FA',\n description: 'LATIN SMALL LETTER U WITH ACUTE',\n write: 'ú',\n label: 'ú',\n },\n {\n unicode: 'U+00F1',\n description: 'LATIN SMALL LETTER N WITH TILDE',\n write: 'ñ',\n label: 'ñ',\n },\n ],\n [\n {\n unicode: 'U+20AC',\n description: 'EURO SIGN',\n write: '€',\n label: '€',\n },\n {\n unicode: 'U+00A1',\n description: 'INVERTED EXCLAMATION MARK',\n write: '¡',\n label: '¡',\n },\n {\n unicode: 'U+00C1',\n description: 'LATIN CAPITAL LETTER A WITH ACUTE',\n write: 'Á',\n label: 'Á',\n },\n {\n unicode: 'U+00C9',\n description: 'LATIN CAPITAL LETTER E WITH ACUTE',\n write: 'É',\n label: 'É',\n },\n {\n unicode: 'U+00CD',\n description: 'LATIN CAPITAL LETTER I WITH ACUTE',\n write: 'Í',\n label: 'Í',\n },\n {\n unicode: 'U+00D3',\n description: 'LATIN CAPITAL LETTER O WITH ACUTE',\n write: 'Ó',\n label: 'Ó',\n },\n {\n unicode: 'U+00DA',\n description: 'LATIN CAPITAL LETTER U WITH ACUTE',\n write: 'Ú',\n label: 'Ú',\n },\n {\n unicode: 'U+00D1',\n description: 'LATIN CAPITAL LETTER N WITH TILDE',\n write: 'Ñ',\n label: 'Ñ',\n },\n ],\n [\n {\n unicode: 'U+00A3',\n description: 'POUND SIGN',\n write: '£',\n label: '£',\n },\n {\n unicode: 'U+00AB',\n description: 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '«',\n label: '«',\n },\n {\n unicode: 'U+005E',\n description: 'CIRCUMFLEX ACCENT',\n write: '^',\n label: '^',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E2',\n description: 'LATIN SMALL LETTER A WITH CIRCUMFLEX',\n write: 'â',\n label: 'â',\n },\n {\n unicode: 'U+00EA',\n description: 'LATIN SMALL LETTER E WITH CIRCUMFLEX',\n write: 'ê',\n label: 'ê',\n },\n {\n unicode: 'U+00EE',\n description: 'LATIN SMALL LETTER I WITH CIRCUMFLEX',\n write: 'î',\n label: 'î',\n },\n {\n unicode: 'U+00F4',\n description: 'LATIN SMALL LETTER O WITH CIRCUMFLEX',\n write: 'ô',\n label: 'ô',\n },\n {\n unicode: 'U+00FB',\n description: 'LATIN SMALL LETTER U WITH CIRCUMFLEX',\n write: 'û',\n label: 'û',\n },\n {\n unicode: 'U+00E7',\n description: 'LATIN SMALL LETTER C WITH CEDILLA',\n write: 'ç',\n label: 'ç',\n },\n ],\n [\n {\n unicode: 'U+00A5',\n description: 'YEN SIGN',\n write: '¥',\n label: '¥',\n },\n {\n unicode: 'U+00BB',\n description: 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '»',\n label: '»',\n },\n {\n unicode: 'U+00C2',\n description: 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX',\n write: 'Â',\n label: 'Â',\n },\n {\n unicode: 'U+00CA',\n description: 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX',\n write: 'Ê',\n label: 'Ê',\n },\n {\n unicode: 'U+00CE',\n description: 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX',\n write: 'Î',\n label: 'Î',\n },\n {\n unicode: 'U+00D4',\n description: 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX',\n write: 'Ô',\n label: 'Ô',\n },\n {\n unicode: 'U+00DB',\n description: 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX',\n write: 'Û',\n label: 'Û',\n },\n {\n unicode: 'U+00C7',\n description: 'LATIN CAPITAL LETTER C WITH CEDILLA',\n write: 'Ç',\n label: 'Ç',\n },\n ],\n [\n {\n unicode: 'U+00A0',\n description: 'NO-BREAK SPACE',\n write: String.fromCodePoint('0x00A0'),\n label: ' ',\n },\n {\n unicode: 'U+00A7',\n description: 'SECTION SIGN',\n write: '§',\n label: '§',\n },\n {\n unicode: 'U+00A8',\n description: 'DIAERESIS',\n write: '¨',\n label: '¨',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E4',\n description: 'LATIN SMALL LETTER A WITH DIAERESIS',\n write: 'ä',\n label: 'ä',\n },\n {\n unicode: 'U+00EB',\n description: 'LATIN SMALL LETTER E WITH DIAERESIS',\n write: 'ë',\n label: 'ë',\n },\n {\n unicode: 'U+00EF',\n description: 'LATIN SMALL LETTER I WITH DIAERESIS',\n write: 'ï',\n label: 'ï',\n },\n {\n unicode: 'U+00F6',\n description: 'LATIN SMALL LETTER O WITH DIAERESIS',\n write: 'ö',\n label: 'ö',\n },\n {\n unicode: 'U+00FC',\n description: 'LATIN SMALL LETTER U WITH DIAERESIS',\n write: 'ü',\n label: 'ü',\n },\n {\n unicode: 'U+00DF',\n description: 'LATIN SMALL LETTER SHARP S',\n write: 'ß',\n label: 'ß',\n },\n ],\n [\n {\n unicode: 'U+2009',\n description: 'THIN SPACE',\n write: String.fromCodePoint('0x2009'),\n label: ' ',\n },\n {\n unicode: 'U+2026',\n description: 'HORIZONTAL ELLIPSIS',\n write: '…',\n label: '…',\n },\n {\n unicode: 'U+00C4',\n description: 'LATIN CAPITAL LETTER A WITH DIAERESIS',\n write: 'Ä',\n label: 'Ä',\n },\n {\n unicode: 'U+00CB',\n description: 'LATIN CAPITAL LETTER E WITH DIAERESIS',\n write: 'Ë',\n label: 'Ë',\n },\n {\n unicode: 'U+00CF',\n description: 'LATIN CAPITAL LETTER I WITH DIAERESIS',\n write: 'Ï',\n label: 'Ï',\n },\n {\n unicode: 'U+00D6',\n description: 'LATIN CAPITAL LETTER O WITH DIAERESIS',\n write: 'Ö',\n label: 'Ö',\n },\n {\n unicode: 'U+00DC',\n description: 'LATIN CAPITAL LETTER U WITH DIAERESIS',\n write: 'Ü',\n label: 'Ü',\n },\n {\n unicode: 'U+2212',\n description: 'MINUS SIGN',\n write: '−',\n label: '−',\n },\n ],\n [\n {\n unicode: 'U+200A',\n description: 'HAIR SPACE',\n write: String.fromCodePoint('0x200A'),\n label: ' ',\n },\n {\n unicode: 'U+2022',\n description: 'BULLET',\n write: '•',\n label: '•',\n },\n {\n unicode: 'U+0060',\n description: 'GRAVE ACCENT',\n write: '`',\n label: '`',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E0',\n description: 'LATIN SMALL LETTER A WITH GRAVE',\n write: 'à',\n label: 'à',\n },\n {\n unicode: 'U+00E8',\n description: 'LATIN SMALL LETTER E WITH GRAVE',\n write: 'è',\n label: 'è',\n },\n {\n unicode: 'U+00EC',\n description: 'LATIN SMALL LETTER I WITH GRAVE',\n write: 'ì',\n label: 'ì',\n },\n {\n unicode: 'U+00F2',\n description: 'LATIN SMALL LETTER O WITH GRAVE',\n write: 'ò',\n label: 'ò',\n },\n {\n unicode: 'U+00F9',\n description: 'LATIN SMALL LETTER U WITH GRAVE',\n write: 'ù',\n label: 'ù',\n },\n {\n unicode: 'U+2013',\n description: 'EN DASH',\n write: '–',\n label: '–',\n },\n ],\n [\n {\n unicode: 'U+0009',\n description: 'TAB',\n write: String.fromCodePoint('0x0009'),\n label: 'TAB',\n },\n {\n unicode: 'U+25E6',\n description: 'WHITE BULLET',\n write: '◦',\n label: '◦',\n },\n {\n unicode: 'U+00C0',\n description: 'LATIN CAPITAL LETTER A WITH GRAVE',\n write: 'À',\n label: 'À',\n },\n {\n unicode: 'U+00C8',\n description: 'LATIN CAPITAL LETTER E WITH GRAVE',\n write: 'È',\n label: 'È',\n },\n {\n unicode: 'U+00CC',\n description: 'LATIN CAPITAL LETTER I WITH GRAVE',\n write: 'Ì',\n label: 'Ì',\n },\n {\n unicode: 'U+00D2',\n description: 'LATIN CAPITAL LETTER O WITH GRAVE',\n write: 'Ò',\n label: 'Ò',\n },\n {\n unicode: 'U+00D9',\n description: 'LATIN CAPITAL LETTER U WITH GRAVE',\n write: 'Ù',\n label: 'Ù',\n },\n {\n unicode: 'U+2014',\n description: 'EM DASH',\n write: '—',\n label: '—',\n },\n ],\n ],\n};\n\nexport const characterIcons = {\n spanish: 'ñ',\n special: '€',\n};\n"],"file":"utils.js"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _styles = require("@material-ui/core/styles");
|
|
13
|
+
|
|
14
|
+
var styles = function styles(theme) {
|
|
15
|
+
return {
|
|
16
|
+
icon: {
|
|
17
|
+
fontFamily: 'Cerebri Sans, Arial, sans-serif',
|
|
18
|
+
fontSize: theme.typography.fontSize,
|
|
19
|
+
fontWeight: 'bold',
|
|
20
|
+
lineHeight: '14px',
|
|
21
|
+
position: 'relative',
|
|
22
|
+
whiteSpace: 'nowrap'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var HtmlModeIcon = function HtmlModeIcon(_ref) {
|
|
28
|
+
var classes = _ref.classes,
|
|
29
|
+
isHtmlMode = _ref.isHtmlMode;
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
31
|
+
className: classes.icon
|
|
32
|
+
}, isHtmlMode ? 'Exit <HTML> mode' : '<HTML>');
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var _default = (0, _styles.withStyles)(styles)(HtmlModeIcon);
|
|
36
|
+
|
|
37
|
+
exports["default"] = _default;
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/plugins/html/icons/index.jsx"],"names":["styles","theme","icon","fontFamily","fontSize","typography","fontWeight","lineHeight","position","whiteSpace","HtmlModeIcon","classes","isHtmlMode"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,IAAI,EAAE;AACJC,MAAAA,UAAU,EAAE,iCADR;AAEJC,MAAAA,QAAQ,EAAEH,KAAK,CAACI,UAAN,CAAiBD,QAFvB;AAGJE,MAAAA,UAAU,EAAE,MAHR;AAIJC,MAAAA,UAAU,EAAE,MAJR;AAKJC,MAAAA,QAAQ,EAAE,UALN;AAMJC,MAAAA,UAAU,EAAE;AANR;AADmB,GAAZ;AAAA,CAAf;;AAWA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,UAAZ,QAAYA,UAAZ;AAAA,sBACnB;AAAK,IAAA,SAAS,EAAED,OAAO,CAACT;AAAxB,KAA+BU,UAAU,GAAG,kBAAH,GAAwB,QAAjE,CADmB;AAAA,CAArB;;eAIe,wBAAWZ,MAAX,EAAmBU,YAAnB,C","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = (theme) => ({\n icon: {\n fontFamily: 'Cerebri Sans, Arial, sans-serif',\n fontSize: theme.typography.fontSize,\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n whiteSpace: 'nowrap',\n },\n});\n\nconst HtmlModeIcon = ({ classes, isHtmlMode }) => (\n <div className={classes.icon}>{isHtmlMode ? 'Exit <HTML> mode' : '<HTML>'}</div>\n);\n\nexport default withStyles(styles)(HtmlModeIcon);\n"],"file":"index.js"}
|
|
@@ -0,0 +1,75 @@
|
|
|
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"] = HtmlPlugin;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _icons = _interopRequireDefault(require("./icons"));
|
|
13
|
+
|
|
14
|
+
var _serialization = require("./../../serialization");
|
|
15
|
+
|
|
16
|
+
var toggleToRichText = function toggleToRichText(value, onChange) {
|
|
17
|
+
var plainText = value.document.text;
|
|
18
|
+
var slateValue = (0, _serialization.htmlToValue)(plainText);
|
|
19
|
+
var change = value.change().selectAll()["delete"]().insertFragment(slateValue.document);
|
|
20
|
+
onChange(change);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
function HtmlPlugin(opts) {
|
|
24
|
+
var isHtmlMode = opts.isHtmlMode,
|
|
25
|
+
isEdited = opts.isEdited,
|
|
26
|
+
toggleHtmlMode = opts.toggleHtmlMode,
|
|
27
|
+
handleAlertDialog = opts.handleAlertDialog;
|
|
28
|
+
|
|
29
|
+
var handleHtmlModeOn = function handleHtmlModeOn(value, onChange) {
|
|
30
|
+
var dialogProps = {
|
|
31
|
+
title: 'Warning',
|
|
32
|
+
text: 'Returning to rich text mode may cause edits to be lost.',
|
|
33
|
+
onConfirm: function onConfirm() {
|
|
34
|
+
toggleToRichText(value, onChange);
|
|
35
|
+
handleAlertDialog(false);
|
|
36
|
+
},
|
|
37
|
+
onClose: function onClose() {
|
|
38
|
+
handleAlertDialog(false);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
handleAlertDialog(true, dialogProps);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
var handleHtmlModeOff = function handleHtmlModeOff(value, onChange) {
|
|
45
|
+
var change = value.change().selectAll()["delete"]().insertText((0, _serialization.valueToHtml)(value));
|
|
46
|
+
onChange(change);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
name: 'html',
|
|
51
|
+
toolbar: {
|
|
52
|
+
icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
53
|
+
isHtmlMode: isHtmlMode
|
|
54
|
+
}),
|
|
55
|
+
buttonStyles: {
|
|
56
|
+
margin: '0 20px 0 auto'
|
|
57
|
+
},
|
|
58
|
+
type: 'html',
|
|
59
|
+
onClick: function onClick(value, onChange) {
|
|
60
|
+
if (isHtmlMode) {
|
|
61
|
+
if (isEdited) {
|
|
62
|
+
handleHtmlModeOn(value, onChange);
|
|
63
|
+
} else {
|
|
64
|
+
toggleToRichText(value, onChange);
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
handleHtmlModeOff(value, onChange);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
toggleHtmlMode();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/plugins/html/index.jsx"],"names":["toggleToRichText","value","onChange","plainText","document","text","slateValue","change","selectAll","insertFragment","HtmlPlugin","opts","isHtmlMode","isEdited","toggleHtmlMode","handleAlertDialog","handleHtmlModeOn","dialogProps","title","onConfirm","onClose","handleHtmlModeOff","insertText","name","toolbar","icon","buttonStyles","margin","type","onClick"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,KAAD,EAAQC,QAAR,EAAqB;AAC5C,MAAMC,SAAS,GAAGF,KAAK,CAACG,QAAN,CAAeC,IAAjC;AACA,MAAMC,UAAU,GAAG,gCAAYH,SAAZ,CAAnB;AAEA,MAAMI,MAAM,GAAGN,KAAK,CACjBM,MADY,GAEZC,SAFY,eAIZC,cAJY,CAIGH,UAAU,CAACF,QAJd,CAAf;AAKAF,EAAAA,QAAQ,CAACK,MAAD,CAAR;AACD,CAVD;;AAYe,SAASG,UAAT,CAAoBC,IAApB,EAA0B;AACvC,MAAQC,UAAR,GAAoED,IAApE,CAAQC,UAAR;AAAA,MAAoBC,QAApB,GAAoEF,IAApE,CAAoBE,QAApB;AAAA,MAA8BC,cAA9B,GAAoEH,IAApE,CAA8BG,cAA9B;AAAA,MAA8CC,iBAA9C,GAAoEJ,IAApE,CAA8CI,iBAA9C;;AAEA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACf,KAAD,EAAQC,QAAR,EAAqB;AAC5C,QAAMe,WAAW,GAAG;AAClBC,MAAAA,KAAK,EAAE,SADW;AAElBb,MAAAA,IAAI,EAAE,yDAFY;AAGlBc,MAAAA,SAAS,EAAE,qBAAM;AACfnB,QAAAA,gBAAgB,CAACC,KAAD,EAAQC,QAAR,CAAhB;AACAa,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD,OANiB;AAOlBK,MAAAA,OAAO,EAAE,mBAAM;AACbL,QAAAA,iBAAiB,CAAC,KAAD,CAAjB;AACD;AATiB,KAApB;AAYAA,IAAAA,iBAAiB,CAAC,IAAD,EAAOE,WAAP,CAAjB;AACD,GAdD;;AAgBA,MAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACpB,KAAD,EAAQC,QAAR,EAAqB;AAC7C,QAAMK,MAAM,GAAGN,KAAK,CACjBM,MADY,GAEZC,SAFY,eAIZc,UAJY,CAID,gCAAYrB,KAAZ,CAJC,CAAf;AAKAC,IAAAA,QAAQ,CAACK,MAAD,CAAR;AACD,GAPD;;AASA,SAAO;AACLgB,IAAAA,IAAI,EAAE,MADD;AAELC,IAAAA,OAAO,EAAE;AACPC,MAAAA,IAAI,eAAE,gCAAC,iBAAD;AAAc,QAAA,UAAU,EAAEb;AAA1B,QADC;AAEPc,MAAAA,YAAY,EAAE;AACZC,QAAAA,MAAM,EAAE;AADI,OAFP;AAKPC,MAAAA,IAAI,EAAE,MALC;AAMPC,MAAAA,OAAO,EAAE,iBAAC5B,KAAD,EAAQC,QAAR,EAAqB;AAC5B,YAAIU,UAAJ,EAAgB;AACd,cAAIC,QAAJ,EAAc;AACZG,YAAAA,gBAAgB,CAACf,KAAD,EAAQC,QAAR,CAAhB;AACD,WAFD,MAEO;AACLF,YAAAA,gBAAgB,CAACC,KAAD,EAAQC,QAAR,CAAhB;AACD;AACF,SAND,MAMO;AACLmB,UAAAA,iBAAiB,CAACpB,KAAD,EAAQC,QAAR,CAAjB;AACD;;AAEDY,QAAAA,cAAc;AACf;AAlBM;AAFJ,GAAP;AAuBD","sourcesContent":["import React from 'react';\nimport HtmlModeIcon from './icons';\nimport { htmlToValue, valueToHtml } from './../../serialization';\n\nconst toggleToRichText = (value, onChange) => {\n const plainText = value.document.text;\n const slateValue = htmlToValue(plainText);\n\n const change = value\n .change()\n .selectAll()\n .delete()\n .insertFragment(slateValue.document);\n onChange(change);\n};\n\nexport default function HtmlPlugin(opts) {\n const { isHtmlMode, isEdited, toggleHtmlMode, handleAlertDialog } = opts;\n\n const handleHtmlModeOn = (value, onChange) => {\n const dialogProps = {\n title: 'Warning',\n text: 'Returning to rich text mode may cause edits to be lost.',\n onConfirm: () => {\n toggleToRichText(value, onChange);\n handleAlertDialog(false);\n },\n onClose: () => {\n handleAlertDialog(false);\n },\n };\n\n handleAlertDialog(true, dialogProps);\n };\n\n const handleHtmlModeOff = (value, onChange) => {\n const change = value\n .change()\n .selectAll()\n .delete()\n .insertText(valueToHtml(value));\n onChange(change);\n };\n\n return {\n name: 'html',\n toolbar: {\n icon: <HtmlModeIcon isHtmlMode={isHtmlMode} />,\n buttonStyles: {\n margin: '0 20px 0 auto',\n },\n type: 'html',\n onClick: (value, onChange) => {\n if (isHtmlMode) {\n if (isEdited) {\n handleHtmlModeOn(value, onChange);\n } else {\n toggleToRichText(value, onChange);\n }\n } else {\n handleHtmlModeOff(value, onChange);\n }\n\n toggleHtmlMode();\n },\n },\n };\n}\n"],"file":"index.js"}
|