{"version":3,"sources":["webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/formatting.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/export.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/format.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/exportpdf.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/file.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/formatpainter.js","webpack:///./node_modules/@progress/kendo-ui/js/editor/plugins/formatblock.js"],"names":["module","exports","modules","installedModules","__webpack_require__","moduleId","id","loaded","call","m","c","p","0","3","Error","990","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","f","define","apply","undefined","$","kendo","window","Editor","ui","editor","Tool","ToolTemplate","DelayedExecutionTool","Command","dom","Dom","EditorUtils","RangeUtils","registerTool","FormattingTool","extend","init","options","that","this","fn","deepExtend","type","finder","getFormat","items","text","value","width","toFormattingItem","item","tag","className","dot","indexOf","substring","command","args","FormatCommand","range","formatter","tags","context","split","format","attr","inArray","inlineElements","GreedyInlineFormatter","GreedyBlockFormatter","initialize","initOptions","selectBox","toolName","name","kendoSelectBox","dataTextField","dataValueField","dataSource","title","messages","autoSize","change","dataItem","exec","toJSON","dataBound","i","data","length","highlightFirst","template","wrapper","addClass","closest","removeClass","find","addBack","getFormattingValue","nodes","selector","element","n","update","ancestor","commonAncestor","closestEditable","_ancestor","visible","filter","field","operator","view","toggleClass","destroy","CleanFormatCommand","lockRange","tagsToClean","remove","wrapSelectedElements","mapAll","node","immutableParent","clean","releaseRange","isMarker","listFormatter","ListFormatter","prev","previousSibling","next","nextSibling","unwrap","changeTag","nodeType","insignificant","unwrapListItem","childNodes","removeAttribute","immutables","Immutables","li","closestEditableOfType","parentNode","W3CRange","fromNode","selectNode","toggle","dropDownListTemplate","buttonTemplate","jQuery","991","980","proxy","defaultExportAsItems","ExportAsCommand","cmd","attributes","exportType","postToProxy","generateForm","appendTo","submit","exportAsOptions","exportAs","form","action","proxyURL","method","append","valueInput","exportTypeInput","fileNameInput","encodedValue","fileName","ExportAsTool","tool","changeHandler","displayName","unshift","open","e","sender","style","display","unbind","valueTemplate","_exec","981","979","986","formatByName","_initOptions","FormatTool","commandArguments","isFormatted","982","editorNS","ExportPdfCommand","async","_destroyResizings","saveAsPDF","then","_initializeColumnResizing","_initializeRowResizing","_initializeElementResizing","983","LinkFormatter","textNodes","keys","KEDITORFILEURL","KEDITORFILETEXT","KEDITORFILETITLE","FileCommand","insertFile","file","doc","documentFromRange","href","create","innerHTML","deleteContents","insertNode","insertAfter","createTextNode","setStartAfter","setEndAfter","selectRange","_dialogTemplate","showBrowser","redo","dialog","applied","findSuitable","isIE","support","browser","msie","fileBrowser","FileBrowser","transport","read","dialogOptions","resizable","val","replace","close","preventDefault","windowFromDocument","focus","keyDown","keyCode","ENTER","ESC","expandImmutablesIn","createDialog","on","end","getAttribute","innerText","_fileBrowser","bind","ev","selected","get","dialogHeight","height","css","center","trigger","select","984","985","989","CopyFormatCommand","inlineStyles","blockStyles","collectStyles","rangeNodes","startContainer","is","isBlock","populateStyles","destination","styleValue","styleKey","attributeKey","attributeValue","styles","nodeStyles","tagName","nodeName","nodeValue","push","ApplyFormatCommand","markers","getMarkers","marker","removeCaret","caret","removeEmptyElementsFromRange","cleanInlineParents","normalize","commonAncestorContainer","setEndBefore","setStartBefore","applyBlockStyles","applyInlineStyles","emptyElements","isEmptyInline","isInline","firstChild","getAll","removeChild","parent","children","j","child","newNode","cloneNode","wrap","len","blockParent","outerWrapper","previousNodes","nextNodes","previous","prevWrapper","nextWrapper","listItems","formatTag","document","isWhitespace","blockParentOrBody","insertBefore","insertAt","appendChild","currentStyle","createdNode","topNode","CopyFormatTool","ApplyFormatTool","987","Class","formats","registerFormat","BlockFormatFinder","contains","isAncestorOrSelf","candidate","suitable","ofType","contentEditable","_resolveListsItems","list","findFormat","sourceNode","until","editableParent","ImmutablesNS","immutable","attrEquals","isAncestorOf","isDataNode","result","toLowerCase","BlockFormatter","values","ancestors","significantChildNodes","position","findNodeIndex","ownerDocument","_handleImmutables","images","imageFormat","imageAttributes","each","nonImages","formatNodes","applyFormatting","immutableFormat","l","unstyle","splice","formatNode","namedFormat","filterBy","htmlIndentSpace","block","immutalbeParent","blocks","blockParents","createRange","blockFormatter","selectNodeContents","BlockFormatTool","listElements","nonListBlockElements","textAlign","marginLeft","marginRight","listStylePosition","justifyLeft","justifyCenter","justifyRight","justifyFull","988"],"mappings":"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","file":"js/chunk-vendors~2037d055.fc777b49.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__(990);\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/***/ 990:\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__(991) ], __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\tvar kendo = window.kendo,\n\t Editor = kendo.ui.editor,\n\t Tool = Editor.Tool,\n\t ToolTemplate = Editor.ToolTemplate,\n\t DelayedExecutionTool = Editor.DelayedExecutionTool,\n\t Command = Editor.Command,\n\t dom = Editor.Dom,\n\t EditorUtils = Editor.EditorUtils,\n\t RangeUtils = Editor.RangeUtils,\n\t registerTool = EditorUtils.registerTool;\n\n\n\tvar FormattingTool = DelayedExecutionTool.extend({\n\t init: function(options) {\n\t var that = this;\n\t Tool.fn.init.call(that, kendo.deepExtend({}, that.options, options));\n\n\t that.type = \"kendoSelectBox\";\n\n\t that.finder = {\n\t getFormat: function() { return \"\"; }\n\t };\n\t },\n\n\t options: {\n\t items: [\n\t { text: \"Paragraph\", value: \"p\" },\n\t { text: \"Quotation\", value: \"blockquote\" },\n\t { text: \"Heading 1\", value: \"h1\" },\n\t { text: \"Heading 2\", value: \"h2\" },\n\t { text: \"Heading 3\", value: \"h3\" },\n\t { text: \"Heading 4\", value: \"h4\" },\n\t { text: \"Heading 5\", value: \"h5\" },\n\t { text: \"Heading 6\", value: \"h6\" }\n\t ],\n\t width: 110\n\t },\n\n\t toFormattingItem: function(item) {\n\t var value = item.value;\n\n\t if (!value) {\n\t return item;\n\t }\n\n\t if (item.tag || item.className) {\n\t return item;\n\t }\n\n\t var dot = value.indexOf(\".\");\n\n\t if (dot === 0) {\n\t item.className = value.substring(1);\n\t } else if (dot == -1) {\n\t item.tag = value;\n\t } else {\n\t item.tag = value.substring(0, dot);\n\t item.className = value.substring(dot + 1);\n\t }\n\n\t return item;\n\t },\n\n\t command: function (args) {\n\t var that = this;\n\t var item = args.value;\n\n\t item = this.toFormattingItem(item);\n\n\t return new Editor.FormatCommand({\n\t range: args.range,\n\t formatter: function () {\n\t var formatter,\n\t tags = (item.tag || item.context || \"span\").split(\",\"),\n\t format = [{\n\t tags: tags,\n\t attr: { className: item.className || \"\" }\n\t }];\n\n\t if ($.inArray(tags[0], dom.inlineElements) >= 0) {\n\t formatter = new Editor.GreedyInlineFormatter(format);\n\t } else {\n\t formatter = new Editor.GreedyBlockFormatter(format);\n\t }\n\n\t formatter.editor = that.editor;\n\t return formatter;\n\t }\n\t });\n\t },\n\n\t initialize: function(ui, initOptions) {\n\t var editor = initOptions.editor;\n\t var options = this.options;\n\t var toolName = options.name;\n\t var that = this;\n\t var selectBox;\n\n\t that.editor = editor;\n\n\t ui.width(options.width);\n\n\t selectBox = ui.kendoSelectBox({\n\t dataTextField: \"text\",\n\t dataValueField: \"value\",\n\t dataSource: options.items || editor.options[toolName],\n\t title: editor.options.messages[toolName],\n\t autoSize: true,\n\t change: function () {\n\t var dataItem = this.dataItem();\n\n\t if (dataItem) {\n\t Tool.exec(editor, toolName, dataItem.toJSON());\n\t }\n\t },\n\t dataBound: function() {\n\t var i, items = this.dataSource.data();\n\n\t for (i = 0; i < items.length; i++) {\n\t items[i] = that.toFormattingItem(items[i]);\n\t }\n\t },\n\t highlightFirst: false,\n\t template: kendo.template(\n\t '#:data.text#'\n\t )\n\t }).data(\"kendoSelectBox\");\n\n\t ui.attr(\"title\", initOptions.title);\n\t selectBox.wrapper.attr(\"title\", initOptions.title);\n\n\t ui.addClass(\"k-decorated\")\n\t .closest(\".k-widget\")\n\t .removeClass(\"k-\" + toolName)\n\t .find(\"*\").addBack()\n\t .attr(\"unselectable\", \"on\");\n\t },\n\n\t getFormattingValue: function(items, nodes) {\n\t for (var i = 0; i < items.length; i++) {\n\t var item = items[i];\n\t var tag = item.tag || item.context || \"\";\n\t var className = item.className ? \".\"+item.className : \"\";\n\t var selector = tag + className;\n\n\t var element = $(nodes[0]).closest(selector)[0];\n\n\t if (!element) {\n\t continue;\n\t }\n\n\t if (nodes.length == 1) {\n\t return item.value;\n\t }\n\n\t for (var n = 1; n < nodes.length; n++) {\n\t if (!$(nodes[n]).closest(selector)[0]) {\n\t break;\n\t } else if (n == nodes.length - 1) {\n\t return item.value;\n\t }\n\t }\n\t }\n\n\t return \"\";\n\t },\n\n\t update: function(ui, nodes) {\n\t var selectBox = $(ui).data(this.type);\n\n\t // necessary until formatBlock is deleted\n\t if (!selectBox) {\n\t return;\n\t }\n\n\t var dataSource = selectBox.dataSource,\n\t items = dataSource.data(),\n\t i, context,\n\t ancestor = dom.commonAncestor.apply(null, nodes);\n\n\t if (ancestor != dom.closestEditable(ancestor) && this._ancestor == ancestor) {\n\t return;\n\t } else {\n\t this._ancestor = ancestor;\n\t }\n\n\t for (i = 0; i < items.length; i++) {\n\t context = items[i].context;\n\n\t items[i].visible = !context || !!$(ancestor).closest(context).length;\n\t }\n\n\t dataSource.filter([{ field: \"visible\", operator: \"eq\", value: true }]);\n\n\t DelayedExecutionTool.fn.update.call(this, ui, nodes);\n\n\t selectBox.value(this.getFormattingValue(dataSource.view(), nodes));\n\n\t selectBox.wrapper.toggleClass(\"k-state-disabled\", !dataSource.view().length);\n\t },\n\n\t destroy: function() {\n\t this._ancestor = null;\n\t }\n\t});\n\n\tvar CleanFormatCommand = Command.extend({\n\t exec: function() {\n\t var range = this.lockRange(true);\n\t this.tagsToClean = this.options.remove || \"strong,em,span,sup,sub,del,b,i,u,font\".split(\",\");\n\n\t RangeUtils.wrapSelectedElements(range);\n\n\t var nodes = RangeUtils.mapAll(range, function(node) {\n\t return node;\n\t });\n\n\n\t for(var c = nodes.length - 1; c >= 0; c--) {\n\t var node = nodes[c];\n\t if (!this.immutableParent(node)) {\n\t this.clean(node);\n\t }\n\t }\n\n\t this.releaseRange(range);\n\t },\n\n\t clean: function(node) {\n\t if (!node || dom.isMarker(node)) {\n\t return;\n\t }\n\n\t var name = dom.name(node);\n\n\t if (name == \"ul\" || name == \"ol\") {\n\t var listFormatter = new Editor.ListFormatter(name);\n\t var prev = node.previousSibling;\n\t var next = node.nextSibling;\n\n\t listFormatter.unwrap(node);\n\n\t // clean contents\n\t for (; prev && prev != next; prev = prev.nextSibling) {\n\t this.clean(prev);\n\t }\n\t } else if (name == \"blockquote\") {\n\t dom.changeTag(node, \"p\");\n\t } else if (node.nodeType == 1 && !dom.insignificant(node)) {\n\t for (var i = node.childNodes.length-1; i >= 0; i--) {\n\t this.clean(node.childNodes[i]);\n\t }\n\n\t node.removeAttribute(\"style\");\n\t node.removeAttribute(\"class\");\n\t } else {\n\t unwrapListItem(node);\n\t }\n\n\t if ($.inArray(name, this.tagsToClean) > -1) {\n\t dom.unwrap(node);\n\t }\n\t },\n\n\t immutableParent: function(node) {\n\t return this.immutables() && Editor.Immutables.immutableParent(node);\n\t }\n\t});\n\n\n\tfunction unwrapListItem(node) {\n\t var li = dom.closestEditableOfType(node, [\"li\"]);\n\t if (li) {\n\t var listFormatter = new Editor.ListFormatter(dom.name(li.parentNode));\n\t var range = kendo.ui.editor.W3CRange.fromNode(node);\n\t range.selectNode(li);\n\t listFormatter.toggle(range);\n\t }\n\t}\n\n\t$.extend(Editor, {\n\t FormattingTool: FormattingTool,\n\t CleanFormatCommand: CleanFormatCommand\n\t});\n\n\tregisterTool(\"formatting\", new FormattingTool({ template: new ToolTemplate({ template: EditorUtils.dropDownListTemplate, title: \"Format\" }) }));\n\tregisterTool(\"cleanFormatting\", new Tool({ command: CleanFormatCommand, template: new ToolTemplate({ template: EditorUtils.buttonTemplate, title: \"Clean formatting\" }) }));\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ }),\n\n/***/ 991:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./inlineformat\");\n\n/***/ })\n\n/******/ });","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__(980);\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/***/ 980:\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__(981) ], __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($, undefined) {\n\n\tvar kendo = window.kendo,\n\t extend = $.extend,\n\t proxy = $.proxy,\n\t Editor = kendo.ui.editor,\n\t EditorUtils = Editor.EditorUtils,\n\t Command = Editor.Command,\n\t Tool = Editor.Tool,\n\t registerTool = EditorUtils.registerTool,\n\t ToolTemplate = Editor.ToolTemplate,\n\t defaultExportAsItems = [\n\t { text: 'Docx', value: 'docx' },\n\t { text: 'Rtf', value: 'rtf' },\n\t { text: 'Pdf', value: 'pdf' },\n\t { text: 'Html', value: 'html' },\n\t { text: 'Plain Text', value: 'txt' }\n\t ];\n\n\tvar ExportAsCommand = Command.extend({\n\t init: function(options) {\n\t var cmd = this;\n\t cmd.options = options;\n\t Command.fn.init.call(cmd, options);\n\t cmd.attributes = null;\n\t cmd.exportType = options.exportType;\n\t },\n\n\t exec: function() {\n\t var cmd = this;\n\t var range = this.lockRange(true);\n\t cmd.postToProxy();\n\t cmd.releaseRange(range);\n\t },\n\n\t postToProxy: function() {\n\t this.generateForm().appendTo('body').submit().remove();\n\t },\n\n\t generateForm: function() {\n\t var cmd = this;\n\t var exportAsOptions = cmd.editor.options.exportAs;\n\t var form = $('
').attr({\n\t action: exportAsOptions && exportAsOptions.proxyURL || \"\",\n\t method: 'POST'\n\t });\n\n\t form.append([\n\t cmd.valueInput(),\n\t cmd.exportTypeInput(),\n\t cmd.fileNameInput()\n\t ]);\n\n\t return form;\n\t },\n\n\t valueInput: function() {\n\t var editor = this.editor;\n\t return $('').attr({\n\t value: editor.encodedValue(),\n\t name: 'value',\n\t type: 'hidden'\n\t });\n\t },\n\n\t exportTypeInput: function() {\n\t var cmd = this;\n\t return $('').attr({\n\t value: cmd.exportType,\n\t name: 'exportType',\n\t type: 'hidden'\n\t });\n\n\t },\n\n\t fileNameInput: function() {\n\t var editor = this.editor;\n\t var exportAsOptions = editor.options.exportAs;\n\t var fileName = exportAsOptions && exportAsOptions.fileName || editor.element.attr(\"id\") || \"editor\";\n\t return $('').attr({\n\t value: fileName,\n\t name: 'fileName',\n\t type: 'hidden'\n\t });\n\t }\n\t});\n\n\tvar ExportAsTool = Tool.extend({\n\t init: function(options) {\n\t var tool = this;\n\t Tool.fn.init.call(tool, kendo.deepExtend({}, tool.options, options));\n\t tool.type = 'kendoSelectBox';\n\t },\n\n\t options: {\n\t items: defaultExportAsItems,\n\t width: 140\n\t },\n\n\t command: function(args) {\n\t var value = args.value;\n\t return new Editor.ExportAsCommand({\n\t range: args.range,\n\t exportType: value.exportType\n\t });\n\t },\n\n\t initialize: function(ui, initOptions) {\n\t var tool = this;\n\t var editor = initOptions.editor;\n\t var options = tool.options;\n\t var toolName = options.name;\n\t var changeHandler = proxy(tool.changeHandler, tool);\n\t var dataSource = options.items || editor.options[toolName];\n\t var displayName = editor.options.messages[toolName];\n\t var selectBox;\n\n\t dataSource.unshift({\n\t text: displayName,\n\t value: \"\"\n\t });\n\t tool.editor = editor;\n\t ui.width(options.width);\n\t selectBox = ui.kendoSelectBox({\n\t dataTextField: 'text',\n\t dataValueField: 'value',\n\t dataSource: dataSource,\n\t autoSize: true,\n\t change: changeHandler,\n\t open: function(e) {\n\t var sender = e.sender;\n\t sender.items()[0].style.display = \"none\";\n\t sender.unbind(\"open\");\n\t },\n\t highlightFirst: false,\n\t template: kendo.template('#:data.text#'),\n\t valueTemplate: '' + displayName + ''\n\t }).data(\"kendoSelectBox\");\n\n\t ui.attr(\"title\", initOptions.title);\n\t selectBox.wrapper.attr(\"title\", initOptions.title);\n\n\t ui.addClass('k-decorated').closest('.k-widget').removeClass('k-' + toolName).find('*').addBack().attr('unselectable', 'on');\n\t },\n\n\t changeHandler: function(e) {\n\t var sender = e.sender;\n\t var dataItem = sender.dataItem();\n\t var value = dataItem && dataItem.value;\n\n\t this._exec(value);\n\t sender.value(\"\");\n\t },\n\n\t _exec: function(value) {\n\t if (value) {\n\t Tool.exec(this.editor, this.options.name, { exportType: value } );\n\t }\n\t },\n\n\t destroy: function() {\n\t this._ancestor = null;\n\t }\n\t});\n\n\textend(Editor, {\n\t ExportAsTool: ExportAsTool,\n\t ExportAsCommand: ExportAsCommand\n\t});\n\n\tregisterTool('exportAs', new ExportAsTool({\n\t template: new ToolTemplate({\n\t template: EditorUtils.dropDownListTemplate,\n\t title: 'Export As'\n\t })\n\t}));\n\n\t}(window.kendo.jQuery));\n\n\t}, __webpack_require__(3));\n\n\n/***/ }),\n\n/***/ 981:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../main\");\n\n/***/ })\n\n/******/ });","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__(986);\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/***/ 979:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../command\");\n\n/***/ }),\n\n/***/ 986:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\r\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__));\r\n\t})(function(){\r\n\r\n\t(function($) {\r\n\r\n\tvar kendo = window.kendo,\r\n\t extend = $.extend,\r\n\t Editor = kendo.ui.editor,\r\n\t Tool = Editor.Tool,\r\n\t Command = Editor.Command,\r\n\t EditorUtils = Editor.EditorUtils;\r\n\r\n\tvar FormatCommand = Command.extend({\r\n\t init: function (options) {\r\n\t options.formatter = options.formatter();\r\n\t var finder = options.formatter.finder;\r\n\t if (finder && EditorUtils.formatByName(\"immutable\", finder.format)) {\r\n\t finder._initOptions({immutables: options.immutables});\r\n\t }\r\n\t Command.fn.init.call(this, options);\r\n\t }\r\n\t});\r\n\r\n\tvar FormatTool = Tool.extend({\r\n\t init: function (options) {\r\n\t Tool.fn.init.call(this, options);\r\n\t },\r\n\r\n\t command: function (commandArguments) {\r\n\t var that = this;\r\n\t return new FormatCommand(extend(commandArguments, {\r\n\t formatter: that.options.formatter\r\n\t }));\r\n\t },\r\n\r\n\t update: function(ui, nodes) {\r\n\t var isFormatted = this.options.finder.isFormatted(nodes);\r\n\r\n\t ui.toggleClass(\"k-state-selected\", isFormatted);\r\n\t ui.attr(\"aria-pressed\", isFormatted);\r\n\t }\r\n\t});\r\n\r\n\t$.extend(Editor, {\r\n\t FormatCommand: FormatCommand,\r\n\t FormatTool: FormatTool\r\n\t});\r\n\r\n\t})(window.kendo.jQuery);\r\n\r\n\t}, __webpack_require__(3));\r\n\n\n/***/ })\n\n/******/ });","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__(982);\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/***/ 979:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../command\");\n\n/***/ }),\n\n/***/ 982:\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 editorNS = kendo.ui.editor,\n\t Command = editorNS.Command,\n\t EditorUtils = editorNS.EditorUtils,\n\t registerTool = EditorUtils.registerTool,\n\t Tool = editorNS.Tool,\n\t ToolTemplate = editorNS.ToolTemplate,\n\t extend = $.extend;\n\n\tvar ExportPdfCommand = Command.extend({\n\t init: function(options) {\n\t this.async = true;\n\t Command.fn.init.call(this, options);\n\t },\n\n\t exec: function() {\n\t var that = this;\n\t var range = that.lockRange(true);\n\t var editor = that.editor;\n\n\t editor._destroyResizings();\n\n\t editor.saveAsPDF().then(function() {\n\t that.releaseRange(range);\n\t editor._initializeColumnResizing();\n\t editor._initializeRowResizing();\n\t editor._initializeElementResizing();\n\t });\n\t }\n\t});\n\n\textend(editorNS, {\n\t ExportPdfCommand: ExportPdfCommand\n\t});\n\n\tregisterTool(\"pdf\", new Tool({ command: ExportPdfCommand, template: new ToolTemplate({template: EditorUtils.buttonTemplate, title: \"Export PDF\"})}));\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ })\n\n/******/ });","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__(983);\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/***/ 983:\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__(984), __webpack_require__(985) ], __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($, undefined) {\n\n\tvar kendo = window.kendo,\n\t extend = $.extend,\n\t Editor = kendo.ui.editor,\n\t EditorUtils = Editor.EditorUtils,\n\t dom = Editor.Dom,\n\t registerTool = EditorUtils.registerTool,\n\t ToolTemplate = Editor.ToolTemplate,\n\t RangeUtils = Editor.RangeUtils,\n\t Command = Editor.Command,\n\t LinkFormatter = Editor.LinkFormatter,\n\t textNodes = RangeUtils.textNodes,\n\t keys = kendo.keys,\n\t KEDITORFILEURL = \"#k-editor-file-url\",\n\t KEDITORFILETEXT = \"#k-editor-file-text\",\n\t KEDITORFILETITLE = \"#k-editor-file-title\";\n\n\tvar FileCommand = Command.extend({\n\t init: function(options) {\n\t var that = this;\n\t Command.fn.init.call(that, options);\n\n\t that.formatter = new LinkFormatter();\n\n\t that.async = true;\n\t that.attributes = {};\n\t },\n\n\t insertFile: function(file, range) {\n\t var attributes = this.attributes;\n\t var doc = RangeUtils.documentFromRange(range);\n\n\t if (attributes.href && attributes.href != \"http://\") {\n\n\t if (!file) {\n\t file = dom.create(doc, \"a\", {href: attributes.href});\n\t file.innerHTML = attributes.innerHTML;\n\t file.title = attributes.title;\n\n\t range.deleteContents();\n\t range.insertNode(file);\n\n\t if (!file.nextSibling) {\n\t dom.insertAfter(doc.createTextNode(\"\\ufeff\"), file);\n\t }\n\n\t range.setStartAfter(file);\n\t range.setEndAfter(file);\n\t RangeUtils.selectRange(range);\n\t return true;\n\t } else {\n\t dom.attr(file, attributes);\n\t }\n\t }\n\n\t return false;\n\t },\n\n\t _dialogTemplate: function(showBrowser) {\n\t return kendo.template(\n\t '
' +\n\t '
' +\n\t '
' +\n\t '# if (showBrowser) { #' +\n\t '
' +\n\t '# } #' +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t \"
\" +\n\t '' +\n\t \"
\" +\n\t '
' +\n\t '
' +\n\t '' +\n\t '' +\n\t '
' +\n\t '
' +\n\t '
'\n\t )({\n\t messages: this.editor.options.messages,\n\t showBrowser: showBrowser\n\t });\n\t },\n\n\t redo: function () {\n\t var that = this,\n\t range = that.lockRange();\n\n\t this.formatter.apply(range, this.attributes);\n\t that.releaseRange(range);\n\t },\n\n\t exec: function () {\n\t var that = this,\n\t range = that.lockRange(),\n\t nodes = textNodes(range),\n\t applied = false,\n\t file = nodes.length ? this.formatter.finder.findSuitable(nodes[0]) : null,\n\t dialog,\n\t isIE = kendo.support.browser.msie,\n\t options = that.editor.options,\n\t messages = options.messages,\n\t fileBrowser = options.fileBrowser,\n\t showBrowser = !!(kendo.ui.FileBrowser && fileBrowser && fileBrowser.transport && fileBrowser.transport.read !== undefined),\n\t dialogOptions = {\n\t title: messages.insertFile,\n\t visible: false,\n\t resizable: showBrowser\n\t };\n\n\t this.expandImmutablesIn(range);\n\n\t function apply(e) {\n\t var element = dialog.element,\n\t href = element.find(KEDITORFILEURL).val().replace(/ /g, \"%20\"),\n\t innerHTML = element.find(KEDITORFILETEXT).val(),\n\t title = element.find(KEDITORFILETITLE).val();\n\n\t that.attributes = {\n\t href: href,\n\t innerHTML: innerHTML !== \"\" ? innerHTML : href,\n\t title: title\n\t };\n\n\t applied = that.insertFile(file, range);\n\n\t close(e);\n\n\t if (that.change) {\n\t that.change();\n\t }\n\t }\n\n\t function close(e) {\n\t e.preventDefault();\n\t dialog.destroy();\n\n\t dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();\n\t if (!applied) {\n\t that.releaseRange(range);\n\t }\n\t }\n\n\t function keyDown(e) {\n\t if (e.keyCode == keys.ENTER) {\n\t apply(e);\n\t } else if (e.keyCode == keys.ESC) {\n\t close(e);\n\t }\n\t }\n\n\t dialogOptions.close = close;\n\n\t if (showBrowser) {\n\t dialogOptions.width = 750;\n\t }\n\n\t dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions)\n\t .toggleClass(\"k-filebrowser-dialog\", showBrowser)\n\t .find(\".k-dialog-insert\").on(\"click\", apply).end()\n\t .find(\".k-dialog-close\").on(\"click\", close).end()\n\t .find(\".k-edit-field input\").on(\"keydown\", keyDown).end()\n\t // IE < 8 returns absolute url if getAttribute is not used\n\t .find(KEDITORFILEURL).val(file ? file.getAttribute(\"href\", 2) : \"http://\").end()\n\t .find(KEDITORFILETEXT).val(file ? file.innerText : \"\").end()\n\t .find(KEDITORFILETITLE).val(file ? file.title : \"\").end()\n\t .data(\"kendoWindow\");\n\n\t var element = dialog.element;\n\t if (showBrowser) {\n\t that._fileBrowser = new kendo.ui.FileBrowser(\n\t element.find(\".k-filebrowser\"),\n\t extend({}, fileBrowser)\n\t );\n\n\t that._fileBrowser.bind(\"change\", function (ev) {\n\t if (ev.selected.get(\"type\") === \"f\") {\n\t element.find(KEDITORFILEURL).val(this.value());\n\t }\n\t } );\n\n\t that._fileBrowser.bind(\"apply\", apply);\n\t }\n\n\t if(isIE) {\n\t var dialogHeight = element.closest(\".k-window\").height();\n\t element.css(\"max-height\", dialogHeight);\n\t }\n\t dialog.center().open();\n\t element.find(KEDITORFILEURL).trigger(\"focus\").select();\n\t }\n\n\t});\n\n\tkendo.ui.editor.FileCommand = FileCommand;\n\n\tregisterTool(\"insertFile\", new Editor.Tool({ command: FileCommand, template: new ToolTemplate({template: EditorUtils.buttonTemplate, title: \"Insert File\" }) }));\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../../kendo.filebrowser\");\n\n/***/ }),\n\n/***/ 985:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./link\");\n\n/***/ })\n\n/******/ });","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__(989);\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/***/ 979:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../command\");\n\n/***/ }),\n\n/***/ 989:\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\tvar kendo = window.kendo,\n\t Editor = kendo.ui.editor,\n\t Tool = Editor.Tool,\n\t Command = Editor.Command,\n\t ToolTemplate = Editor.ToolTemplate,\n\t EditorUtils = Editor.EditorUtils,\n\t dom = Editor.Dom,\n\t RangeUtils = Editor.RangeUtils,\n\t registerTool = EditorUtils.registerTool;\n\n\tvar CopyFormatCommand = Command.extend({\n\t init: function (options) {\n\t Command.fn.init.call(this, options);\n\t },\n\n\t exec: function(){\n\t var range = this.lockRange(true);\n\t this.inlineStyles = [];\n\t this.blockStyles = [];\n\t this.collectStyles(range);\n\t this.editor.inlineStyles = this.inlineStyles;\n\t this.editor.blockStyles = this.blockStyles;\n\t this.releaseRange(range);\n\t },\n\n\t collectStyles: function(range) {\n\t var rangeNodes = RangeUtils.nodes(range);\n\t var node;\n\n\t if(rangeNodes.length === 1) {\n\t node = rangeNodes[0].parentNode;\n\t } else {\n\t node = range.startContainer;\n\t }\n\n\t while(node && !dom.is(node, \"body\") && node.getAttribute(\"data-role\") !== \"editor\") {\n\t if(dom.isBlock(node)) {\n\t this.populateStyles(node, \"blockStyles\");\n\t if (dom.is(node, \"li\")) {\n\t node = node.parentNode;\n\t } else {\n\t node = null;\n\t }\n\t } else {\n\t this.populateStyles(node, \"inlineStyles\");\n\t node = node.parentNode;\n\t }\n\t }\n\t },\n\n\t populateStyles: function(node, destination) {\n\t var styles = node.style;\n\t var attributes = node.attributes;\n\t var nodeStyles = {\n\t tags: [ node.tagName ],\n\t attr: {\n\t style: {}\n\t }\n\t };\n\t var styleValue, styleKey, attributeKey, attributeValue, i;\n\n\t for(i = 0; styles && i < styles.length; i++) {\n\t styleKey = styles[i];\n\t styleValue = styles[styleKey];\n\t nodeStyles.attr.style[styleKey] = styleValue;\n\t }\n\n\t for(i = 0; attributes && i < attributes.length; i++) {\n\t attributeKey = attributes[i].nodeName;\n\t attributeValue = attributes[i].nodeValue;\n\t if(attributeKey === \"style\") {\n\t continue;\n\t } else if(attributeKey === \"class\") {\n\t nodeStyles.attr.className = attributeValue;\n\t } else {\n\t nodeStyles.attr[attributeKey] = attributeValue;\n\t }\n\t }\n\n\t this[destination].push(nodeStyles);\n\t }\n\t});\n\n\tvar ApplyFormatCommand = Command.extend({\n\t init: function (options) {\n\t Command.fn.init.call(this, options);\n\t },\n\n\t exec: function(){\n\t var range = this.lockRange(true);\n\t var markers = RangeUtils.getMarkers(range);\n\t var editor = this.editor;\n\t var inlineStyles = editor.inlineStyles;\n\t var blockStyles = editor.blockStyles;\n\t var nodes;\n\n\t if((!inlineStyles || inlineStyles.length === 0) && (!blockStyles || blockStyles.length === 0)) {\n\t return;\n\t }\n\n\t if(markers.length === 3) {\n\t this.marker.removeCaret(range);\n\t this.marker.caret = null;\n\t }\n\n\t this.removeEmptyElementsFromRange(range);\n\t nodes = RangeUtils.nodes(range);\n\t this.cleanInlineParents(nodes);\n\t dom.normalize(range.commonAncestorContainer);\n\n\t if(markers.length === 2) {\n\t range.setStartAfter(markers[0]);\n\t range.setEndBefore(markers[1]);\n\t } else {\n\t range.setStartBefore(nodes[0]);\n\t range.setEndAfter(nodes[0]);\n\t }\n\n\t nodes = RangeUtils.nodes(range);\n\n\t if(nodes && blockStyles && blockStyles.length) {\n\t this.applyBlockStyles(nodes, blockStyles);\n\t }\n\n\t if(nodes && inlineStyles && inlineStyles.length) {\n\t this.applyInlineStyles(nodes, inlineStyles);\n\t }\n\n\t this.releaseRange(range);\n\t },\n\n\t removeEmptyElementsFromRange: function(range) {\n\t var isEmptyInline = function(node) {\n\t return dom.isInline(node) && !node.firstChild && !dom.isMarker(node);\n\t };\n\t var emptyElements, i;\n\n\t emptyElements = RangeUtils.getAll(range, isEmptyInline);\n\n\t if (emptyElements && emptyElements.length > 0) {\n\t for(i = 0; i < emptyElements.length; i++) {\n\t emptyElements[i].parentNode.removeChild(emptyElements[i]);\n\t }\n\t }\n\t },\n\n\t cleanInlineParents: function(nodes) {\n\t var i, node, parent, children, j, child, newNode;\n\n\t for(i = 0; i < nodes.length; i++) {\n\t node = nodes[i];\n\t parent = node.parentNode;\n\n\t if(this.immutableParent(node)) {\n\t continue;\n\t }\n\n\t while(parent && dom.isInline(parent)) {\n\t children = parent.childNodes;\n\n\t for(j = 0; j < children.length; j++) {\n\t child = children[j];\n\n\t if(!dom.isMarker(child) && child !== node) {\n\t newNode = parent.cloneNode(true);\n\t newNode.innerHTML = \"\";\n\t dom.wrap(child, newNode);\n\t }\n\t }\n\n\t dom.unwrap(parent);\n\t parent = node.parentNode;\n\t }\n\t }\n\t },\n\n\t applyBlockStyles: function(nodes, blockStyles) {\n\t var formatTag = blockStyles[0].tags[0];\n\t var attr = blockStyles[0].attr;\n\t var document = this.editor.document;\n\t var i, len, node, wrapper, blockParent, outerWrapper;\n\t var previousNodes, nextNodes, previous, next, prevWrapper, nextWrapper, child, j, listItems;\n\n\t for (i = 0, len = nodes.length; i < len; i++) {\n\t node = nodes[i];\n\n\t if(dom.isWhitespace(node) || this.immutableParent(node)) {\n\t continue;\n\t }\n\n\t blockParent = dom.blockParentOrBody(node);\n\n\t if (blockParent.tagName !== \"BODY\" && blockParent.tagName !== formatTag) {\n\t if(blockParent.tagName !== \"LI\" && blockParent.tagName !== \"TD\" && blockParent.tagName !== \"TH\") {\n\t previousNodes = [];\n\t nextNodes = [];\n\t previous = node.previousSibling;\n\t next = node.nextSibling;\n\n\t while(previous) {\n\t if(!dom.isMarker(previous)) {\n\t previousNodes.push(previous);\n\t }\n\n\t previous = previous.previousSibling;\n\t }\n\n\t if(previousNodes.length) {\n\t prevWrapper = blockParent.cloneNode(true);\n\t prevWrapper.innerHTML = \"\";\n\t dom.insertBefore(prevWrapper, previousNodes[0]);\n\n\t for(j = 0; j < previousNodes.length; j++) {\n\t child = previousNodes[j];\n\t dom.insertAt(prevWrapper, child, 0);\n\t }\n\t }\n\n\t while(next) {\n\t if(!dom.isMarker(next)) {\n\t nextNodes.push(next);\n\t }\n\n\t next = next.nextSibling;\n\t }\n\n\t if(nextNodes.length) {\n\t nextWrapper = blockParent.cloneNode(true);\n\t nextWrapper.innerHTML = \"\";\n\t dom.insertBefore(nextWrapper, nextNodes[0]);\n\n\t for(j = 0; j < nextNodes.length; j++) {\n\t child = nextNodes[j];\n\t nextWrapper.appendChild(child);\n\t }\n\t }\n\n\t dom.unwrap(blockParent);\n\t }\n\n\t wrapper = dom.create(document, formatTag, attr);\n\t dom.wrap(node, wrapper);\n\t } else if (blockParent.tagName === formatTag) {\n\t dom.attr(blockParent, attr);\n\t }\n\t }\n\n\t if(blockParent && blockStyles.length === 2 && blockParent.tagName !== \"LI\" && formatTag === \"LI\") {\n\t listItems = [];\n\n\t while(dom.is(wrapper, \"li\")) {\n\t listItems.push(wrapper);\n\t wrapper = dom.prev(wrapper);\n\t }\n\n\t outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n\t dom.insertBefore(outerWrapper, listItems[listItems.length - 1]);\n\t outerWrapper.appendChild(listItems[0]);\n\n\t for (i = 1, len = listItems.length; i < len; i++) {\n\t dom.insertBefore(listItems[i], outerWrapper.firstChild);\n\t }\n\t } else if(blockParent && blockStyles.length === 2 && blockParent.tagName !== \"LI\") {\n\t outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n\t dom.wrap(wrapper, outerWrapper);\n\t }\n\t },\n\n\t applyInlineStyles: function(nodes, inlineStyles) {\n\t var document = this.editor.document;\n\t var currentStyle, createdNode, topNode, i, newNode, node;\n\n\t for(i = 0; i < inlineStyles.length; i++) {\n\t currentStyle = inlineStyles[i];\n\t createdNode = dom.create(document, currentStyle.tags[0], currentStyle.attr);\n\n\t if(topNode) {\n\t createdNode.appendChild(topNode);\n\t }\n\n\t topNode = createdNode;\n\t }\n\n\t if(topNode) {\n\t for(i = 0; i < nodes.length; i++) {\n\t node = nodes[i];\n\t if(dom.isWhitespace(node) || this.immutableParent(node)) {\n\t continue;\n\t }\n\t newNode = topNode.cloneNode(true);\n\t dom.insertBefore(newNode, node);\n\n\t while(newNode.children && newNode.children.length) {\n\t newNode = newNode.children[0];\n\t }\n\n\t newNode.appendChild(node);\n\t }\n\t }\n\t },\n\n\t immutables: function() {\n\t return this.editor && this.editor.options.immutables;\n\t },\n\n\t immutableParent: function(node) {\n\t return this.immutables() && Editor.Immutables.immutableParent(node);\n\t }\n\t});\n\n\tvar CopyFormatTool = Tool.extend({\n\t init: function (options) {\n\t Tool.fn.init.call(this, options);\n\t },\n\n\t command: function (commandArguments) {\n\t return new CopyFormatCommand(commandArguments);\n\t }\n\t});\n\n\tvar ApplyFormatTool = Tool.extend({\n\t init: function (options) {\n\t Tool.fn.init.call(this, options);\n\t },\n\n\t command: function (commandArguments) {\n\t return new ApplyFormatCommand(commandArguments);\n\t }\n\t});\n\n\t$.extend(Editor, {\n\t CopyFormatCommand: CopyFormatCommand,\n\t ApplyFormatCommand: ApplyFormatCommand,\n\t CopyFormatTool: CopyFormatTool,\n\t ApplyFormatTool: ApplyFormatTool\n\t});\n\n\tregisterTool(\"copyFormat\", new CopyFormatTool({ template: new ToolTemplate({ template: EditorUtils.buttonTemplate, title: \"Copy format\" }) }));\n\tregisterTool(\"applyFormat\", new ApplyFormatTool({ template: new ToolTemplate({ template: EditorUtils.buttonTemplate, title: \"Apply format\" }) }));\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ })\n\n/******/ });","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__(987);\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/***/ 987:\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__(988) ], __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\tvar kendo = window.kendo,\n\t Class = kendo.Class,\n\t extend = $.extend,\n\t Editor = kendo.ui.editor,\n\t formats = kendo.ui.Editor.fn.options.formats,\n\t dom = Editor.Dom,\n\t ToolTemplate = Editor.ToolTemplate,\n\t FormatTool = Editor.FormatTool,\n\t EditorUtils = Editor.EditorUtils,\n\t registerTool = EditorUtils.registerTool,\n\t registerFormat = EditorUtils.registerFormat,\n\t RangeUtils = Editor.RangeUtils;\n\n\tvar BlockFormatFinder = Class.extend({\n\t init: function(format) {\n\t this.format = format;\n\t },\n\n\t contains: function(node, children) {\n\t var i, len, child;\n\n\t for (i = 0, len = children.length; i < len; i++) {\n\t child = children[i];\n\t if (!child || !dom.isAncestorOrSelf(node, child)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t },\n\n\t findSuitable: function (nodes) {\n\t var format = this.format,\n\t suitable = [],\n\t i, len, candidate;\n\n\t for (i = 0, len = nodes.length; i < len; i++) {\n\t for (var f = format.length - 1; f >= 0; f--) {\n\t candidate = dom.ofType(nodes[i], format[f].tags) ? nodes[i] : dom.closestEditableOfType(nodes[i], format[f].tags);\n\t if (candidate) {\n\t break;\n\t }\n\t }\n\n\t if (!candidate || candidate.contentEditable === 'true') {\n\t return [];\n\t }\n\n\t if ($.inArray(candidate, suitable) < 0) {\n\t suitable.push(candidate);\n\t }\n\t }\n\n\t this._resolveListsItems(suitable);\n\n\t for (i = 0, len = suitable.length; i < len; i++) {\n\t if (this.contains(suitable[i], suitable)) {\n\t return [suitable[i]];\n\t }\n\t }\n\n\t return suitable;\n\t },\n\t _resolveListsItems: function(nodes){\n\t var i, node, wrapper;\n\t for (i = 0; i < nodes.length; i++) {\n\t node = nodes[i];\n\t wrapper = dom.is(node, \"li\") ? node : dom.wrapper(node);\n\t wrapper = wrapper && dom.list(wrapper) ? wrapper.children[0] : wrapper;\n\t if (dom.is(wrapper, \"li\")) {\n\t node = nodes[i] = wrapper;\n\t }\n\t }\n\t },\n\n\t findFormat: function (sourceNode, until) {\n\t var format = this.format,\n\t i, len, node, tags, attributes;\n\t var editableParent = dom.editableParent(sourceNode);\n\t var immutables = this.options && this.options.immutables;\n\t var ImmutablesNS = Editor.Immutables;\n\n\t for (i = 0, len = format.length; i < len; i++) {\n\t node = sourceNode;\n\t tags = format[i].tags;\n\t attributes = format[i].attr;\n\n\t if (immutables && tags && tags[0] == \"immutable\") {\n\t var immutable = ImmutablesNS.immutableParent(node);\n\t if (immutable && dom.attrEquals(immutable, attributes)) {\n\t return node;\n\t }\n\t }\n\n\t while (node && dom.isAncestorOf(editableParent, node)) {\n\t if (dom.ofType(node, tags) && dom.attrEquals(node, attributes)) {\n\t return node;\n\t }\n\n\t if(until && until(node)) {\n\t break;\n\t }\n\n\t node = node.parentNode;\n\t }\n\t }\n\t return null;\n\t },\n\n\t getFormat: function (nodes) {\n\t var that = this,\n\t findFormat = function(node) {\n\t return that.findFormat(dom.isDataNode(node) ? node.parentNode : node);\n\t },\n\t result = findFormat(nodes[0]),\n\t i, len;\n\n\t if (!result) {\n\t return \"\";\n\t }\n\n\t for (i = 1, len = nodes.length; i < len; i++) {\n\t if (result != findFormat(nodes[i])) {\n\t return \"\";\n\t }\n\t }\n\n\t return result.nodeName.toLowerCase();\n\t },\n\n\t isFormatted: function (nodes, until) {\n\t for (var i = 0, len = nodes.length; i < len; i++) {\n\t if (!this.findFormat(nodes[i], until)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\t});\n\n\tvar BlockFormatter = Class.extend({\n\t init: function (format, values) {\n\t this.format = format;\n\t this.values = values;\n\t this.finder = new BlockFormatFinder(format);\n\t },\n\n\t wrap: function(tag, attributes, nodes) {\n\n\t var commonAncestor = nodes.length == 1 ? dom.blockParentOrBody(nodes[0]) : dom.commonAncestor.apply(null, nodes);\n\n\t if (dom.isInline(commonAncestor)) {\n\t commonAncestor = dom.blockParentOrBody(commonAncestor);\n\t }\n\n\t var ancestors = dom.significantChildNodes(commonAncestor),\n\t position = dom.findNodeIndex(ancestors[0]),\n\t wrapper = dom.create(commonAncestor.ownerDocument, tag, attributes),\n\t i, ancestor;\n\n\t for (i = 0; i < ancestors.length; i++) {\n\t ancestor = ancestors[i];\n\t if (dom.isBlock(ancestor)) {\n\t dom.attr(ancestor, attributes);\n\n\t if (wrapper.childNodes.length) {\n\t dom.insertBefore(wrapper, ancestor);\n\t wrapper = wrapper.cloneNode(false);\n\t }\n\n\t position = dom.findNodeIndex(ancestor) + 1;\n\n\t continue;\n\t }\n\n\t wrapper.appendChild(ancestor);\n\t }\n\n\t if (wrapper.firstChild) {\n\t dom.insertAt(commonAncestor, wrapper, position);\n\t }\n\t },\n\n\t apply: function (nodes) {\n\t var format, values = this.values;\n\n\t function attributes(format) {\n\t return extend({}, format && format.attr, values);\n\t }\n\n\t this._handleImmutables(nodes, true);\n\n\t var images = dom.filter(\"img\", nodes);\n\t var imageFormat = EditorUtils.formatByName(\"img\", this.format);\n\t var imageAttributes = attributes(imageFormat);\n\t $.each(images, function() {\n\t dom.attr(this, imageAttributes);\n\t });\n\n\t // only images were selected, no need to wrap\n\t if (images.length == nodes.length) {\n\t return;\n\t }\n\n\t var nonImages = dom.filter(\"img\", nodes, true);\n\t var formatNodes = this.finder.findSuitable(nonImages);\n\n\t if (formatNodes.length) {\n\t for (var i = 0, len = formatNodes.length; i < len; i++) {\n\t format = EditorUtils.formatByName(dom.name(formatNodes[i]), this.format);\n\t dom.attr(formatNodes[i], attributes(format));\n\t }\n\t } else {\n\t format = this.format[0];\n\t this.wrap(format.tags[0], attributes(format), nonImages);\n\t }\n\t },\n\n\t _handleImmutables: function (nodes, applyFormatting) {\n\t if (!this.immutables()) {\n\t return;\n\t }\n\t var immutableFormat = EditorUtils.formatByName(\"immutable\", this.format);\n\t if (!immutableFormat) {\n\t return;\n\t }\n\t var ImmutablesNS = Editor.Immutables;\n\t var l = nodes.length - 1;\n\t for (var i = l; i >= 0; i--) {\n\t var immutableParent = ImmutablesNS.immutableParent(nodes[i]);\n\t if (!immutableParent) {\n\t continue;\n\t }\n\t if (immutableParent !== nodes[i + 1]) {\n\t if (applyFormatting) {\n\t dom.attr(immutableParent, immutableFormat.attr);\n\t } else {\n\t dom.unstyle(immutableParent, immutableFormat.attr.style);\n\t }\n\t }\n\t nodes.splice(i, 1);\n\t }\n\t },\n\n\t immutables: function() {\n\t return this.editor && this.editor.options.immutables;\n\t },\n\n\t remove: function (nodes) {\n\t var i, l, formatNode, namedFormat, name;\n\n\t this._handleImmutables(nodes, false);\n\n\t for (i = 0, l = nodes.length; i < l; i++) {\n\t formatNode = this.finder.findFormat(nodes[i]);\n\t if (formatNode) {\n\t name = dom.name(formatNode);\n\t namedFormat = EditorUtils.formatByName(name, this.format);\n\t if (namedFormat.attr.style) {\n\t dom.unstyle(formatNode, namedFormat.attr.style);\n\t }\n\t if (namedFormat.attr.className) {\n\t dom.removeClass(formatNode, namedFormat.attr.className);\n\t }\n\t }\n\t }\n\t },\n\n\t toggle: function (range) {\n\t var that = this,\n\t nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n\n\t if (that.finder.isFormatted(nodes)) {\n\t that.remove(nodes);\n\t } else {\n\t that.apply(nodes);\n\t }\n\t }\n\t});\n\n\tvar GreedyBlockFormatter = Class.extend({\n\t init: function (format, values) {\n\t var that = this;\n\t that.format = format;\n\t that.values = values;\n\t that.finder = new BlockFormatFinder(format);\n\t },\n\n\t apply: function (nodes) {\n\t var format = this.format;\n\t var blocks = dom.blockParents(nodes);\n\t var formatTag = format[0].tags[0];\n\t var i, len, list, formatter, range;\n\t var element;\n\t var tagName;\n\t var block;\n\t var immutalbeParent;\n\n\t if (blocks.length) {\n\t for (i = 0, len = blocks.length; i < len; i++) {\n\t block = blocks[i];\n\t immutalbeParent = this.immutables() && Editor.Immutables.immutableParent(block);\n\n\t if (!immutalbeParent) {\n\t tagName = dom.name(block);\n\n\t if (tagName == \"li\") {\n\t list = block.parentNode;\n\t formatter = new Editor.ListFormatter(list.nodeName.toLowerCase(), formatTag);\n\t range = this.editor.createRange();\n\t range.selectNode(blocks[i]);\n\t formatter.toggle(range);\n\t } else if (formatTag && (tagName == \"td\" || block.attributes.contentEditable)) {\n\t new BlockFormatter(format, this.values).apply(block.childNodes);\n\t } else {\n\t element = dom.changeTag(block, formatTag);\n\t dom.attr(element, format[0].attr);\n\t }\n\t }\n\t }\n\t } else {\n\t var blockFormatter = new BlockFormatter(format, this.values);\n\t blockFormatter.editor = this.editor;\n\t blockFormatter.apply(nodes);\n\t }\n\t },\n\n\t toggle: function (range) {\n\t var nodes = RangeUtils.textNodes(range);\n\t if (!nodes.length) {\n\t range.selectNodeContents(range.commonAncestorContainer);\n\t nodes = RangeUtils.textNodes(range);\n\t if (!nodes.length) {\n\t nodes = dom.significantChildNodes(range.commonAncestorContainer);\n\t }\n\t }\n\n\t this.apply(nodes);\n\t },\n\n\t immutables: function() {\n\t return this.editor && this.editor.options.immutables;\n\t }\n\t});\n\n\tvar BlockFormatTool = FormatTool.extend({ init: function (options) {\n\t FormatTool.fn.init.call(this, extend(options, {\n\t finder: new BlockFormatFinder(options.format),\n\t formatter: function () {\n\t return new BlockFormatter(options.format);\n\t }\n\t }));\n\t }\n\t});\n\n\textend(Editor, {\n\t BlockFormatFinder: BlockFormatFinder,\n\t BlockFormatter: BlockFormatter,\n\t GreedyBlockFormatter: GreedyBlockFormatter,\n\t BlockFormatTool: BlockFormatTool\n\t});\n\n\tvar listElements = [\"ul\",\"ol\",\"li\"];\n\n\tregisterFormat(\"justifyLeft\", [\n\t { tags: dom.nonListBlockElements, attr: { style: { textAlign: \"left\" }} },\n\t { tags: [\"img\"], attr: { style: { \"float\": \"left\", display: \"\", marginLeft: \"\", marginRight: \"\" }} },\n\t { tags: [\"immutable\"], attr: { style: { \"float\": \"left\", display: \"\", marginLeft: \"\", marginRight: \"\" }} },\n\t { tags: listElements, attr: { style: { textAlign: \"left\", listStylePosition: \"\" }} }\n\t]);\n\tregisterTool(\"justifyLeft\", new BlockFormatTool({\n\t format: formats.justifyLeft,\n\t template: new ToolTemplate({\n\t template: EditorUtils.buttonTemplate,\n\t title: \"Justify Left\"\n\t })\n\t}));\n\n\tregisterFormat(\"justifyCenter\", [\n\t { tags: dom.nonListBlockElements, attr: { style: { textAlign: \"center\" }} },\n\t { tags: [\"img\"], attr: { style: { display: \"block\", marginLeft: \"auto\", marginRight: \"auto\", \"float\": \"\" }} },\n\t { tags: [\"immutable\"], attr: { style: { display: \"block\", marginLeft: \"auto\", marginRight: \"auto\", \"float\": \"\" }} },\n\t { tags: listElements, attr: { style: { textAlign: \"center\", listStylePosition: \"inside\" }} }\n\t]);\n\tregisterTool(\"justifyCenter\", new BlockFormatTool({\n\t format: formats.justifyCenter,\n\t template: new ToolTemplate({\n\t template: EditorUtils.buttonTemplate,\n\t title: \"Justify Center\"\n\t })\n\t}));\n\n\tregisterFormat(\"justifyRight\", [\n\t { tags: dom.nonListBlockElements, attr: { style: { textAlign: \"right\" }} },\n\t { tags: [\"img\"], attr: { style: { \"float\": \"right\", display: \"\", marginLeft: \"\", marginRight: \"\" }} },\n\t { tags: [\"immutable\"], attr: { style: { \"float\": \"right\", display: \"\", marginLeft: \"\", marginRight: \"\" }} },\n\t { tags: listElements, attr: { style: { textAlign: \"right\", listStylePosition: \"inside\" }} }\n\t]);\n\tregisterTool(\"justifyRight\", new BlockFormatTool({\n\t format: formats.justifyRight,\n\t template: new ToolTemplate({\n\t template: EditorUtils.buttonTemplate,\n\t title: \"Justify Right\"\n\t })\n\t}));\n\n\tregisterFormat(\"justifyFull\", [\n\t { tags: dom.nonListBlockElements, attr: { style: { textAlign: \"justify\" }} },\n\t { tags: [\"img\"], attr: { style: { display: \"block\", marginLeft: \"auto\", marginRight: \"auto\", \"float\": \"\" }} },\n\t { tags: [\"immutable\"], attr: { style: { display: \"block\", marginLeft: \"auto\", marginRight: \"auto\", \"float\": \"\" }} },\n\t { tags: listElements, attr: { style: { textAlign: \"justify\", listStylePosition: \"\" }} }\n\t]);\n\tregisterTool(\"justifyFull\", new BlockFormatTool({\n\t format: formats.justifyFull,\n\t template: new ToolTemplate({\n\t template: EditorUtils.buttonTemplate,\n\t title: \"Justify Full\"\n\t })\n\t}));\n\n\t})(window.kendo.jQuery);\n\n\t}, __webpack_require__(3));\n\n\n/***/ }),\n\n/***/ 988:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./format\");\n\n/***/ })\n\n/******/ });"],"sourceRoot":""}