@edtr-io/plugin-text
Version:
## Table of contents
3 lines (2 loc) • 26.1 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@edtr-io/plugin"),n=require("slate"),r=require("@edtr-io/core"),o=require("@edtr-io/editor-ui/beta"),i=require("@prezly/slate-lists"),l=require("react"),a=e(l),c=require("slate-react"),s=require("@edtr-io/ui"),u=e(require("is-hotkey")),d=require("@edtr-io/core/beta"),f=require("@edtr-io/plugin-rows/internal"),m=require("@edtr-io/store"),h=require("ramda"),p=require("@edtr-io/editor-ui"),g=require("@edtr-io/math"),v=e(require("katex"));function E(){return(E=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var y,T=s.styled.div((function(e){return{display:"inline-block",backgroundColor:e.color,borderRadius:" 100%",width:"19px",height:"19px",margin:"3px",verticalAlign:"middle"}})),k=s.styled.span({position:"relative",verticalAlign:"middle",display:"inline-block"}),x=s.styled.span({display:"flex",alignItems:"center",flexDirection:"column"}),C=s.styled.span((function(e){var t=e.index,n=e.colorsTheme;return{border:"2px solid "+(void 0===t?n.defaultColor:n.colors[t%n.colors.length]),borderRadius:"4px",bottom:"0",width:"80%",position:"absolute"}})),w=function(e){var t=e.index,n=e.colorsTheme;return a.createElement(k,null,a.createElement(x,null,a.createElement(s.EdtrIcon,{icon:s.edtrColorText}),a.createElement(C,{colorsTheme:n,index:t})))};!function(e){e.code="code",e.colors="colors",e.headings="headings",e.katex="katex",e.links="links",e.lists="lists",e.math="math",e.paragraphs="paragraphs",e.richText="richText"}(y||(y={}));var L=function(e){return function(t){var r;return(null==(r=n.Editor.marks(t))?void 0:r.color)===e}},I=function(e){n.Editor.removeMark(e,"color")},R=function(e){return function(t){L(e)(t)?n.Editor.removeMark(t,"color"):n.Editor.addMark(t,"color",e)}},S=function(e){var t;return null==(t=n.Editor.marks(e))?void 0:t.color};function M(e,t){var r=t.selection;return!!r&&!!Array.from(n.Editor.nodes(t,{at:n.Editor.unhangRange(t,r),match:function(t){return!n.Editor.isEditor(t)&&n.Element.isElement(t)&&e(t)}}))[0]}function N(e){var t=e.selection;if(!t)return null;for(var r=n.Editor.string(e,t),o=n.Range.isBackward(t),i=t.anchor.offset,l=t.focus.offset;r.startsWith(" ");)o?l++:i++,r=r.substring(1);for(;r.endsWith(" ");)o?i--:l--,r=r.substring(0,r.length-1);n.Transforms.setSelection(e,{anchor:E({},t.anchor,{offset:i}),focus:E({},t.focus,{offset:l})})}function O(e){return n.Element.isElement(e)&&"a"===e.type}function D(e){return M((function(e){return"a"===e.type}),e)}function A(e){return M((function(e){return"ordered-list"===e.type}),e)}function j(e){return M((function(e){return"unordered-list"===e.type}),e)}function q(e){j(e)?(i.ListsEditor.unwrapList(e),i.ListsEditor.wrapInList(e,i.ListType.ORDERED)):A(e)?i.ListsEditor.unwrapList(e):i.ListsEditor.wrapInList(e,i.ListType.ORDERED)}function P(e){A(e)?(i.ListsEditor.unwrapList(e),i.ListsEditor.wrapInList(e,i.ListType.UNORDERED)):j(e)?i.ListsEditor.unwrapList(e):i.ListsEditor.wrapInList(e,i.ListType.UNORDERED)}function H(e){return M((function(e){return"math"===e.type}),e)}function B(e){if(H(e))n.Transforms.removeNodes(e,{match:function(e){return n.Element.isElement(e)&&"math"===e.type}});else{var t=e.selection;if(!t)return;n.Range.isCollapsed(t)?n.Transforms.insertNodes(e,{type:"math",src:"",inline:!0,children:[{text:""}]}):(n.Transforms.insertNodes(e,[{type:"math",src:n.Editor.string(e,t)||"",inline:!0,children:[]}],{at:t}),n.Transforms.move(e,{distance:1,reverse:!0}))}}function U(e){var t;return!0===(null==(t=n.Editor.marks(e))?void 0:t.strong)}function W(e){N(e),U(e)?n.Editor.removeMark(e,"strong"):n.Editor.addMark(e,"strong",!0)}function _(e){var t;return!0===(null==(t=n.Editor.marks(e))?void 0:t.em)}function K(e){N(e),_(e)?n.Editor.removeMark(e,"em"):n.Editor.addMark(e,"em",!0)}function F(e){var t;return!0===(null==(t=n.Editor.marks(e))?void 0:t.code)}function z(e){F(e)?n.Editor.removeMark(e,"code"):n.Editor.addMark(e,"code",!0)}function V(e){return M((function(e){return"h"===e.type}),e)}var $,X=function(e){return function(t){return M((function(t){return"h"===t.type&&t.level===e}),t)}},G=function(e){return function(t){X(e)(t)?(n.Transforms.setNodes(t,{type:"p"}),n.Transforms.unsetNodes(t,"level")):n.Transforms.setNodes(t,{type:"h",level:e})}},Q=(($={})[y.math]=function(e){var t=e.isInline,n=e.isVoid;return e.isInline=function(e){return"math"===e.type||t(e)},e.isVoid=function(e){return"math"===e.type||n(e)},e},$[y.links]=function(e){var t=e.isInline;return e.isInline=function(e){return"a"===e.type||t(e)},e},$[y.lists]=function(e){var t=i.withLists({isConvertibleToListTextNode:function(e){return n.Element.isElementType(e,"p")},isDefaultTextNode:function(e){return n.Element.isElementType(e,"p")},isListNode:function(e,t){return t?n.Element.isElementType(e,t):n.Element.isElementType(e,"ordered-list")||n.Element.isElementType(e,"unordered-list")},isListItemNode:function(e){return n.Element.isElementType(e,"list-item")},isListItemTextNode:function(e){return n.Element.isElementType(e,"list-item-child")},createDefaultTextNode:function(e){return void 0===e&&(e={}),E({children:[{text:""}]},e,{type:"p"})},createListNode:function(e,t){return void 0===e&&(e=i.ListType.UNORDERED),void 0===t&&(t={}),E({children:[{text:""}]},t,{type:e===i.ListType.ORDERED?"ordered-list":"unordered-list"})},createListItemNode:function(e){return void 0===e&&(e={}),E({children:[{text:""}]},e,{type:"list-item"})},createListItemTextNode:function(e){return void 0===e&&(e={}),E({children:[{text:""}]},e,{type:"list-item-child"})}});return i.withListsReact(t(e))},$),J=function(e){return function(t){!function(e){if(D(e))n.Transforms.unwrapNodes(e,{match:O});else{var t=e.selection;t&&n.Range.isCollapsed(t)?n.Transforms.insertNodes(e,{type:"a",href:"",children:[{text:" "}]}):(n.Transforms.wrapNodes(e,{type:"a",href:"",children:[]},{split:!0}),n.Transforms.collapse(e,{edge:"end"}))}}(t),e(!0)}},Y={SELECT_UP:"up",SELECT_DOWN:"down",INSERT:"enter"},Z=[y.code,y.colors,y.headings,y.links,y.lists,y.math,y.richText],ee=[{value:"#1794c1",name:"Blue"},{value:"#469a40",name:"Green"},{value:"#ff6703",name:"Orange"}];function te(e,t){return n.Transforms.setNodes(t,{type:"h",level:e}),!0}function ne(){return"undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0)}var re,oe=s.styled.button((function(e){var t=e.active,n=e.theme;return{backgroundColor:t?n.active.backgroundColor:n.backgroundColor,cursor:"pointer",boxShadow:t?"inset 0 1px 3px 0 rgba(0,0,0,0.50)":void 0,color:t?n.active.color:n.color,outline:"none",height:"25px",border:"none",borderRadius:n.borderRadius,margin:"5px",padding:"0px",width:"25px","&:hover":{color:n.hoverColor}}}));function ie(e){return h.has("children",e)}function le(e){var t=e.theme,n=e.controls,r=e.editor,o=a.useState(),i=o[0],l=o[1];if("number"!=typeof i)return a.createElement(a.Fragment,null,n.map((function(e,n){return a.createElement(oe,{active:e.isActive(r),theme:t,title:e.title,onMouseDown:function(t){t.preventDefault(),ie(e)?l(n):e.onClick(r)},key:n},e.renderIcon(r))})));var c=n[i];if(!ie(c))return null;var s={isActive:function(){return!1},renderIcon:function(){return c.renderCloseMenuIcon()},onClick:function(){l(void 0)},title:c.closeMenuTitle},u=[].concat(c.children,[s]);return a.createElement(a.Fragment,null,u.map((function(e,n){return a.createElement(oe,{active:e.isActive(r),theme:t,title:e.title,onMouseDown:function(t){t.preventDefault(),e.onClick(r)},key:n},e.renderIcon(r))})))}function ae(e){return e===re.above}!function(e){e.above="above",e.below="below"}(re||(re={}));var ce=s.styled.div({position:"absolute",top:"-10000px",left:"-10000px",opacity:0,transition:"opacity 0.5s",zIndex:95,whiteSpace:"nowrap"}),se=s.styled.div((function(e){var t=e.theme;return{boxShadow:t.overlay.boxShadow,backgroundColor:t.overlay.backgroundColor,color:t.overlay.color,borderRadius:t.borderRadius}})),ue=s.styled.div((function(e){var t,n=e.theme;return(t={position:"relative",width:0,height:0,borderLeft:"5px solid transparent",borderRight:"5px solid transparent"})[ae(e.position)?"borderTop":"borderBottom"]="10px solid "+n.borderColor,t}));function de(e){var t=e.config,n=e.children,r=e.initialPosition,o=e.hidden,i=c.useSlate(),l=a.useRef(null),s=a.useRef(null),u=a.useState(r),d=u[0],f=u[1];return a.useLayoutEffect((function(){if(l.current&&s.current&&i.selection){if(o)return l.current.style.top="",void(l.current.style.left="");var e=window.getSelection();if(e&&0!==e.rangeCount){var t=e.getRangeAt(0).getBoundingClientRect();if(t&&0!==t.height&&l.current.offsetParent){var n=l.current.offsetParent.getBoundingClientRect();l.current.style.opacity="1";var a=t.top-l.current.offsetHeight-6;f(r===re.above&&a>=0?re.above:re.below),l.current.style.top=(d===re.above?a:t.bottom+6)-n.top+"px",l.current.style.left=Math.min(Math.max(t.left-n.left-l.current.offsetWidth/2+t.width/2,0),n.width-l.current.offsetWidth-5)+"px",s.current.style.left=t.left-l.current.offsetLeft-n.left-s.current.offsetWidth/2+t.width/2+"px"}}}})),a.createElement(ce,{ref:l},!ae(d)&&a.createElement(ue,{ref:s,theme:t.theme,position:d}),a.createElement(se,{theme:t.theme},n),ae(d)&&a.createElement(ue,{ref:s,theme:t.theme,position:d}))}var fe=p.styled(p.EditorBottomToolbar)((function(e){return E({opacity:e.visible?1:0,transition:"500ms opacity ease-in-out"},e.isTouch?{bottom:"unset",top:0,transform:"translate(-50%, 50%)"}:{})})),me=ne()?re.below:re.above;function he(e){var t=l.useState(!1),r=t[0],o=t[1],i=e.editor,c=e.config,s=e.controls,u=e.text,d=e.focused,f=i.selection,m=f&&n.Range.isCollapsed(f),h=l.useRef({value:u,isSelectionCollapsed:m}),p=function(){return o(!0)};return l.useEffect((function(){var e=setTimeout(p,2500),t=h.current.value!==u;return(t||h.current.isSelectionCollapsed!==m)&&(h.current={value:u,isSelectionCollapsed:m},e&&clearTimeout(e),m&&(e=setTimeout(p,t?2500:1e3)),o(!1)),function(){clearTimeout(e)}}),[u,m]),a.createElement(a.Fragment,null,a.createElement(de,{config:c,initialPosition:me,hidden:!f||!d||m||""===n.Editor.string(i,f)},a.createElement(le,{theme:c.theme,controls:s,editor:i})),a.createElement(fe,{isTouch:ne(),visible:!!m&&r},r&&a.createElement(le,{theme:c.theme,controls:s,editor:i})))}var pe=s.styled.input((function(e){var t=e.theme;return{backgroundColor:t.backgroundColor,border:"none",borderBottom:"2px solid "+t.color,color:t.color,"&:focus":{outline:"none",borderBottom:"2px solid "+t.hoverColor}}})),ge=function(e,t){return l.createElement(pe,Object.assign({},e,{ref:t}))},ve=l.forwardRef(ge),Ee=s.styled.span({padding:"0px 8px"}),be=s.styled.div((function(e){var t=e.theme;return{padding:"5px 5px 5px 10px",display:"inline-block",borderLeft:"2px solid "+t.borderColor,cursor:"pointer",margin:"2px","&:hover":{color:t.hoverColor}}}));function ye(e){var t=e.hasSelectionChanged,r=e.editor,o=e.config,i=e.isLinkNewlyCreated,a=e.setIsLinkNewlyCreated,u=l.useState(null),d=u[0],f=u[1],m=l.useState(""),h=m[0],p=m[1],g=l.useRef(null),v=r.selection;return l.useEffect((function(){if(v)if(v&&n.Range.isCollapsed(v)&&D(r)){var e=function(e){var t=Array.from(n.Editor.nodes(e,{match:O}))[0];return t&&t[0]}(r)||null;f(e),p(e?e.href:"")}else f(null)}),[t,v,r]),l.useEffect((function(){d&&i&&setTimeout((function(){var e;a(!1),null==(e=g.current)||e.focus()}))}),[d,i,a]),d?l.createElement(de,{config:o,initialPosition:re.below},l.createElement(Ee,null,l.createElement(ve,{ref:g,theme:o.theme,value:h,placeholder:o.i18n.link.placeholder,onChange:function(e){p(e.target.value);var t=c.ReactEditor.findPath(r,d);n.Transforms.setNodes(r,{href:e.target.value},{at:t})}})),l.createElement(be,{theme:o.theme,as:"a",target:"_blank",href:h,rel:"noopener noreferrer"},l.createElement(s.Icon,{icon:s.faExternalLinkAlt})),l.createElement(be,{theme:o.theme,onClick:function(){f(null);var e=c.ReactEditor.findPath(r,d);n.Transforms.unwrapNodes(r,{at:e})}},l.createElement(s.Icon,{icon:s.faTrashAlt}))):null}var Te=s.styled.span((function(e){if(!e.element.inline)return{display:"block",margin:"1em 0",textAlign:"center"}}));function ke(e){var t=e.element,n=v.renderToString((t.inline?"":"\\displaystyle ")+t.src,{displayMode:!1,throwOnError:!1});return a.createElement(Te,{dangerouslySetInnerHTML:{__html:n},element:t})}function xe(e){var t=e.element,r=e.attributes,o=e.focused,i=e.children,s=c.useSlate(),u=c.useSelected(),f=l.useContext(d.PreferenceContext);if(!(o&&u&&s.selection&&n.Range.isCollapsed(s.selection)))return a.createElement("span",Object.assign({},r),a.createElement(ke,{element:t}),i);var m=!!f.getKey("text:math:visual-editor");function h(e){var r=c.ReactEditor.findPath(s,t);n.Transforms.setNodes(s,e,{at:r})}function p(e){var t=void 0===e?{}:e,r=t.reverse,o=void 0!==r&&r,i=t.shouldDelete,l=void 0!==i&&i;n.Transforms.move(s,{unit:"character",reverse:o}),l&&n.Transforms.delete(s,{unit:"character",reverse:o}),c.ReactEditor.focus(s)}return a.createElement("span",Object.assign({},r,{tabIndex:-1}),a.createElement(g.MathEditor,{autofocus:!0,state:t.src,inline:t.inline,readOnly:!1,visual:m,disableBlock:!1,onInlineChange:function(e){h({inline:e})},onChange:function(e){return h({src:e})},onMoveOutRight:p,onMoveOutLeft:function(){p({reverse:!0})},onDeleteOutRight:function(){p({shouldDelete:!0})},onDeleteOutLeft:function(){p({shouldDelete:!0,reverse:!0})},config:{},onEditorChange:function(e){return f.setKey("text:math:visual-editor",e)}}),i)}var Ce=s.styled.div((function(e){var t=e.theme;return{height:"32px",padding:"4px 8px",cursor:"pointer",backgroundColor:e.isActive?t.suggestions.background.highlight:t.suggestions.background.default,borderRadius:"4px","&:hover":{background:t.suggestions.background.highlight}}})),we=s.styled.div({padding:"10px"}),Le=s.styled.span((function(e){var t=e.theme;return{color:e.isHighlighted?t.suggestions.text.highlight:t.suggestions.text.default}})),Ie=function(e){var t=e.config,n=e.options,r=e.currentValue,o=e.selected,i=e.onMouseDown,l=t.theme;return a.createElement(we,null,0===n.length?t.i18n.suggestions.noResultsMessage:n.map((function(e,t){var n,c=e.name,s=e.title,u=(null!=s?s:c).split(new RegExp("("+(n=r,n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+")"),"i")).map((function(e){return{text:e,isHighlighted:e.toLowerCase()===r.toLowerCase()}}));return a.createElement(Ce,{key:t,isActive:t===o,onMouseDown:function(){return i(c)},theme:l},u.map((function(e,t){return a.createElement(Le,{key:t,isHighlighted:e.isHighlighted,theme:l},e.text)})))})))};function Re(e){var t=l.useState(0),h=t[0],p=t[1],g=l.useState(!1),v=g[0],E=g[1],k=e.state,x=e.id,C=e.editable,M=e.focused,N=k.value,O=N.selection,$=N.value,ne=function(e){var t=e.placeholder,n=void 0===t?"Write something or add elements with ⊕.":t,r=e.i18n,o=void 0===r?{}:r,i=e.theme,a=void 0===i?{}:i,c=e.blockquote,u=e.noLinebreaks,d=s.useTheme().editor;return{controls:e.controls||Z,placeholder:n,i18n:s.merge({fallback:{blockquote:{toggleTitle:"Quote"},code:{toggleTitle:"Code"},colors:{setColorTitle:"Set color",resetColorTitle:"Reset color",openMenuTitle:"Colors",closeMenuTitle:"Close sub menu",colorNames:ee.map((function(e){return e.name}))},headings:{setHeadingTitle:function(e){return"Heading "+e},openMenuTitle:"Headings",closeMenuTitle:"Close sub menu"},link:{toggleTitle:"Link (Strg + K)",placeholder:"Enter URL",openInNewTabTitle:"Open in new tab"},list:{toggleOrderedList:"Ordered list",toggleUnorderedList:"Unordered list",openMenuTitle:"Lists",closeMenuTitle:"Close sub menu"},math:{toggleTitle:"Math formula (Strg + M)",displayBlockLabel:"Display as block",placeholder:"[formula]",editors:{visual:"visual",latex:"LaTeX",noVisualEditorAvailableMessage:"Only LaTeX editor available"},helpText:function(e){return l.createElement(l.Fragment,null,"Shortcuts:",l.createElement("br",null),l.createElement("br",null),l.createElement("p",null,"Fraction: ",l.createElement(e,null,"/")),l.createElement("p",null,"Superscript: ",l.createElement(e,null,"↑")," or ",l.createElement(e,null,"^")),l.createElement("p",null,"Subscript: ",l.createElement(e,null,"↓")," oder ",l.createElement(e,null,"_")),l.createElement("p",null,"π, α, β, γ: ",l.createElement(e,null,"pi"),", ",l.createElement(e,null,"alpha"),","," ",l.createElement(e,null,"beta"),",",l.createElement(e,null,"gamma")),l.createElement("p",null,"≤, ≥: ",l.createElement(e,null,"<="),", ",l.createElement(e,null,">=")),l.createElement("p",null,"Root: ",l.createElement(e,null,"\\sqrt"),", ",l.createElement(e,null,"\\nthroot")),l.createElement("p",null,"Math symbols: ",l.createElement(e,null,"\\<NAME>"),", e.g."," ",l.createElement(e,null,"\\neq")," (≠), ",l.createElement(e,null,"\\pm")," (±), ..."),l.createElement("p",null,"Functions: ",l.createElement(e,null,"sin"),", ",l.createElement(e,null,"cos"),","," ",l.createElement(e,null,"ln"),", ..."))}},richText:{toggleStrongTitle:"Bold (Strg + B)",toggleEmphasizeTitle:"Italic (Strg + I)"},suggestions:{noResultsMessage:"No items found"}},values:o}),theme:s.merge({fallback:{backgroundColor:"transparent",color:d.color,hoverColor:d.primary.background,borderColor:d.backgroundColor,borderRadius:"4px",active:{backgroundColor:"#b6b6b6",color:d.backgroundColor},dropDown:{backgroundColor:d.backgroundColor},suggestions:{background:{default:"transparent",highlight:d.primary.background},text:{default:d.color,highlight:d.danger.background}},overlay:{backgroundColor:d.backgroundColor,boxShadow:"0 2px 4px 0 rgba(0,0,0,0.50)",color:d.color},controls:{colors:{colors:ee.map((function(e){return e.value})),defaultColor:"black"},headings:[1,2,3]}},values:a}),blockquote:c,noLinebreaks:u}}(e.config),re=function(e,t){var r=e.controls;return{createTextEditor:l.useCallback((function(e){return r.reduce((function(e,t){return t in Q?Q[t](e):e}),e)}),[r]),toolbarControls:l.useMemo((function(){return function(e,t){var r=e.i18n,o=e.theme,i=e.controls;return[{name:y.richText,title:r.richText.toggleStrongTitle,isActive:U,onClick:W,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrBold})}},{name:y.richText,title:r.richText.toggleEmphasizeTitle,isActive:_,onClick:K,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrItalic})}},{name:y.links,title:r.link.toggleTitle,isActive:D,onClick:J(t),renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrLink})}},{name:y.headings,title:r.headings.openMenuTitle,closeMenuTitle:r.headings.closeMenuTitle,isActive:V,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrText})},renderCloseMenuIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrClose})},children:o.controls.headings.map((function(e){return{name:y.headings,title:r.headings.setHeadingTitle(e),isActive:X(e),onClick:G(e),renderIcon:function(){return a.createElement("span",null,"H",e)}}}))},{name:y.colors,title:r.colors.openMenuTitle,closeMenuTitle:r.colors.closeMenuTitle,isActive:function(){return!1},renderIcon:function(e){return a.createElement(w,{index:S(e),colorsTheme:o.controls.colors})},renderCloseMenuIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrClose})},children:[{name:y.colors,title:r.colors.resetColorTitle,isActive:function(e){return!function(e){var t;return"number"==typeof(null==(t=n.Editor.marks(e))?void 0:t.color)}(e)},onClick:I,renderIcon:function(){return a.createElement(T,{color:o.controls.colors.defaultColor})}}].concat(o.controls.colors.colors.map((function(e,t){return{name:y.colors,title:r.colors.colorNames[t],isActive:L(t),onClick:R(t),renderIcon:function(){return a.createElement(T,{color:e})}}})))},{name:y.lists,title:r.list.toggleOrderedList,isActive:A,onClick:q,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrListNumbered})}},{name:y.lists,title:r.list.toggleUnorderedList,isActive:j,onClick:P,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrListBullets})}},{name:y.math,title:r.math.toggleTitle,isActive:H,onClick:B,renderIcon:function(){return a.createElement(s.EdtrIcon,{icon:s.edtrFormula})}},{name:y.code,title:r.code.toggleTitle,isActive:F,onClick:z,renderIcon:function(){return a.createElement(s.Icon,{icon:s.faCode})}}].filter((function(e){return i.includes(y[e.name])}))}(e,t)}),[e,t]),handleHotkeys:l.useCallback((function(e,n){for(var o,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return b(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(function(e){return[{hotkey:"mod+b",control:y.richText,handler:W},{hotkey:"mod+i",control:y.richText,handler:K},{hotkey:"mod+k",control:y.links,handler:J(e)},{hotkey:"mod+m",control:y.math,handler:B}]}(t));!(o=i()).done;){var l=o.value,a=l.hotkey,c=l.handler;if(r.includes(l.control)&&u(a,e)){e.preventDefault(),c(n);break}}}),[r,t])}}(ne,E),oe=re.createTextEditor,ie=re.toolbarControls,le=l.useMemo((function(){return oe(c.withReact(n.createEditor()))}),[oe]),ae=n.Node.string(le),ce=function(e){var t=l.useState(0),n=t[0],r=t[1],o=d.useScopedStore(),i=e.text,a=e.id,c=e.editable,s=e.focused,u=function(e,t){var n=t.replace("/","").toLowerCase(),r=e.filter((function(e){var t,r=e.title;return!n.length||(null==r||null==(t=r.toLowerCase())?void 0:t.startsWith(n))})),o=e.filter((function(e){var t=e.title,r=null==t?void 0:t.toLowerCase();return(null==r?void 0:r.includes(n))&&!(null!=r&&r.startsWith(n))}));return[].concat(r,o)}(l.useContext(f.RegistryContext),i),h=c&&s&&i.startsWith("/")&&u.length>0,p=h?u:[],g=i.substring(1),v=l.useRef({showSuggestions:h,selected:n,options:p});v.current={showSuggestions:h,selected:n,options:p},l.useEffect((function(){p.length<n&&r(0)}),[p.length,n]);var E=function(e){return function(){v.current.showSuggestions&&r((function(t){var n=v.current.options.length;return 0===n?0:(t+("up"===e?n-1:1))%n}))}},b={SELECT_UP:E("up"),SELECT_DOWN:E("down"),INSERT:function(){if(v.current.showSuggestions){var e=v.current.options[v.current.selected];if(!e)return;setTimeout((function(){y(e.name)}))}}};return{showSuggestions:h,suggestionsProps:{options:p,currentValue:g,selected:n,onMouseDown:y},hotKeysProps:{keyMap:Y,handlers:b},handleHotkeys:function(e){v.current.showSuggestions&&["ArrowDown","ArrowUp","Enter"].includes(e.key)&&e.preventDefault()}};function y(e){o.dispatch(m.replace({id:a,plugin:e}))}}({text:ae,id:x,editable:C,focused:M}),se=ce.showSuggestions,ue=ce.hotKeysProps,de=ce.suggestionsProps,fe=l.useRef($),me=l.useRef(O);return l.useEffect((function(){O&&(n.Transforms.setSelection(le,O),fe.current!==$&&(le.children=$))}),[le,O,$]),a.createElement(r.HotKeys,Object.assign({},ue),a.createElement(c.Slate,{editor:le,value:$,onChange:function(e){le.operations.some((function(e){return"set_selection"!==e.type}))&&(fe.current=e,k.set({value:e,selection:le.selection},(function(e){return{value:e.value,selection:me.current}}))),p((function(e){return e+1})),me.current=le.selection}},C&&M&&a.createElement(he,{editor:le,config:ne,controls:ie,text:ae,focused:M}),C&&M&&a.createElement(ye,{hasSelectionChanged:h,editor:le,config:ne,isLinkNewlyCreated:v,setIsLinkNewlyCreated:E}),a.createElement(c.Editable,{placeholder:ne.placeholder,onKeyDown:function(e){ce.handleHotkeys(e),re.handleHotkeys(e,le),function(e,t){switch(e.key){case" ":!function(e,t){var r=t.selection;if(r){var o=Array.from(n.Editor.nodes(t,{at:r}));o.length>=2&&function(e,t){switch(e){case"*":case"-":case"+":return function(e){return i.ListsEditor.wrapInList(e,i.ListType.UNORDERED),!0}(t);case"#":return te(1,t);case"##":return te(2,t);case"###":return te(3,t);default:return}}(n.Node.string(o[2][0]).slice(0,null==r?void 0:r.focus.offset).replace(/\s*/g,""),t)&&(e.preventDefault(),t.deleteBackward("word"))}}(e,t)}}(e,le),i.onKeyDown(le,e)},renderElement:Se(M),renderLeaf:Me(ne)})),se&&a.createElement(o.HoverOverlay,{position:"below"},a.createElement(Ie,Object.assign({config:ne},de))))}function Se(e){return function(t){var n=t.element,r=t.attributes,o=t.children;return"h"===n.type?l.createElement("h"+n.level,r,a.createElement(a.Fragment,null,o)):"a"===n.type?a.createElement("a",Object.assign({href:n.href,style:{cursor:"pointer"}},r),o):"unordered-list"===n.type?a.createElement("ul",Object.assign({},r),o):"ordered-list"===n.type?a.createElement("ol",Object.assign({},r),o):"list-item"===n.type?a.createElement("li",Object.assign({},r),o):"list-item-child"===n.type?a.createElement("div",Object.assign({},r),o):"math"===n.type?a.createElement(xe,{element:n,attributes:r,focused:e},o):a.createElement("p",Object.assign({},r),o)}}function Me(e){return function(t){var n,r,o,i=null==e||null==(n=e.theme)||null==(r=n.controls)||null==(o=r.colors)?void 0:o.colors,l=t.attributes,c=t.leaf,s=t.children;return c.strong&&(s=a.createElement("strong",null,s)),"number"==typeof c.color&&Array.isArray(i)&&(s=a.createElement("span",{style:{color:null==i?void 0:i[c.color%i.length]}},s)),c.code&&(s=a.createElement("code",null,s)),c.em&&(s=a.createElement("em",null,s)),a.createElement("span",Object.assign({},l),s)}}exports.createTextPlugin=function(e){return{Component:Re,config:e,state:t.serializedScalar({value:[{type:"p",children:[{text:""}]}],selection:null},{serialize:function(e){return e.value},deserialize:function(e){return{value:e,selection:null}}}),onKeyDown:function(){return!1},isEmpty:function(e){return""===e.value.value.map(n.Node.string).join("")}}};
//# sourceMappingURL=plugin-text.cjs.production.min.js.map