/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@compensa/rich-markdown-editor@0.0.2/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.theme=exports.Extension=exports.renderToHtml=exports.serializer=exports.parser=exports.schema=void 0;const React=__importStar(require("react")),memoize_1=__importDefault(require("lodash/memoize")),prosemirror_state_1=require("prosemirror-state"),prosemirror_dropcursor_1=require("prosemirror-dropcursor"),prosemirror_gapcursor_1=require("prosemirror-gapcursor"),prosemirror_view_1=require("prosemirror-view"),prosemirror_model_1=require("prosemirror-model"),prosemirror_inputrules_1=require("prosemirror-inputrules"),prosemirror_keymap_1=require("prosemirror-keymap"),prosemirror_commands_1=require("prosemirror-commands"),prosemirror_utils_1=require("prosemirror-utils"),styled_components_1=require("styled-components"),theme_1=require("./styles/theme"),dictionary_1=__importDefault(require("./dictionary")),Flex_1=__importDefault(require("./components/Flex")),SelectionToolbar_1=__importDefault(require("./components/SelectionToolbar")),BlockMenu_1=__importDefault(require("./components/BlockMenu")),EmojiMenu_1=__importDefault(require("./components/EmojiMenu")),LinkToolbar_1=__importDefault(require("./components/LinkToolbar")),Tooltip_1=__importDefault(require("./components/Tooltip")),ExtensionManager_1=__importDefault(require("./lib/ExtensionManager")),ComponentView_1=__importDefault(require("./lib/ComponentView")),headingToSlug_1=__importDefault(require("./lib/headingToSlug")),editor_1=require("./styles/editor"),Doc_1=__importDefault(require("./nodes/Doc")),Text_1=__importDefault(require("./nodes/Text")),Blockquote_1=__importDefault(require("./nodes/Blockquote")),BulletList_1=__importDefault(require("./nodes/BulletList")),CodeBlock_1=__importDefault(require("./nodes/CodeBlock")),CodeFence_1=__importDefault(require("./nodes/CodeFence")),CheckboxList_1=__importDefault(require("./nodes/CheckboxList")),Emoji_1=__importDefault(require("./nodes/Emoji")),CheckboxItem_1=__importDefault(require("./nodes/CheckboxItem")),Embed_1=__importDefault(require("./nodes/Embed")),HardBreak_1=__importDefault(require("./nodes/HardBreak")),Heading_1=__importDefault(require("./nodes/Heading")),HorizontalRule_1=__importDefault(require("./nodes/HorizontalRule")),Image_1=__importDefault(require("./nodes/Image")),ListItem_1=__importDefault(require("./nodes/ListItem")),Notice_1=__importDefault(require("./nodes/Notice")),OrderedList_1=__importDefault(require("./nodes/OrderedList")),Paragraph_1=__importDefault(require("./nodes/Paragraph")),Table_1=__importDefault(require("./nodes/Table")),TableCell_1=__importDefault(require("./nodes/TableCell")),TableHeadCell_1=__importDefault(require("./nodes/TableHeadCell")),TableRow_1=__importDefault(require("./nodes/TableRow")),Bold_1=__importDefault(require("./marks/Bold")),Code_1=__importDefault(require("./marks/Code")),Highlight_1=__importDefault(require("./marks/Highlight")),Italic_1=__importDefault(require("./marks/Italic")),Link_1=__importDefault(require("./marks/Link")),Strikethrough_1=__importDefault(require("./marks/Strikethrough")),Placeholder_1=__importDefault(require("./marks/Placeholder")),Underline_1=__importDefault(require("./marks/Underline")),BlockMenuTrigger_1=__importDefault(require("./plugins/BlockMenuTrigger")),EmojiTrigger_1=__importDefault(require("./plugins/EmojiTrigger")),Folding_1=__importDefault(require("./plugins/Folding")),History_1=__importDefault(require("./plugins/History")),Keys_1=__importDefault(require("./plugins/Keys")),MaxLength_1=__importDefault(require("./plugins/MaxLength")),Placeholder_2=__importDefault(require("./plugins/Placeholder")),SmartText_1=__importDefault(require("./plugins/SmartText")),TrailingNode_1=__importDefault(require("./plugins/TrailingNode")),PasteHandler_1=__importDefault(require("./plugins/PasteHandler")),embeds_1=__importDefault(require("./embeds"));var server_1=require("./server");Object.defineProperty(exports,"schema",{enumerable:!0,get:function(){return server_1.schema}}),Object.defineProperty(exports,"parser",{enumerable:!0,get:function(){return server_1.parser}}),Object.defineProperty(exports,"serializer",{enumerable:!0,get:function(){return server_1.serializer}}),Object.defineProperty(exports,"renderToHtml",{enumerable:!0,get:function(){return server_1.renderToHtml}});var Extension_1=require("./lib/Extension");Object.defineProperty(exports,"Extension",{enumerable:!0,get:function(){return __importDefault(Extension_1).default}}),exports.theme=theme_1.light;class RichMarkdownEditor extends React.PureComponent{constructor(){super(...arguments),this.state={isRTL:!1,isEditorFocused:!1,selectionMenuOpen:!1,blockMenuOpen:!1,linkMenuOpen:!1,blockMenuSearch:"",emojiMenuOpen:!1},this.calculateDir=()=>{if(!this.element)return;const e="rtl"===this.props.dir||"rtl"===getComputedStyle(this.element).direction;this.state.isRTL!==e&&this.setState({isRTL:e})},this.value=()=>this.serializer.serialize(this.view.state.doc),this.handleChange=()=>{this.props.onChange&&this.props.onChange((()=>this.value()))},this.handleSave=()=>{const{onSave:e}=this.props;e&&e({done:!1})},this.handleSaveAndExit=()=>{const{onSave:e}=this.props;e&&e({done:!0})},this.handleEditorBlur=()=>{this.setState({isEditorFocused:!1})},this.handleEditorFocus=()=>{this.setState({isEditorFocused:!0})},this.handleOpenSelectionMenu=()=>{this.setState({blockMenuOpen:!1,selectionMenuOpen:!0})},this.handleCloseSelectionMenu=()=>{this.setState({selectionMenuOpen:!1})},this.handleOpenLinkMenu=()=>{this.setState({blockMenuOpen:!1,linkMenuOpen:!0})},this.handleCloseLinkMenu=()=>{this.setState({linkMenuOpen:!1})},this.handleOpenBlockMenu=e=>{this.setState({blockMenuOpen:!0,blockMenuSearch:e})},this.handleCloseBlockMenu=()=>{this.state.blockMenuOpen&&this.setState({blockMenuOpen:!1})},this.handleSelectRow=(e,t)=>{this.view.dispatch(prosemirror_utils_1.selectRow(e)(t.tr))},this.handleSelectColumn=(e,t)=>{this.view.dispatch(prosemirror_utils_1.selectColumn(e)(t.tr))},this.handleSelectTable=e=>{this.view.dispatch(prosemirror_utils_1.selectTable(e.tr))},this.focusAtStart=()=>{const e=prosemirror_state_1.Selection.atStart(this.view.state.doc),t=this.view.state.tr.setSelection(e);this.view.dispatch(t),this.view.focus()},this.focusAtEnd=()=>{const e=prosemirror_state_1.Selection.atEnd(this.view.state.doc),t=this.view.state.tr.setSelection(e);this.view.dispatch(t),this.view.focus()},this.getHeadings=()=>{const e=[],t={};return this.view.state.doc.forEach((r=>{if("heading"===r.type.name){const i=headingToSlug_1.default(r);let s=i;t[i]>0&&(s=headingToSlug_1.default(r,t[i])),t[i]=void 0!==t[i]?t[i]+1:1,e.push({title:r.textContent,level:r.attrs.level,id:s})}})),e},this.theme=()=>this.props.theme||(this.props.dark?theme_1.dark:theme_1.light),this.dictionary=memoize_1.default((e=>Object.assign(Object.assign({},dictionary_1.default),e)))}componentDidMount(){this.init(),this.props.scrollTo&&this.scrollToAnchor(this.props.scrollTo),this.calculateDir(),this.props.readOnly||this.props.autoFocus&&this.focusAtEnd()}componentDidUpdate(e){if(this.props.value&&e.value!==this.props.value){const e=this.createState(this.props.value);this.view.updateState(e)}e.readOnly!==this.props.readOnly&&this.view.update(Object.assign(Object.assign({},this.view.props),{editable:()=>!this.props.readOnly})),this.props.scrollTo&&this.props.scrollTo!==e.scrollTo&&this.scrollToAnchor(this.props.scrollTo),e.readOnly&&!this.props.readOnly&&this.props.autoFocus&&this.focusAtEnd(),e.dir!==this.props.dir&&this.calculateDir(),this.isBlurred||this.state.isEditorFocused||this.state.blockMenuOpen||this.state.linkMenuOpen||this.state.selectionMenuOpen||(this.isBlurred=!0,this.props.onBlur&&this.props.onBlur()),this.isBlurred&&(this.state.isEditorFocused||this.state.blockMenuOpen||this.state.linkMenuOpen||this.state.selectionMenuOpen)&&(this.isBlurred=!1,this.props.onFocus&&this.props.onFocus())}init(){this.extensions=this.createExtensions(),this.nodes=this.createNodes(),this.marks=this.createMarks(),this.schema=this.createSchema(),this.plugins=this.createPlugins(),this.rulePlugins=this.createRulePlugins(),this.keymaps=this.createKeymaps(),this.serializer=this.createSerializer(),this.parser=this.createParser(),this.pasteParser=this.createPasteParser(),this.inputRules=this.createInputRules(),this.nodeViews=this.createNodeViews(),this.view=this.createView(),this.commands=this.createCommands()}createExtensions(){const e=this.dictionary(this.props.dictionary);return new ExtensionManager_1.default([...[new Doc_1.default,new HardBreak_1.default,new Paragraph_1.default,new Blockquote_1.default,new CodeBlock_1.default({dictionary:e,onShowToast:this.props.onShowToast}),new CodeFence_1.default({dictionary:e,onShowToast:this.props.onShowToast}),new Emoji_1.default,new Text_1.default,new CheckboxList_1.default,new CheckboxItem_1.default,new BulletList_1.default,new Embed_1.default({embeds:[...embeds_1.default,...this.props.embeds]}),new ListItem_1.default,new Notice_1.default({dictionary:e}),new Heading_1.default({dictionary:e,onShowToast:this.props.onShowToast,offset:this.props.headingsOffset}),new HorizontalRule_1.default,new Image_1.default({dictionary:e,uploadImage:this.props.uploadImage,onImageUploadStart:this.props.onImageUploadStart,onImageUploadStop:this.props.onImageUploadStop,onShowToast:this.props.onShowToast}),new Table_1.default,new TableCell_1.default({onSelectTable:this.handleSelectTable,onSelectRow:this.handleSelectRow}),new TableHeadCell_1.default({onSelectColumn:this.handleSelectColumn}),new TableRow_1.default,new Bold_1.default,new Code_1.default,new Highlight_1.default,new Italic_1.default,new Placeholder_1.default,new Underline_1.default,new Link_1.default({onKeyboardShortcut:this.handleOpenLinkMenu,onClickLink:this.props.onClickLink,onClickHashtag:this.props.onClickHashtag,onHoverLink:this.props.onHoverLink}),new Strikethrough_1.default,new OrderedList_1.default,new History_1.default,new Folding_1.default,new SmartText_1.default,new TrailingNode_1.default,new PasteHandler_1.default,new Keys_1.default({onBlur:this.handleEditorBlur,onFocus:this.handleEditorFocus,onSave:this.handleSave,onSaveAndExit:this.handleSaveAndExit,onCancel:this.props.onCancel}),new BlockMenuTrigger_1.default({dictionary:e,onOpen:this.handleOpenBlockMenu,onClose:this.handleCloseBlockMenu}),new EmojiTrigger_1.default({onOpen:e=>{this.setState({emojiMenuOpen:!0,blockMenuSearch:e})},onClose:()=>{this.setState({emojiMenuOpen:!1})}}),new Placeholder_2.default({placeholder:this.props.placeholder}),new MaxLength_1.default({maxLength:this.props.maxLength})].filter((e=>!this.props.disableExtensions||!this.props.disableExtensions.includes(e.name))),...this.props.extensions||[]],this)}createPlugins(){return this.extensions.plugins}createRulePlugins(){return this.extensions.rulePlugins}createKeymaps(){return this.extensions.keymaps({schema:this.schema})}createInputRules(){return this.extensions.inputRules({schema:this.schema})}createNodeViews(){return this.extensions.extensions.filter((e=>e.component)).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.name]:(e,r,i,s)=>new ComponentView_1.default(t.component,{editor:this,extension:t,node:e,view:r,getPos:i,decorations:s})})),{})}createCommands(){return this.extensions.commands({schema:this.schema,view:this.view})}createNodes(){return this.extensions.nodes}createMarks(){return this.extensions.marks}createSchema(){return new prosemirror_model_1.Schema({nodes:this.nodes,marks:this.marks})}createSerializer(){return this.extensions.serializer()}createParser(){return this.extensions.parser({schema:this.schema,plugins:this.rulePlugins})}createPasteParser(){return this.extensions.parser({schema:this.schema,rules:{linkify:!0},plugins:this.rulePlugins})}createState(e){const t=this.createDocument(e||this.props.defaultValue);return prosemirror_state_1.EditorState.create({schema:this.schema,doc:t,plugins:[...this.plugins,...this.keymaps,prosemirror_dropcursor_1.dropCursor({color:this.theme().cursor}),prosemirror_gapcursor_1.gapCursor(),prosemirror_inputrules_1.inputRules({rules:this.inputRules}),prosemirror_keymap_1.keymap(prosemirror_commands_1.baseKeymap)]})}createDocument(e){return this.parser.parse(e)}createView(){if(!this.element)throw new Error("createView called before ref available");const e=e=>e.steps.some((e=>{var t,r,i;return(null===(i=null===(r=null===(t=e.slice)||void 0===t?void 0:t.content)||void 0===r?void 0:r.firstChild)||void 0===i?void 0:i.type.name)===this.schema.nodes.checkbox_item.name})),t=this,r=new prosemirror_view_1.EditorView(this.element,{state:this.createState(this.props.value),editable:()=>!this.props.readOnly,nodeViews:this.nodeViews,handleDOMEvents:this.props.handleDOMEvents,dispatchTransaction:function(r){const{state:i,transactions:s}=this.state.applyTransaction(r);this.updateState(i),s.some((e=>e.docChanged))&&(!t.props.readOnly||t.props.readOnlyWriteCheckboxes&&s.some(e))&&t.handleChange(),t.calculateDir(),t.forceUpdate()}});return r.dom.setAttribute("role","textbox"),r}scrollToAnchor(e){if(e)try{const t=document.querySelector(e);t&&t.scrollIntoView({behavior:"smooth"})}catch(t){console.warn(`Attempted to scroll to invalid hash: ${e}`,t)}}render(){const{dir:e,readOnly:t,readOnlyWriteCheckboxes:r,style:i,tooltip:s,className:o,onKeyDown:n}=this.props,{isRTL:a}=this.state,l=this.dictionary(this.props.dictionary);return React.createElement(Flex_1.default,{onKeyDown:n,style:i,className:o,align:"flex-start",justify:"center",dir:e,column:!0},React.createElement(styled_components_1.ThemeProvider,{theme:this.theme()},React.createElement(React.Fragment,null,React.createElement(editor_1.StyledEditor,{dir:e,rtl:a,readOnly:t,readOnlyWriteCheckboxes:r,ref:e=>this.element=e}),!t&&this.view&&React.createElement(React.Fragment,null,React.createElement(SelectionToolbar_1.default,{view:this.view,dictionary:l,commands:this.commands,rtl:a,isTemplate:!0===this.props.template,onOpen:this.handleOpenSelectionMenu,onClose:this.handleCloseSelectionMenu,onSearchLink:this.props.onSearchLink,onClickLink:this.props.onClickLink,onCreateLink:this.props.onCreateLink,tooltip:s}),React.createElement(LinkToolbar_1.default,{view:this.view,dictionary:l,isActive:this.state.linkMenuOpen,onCreateLink:this.props.onCreateLink,onSearchLink:this.props.onSearchLink,onClickLink:this.props.onClickLink,onShowToast:this.props.onShowToast,onClose:this.handleCloseLinkMenu,tooltip:s}),React.createElement(EmojiMenu_1.default,{view:this.view,commands:this.commands,dictionary:l,rtl:a,isActive:this.state.emojiMenuOpen,search:this.state.blockMenuSearch,onClose:()=>this.setState({emojiMenuOpen:!1})}),React.createElement(BlockMenu_1.default,{view:this.view,commands:this.commands,dictionary:l,rtl:a,isActive:this.state.blockMenuOpen,search:this.state.blockMenuSearch,onClose:this.handleCloseBlockMenu,uploadImage:this.props.uploadImage,onLinkToolbarOpen:this.handleOpenLinkMenu,onImageUploadStart:this.props.onImageUploadStart,onImageUploadStop:this.props.onImageUploadStop,onShowToast:this.props.onShowToast,embeds:[...embeds_1.default,...this.props.embeds]})))))}}RichMarkdownEditor.defaultProps={defaultValue:"",dir:"auto",placeholder:"Write something nice…",onImageUploadStart:()=>{},onImageUploadStop:()=>{},onClickLink:e=>{window.open(e,"_blank")},embeds:[...embeds_1.default],extensions:[],tooltip:Tooltip_1.default},exports.default=RichMarkdownEditor;
//# sourceMappingURL=/sm/c375782e77b9507765ee9a4aaea969cb722d2da75d0f56277f39372d10cede96.map