@pie-lib/editable-html 12.1.1-next.0 → 12.1.1-next.1
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/lib/block-tags.js +0 -1
- package/lib/block-tags.js.map +1 -1
- package/lib/constants.js +0 -1
- package/lib/constants.js.map +1 -1
- package/lib/editor.js +6 -37
- package/lib/editor.js.map +1 -1
- package/lib/index.js +0 -16
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +0 -3
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +0 -1
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +6 -21
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js +0 -2
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/css/icons/index.js +0 -1
- package/lib/plugins/css/icons/index.js.map +1 -1
- package/lib/plugins/css/index.js +0 -12
- package/lib/plugins/css/index.js.map +1 -1
- package/lib/plugins/customPlugin/index.js +0 -11
- package/lib/plugins/customPlugin/index.js.map +1 -1
- package/lib/plugins/html/icons/index.js +0 -1
- package/lib/plugins/html/icons/index.js.map +1 -1
- package/lib/plugins/html/index.js +0 -1
- package/lib/plugins/html/index.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +0 -5
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +0 -14
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +0 -3
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +0 -14
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +0 -1
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +4 -22
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +0 -12
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +3 -18
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +0 -13
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +0 -18
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +0 -2
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +0 -2
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/rendering/index.js +0 -10
- package/lib/plugins/rendering/index.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -17
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -10
- package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +0 -10
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +2 -13
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/math-templated/index.js +0 -1
- package/lib/plugins/respArea/math-templated/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +0 -6
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/CustomTablePlugin.js +0 -7
- package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
- package/lib/plugins/table/icons/index.js +0 -2
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +0 -18
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +0 -15
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/textAlign/icons/index.js +0 -15
- package/lib/plugins/textAlign/icons/index.js.map +1 -1
- package/lib/plugins/textAlign/index.js +0 -1
- package/lib/plugins/textAlign/index.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +0 -14
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +0 -1
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -12
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +0 -1
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -12
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +2 -16
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +0 -3
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +5 -29
- package/lib/serialization.js.map +1 -1
- package/lib/shared/alert-dialog.js +0 -1
- package/lib/theme.js +0 -1
- package/lib/theme.js.map +1 -1
- package/package.json +8 -8
- package/src/__tests__/editor-utils.test.js +1 -1
- package/src/editor.jsx +18 -22
- package/src/index.jsx +2 -2
- package/src/plugins/characters/index.jsx +2 -2
- package/src/plugins/html/icons/index.jsx +1 -3
- package/src/plugins/html/index.jsx +2 -10
- package/src/plugins/image/__tests__/component.test.jsx +1 -1
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +1 -5
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -1
- package/src/plugins/image/__tests__/index.test.js +0 -3
- package/src/plugins/image/alt-dialog.jsx +4 -3
- package/src/plugins/index.jsx +1 -2
- package/src/plugins/list/__tests__/index.test.js +0 -2
- package/src/plugins/list/index.jsx +6 -6
- package/src/plugins/math/__tests__/index.test.jsx +1 -1
- package/src/plugins/math/index.jsx +2 -2
- package/src/plugins/media/media-dialog.js +6 -23
- package/src/plugins/media/media-toolbar.jsx +2 -8
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +11 -33
- package/src/plugins/respArea/drag-in-the-blank/index.jsx +26 -26
- package/src/plugins/respArea/index.jsx +1 -1
- package/src/plugins/table/__tests__/index.test.jsx +5 -5
- package/src/plugins/table/index.jsx +1 -6
- package/src/plugins/table/table-toolbar.jsx +1 -1
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +2 -6
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +2 -2
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +1 -1
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +1 -1
- package/src/plugins/toolbar/done-button.jsx +1 -6
- package/src/plugins/toolbar/editor-and-toolbar.jsx +2 -7
- package/src/plugins/toolbar/toolbar.jsx +4 -3
- package/src/serialization.jsx +6 -6
package/lib/block-tags.js
CHANGED
package/lib/block-tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-tags.js","names":["BLOCK_TAGS","exports","div","p","pre","h1","h2","h4","h5","h6"],"sources":["../src/block-tags.js"],"sourcesContent":["/**\n * Tags to blocks.\n *\n * @type {Object}\n */\n\nexport const BLOCK_TAGS = {\n div: 'div',\n // span: 'span',\n p: 'paragraph',\n pre: 'code',\n h1: 'heading-one',\n h2: 'heading-two',\n h4: 'heading-four',\n h5: 'heading-five',\n h6: 'heading-six',\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"block-tags.js","names":["BLOCK_TAGS","exports","div","p","pre","h1","h2","h4","h5","h6"],"sources":["../src/block-tags.js"],"sourcesContent":["/**\n * Tags to blocks.\n *\n * @type {Object}\n */\n\nexport const BLOCK_TAGS = {\n div: 'div',\n // span: 'span',\n p: 'paragraph',\n pre: 'code',\n h1: 'heading-one',\n h2: 'heading-two',\n h4: 'heading-four',\n h5: 'heading-five',\n h6: 'heading-six',\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEO,IAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxBE,GAAG,EAAE,KAAK;EACV;EACAC,CAAC,EAAE,WAAW;EACdC,GAAG,EAAE,MAAM;EACXC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE,cAAc;EAClBC,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
|
package/lib/constants.js
CHANGED
package/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["PIE_TOOLBAR__CLASS","exports","_default"],"sources":["../src/constants.js"],"sourcesContent":["export const PIE_TOOLBAR__CLASS = 'pie-toolbar';\n\nexport default {\n PIE_TOOLBAR__CLASS,\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PIE_TOOLBAR__CLASS","exports","_default"],"sources":["../src/constants.js"],"sourcesContent":["export const PIE_TOOLBAR__CLASS = 'pie-toolbar';\n\nexport default {\n PIE_TOOLBAR__CLASS,\n};\n"],"mappings":";;;;;;AAAO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,aAAa;AAAC,IAAAE,QAAA,GAAAD,OAAA,cAEjC;EACbD,kBAAkB,EAAlBA;AACF,CAAC","ignoreList":[]}
|
package/lib/editor.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.array.iterator.js");
|
|
5
|
-
require("core-js/modules/es.object.define-properties.js");
|
|
6
|
-
require("core-js/modules/es.object.define-property.js");
|
|
7
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
8
|
-
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
9
|
-
require("core-js/modules/es.object.keys.js");
|
|
10
|
-
require("core-js/modules/es.reflect.construct.js");
|
|
11
|
-
require("core-js/modules/es.weak-map.js");
|
|
12
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
13
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
14
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
15
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -30,26 +20,6 @@ Object.defineProperty(exports, "DEFAULT_PLUGINS", {
|
|
|
30
20
|
exports.valueToSize = exports.serialization = exports["default"] = exports.buildSizeStyle = exports.Editor = void 0;
|
|
31
21
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
32
22
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
33
|
-
require("core-js/modules/es.array.concat.js");
|
|
34
|
-
require("core-js/modules/es.array.every.js");
|
|
35
|
-
require("core-js/modules/es.array.filter.js");
|
|
36
|
-
require("core-js/modules/es.array.for-each.js");
|
|
37
|
-
require("core-js/modules/es.array.from.js");
|
|
38
|
-
require("core-js/modules/es.array.includes.js");
|
|
39
|
-
require("core-js/modules/es.array.join.js");
|
|
40
|
-
require("core-js/modules/es.array.reduce.js");
|
|
41
|
-
require("core-js/modules/es.date.to-json.js");
|
|
42
|
-
require("core-js/modules/es.function.bind.js");
|
|
43
|
-
require("core-js/modules/es.object.to-string.js");
|
|
44
|
-
require("core-js/modules/es.parse-int.js");
|
|
45
|
-
require("core-js/modules/es.promise.js");
|
|
46
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
47
|
-
require("core-js/modules/es.string.ends-with.js");
|
|
48
|
-
require("core-js/modules/es.string.includes.js");
|
|
49
|
-
require("core-js/modules/es.string.iterator.js");
|
|
50
|
-
require("core-js/modules/es.string.match.js");
|
|
51
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
52
|
-
require("core-js/modules/web.timers.js");
|
|
53
23
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
54
24
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
55
25
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
@@ -64,8 +34,7 @@ var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
|
64
34
|
var _slate = require("slate");
|
|
65
35
|
var _slatePlainSerializer = _interopRequireDefault(require("slate-plain-serializer"));
|
|
66
36
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
67
|
-
var
|
|
68
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
37
|
+
var _lodashEs = require("lodash-es");
|
|
69
38
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
70
39
|
var _debug = _interopRequireDefault(require("debug"));
|
|
71
40
|
var _styles = require("@mui/material/styles");
|
|
@@ -841,7 +810,7 @@ var Editor = exports.Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
841
810
|
_this.toggleHtmlMode = _this.toggleHtmlMode.bind(_this);
|
|
842
811
|
_this.handleToolbarFocus = _this.handleToolbarFocus.bind(_this);
|
|
843
812
|
_this.handleToolbarBlur = _this.handleToolbarBlur.bind(_this);
|
|
844
|
-
_this.onResize = (0,
|
|
813
|
+
_this.onResize = (0, _lodashEs.debounce)(function () {
|
|
845
814
|
if (!_this.state.isHtmlMode && _props.onChange) {
|
|
846
815
|
_props.onChange(_this.state.value, true);
|
|
847
816
|
}
|
|
@@ -915,14 +884,14 @@ var Editor = exports.Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
915
884
|
isHtmlMode = _this$state3.isHtmlMode,
|
|
916
885
|
toolbarOpts = _this$state3.toolbarOpts;
|
|
917
886
|
var newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts, nextProps.error, isHtmlMode);
|
|
918
|
-
if (!(0,
|
|
887
|
+
if (!(0, _lodashEs.isEqual)(newToolbarOpts, toolbarOpts)) {
|
|
919
888
|
this.setState({
|
|
920
889
|
toolbarOpts: newToolbarOpts
|
|
921
890
|
});
|
|
922
891
|
}
|
|
923
|
-
var differentCharacterProps = !(0,
|
|
924
|
-
var differentMathMlProps = !(0,
|
|
925
|
-
var differentImageMaxDimensionsProps = !(0,
|
|
892
|
+
var differentCharacterProps = !(0, _lodashEs.isEqual)(nextProps.languageCharactersProps, this.props.languageCharactersProps);
|
|
893
|
+
var differentMathMlProps = !(0, _lodashEs.isEqual)(nextProps.mathMlOptions, this.props.mathMlOptions);
|
|
894
|
+
var differentImageMaxDimensionsProps = !(0, _lodashEs.isEqual)(nextProps.maxImageWidth, this.props.maxImageWidth) || !(0, _lodashEs.isEqual)(nextProps.maxImageHeight, this.props.maxImageHeight);
|
|
926
895
|
if (differentCharacterProps || differentMathMlProps || differentImageMaxDimensionsProps) {
|
|
927
896
|
this.handlePlugins(nextProps);
|
|
928
897
|
}
|
package/lib/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","names":["_react","_interopRequireDefault","require","_slateReact","_slatePropTypes","_slate","_slatePlainSerializer","_propTypes","_debounce","_isEqual","_classnames","_debug","_styles","_renderUi","_alertDialog","_serialization","_interopRequireWildcard","serialization","exports","_insertImageHandler","_plugins","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","defaultLanguageCharactersProps","createToolbarOpts","toolbarOpts","error","isHtmlMode","valueToSize","v","calcRegex","endsWith","undefined","match","value","parseInt","isNaN","concat","buildSizeStyle","props","minWidth","width","maxWidth","minHeight","height","maxHeight","MAX_CHARACTERS_LIMIT","Editor","_React$Component","_this","_classCallCheck2","interacted","keypadInteractionDetected","open","extraDialogProps","callback","setState","dialog","prevState","isEditedInHtmlMode","state","newToolbarOpts","normalizedResponseAreaProps","responseAreaProps","htmlPluginOpts","currentValue","toggleHtmlMode","handleAlertDialog","handleDialog","_ref","pluginProps","customPlugins","plugins","buildPlugins","activePlugins","math","onClick","onMathClick","onFocus","onPluginFocus","onBlur","onPluginBlur","mathMlOptions","textAlign","getValue","onChange","html","extraCSSRules","image","disableImageAlignmentButtons","onDelete","imageSupport","node","done","src","data","newPendingImages","pendingImages","img","key","oldScheduled","scheduled","newState","insertImageRequested","addedImage","getHandler","onFinish","result","cb","onEditingDone","bind","handler","add","_toConsumableArray2","maxImageWidth","maxImageHeight","toolbar","disableScrollbar","disableUnderline","autoWidth","autoWidthToolbar","onDone","_this$state$value$sta","nonEmpty","toolbarInFocus","focusedNode","focusToolbar","editor","blur","startText","text","resetValue","then","table","responseArea","type","maxResponseAreas","languageCharacters","languageCharactersProps","keyPadCharacterRef","setKeypadInteraction","media","focus","createChange","change","uploadSoundSupport","mmlOutput","mmlEditing","runSerializationOnMarkup","relatedTarget","target","findNode","stashedValue","stashValue","c","collapseToStartOf","selectedNode","_this$state","htmlToValue","document","previewText","renderHtmlPreviewContent","openHtmlModeConfirmationDialog","createElement","ref","elementRef","StyledPreviewText","PreviewPrompt","prompt","title","onConfirmText","onCloseText","onConfirm","handleHtmlModeSaveConfirmation","onClose","htmlModeContinueEditing","resolve","_this$state$value$sta2","event","_this$doneButtonRef$c","toolbarElement","toolbarRef","closest","className","isRawDoneButton","doneButtonRef","current","skipBlurHandling","Promise","preBlurValue","handleBlur","editorDOM","querySelector","setTimeout","stateValue","wrapperRef","editorElement","activeElement","isInCurrentComponent","contains","removeEventListener","handleDomBlur","isFocused","_navigator","isTouchDevice","window","navigator","maxTouchPoints","__TEMPORARY_CHANGE_DATA","_this$__TEMPORARY_CHA","domEl","setNodeByKey","addEventListener","shouldFocusEditor","force","_this$state2","stopReset","reduce","s","p","toObject","newValue","Value","fromJSON","toJSON","me","charactersLimit","limit","handlePlugins","object","last","nodes","parent","getParent","Block","pos","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","dropContext","transfer","file","fragment","inline","range","ch","_change$value","_document","selection","startBlock","defaultBlock","defaultMarks","frag","_t","wrap","_context","prev","next","getEventTransfer","files","abrupt","getBase64","sent","Inline","create","isVoid","loading","getEventRange","select","insertInline","InsertImageHandler","fileChosen","insertFragment","getInsertMarksAtRange","Plain","deserialize","stop","_x","_x2","_x3","placeholder","size","isEmpty","contentEditable","style","display","whiteSpace","opacity","pointerEvents","userSelect","React","createRef","handleToolbarFocus","handleToolbarBlur","onResize","debounce","_inherits2","_createClass2","_this2","toolbarContainsFocus","componentDidMount","_this$props$className","_this3","onRef","isResponseAreaEditor","includes","responseAreaEditor","setAttribute","autoFocus","UNSAFE_componentWillReceiveProps","nextProps","_nextProps$value","_this$props$value","_this$state3","isEqual","differentCharacterProps","differentMathMlProps","differentImageMaxDimensionsProps","equals","componentDidUpdate","prevProps","zeroWidthEls","querySelectorAll","Array","from","el","componentWillUnmount","render","_this4","_value$document","_this$props","disabled","spellCheck","highlightShape","onKeyDown","slateEditorExtraStyles","_ref4","showParagraphs","separateParagraphs","otherPluginProps","_objectWithoutProperties2","_this$state4","sizeStyle","wrapperClassNames","classNames","withBg","toolbarOnTop","StyledEditorWrapper","id","StyledUploadingMessage","StyledSlateEditor","noPadding","showParagraph","separateParagraph","innerRef","slateEditor","editorRef","onToolbarFocus","onToolbarBlur","getFocusedValue","onDrop","onDropPaste","onPaste","normalize","readOnly","autoCorrect","renderPlaceholder","onDataChange","changeData","Component","PropTypes","bool","func","isRequired","any","SlateTypes","shape","number","oneOfType","string","isEditor","oneOf","names","arrayOf","rules","language","characterIcon","characters","values","allValid","every","ALL_PLUGINS","Error","join","styled","backgroundColor","marginTop","top","left","transform","tableLayout","borderCollapse","color","background","borderTop","padding","border","content","fontSize","marginBottom","_default"],"sources":["../src/editor.jsx"],"sourcesContent":["import React from 'react';\nimport { Editor as SlateEditor, findNode, getEventRange, getEventTransfer } from 'slate-react';\nimport SlateTypes from 'slate-prop-types';\nimport { Value, Block, Inline } from 'slate';\nimport Plain from 'slate-plain-serializer';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport AlertDialog from '../../config-ui/src/alert-dialog';\nimport { PreviewPrompt } from '@pie-lib/render-ui';\n\nimport { getBase64, htmlToValue } from './serialization';\nimport InsertImageHandler from './plugins/image/insert-image-handler';\nimport * as serialization from './serialization';\nimport { buildPlugins, ALL_PLUGINS, DEFAULT_PLUGINS } from './plugins';\n\nexport { ALL_PLUGINS, DEFAULT_PLUGINS, serialization };\n\nconst log = debug('editable-html:editor');\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => { },\n onHandleAreaChange: () => { },\n};\n\nconst defaultLanguageCharactersProps = [];\n\nconst createToolbarOpts = (toolbarOpts, error, isHtmlMode) => {\n return {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n error,\n isHtmlMode,\n };\n};\n\n/**\n * Converts a value to a CSS size string\n * @param {string|number} v - The value to convert\n * @returns {string|undefined} CSS size string or undefined\n */\nexport const valueToSize = (v) => {\n if (!v) {\n return;\n }\n const calcRegex = /^calc\\((.*)\\)$/;\n\n if (typeof v === 'string') {\n if (v.endsWith('%')) {\n return undefined;\n } else if (\n v.endsWith('px') ||\n v.endsWith('vh') ||\n v.endsWith('vw') ||\n v.endsWith('ch') ||\n v.endsWith('em') ||\n v.match(calcRegex)\n ) {\n return v;\n } else {\n const value = parseInt(v, 10);\n return isNaN(value) ? value : `${value}px`;\n }\n }\n if (typeof v === 'number') {\n return `${v}px`;\n }\n};\n\n/**\n * Builds a style object for editor size constraints\n * @param {Object} props - Editor props containing size values\n * @returns {Object} Style object with width/height constraints\n */\nexport const buildSizeStyle = (props) => {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = props;\n\n return {\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n };\n};\n\n/**\n * The maximum number of characters the editor can support\n * @type {number}\n */\nconst MAX_CHARACTERS_LIMIT = 1000000;\n\nexport class Editor extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n editorRef: PropTypes.func.isRequired,\n error: PropTypes.any,\n onRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n focus: PropTypes.func.isRequired,\n value: SlateTypes.value.isRequired,\n imageSupport: PropTypes.object,\n mathMlOptions: PropTypes.shape({\n mmlOutput: PropTypes.bool,\n mmlEditing: PropTypes.bool,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n charactersLimit: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n slateEditorExtraStyles: PropTypes.object,\n highlightShape: PropTypes.bool,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidthToolbar: PropTypes.bool,\n pluginProps: PropTypes.any,\n // customPlugins should be inside pluginProps (a property inside pluginProps)\n // customPlugins: PropTypes.arrayOf(\n // PropTypes.shape({\n // event: PropTypes.string,\n // icon: PropTypes.string,\n // iconType: PropTypes.string,\n // iconAlt: PropTypes.string\n // }),\n // ),\n placeholder: PropTypes.string,\n isEditor: PropTypes.bool,\n responseAreaProps: PropTypes.shape({\n type: PropTypes.oneOf([\n 'explicit-constructed-response',\n 'inline-dropdown',\n 'drag-in-the-blank',\n 'math-templated',\n ]),\n options: PropTypes.object,\n respAreaToolbar: PropTypes.func,\n onHandleAreaChange: PropTypes.func,\n maxResponseAreas: PropTypes.number,\n error: PropTypes.any,\n }),\n extraCSSRules: PropTypes.shape({\n names: PropTypes.arrayOf(PropTypes.string),\n rules: PropTypes.string,\n }),\n languageCharactersProps: PropTypes.arrayOf(\n PropTypes.shape({\n language: PropTypes.string,\n characterIcon: PropTypes.string,\n characters: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n }),\n ),\n runSerializationOnMarkup: PropTypes.func,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool,\n doneOn: PropTypes.string,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n activePlugins: PropTypes.arrayOf((values) => {\n const allValid = values.every((v) => ALL_PLUGINS.includes(v));\n\n return !allValid && new Error(`Invalid values: ${values}, values must be one of [${ALL_PLUGINS.join(',')}]`);\n }),\n className: PropTypes.string,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n static defaultProps = {\n disableUnderline: true,\n onFocus: () => { },\n onBlur: () => { },\n onKeyDown: () => { },\n runSerializationOnMarkup: () => { },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n toolbarOpts: defaultToolbarOpts,\n responseAreaProps: defaultResponseAreaProps,\n languageCharactersProps: defaultLanguageCharactersProps,\n extraCSSRules: null,\n isEditor: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n toolbarOpts: createToolbarOpts(props.toolbarOpts, props.error),\n pendingImages: [],\n isHtmlMode: false,\n isEditedInHtmlMode: false,\n focusToolbar: false,\n dialog: {\n open: false,\n },\n };\n\n this.keyPadCharacterRef = React.createRef();\n this.doneButtonRef = React.createRef();\n this.keypadInteractionDetected = false;\n\n this.toggleHtmlMode = this.toggleHtmlMode.bind(this);\n this.handleToolbarFocus = this.handleToolbarFocus.bind(this);\n this.handleToolbarBlur = this.handleToolbarBlur.bind(this);\n\n this.onResize = debounce(() => {\n if (!this.state.isHtmlMode && props.onChange) {\n props.onChange(this.state.value, true);\n }\n }, 50);\n\n this.handlePlugins(this.props);\n }\n\n handleToolbarFocus() {\n if (this.state.focusToolbar) {\n return;\n }\n\n this.setState({ focusToolbar: true });\n }\n\n setKeypadInteraction = (interacted) => {\n this.keypadInteractionDetected = interacted;\n };\n\n handleToolbarBlur() {\n setTimeout(() => {\n if (!this.toolbarContainsFocus()) {\n this.setState({ focusToolbar: false });\n }\n }, 0);\n }\n\n toolbarContainsFocus() {\n if (!this.toolbarRef) return false;\n const toolbarElement = this.toolbarRef;\n const activeElement = document.activeElement;\n\n return toolbarElement && toolbarElement.contains(activeElement);\n }\n\n handleDialog = (open, extraDialogProps = {}, callback) => {\n this.setState(\n {\n dialog: {\n open,\n ...extraDialogProps,\n },\n },\n callback,\n );\n };\n\n toggleHtmlMode = () => {\n this.setState(\n (prevState) => ({\n isHtmlMode: !prevState.isHtmlMode,\n isEditedInHtmlMode: false,\n }),\n () => {\n const { error } = this.props;\n const { toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(toolbarOpts, error, this.state.isHtmlMode);\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n },\n );\n };\n\n handlePlugins = (props) => {\n const normalizedResponseAreaProps = {\n ...defaultResponseAreaProps,\n ...props.responseAreaProps,\n };\n\n const htmlPluginOpts = {\n currentValue: this.props.value,\n isHtmlMode: this.state.isHtmlMode,\n isEditedInHtmlMode: this.state.isEditedInHtmlMode,\n toggleHtmlMode: this.toggleHtmlMode,\n handleAlertDialog: this.handleDialog,\n };\n let { customPlugins } = props.pluginProps || {};\n customPlugins = customPlugins || [];\n\n this.plugins = buildPlugins(props.activePlugins, customPlugins, {\n math: {\n onClick: this.onMathClick,\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n ...props.mathMlOptions,\n },\n textAlign: {\n getValue: () => this.state.value,\n onChange: this.onChange,\n },\n html: htmlPluginOpts,\n extraCSSRules: props.extraCSSRules || {},\n image: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node, done) => {\n const src = node.data.get('src');\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== node.key);\n const { scheduled: oldScheduled } = this.state;\n const newState = {\n pendingImages: newPendingImages,\n scheduled: oldScheduled && newPendingImages.length === 0 ? false : oldScheduled,\n };\n\n this.setState(newState, () => done(e, this.state.value));\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const { pendingImages } = this.state;\n const onFinish = (result) => {\n let cb;\n\n if (this.state.scheduled && result) {\n // finish editing only on success\n cb = this.onEditingDone.bind(this);\n }\n\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n this.setState(newState, cb);\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish, () => this.state.value);\n props.imageSupport.add(handler);\n };\n\n this.setState(\n {\n pendingImages: [...pendingImages, addedImage],\n },\n callback,\n );\n }),\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n toolbar: {\n /**\n * To minimize converting html -> state -> html\n * We only emit markup once 'done' is clicked.\n */\n disableScrollbar: !!props.disableScrollbar,\n disableUnderline: props.disableUnderline,\n autoWidth: props.autoWidthToolbar,\n onDone: () => {\n const { nonEmpty } = props;\n\n log('[onDone]');\n this.setState({ toolbarInFocus: false, focusedNode: null, focusToolbar: false });\n this.editor.blur();\n\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n });\n } else {\n this.onEditingDone();\n }\n },\n },\n table: {\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n responseArea: {\n type: normalizedResponseAreaProps.type,\n options: normalizedResponseAreaProps.options,\n maxResponseAreas: normalizedResponseAreaProps.maxResponseAreas,\n respAreaToolbar: normalizedResponseAreaProps.respAreaToolbar,\n onHandleAreaChange: normalizedResponseAreaProps.onHandleAreaChange,\n error: normalizedResponseAreaProps.error,\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: this.keyPadCharacterRef,\n setKeypadInteraction: this.setKeypadInteraction,\n media: {\n focus: this.focus,\n createChange: () => this.state.value.change(),\n onChange: this.onChange,\n uploadSoundSupport: props.uploadSoundSupport,\n },\n });\n\n if (props.mathMlOptions.mmlOutput || props.mathMlOptions.mmlEditing) {\n this.props.runSerializationOnMarkup();\n }\n };\n\n componentDidMount() {\n // onRef is needed to get the ref of the component\n this.props.onRef(this);\n\n window.addEventListener('resize', this.onResize);\n\n const isResponseAreaEditor = this.props.className?.includes('response-area-editor');\n\n if (isResponseAreaEditor && this.editor) {\n const responseAreaEditor = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n if (responseAreaEditor) {\n responseAreaEditor.setAttribute('aria-label', 'Answer');\n }\n }\n\n if (this.editor && this.props.autoFocus) {\n Promise.resolve().then(() => {\n if (this.editor) {\n const editorDOM = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n this.editor.focus();\n\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { isHtmlMode, toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts, nextProps.error, isHtmlMode);\n\n if (!isEqual(newToolbarOpts, toolbarOpts)) {\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n }\n\n const differentCharacterProps = !isEqual(nextProps.languageCharactersProps, this.props.languageCharactersProps);\n const differentMathMlProps = !isEqual(nextProps.mathMlOptions, this.props.mathMlOptions);\n const differentImageMaxDimensionsProps =\n !isEqual(nextProps.maxImageWidth, this.props.maxImageWidth) ||\n !isEqual(nextProps.maxImageHeight, this.props.maxImageHeight);\n\n if (differentCharacterProps || differentMathMlProps || differentImageMaxDimensionsProps) {\n this.handlePlugins(nextProps);\n }\n\n if (!nextProps.value?.document?.equals(this.props.value?.document)) {\n this.setState({\n focus: false,\n value: nextProps.value,\n });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n // The cursor is on a zero width element and when that is placed near void elements, it is not visible\n // so we increase the width to at least 2px in order for the user to see it\n\n // Trigger plugins and finish editing if:\n // 1. The 'isHtmlMode' state has been toggled.\n // 2. We're currently in 'isHtmlMode' and the editor value has been modified.\n if (\n this.state.isHtmlMode !== prevState.isHtmlMode ||\n (this.state.isHtmlMode && !prevState.isEditedInHtmlMode && this.state.isEditedInHtmlMode)\n ) {\n this.handlePlugins(this.props);\n }\n\n const zeroWidthEls = document.querySelectorAll('[data-slate-zero-width=\"z\"]');\n\n Array.from(zeroWidthEls).forEach((el) => {\n el.style.minWidth = '2px';\n el.style.display = 'inline-block';\n });\n }\n\n onPluginBlur = (e) => {\n log('[onPluginBlur]', e && e.relatedTarget);\n const target = e && e.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n log('[onPluginBlur] node: ', node);\n this.setState({ focusedNode: node }, () => {\n this.resetValue();\n });\n };\n\n onPluginFocus = (e) => {\n log('[onPluginFocus]', e && e.target);\n const target = e && e.target;\n if (target) {\n const node = findNode(target, this.state.value);\n log('[onPluginFocus] node: ', node);\n\n const stashedValue = this.state.stashedValue || this.state.value;\n this.setState({ focusedNode: node, stashedValue });\n } else {\n this.setState({ focusedNode: null });\n }\n this.stashValue();\n };\n\n onMathClick = (node) => {\n this.editor.change((c) => c.collapseToStartOf(node));\n this.setState({ selectedNode: node });\n };\n\n onEditingDone = () => {\n const { isHtmlMode, dialog, value, pendingImages } = this.state;\n\n // Handling HTML mode and dialog state\n if (isHtmlMode) {\n // Early return if HTML mode is enabled\n if (dialog?.open) return;\n\n const currentValue = htmlToValue(value.document.text);\n const previewText = this.renderHtmlPreviewContent();\n\n this.openHtmlModeConfirmationDialog(currentValue, previewText);\n return;\n }\n\n if (pendingImages.length) {\n // schedule image processing\n this.setState({ scheduled: true });\n return;\n }\n\n // Finalizing editing\n log('[onEditingDone]');\n this.setState({ pendingImages: [], stashedValue: null, focusedNode: null });\n log('[onEditingDone] value: ', this.state.value);\n this.props.onChange(this.state.value, true);\n };\n\n /**\n * Renders the HTML preview content to be displayed inside the dialog.\n * This content includes the edited HTML and a prompt for the user.\n */\n renderHtmlPreviewContent = () => {\n return (\n <div ref={(ref) => (this.elementRef = ref)}>\n <div>Preview of Edited Html:</div>\n {/* TODO: check if this works and we don't need to send style over to preview prompt */}\n <StyledPreviewText>\n <PreviewPrompt prompt={this.state.value.document.text} />\n </StyledPreviewText>\n <div>Would you like to save these changes ?</div>\n </div>\n );\n };\n\n /**\n * Opens a confirmation dialog in HTML mode, displaying the preview of the current HTML content\n * and offering options to save or continue editing.\n */\n openHtmlModeConfirmationDialog = (currentValue, previewText) => {\n this.setState({\n dialog: {\n open: true,\n title: 'Content Preview & Save',\n text: previewText,\n onConfirmText: 'Save changes',\n onCloseText: 'Continue editing',\n onConfirm: () => {\n this.handleHtmlModeSaveConfirmation(currentValue);\n },\n onClose: this.htmlModeContinueEditing,\n },\n });\n };\n\n /**\n * Handles the save confirmation action in HTML mode. This updates the value to the confirmed\n * content, updates value on props, and exits the HTML mode.\n * @param {string} currentValue - The confirmed value of the HTML content to save.\n */\n handleHtmlModeSaveConfirmation = (currentValue) => {\n this.setState({ value: currentValue });\n this.props.onChange(currentValue, true);\n this.handleDialog(false);\n this.toggleHtmlMode();\n };\n\n /**\n * Closes the dialog in HTML mode and allows the user to continue editing the html content.\n * This function is invoked when the user opts to not save the current changes.\n */\n htmlModeContinueEditing = () => {\n this.handleDialog(false);\n };\n\n /**\n * Remove onResize event listener\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n // Allowing time for onChange to take effect if it is called\n handleBlur = (resolve) => {\n const { nonEmpty } = this.props;\n const {\n toolbarOpts: { doneOn },\n } = this.state;\n\n this.setState({ toolbarInFocus: false, focusedNode: null });\n\n if (this.editor) {\n this.editor.blur();\n }\n\n if (doneOn === 'blur') {\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n resolve();\n });\n } else {\n this.onEditingDone();\n resolve();\n }\n }\n };\n\n onBlur = (event) => {\n log('[onBlur]');\n const relatedTarget = event.relatedTarget;\n const toolbarElement = this.toolbarRef && relatedTarget?.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n\n // Check if relatedTarget is a done button\n const isRawDoneButton =\n this.doneButtonRef && relatedTarget?.closest(`[class*=\"${this.doneButtonRef.current?.className}\"]`);\n\n // Skip onBlur handling if relatedTarget is a button from the KeyPad characters\n this.skipBlurHandling = this.keypadInteractionDetected && relatedTarget !== null;\n\n if (toolbarElement && !isRawDoneButton && !this.state.focusToolbar) {\n this.setState({\n focusToolbar: true,\n });\n }\n\n const node = relatedTarget ? findNode(relatedTarget, this.state.value) : null;\n\n log('[onBlur] node: ', node);\n\n return new Promise((resolve) => {\n if (!this.skipBlurHandling) {\n this.setKeypadInteraction(false);\n this.setState(\n { preBlurValue: this.state.value, focusedNode: !node ? null : node },\n this.handleBlur.bind(this, resolve),\n );\n }\n\n this.props.onBlur(event);\n });\n };\n\n handleDomBlur = (e) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n setTimeout(() => {\n const { value: stateValue } = this.state;\n\n if (!this.wrapperRef) {\n return;\n }\n\n const editorElement = !editorDOM || document.activeElement.closest(`[class*=\"${editorDOM.className}\"]`);\n const toolbarElement =\n !this.toolbarRef || document.activeElement.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n const isInCurrentComponent = this.wrapperRef.contains(editorElement) || this.wrapperRef.contains(toolbarElement);\n\n if (!isInCurrentComponent) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n\n if (stateValue.isFocused) {\n this.onBlur(e);\n }\n }\n }, 50);\n };\n\n /*\n * Needs to be wrapped otherwise it causes issues because of race conditions\n * Known issue for slatejs. See: https://github.com/ianstormtaylor/slate/issues/2097\n * Using timeout I wasn't able to test this\n *\n * Note: The use of promises has been causing issues with MathQuill\n * */\n onFocus = (event, change) =>\n new Promise((resolve) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n const isTouchDevice =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator?.maxTouchPoints > 0);\n\n log('[onFocus]', document.activeElement);\n\n if (this.keypadInteractionDetected && this.__TEMPORARY_CHANGE_DATA) {\n this.__TEMPORARY_CHANGE_DATA = null;\n }\n\n /**\n * This is a temporary hack - @see changeData below for some more information.\n */\n if (this.__TEMPORARY_CHANGE_DATA) {\n const { key, data } = this.__TEMPORARY_CHANGE_DATA;\n const domEl = document.querySelector(`[data-key=\"${key}\"]`);\n\n if (domEl) {\n let change = this.state.value.change().setNodeByKey(key, { data });\n this.setState({ value: change.value }, () => {\n this.__TEMPORARY_CHANGE_DATA = null;\n });\n }\n }\n\n /**\n * This is needed just in case the browser decides to make the editor\n * lose focus without triggering the onBlur event (can happen in a few cases).\n * This will also trigger onBlur if the user clicks outside of the page when the editor\n * is focused.\n */\n if (editorDOM === document.activeElement) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n editorDOM.addEventListener('blur', this.handleDomBlur);\n }\n\n this.stashValue();\n this.props.onFocus();\n\n // Added for accessibility: Ensures the editor gains focus when tabbed to for improved keyboard navigation\n const shouldFocusEditor = !this.keypadInteractionDetected && !isTouchDevice;\n\n if (shouldFocusEditor) {\n change?.focus();\n }\n\n resolve();\n });\n\n stashValue = () => {\n log('[stashValue]');\n\n if (!this.state.stashedValue) {\n this.setState({ stashedValue: this.state.value });\n }\n };\n\n /**\n * Reset the value if the user didn't click done.\n */\n resetValue = (force) => {\n const { value, focusedNode } = this.state;\n\n const stopReset = this.plugins.reduce((s, p) => {\n return s || (p.stopReset && p.stopReset(this.state.value));\n }, false);\n\n log('[resetValue]', value.isFocused, focusedNode, 'stopReset: ', stopReset);\n if ((this.state.stashedValue && !value.isFocused && !focusedNode && !stopReset) || force) {\n log('[resetValue] resetting...');\n log('stashed', this.state.stashedValue.document.toObject());\n log('current', this.state.value.document.toObject());\n\n const newValue = Value.fromJSON(this.state.stashedValue.toJSON());\n\n log('newValue: ', newValue.document);\n return new Promise((resolve) => {\n setTimeout(() => {\n this.setState({ value: newValue, stashedValue: null }, () => {\n log('value now: ', this.state.value.document.toJSON());\n resolve();\n });\n }, 50);\n });\n } else {\n return Promise.resolve({});\n }\n };\n\n onChange = (change, done) => {\n log('[onChange]');\n window.me = this;\n\n const { value } = change;\n const { charactersLimit } = this.props;\n let limit = charactersLimit;\n if (!limit || limit > MAX_CHARACTERS_LIMIT) {\n limit = MAX_CHARACTERS_LIMIT;\n }\n\n if (value && value.document && value.document.text && value.document.text.length > limit) {\n return;\n }\n\n // Mark the editor as edited when in HTML mode and its content has changed.\n // This status will later be used to decide whether to prompt a warning to the user when exiting HTML mode.\n const isEditedInHtmlMode = !this.state.isHtmlMode\n ? false\n : this.state.value.document.text !== value.document.text\n ? true\n : this.state.isEditedInHtmlMode;\n\n if (isEditedInHtmlMode != this.state.isEditedInHtmlMode) {\n this.handlePlugins(this.props);\n }\n\n this.setState({ value, isEditedInHtmlMode }, () => {\n log('[onChange], call done()');\n\n if (done) {\n done();\n }\n });\n };\n\n getFocusedValue = () => {\n if (this.state.value.isFocused) {\n return this.state.value;\n }\n\n return this.state.preBlurValue;\n };\n\n // Use the exported utility functions\n buildSizeStyle() {\n return buildSizeStyle(this.props);\n }\n\n validateNode = (node) => {\n if (node.object !== 'block') return;\n\n const last = node.nodes.last();\n if (!last) return;\n\n if (last.type !== 'image') return;\n\n log('[validateNode] last is image..');\n\n const parent = last.getParent(last.key);\n const p = Block.getParent(last.key);\n log('[validateNode] parent:', parent, p);\n\n return undefined;\n };\n\n changeData = (key, data) => {\n log('[changeData]. .. ', key, data);\n\n /**\n * HACK ALERT: We should be calling setState here and storing the change data:\n *\n * <code>this.setState({changeData: { key, data}})</code>\n * However this is causing issues with the Mathquill instance. The 'input' event stops firing on the element and no\n * more changes get through. The issues seem to be related to the promises in onBlur/onFocus. But removing these\n * brings it's own problems. A major clean up is planned for this component so I've decided to temporarily settle\n * on this hack rather than spend more time on this.\n */\n\n // Uncomment this line to see the bug described above.\n // this.setState({changeData: {key, data}})\n\n this.__TEMPORARY_CHANGE_DATA = { key, data };\n };\n\n focus = (pos, node) => {\n const position = pos || 'end';\n\n this.props.focus(position, node);\n };\n\n onDropPaste = async (event, change, dropContext) => {\n const editor = change.editor;\n const transfer = getEventTransfer(event);\n const file = transfer.files && transfer.files[0];\n\n const type = transfer.type;\n const fragment = transfer.fragment;\n const text = transfer.text;\n\n if (file && (file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png')) {\n if (!this.props.imageSupport) {\n return;\n }\n try {\n log('[onDropPaste]');\n const src = await getBase64(file);\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loading: false,\n src,\n },\n });\n\n if (dropContext) {\n this.focus();\n } else {\n const range = getEventRange(event, editor);\n if (range) {\n change.select(range);\n }\n }\n\n const ch = change.insertInline(inline);\n this.onChange(ch);\n const handler = new InsertImageHandler(\n inline,\n () => { },\n () => this.state.value,\n this.onChange,\n true,\n );\n handler.fileChosen(file);\n this.props.imageSupport.add(handler);\n } catch (err) {\n log('[onDropPaste] error: ', err);\n }\n } else if (type === 'fragment') {\n change.insertFragment(fragment);\n } else if (type === 'text' || type === 'html') {\n if (!text) {\n return;\n }\n const {\n value: { document, selection, startBlock },\n } = change;\n\n if (startBlock.isVoid) {\n return;\n }\n\n const defaultBlock = startBlock;\n const defaultMarks = document.getInsertMarksAtRange(selection);\n const frag = Plain.deserialize(text, {\n defaultBlock,\n defaultMarks,\n }).document;\n change.insertFragment(frag);\n }\n };\n\n renderPlaceholder = (props) => {\n const { editor } = props;\n const { document } = editor.value;\n\n if (!editor.props.placeholder || document.text !== '' || document.nodes.size !== 1 || !document.isEmpty) {\n return false;\n }\n\n return (\n <span\n contentEditable={false}\n style={{\n display: 'inline-block',\n width: 'fit-content', // for centering the placeholder if text-align is set to center\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: '0.33',\n pointerEvents: 'none',\n userSelect: 'none',\n }}\n >\n {editor.props.placeholder}\n </span>\n );\n };\n\n render() {\n const {\n disabled,\n spellCheck,\n highlightShape,\n className,\n placeholder,\n pluginProps,\n onKeyDown,\n slateEditorExtraStyles,\n } = this.props;\n // We don't want to send customPlugins to slate.\n // Not sure if they would do any harm, but I think it's better to not send them.\n // We use custom plugins to be able to add custom buttons\n // eslint-disable-next-line no-unused-vars\n const { customPlugins, showParagraphs, separateParagraphs, ...otherPluginProps } = pluginProps || {};\n\n const { value, focusedNode, toolbarOpts, dialog, scheduled } = this.state;\n\n log('[render] value: ', value);\n const sizeStyle = this.buildSizeStyle();\n const wrapperClassNames = classNames(\n {\n withBg: highlightShape,\n toolbarOnTop: toolbarOpts.alwaysVisible && toolbarOpts.position === 'top',\n scheduled: scheduled,\n },\n className,\n );\n\n return (\n <StyledEditorWrapper\n ref={(ref) => (this.wrapperRef = ref)}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n className={wrapperClassNames}\n id={`editor-${value?.document?.key}`}\n >\n {scheduled && <StyledUploadingMessage>Uploading image and then saving...</StyledUploadingMessage>}\n <StyledSlateEditor\n className={classNames(\n {\n noPadding: toolbarOpts?.noPadding,\n showParagraph: showParagraphs && !showParagraphs.disabled,\n separateParagraph: separateParagraphs && !separateParagraphs.disabled,\n },\n )}\n >\n <SlateEditor\n plugins={this.plugins}\n innerRef={(r) => {\n if (r) {\n this.slateEditor = r;\n }\n }}\n ref={(r) => (this.editor = r && this.props.editorRef(r))}\n toolbarRef={(r) => {\n if (r) {\n this.toolbarRef = r;\n }\n }}\n doneButtonRef={this.doneButtonRef}\n value={value}\n focusToolbar={this.state.focusToolbar}\n onToolbarFocus={this.handleToolbarFocus}\n onToolbarBlur={this.handleToolbarBlur}\n focus={this.focus}\n onKeyDown={onKeyDown}\n onChange={this.onChange}\n getFocusedValue={this.getFocusedValue}\n onBlur={this.onBlur}\n onDrop={(event, editor) => this.onDropPaste(event, editor, true)}\n onPaste={(event, editor) => this.onDropPaste(event, editor)}\n onFocus={this.onFocus}\n onEditingDone={this.onEditingDone}\n focusedNode={focusedNode}\n normalize={this.normalize}\n readOnly={disabled}\n spellCheck={spellCheck}\n autoCorrect={spellCheck}\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n ...slateEditorExtraStyles\n }}\n pluginProps={otherPluginProps}\n toolbarOpts={toolbarOpts}\n placeholder={placeholder}\n renderPlaceholder={this.renderPlaceholder}\n onDataChange={this.changeData}\n />\n </StyledSlateEditor>\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n onConfirmText={dialog.onConfirmText}\n onCloseText={dialog.onCloseText}\n />\n </StyledEditorWrapper>\n );\n }\n}\n\n// TODO color - hardcoded gray background and keypad colors will need to change too\nconst StyledEditorWrapper = styled('div')(() => ({\n '&.withBg': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n '&.scheduled': {\n opacity: 0.5,\n pointerEvents: 'none',\n position: 'relative',\n },\n '&.toolbarOnTop': {\n marginTop: '45px',\n },\n}));\n\nconst StyledUploadingMessage = styled('div')({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n});\n\nconst StyledSlateEditor = styled('div')(() => ({\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n // TODO perhaps secondary color for background, for now disable\n // '&:nth-child(2n)': {\n // backgroundColor: '#f6f8fa'\n // }\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n '&.showParagraph': {\n // a div that has a div after it\n '& > div:has(+ div)::after': {\n display: 'block',\n content: '\"¶\"',\n fontSize: '1em',\n color: '#146EB3',\n },\n },\n '&.separateParagraph': {\n // a div that has a div after it\n '& > div:has(+ div)': {\n marginBottom: '1em',\n },\n },\n '&.noPadding': {\n padding: '0 !important',\n },\n}));\n\nconst StyledPreviewText = styled('div')({\n marginBottom: '36px',\n marginTop: '6px',\n padding: '20px',\n backgroundColor: 'rgba(0,0,0,0.06)',\n});\n\nexport default Editor;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"editor.js","names":["_react","_interopRequireDefault","require","_slateReact","_slatePropTypes","_slate","_slatePlainSerializer","_propTypes","_lodashEs","_classnames","_debug","_styles","_renderUi","_alertDialog","_serialization","_interopRequireWildcard","serialization","exports","_insertImageHandler","_plugins","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","defaultLanguageCharactersProps","createToolbarOpts","toolbarOpts","error","isHtmlMode","valueToSize","v","calcRegex","endsWith","undefined","match","value","parseInt","isNaN","concat","buildSizeStyle","props","minWidth","width","maxWidth","minHeight","height","maxHeight","MAX_CHARACTERS_LIMIT","Editor","_React$Component","_this","_classCallCheck2","interacted","keypadInteractionDetected","open","extraDialogProps","callback","setState","dialog","prevState","isEditedInHtmlMode","state","newToolbarOpts","normalizedResponseAreaProps","responseAreaProps","htmlPluginOpts","currentValue","toggleHtmlMode","handleAlertDialog","handleDialog","_ref","pluginProps","customPlugins","plugins","buildPlugins","activePlugins","math","onClick","onMathClick","onFocus","onPluginFocus","onBlur","onPluginBlur","mathMlOptions","textAlign","getValue","onChange","html","extraCSSRules","image","disableImageAlignmentButtons","onDelete","imageSupport","node","done","src","data","newPendingImages","pendingImages","img","key","oldScheduled","scheduled","newState","insertImageRequested","addedImage","getHandler","onFinish","result","cb","onEditingDone","bind","handler","add","_toConsumableArray2","maxImageWidth","maxImageHeight","toolbar","disableScrollbar","disableUnderline","autoWidth","autoWidthToolbar","onDone","_this$state$value$sta","nonEmpty","toolbarInFocus","focusedNode","focusToolbar","editor","blur","startText","text","resetValue","then","table","responseArea","type","maxResponseAreas","languageCharacters","languageCharactersProps","keyPadCharacterRef","setKeypadInteraction","media","focus","createChange","change","uploadSoundSupport","mmlOutput","mmlEditing","runSerializationOnMarkup","relatedTarget","target","findNode","stashedValue","stashValue","c","collapseToStartOf","selectedNode","_this$state","htmlToValue","document","previewText","renderHtmlPreviewContent","openHtmlModeConfirmationDialog","createElement","ref","elementRef","StyledPreviewText","PreviewPrompt","prompt","title","onConfirmText","onCloseText","onConfirm","handleHtmlModeSaveConfirmation","onClose","htmlModeContinueEditing","resolve","_this$state$value$sta2","event","_this$doneButtonRef$c","toolbarElement","toolbarRef","closest","className","isRawDoneButton","doneButtonRef","current","skipBlurHandling","Promise","preBlurValue","handleBlur","editorDOM","querySelector","setTimeout","stateValue","wrapperRef","editorElement","activeElement","isInCurrentComponent","contains","removeEventListener","handleDomBlur","isFocused","_navigator","isTouchDevice","window","navigator","maxTouchPoints","__TEMPORARY_CHANGE_DATA","_this$__TEMPORARY_CHA","domEl","setNodeByKey","addEventListener","shouldFocusEditor","force","_this$state2","stopReset","reduce","s","p","toObject","newValue","Value","fromJSON","toJSON","me","charactersLimit","limit","handlePlugins","object","last","nodes","parent","getParent","Block","pos","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","dropContext","transfer","file","fragment","inline","range","ch","_change$value","_document","selection","startBlock","defaultBlock","defaultMarks","frag","_t","wrap","_context","prev","next","getEventTransfer","files","abrupt","getBase64","sent","Inline","create","isVoid","loading","getEventRange","select","insertInline","InsertImageHandler","fileChosen","insertFragment","getInsertMarksAtRange","Plain","deserialize","stop","_x","_x2","_x3","placeholder","size","isEmpty","contentEditable","style","display","whiteSpace","opacity","pointerEvents","userSelect","React","createRef","handleToolbarFocus","handleToolbarBlur","onResize","debounce","_inherits2","_createClass2","_this2","toolbarContainsFocus","componentDidMount","_this$props$className","_this3","onRef","isResponseAreaEditor","includes","responseAreaEditor","setAttribute","autoFocus","UNSAFE_componentWillReceiveProps","nextProps","_nextProps$value","_this$props$value","_this$state3","isEqual","differentCharacterProps","differentMathMlProps","differentImageMaxDimensionsProps","equals","componentDidUpdate","prevProps","zeroWidthEls","querySelectorAll","Array","from","el","componentWillUnmount","render","_this4","_value$document","_this$props","disabled","spellCheck","highlightShape","onKeyDown","slateEditorExtraStyles","_ref4","showParagraphs","separateParagraphs","otherPluginProps","_objectWithoutProperties2","_this$state4","sizeStyle","wrapperClassNames","classNames","withBg","toolbarOnTop","StyledEditorWrapper","id","StyledUploadingMessage","StyledSlateEditor","noPadding","showParagraph","separateParagraph","innerRef","slateEditor","editorRef","onToolbarFocus","onToolbarBlur","getFocusedValue","onDrop","onDropPaste","onPaste","normalize","readOnly","autoCorrect","renderPlaceholder","onDataChange","changeData","Component","PropTypes","bool","func","isRequired","any","SlateTypes","shape","number","oneOfType","string","isEditor","oneOf","names","arrayOf","rules","language","characterIcon","characters","values","allValid","every","ALL_PLUGINS","Error","join","styled","backgroundColor","marginTop","top","left","transform","tableLayout","borderCollapse","color","background","borderTop","padding","border","content","fontSize","marginBottom","_default"],"sources":["../src/editor.jsx"],"sourcesContent":["import React from 'react';\nimport { Editor as SlateEditor, findNode, getEventRange, getEventTransfer } from 'slate-react';\nimport SlateTypes from 'slate-prop-types';\nimport { Block, Inline, Value } from 'slate';\nimport Plain from 'slate-plain-serializer';\nimport PropTypes from 'prop-types';\nimport { debounce, isEqual } from 'lodash-es';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\n\nimport { color, PreviewPrompt } from '@pie-lib/render-ui';\nimport AlertDialog from '../../config-ui/src/alert-dialog';\n\nimport * as serialization from './serialization';\nimport { getBase64, htmlToValue } from './serialization';\nimport InsertImageHandler from './plugins/image/insert-image-handler';\nimport { ALL_PLUGINS, buildPlugins, DEFAULT_PLUGINS } from './plugins';\n\nexport { ALL_PLUGINS, DEFAULT_PLUGINS, serialization };\n\nconst log = debug('editable-html:editor');\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {},\n};\n\nconst defaultLanguageCharactersProps = [];\n\nconst createToolbarOpts = (toolbarOpts, error, isHtmlMode) => {\n return {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n error,\n isHtmlMode,\n };\n};\n\n/**\n * Converts a value to a CSS size string\n * @param {string|number} v - The value to convert\n * @returns {string|undefined} CSS size string or undefined\n */\nexport const valueToSize = (v) => {\n if (!v) {\n return;\n }\n const calcRegex = /^calc\\((.*)\\)$/;\n\n if (typeof v === 'string') {\n if (v.endsWith('%')) {\n return undefined;\n } else if (\n v.endsWith('px') ||\n v.endsWith('vh') ||\n v.endsWith('vw') ||\n v.endsWith('ch') ||\n v.endsWith('em') ||\n v.match(calcRegex)\n ) {\n return v;\n } else {\n const value = parseInt(v, 10);\n return isNaN(value) ? value : `${value}px`;\n }\n }\n if (typeof v === 'number') {\n return `${v}px`;\n }\n};\n\n/**\n * Builds a style object for editor size constraints\n * @param {Object} props - Editor props containing size values\n * @returns {Object} Style object with width/height constraints\n */\nexport const buildSizeStyle = (props) => {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = props;\n\n return {\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n };\n};\n\n/**\n * The maximum number of characters the editor can support\n * @type {number}\n */\nconst MAX_CHARACTERS_LIMIT = 1000000;\n\nexport class Editor extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n editorRef: PropTypes.func.isRequired,\n error: PropTypes.any,\n onRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n focus: PropTypes.func.isRequired,\n value: SlateTypes.value.isRequired,\n imageSupport: PropTypes.object,\n mathMlOptions: PropTypes.shape({\n mmlOutput: PropTypes.bool,\n mmlEditing: PropTypes.bool,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n charactersLimit: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n slateEditorExtraStyles: PropTypes.object,\n highlightShape: PropTypes.bool,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidthToolbar: PropTypes.bool,\n pluginProps: PropTypes.any,\n // customPlugins should be inside pluginProps (a property inside pluginProps)\n // customPlugins: PropTypes.arrayOf(\n // PropTypes.shape({\n // event: PropTypes.string,\n // icon: PropTypes.string,\n // iconType: PropTypes.string,\n // iconAlt: PropTypes.string\n // }),\n // ),\n placeholder: PropTypes.string,\n isEditor: PropTypes.bool,\n responseAreaProps: PropTypes.shape({\n type: PropTypes.oneOf([\n 'explicit-constructed-response',\n 'inline-dropdown',\n 'drag-in-the-blank',\n 'math-templated',\n ]),\n options: PropTypes.object,\n respAreaToolbar: PropTypes.func,\n onHandleAreaChange: PropTypes.func,\n maxResponseAreas: PropTypes.number,\n error: PropTypes.any,\n }),\n extraCSSRules: PropTypes.shape({\n names: PropTypes.arrayOf(PropTypes.string),\n rules: PropTypes.string,\n }),\n languageCharactersProps: PropTypes.arrayOf(\n PropTypes.shape({\n language: PropTypes.string,\n characterIcon: PropTypes.string,\n characters: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n }),\n ),\n runSerializationOnMarkup: PropTypes.func,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool,\n doneOn: PropTypes.string,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n activePlugins: PropTypes.arrayOf((values) => {\n const allValid = values.every((v) => ALL_PLUGINS.includes(v));\n\n return !allValid && new Error(`Invalid values: ${values}, values must be one of [${ALL_PLUGINS.join(',')}]`);\n }),\n className: PropTypes.string,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n static defaultProps = {\n disableUnderline: true,\n onFocus: () => {},\n onBlur: () => {},\n onKeyDown: () => {},\n runSerializationOnMarkup: () => {},\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n toolbarOpts: defaultToolbarOpts,\n responseAreaProps: defaultResponseAreaProps,\n languageCharactersProps: defaultLanguageCharactersProps,\n extraCSSRules: null,\n isEditor: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n toolbarOpts: createToolbarOpts(props.toolbarOpts, props.error),\n pendingImages: [],\n isHtmlMode: false,\n isEditedInHtmlMode: false,\n focusToolbar: false,\n dialog: {\n open: false,\n },\n };\n\n this.keyPadCharacterRef = React.createRef();\n this.doneButtonRef = React.createRef();\n this.keypadInteractionDetected = false;\n\n this.toggleHtmlMode = this.toggleHtmlMode.bind(this);\n this.handleToolbarFocus = this.handleToolbarFocus.bind(this);\n this.handleToolbarBlur = this.handleToolbarBlur.bind(this);\n\n this.onResize = debounce(() => {\n if (!this.state.isHtmlMode && props.onChange) {\n props.onChange(this.state.value, true);\n }\n }, 50);\n\n this.handlePlugins(this.props);\n }\n\n handleToolbarFocus() {\n if (this.state.focusToolbar) {\n return;\n }\n\n this.setState({ focusToolbar: true });\n }\n\n setKeypadInteraction = (interacted) => {\n this.keypadInteractionDetected = interacted;\n };\n\n handleToolbarBlur() {\n setTimeout(() => {\n if (!this.toolbarContainsFocus()) {\n this.setState({ focusToolbar: false });\n }\n }, 0);\n }\n\n toolbarContainsFocus() {\n if (!this.toolbarRef) return false;\n const toolbarElement = this.toolbarRef;\n const activeElement = document.activeElement;\n\n return toolbarElement && toolbarElement.contains(activeElement);\n }\n\n handleDialog = (open, extraDialogProps = {}, callback) => {\n this.setState(\n {\n dialog: {\n open,\n ...extraDialogProps,\n },\n },\n callback,\n );\n };\n\n toggleHtmlMode = () => {\n this.setState(\n (prevState) => ({\n isHtmlMode: !prevState.isHtmlMode,\n isEditedInHtmlMode: false,\n }),\n () => {\n const { error } = this.props;\n const { toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(toolbarOpts, error, this.state.isHtmlMode);\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n },\n );\n };\n\n handlePlugins = (props) => {\n const normalizedResponseAreaProps = {\n ...defaultResponseAreaProps,\n ...props.responseAreaProps,\n };\n\n const htmlPluginOpts = {\n currentValue: this.props.value,\n isHtmlMode: this.state.isHtmlMode,\n isEditedInHtmlMode: this.state.isEditedInHtmlMode,\n toggleHtmlMode: this.toggleHtmlMode,\n handleAlertDialog: this.handleDialog,\n };\n let { customPlugins } = props.pluginProps || {};\n customPlugins = customPlugins || [];\n\n this.plugins = buildPlugins(props.activePlugins, customPlugins, {\n math: {\n onClick: this.onMathClick,\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n ...props.mathMlOptions,\n },\n textAlign: {\n getValue: () => this.state.value,\n onChange: this.onChange,\n },\n html: htmlPluginOpts,\n extraCSSRules: props.extraCSSRules || {},\n image: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node, done) => {\n const src = node.data.get('src');\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== node.key);\n const { scheduled: oldScheduled } = this.state;\n const newState = {\n pendingImages: newPendingImages,\n scheduled: oldScheduled && newPendingImages.length === 0 ? false : oldScheduled,\n };\n\n this.setState(newState, () => done(e, this.state.value));\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const { pendingImages } = this.state;\n const onFinish = (result) => {\n let cb;\n\n if (this.state.scheduled && result) {\n // finish editing only on success\n cb = this.onEditingDone.bind(this);\n }\n\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n this.setState(newState, cb);\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish, () => this.state.value);\n props.imageSupport.add(handler);\n };\n\n this.setState(\n {\n pendingImages: [...pendingImages, addedImage],\n },\n callback,\n );\n }),\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n toolbar: {\n /**\n * To minimize converting html -> state -> html\n * We only emit markup once 'done' is clicked.\n */\n disableScrollbar: !!props.disableScrollbar,\n disableUnderline: props.disableUnderline,\n autoWidth: props.autoWidthToolbar,\n onDone: () => {\n const { nonEmpty } = props;\n\n log('[onDone]');\n this.setState({ toolbarInFocus: false, focusedNode: null, focusToolbar: false });\n this.editor.blur();\n\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n });\n } else {\n this.onEditingDone();\n }\n },\n },\n table: {\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n responseArea: {\n type: normalizedResponseAreaProps.type,\n options: normalizedResponseAreaProps.options,\n maxResponseAreas: normalizedResponseAreaProps.maxResponseAreas,\n respAreaToolbar: normalizedResponseAreaProps.respAreaToolbar,\n onHandleAreaChange: normalizedResponseAreaProps.onHandleAreaChange,\n error: normalizedResponseAreaProps.error,\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: this.keyPadCharacterRef,\n setKeypadInteraction: this.setKeypadInteraction,\n media: {\n focus: this.focus,\n createChange: () => this.state.value.change(),\n onChange: this.onChange,\n uploadSoundSupport: props.uploadSoundSupport,\n },\n });\n\n if (props.mathMlOptions.mmlOutput || props.mathMlOptions.mmlEditing) {\n this.props.runSerializationOnMarkup();\n }\n };\n\n componentDidMount() {\n // onRef is needed to get the ref of the component\n this.props.onRef(this);\n\n window.addEventListener('resize', this.onResize);\n\n const isResponseAreaEditor = this.props.className?.includes('response-area-editor');\n\n if (isResponseAreaEditor && this.editor) {\n const responseAreaEditor = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n if (responseAreaEditor) {\n responseAreaEditor.setAttribute('aria-label', 'Answer');\n }\n }\n\n if (this.editor && this.props.autoFocus) {\n Promise.resolve().then(() => {\n if (this.editor) {\n const editorDOM = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n this.editor.focus();\n\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { isHtmlMode, toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts, nextProps.error, isHtmlMode);\n\n if (!isEqual(newToolbarOpts, toolbarOpts)) {\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n }\n\n const differentCharacterProps = !isEqual(nextProps.languageCharactersProps, this.props.languageCharactersProps);\n const differentMathMlProps = !isEqual(nextProps.mathMlOptions, this.props.mathMlOptions);\n const differentImageMaxDimensionsProps =\n !isEqual(nextProps.maxImageWidth, this.props.maxImageWidth) ||\n !isEqual(nextProps.maxImageHeight, this.props.maxImageHeight);\n\n if (differentCharacterProps || differentMathMlProps || differentImageMaxDimensionsProps) {\n this.handlePlugins(nextProps);\n }\n\n if (!nextProps.value?.document?.equals(this.props.value?.document)) {\n this.setState({\n focus: false,\n value: nextProps.value,\n });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n // The cursor is on a zero width element and when that is placed near void elements, it is not visible\n // so we increase the width to at least 2px in order for the user to see it\n\n // Trigger plugins and finish editing if:\n // 1. The 'isHtmlMode' state has been toggled.\n // 2. We're currently in 'isHtmlMode' and the editor value has been modified.\n if (\n this.state.isHtmlMode !== prevState.isHtmlMode ||\n (this.state.isHtmlMode && !prevState.isEditedInHtmlMode && this.state.isEditedInHtmlMode)\n ) {\n this.handlePlugins(this.props);\n }\n\n const zeroWidthEls = document.querySelectorAll('[data-slate-zero-width=\"z\"]');\n\n Array.from(zeroWidthEls).forEach((el) => {\n el.style.minWidth = '2px';\n el.style.display = 'inline-block';\n });\n }\n\n onPluginBlur = (e) => {\n log('[onPluginBlur]', e && e.relatedTarget);\n const target = e && e.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n log('[onPluginBlur] node: ', node);\n this.setState({ focusedNode: node }, () => {\n this.resetValue();\n });\n };\n\n onPluginFocus = (e) => {\n log('[onPluginFocus]', e && e.target);\n const target = e && e.target;\n if (target) {\n const node = findNode(target, this.state.value);\n log('[onPluginFocus] node: ', node);\n\n const stashedValue = this.state.stashedValue || this.state.value;\n this.setState({ focusedNode: node, stashedValue });\n } else {\n this.setState({ focusedNode: null });\n }\n this.stashValue();\n };\n\n onMathClick = (node) => {\n this.editor.change((c) => c.collapseToStartOf(node));\n this.setState({ selectedNode: node });\n };\n\n onEditingDone = () => {\n const { isHtmlMode, dialog, value, pendingImages } = this.state;\n\n // Handling HTML mode and dialog state\n if (isHtmlMode) {\n // Early return if HTML mode is enabled\n if (dialog?.open) return;\n\n const currentValue = htmlToValue(value.document.text);\n const previewText = this.renderHtmlPreviewContent();\n\n this.openHtmlModeConfirmationDialog(currentValue, previewText);\n return;\n }\n\n if (pendingImages.length) {\n // schedule image processing\n this.setState({ scheduled: true });\n return;\n }\n\n // Finalizing editing\n log('[onEditingDone]');\n this.setState({ pendingImages: [], stashedValue: null, focusedNode: null });\n log('[onEditingDone] value: ', this.state.value);\n this.props.onChange(this.state.value, true);\n };\n\n /**\n * Renders the HTML preview content to be displayed inside the dialog.\n * This content includes the edited HTML and a prompt for the user.\n */\n renderHtmlPreviewContent = () => {\n return (\n <div ref={(ref) => (this.elementRef = ref)}>\n <div>Preview of Edited Html:</div>\n {/* TODO: check if this works and we don't need to send style over to preview prompt */}\n <StyledPreviewText>\n <PreviewPrompt prompt={this.state.value.document.text} />\n </StyledPreviewText>\n <div>Would you like to save these changes ?</div>\n </div>\n );\n };\n\n /**\n * Opens a confirmation dialog in HTML mode, displaying the preview of the current HTML content\n * and offering options to save or continue editing.\n */\n openHtmlModeConfirmationDialog = (currentValue, previewText) => {\n this.setState({\n dialog: {\n open: true,\n title: 'Content Preview & Save',\n text: previewText,\n onConfirmText: 'Save changes',\n onCloseText: 'Continue editing',\n onConfirm: () => {\n this.handleHtmlModeSaveConfirmation(currentValue);\n },\n onClose: this.htmlModeContinueEditing,\n },\n });\n };\n\n /**\n * Handles the save confirmation action in HTML mode. This updates the value to the confirmed\n * content, updates value on props, and exits the HTML mode.\n * @param {string} currentValue - The confirmed value of the HTML content to save.\n */\n handleHtmlModeSaveConfirmation = (currentValue) => {\n this.setState({ value: currentValue });\n this.props.onChange(currentValue, true);\n this.handleDialog(false);\n this.toggleHtmlMode();\n };\n\n /**\n * Closes the dialog in HTML mode and allows the user to continue editing the html content.\n * This function is invoked when the user opts to not save the current changes.\n */\n htmlModeContinueEditing = () => {\n this.handleDialog(false);\n };\n\n /**\n * Remove onResize event listener\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n // Allowing time for onChange to take effect if it is called\n handleBlur = (resolve) => {\n const { nonEmpty } = this.props;\n const {\n toolbarOpts: { doneOn },\n } = this.state;\n\n this.setState({ toolbarInFocus: false, focusedNode: null });\n\n if (this.editor) {\n this.editor.blur();\n }\n\n if (doneOn === 'blur') {\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n resolve();\n });\n } else {\n this.onEditingDone();\n resolve();\n }\n }\n };\n\n onBlur = (event) => {\n log('[onBlur]');\n const relatedTarget = event.relatedTarget;\n const toolbarElement = this.toolbarRef && relatedTarget?.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n\n // Check if relatedTarget is a done button\n const isRawDoneButton =\n this.doneButtonRef && relatedTarget?.closest(`[class*=\"${this.doneButtonRef.current?.className}\"]`);\n\n // Skip onBlur handling if relatedTarget is a button from the KeyPad characters\n this.skipBlurHandling = this.keypadInteractionDetected && relatedTarget !== null;\n\n if (toolbarElement && !isRawDoneButton && !this.state.focusToolbar) {\n this.setState({\n focusToolbar: true,\n });\n }\n\n const node = relatedTarget ? findNode(relatedTarget, this.state.value) : null;\n\n log('[onBlur] node: ', node);\n\n return new Promise((resolve) => {\n if (!this.skipBlurHandling) {\n this.setKeypadInteraction(false);\n this.setState(\n { preBlurValue: this.state.value, focusedNode: !node ? null : node },\n this.handleBlur.bind(this, resolve),\n );\n }\n\n this.props.onBlur(event);\n });\n };\n\n handleDomBlur = (e) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n setTimeout(() => {\n const { value: stateValue } = this.state;\n\n if (!this.wrapperRef) {\n return;\n }\n\n const editorElement = !editorDOM || document.activeElement.closest(`[class*=\"${editorDOM.className}\"]`);\n const toolbarElement =\n !this.toolbarRef || document.activeElement.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n const isInCurrentComponent = this.wrapperRef.contains(editorElement) || this.wrapperRef.contains(toolbarElement);\n\n if (!isInCurrentComponent) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n\n if (stateValue.isFocused) {\n this.onBlur(e);\n }\n }\n }, 50);\n };\n\n /*\n * Needs to be wrapped otherwise it causes issues because of race conditions\n * Known issue for slatejs. See: https://github.com/ianstormtaylor/slate/issues/2097\n * Using timeout I wasn't able to test this\n *\n * Note: The use of promises has been causing issues with MathQuill\n * */\n onFocus = (event, change) =>\n new Promise((resolve) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n const isTouchDevice =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator?.maxTouchPoints > 0);\n\n log('[onFocus]', document.activeElement);\n\n if (this.keypadInteractionDetected && this.__TEMPORARY_CHANGE_DATA) {\n this.__TEMPORARY_CHANGE_DATA = null;\n }\n\n /**\n * This is a temporary hack - @see changeData below for some more information.\n */\n if (this.__TEMPORARY_CHANGE_DATA) {\n const { key, data } = this.__TEMPORARY_CHANGE_DATA;\n const domEl = document.querySelector(`[data-key=\"${key}\"]`);\n\n if (domEl) {\n let change = this.state.value.change().setNodeByKey(key, { data });\n this.setState({ value: change.value }, () => {\n this.__TEMPORARY_CHANGE_DATA = null;\n });\n }\n }\n\n /**\n * This is needed just in case the browser decides to make the editor\n * lose focus without triggering the onBlur event (can happen in a few cases).\n * This will also trigger onBlur if the user clicks outside of the page when the editor\n * is focused.\n */\n if (editorDOM === document.activeElement) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n editorDOM.addEventListener('blur', this.handleDomBlur);\n }\n\n this.stashValue();\n this.props.onFocus();\n\n // Added for accessibility: Ensures the editor gains focus when tabbed to for improved keyboard navigation\n const shouldFocusEditor = !this.keypadInteractionDetected && !isTouchDevice;\n\n if (shouldFocusEditor) {\n change?.focus();\n }\n\n resolve();\n });\n\n stashValue = () => {\n log('[stashValue]');\n\n if (!this.state.stashedValue) {\n this.setState({ stashedValue: this.state.value });\n }\n };\n\n /**\n * Reset the value if the user didn't click done.\n */\n resetValue = (force) => {\n const { value, focusedNode } = this.state;\n\n const stopReset = this.plugins.reduce((s, p) => {\n return s || (p.stopReset && p.stopReset(this.state.value));\n }, false);\n\n log('[resetValue]', value.isFocused, focusedNode, 'stopReset: ', stopReset);\n if ((this.state.stashedValue && !value.isFocused && !focusedNode && !stopReset) || force) {\n log('[resetValue] resetting...');\n log('stashed', this.state.stashedValue.document.toObject());\n log('current', this.state.value.document.toObject());\n\n const newValue = Value.fromJSON(this.state.stashedValue.toJSON());\n\n log('newValue: ', newValue.document);\n return new Promise((resolve) => {\n setTimeout(() => {\n this.setState({ value: newValue, stashedValue: null }, () => {\n log('value now: ', this.state.value.document.toJSON());\n resolve();\n });\n }, 50);\n });\n } else {\n return Promise.resolve({});\n }\n };\n\n onChange = (change, done) => {\n log('[onChange]');\n window.me = this;\n\n const { value } = change;\n const { charactersLimit } = this.props;\n let limit = charactersLimit;\n if (!limit || limit > MAX_CHARACTERS_LIMIT) {\n limit = MAX_CHARACTERS_LIMIT;\n }\n\n if (value && value.document && value.document.text && value.document.text.length > limit) {\n return;\n }\n\n // Mark the editor as edited when in HTML mode and its content has changed.\n // This status will later be used to decide whether to prompt a warning to the user when exiting HTML mode.\n const isEditedInHtmlMode = !this.state.isHtmlMode\n ? false\n : this.state.value.document.text !== value.document.text\n ? true\n : this.state.isEditedInHtmlMode;\n\n if (isEditedInHtmlMode != this.state.isEditedInHtmlMode) {\n this.handlePlugins(this.props);\n }\n\n this.setState({ value, isEditedInHtmlMode }, () => {\n log('[onChange], call done()');\n\n if (done) {\n done();\n }\n });\n };\n\n getFocusedValue = () => {\n if (this.state.value.isFocused) {\n return this.state.value;\n }\n\n return this.state.preBlurValue;\n };\n\n // Use the exported utility functions\n buildSizeStyle() {\n return buildSizeStyle(this.props);\n }\n\n validateNode = (node) => {\n if (node.object !== 'block') return;\n\n const last = node.nodes.last();\n if (!last) return;\n\n if (last.type !== 'image') return;\n\n log('[validateNode] last is image..');\n\n const parent = last.getParent(last.key);\n const p = Block.getParent(last.key);\n log('[validateNode] parent:', parent, p);\n\n return undefined;\n };\n\n changeData = (key, data) => {\n log('[changeData]. .. ', key, data);\n\n /**\n * HACK ALERT: We should be calling setState here and storing the change data:\n *\n * <code>this.setState({changeData: { key, data}})</code>\n * However this is causing issues with the Mathquill instance. The 'input' event stops firing on the element and no\n * more changes get through. The issues seem to be related to the promises in onBlur/onFocus. But removing these\n * brings it's own problems. A major clean up is planned for this component so I've decided to temporarily settle\n * on this hack rather than spend more time on this.\n */\n\n // Uncomment this line to see the bug described above.\n // this.setState({changeData: {key, data}})\n\n this.__TEMPORARY_CHANGE_DATA = { key, data };\n };\n\n focus = (pos, node) => {\n const position = pos || 'end';\n\n this.props.focus(position, node);\n };\n\n onDropPaste = async (event, change, dropContext) => {\n const editor = change.editor;\n const transfer = getEventTransfer(event);\n const file = transfer.files && transfer.files[0];\n\n const type = transfer.type;\n const fragment = transfer.fragment;\n const text = transfer.text;\n\n if (file && (file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png')) {\n if (!this.props.imageSupport) {\n return;\n }\n try {\n log('[onDropPaste]');\n const src = await getBase64(file);\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loading: false,\n src,\n },\n });\n\n if (dropContext) {\n this.focus();\n } else {\n const range = getEventRange(event, editor);\n if (range) {\n change.select(range);\n }\n }\n\n const ch = change.insertInline(inline);\n this.onChange(ch);\n const handler = new InsertImageHandler(\n inline,\n () => {},\n () => this.state.value,\n this.onChange,\n true,\n );\n handler.fileChosen(file);\n this.props.imageSupport.add(handler);\n } catch (err) {\n log('[onDropPaste] error: ', err);\n }\n } else if (type === 'fragment') {\n change.insertFragment(fragment);\n } else if (type === 'text' || type === 'html') {\n if (!text) {\n return;\n }\n const {\n value: { document, selection, startBlock },\n } = change;\n\n if (startBlock.isVoid) {\n return;\n }\n\n const defaultBlock = startBlock;\n const defaultMarks = document.getInsertMarksAtRange(selection);\n const frag = Plain.deserialize(text, {\n defaultBlock,\n defaultMarks,\n }).document;\n change.insertFragment(frag);\n }\n };\n\n renderPlaceholder = (props) => {\n const { editor } = props;\n const { document } = editor.value;\n\n if (!editor.props.placeholder || document.text !== '' || document.nodes.size !== 1 || !document.isEmpty) {\n return false;\n }\n\n return (\n <span\n contentEditable={false}\n style={{\n display: 'inline-block',\n width: 'fit-content', // for centering the placeholder if text-align is set to center\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: '0.33',\n pointerEvents: 'none',\n userSelect: 'none',\n }}\n >\n {editor.props.placeholder}\n </span>\n );\n };\n\n render() {\n const {\n disabled,\n spellCheck,\n highlightShape,\n className,\n placeholder,\n pluginProps,\n onKeyDown,\n slateEditorExtraStyles,\n } = this.props;\n // We don't want to send customPlugins to slate.\n // Not sure if they would do any harm, but I think it's better to not send them.\n // We use custom plugins to be able to add custom buttons\n // eslint-disable-next-line no-unused-vars\n const { customPlugins, showParagraphs, separateParagraphs, ...otherPluginProps } = pluginProps || {};\n\n const { value, focusedNode, toolbarOpts, dialog, scheduled } = this.state;\n\n log('[render] value: ', value);\n const sizeStyle = this.buildSizeStyle();\n const wrapperClassNames = classNames(\n {\n withBg: highlightShape,\n toolbarOnTop: toolbarOpts.alwaysVisible && toolbarOpts.position === 'top',\n scheduled: scheduled,\n },\n className,\n );\n\n return (\n <StyledEditorWrapper\n ref={(ref) => (this.wrapperRef = ref)}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n className={wrapperClassNames}\n id={`editor-${value?.document?.key}`}\n >\n {scheduled && <StyledUploadingMessage>Uploading image and then saving...</StyledUploadingMessage>}\n <StyledSlateEditor\n className={classNames({\n noPadding: toolbarOpts?.noPadding,\n showParagraph: showParagraphs && !showParagraphs.disabled,\n separateParagraph: separateParagraphs && !separateParagraphs.disabled,\n })}\n >\n <SlateEditor\n plugins={this.plugins}\n innerRef={(r) => {\n if (r) {\n this.slateEditor = r;\n }\n }}\n ref={(r) => (this.editor = r && this.props.editorRef(r))}\n toolbarRef={(r) => {\n if (r) {\n this.toolbarRef = r;\n }\n }}\n doneButtonRef={this.doneButtonRef}\n value={value}\n focusToolbar={this.state.focusToolbar}\n onToolbarFocus={this.handleToolbarFocus}\n onToolbarBlur={this.handleToolbarBlur}\n focus={this.focus}\n onKeyDown={onKeyDown}\n onChange={this.onChange}\n getFocusedValue={this.getFocusedValue}\n onBlur={this.onBlur}\n onDrop={(event, editor) => this.onDropPaste(event, editor, true)}\n onPaste={(event, editor) => this.onDropPaste(event, editor)}\n onFocus={this.onFocus}\n onEditingDone={this.onEditingDone}\n focusedNode={focusedNode}\n normalize={this.normalize}\n readOnly={disabled}\n spellCheck={spellCheck}\n autoCorrect={spellCheck}\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n ...slateEditorExtraStyles,\n }}\n pluginProps={otherPluginProps}\n toolbarOpts={toolbarOpts}\n placeholder={placeholder}\n renderPlaceholder={this.renderPlaceholder}\n onDataChange={this.changeData}\n />\n </StyledSlateEditor>\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n onConfirmText={dialog.onConfirmText}\n onCloseText={dialog.onCloseText}\n />\n </StyledEditorWrapper>\n );\n }\n}\n\n// TODO color - hardcoded gray background and keypad colors will need to change too\nconst StyledEditorWrapper = styled('div')(() => ({\n '&.withBg': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n '&.scheduled': {\n opacity: 0.5,\n pointerEvents: 'none',\n position: 'relative',\n },\n '&.toolbarOnTop': {\n marginTop: '45px',\n },\n}));\n\nconst StyledUploadingMessage = styled('div')({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n});\n\nconst StyledSlateEditor = styled('div')(() => ({\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n // TODO perhaps secondary color for background, for now disable\n // '&:nth-child(2n)': {\n // backgroundColor: '#f6f8fa'\n // }\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n '&.showParagraph': {\n // a div that has a div after it\n '& > div:has(+ div)::after': {\n display: 'block',\n content: '\"¶\"',\n fontSize: '1em',\n color: '#146EB3',\n },\n },\n '&.separateParagraph': {\n // a div that has a div after it\n '& > div:has(+ div)': {\n marginBottom: '1em',\n },\n },\n '&.noPadding': {\n padding: '0 !important',\n },\n}));\n\nconst StyledPreviewText = styled('div')({\n marginBottom: '36px',\n marginTop: '6px',\n padding: '20px',\n backgroundColor: 'rgba(0,0,0,0.06)',\n});\n\nexport default Editor;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/index.js
CHANGED
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.array.filter.js");
|
|
5
|
-
require("core-js/modules/es.array.for-each.js");
|
|
6
|
-
require("core-js/modules/es.array.iterator.js");
|
|
7
|
-
require("core-js/modules/es.object.define-properties.js");
|
|
8
|
-
require("core-js/modules/es.object.define-property.js");
|
|
9
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
-
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
11
|
-
require("core-js/modules/es.object.keys.js");
|
|
12
|
-
require("core-js/modules/es.object.to-string.js");
|
|
13
|
-
require("core-js/modules/es.reflect.construct.js");
|
|
14
|
-
require("core-js/modules/es.string.iterator.js");
|
|
15
|
-
require("core-js/modules/es.weak-map.js");
|
|
16
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
17
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
18
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
19
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
20
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -57,7 +42,6 @@ Object.defineProperty(exports, "valueToHtml", {
|
|
|
57
42
|
return _serialization.valueToHtml;
|
|
58
43
|
}
|
|
59
44
|
});
|
|
60
|
-
require("core-js/modules/es.object.assign.js");
|
|
61
45
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
62
46
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
63
47
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|