{"version":3,"sources":["webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/clipboard.js"],"names":["module","exports","modules","installedModules","__webpack_require__","moduleId","id","loaded","call","m","c","p","0","3","Error","978","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","f","define","apply","undefined","$","kendo","window","Class","editorNS","ui","editor","RangeUtils","dom","Dom","RestorePoint","Marker","browser","support","extend","Clipboard","init","this","pasteCleanup","options","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","html","doc","document","container","create","fragment","createDocumentFragment","innerHTML","firstChild","appendChild","isBlock","test","_startModification","range","restorePoint","_inProgress","getRange","body","persistScrollTop","_endModification","modificationInfo","_finishUpdate","_selectionChange","_contentModification","before","after","that","setTimeout","_removeBomNodes","nodes","textNodes","i","length","nodeValue","stripBom","_onBeforeCopy","marker","add","remove","selectRange","oncopy","oncut","noop","_fileToDataURL","blob","deferred","Deferred","reader","FileReader","File","getAsFile","onload","proxy","resolve","readAsDataURL","promise","_triggerPaste","args","replace","trigger","paste","_handleImagePaste","e","msie","version","clipboardData","originalEvent","items","files","_insertImages","images","grep","item","type","when","map","done","results","Array","prototype","slice","arguments","target","result","join","onpaste","contentEditable","preventDefault","expandImmutablesIn","clipboardNode","className","_decoreateClipboardNode","webkit","_moveToCaretPosition","r","createRange","selectNodeContents","textRange","createTextRange","moveToElementText","off","execCommand","on","clipboardRange","deleteContents","containers","children","each","lastChild","is","clean","ondragover","edge","stopPropagation","ondrop","dataTransfer","node","css","borderWidth","width","height","overflow","margin","padding","documentElement","ownerDocument","fontVariant","fontWeight","lineSpacing","lineHeight","textDecoration","color","fontFamily","fontSize","nodeOffset","offset","caretOffset","_caretOffset","translateX","left","translateY","top","translate","rangeChanged","caret","startContainer","collapsed","isStartTextNode","isDataNode","isBom","startOffset","insertBefore","insertAfter","insertNode","childNodes","prev","previousSibling","next","nextSibling","prevLength","data","setStart","collapse","immutables","Immutables","bomNode","createTextNode","setStartBefore","splittableParent","block","parentNode","closestEditableOfType","isInline","l","split","skipCleaners","applicable","focus","addCaret","parent","unwrap","splittable","selectNode","fragmentsHtml","push","filter","addClass","end","find","index","elm","isSelfClosing","normalize","commonAncestorContainer","style","display","restoreScrollTop","scrollTo","removeCaret","rangeEnd","name","setStartAfter","closest","focusedTable","get","siblingNodes","contents","lastSiblingIndex","lastSibling","parents","createEmptyNode","Cleaner","replacements","customReplacements","fn","none","replacement","junkReplacements","concat","convertFontMatch","$0","$1","match","closing","faceRe","face","exec","family","stripEmptyAnchors","a","attributes","indexOf","listType","listData","startingSymbol","text","innerText","matchSymbol","symbol","isNumber","trimStartText","tag","_guessUnorderedListStyle","_guessOrderedListStyle","_convertToLi","content","nodeType","nodeTypes","TEXT_NODE","_checkForBullet","_getHtmlNoBullet","bulletRgx","element","extractListLevels","msoListRegExp","list","level","format","_createList","styleType","listStyleType","lists","placeholder","li","rootMargin","rootIndex","lastRootLi","isLastRootLi","rootList","blockChildren","blockElements","lastMargin","levels","acceptedNameTags","isParentTable","listIndex","parseFloat","marginLeft","levelType","last","removeAttributes","removeAttributeNode","createColGroup","row","cells","table","colgroup","removeChild","cell","parseInt","append","prependTo","convertHeaders","boldedCells","child","changeTag","removeParagraphs","j","len","paragraphs","removeDefaultColors","spans","cssText","removeTextNodes","trs","currentNode","tables","rows","firstRow","longestRow","eq","headers","titles","removeFormatting","getAttribute","removeAttribute","filters","msConvertLists","msAllFormatting","DomCleaner","cleanDom","tags","collectTags","span","collectAttr","removeAttr","TextContainer","HtmlTextLines","separators","line","lines","inlineBlockText","resetLine","appendText","textContainer","appendInlineBlockText","flashInlineBlockText","endLine","il","il1","jl","jl1","DomEnumerator","callback","enumerate","preventDown","hasText","enumerator","buildText","getDefaultSeparators","htmlLines","isEmptyspace","action","actions","isBr","o","all","keepNewLines","ul","ol","thead","tbody","td","cleaner","tdCleaner","cellText","custom","jQuery","979"],"mappings":"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","file":"js/chunk-vendors~3d140997.97cc782b.js","sourcesContent":["module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(978);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }),\n\n/***/ 978:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(979) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t})(function(){\n\n\t(function($) {\n\n\t // Imports ================================================================\n\t var kendo = window.kendo,\n\t Class = kendo.Class,\n\t editorNS = kendo.ui.editor,\n\t RangeUtils = editorNS.RangeUtils,\n\t dom = editorNS.Dom,\n\t RestorePoint = editorNS.RestorePoint,\n\t Marker = editorNS.Marker,\n\t browser = kendo.support.browser,\n\t extend = $.extend;\n\n\tvar Clipboard = Class.extend({\n\t init: function(editor) {\n\t this.editor = editor;\n\t var pasteCleanup = editor.options.pasteCleanup;\n\t this.cleaners = [\n\t new ScriptCleaner(pasteCleanup),\n\t new TabCleaner(pasteCleanup),\n\t new MSWordFormatCleaner(pasteCleanup),\n\t new WebkitFormatCleaner(pasteCleanup),\n\t new HtmlTagsCleaner(pasteCleanup),\n\t new HtmlAttrCleaner(pasteCleanup),\n\t new HtmlContentCleaner(pasteCleanup),\n\t new CustomCleaner(pasteCleanup) //always keep at end\n\t ];\n\t },\n\n\t htmlToFragment: function(html) {\n\t var editor = this.editor,\n\t doc = editor.document,\n\t container = dom.create(doc, 'div'),\n\t fragment = doc.createDocumentFragment();\n\n\t container.innerHTML = html;\n\n\t while (container.firstChild) {\n\t fragment.appendChild(container.firstChild);\n\t }\n\n\t return fragment;\n\t },\n\n\t isBlock: function(html) {\n\t return (/<(div|p|ul|ol|table|h[1-6])/i).test(html);\n\t },\n\n\t _startModification: function() {\n\t var range;\n\t var restorePoint;\n\t var editor = this.editor;\n\n\t if (this._inProgress) {\n\t return;\n\t }\n\n\t this._inProgress = true;\n\n\t range = editor.getRange();\n\t restorePoint = new RestorePoint(range, editor.body);\n\n\t dom.persistScrollTop(editor.document);\n\n\t return { range: range, restorePoint: restorePoint };\n\t },\n\n\t _endModification: function(modificationInfo) {\n\t editorNS._finishUpdate(this.editor, modificationInfo.restorePoint);\n\n\t this.editor._selectionChange();\n\n\t this._inProgress = false;\n\t },\n\n\t _contentModification: function(before, after) {\n\t var that = this;\n\t var editor = that.editor;\n\t var modificationInfo = that._startModification();\n\n\t if (!modificationInfo) {\n\t return;\n\t }\n\n\t before.call(that, editor, modificationInfo.range);\n\n\t setTimeout(function() {\n\t after.call(that, editor, modificationInfo.range);\n\n\t that._endModification(modificationInfo);\n\t });\n\t },\n\n\t _removeBomNodes: function(range) {\n\t var nodes = RangeUtils.textNodes(range);\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t nodes[i].nodeValue = dom.stripBom(nodes[i].nodeValue) || nodes[i].nodeValue;\n\t }\n\t },\n\n\t _onBeforeCopy: function(range) {\n\t var marker = new Marker();\n\t marker.add(range);\n\n\t this._removeBomNodes(range);\n\n\t marker.remove(range);\n\n\t this.editor.selectRange(range);\n\t },\n\n\t oncopy: function() {\n\t this._onBeforeCopy(this.editor.getRange());\n\t },\n\n\t oncut: function() {\n\t this._onBeforeCopy(this.editor.getRange());\n\t this._contentModification($.noop, $.noop);\n\t },\n\n\t _fileToDataURL: function(blob) {\n\t var deferred = $.Deferred();\n\n\t var reader = new FileReader();\n\n\t if (!(blob instanceof window.File) && blob.getAsFile) {\n\t blob = blob.getAsFile();\n\t }\n\n\t reader.onload = $.proxy(deferred.resolve, deferred);\n\n\t reader.readAsDataURL(blob);\n\n\t return deferred.promise();\n\t },\n\n\t _triggerPaste: function(html, options) {\n\t var args = { html: html || \"\" };\n\n\t args.html = args.html.replace(/\\ufeff/g, \"\");\n\n\t this.editor.trigger(\"paste\", args);\n\n\t this.paste(args.html, options || {});\n\t },\n\n\t _handleImagePaste: function(e) {\n\t if (!('FileReader' in window) || (browser.msie && browser.version > 10)) {\n\t return;\n\t }\n\n\t var clipboardData = e.clipboardData || e.originalEvent.clipboardData ||\n\t window.clipboardData || {};\n\n\t var items = clipboardData.items || clipboardData.files;\n\n\t return this._insertImages(items);\n\t },\n\n\t _insertImages: function(items){\n\t if (!items) {\n\t return;\n\t }\n\n\t var images = $.grep(items, function(item) { return (/^image\\//i).test(item.type); });\n\t var html = $.grep(items, function(item) { return (/^text\\/html/i).test(item.type); });\n\n\t if (html.length || !images.length) {\n\t return;\n\t }\n\n\t var modificationInfo = this._startModification();\n\n\t if (!modificationInfo) {\n\t return;\n\t }\n\n\t $.when.apply($, $.map(images, this._fileToDataURL))\n\t .done($.proxy(function() {\n\t var results = Array.prototype.slice.call(arguments);\n\t var html = $.map(results, function(e) {\n\t return '';\n\t }).join(\"\");\n\n\t this._triggerPaste(html);\n\n\t this._endModification(modificationInfo);\n\t }, this));\n\n\t return true;\n\t },\n\n\t onpaste: function(e) {\n\t if (this.editor.body.contentEditable === \"false\") {\n\t return;\n\t }\n\n\t if (this._handleImagePaste(e)) {\n\t e.preventDefault();\n\t return;\n\t }\n\n\t this.expandImmutablesIn();\n\n\t this._contentModification(\n\t function beforePaste(editor, range) {\n\t var clipboardNode = dom.create(editor.document, 'div', {\n\t className:'k-paste-container',\n\t innerHTML: \"\\ufeff\"\n\t });\n\t var browser = kendo.support.browser;\n\t var body = editor.body;\n\n\t this._decoreateClipboardNode(clipboardNode, body);\n\n\t body.appendChild(clipboardNode);\n\n\t //Browser scrolls to clipboardNode\n\t if (browser.webkit) {\n\t this._moveToCaretPosition(clipboardNode, range);\n\t }\n\n\t // text ranges are slow in IE10-, DOM ranges are buggy in IE9-10\n\t if (browser.msie && browser.version < 11) {\n\t e.preventDefault();\n\t var r = editor.createRange();\n\t r.selectNodeContents(clipboardNode);\n\t editor.selectRange(r);\n\t var textRange = editor.document.body.createTextRange();\n\t textRange.moveToElementText(clipboardNode);\n\t $(body).off('paste');\n\t textRange.execCommand('Paste');\n\t $(body).on('paste', $.proxy(this.onpaste, this));\n\t } else {\n\t var clipboardRange = editor.createRange();\n\t clipboardRange.selectNodeContents(clipboardNode);\n\t editor.selectRange(clipboardRange);\n\t }\n\n\t range.deleteContents();\n\t },\n\t function afterPaste(editor, range) {\n\t var html = \"\", containers;\n\n\t editor.selectRange(range);\n\n\t containers = $(editor.body).children(\".k-paste-container\");\n\n\t containers.each(function() {\n\t var lastChild = this.lastChild;\n\n\t if (lastChild && dom.is(lastChild, 'br')) {\n\t dom.remove(lastChild);\n\t }\n\n\t html += this.innerHTML;\n\t });\n\n\t containers.remove();\n\n\t this._triggerPaste(html, { clean: true });\n\t }\n\t );\n\t },\n\t ondragover: function(e){\n\t if (browser.msie || browser.edge) {\n\t e.stopPropagation();\n\t e.preventDefault();\n\t }\n\t },\n\t ondrop: function(e){\n\t if (!('FileReader' in window)) {\n\t return;\n\t }\n\n\t var dataTransfer = (e.originalEvent || e).dataTransfer || {};\n\t var items = dataTransfer.items || dataTransfer.files;\n\n\t if (this._insertImages(items)) {\n\t e.preventDefault();\n\t }\n\t },\n\t _decoreateClipboardNode: function(node, body) {\n\t if (!browser.msie && !browser.webkit) {\n\t return;\n\t }\n\n\t node = $(node);\n\t node.css({\n\t borderWidth : \"0px\",\n\t width : \"0px\",\n\t height : \"0px\",\n\t overflow: \"hidden\",\n\t margin : \"0\",\n\t padding : \"0\"\n\t });\n\n\t if (browser.msie) {\n\t //node inherits BODY styles and this causes the browser to add additional\n\t var documentElement = $(body.ownerDocument.documentElement);\n\n\t node.css({\n\t fontVariant : \"normal\",\n\t fontWeight : \"normal\",\n\t lineSpacing : \"normal\",\n\t lineHeight : \"normal\",\n\t textDecoration : \"none\"\n\t });\n\t var color = documentElement.css(\"color\");\n\t if (color) {\n\t node.css(\"color\", color);\n\t }\n\t var fontFamily = documentElement.css(\"fontFamily\");\n\t if (fontFamily) {\n\t node.css(\"fontFamily\", fontFamily);\n\t }\n\t var fontSize = documentElement.css(\"fontSize\");\n\t if (fontSize) {\n\t node.css(\"fontSize\", fontSize);\n\t }\n\t }\n\t },\n\t _moveToCaretPosition: function(node, range) {\n\t var that = this;\n\t var body = that.editor.body;\n\t var nodeOffset = dom.offset(node, body);\n\t var caretOffset = that._caretOffset(range, body);\n\t var translateX = caretOffset.left - nodeOffset.left;\n\t var translateY = caretOffset.top - nodeOffset.top;\n\t var translate = \"translate(\" + translateX + \"px,\" + translateY + \"px)\";\n\n\t $(node).css({\n\t \"-webkit-transform\": translate,\n\t \"transform\" : translate\n\t });\n\t },\n\t _caretOffset: function (range, body) {\n\t var editor = this.editor;\n\t var caret = dom.create(editor.document, 'span', { innerHTML: \"\\ufeff\" });\n\t var startContainer = range.startContainer;\n\t var rangeChanged;\n\n\t if (range.collapsed) {\n\t var isStartTextNode = dom.isDataNode(startContainer);\n\t if (isStartTextNode && (dom.isBom(startContainer) || range.startOffset === 0)) {\n\t dom.insertBefore(caret, startContainer);\n\t } else if(isStartTextNode && range.startOffset === startContainer.length) {\n\t dom.insertAfter(caret, startContainer);\n\t } else {\n\t range.insertNode(caret);\n\t rangeChanged = true;\n\t }\n\t } else {\n\t startContainer = startContainer === body ?\n\t startContainer.childNodes[range.startOffset] : startContainer;\n\t dom.insertBefore(caret, startContainer);\n\t }\n\n\t var offset = dom.offset(caret, body);\n\t var prev = caret.previousSibling;\n\t var next = caret.nextSibling;\n\n\t dom.remove(caret);\n\n\t if(rangeChanged && dom.isDataNode(prev) && dom.isDataNode(next) && !dom.isBom(prev) && !dom.isBom(next)) {\n\t var prevLength = prev.length;\n\t next.data = prev.data + next.data;\n\t range.setStart(next, prevLength);\n\t dom.remove(prev);\n\n\t range.collapse(true);\n\t editor.selectRange(range);\n\t }\n\n\t return offset;\n\t },\n\n\t expandImmutablesIn: function(range){\n\t var editor = this.editor;\n\t if (editor && editor.options.immutables) {\n\t var body = editor.body;\n\t range = range || editor.getRange();\n\t kendo.ui.editor.Immutables.expandImmutablesIn(range);\n\t if (range.startContainer === body && range.startOffset === 0) {\n\t var doc = body.ownerDocument;\n\t var bomNode = doc.createTextNode(\"\\ufeff\");\n\t body.insertBefore(bomNode, body.childNodes[0]);\n\t range.setStartBefore(bomNode);\n\t }\n\t editor.selectRange(range);\n\t }\n\t },\n\n\t splittableParent: function(block, node) {\n\t var parentNode, body;\n\n\t if (block) {\n\t return dom.closestEditableOfType(node, ['p', 'ul', 'ol']) || node.parentNode;\n\t }\n\n\t parentNode = node.parentNode;\n\t body = node.ownerDocument.body;\n\n\t if (dom.isInline(parentNode)) {\n\t while (parentNode.parentNode != body && !dom.isBlock(parentNode.parentNode)) {\n\t parentNode = parentNode.parentNode;\n\t }\n\t }\n\n\t return parentNode;\n\t },\n\n\t paste: function (html, options) {\n\t var editor = this.editor,\n\t i, l, childNodes;\n\n\t this.expandImmutablesIn();\n\n\t options = extend({ clean: false, split: true }, options);\n\n\t if(!options.skipCleaners) {\n\t for (i = 0, l = this.cleaners.length; i < l; i++) {\n\t if (this.cleaners[i].applicable(html)) {\n\t html = this.cleaners[i].clean(html);\n\t }\n\t }\n\t }\n\n\t if (options.clean) {\n\t // remove br elements which immediately precede block elements\n\t html = html.replace(/(
(\\s| )*)+(<\\/?(div|p|li|col|t))/ig, \"$3\");\n\t // remove empty inline elements\n\t html = html.replace(/<(a|span)[^>]*><\\/\\1>/ig, \"\");\n\t }\n\n\t html = html.replace(/<(a|span|font)([^>]*)> <\\/\\1>/ig, \"<$1$2> \");\n\n\t // It is possible in IE to copy just
  • tags\n\t html = html.replace(/^
  • $/g, 'li>');\n\n\t var block = this.isBlock(html);\n\n\t editor.focus();\n\t var range = editor.getRange();\n\t range.deleteContents();\n\n\t if (range.startContainer == editor.document) {\n\t range.selectNodeContents(editor.body);\n\t }\n\n\t var marker = new Marker();\n\t var caret = marker.addCaret(range);\n\n\t var parent = this.splittableParent(block, caret);\n\t var unwrap = false;\n\t var splittable = parent != editor.body && !dom.is(parent, \"td\");\n\n\t if (options.split && splittable && (block || dom.isInline(parent))) {\n\t range.selectNode(caret);\n\t RangeUtils.split(range, parent, true);\n\t unwrap = true;\n\t }\n\n\t var fragment = this.htmlToFragment(html);\n\n\t if (fragment.firstChild && fragment.firstChild.className === \"k-paste-container\") {\n\t var fragmentsHtml = [];\n\t for (i = 0, l = fragment.childNodes.length; i < l; i++) {\n\t fragmentsHtml.push(fragment.childNodes[i].innerHTML);\n\t }\n\n\t fragment = this.htmlToFragment(fragmentsHtml.join('
    '));\n\t }\n\n\t childNodes = fragment.childNodes;\n\n\t $(childNodes)\n\t .filter(\"table\").addClass(\"k-table\").end()\n\t .find(\"table\").addClass(\"k-table\");\n\n\t $(childNodes).each(function(index, elm){\n\t if (dom.isBlock(elm) && !dom.isSelfClosing(elm) && elm.innerHTML === \"\") {\n\t elm.appendChild(editor.document.createTextNode(\"\\ufeff\"));\n\t }\n\t });\n\n\t range.insertNode(fragment);\n\n\t parent = this.splittableParent(block, caret);\n\t if (unwrap) {\n\t while (caret.parentNode != parent) {\n\t dom.unwrap(caret.parentNode);\n\t }\n\n\t dom.unwrap(caret.parentNode);\n\t }\n\n\t dom.normalize(range.commonAncestorContainer);\n\t caret.style.display = 'inline';\n\t dom.restoreScrollTop(editor.document);\n\t dom.scrollTo(caret);\n\t marker.removeCaret(range);\n\n\t var rangeEnd = range.commonAncestorContainer.parentNode;\n\t if (range.collapsed && dom.name(rangeEnd) == \"tbody\" || range.collapsed && dom.name(rangeEnd) == \"thead\") {\n\t range.setStartAfter($(rangeEnd).closest(\"table\")[0]);\n\t range.collapse(true);\n\t }\n\n\t var focusedTable = $(range.commonAncestorContainer.parentNode).closest(\"table\");\n\n\t if(focusedTable.get(0)) {\n\t var siblingNodes = focusedTable.parent().contents();\n\t var lastSiblingIndex = siblingNodes.length - 1;\n\t var lastSibling = siblingNodes.get(lastSiblingIndex);\n\n\t while(lastSibling.nodeValue !== null && (lastSibling.nodeValue === \" \" || lastSibling.nodeValue === \"\")) {\n\t lastSiblingIndex -= 1;\n\t lastSibling = siblingNodes.get(lastSiblingIndex);\n\t }\n\n\t if(lastSibling === focusedTable.get(0) && !focusedTable.parents(\"table\").length) {\n\t dom.insertAfter(dom.createEmptyNode(editor.document, \"p\"), focusedTable[0]);\n\t }\n\t }\n\n\t editor.selectRange(range);\n\t }\n\t});\n\n\tvar Cleaner = Class.extend({\n\t init: function(options) {\n\t this.options = options || {};\n\t this.replacements = [];\n\t },\n\n\t clean: function(html, customReplacements) {\n\t var that = this,\n\t replacements = customReplacements || that.replacements,\n\t i, l;\n\n\t for (i = 0, l = replacements.length; i < l; i += 2) {\n\t html = html.replace(replacements[i], replacements[i+1]);\n\t }\n\n\t return html;\n\t }\n\t});\n\n\tvar ScriptCleaner = Cleaner.extend({\n\t init: function(options) {\n\t Cleaner.fn.init.call(this, options);\n\n\t this.replacements = [\n\t /<(\\/?)script([^>]*)>/i, \"<$1telerik:script$2>\"\n\t ];\n\t },\n\n\t applicable: function(html) {\n\t return !this.options.none && (/]*>/i).test(html);\n\t }\n\t});\n\n\tvar TabCleaner = Cleaner.extend({\n\t init: function(options) {\n\t Cleaner.fn.init.call(this, options);\n\n\t var replacement = ' ';\n\t this.replacements = [\n\t /]*>\\s*<\\/span>/gi, replacement,\n\t /\\t/gi, replacement,\n\t /    /gi, replacement\n\t ];\n\t },\n\n\t applicable: function(html) {\n\t return (/    |class=\"?Apple-tab-span/i).test(html);\n\t }\n\t});\n\n\tvar MSWordFormatCleaner = Cleaner.extend({\n\t init: function(options) {\n\t Cleaner.fn.init.call(this, options);\n\n\t this.junkReplacements = [\n\t /<\\?xml[^>]*>/gi, '',\n\t //g, '', /* comments */\n\t /"/g, \"'\", /* encoded quotes (in attributes) */\n\t / <\\/o:p>/ig, ' ',\n\t /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/ig, '', /* external references and namespaced tags */\n\t /<\\/o>/g, ''\n\t ];\n\t this.replacements = this.junkReplacements.concat([\n\t /(?:
     [\\s\\r\\n]+|
    )*(<\\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
     [\\s\\r\\n]+|
    )*/g, '$1',\n\t /

    /g, '

    ',\n\t /
    (?!\\n)/g, ' ',\n\t /]*)>(\\s| )+]*>(\\s| )*<\\/tr>/gi, '',\n\t /]*>(\\s| )*<\\/tbody>/gi, '',\n\t /]*>(\\s| )*<\\/table>/gi, '',\n\t /

    /g, '
    ',\n\t /^\\s*( )+/gi, '',\n\t /( |]*>)+\\s*$/gi, '',\n\t /mso-[^;\"]*;?/ig, '', /* office-related CSS attributes */\n\t /<(\\/?)b(\\s[^>]*)?>/ig, '<$1strong$2>',\n\t /<(\\/?)font(\\s[^>]*)?>/ig, this.convertFontMatch,\n\t /<(\\/?)i(\\s[^>]*)?>/ig, '<$1em$2>',\n\t /style=([\"|'])\\s*\\1/g, '', /* empty style attributes */\n\t /(]*>)?\\n/g, function ($0, $1) { return $1 ? $0 : ' '; } /* phantom extra line feeds */\n\t ]);\n\t },\n\n\t convertFontMatch: function(match, closing, args) {\n\t var faceRe = /face=['\"]([^'\"]+)['\"]/i;\n\t var face = faceRe.exec(args);\n\t var family = args && face && face[1];\n\n\t if (closing) {\n\t return '';\n\t } else if (family) {\n\t return '';\n\t } else {\n\t return '';\n\t }\n\t },\n\n\t applicable: function(html) {\n\t return (/class=\"?Mso/i).test(html) ||\n\t (/style=\"[^\"]*mso-/i).test(html) ||\n\t (/urn:schemas-microsoft-com:office/).test(html);\n\t },\n\n\t stripEmptyAnchors: function(html) {\n\t return html.replace(/]*)>\\s*<\\/a>/ig, function(a, attributes) {\n\t if (!attributes || attributes.indexOf(\"href\") < 0) {\n\t return \"\";\n\t }\n\n\t return a;\n\t });\n\t },\n\n\t listType: function(p, listData) {\n\t var html = p.innerHTML;\n\t var text = dom.innerText(p);\n\n\t var startingSymbol;\n\t var matchSymbol = html.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i);\n\t var symbol = matchSymbol && matchSymbol[1];\n\t var isNumber = /^[a-z\\d]/i.test(symbol);//including alpha-numeric and roman numerals\n\n\t var trimStartText = function(text) {\n\t return text.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, '');\n\t };\n\n\t if (matchSymbol) {\n\t startingSymbol = true;\n\t }\n\n\t html = html.replace(/<\\/?\\w+[^>]*>/g, '').replace(/ /g, '\\u00a0');\n\n\t if ((!startingSymbol && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(html)) ||\n\t (startingSymbol && /^.\\u00a0+/.test(html)) ||\n\t (symbol && !isNumber && listData)) {\n\t return {\n\t tag: 'ul',\n\t style: this._guessUnorderedListStyle(trimStartText(text))\n\t };\n\t }\n\n\t if (/^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(html)) {\n\t return {\n\t tag: 'ol',\n\t style: this._guessOrderedListStyle(trimStartText(text))\n\t };\n\t }\n\t },\n\n\t _convertToLi: function(p) {\n\t var content;\n\n\t if (p.childNodes.length == 1) {\n\t content = p.firstChild.nodeType === dom.nodeTypes.TEXT_NODE ? dom.innerText(p) : p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, \"\");\n\t content = this._checkForBullet(content);\n\t } else {\n\t content = this._getHtmlNoBullet(p);\n\t }\n\n\t dom.remove(p);\n\n\t return dom.create(document, 'li', { innerHTML: content });\n\t },\n\n\t _checkForBullet: function (html) {\n\t var p = dom.create(document, 'p', { innerHTML: html });\n\t var bulletRgx = /^\\s*\\w+[\\.\\)]\\s+/;\n\n\t if(bulletRgx.test(p.innerText)) {\n\t return this._getHtmlNoBullet(p);\n\t }\n\n\t return html;\n\t },\n\n\t _getHtmlNoBullet: function (element) {\n\t var content,\n\t name = dom.name(element);\n\n\t dom.remove(element.firstChild);\n\n\t // check for roman numerals\n\t if (element.firstChild.nodeType == 3) {\n\t if (/^[ivxlcdm]+\\.$/i.test(element.firstChild.nodeValue)) {\n\t dom.remove(element.firstChild);\n\t }\n\t }\n\n\t if (/^( |\\s)+$/i.test(element.firstChild.innerHTML)) {\n\t dom.remove(element.firstChild);\n\t }\n\n\t if (name != \"p\") {\n\t content = \"<\" + name + \">\" + element.innerHTML + \"\";\n\t } else {\n\t content = element.innerHTML;\n\t }\n\n\t return content;\n\t },\n\n\t _guessUnorderedListStyle: function(symbol) {\n\t if (/^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(symbol)) {\n\t return null;//return \"disc\"; //default CSS value\n\t } else if (/^o/.test(symbol)) {\n\t return \"circle\";\n\t } else {\n\t return \"square\";\n\t }\n\t },\n\t _guessOrderedListStyle: function(symbol) {\n\t var listType = null;\n\t if (!/^\\d/.test(symbol)) {\n\t listType = (/^[a-z]/.test(symbol) ? 'lower-' : 'upper-') +\n\t (/^[ivxlcdm]/i.test(symbol) ? 'roman' : 'alpha');\n\t }\n\n\t return listType;\n\t },\n\n\t extractListLevels: function(html) {\n\t var msoListRegExp = /style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi;\n\n\t html = html.replace(msoListRegExp, function(match, list, level) {\n\t return kendo.format('data-list=\"{0}\" data-level=\"{1}\" {2}', list, level, match);\n\t });\n\n\t return html;\n\t },\n\n\t _createList: function(type, styleType) {\n\t return dom.create(document, type, {\n\t style: { listStyleType: styleType }\n\t });\n\t },\n\n\t lists: function(placeholder) {\n\t var blockChildren = $(placeholder).find(dom.blockElements.join(',')),\n\t lastMargin = -1,\n\t name,\n\t levels = {},\n\t li,\n\t rootMargin,\n\t rootIndex,\n\t lastRootLi,\n\t isLastRootLi,\n\t rootList,\n\t i, p, type, margin, list, listData,\n\t acceptedNameTags = [\"p\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"],\n\t isParentTable = false;\n\n\t for (i = 0; i < blockChildren.length; i++) {\n\t p = blockChildren[i];\n\t listData = $(p).data();\n\t var listIndex = listData.list;\n\t name = dom.name(p);\n\t isParentTable = !!$(p).parents(\"table\").length;\n\n\t if (isParentTable) {\n\t continue;\n\t }\n\n\t var listType = this.listType(p, listData);\n\t type = listType && listType.tag;\n\n\t if (!type || acceptedNameTags.indexOf(name) < 0) {\n\t if (!p.innerHTML) {\n\t dom.remove(p);\n\t } else if (li && !isLastRootLi) {\n\t li.appendChild(p);\n\t }\n\t continue;\n\t }\n\n\t // not supported list levels in ie\n\t if (browser.msie) {\n\t continue;\n\t }\n\n\t margin = listData.level || parseFloat(p.style.marginLeft || 0);\n\n\t var levelType = type + listIndex;\n\t if (!levels[margin]) {\n\t levels[margin] = {};\n\t }\n\n\t if (!rootMargin || rootMargin < 0) {\n\t rootMargin = margin;\n\t rootIndex = listIndex;\n\t lastRootLi = $(placeholder).find(\"[data-list='\" + rootIndex + \"']\").last()[0];\n\t rootList = this._createList(type, listType.style);\n\t dom.insertBefore(rootList, p);\n\t lastMargin = margin;\n\t levels[margin][levelType] = rootList;\n\t }\n\n\t isLastRootLi = lastRootLi === p;\n\n\t list = levels[margin][levelType];\n\n\t if (margin > lastMargin || !list) {\n\t list = this._createList(type, listType.style);\n\t levels[margin][levelType] = list;\n\t li.appendChild(list);\n\t }\n\n\t li = this._convertToLi(p);\n\t list.appendChild(li);\n\n\t if (isLastRootLi) {\n\t rootMargin = lastMargin = -1;\n\t } else {\n\t lastMargin = margin;\n\t }\n\t }\n\t },\n\n\t removeAttributes: function(element) {\n\t var attributes = element.attributes,\n\t i = attributes.length;\n\n\t while (i--) {\n\t if (dom.name(attributes[i]) != \"colspan\") {\n\t element.removeAttributeNode(attributes[i]);\n\t }\n\t }\n\t },\n\n\t createColGroup: function(row) {\n\t var cells = row.cells;\n\t var table = $(row).closest(\"table\");\n\t var colgroup = table.children(\"colgroup\");\n\n\t if (cells.length < 2) {\n\t return;\n\t } else if (colgroup.length) {\n\t cells = colgroup.children();\n\t colgroup[0].parentNode.removeChild(colgroup[0]);\n\t }\n\n\t colgroup = $($.map(cells, function(cell) {\n\t var width = cell.width;\n\t if (width && parseInt(width, 10) !== 0) {\n\t return kendo.format('', width);\n\t }\n\n\t return \"\";\n\t }).join(\"\"));\n\n\t // jquery 1.9/2.0 discrepancy\n\t if (!colgroup.is(\"colgroup\")) {\n\t colgroup = $(\"\").append(colgroup);\n\t }\n\n\t colgroup.prependTo(table);\n\t },\n\n\t convertHeaders: function(row) {\n\t var cells = row.cells,\n\t i,\n\t boldedCells = $.map(cells, function(cell) {\n\t var child = $(cell).children(\"p\").children(\"strong\")[0];\n\n\t if (child && dom.name(child) == \"strong\") {\n\t return child;\n\t }\n\t });\n\n\t if (boldedCells.length == cells.length) {\n\t for (i = 0; i < boldedCells.length; i++) {\n\t dom.unwrap(boldedCells[i]);\n\t }\n\n\t $(row).closest(\"table\")\n\t .find(\"colgroup\").after(\"\").end()\n\t .find(\"thead\").append(row);\n\n\t for (i = 0; i < cells.length; i++) {\n\t dom.changeTag(cells[i], \"th\");\n\t }\n\t }\n\t },\n\n\t removeParagraphs: function(cells) {\n\t var i, j, len, cell, paragraphs;\n\n\t for (i = 0; i < cells.length; i++) {\n\t this.removeAttributes(cells[i]);\n\n\t // remove paragraphs and insert line breaks between them\n\t cell = $(cells[i]);\n\t paragraphs = cell.children(\"p\");\n\n\t for (j = 0, len = paragraphs.length; j < len; j++) {\n\t if (j < len - 1) {\n\t dom.insertAfter(dom.create(document, \"br\"), paragraphs[j]);\n\t }\n\n\t dom.unwrap(paragraphs[j]);\n\t }\n\t }\n\t },\n\n\t removeDefaultColors: function(spans) {\n\t for (var i = 0; i < spans.length; i++) {\n\t if (/^\\s*color:\\s*[^;]*;?$/i.test(spans[i].style.cssText)) {\n\t dom.unwrap(spans[i]);\n\t }\n\t }\n\t },\n\n\t removeTextNodes: function(trs) {\n\t var i, j, childNodes, currentNode, row;\n\n\t for(i = 0; i < trs.length; i++) {\n\t row = trs[i];\n\t childNodes = row.childNodes;\n\n\t for(j = 0; j < childNodes.length; j++) {\n\t currentNode = childNodes[j];\n\n\t if(currentNode.nodeType === dom.nodeTypes.TEXT_NODE) {\n\t row.removeChild(currentNode);\n\t }\n\t }\n\t }\n\t },\n\n\t tables: function(placeholder) {\n\t var tables = $(placeholder).find(\"table\"),\n\t that = this,\n\t rows,\n\t firstRow, longestRow, i, j;\n\n\t for (i = 0; i < tables.length; i++) {\n\t rows = tables[i].rows;\n\t longestRow = firstRow = rows[0];\n\n\t for (j = 1; j < rows.length; j++) {\n\t if (rows[j].cells.length > longestRow.cells.length) {\n\t longestRow = rows[j];\n\t }\n\t }\n\n\t that.createColGroup(longestRow);\n\t that.convertHeaders(firstRow);\n\n\t that.removeAttributes(tables[i]);\n\n\t that.removeParagraphs(tables.eq(i).find(\"td,th\"));\n\t that.removeDefaultColors(tables.eq(i).find(\"span\"));\n\n\t that.removeTextNodes(tables.eq(i).find(\"tr\"));\n\t }\n\t },\n\n\t headers: function(placeholder) {\n\t var titles = $(placeholder).find(\"p.MsoTitle\");\n\n\t for (var i = 0; i < titles.length; i++) {\n\t dom.changeTag(titles[i], \"h1\");\n\t }\n\t },\n\n\t removeFormatting: function (placeholder) {\n\t $(placeholder).find(\"*\").each(function() {\n\t $(this).css({\n\t fontSize: \"\",\n\t fontFamily: \"\"\n\t });\n\n\t if (!this.getAttribute(\"style\") && !this.style.cssText) {\n\t this.removeAttribute(\"style\");\n\t }\n\t });\n\t },\n\n\t clean: function(html) {\n\t var that = this, placeholder;\n\t var filters = this.options;\n\n\t if (filters.none) {\n\t html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n\t html = that.stripEmptyAnchors(html);\n\t } else {\n\n\t html = filters.msConvertLists ? this.extractListLevels(html) : html;\n\t html = Cleaner.fn.clean.call(that, html);\n\t html = that.stripEmptyAnchors(html);\n\n\t placeholder = dom.create(document, 'div', {innerHTML: html});\n\t that.headers(placeholder);\n\n\t if (filters.msConvertLists) {\n\t that.lists(placeholder);\n\t }\n\t that.tables(placeholder);\n\n\t if (filters.msAllFormatting) {\n\t that.removeFormatting(placeholder);\n\t }\n\n\t html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/ig, '$1');\n\t }\n\n\t return html;\n\t }\n\t});\n\n\tvar WebkitFormatCleaner = Cleaner.extend({\n\t init: function(options) {\n\t Cleaner.fn.init.call(this, options);\n\n\t this.replacements = [\n\t /\\s+class=\"Apple-style-span[^\"]*\"/gi, '',\n\t /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi, '<$1',\n\t /^
    (.*)<\\/div>$/, '$1'\n\t ];\n\t },\n\n\t applicable: function(html) {\n\t return (/class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i).test(html);\n\t }\n\t});\n\n\tvar DomCleaner = Cleaner.extend({\n\t clean: function(html) {\n\t var container = dom.create(document, 'div', {innerHTML: html});\n\t container = this.cleanDom(container);\n\t return container.innerHTML;\n\t },\n\n\t cleanDom: function(container) {\n\t return container;\n\t }\n\t});\n\n\tvar HtmlTagsCleaner = DomCleaner.extend({\n\t cleanDom: function(container) {\n\t var tags = this.collectTags();\n\n\t $(container).find(tags).each(function() {\n\t dom.unwrap(this);\n\t });\n\n\t return container;\n\t },\n\n\t collectTags: function() {\n\t if (this.options.span) {\n\t return \"span\";\n\t }\n\t },\n\n\t applicable: function() {\n\t return this.options.span;\n\t }\n\t});\n\n\tvar HtmlAttrCleaner = DomCleaner.extend({\n\t cleanDom: function(container) {\n\t var attributes = this.collectAttr();\n\t var nodes = $(container).find(\"[\" + attributes.join(\"],[\") + \"]\");\n\t nodes.removeAttr(attributes.join(\" \"));\n\n\t return container;\n\t },\n\n\t collectAttr: function() {\n\t if (this.options.css) {\n\t return [\"class\", \"style\"];\n\t }\n\n\t return [];\n\t },\n\n\t applicable: function() {\n\t return this.options.css;\n\t }\n\t});\n\n\tvar TextContainer = function() {\n\t this.text = \"\";\n\t this.add = function(text) {\n\t this.text += text;\n\t };\n\t};\n\n\tvar HtmlTextLines = Class.extend({\n\t init: function(separators) {\n\t this.separators = separators || {\n\t text: \" \",\n\t line: \"
    \"\n\t };\n\t this.lines = [];\n\t this.inlineBlockText = [];\n\t this.resetLine();\n\t },\n\n\t appendText: function(text) {\n\t if (text.nodeType === 3) {\n\t text = text.nodeValue;\n\t }\n\n\t this.textContainer.add(text);\n\t },\n\n\t appendInlineBlockText: function(text) {\n\t this.inlineBlockText.push(text);\n\t },\n\n\t flashInlineBlockText: function() {\n\t if (this.inlineBlockText.length) {\n\t this.appendText(this.inlineBlockText.join(\" \"));\n\t this.inlineBlockText = [];\n\t }\n\t },\n\n\t endLine: function() {\n\t this.flashInlineBlockText();\n\t this.resetLine();\n\t },\n\n\t html: function() {\n\t var separators = this.separators;\n\t var result = \"\";\n\t var lines = this.lines;\n\n\t this.flashInlineBlockText();\n\n\t for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n\t var line = lines[i];\n\t for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n\t var text = line[j].text;\n\t result += text;\n\t if (j !== jl1) {\n\t result += separators.text;\n\t }\n\t }\n\t if (i !== il1) {\n\t result += separators.line;\n\t }\n\t }\n\n\t return result;\n\t },\n\n\t resetLine: function() {\n\t this.textContainer = new TextContainer();\n\t this.line = [];\n\t this.line.push(this.textContainer);\n\t this.lines.push(this.line);\n\t }\n\t});\n\n\tvar DomEnumerator = Class.extend({\n\t init: function(callback) {\n\t this.callback = callback;\n\t },\n\t enumerate: function(node) {\n\t if (!node) {\n\t return;\n\t }\n\n\t var preventDown = this.callback(node);\n\n\t var child = node.firstChild;\n\t if (!preventDown && child) {\n\t this.enumerate(child);\n\t }\n\n\t this.enumerate(node.nextSibling);\n\t }\n\t});\n\n\tvar HtmlContentCleaner = Cleaner.extend({\n\t init: function(options) {\n\t Cleaner.fn.init.call(this, options);\n\t this.hasText = false; //unpleasant flag to prevent an empty line at the beginning of the generated content.\n\t this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n\t },\n\n\t clean: function(html) {\n\t var container = dom.create(document, 'div', {innerHTML: html});\n\n\t return this.cleanDom(container);\n\t },\n\n\t cleanDom: function(container) {\n\t this.separators = this.getDefaultSeparators();\n\t this.htmlLines = new HtmlTextLines(this.separators);\n\t this.enumerator.enumerate(container.firstChild);\n\t this.hasText = false;\n\n\t return this.htmlLines.html();\n\t },\n\n\t buildText: function(node) {\n\t if (dom.isDataNode(node)) {\n\t if (dom.isEmptyspace(node)) {\n\t return;\n\t }\n\t this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n\t this.hasText = true;\n\t } else if (dom.isBlock(node) && this.hasText) {\n\t var action = this.actions[dom.name(node)] || this.actions.block;\n\t return action(this, node);\n\t } else if (dom.isBr(node)) {\n\t this.htmlLines.appendText(this.separators.line);\n\t }\n\t },\n\n\t applicable: function() {\n\t var o = this.options;\n\t return o.all || o.keepNewLines;\n\t },\n\n\t getDefaultSeparators: function() {\n\t if (this.options.all) {\n\t return {text: \" \", line: \" \"};\n\t } else {\n\t return {text: \" \", line: \"
    \"};\n\t }\n\t },\n\n\t actions: {\n\t ul: $.noop,\n\t ol: $.noop,\n\t table: $.noop,\n\t thead: $.noop,\n\t tbody: $.noop,\n\t td: function(cleaner, node) {\n\t var tdCleaner = new HtmlContentCleaner({all: true});\n\n\t var cellText = tdCleaner.cleanDom(node);\n\t cleaner.htmlLines.appendInlineBlockText(cellText);\n\n\t return true;\n\t },\n\n\t block: function(cleaner) {\n\t cleaner.htmlLines.endLine();\n\t }\n\t }\n\t});\n\n\tvar CustomCleaner = Cleaner.extend({\n\t clean: function(html) {\n\t return this.options.custom(html);\n\t },\n\n\t applicable: function() {\n\t return typeof(this.options.custom) === \"function\";\n\t }\n\t});\n\n\textend(editorNS, {\n\t Clipboard: Clipboard,\n\t Cleaner: Cleaner,\n\t ScriptCleaner: ScriptCleaner,\n\t TabCleaner: TabCleaner,\n\t MSWordFormatCleaner: MSWordFormatCleaner,\n\t WebkitFormatCleaner: WebkitFormatCleaner,\n\t HtmlTagsCleaner: HtmlTagsCleaner,\n\t HtmlAttrCleaner: HtmlAttrCleaner,\n\t HtmlContentCleaner: HtmlContentCleaner,\n\t HtmlTextLines: HtmlTextLines,\n\t CustomCleaner: CustomCleaner\n\t});\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ }),\n\n/***/ 979:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../command\");\n\n/***/ })\n\n/******/ });"],"sourceRoot":""}