UNPKG

react-native-cn-quill

Version:
2 lines (1 loc) 6.39 kB
export declare const editor_js = "\n<script>\n(function (doc) {\n\n var sendMessage = function (message) {\n if (window.ReactNativeWebView)\n window.ReactNativeWebView.postMessage(message);\n else console.log(message)\n }\n\n var getSelectedFormats = function () {\n var formats = quill.getFormat();\n var contentChanged = JSON.stringify({\n type: 'format-change',\n data: {formats} });\n sendMessage(contentChanged);\n }\n //Format text at user\u2019s current selection\n var formatSelection = function (name, value) {\n var range = quill.getSelection();\n if (!range) quill.focus();\n quill.format(name, value);\n getSelectedFormats();\n }\n\n var hasFocus = function (key) {\n var hs = quill.hasFocus();\n \n var hsJson = JSON.stringify({\n type: 'has-focus',\n key: key,\n data: hs });\n sendMessage(hsJson);\n }\n\n var getContents = function (key, index, length) {\n var getContentsData = quill.getContents(index, length);\n var getContentsDataJson = JSON.stringify({\n type: 'get-contents',\n key: key,\n data: getContentsData });\n sendMessage(getContentsDataJson);\n }\n\n var getText = function (key, index, length) {\n var getTextData = quill.getText(index, length);\n var getTextDataJson = JSON.stringify({\n type: 'get-text',\n key: key,\n data: getTextData });\n sendMessage(getTextDataJson);\n }\n\n var getLength = function (key) {\n var getLengthData = quill.getLength();\n var getLengthDataJson = JSON.stringify({\n type: 'get-length',\n key: key,\n data: getLengthData });\n sendMessage(getLengthDataJson);\n }\n\n var getHtml = function (key) {\n var html = quill.root.innerHTML;\n var getHtmlJson = JSON.stringify({\n type: 'get-html',\n key: key,\n data: html });\n sendMessage(getHtmlJson);\n }\n\n var insertEmbed = function (index, type, value) {\n quill.insertEmbed(index, type, value);\n }\n\n var insertText = function (index, text, formats={}) {\n quill.insertText(index, text, formats);\n }\n\n var setContents = function (delta) {\n quill.setContents(delta);\n }\n\n var setText = function (text) {\n quill.setText(text);\n }\n\n var updateContents = function (delta) {\n quill.updateContents(delta);\n }\n\n var dangerouslyPasteHTML = function (index, html) {\n quill.clipboard.dangerouslyPasteHTML(index, html);\n }\n\n var setSelection = function (index, length = 0, source = 'api') {\n quill.setSelection(index, length, source);\n }\n\n var getBounds = function (key, index, length = 0) {\n var boundsData = quill.getBounds(index, length);\n var getBoundsJson = JSON.stringify({\n type: 'get-bounds',\n key: key,\n data: boundsData });\n sendMessage(getBoundsJson);\n }\n\n var getSelection = function (key, focus = false) {\n var getSelectionData = quill.getSelection(focus);\n var getSelectionJson = JSON.stringify({\n type: 'get-selectoin',\n key: key,\n data: getSelectionData });\n sendMessage(getSelectionJson);\n }\n\n\n var getRequest = function (event) {\n var msg = JSON.parse(event.data); \n switch (msg.command) {\n case 'format':\n formatSelection(msg.name, msg.value);\n break;\n case 'focus':\n quill.focus();\n break;\n case 'blur':\n quill.blur();\n break;\n case 'enable':\n quill.enable(msg.value);\n break;\n case 'hasFocus':\n hasFocus(msg.key);\n break;\n case 'deleteText':\n quill.deleteText(msg.index, msg.length);\n break;\n case 'getContents':\n getContents(msg.key, msg.index, msg.length);\n break;\n case 'getText':\n getText(msg.key, msg.index, msg.length);\n break;\n case 'getBounds':\n getBounds(msg.key, msg.index, msg.length);\n break;\n case 'getSelection':\n getSelection(msg.key, msg.focus);\n break;\n case 'setSelection':\n setSelection(msg.index, msg.length, msg.source); \n break;\n case 'getHtml':\n getHtml(msg.key);\n break;\n case 'getLength':\n getLength(msg.key);\n break;\n case 'insertEmbed':\n insertEmbed(msg.index, msg.type, msg.value);\n break;\n case 'insertText':\n insertText(msg.index, msg.text, msg.formats);\n break;\n case 'setContents':\n setContents(msg.delta);\n break;\n case 'setText':\n setText(msg.text);\n break;\n case 'updateContents':\n updateContents(msg.delta);\n break;\n case 'dangerouslyPasteHTML':\n dangerouslyPasteHTML(msg.index, msg.html);\n break;\n default:\n break;\n }\n };\n\n document.addEventListener(\"message\", getRequest, false);\n window.addEventListener(\"message\", getRequest, false);\n \n quill.on('editor-change', function(eventName, ...args) {\n if (eventName === 'text-change') {\n getSelectedFormats();\n } else if (eventName === 'selection-change') {\n var range = quill.getSelection();\n if (range) {\n getSelectedFormats();\n } \n }\n var getEditorChange = JSON.stringify({\n type: 'editor-change',\n data: { eventName, args } });\n sendMessage(getEditorChange);\n });\n\n quill.on('text-change', function(delta, oldDelta, source) {\n var getTextChange = JSON.stringify({\n type: 'text-change',\n data: { delta, oldDelta, source } });\n sendMessage(getTextChange);\n\n var html = quill.root.innerHTML;\n var getHtmlJson = JSON.stringify({\n type: 'html-change',\n data: { html } });\n sendMessage(getHtmlJson);\n });\n\n quill.on('selection-change', function(range, oldRange, source) {\n var getSelectionChange = JSON.stringify({\n type: 'selection-change',\n data: { range, oldRange, source } });\n sendMessage(getSelectionChange)\n });\n \n quill.root.addEventListener('blur', function () {\n sendMessage(JSON.stringify({type: 'blur'}));\n });\n\n quill.root.addEventListener('focus', function () {\n sendMessage(JSON.stringify({type: 'focus'}));\n });\n\n})(document)\n</script>\n";