{"version":3,"sources":["kendo.editor.js"],"names":["f","define","kendo","UndoRedoStack","Observable","extend","init","options","fn","call","this","clear","events","push","command","stack","slice","currentCommandIndex","undo","canUndo","trigger","redo","canRedo","length","deepExtend","util","amd","a1","a2","a3","$","undefined","Tool","bomFill","emptyElementContent","emptyTableCellContent","window","Class","Widget","ui","os","support","mobileOS","browser","proxy","keys","SELECT","SELECT_OVERLAY_SELECTOR","PLACEHOLDER_CLASS","PLACEHOLDER_TAG_ID","REFRESH_INTERVAL","ToolTemplate","getHtml","template","useWithBlock","EditorUtils","editorWrapperTemplate","buttonTemplate","colorPickerTemplate","comboBoxTemplate","dropDownListTemplate","separatorTemplate","overflowAnchorTemplate","formatByName","name","format","i","inArray","tags","getToolCssClass","toolCssClassNames","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","insertUnorderedList","insertOrderedList","import","indent","outdent","createLink","unlink","insertImage","insertFile","viewHtml","foreColor","backColor","createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn","tableWizard","tableWizardInsert","cleanFormatting","cssClass","registerTool","toolName","tool","toolOptions","toLowerCase","Editor","defaultTools","registerFormat","formatName","formats","cacheComments","content","comments","index","replace","retrieveComments","messages","bold","italic","underline","strikethrough","insertHtml","fontName","fontNameInherit","fontSize","fontSizeInherit","formatBlock","formatting","style","emptyFolder","editAreaTitle","uploadFile","overflowAnchor","orderBy","orderBySize","orderByName","invalidFileType","deleteFile","overwriteFile","directoryNotFound","imageWebAddress","imageAltText","imageWidth","imageHeight","fileWebAddress","fileTitle","fileText","linkWebAddress","linkText","linkToolTip","linkOpenInNewWindow","dialogUpdate","dialogInsert","dialogOk","dialogCancel","createTableHint","tableTab","cellTab","accessibilityTab","caption","summary","width","height","units","cellSpacing","cellPadding","cellMargin","alignment","background","id","border","borderStyle","collapseBorders","wrapText","associateCellsWithHeaders","alignLeft","alignCenter","alignRight","alignLeftTop","alignCenterTop","alignRightTop","alignLeftMiddle","alignCenterMiddle","alignRightMiddle","alignLeftBottom","alignCenterBottom","alignRightBottom","alignRemove","columns","rows","selectAllCells","exportAs","supportedBrowser","ios","flatVersion","document","documentElement","contentEditable","toolGroups","basic","lists","indenting","links","tables","element","value","toolbarContainer","toolbarOptions","type","domElement","that","editorNS","editor","dom","Dom","tools","_registerHandler","closest","update","_wrapTextarea","wrapper","find","attr","addClass","popup","insertBefore","toolbar","Toolbar","bindTo","setTimeout","heightStyle","expectedHeight","parseInt","actualHeight","indexOf","isNaN","_resizable","_initializeContentElement","keyboard","Keyboard","BackspaceHandler","TypingHandler","SystemHandler","SelectAllHandler","clipboard","Clipboard","undoRedoStack","textarea","encoded","trim","defaultValue","getAllComments","html","innerHTML","mousedown","_endTyping","mouseup","e","_mouseup","_initializeImmutables","resize","notify","setOptions","_initializePlaceholder","_togglePlaceholder","show","body","$body","placeholder","toggleClass","isTypingInProgress","endTyping","saveSelection","_selectionChange","_selectionStarted","draggableElement","resizableWidget","resizable","isResizable","isPlainObject","insertAfter","kendoResizable","start","currentTarget","initialSize","append","delta","y","initialDelta","newSize","min","max","Infinity","Math","resizeend","remove","getKendoResizable","draggable","ignore","_initializeTableResizing","TableResizing","create","_showTableResizeHandlesProxy","_showTableResizeHandles","bind","_destroyTableResizing","tableResizing","destroy","unbind","showResizeHandles","_initializeColumnResizing","ColumnResizing","_destroyColumnResizing","columnResizing","_initializeRowResizing","RowResizing","_destroyRowResizing","rowResizing","w","h","editorWrap","editArea","appendTo","css","_createContentElement","stylesheets","iframe","wnd","doc","specifiedDomain","domain","domainScript","src","hide","title","frameBorder","tabIndex","location","hostname","contentWindow","contentDocument","one","decorateFrom","open","write","isRtl","msie","edge","chrome","map","href","join","close","_blur","old","val","_oldValue","encodedValue","_spellCorrect","beforeCorrection","falseTrigger","contextmenu","_spellCorrectTimeout","RestorePoint","getRange","input","mozilla","_finishUpdate","handler","eventNames","t","NS","_handlers","hasOwnProperty","applyEventMap","split","on","_deregisterHandlers","handlers","off","blurTrigger","mousedownTrigger","interval","createElement","setAttribute","getElementsByTagName","appendChild","setInterval","clearInterval","_mousedown","execCommand","touch","keydown","_activeElement","focus","range","left","container","offset","direction","next","nextChar","keyCode","BACKSPACE","DELETE","getAttribute","F10","preventPopupHide","preventDefault","LEFT","RIGHT","nodeType","nodeValue","setStart","collapse","selectRange","toolFromShortcut","keyPressCommand","test","exec","_runPostContentKeyCommands","clearTimeout","keypress","keyup","selectionCodes","TAB","PAGEUP","PAGEDOWN","END","HOME","UP","DOWN","INSERT","ctrlKey","altKey","shiftKey","_refreshInterval","click","target","createRange","selectNode","cut copy paste drop dragover","focusin","hasAttribute","focusout","toolbarContainerElement","active","get","contains","is","focused","removeClass","$head","head","immutables","Immutables","parents","stopPropagation","gecko","which","o","cmd","toolsFromShortcut","changesContent","refresh","_destroyResizings","deserialization","custom","serialization","entities","semantic","scripts","pasteCleanup","all","keepNewLines","msAllFormatting","msConvertLists","msTags","none","span","dialogOptions","modal","animation","imageBrowser","fileBrowser","text","concat","_focusOutside","_destroyUploadWidget","dispose","tempInput","blur","_uploadWidget","state","textNodes","finder","RangeUtils","collapsed","startContainer","getFormat","isFormatted","currentHtml","Serializer","domToXhtml","htmlToDom","selectionRestorePoint","refreshTools","commonAncestorContainer","_focusBody","scrollTop","activeElement","scrollHeight","clientHeight","restoreSelection","toRange","encode","getSelection","SelectionUtils","selectionFromDocument","selection","removeAllRanges","addRange","rangeCount","getRangeAt","endContainer","startOffset","endOffset","_containsRange","isAncestorOrSelf","_deleteSavedRange","_range","selectedHtml","cloneContents","paste","InsertHtmlCommand","params","prevented","Error","toolById","async","change","managesUndoRedo","key","ctrl","plugin","initialize","unselectable","children","commandArguments","noop","version","_bomFill","PDFMixin","prototype","_drawPDF","drawing","drawDOM","pdf","saveAsPDF","progress","Deferred","promise","args","then","root","exportPDF","done","dataURI","saveAs","fileName","proxyURL","proxyTarget","forceProxy","resolve","fail","err","reject","jQuery","makeMap","items","len","obj","whitespace","emptyspace","rgb","bom","whitespaceOrBom","persistedScrollTop","cssAttributes","htmlRe","entityRe","entityTable","STYLE","FLOAT","CSSFLOAT","STYLEFLOAT","CLASS","KMARKER","empty","nonListBlockElements","blockElements","block","selfClosing","inlineElements","inline","fillAttrs","normalize","node","parent","firstChild","prev","nextSibling","34","38","39","60","62","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","402","913","914","915","916","917","918","919","920","921","922","923","924","925","926","927","928","929","931","932","933","934","935","936","937","945","946","947","948","949","950","951","952","953","954","955","956","957","958","959","960","961","962","963","964","965","966","967","968","969","977","978","982","8226","8230","8242","8243","8254","8260","8472","8465","8476","8482","8501","8592","8593","8594","8595","8596","8629","8656","8657","8658","8659","8660","8704","8706","8707","8709","8711","8712","8713","8715","8719","8721","8722","8727","8730","8733","8734","8736","8743","8744","8745","8746","8747","8756","8764","8773","8776","8800","8801","8804","8805","8834","8835","8836","8838","8839","8853","8855","8869","8901","8968","8969","8970","8971","9001","9002","9674","9824","9827","9829","9830","338","339","352","353","376","710","732","8194","8195","8201","8204","8205","8206","8207","8211","8212","8216","8217","8218","8220","8221","8222","8224","8225","8240","8249","8250","8364","findNodeIndex","skipText","previousSibling","isDataNode","data","isAncestorOf","parentNode","findClosestAncestor","rootElem","iterator","createNodeIterator","NodeFilter","SHOW_COMMENT","FILTER_ACCEPT","curNode","nextNode","getNodeLength","childNodes","splitDataNode","temp","newNode","cloneNode","denormalizedText","deleteData","attrEquals","attributes","cssFloat","blockParentOrBody","parentOfType","ownerDocument","blockParents","nodes","blocks","windowFromDocument","defaultView","parentWindow","nodeTypes","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","toHex","color","matches","x","toString","encodableChars","c","charCode","charCodeAt","entity","isBom","stripBom","stripBomNode","removeChild","insignificant","className","_moz_dirty","_moz_editor_bogus_node","tableCell","significantNodes","grep","child","emptyTextNode","emptyNode","nodeName","significantChildNodes","isWhitespace","lastTextNode","result","lastChild","isMarker","allWhitespaceContent","isEmptyspace","htmlIndentSpace","sibling","isPrevBlock","isNextBlock","el","isBlock","isSelfClosing","isEmpty","isInline","isBr","list","scrollContainer","compatMode","scrollingElement","scrollTo","toStart","elementTop","elementHeight","marker","windowHeight","innerHeight","top","offsetHeight","ceil","persistScrollTop","offsetParent","offsetTop","offsetLeft","restoreScrollTop","insertAt","newElement","position","referenceElement","removeChildren","removeTextSiblings","tag","closestBy","condition","rootCondition","ofType","changeTag","tagName","skipAttributes","attribute","specified","cssText","editableParent","wrap","unwrap","createEmptyNode","removeAttribute","mergeAttributes","origin","each","unstyle","inlineStyle","getEffectiveBackground","backgroundStyle","innerText","classNames","classes","commonAncestor","ancestors","first","j","count","arguments","paths","minPathLength","output","reverse","closestSplittableParent","editableParents","editableAncestor","apply","closestEditable","types","editable","closestEditableOfType","filter","invert","filterFn","filterBy","match","ensureTrailingBreaks","elements","ensureTrailingBreak","removeTrailingBreak","br","supportsLeadingWhitespace","isFunction","TD","fontSizeMappings","quoteRe","brRe","pixelRe","emptyPRe","cssDeclaration","sizzleAttr","scriptAttr","onerrorRe","div","toEditableHtml","_toEditableImmutables","immutable","last","prependTo","_fillEmptyElements","p","_removeSystemElements","_resetOrderedLists","ol","originalStart","ols","_preventScriptExecution","l","attributesToRemove","legacyIE","originalSrc","originalHref","deserialize","semanticFilter","mapStart","cssProperties","property","properties","lastIndex","styleAttr","specifiedAttributes","$node","htmlEncode","skip","skipEncoding","childNode","isEmptyBomNode","mapper","previous","jqNode","serialize","hasClass","tagMap","end","textOnly","childrenCount","textChild","runCustom","k:script","font","size","semanticAttributes","textDecoration","fontFamily","strong","em","b","u","styleObj","item","splice","face","script","DropDownList","SelectBox","_initSelectOverlay","autoSize","listWidth","whiteSpace","_listWidth","scrollbar","select","selectBox","view","dataSource","decorate","compareBoundaries","startAncestor","endAncestor","fixIvalidRange","isInvalidRange","ex","updateRangeProperties","textRangeContainer","textRange","duplicate","right","parentElement","adoptContainer","cursorNode","textOffset","isData","anchorNode","anchorParent","cursor","createTextRange","moveToElementText","setEndPoint","adoptEndPoint","comparison","appended","compareEndPoints","RangeIterator","W3CSelection","RangeEnumerator","ImmutablesRangeIterator","ImmutablesRangeEnumerator","Marker","boundary","selectionFromWindow","selectionFromRange","rangeDocument","documentFromRange","W3CRange","setEnd","setStartBefore","setStartAfter","setEndBefore","setEndAfter","selectNodeContents","deleteContents","cloneRange","deleteSubtree","hasPartialSubtree","getSubtreeIterator","cloneSubtree","frag","createDocumentFragment","extractContents","extractSubtree","originalRange","insertNode","startNodeName","endNodeName","fromNode","_current","_next","_end","hasNext","current","traverse","callback","nodeIndex","inStartContainer","inEndContainer","getSubRange","subRange","movedStart","movedEnd","enumerate","visit","rootNode","getEditable","nodeToPath","serializedImmutables","removeImmutables","restoreImmutables","lastType","restoreHtml","path","toRangePoint","denormalizedOffset","caret","addCaret","removeCaret","containerIndex","textNode","add","expand","rangeBoundary","isExpandable","_removeDeadMarkers","createTextNode","_normalizedIndex","pointer","shouldNormalizeStart","shouldNormalizeEnd","shouldNormalize","isBomSelected","collapsedToStart","startParent","endParent","startIndex","endIndex","charAt","editableTextNodes","immutableParent","image","stringify","partition","contents","partitionRange","mapAll","mapped","getAll","predicate","selector","getMarkers","isStartOf","isEndOf","wrapSelectedElements","isEnd","startEditable","endEditable","beforeCaret","afterCaret","search","substring","complexBlocks","toolsToBeUpdated","IMMUTABALE","IMMUTABALE_MARKER_SELECTOR","IMMUTABLE_SELECTOR","expandImmutablesIn","startImmutableParent","endImmutableParent","immutablesContext","editableNodes","randomId","chars","round","random","serialized","replaceWith","removeAttr","deletingKey","updateToolOptions","_initOptions","_toHtml","serializationType","isDeleting","shouldCancelEvent","_cancelDeleting","_cancelTyping","typingInProgress","isTypingKey","cancelDeleting","closestSelectionLi","closestImmutableLi","backspace","del","nextImmutable","_removeImmutable","forwards","commonContainer","_nextNode","startRestorePoint","finishUpdate","endRestorePoint","GenericCommand","Command","restorePoint","formatter","lockRange","releaseRange","point","createDialog","kendoWindow","toggle","outerWidth","_outerWidth","outerHeight","_outerHeight","OVERFLOWANCHOR","focusable","toolNamesByCssClass","k-i-sup-script","k-i-sub-script","k-i-align-left","k-i-align-center","k-i-align-right","k-i-align-justify","k-i-list-unordered","k-i-list-ordered","k-i-login","k-i-indent-increase","k-i-indent-decrease","k-i-link-horizontal","k-i-unlink-horizontal","k-i-image","k-i-file-add","k-i-html","k-i-foreground-color","k-i-paint","k-i-table-insert","k-i-table-column-insert-left","k-i-table-column-insert-right","k-i-table-row-insert-above","k-i-table-row-insert-below","k-i-table-row-delete","k-i-table-column-delete","k-i-table-properties","k-i-table-wizard","k-i-clear-css","OverflowAnchorTool","overflowPopup","_initPopup","_resizeHandler","onResize","groups","advanced","fonts","colors","overflowFlaseTools","prepend","dragHandle","effects","minHeight","visible","autoFocus","actions","dragend","_moved","_toggleOverflowStyles","_initOverflowPopup","popupTemplate","kendoPopup","anchor","copyAnchorStyles","activate","focusOverflowPopup","toolGroupFor","isCustomTool","_editor","expandTools","render","combobox","dropDown","isOpened","stopImmediatePropagation","_attachEvents","inheritText","_toolName","description","tooltip","_appendShortcutSequence","editorElement","editorOffset","editorOptions","_getWindowWidth","_overlaps","box","toolbarWrapper","toolbarWrapperOffset","toolbarWrapperLeft","toolbarWrapperTop","boxOffset","boxOffsetLeft","boxOffsetTop","TABINDEX","localizedText","res","shift","alt","_nativeTools","currentTool","nativeTools","endGroup","group","groupPosition","startGroup","toolElement","groupName","newGroupName","toolConfig","updateGroups","angular","unbindResize","popupElement","attachToolsEvents","buttons","enabledButtons","disabledButtons","dropdown","colorpicker","editorTools","move","constrain","focusableItems","focusElement","currentContainer","ESC","ENTER","SPACEBAR","_executeToolCommand","button","toolname","toCamelCase","lastIndexOf","_immutablesContext","_updateImmutablesState","display","uiData","widget","groupUi","uiElement","trackImmutables","_resize","containerWidth","toolbarWindow","_refreshWidths","_shrink","_stretch","idx","visibleGroups","_groupsWidth","_visibleGroups","eq","_hideGroup","hiddenGroups","_hiddenGroups","_showGroup","sort","a","detach","ViewHtmlCommand","dialog","center","FormatCommand","FormatTool","MOUSEDOWN_NS","KEYDOWN_NS","InlineFormatFinder","numberOfSiblings","referenceNode","textNodesCount","elementNodesCount","markerCount","findSuitable","sourceNode","findFormat","InlineFormatter","values","formatNode","formatNodes","consolidate","outerMostInline","pop","GreedyInlineFormatFinder","greedyProperty","getInlineCssValue","attributeValue","pair","cssIndex","propertyAndValue","getFormatInner","parentsUntil","addBack","toArray","GreedyInlineFormatter","action","InlineFormatTool","DelayedExecutionTool","FontTool","cssAttr","domAttr","initOptions","dataTextField","dataValueField","highlightFirst","newRange","ColorTool","palette","_widget","ColorPicker","toolIcon","storedRange","_inputFocused","picker","sender","_popup","_value","toCssRgba","fontWeight","fontStyle","lastIndexOfRegExp","str","indexOfRegExp","r","HTTP_PROTOCOL","protocolRegExp","endLinkCharsRegExp","LinkFormatFinder","LinkFormatter","markers","ref","UnlinkCommand","LinkCommand","url","_dialogTemplate","img","_initialText","_close","_apply","_keydown","linkUrl","_dialog","textInput","AutoLinkCommand","linkMarker","linkRange","detectedLink","detectLink","_ensureWebProtocol","traverser","detection","startNode","LeftDomTextTraverser","cancelAtNode","DomTextLinkDetection","hasProtocol","_hasProtocolPrefix","_prefixWithWebProtocol","UnlinkTool","DomPos","puntuationOptions","puntuationTraverser","_detectEnd","blank","clone","_detectStart","_isLinkDetected","extendOptions","RightDomTextTraverser","_skipStartPuntuation","ii","DomTextTraverser","cancel","_traverse","edgeNode","subText","splitIndex","listElements","BlockFormatFinder","candidate","suitable","_resolveListsItems","ImmutablesNS","BlockFormatter","ancestor","images","imageFormat","imageAttributes","nonImages","_handleImmutables","applyFormatting","immutableFormat","namedFormat","GreedyBlockFormatter","immutalbeParent","blockFormatter","formatTag","ListFormatter","BlockFormatTool","textAlign","float","marginLeft","marginRight","listStylePosition","ListFormatFinder","unwrapTag","isList","li","isImmutable","containsAny","_parentLists","merge","breakable","applyOnSection","section","pushAncestor","addLastSection","lastSection","sections","lastNodes","ul","fragment","ListCommand","ListTool","unwrapListItem","listFormatter","FormattingTool","toFormattingItem","dot","context","kendoSelectBox","dataItem","toJSON","dataBound","getFormattingValue","n","_ancestor","field","operator","CleanFormatCommand","tagsToClean","clean","KEDITORIMAGEURL","KEDITORIMAGETITLE","KEDITORIMAGEWIDTH","KEDITORIMAGEHEIGHT","ImageCommand","removeIEAttributes","onload","onerror","showBrowser","applied","keyDown","dialogHeight","isIE","ImageBrowser","transport","read","_imageBrowser","ev","selected","loadingOverlay","ImportCommand","_initializeUploadWidget","importOptions","upload","kendoUpload","success","_onUploadSuccess","_onUploadProgress","_onUploadSelect","error","_onUploadError","complete","_onUploadComplete","showFileList","multiple","saveUrl","proxyUrl","autoUpload","saveField","validation","allowedExtensions","maxFileSize","getKendoUpload","_trigger","clearAllFiles","_removeLoadingOverlay","response","files","validationErrors","_initLoadingOverlay","eventType","uploadEvent","_iframeWrapper","_container","genericCommand","postProcess","InsertHtmlTool","_selectBox","selectbox","initialValue","defaultExportAsItems","ExportAsCommand","exportType","postToProxy","generateForm","submit","exportAsOptions","form","method","valueInput","exportTypeInput","fileNameInput","ExportAsTool","changeHandler","unshift","_exec","indentDirection","IndentFormatter","targets","parentList","siblingList","nestedList","targetIndex","mapImmutables","targetNode","listParent","siblings","nextAll","IndentCommand","indentFormatter","OutdentCommand","OutdentTool","isOutdentable","listParentsCount","suitableNodes","ParagraphCommand","_insertMarker","_moveFocus","focusNode","shouldTrim","startInBlock","endInBlock","_blankAfter","paragraph","heading","tableNode","rng","parentChildrenLength","emptyParagraphContent","_insertParagraphAfter","NewLineCommand","filler","oldIE","KEDITORFILEURL","KEDITORFILETEXT","KEDITORFILETITLE","FileCommand","file","FileBrowser","_fileBrowser","ACTIVESTATE","SELECTEDSTATE","getTouches","columnTemplate","tableFormatFinder","TableCommand","skipCleaners","_tableHtml","columnHtml","rowHeight","Array","insertedTable","PopupTool","twTool","_open","_activate","_toggle","TableWizardTool","TableWizardCommand","insertNewTable","InsertTableTool","cols","tableFromLocation","row","floor","clientY","cellHeight","col","clientX","scrollLeft","cellWidth","cells","firstCell","lastCell","getOffset","offsetWidth","autoApplyNS","_setTableSize","_valid","status","selectedRows","selectedColumns","changed","tableSize","InsertRowCommand","cellCount","newRow","td","InsertColumnCommand","columnIndex","cell","newCell","table","DeleteRowCommand","DeleteColumnCommand","columnCount","TableModificationTool","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","_startModification","_inProgress","_endModification","modificationInfo","_contentModification","before","after","_removeBomNodes","_onBeforeCopy","oncopy","oncut","_fileToDataURL","blob","deferred","reader","FileReader","File","getAsFile","readAsDataURL","_triggerPaste","_handleImagePaste","clipboardData","originalEvent","_insertImages","when","results","onpaste","clipboardRange","clipboardNode","_decoreateClipboardNode","webkit","_moveToCaretPosition","containers","ondragover","ondrop","dataTransfer","borderWidth","overflow","margin","padding","fontVariant","lineSpacing","lineHeight","nodeOffset","caretOffset","_caretOffset","translateX","translateY","translate","-webkit-transform","transform","rangeChanged","isStartTextNode","prevLength","bomNode","splittableParent","splittable","fragmentsHtml","rangeEnd","focusedTable","siblingNodes","lastSiblingIndex","lastSibling","applicable","elm","Cleaner","replacements","customReplacements","replacement","junkReplacements","convertFontMatch","$0","$1","closing","faceRe","family","stripEmptyAnchors","listType","listData","startingSymbol","matchSymbol","symbol","isNumber","trimStartText","_guessUnorderedListStyle","_guessOrderedListStyle","_convertToLi","extractListLevels","msoListRegExp","level","_createList","styleType","listStyleType","rootMargin","rootIndex","lastRootLi","isLastRootLi","rootList","listIndex","levelType","blockChildren","lastMargin","levels","acceptedNameTags","parseFloat","removeAttributes","removeAttributeNode","createColGroup","colgroup","convertHeaders","boldedCells","removeParagraphs","paragraphs","removeDefaultColors","spans","firstRow","longestRow","headers","titles","removeFormatting","filters","DomCleaner","cleanDom","collectTags","collectAttr","TextContainer","HtmlTextLines","separators","line","lines","inlineBlockText","resetLine","appendText","textContainer","appendInlineBlockText","flashInlineBlockText","endLine","il","il1","jl","jl1","DomEnumerator","preventDown","hasText","enumerator","buildText","getDefaultSeparators","htmlLines","thead","tbody","cleaner","tdCleaner","cellText","getSibling","PREVIOUS_SIBLING","tableCells","tableCellsWrappers","tableElements","inTable","RemoveTableContent","cellsTypes","startCell","endCell","_removeContent","getNext","removeTableContent","backspaceHandler","evt","Event","isDefaultPrevented","deleteSelection","startTyping","_addCaret","_restoreCaret","_handleDelete","_merge","_cleanBomBefore","_handleBackspace","startAtLi","liIndex","startAtNonFirstLi","rangeStartNode","previousNode","isEndOfLink","_handleSelection","_surroundFullyContent","_surroundFullySelectedAnchor","toLocaleLowerCase","_join","startImmutable","endImmutable","_moveMarker","_root","dest","_mergeWithTextNode","appendedNode","_isCaret","systemCommandIsInProgress","createUndoCommand","isModifierKey","isSystem","_toSelectableImmutables","_selectEditorBody","isCharacter","String","fromCharCode","modifier","_getShortcutModifier","navigator","platform","mac","toUpperCase","metaKey","matchesKey","found","matchKey","toolKey","isArray","onEndTyping","stopTyping","force","timeout","what","ExportPdfCommand","PrintCommand","print","lowerBound","upperBound","getScrollBarWidth","calculatePercentageRatio","total","inPercentages","STRING","REGEX_NUMBER_IN_PERCENTAGES","inPixels","REGEX_NUMBER_IN_PIXELS","toPercentages","PERCENTAGE","toPixels","PIXEL","global","math","ResizingUtils","KEY_DOWN","MOUSE_DOWN","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_MOVE","MOUSE_UP","COMMA","DOT","LAST_CHILD","TABLE","TableElementResizing","_attachEventHandlers","eventNamespace","rootElement","_destroyResizeHandle","rtl","handle","dataAttribute","detectElementBorderHovering","resizingInProgress","resizing","handleOptions","tableElement","resizeHandle","elementBorderHovered","showResizeHandle","_initResizeHandle","setResizeHandlePosition","setResizeHandleDimensions","setResizeHandleDataAttributes","_attachResizeHandleEventHandlers","_initResizable","_hideResizeMarker","markerClass","_destroyResizable","Resizable","onResizeStart","onResizeEnd","_disableKeyboard","setResizeHandleDragPosition","_enableKeyboard","_forceResizing","userEvents","ResizingFactory","resizingName","_destroyResizing","_initResizing","parentTable","resizingType","abs","RESIZE_HANDLE_CLASS","RESIZE_MARKER_CLASS","BODY","TBODY","TH","TR","WIDTH","column","handleWidth","borderOffset","mousePosition","tableBody","scrollTopOffset","scrollLeftOffset","columnWidthOffset","scrollBarWidth","columnOffsetLeft","tBodyOffsetTop","columnWidth","columnLeftOffset","adjacentColumnWidth","resizeHandleOffsetLeft","handleOffset","newWidth","initialAdjacentColumnWidth","initialColumnWidth","rtlModifier","initialDeltaX","_setTableComputedWidth","_setColumnsComputedWidth","_resizeColumn","_resizeTopAndBottomColumns","_resizeAdjacentColumns","tableBodyWidth","currentColumnsWidths","topAndBottomColumns","deltaWidth","adjacentColumns","_resizeAdjacentColumn","adjacentColumn","RESIZE_HANDLE_MARKER_WRAPPER_CLASS","HEIGHT","handleHeight","rowOffsetLeft","rowOffsetTop","$row","tableBodyTopOffset","resizeHandleOffsetTop","currentRowHeight","initialTableHeight","tableBodyHeight","initialStyleHeight","newRowHeight","_setRowsHeightInPixels","_setTableHeight","_setRowsHeightInPercentages","currentRowsHeights","newHeight","HandlePositioningStrategy","EastPositioningStrategy","NorthPositioningStrategy","NortheastPositioningStrategy","NorthwestPositioningStrategy","SouthPositioningStrategy","SoutheastPositioningStrategy","SouthwestPositioningStrategy","WestPositioningStrategy","DraggingStrategyFactory","HandleDraggingStrategy","HorizontalDraggingStrategy","EastDraggingStrategy","WestDraggingStrategy","VerticalDraggingStrategy","NorthDraggingStrategy","SouthDraggingStrategy","HorizontalAndVerticalDraggingStrategy","NorthEastDraggingStrategy","NorthWestDraggingStrategy","SouthEastDraggingStrategy","SouthWestDraggingStrategy","Draggable","DRAG_START","DRAG","DRAG_END","HALF_INSIDE","MOUSE_OVER","MOUSE_OUT","EAST","NORTH","NORTHEAST","NORTHWEST","SOUTH","SOUTHEAST","SOUTHWEST","WEST","TableResizeHandle","_addStyles","_initDraggable","_initPositioningStrategy","_initDraggingStrategy","resizableElement","_destroyDraggable","_setPosition","_positioningStrategy","getPosition","_onMouseOver","_onMouseOut","_draggable","dragstart","_onDragStart","drag","_onDrag","_onDragEnd","_draggingStrategy","adjustDragDelta","deltaX","deltaY","initialDeltaY","StrategyFactory","_items","register","itemsLength","PositioningStrategyFactory","calculatePosition","handleOffsetPosition","applyHandleOffset","scrollOffsetPosition","applyScrollOffset","adjustment","deltas","xAxisAdjustment","yAxisAdjustment","isUndefined","RESIZE_HANDLE_WRAPPER_CLASS","TABLE_CLASS","TABLE_RESIZING_CLASS","COLUMN","ROW","handles","_destroyResizeHandles","appendHandlesTo","minWidth","_resizeWidth","_resizeHeight","ratioValue","ratioTotalValue","constrainedWidth","styleWidth","currentWidth","parentWidth","maxWidth","_getMaxDimensionValue","_initialElementWidth","_setColumnsWidth","constrainedHeight","styleHeight","currentHeight","parentHeight","maxHeight","hasRowsInPixels","_hasRowsInPixels","_initialElementHeight","dimension","dimensionLowercase","parentDimension","parentScrollOffset","isWidthInPercentages","parentColumn","columnsLength","_initResizeHandles","_showResizeHandles","_bindToResizeHandlesEvents","_onResizeHandleDragStart","_onResizeHandleDrag","_onResizeHandleDragEnd","_onResizeHandleMouseOver","_onResizeHandleMouseOut","TableResizingFactory","factory","eventTarget","eventCurrentTarget","isResizeHandleOrChild","cellsFormatFinder","reUnit","selectedTable","_sourceTable","_selectedTable","selectedCells","_selectedTableCells","_selectedCells","closeCallback","onDialogClose","parseTable","TableWizardDialog","insertTable","createNewTable","updateTable","_ensureFocusableAfterTable","lastSelectedRow","rowIndex","cellsLength","newRowsCount","cellIndex","cellProp","tableRows","tableProp","tableProperties","collection","_deleteTableRows","insertRow","_insertCells","deleteCell","_updateTableProperties","cellProperties","_updateCellProperties","_updateCaption","cellsWithHeaders","cellsWithHeadersAssociated","associateCellsWithHeader","_isHeadingRow","associate","nextRow","isDataRow","timestamp","Date","getTime","ids","generateIds","modifySellsIds","modifyCellsHeadings","isHeadingRow","associatedCells","headingIds","headersAttr","insertCell","rowParent","cellPropToAll","createTBody","_getStylesData","captionContent","deleteCaption","createCaption","_getAlignmentData","captionAlignment","verticalAlign","widthUnit","heightUnit","backgroundColor","bgColor","borderColor","borderCollapse","align","tStyle","captionClone","tableAlignment","tableJson","_getAlignment","_getUnit","parseTableRows","rowData","cellData","parseCell","cStyle","horizontalOnly","vAlign","hAlign","unit","TableWizardEditTool","numericTextBoxSettings","borderStyles","tableAlignmentDropDownSettings","valueTemplate","cellAlignmentDropDownSettings","accessibilityAlignmentDropDownSettings","dialogTemplate","okHandler","collectDialogValues","tableData","closeHandler","_initTabStripComponent","_initTableViewComponents","_initCellViewComponents","_initAccessibilityViewComponents","components","tabStrip","kendoTabStrip","_collectTableViewValues","_collectCellViewValues","_collectAccessibilityViewValues","tableView","checked","cellView","accessibilityView","_addUnit","_initNumericTextbox","_initDropDownList","_initTableAlignmentDropDown","_initColorPicker","_initInput","_initCheckbox","_initCellAlignmentDropDown","_initAccessibilityAlignmentDropDown","storage","settings","component","kendoNumericTextBox","kendoDropDownList","_setComponentValue","_initAlignmentDropDown","kendoColorPicker","clearButton","_destroyComponents"],"mappings":"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K,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,UACLC,IAAK,KACLC,IAAK,MACLC,IAAK,QACLC,IAAK,MACLC,IAAK,UACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,QACLC,IAAK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","file":"kendo.editor.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/undoredostack', ['kendo.core'], f);\n}(function () {\n (function (kendo) {\n var UndoRedoStack = kendo.Observable.extend({\n init: function (options) {\n kendo.Observable.fn.init.call(this, options);\n this.clear();\n },\n events: [\n 'undo',\n 'redo'\n ],\n push: function (command) {\n this.stack = this.stack.slice(0, this.currentCommandIndex + 1);\n this.currentCommandIndex = this.stack.push(command) - 1;\n },\n undo: function () {\n if (this.canUndo()) {\n var command = this.stack[this.currentCommandIndex--];\n command.undo();\n this.trigger('undo', { command: command });\n }\n },\n redo: function () {\n if (this.canRedo()) {\n var command = this.stack[++this.currentCommandIndex];\n command.redo();\n this.trigger('redo', { command: command });\n }\n },\n clear: function () {\n this.stack = [];\n this.currentCommandIndex = -1;\n },\n canUndo: function () {\n return this.currentCommandIndex >= 0;\n },\n canRedo: function () {\n return this.currentCommandIndex != this.stack.length - 1;\n }\n });\n kendo.deepExtend(kendo, { util: { UndoRedoStack: UndoRedoStack } });\n }(kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/main', [\n 'util/undoredostack',\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.window',\n 'kendo.colorpicker'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, Widget = kendo.ui.Widget, os = kendo.support.mobileOS, browser = kendo.support.browser, extend = $.extend, proxy = $.proxy, deepExtend = kendo.deepExtend, keys = kendo.keys;\n var SELECT = 'select';\n var SELECT_OVERLAY_SELECTOR = 'select.k-select-overlay';\n var PLACEHOLDER_CLASS = 'k-placeholder';\n var PLACEHOLDER_TAG_ID = 'placeholder';\n var REFRESH_INTERVAL = 200;\n var ToolTemplate = Class.extend({\n init: function (options) {\n this.options = options;\n },\n getHtml: function () {\n var options = this.options;\n return kendo.template(options.template, { useWithBlock: false })(options);\n }\n });\n var EditorUtils = {\n editorWrapperTemplate: '' + '' + '' + '
    ',\n buttonTemplate: '# var iconCssClass= \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '#= data.title #',\n colorPickerTemplate: '
    ',\n comboBoxTemplate: '',\n separatorTemplate: '',\n overflowAnchorTemplate: '' + '#= data.title #',\n formatByName: function (name, format) {\n for (var i = 0; i < format.length; i++) {\n if ($.inArray(name, format[i].tags) >= 0) {\n return format[i];\n }\n }\n },\n getToolCssClass: function (name) {\n var toolCssClassNames = {\n superscript: 'sup-script',\n subscript: 'sub-script',\n justifyLeft: 'align-left',\n justifyCenter: 'align-center',\n justifyRight: 'align-right',\n justifyFull: 'align-justify',\n insertUnorderedList: 'list-unordered',\n insertOrderedList: 'list-ordered',\n 'import': 'login',\n indent: 'indent-increase',\n outdent: 'indent-decrease',\n createLink: 'link-horizontal',\n unlink: 'unlink-horizontal',\n insertImage: 'image',\n insertFile: 'file-add',\n viewHtml: 'html',\n foreColor: 'foreground-color',\n backColor: 'paint',\n createTable: 'table-insert',\n addColumnLeft: 'table-column-insert-left',\n addColumnRight: 'table-column-insert-right',\n addRowAbove: 'table-row-insert-above',\n addRowBelow: 'table-row-insert-below',\n deleteRow: 'table-row-delete',\n deleteColumn: 'table-column-delete',\n tableWizard: 'table-properties',\n tableWizardInsert: 'table-wizard',\n cleanFormatting: 'clear-css'\n };\n var cssClass = toolCssClassNames[name];\n if (cssClass) {\n return cssClass;\n }\n return name;\n },\n registerTool: function (toolName, tool) {\n var toolOptions = tool.options;\n if (toolOptions && toolOptions.template) {\n toolOptions.template.options.cssClass = 'k-' + EditorUtils.getToolCssClass(toolName);\n }\n if (!tool.name) {\n tool.options.name = toolName;\n tool.name = toolName.toLowerCase();\n }\n Editor.defaultTools[toolName] = tool;\n },\n registerFormat: function (formatName, format) {\n Editor.fn.options.formats[formatName] = format;\n },\n cacheComments: function (content, comments) {\n for (var index in comments) {\n content = content.replace(comments[index], '{' + index + '}');\n }\n return content;\n },\n retrieveComments: function (content, comments) {\n for (var index in comments) {\n content = content.replace('{' + index + '}', comments[index]);\n }\n return content;\n }\n };\n var messages = {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strikethrough: 'Strikethrough',\n superscript: 'Superscript',\n subscript: 'Subscript',\n justifyCenter: 'Center text',\n justifyLeft: 'Align text left',\n justifyRight: 'Align text right',\n justifyFull: 'Justify',\n insertUnorderedList: 'Insert unordered list',\n insertOrderedList: 'Insert ordered list',\n indent: 'Indent',\n outdent: 'Outdent',\n createLink: 'Insert hyperlink',\n unlink: 'Remove hyperlink',\n insertImage: 'Insert image',\n insertFile: 'Insert file',\n insertHtml: 'Insert HTML',\n viewHtml: 'View HTML',\n fontName: 'Select font family',\n fontNameInherit: '(inherited font)',\n fontSize: 'Select font size',\n fontSizeInherit: '(inherited size)',\n formatBlock: 'Format',\n formatting: 'Format',\n foreColor: 'Color',\n backColor: 'Background color',\n style: 'Styles',\n emptyFolder: 'Empty Folder',\n editAreaTitle: 'Editable area. Press F10 for toolbar.',\n uploadFile: 'Upload',\n overflowAnchor: 'More tools',\n orderBy: 'Arrange by:',\n orderBySize: 'Size',\n orderByName: 'Name',\n invalidFileType: 'The selected file \"{0}\" is not valid. Supported file types are {1}.',\n deleteFile: 'Are you sure you want to delete \"{0}\"?',\n overwriteFile: 'A file with name \"{0}\" already exists in the current directory. Do you want to overwrite it?',\n directoryNotFound: 'A directory with this name was not found.',\n imageWebAddress: 'Web address',\n imageAltText: 'Alternate text',\n imageWidth: 'Width (px)',\n imageHeight: 'Height (px)',\n fileWebAddress: 'Web address',\n fileTitle: 'Title',\n fileText: 'Text',\n linkWebAddress: 'Web address',\n linkText: 'Text',\n linkToolTip: 'ToolTip',\n linkOpenInNewWindow: 'Open link in new window',\n dialogUpdate: 'Update',\n dialogInsert: 'Insert',\n dialogOk: 'Ok',\n dialogCancel: 'Cancel',\n cleanFormatting: 'Clean formatting',\n createTable: 'Create a table',\n createTableHint: 'Create a {0} x {1} table',\n addColumnLeft: 'Add column on the left',\n addColumnRight: 'Add column on the right',\n addRowAbove: 'Add row above',\n addRowBelow: 'Add row below',\n deleteRow: 'Delete row',\n deleteColumn: 'Delete column',\n tableWizard: 'Table Wizard',\n tableTab: 'Table',\n cellTab: 'Cell',\n accessibilityTab: 'Accessibility',\n caption: 'Caption',\n summary: 'Summary',\n width: 'Width',\n height: 'Height',\n units: 'Units',\n cellSpacing: 'Cell Spacing',\n cellPadding: 'Cell Padding',\n cellMargin: 'Cell Margin',\n alignment: 'Alignment',\n background: 'Background',\n cssClass: 'CSS Class',\n id: 'ID',\n border: 'Border',\n borderStyle: 'Border Style',\n collapseBorders: 'Collapse borders',\n wrapText: 'Wrap text',\n associateCellsWithHeaders: 'Associate cells with headers',\n alignLeft: 'Align Left',\n alignCenter: 'Align Center',\n alignRight: 'Align Right',\n alignLeftTop: 'Align Left Top',\n alignCenterTop: 'Align Center Top',\n alignRightTop: 'Align Right Top',\n alignLeftMiddle: 'Align Left Middle',\n alignCenterMiddle: 'Align Center Middle',\n alignRightMiddle: 'Align Right Middle',\n alignLeftBottom: 'Align Left Bottom',\n alignCenterBottom: 'Align Center Bottom',\n alignRightBottom: 'Align Right Bottom',\n alignRemove: 'Remove Alignment',\n columns: 'Columns',\n rows: 'Rows',\n selectAllCells: 'Select All Cells',\n exportAs: 'Export As',\n 'import': 'Import'\n };\n var supportedBrowser = !os || os.ios && os.flatVersion >= 500 || !os.ios && typeof document.documentElement.contentEditable != 'undefined';\n var toolGroups = {\n basic: [\n 'bold',\n 'italic',\n 'underline'\n ],\n alignment: [\n 'justifyLeft',\n 'justifyCenter',\n 'justifyRight'\n ],\n lists: [\n 'insertUnorderedList',\n 'insertOrderedList'\n ],\n indenting: [\n 'indent',\n 'outdent'\n ],\n links: [\n 'createLink',\n 'unlink'\n ],\n tables: [\n 'tableWizard',\n 'createTable',\n 'addColumnLeft',\n 'addColumnRight',\n 'addRowAbove',\n 'addRowBelow',\n 'deleteRow',\n 'deleteColumn'\n ]\n };\n var Editor = Widget.extend({\n init: function (element, options) {\n var that = this, value, editorNS = kendo.ui.editor, toolbarContainer, toolbarOptions, type, comments;\n var domElement;\n var dom = editorNS.Dom;\n if (!supportedBrowser) {\n return;\n }\n Widget.fn.init.call(that, element, options);\n that.options = deepExtend({}, that.options, options);\n that.options.tools = that.options.tools.slice();\n element = that.element;\n domElement = element[0];\n type = dom.name(domElement);\n this._registerHandler(element.closest('form'), 'submit', proxy(that.update, that, undefined));\n toolbarOptions = extend({}, that.options);\n toolbarOptions.editor = that;\n if (type == 'textarea') {\n that._wrapTextarea();\n toolbarContainer = that.wrapper.find('.k-editor-toolbar');\n if (domElement.id) {\n toolbarContainer.attr('aria-controls', domElement.id);\n }\n } else {\n that.element.attr('contenteditable', true).addClass('k-widget k-editor k-editor-inline');\n toolbarOptions.popup = true;\n toolbarContainer = $('');\n var block = this.isBlock(html);\n editor.focus();\n var range = editor.getRange();\n range.deleteContents();\n if (range.startContainer == editor.document) {\n range.selectNodeContents(editor.body);\n }\n var marker = new Marker();\n var caret = marker.addCaret(range);\n var parent = this.splittableParent(block, caret);\n var unwrap = false;\n var splittable = parent != editor.body && !dom.is(parent, 'td');\n if (options.split && splittable && (block || dom.isInline(parent))) {\n range.selectNode(caret);\n RangeUtils.split(range, parent, true);\n unwrap = true;\n }\n var fragment = this.htmlToFragment(html);\n if (fragment.firstChild && fragment.firstChild.className === 'k-paste-container') {\n var fragmentsHtml = [];\n for (i = 0, l = fragment.childNodes.length; i < l; i++) {\n fragmentsHtml.push(fragment.childNodes[i].innerHTML);\n }\n fragment = this.htmlToFragment(fragmentsHtml.join('
    '));\n }\n childNodes = fragment.childNodes;\n $(childNodes).filter('table').addClass('k-table').end().find('table').addClass('k-table');\n $(childNodes).each(function (index, elm) {\n if (dom.isBlock(elm) && !dom.isSelfClosing(elm) && elm.innerHTML === '') {\n elm.appendChild(editor.document.createTextNode('\\uFEFF'));\n }\n });\n range.insertNode(fragment);\n parent = this.splittableParent(block, caret);\n if (unwrap) {\n while (caret.parentNode != parent) {\n dom.unwrap(caret.parentNode);\n }\n dom.unwrap(caret.parentNode);\n }\n dom.normalize(range.commonAncestorContainer);\n caret.style.display = 'inline';\n dom.restoreScrollTop(editor.document);\n dom.scrollTo(caret);\n marker.removeCaret(range);\n var rangeEnd = range.commonAncestorContainer.parentNode;\n if (range.collapsed && dom.name(rangeEnd) == 'tbody') {\n range.setStartAfter($(rangeEnd).closest('table')[0]);\n range.collapse(true);\n }\n var focusedTable = $(range.commonAncestorContainer.parentNode).closest('table');\n if (focusedTable.get(0)) {\n var siblingNodes = focusedTable.parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === focusedTable.get(0)) {\n dom.insertAfter(dom.createEmptyNode(editor.document, 'p'), focusedTable[0]);\n }\n }\n editor.selectRange(range);\n }\n });\n var Cleaner = Class.extend({\n init: function (options) {\n this.options = options || {};\n this.replacements = [];\n },\n clean: function (html, customReplacements) {\n var that = this, replacements = customReplacements || that.replacements, i, l;\n for (i = 0, l = replacements.length; i < l; i += 2) {\n html = html.replace(replacements[i], replacements[i + 1]);\n }\n return html;\n }\n });\n var ScriptCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /<(\\/?)script([^>]*)>/i,\n '<$1telerik:script$2>'\n ];\n },\n applicable: function (html) {\n return !this.options.none && /]*>/i.test(html);\n }\n });\n var TabCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n var replacement = ' ';\n this.replacements = [\n /]*>\\s*<\\/span>/gi,\n replacement,\n /\\t/gi,\n replacement,\n /    /gi,\n replacement\n ];\n },\n applicable: function (html) {\n return /    |class=\"?Apple-tab-span/i.test(html);\n }\n });\n var MSWordFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.junkReplacements = [\n /<\\?xml[^>]*>/gi,\n '',\n //g,\n '',\n /"/g,\n '\\'',\n / <\\/o:p>/gi,\n ' ',\n /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,\n '',\n /<\\/o>/g,\n ''\n ];\n this.replacements = this.junkReplacements.concat([\n /(?:
     [\\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,\n '$1',\n /

    /g,\n '

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

    /g,\n '
    ',\n /^\\s*( )+/gi,\n '',\n /( |]*>)+\\s*$/gi,\n '',\n /mso-[^;\"]*;?/gi,\n '',\n /<(\\/?)b(\\s[^>]*)?>/gi,\n '<$1strong$2>',\n /<(\\/?)font(\\s[^>]*)?>/gi,\n this.convertFontMatch,\n /<(\\/?)i(\\s[^>]*)?>/gi,\n '<$1em$2>',\n /style=([\"|'])\\s*\\1/g,\n '',\n /(]*>)?\\n/g,\n function ($0, $1) {\n return $1 ? $0 : ' ';\n }\n ]);\n },\n convertFontMatch: function (match, closing, args) {\n var faceRe = /face=['\"]([^'\"]+)['\"]/i;\n var face = faceRe.exec(args);\n var family = args && face && face[1];\n if (closing) {\n return '
    ';\n } else if (family) {\n return '';\n } else {\n return '';\n }\n },\n applicable: function (html) {\n return /class=\"?Mso/i.test(html) || /style=\"[^\"]*mso-/i.test(html) || /urn:schemas-microsoft-com:office/.test(html);\n },\n stripEmptyAnchors: function (html) {\n return html.replace(/]*)>\\s*<\\/a>/gi, function (a, attributes) {\n if (!attributes || attributes.indexOf('href') < 0) {\n return '';\n }\n return a;\n });\n },\n listType: function (p, listData) {\n var html = p.innerHTML;\n var text = dom.innerText(p);\n var startingSymbol;\n var matchSymbol = html.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i);\n var symbol = matchSymbol && matchSymbol[1];\n var isNumber = /^[a-z\\d]/i.test(symbol);\n var trimStartText = function (text) {\n return text.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, '');\n };\n if (matchSymbol) {\n startingSymbol = true;\n }\n html = html.replace(/<\\/?\\w+[^>]*>/g, '').replace(/ /g, '\\xA0');\n if (!startingSymbol && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(html) || startingSymbol && /^.\\u00a0+/.test(html) || symbol && !isNumber && listData) {\n return {\n tag: 'ul',\n style: this._guessUnorderedListStyle(trimStartText(text))\n };\n }\n if (/^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(html)) {\n return {\n tag: 'ol',\n style: this._guessOrderedListStyle(trimStartText(text))\n };\n }\n },\n _convertToLi: function (p) {\n var content, name = dom.name(p);\n if (p.childNodes.length == 1) {\n content = p.firstChild.nodeType === dom.nodeTypes.TEXT_NODE ? dom.innerText(p) : p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, '');\n } else {\n dom.remove(p.firstChild);\n if (p.firstChild.nodeType == 3) {\n if (/^[ivxlcdm]+\\.$/i.test(p.firstChild.nodeValue)) {\n dom.remove(p.firstChild);\n }\n }\n if (/^( |\\s)+$/i.test(p.firstChild.innerHTML)) {\n dom.remove(p.firstChild);\n }\n if (name != 'p') {\n content = '<' + name + '>' + p.innerHTML + '';\n } else {\n content = p.innerHTML;\n }\n }\n dom.remove(p);\n return dom.create(document, 'li', { innerHTML: content });\n },\n _guessUnorderedListStyle: function (symbol) {\n if (/^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(symbol)) {\n return null;\n } else if (/^o/.test(symbol)) {\n return 'circle';\n } else {\n return 'square';\n }\n },\n _guessOrderedListStyle: function (symbol) {\n var listType = null;\n if (!/^\\d/.test(symbol)) {\n listType = (/^[a-z]/.test(symbol) ? 'lower-' : 'upper-') + (/^[ivxlcdm]/i.test(symbol) ? 'roman' : 'alpha');\n }\n return listType;\n },\n extractListLevels: function (html) {\n var msoListRegExp = /style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi;\n html = html.replace(msoListRegExp, function (match, list, level) {\n return kendo.format('data-list=\"{0}\" data-level=\"{1}\" {2}', list, level, match);\n });\n return html;\n },\n _createList: function (type, styleType) {\n return dom.create(document, type, { style: { listStyleType: styleType } });\n },\n lists: function (placeholder) {\n var blockChildren = $(placeholder).find(dom.blockElements.join(',')), lastMargin = -1, name, levels = {}, li, rootMargin, rootIndex, lastRootLi, isLastRootLi, rootList, i, p, type, margin, list, listData, acceptedNameTags = [\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ];\n for (i = 0; i < blockChildren.length; i++) {\n p = blockChildren[i];\n listData = $(p).data();\n var listIndex = listData.list;\n name = dom.name(p);\n if (name == 'td') {\n continue;\n }\n var listType = this.listType(p, listData);\n type = listType && listType.tag;\n if (!type || acceptedNameTags.indexOf(name) < 0) {\n if (!p.innerHTML) {\n dom.remove(p);\n } else if (li && !isLastRootLi) {\n li.appendChild(p);\n }\n continue;\n }\n if (browser.msie) {\n continue;\n }\n margin = listData.level || parseFloat(p.style.marginLeft || 0);\n var levelType = type + listIndex;\n if (!levels[margin]) {\n levels[margin] = {};\n }\n if (!rootMargin || rootMargin < 0) {\n rootMargin = margin;\n rootIndex = listIndex;\n lastRootLi = $(placeholder).find('[data-list=\\'' + rootIndex + '\\']:last')[0];\n rootList = this._createList(type, listType.style);\n dom.insertBefore(rootList, p);\n lastMargin = margin;\n levels[margin][levelType] = rootList;\n }\n isLastRootLi = lastRootLi === p;\n list = levels[margin][levelType];\n if (margin > lastMargin || !list) {\n list = this._createList(type, listType.style);\n levels[margin][levelType] = list;\n li.appendChild(list);\n }\n li = this._convertToLi(p);\n list.appendChild(li);\n if (isLastRootLi) {\n rootMargin = lastMargin = -1;\n } else {\n lastMargin = margin;\n }\n }\n },\n removeAttributes: function (element) {\n var attributes = element.attributes, i = attributes.length;\n while (i--) {\n if (dom.name(attributes[i]) != 'colspan') {\n element.removeAttributeNode(attributes[i]);\n }\n }\n },\n createColGroup: function (row) {\n var cells = row.cells;\n var table = $(row).closest('table');\n var colgroup = table.children('colgroup');\n if (cells.length < 2) {\n return;\n } else if (colgroup.length) {\n cells = colgroup.children();\n colgroup[0].parentNode.removeChild(colgroup[0]);\n }\n colgroup = $($.map(cells, function (cell) {\n var width = cell.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', width);\n }\n return '';\n }).join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n colgroup.prependTo(table);\n },\n convertHeaders: function (row) {\n var cells = row.cells, i, boldedCells = $.map(cells, function (cell) {\n var child = $(cell).children('p').children('strong')[0];\n if (child && dom.name(child) == 'strong') {\n return child;\n }\n });\n if (boldedCells.length == cells.length) {\n for (i = 0; i < boldedCells.length; i++) {\n dom.unwrap(boldedCells[i]);\n }\n $(row).closest('table').find('colgroup').after('').end().find('thead').append(row);\n for (i = 0; i < cells.length; i++) {\n dom.changeTag(cells[i], 'th');\n }\n }\n },\n removeParagraphs: function (cells) {\n var i, j, len, cell, paragraphs;\n for (i = 0; i < cells.length; i++) {\n this.removeAttributes(cells[i]);\n cell = $(cells[i]);\n paragraphs = cell.children('p');\n for (j = 0, len = paragraphs.length; j < len; j++) {\n if (j < len - 1) {\n dom.insertAfter(dom.create(document, 'br'), paragraphs[j]);\n }\n dom.unwrap(paragraphs[j]);\n }\n }\n },\n removeDefaultColors: function (spans) {\n for (var i = 0; i < spans.length; i++) {\n if (/^\\s*color:\\s*[^;]*;?$/i.test(spans[i].style.cssText)) {\n dom.unwrap(spans[i]);\n }\n }\n },\n tables: function (placeholder) {\n var tables = $(placeholder).find('table'), that = this, rows, firstRow, longestRow, i, j;\n for (i = 0; i < tables.length; i++) {\n rows = tables[i].rows;\n longestRow = firstRow = rows[0];\n for (j = 1; j < rows.length; j++) {\n if (rows[j].cells.length > longestRow.cells.length) {\n longestRow = rows[j];\n }\n }\n that.createColGroup(longestRow);\n that.convertHeaders(firstRow);\n that.removeAttributes(tables[i]);\n that.removeParagraphs(tables.eq(i).find('td,th'));\n that.removeDefaultColors(tables.eq(i).find('span'));\n }\n },\n headers: function (placeholder) {\n var titles = $(placeholder).find('p.MsoTitle');\n for (var i = 0; i < titles.length; i++) {\n dom.changeTag(titles[i], 'h1');\n }\n },\n removeFormatting: function (placeholder) {\n $(placeholder).find('*').each(function () {\n $(this).css({\n fontSize: '',\n fontFamily: ''\n });\n if (!this.getAttribute('style') && !this.style.cssText) {\n this.removeAttribute('style');\n }\n });\n },\n clean: function (html) {\n var that = this, placeholder;\n var filters = this.options;\n if (filters.none) {\n html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n html = that.stripEmptyAnchors(html);\n } else {\n html = filters.msConvertLists ? this.extractListLevels(html) : html;\n html = Cleaner.fn.clean.call(that, html);\n html = that.stripEmptyAnchors(html);\n placeholder = dom.create(document, 'div', { innerHTML: html });\n that.headers(placeholder);\n if (filters.msConvertLists) {\n that.lists(placeholder);\n }\n that.tables(placeholder);\n if (filters.msAllFormatting) {\n that.removeFormatting(placeholder);\n }\n html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, '$1');\n }\n return html;\n }\n });\n var WebkitFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /\\s+class=\"Apple-style-span[^\"]*\"/gi,\n '',\n /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi,\n '<$1',\n /^
    (.*)<\\/div>$/,\n '$1'\n ];\n },\n applicable: function (html) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(html);\n }\n });\n var DomCleaner = Cleaner.extend({\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n container = this.cleanDom(container);\n return container.innerHTML;\n },\n cleanDom: function (container) {\n return container;\n }\n });\n var HtmlTagsCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var tags = this.collectTags();\n $(container).find(tags).each(function () {\n dom.unwrap(this);\n });\n return container;\n },\n collectTags: function () {\n if (this.options.span) {\n return 'span';\n }\n },\n applicable: function () {\n return this.options.span;\n }\n });\n var HtmlAttrCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var attributes = this.collectAttr();\n var nodes = $(container).find('[' + attributes.join('],[') + ']');\n nodes.removeAttr(attributes.join(' '));\n return container;\n },\n collectAttr: function () {\n if (this.options.css) {\n return [\n 'class',\n 'style'\n ];\n }\n return [];\n },\n applicable: function () {\n return this.options.css;\n }\n });\n var TextContainer = function () {\n this.text = '';\n this.add = function (text) {\n this.text += text;\n };\n };\n var HtmlTextLines = Class.extend({\n init: function (separators) {\n this.separators = separators || {\n text: ' ',\n line: '
    '\n };\n this.lines = [];\n this.inlineBlockText = [];\n this.resetLine();\n },\n appendText: function (text) {\n if (text.nodeType === 3) {\n text = text.nodeValue;\n }\n this.textContainer.add(text);\n },\n appendInlineBlockText: function (text) {\n this.inlineBlockText.push(text);\n },\n flashInlineBlockText: function () {\n if (this.inlineBlockText.length) {\n this.appendText(this.inlineBlockText.join(' '));\n this.inlineBlockText = [];\n }\n },\n endLine: function () {\n this.flashInlineBlockText();\n this.resetLine();\n },\n html: function () {\n var separators = this.separators;\n var result = '';\n var lines = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n var line = lines[i];\n for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n var text = line[j].text;\n result += text;\n if (j !== jl1) {\n result += separators.text;\n }\n }\n if (i !== il1) {\n result += separators.line;\n }\n }\n return result;\n },\n resetLine: function () {\n this.textContainer = new TextContainer();\n this.line = [];\n this.line.push(this.textContainer);\n this.lines.push(this.line);\n }\n });\n var DomEnumerator = Class.extend({\n init: function (callback) {\n this.callback = callback;\n },\n enumerate: function (node) {\n if (!node) {\n return;\n }\n var preventDown = this.callback(node);\n var child = node.firstChild;\n if (!preventDown && child) {\n this.enumerate(child);\n }\n this.enumerate(node.nextSibling);\n }\n });\n var HtmlContentCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.hasText = false;\n this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n },\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n return this.cleanDom(container);\n },\n cleanDom: function (container) {\n this.separators = this.getDefaultSeparators();\n this.htmlLines = new HtmlTextLines(this.separators);\n this.enumerator.enumerate(container.firstChild);\n this.hasText = false;\n return this.htmlLines.html();\n },\n buildText: function (node) {\n if (dom.isDataNode(node)) {\n if (dom.isEmptyspace(node)) {\n return;\n }\n this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n this.hasText = true;\n } else if (dom.isBlock(node) && this.hasText) {\n var action = this.actions[dom.name(node)] || this.actions.block;\n return action(this, node);\n } else if (dom.isBr(node)) {\n this.htmlLines.appendText(this.separators.line);\n }\n },\n applicable: function () {\n var o = this.options;\n return o.all || o.keepNewLines;\n },\n getDefaultSeparators: function () {\n if (this.options.all) {\n return {\n text: ' ',\n line: ' '\n };\n } else {\n return {\n text: ' ',\n line: '
    '\n };\n }\n },\n actions: {\n ul: $.noop,\n ol: $.noop,\n table: $.noop,\n thead: $.noop,\n tbody: $.noop,\n td: function (cleaner, node) {\n var tdCleaner = new HtmlContentCleaner({ all: true });\n var cellText = tdCleaner.cleanDom(node);\n cleaner.htmlLines.appendInlineBlockText(cellText);\n return true;\n },\n block: function (cleaner) {\n cleaner.htmlLines.endLine();\n }\n }\n });\n var CustomCleaner = Cleaner.extend({\n clean: function (html) {\n return this.options.custom(html);\n },\n applicable: function () {\n return typeof this.options.custom === 'function';\n }\n });\n extend(editorNS, {\n Clipboard: Clipboard,\n Cleaner: Cleaner,\n ScriptCleaner: ScriptCleaner,\n TabCleaner: TabCleaner,\n MSWordFormatCleaner: MSWordFormatCleaner,\n WebkitFormatCleaner: WebkitFormatCleaner,\n HtmlTagsCleaner: HtmlTagsCleaner,\n HtmlAttrCleaner: HtmlAttrCleaner,\n HtmlContentCleaner: HtmlContentCleaner,\n HtmlTextLines: HtmlTextLines,\n CustomCleaner: CustomCleaner\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/keyboard', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, editorNS = kendo.ui.editor, RangeUtils = editorNS.RangeUtils, dom = editorNS.Dom, RestorePoint = editorNS.RestorePoint, Marker = editorNS.Marker, browser = kendo.support.browser, br = '
    ', extend = $.extend;\n var nodeTypes = dom.nodeTypes;\n var PREVIOUS_SIBLING = 'previousSibling';\n function selected(node, range) {\n return range.startContainer === node && range.endContainer === node && range.startOffset === 0 && range.endOffset == node.childNodes.length;\n }\n function getSibling(node, direction, condition) {\n var sibling = node ? node[direction] : null;\n while (sibling && !condition(sibling)) {\n sibling = sibling[direction];\n }\n return sibling;\n }\n var tableCells = 'td,th,caption';\n var tableCellsWrappers = 'table,tbody,thead,tfoot,tr';\n var tableElements = tableCellsWrappers + ',' + tableCells;\n var inTable = function (range) {\n return !range.collapsed && $(range.commonAncestorContainer).is(tableCellsWrappers);\n };\n var RemoveTableContent = Class.extend({\n remove: function (range) {\n var that = this;\n var marker = new Marker();\n marker.add(range, false);\n var nodes = RangeUtils.getAll(range, function (node) {\n return $(node).is(tableElements);\n });\n var doc = RangeUtils.documentFromRange(range);\n var start = marker.start;\n var end = marker.end;\n var cellsTypes = tableCells.split(',');\n var startCell = dom.parentOfType(start, cellsTypes);\n var endCell = dom.parentOfType(end, cellsTypes);\n that._removeContent(start, startCell, true);\n that._removeContent(end, endCell, false);\n $(nodes).each(function (i, node) {\n node = $(node);\n (node.is(tableCells) ? node : node.find(tableCells)).each(function (j, cell) {\n cell.innerHTML = '';\n });\n });\n if (startCell && !start.previousSibling) {\n dom.insertBefore(doc.createTextNode('\\uFEFF'), start);\n }\n if (endCell && !end.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), end);\n }\n if (startCell) {\n range.setStartBefore(start);\n } else if (nodes[0]) {\n startCell = $(nodes[0]);\n startCell = startCell.is(tableCells) ? startCell : startCell.find(tableCells).first();\n if (startCell.length) {\n range.setStart(startCell.get(0), 0);\n }\n }\n range.collapse(true);\n dom.remove(start);\n dom.remove(end);\n },\n _removeContent: function (start, top, forwards) {\n if (top) {\n var sibling = forwards ? 'nextSibling' : 'previousSibling', next, getNext = function (node) {\n while (node && !node[sibling]) {\n node = node.parentNode;\n }\n return node && $.contains(top, node) ? node[sibling] : null;\n };\n start = getNext(start);\n while (start) {\n next = getNext(start);\n dom.remove(start);\n start = next;\n }\n }\n }\n });\n var TypingHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard, isTypingKey = keyboard.isTypingKey(e), evt = extend($.Event(), e);\n that.editor.trigger('keydown', evt);\n if (evt.isDefaultPrevented()) {\n e.preventDefault();\n return true;\n }\n if (!evt.isDefaultPrevented() && isTypingKey && !keyboard.isTypingInProgress()) {\n var range = editor.getRange();\n var body = editor.body;\n that.startRestorePoint = new RestorePoint(range, body);\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n }\n if (browser.webkit && !range.collapsed && selected(body, range)) {\n body.innerHTML = '';\n }\n if (editor.immutables && editorNS.Immutables.immutablesContext(range)) {\n var backspaceHandler = new editorNS.BackspaceHandler(editor);\n backspaceHandler.deleteSelection(range);\n }\n keyboard.startTyping(function () {\n that.endRestorePoint = editorNS._finishUpdate(editor, that.startRestorePoint);\n });\n return true;\n }\n return false;\n },\n keyup: function (e) {\n var keyboard = this.editor.keyboard;\n this.editor.trigger('keyup', e);\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping();\n return true;\n }\n return false;\n }\n });\n var BackspaceHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n _addCaret: function (container) {\n var caret = dom.create(this.editor.document, 'a');\n if (!kendo.support.browser.chrome && container.firstChild && container.firstChild.nodeType === nodeTypes.ELEMENT_NODE) {\n container = container.firstChild;\n }\n dom.insertAt(container, caret, 0);\n dom.stripBomNode(caret.previousSibling);\n dom.stripBomNode(caret.nextSibling);\n return caret;\n },\n _restoreCaret: function (caret) {\n var range = this.editor.createRange();\n if (!caret.nextSibling && dom.isDataNode(caret.previousSibling)) {\n range.setStart(caret.previousSibling, caret.previousSibling.length);\n } else {\n range.setStartAfter(caret);\n }\n range.collapse(true);\n this.editor.selectRange(range);\n dom.remove(caret);\n },\n _handleDelete: function (range) {\n var node = range.endContainer;\n var block = dom.closestEditableOfType(node, dom.blockElements);\n if (block && editorNS.RangeUtils.isEndOf(range, block)) {\n var next = dom.next(block);\n if (!next || dom.name(next) != 'p') {\n return false;\n }\n var caret = this._addCaret(next);\n this._merge(block, next);\n this._restoreCaret(caret);\n return true;\n }\n return false;\n },\n _cleanBomBefore: function (range) {\n var offset = range.startOffset;\n var node = range.startContainer;\n var text = node.nodeValue;\n var count = 0;\n while (offset - count >= 0 && text[offset - count - 1] == '\\uFEFF') {\n count++;\n }\n if (count > 0) {\n node.deleteData(offset - count, count);\n range.setStart(node, Math.max(0, offset - count));\n range.collapse(true);\n this.editor.selectRange(range);\n }\n },\n _handleBackspace: function (range) {\n var node = range.startContainer;\n var li = dom.closestEditableOfType(node, ['li']);\n var block = dom.closestEditableOfType(node, 'p,h1,h2,h3,h4,h5,h6'.split(','));\n var editor = this.editor;\n var previousSibling;\n if (dom.isDataNode(node)) {\n if (range.collapsed && /^\\s[\\ufeff]+$/.test(node.nodeValue)) {\n range.setStart(node, 0);\n range.setEnd(node, node.length);\n editor.selectRange(range);\n return false;\n }\n this._cleanBomBefore(range);\n }\n previousSibling = getSibling(block, PREVIOUS_SIBLING, function (sibling) {\n return !dom.htmlIndentSpace(sibling);\n });\n if (range.collapsed && range.startOffset !== range.endOffset && range.startOffset < 0) {\n range.startOffset = 0;\n range.endOffset = 0;\n editor.selectRange(range);\n }\n var startAtLi = li && editorNS.RangeUtils.isStartOf(range, li);\n var liIndex = li && $(li).index();\n var startAtNonFirstLi = startAtLi && liIndex > 0;\n if (startAtNonFirstLi) {\n block = li;\n previousSibling = dom.prev(li);\n }\n if (block && previousSibling && dom.is(previousSibling, 'table') && editorNS.RangeUtils.isStartOf(range, block)) {\n if (block.innerText === '') {\n block.innerHTML = '\\uFEFF';\n }\n return true;\n }\n if (editorNS.RangeUtils.isStartOf(range, block) && (parseInt(block.style.marginLeft, 10) > 0 || parseInt(block.style.marginRight, 10) > 0)) {\n editor.exec('outdent');\n return true;\n }\n if (block && previousSibling && editorNS.RangeUtils.isStartOf(range, block) || startAtNonFirstLi) {\n var caret = this._addCaret(block);\n this._merge(previousSibling, block);\n this._restoreCaret(caret);\n return true;\n }\n if (startAtLi && liIndex === 0) {\n var child = li.firstChild;\n if (!child) {\n li.innerHTML = editorNS.emptyElementContent;\n child = li.firstChild;\n }\n var formatter = new editorNS.ListFormatter(dom.name(li.parentNode), 'p');\n range.selectNodeContents(li);\n formatter.toggle(range);\n if (dom.insignificant(child)) {\n range.setStartBefore(child);\n } else {\n range.setStart(child, 0);\n }\n editor.selectRange(range);\n return true;\n }\n var rangeStartNode = node.childNodes[range.startOffset - 1];\n var linkRange = range;\n var anchor = rangeStartNode && dom.closestEditableOfType(rangeStartNode, ['a']);\n var previousNode = getSibling(rangeStartNode || node, PREVIOUS_SIBLING, function (sibling) {\n return !dom.isDataNode(sibling) || !dom.isBom(sibling) && sibling.length > 0;\n });\n if (anchor || (range.startOffset === 0 || rangeStartNode) && dom.is(previousNode, 'a')) {\n anchor = anchor || previousNode;\n linkRange = editor.createRange();\n linkRange.setStart(anchor, anchor.childNodes.length);\n linkRange.collapse(true);\n }\n anchor = anchor || dom.closestEditableOfType(rangeStartNode || linkRange.startContainer, ['a']);\n var isEndOfLink = anchor && editorNS.RangeUtils.isEndOf(linkRange, anchor);\n if (isEndOfLink) {\n var command = new editorNS.UnlinkCommand({\n range: linkRange,\n body: editor.body,\n immutables: !!editor.immutables\n });\n editor.execCommand(command);\n editor._selectionChange();\n }\n return false;\n },\n _handleSelection: function (range) {\n var ancestor = range.commonAncestorContainer;\n var table = dom.closest(ancestor, 'table');\n var emptyParagraphContent = editorNS.emptyElementContent;\n var editor = this.editor;\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n return true;\n }\n var marker = new Marker();\n marker.add(range, false);\n if (range.commonAncestorContainer === editor.body) {\n this._surroundFullyContent(marker, range);\n }\n if (editor.immutables) {\n this._handleImmutables(marker);\n }\n this._surroundFullySelectedAnchor(marker, range);\n range.setStartAfter(marker.start);\n range.setEndBefore(marker.end);\n var start = range.startContainer;\n var end = range.endContainer;\n range.deleteContents();\n if (end.tagName.toLocaleLowerCase() === 'li' && dom.emptyNode(end)) {\n range.selectNode(end);\n range.deleteContents();\n }\n if (table && $(table).text() === '') {\n range.selectNode(table);\n range.deleteContents();\n }\n ancestor = range.commonAncestorContainer;\n if (dom.name(ancestor) === 'p' && ancestor.innerHTML === '') {\n ancestor.innerHTML = emptyParagraphContent;\n range.setStart(ancestor, 0);\n }\n this._join(start, end);\n dom.insertAfter(editor.document.createTextNode('\\uFEFF'), marker.start);\n marker.remove(range);\n start = range.startContainer;\n if (dom.name(start) == 'tr') {\n start = start.childNodes[Math.max(0, range.startOffset - 1)];\n range.setStart(start, dom.getNodeLength(start));\n }\n range.collapse(true);\n editor.selectRange(range);\n return true;\n },\n _handleImmutables: function (marker) {\n var immutableParent = editorNS.Immutables.immutableParent;\n var startImmutable = immutableParent(marker.start);\n var endImmutable = immutableParent(marker.start);\n if (startImmutable) {\n dom.insertBefore(marker.start, startImmutable);\n }\n if (endImmutable) {\n dom.insertAfter(marker.end, endImmutable);\n }\n if (startImmutable) {\n dom.remove(startImmutable);\n }\n if (endImmutable && endImmutable.parentNode) {\n dom.remove(endImmutable);\n }\n },\n _surroundFullyContent: function (marker, range) {\n var children = range.commonAncestorContainer.children, startParent = children[0], endParent = children[children.length - 1];\n this._moveMarker(marker, range, startParent, endParent);\n },\n _surroundFullySelectedAnchor: function (marker, range) {\n var start = marker.start, startParent = $(start).closest('a').get(0), end = marker.end, endParent = $(end).closest('a').get(0);\n this._moveMarker(marker, range, startParent, endParent);\n },\n _moveMarker: function (marker, range, startParent, endParent) {\n var start = marker.start, end = marker.end;\n if (startParent && RangeUtils.isStartOf(range, startParent)) {\n dom.insertBefore(start, startParent);\n }\n if (endParent && RangeUtils.isEndOf(range, endParent)) {\n dom.insertAfter(end, endParent);\n }\n },\n _root: function (node) {\n while (node && dom.name(node) != 'body' && node.parentNode && dom.name(node.parentNode) != 'body') {\n node = node.parentNode;\n }\n return node;\n },\n _join: function (start, end) {\n start = this._root(start);\n end = this._root(end);\n if (start != end && dom.is(end, 'p')) {\n this._merge(start, end);\n }\n },\n _merge: function (dest, src) {\n dom.removeTrailingBreak(dest);\n while (dest && src.firstChild) {\n if (dest.nodeType == 1) {\n dest = dom.list(dest) ? dest.children[dest.children.length - 1] : dest;\n if (dest) {\n dest.appendChild(src.firstChild);\n }\n } else if (dest.nodeType === nodeTypes.TEXT_NODE) {\n this._mergeWithTextNode(dest, src.firstChild);\n } else {\n dest.parentNode.appendChild(src.firstChild);\n }\n }\n dom.remove(src);\n },\n _mergeWithTextNode: function (textNode, appendedNode) {\n if (textNode && textNode.nodeType === nodeTypes.TEXT_NODE) {\n if (textNode.nextSibling && this._isCaret(textNode.nextSibling)) {\n dom.insertAfter(appendedNode, textNode.nextSibling);\n } else {\n dom.insertAfter(appendedNode, textNode);\n }\n }\n },\n _isCaret: function (element) {\n return $(element).is('a');\n },\n keydown: function (e) {\n var method, startRestorePoint;\n var editor = this.editor;\n var range = editor.getRange();\n var keyCode = e.keyCode;\n var keys = kendo.keys;\n var backspace = keyCode === keys.BACKSPACE;\n var del = keyCode == keys.DELETE;\n if (editor.immutables && editor.immutables.keydown(e, range)) {\n return;\n }\n if ((backspace || del) && !range.collapsed) {\n method = '_handleSelection';\n } else if (backspace) {\n method = '_handleBackspace';\n } else if (del) {\n method = '_handleDelete';\n }\n if (!method) {\n return;\n }\n startRestorePoint = new RestorePoint(range, editor.body);\n if (this[method](range)) {\n e.preventDefault();\n editorNS._finishUpdate(editor, startRestorePoint);\n }\n },\n deleteSelection: function (range) {\n this._handleSelection(range);\n },\n keyup: $.noop\n });\n var SystemHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n this.systemCommandIsInProgress = false;\n },\n createUndoCommand: function () {\n this.startRestorePoint = this.endRestorePoint = editorNS._finishUpdate(this.editor, this.startRestorePoint);\n },\n changed: function () {\n if (this.startRestorePoint) {\n return this.startRestorePoint.html != this.editor.body.innerHTML;\n }\n return false;\n },\n keydown: function (e) {\n var that = this, editor = that.editor, keyboard = editor.keyboard;\n if (keyboard.isModifierKey(e)) {\n if (keyboard.isTypingInProgress()) {\n keyboard.endTyping(true);\n }\n that.startRestorePoint = new RestorePoint(editor.getRange(), editor.body);\n return true;\n }\n if (keyboard.isSystem(e)) {\n that.systemCommandIsInProgress = true;\n if (that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n }\n return true;\n }\n return false;\n },\n keyup: function () {\n var that = this;\n if (that.systemCommandIsInProgress && that.changed()) {\n that.systemCommandIsInProgress = false;\n that.createUndoCommand();\n return true;\n }\n return false;\n }\n });\n var SelectAllHandler = Class.extend({\n init: function (editor) {\n this.editor = editor;\n },\n keydown: function (e) {\n if (!browser.webkit || e.isDefaultPrevented() || !(e.ctrlKey && e.keyCode == 65 && !e.altKey && !e.shiftKey)) {\n return;\n }\n if (this.editor.options.immutables) {\n this._toSelectableImmutables();\n }\n this._selectEditorBody();\n },\n _selectEditorBody: function () {\n var editor = this.editor;\n var range = editor.getRange();\n range.selectNodeContents(editor.body);\n editor.selectRange(range);\n },\n _toSelectableImmutables: function () {\n var editor = this.editor, body = editor.body, immutable = editorNS.Immutables.immutable, emptyTextNode = dom.emptyTextNode, first = body.firstChild, last = body.lastChild;\n while (emptyTextNode(first)) {\n first = first.nextSibling;\n }\n while (emptyTextNode(last)) {\n last = last.previousSibling;\n }\n if (first && immutable(first)) {\n $(br).prependTo(body);\n }\n if (last && immutable(last)) {\n $(br).appendTo(body);\n }\n },\n keyup: $.noop\n });\n var Keyboard = Class.extend({\n init: function (handlers) {\n this.handlers = handlers;\n this.typingInProgress = false;\n },\n isCharacter: function (keyCode) {\n return keyCode >= 48 && keyCode <= 90 || keyCode >= 96 && keyCode <= 111 || keyCode >= 186 && keyCode <= 192 || keyCode >= 219 && keyCode <= 222 || keyCode == 229;\n },\n toolFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, toolOptions, modifier = this._getShortcutModifier(e, navigator.platform);\n for (toolName in tools) {\n toolOptions = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n if ((toolOptions.key == key || toolOptions.key == e.keyCode) && toolOptions.ctrl == modifier && toolOptions.alt == e.altKey && toolOptions.shift == e.shiftKey) {\n return toolName;\n }\n }\n },\n _getShortcutModifier: function (e, platform) {\n var mac = platform.toUpperCase().indexOf('MAC') >= 0;\n return mac ? e.metaKey : e.ctrlKey;\n },\n toolsFromShortcut: function (tools, e) {\n var key = String.fromCharCode(e.keyCode), toolName, o, matchesKey, found = [];\n var matchKey = function (toolKey) {\n return toolKey == key || toolKey == e.keyCode || toolKey == e.charCode;\n };\n for (toolName in tools) {\n o = $.extend({\n ctrl: false,\n alt: false,\n shift: false\n }, tools[toolName].options);\n matchesKey = $.isArray(o.key) ? $.grep(o.key, matchKey).length > 0 : matchKey(o.key);\n if (matchesKey && o.ctrl == e.ctrlKey && o.alt == e.altKey && o.shift == e.shiftKey) {\n found.push(tools[toolName]);\n }\n }\n return found;\n },\n isTypingKey: function (e) {\n var keyCode = e.keyCode;\n return this.isCharacter(keyCode) && !e.ctrlKey && !e.altKey || keyCode == 32 || keyCode == 13 || keyCode == 8 || keyCode == 46 && !e.shiftKey && !e.ctrlKey && !e.altKey;\n },\n isModifierKey: function (e) {\n var keyCode = e.keyCode;\n return keyCode == 17 && !e.shiftKey && !e.altKey || keyCode == 16 && !e.ctrlKey && !e.altKey || keyCode == 18 && !e.ctrlKey && !e.shiftKey;\n },\n isSystem: function (e) {\n return e.keyCode == 46 && e.ctrlKey && !e.altKey && !e.shiftKey;\n },\n startTyping: function (callback) {\n this.onEndTyping = callback;\n this.typingInProgress = true;\n },\n stopTyping: function () {\n if (this.typingInProgress && this.onEndTyping) {\n this.onEndTyping();\n }\n this.typingInProgress = false;\n },\n endTyping: function (force) {\n var that = this;\n that.clearTimeout();\n if (force) {\n that.stopTyping();\n } else {\n that.timeout = window.setTimeout($.proxy(that.stopTyping, that), 1000);\n }\n },\n isTypingInProgress: function () {\n return this.typingInProgress;\n },\n clearTimeout: function () {\n window.clearTimeout(this.timeout);\n },\n notify: function (e, what) {\n var i, handlers = this.handlers;\n for (i = 0; i < handlers.length; i++) {\n if (handlers[i][what](e)) {\n break;\n }\n }\n },\n keydown: function (e) {\n this.notify(e, 'keydown');\n },\n keyup: function (e) {\n this.notify(e, 'keyup');\n }\n });\n extend(editorNS, {\n TypingHandler: TypingHandler,\n SystemHandler: SystemHandler,\n BackspaceHandler: BackspaceHandler,\n SelectAllHandler: SelectAllHandler,\n Keyboard: Keyboard\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/exportpdf', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var ExportPdfCommand = Command.extend({\n init: function (options) {\n this.async = true;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this;\n var range = that.lockRange(true);\n var editor = that.editor;\n editor._destroyResizings();\n editor.saveAsPDF().then(function () {\n that.releaseRange(range);\n editor._initializeColumnResizing();\n editor._initializeRowResizing();\n editor._initializeTableResizing();\n });\n }\n });\n extend(editorNS, { ExportPdfCommand: ExportPdfCommand });\n registerTool('pdf', new Tool({\n command: ExportPdfCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Export PDF'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/print', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, editorNS = kendo.ui.editor, Command = editorNS.Command, EditorUtils = editorNS.EditorUtils, registerTool = EditorUtils.registerTool, Tool = editorNS.Tool, ToolTemplate = editorNS.ToolTemplate, extend = $.extend;\n var PrintCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.managesUndoRedo = true;\n },\n exec: function () {\n var editor = this.editor;\n if (kendo.support.browser.msie) {\n editor.document.execCommand('print', false, null);\n } else if (editor.window.print) {\n editor.window.print();\n }\n }\n });\n extend(editorNS, { PrintCommand: PrintCommand });\n registerTool('print', new Tool({\n command: PrintCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Print'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/resizing-utils', ['editor/main'], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var parseFloat = global.parseFloat;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var PERCENTAGE = '%';\n var PIXEL = 'px';\n var REGEX_NUMBER_IN_PERCENTAGES = /(\\d+)(\\.?)(\\d*)%/;\n var REGEX_NUMBER_IN_PIXELS = /(\\d+)(\\.?)(\\d*)px/;\n var STRING = 'string';\n function constrain(options) {\n var value = options.value;\n var lowerBound = options.min;\n var upperBound = options.max;\n return max(min(parseFloat(value), parseFloat(upperBound)), parseFloat(lowerBound));\n }\n function getScrollBarWidth(element) {\n if (element && !$(element).is('body') && element.scrollHeight > element.clientHeight) {\n return kendo.support.scrollbar();\n }\n return 0;\n }\n function calculatePercentageRatio(value, total) {\n if (inPercentages(value)) {\n return parseFloat(value);\n } else {\n return parseFloat(value) / total * 100;\n }\n }\n function inPercentages(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PERCENTAGES.test(value);\n }\n function inPixels(value) {\n return typeof value === STRING && REGEX_NUMBER_IN_PIXELS.test(value);\n }\n function toPercentages(value) {\n return parseFloat(value) + PERCENTAGE;\n }\n function toPixels(value) {\n return parseFloat(value) + PIXEL;\n }\n var ResizingUtils = {\n constrain: constrain,\n getScrollBarWidth: getScrollBarWidth,\n calculatePercentageRatio: calculatePercentageRatio,\n inPercentages: inPercentages,\n inPixels: inPixels,\n toPercentages: toPercentages,\n toPixels: toPixels\n };\n extend(Editor, { ResizingUtils: ResizingUtils });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-element-resizing', [\n 'editor/main',\n 'kendo.resizable',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_ENTER = 'mouseenter';\n var MOUSE_LEAVE = 'mouseleave';\n var MOUSE_MOVE = 'mousemove';\n var MOUSE_UP = 'mouseup';\n var COMMA = ',';\n var DOT = '.';\n var LAST_CHILD = ':last-child';\n var TABLE = 'table';\n var TableElementResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.options.tags = $.isArray(that.options.tags) ? that.options.tags : [that.options.tags];\n if ($(element).is(TABLE)) {\n that.element = element;\n that._attachEventHandlers();\n }\n },\n destroy: function () {\n var that = this;\n var eventNamespace = that.options.eventNamespace;\n if (that.element) {\n $(that.element).off(eventNamespace);\n that.element = null;\n }\n $(that.options.rootElement).off(KEY_DOWN + eventNamespace);\n that._destroyResizeHandle();\n },\n options: {\n tags: [],\n min: 0,\n rootElement: null,\n eventNamespace: '',\n rtl: false,\n handle: {\n dataAttribute: '',\n height: 0,\n width: 0,\n classNames: {},\n template: ''\n }\n },\n _attachEventHandlers: function () {\n var that = this;\n var options = that.options;\n $(that.element).on(MOUSE_MOVE + options.eventNamespace, options.tags.join(COMMA), proxy(that.detectElementBorderHovering, that));\n },\n resizingInProgress: function () {\n var that = this;\n var resizable = that._resizable;\n if (resizable) {\n return !!resizable.resizing;\n }\n return false;\n },\n resize: noop,\n detectElementBorderHovering: function (e) {\n var that = this;\n var options = that.options;\n var handleOptions = options.handle;\n var tableElement = $(e.currentTarget);\n var resizeHandle = that.resizeHandle;\n var dataAttribute = handleOptions.dataAttribute;\n if (!that.resizingInProgress()) {\n if (!tableElement.is(LAST_CHILD) && that.elementBorderHovered(tableElement, e)) {\n if (resizeHandle) {\n if (resizeHandle.data(dataAttribute) && resizeHandle.data(dataAttribute) !== tableElement[0]) {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n that.showResizeHandle(tableElement, e);\n }\n } else {\n if (resizeHandle) {\n that._destroyResizeHandle();\n }\n }\n }\n },\n elementBorderHovered: noop,\n showResizeHandle: function (tableElement, e) {\n var that = this;\n if (e.buttons !== 0) {\n return;\n }\n that._initResizeHandle();\n that.setResizeHandlePosition(tableElement);\n that.setResizeHandleDimensions();\n that.setResizeHandleDataAttributes(tableElement[0]);\n that._attachResizeHandleEventHandlers();\n that._initResizable(tableElement);\n that._hideResizeMarker();\n that.resizeHandle.show();\n },\n _initResizeHandle: function () {\n var that = this;\n var options = that.options;\n that._destroyResizeHandle();\n that.resizeHandle = $(options.handle.template).appendTo(options.rootElement);\n },\n setResizeHandlePosition: noop,\n setResizeHandleDimensions: noop,\n setResizeHandleDataAttributes: function (tableElement) {\n var that = this;\n that.resizeHandle.data(that.options.handle.dataAttribute, tableElement);\n },\n _attachResizeHandleEventHandlers: function () {\n var that = this;\n var options = that.options;\n var eventNamespace = options.eventNamespace;\n var markerClass = options.handle.classNames.marker;\n var resizeHandle = that.resizeHandle;\n that.resizeHandle.on(MOUSE_DOWN + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).show();\n }).on(MOUSE_UP + eventNamespace, function () {\n resizeHandle.find(DOT + markerClass).hide();\n });\n },\n _hideResizeMarker: function () {\n var that = this;\n that.resizeHandle.find(DOT + that.options.handle.classNames.marker).hide();\n },\n _destroyResizeHandle: function () {\n var that = this;\n if (that.resizeHandle) {\n that._destroyResizable();\n that.resizeHandle.off(that.options.eventNamespace).remove();\n that.resizeHandle = null;\n }\n },\n _initResizable: function (tableElement) {\n var that = this;\n if (!that.resizeHandle) {\n return;\n }\n that._destroyResizable();\n that._resizable = new kendo.ui.Resizable(tableElement, {\n draggableElement: that.resizeHandle[0],\n start: proxy(that.onResizeStart, that),\n resize: proxy(that.onResize, that),\n resizeend: proxy(that.onResizeEnd, that)\n });\n },\n _destroyResizable: function () {\n var that = this;\n if (that._resizable) {\n that._resizable.destroy();\n that._resizable = null;\n }\n },\n onResizeStart: function () {\n this._disableKeyboard();\n },\n onResize: function (e) {\n this.setResizeHandleDragPosition(e);\n },\n setResizeHandleDragPosition: noop,\n onResizeEnd: function (e) {\n var that = this;\n that.resize(e);\n that._destroyResizeHandle();\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).off(KEY_DOWN + options.eventNamespace);\n },\n _disableKeyboard: function () {\n var options = this.options;\n $(options.rootElement).on(KEY_DOWN + options.eventNamespace, function (e) {\n e.preventDefault();\n });\n },\n _forceResizing: function (e) {\n var resizable = this._resizable;\n if (resizable && resizable.userEvents) {\n resizable.userEvents._end(e);\n }\n }\n });\n var ResizingFactory = Class.extend({\n create: function (editor, options) {\n var that = this;\n var resizingName = options.name;\n var NS = options.eventNamespace;\n $(editor.body).on(MOUSE_ENTER + NS, TABLE, function (e) {\n var table = e.currentTarget;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing) {\n if (resizing.element !== table && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, table, options);\n }\n } else {\n that._initResizing(editor, table, options);\n }\n }).on(MOUSE_LEAVE + NS, TABLE, function (e) {\n var parentTable;\n var resizing = editor[resizingName];\n e.stopPropagation();\n if (resizing && !resizing.resizingInProgress() && !resizing.resizeHandle) {\n parentTable = $(resizing.element).parents(TABLE)[0];\n if (parentTable) {\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n }).on(MOUSE_LEAVE + NS, function () {\n var resizing = editor[resizingName];\n if (resizing && !resizing.resizingInProgress()) {\n that._destroyResizing(editor, options);\n }\n }).on(MOUSE_UP + NS, function (e) {\n var resizing = editor[resizingName];\n var parentTable;\n if (resizing && resizing.resizingInProgress()) {\n parentTable = $(e.target).parents(TABLE)[0];\n if (parentTable) {\n resizing._forceResizing(e);\n that._destroyResizing(editor, options);\n that._initResizing(editor, parentTable, options);\n }\n }\n });\n },\n dispose: function (editor, options) {\n $(editor.body).off(options.eventNamespace);\n },\n _initResizing: function (editor, tableElement, options) {\n var resizingName = options.name;\n var resizingType = options.type;\n editor[resizingName] = new resizingType(tableElement, {\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n },\n _destroyResizing: function (editor, options) {\n var resizingName = options.name;\n if (editor[resizingName]) {\n editor[resizingName].destroy();\n editor[resizingName] = null;\n }\n }\n });\n ResizingFactory.current = new ResizingFactory();\n TableElementResizing.create = function (editor, options) {\n ResizingFactory.current.create(editor, options);\n };\n TableElementResizing.dispose = function (editor, options) {\n ResizingFactory.current.dispose(editor, options);\n };\n extend(Editor, { TableElementResizing: TableElementResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/column-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var NS = '.kendoEditorColumnResizing';\n var RESIZE_HANDLE_CLASS = 'k-column-resize-handle';\n var RESIZE_MARKER_CLASS = 'k-column-resize-marker';\n var BODY = 'body';\n var TBODY = 'tbody';\n var TD = 'td';\n var TH = 'th';\n var TR = 'tr';\n var COMMA = ',';\n var WIDTH = 'width';\n var ColumnResizing = TableElementResizing.extend({\n options: {\n tags: [\n TD,\n TH\n ],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'column',\n width: 10,\n height: 0,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
    ' + '
    ' + '
    ' + '
    ' + '
    '\n }\n },\n elementBorderHovered: function (column, e) {\n var that = this;\n var options = that.options;\n var handleWidth = options.handle.width;\n var borderOffset = column.offset().left + (options.rtl ? 0 : outerWidth(column));\n var mousePosition = e.clientX + $(column[0].ownerDocument).scrollLeft();\n if (mousePosition > borderOffset - handleWidth && mousePosition < borderOffset + handleWidth) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (column) {\n var that = this;\n var tableBody = $(that.element).children(TBODY);\n var options = that.options;\n var rtl = options.rtl;\n var handleWidth = options.handle.width;\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var columnWidthOffset = rtl ? 0 : outerWidth(column);\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var columnOffsetLeft = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var tBodyOffsetTop = tableBody.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(tableBody.css('marginTop'));\n that.resizeHandle.css({\n top: tBodyOffsetTop + scrollTopOffset,\n left: columnOffsetLeft + columnWidthOffset + (scrollLeftOffset - scrollBarWidth) - handleWidth / 2,\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var tableBody = $(that.element).children(TBODY);\n that.resizeHandle.css({\n width: that.options.handle.width,\n height: tableBody.height()\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rootElement = $(options.rootElement);\n var handleWidth = options.handle ? options.handle.width : 0;\n var min = options.min;\n var rtl = options.rtl;\n var columnWidth = outerWidth(column);\n var columnLeftOffset = column.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(column.css('marginLeft'));\n var adjacentColumnWidth = outerWidth(column.next());\n var resizeHandle = $(that.resizeHandle);\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var scrollBarWidth = rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var resizeHandleOffsetLeft = resizeHandle.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(resizeHandle.css('marginLeft'));\n var handleOffset = constrain({\n value: resizeHandleOffsetLeft + (scrollLeftOffset - scrollBarWidth) + e.x.delta,\n min: columnLeftOffset + (scrollLeftOffset - scrollBarWidth) - (rtl ? adjacentColumnWidth : 0) + min,\n max: columnLeftOffset + columnWidth + (scrollLeftOffset - scrollBarWidth) + (rtl ? 0 : adjacentColumnWidth) - handleWidth - min\n });\n resizeHandle.css({ left: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var column = $($(e.currentTarget).data(that.options.handle.dataAttribute));\n var options = that.options;\n var rtlModifier = options.rtl ? -1 : 1;\n var min = options.min;\n var initialDeltaX = rtlModifier * e.x.initialDelta;\n var newWidth;\n var initialAdjacentColumnWidth;\n var initialColumnWidth;\n that._setTableComputedWidth();\n that._setColumnsComputedWidth();\n initialColumnWidth = outerWidth(column);\n initialAdjacentColumnWidth = outerWidth(column.next());\n newWidth = constrain({\n value: initialColumnWidth + initialDeltaX,\n min: min,\n max: initialColumnWidth + initialAdjacentColumnWidth - min\n });\n that._resizeColumn(column[0], newWidth);\n that._resizeTopAndBottomColumns(column[0], newWidth);\n that._resizeAdjacentColumns(column.index(), initialAdjacentColumnWidth, initialColumnWidth, initialColumnWidth - newWidth);\n },\n _setTableComputedWidth: function () {\n var element = this.element;\n if (element.style[WIDTH] === '') {\n element.style[WIDTH] = toPixels(outerWidth($(element)));\n }\n },\n _setColumnsComputedWidth: function () {\n var that = this;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyWidth = outerWidth(tableBody);\n var columns = tableBody.children(TR).children(TD);\n var length = columns.length;\n var currentColumnsWidths = columns.map(function () {\n return outerWidth($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n if (inPercentages(columns[i].style[WIDTH])) {\n columns[i].style[WIDTH] = toPercentages(calculatePercentageRatio(currentColumnsWidths[i], tableBodyWidth));\n } else {\n columns[i].style[WIDTH] = toPixels(currentColumnsWidths[i]);\n }\n }\n },\n _resizeTopAndBottomColumns: function (column, newWidth) {\n var that = this;\n var columnIndex = $(column).index();\n var topAndBottomColumns = $(that.element).children(TBODY).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n var cell = this;\n return $(cell).index() === columnIndex && cell !== column;\n });\n var length = topAndBottomColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeColumn(topAndBottomColumns[i], newWidth);\n }\n },\n _resizeColumn: function (column, newWidth) {\n if (inPercentages(column.style[WIDTH])) {\n column.style[WIDTH] = toPercentages(calculatePercentageRatio(newWidth, outerWidth($(this.element).children(TBODY))));\n } else {\n column.style[WIDTH] = toPixels(newWidth);\n }\n },\n _resizeAdjacentColumns: function (columnIndex, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var adjacentColumns = $(that.element).children(TBODY).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n return $(this).index() === columnIndex + 1;\n });\n var length = adjacentColumns.length;\n var i;\n for (i = 0; i < length; i++) {\n that._resizeAdjacentColumn(adjacentColumns[i], initialAdjacentColumnWidth, initialColumnWidth, deltaWidth);\n }\n },\n _resizeAdjacentColumn: function (adjacentColumn, initialAdjacentColumnWidth, initialColumnWidth, deltaWidth) {\n var that = this;\n var min = that.options.min;\n var newWidth;\n newWidth = constrain({\n value: initialAdjacentColumnWidth + deltaWidth,\n min: min,\n max: abs(initialColumnWidth + initialAdjacentColumnWidth - min)\n });\n that._resizeColumn(adjacentColumn, newWidth);\n }\n });\n ColumnResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'columnResizing',\n type: ColumnResizing,\n eventNamespace: NS\n });\n };\n ColumnResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { ColumnResizing: ColumnResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/row-resizing', [\n 'editor/main',\n 'editor/resizing/resizing-utils',\n 'editor/resizing/table-element-resizing'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var math = window.Math;\n var abs = math.abs;\n var $ = kendo.jQuery;\n var extend = $.extend;\n var Editor = kendo.ui.editor;\n var TableElementResizing = Editor.TableElementResizing;\n var ResizingUtils = Editor.ResizingUtils;\n var getScrollBarWidth = ResizingUtils.getScrollBarWidth;\n var constrain = ResizingUtils.constrain;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var inPercentages = ResizingUtils.inPercentages;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorRowResizing';\n var RESIZE_HANDLE_CLASS = 'k-row-resize-handle';\n var RESIZE_HANDLE_MARKER_WRAPPER_CLASS = 'k-row-resize-marker-wrapper';\n var RESIZE_MARKER_CLASS = 'k-row-resize-marker';\n var BODY = 'body';\n var TR = 'tr';\n var TBODY = 'tbody';\n var HEIGHT = 'height';\n var RowResizing = TableElementResizing.extend({\n options: {\n tags: [TR],\n min: 20,\n rootElement: null,\n eventNamespace: NS,\n rtl: false,\n handle: {\n dataAttribute: 'row',\n width: 0,\n height: 10,\n classNames: {\n handle: RESIZE_HANDLE_CLASS,\n marker: RESIZE_MARKER_CLASS\n },\n template: '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    '\n }\n },\n elementBorderHovered: function (tableElement, e) {\n var that = this;\n var handleHeight = that.options.handle[HEIGHT];\n var borderOffset = tableElement.offset().top + outerHeight(tableElement);\n var mousePosition = e.clientY + $(tableElement[0].ownerDocument).scrollTop();\n if (mousePosition > borderOffset - handleHeight && mousePosition < borderOffset + handleHeight) {\n return true;\n } else {\n return false;\n }\n },\n setResizeHandlePosition: function (row) {\n var that = this;\n var options = that.options;\n var handleHeight = options.handle[HEIGHT];\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var scrollLeftOffset = rootElement.is(BODY) ? 0 : rootElement.scrollLeft();\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n var rowOffsetLeft = row.offset().left - (rootElement.offset().left + parseFloat(rootElement.css('borderLeftWidth'))) - parseFloat(row.css('marginLeft'));\n var rowOffsetTop = row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(row.css('marginTop'));\n that.resizeHandle.css({\n top: rowOffsetTop + outerHeight(row) + scrollTopOffset - handleHeight / 2,\n left: rowOffsetLeft + (scrollLeftOffset - scrollBarWidth),\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n that.resizeHandle.css({\n width: $(that.element).children(TBODY).width(),\n height: that.options.handle[HEIGHT]\n });\n },\n setResizeHandleDragPosition: function (e) {\n var that = this;\n var options = that.options;\n var min = options.min;\n var tableBody = $(that.element).children(TBODY);\n var resizeHandle = $(that.resizeHandle);\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var $row = $(row);\n var rootElement = $(options.rootElement);\n var scrollTopOffset = rootElement.is(BODY) ? 0 : rootElement.scrollTop();\n var tableBodyTopOffset = tableBody.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(tableBody.css('marginTop'));\n var rowOffsetTop = $row.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat($row.css('marginTop'));\n var resizeHandleOffsetTop = resizeHandle.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(resizeHandle.css('marginTop'));\n var handleOffset = constrain({\n value: resizeHandleOffsetTop + scrollTopOffset + e.y.delta,\n min: rowOffsetTop + scrollTopOffset + min,\n max: tableBodyTopOffset + outerHeight(tableBody) + scrollTopOffset - options.handle[HEIGHT] - min\n });\n resizeHandle.css({ top: handleOffset });\n },\n resize: function (e) {\n var that = this;\n var options = that.options;\n var row = $(e.currentTarget).data(options.handle.dataAttribute);\n var currentRowHeight = outerHeight($(row));\n var element = $(that.element);\n var initialTableHeight = outerHeight(element);\n var tableBody = element.children(TBODY);\n var tableBodyHeight = tableBody.height();\n var initialStyleHeight = row.style[HEIGHT];\n var newRowHeight = constrain({\n value: currentRowHeight + e.y.initialDelta,\n min: options.min,\n max: abs(tableBodyHeight - options.min)\n });\n that._setRowsHeightInPixels();\n row.style[HEIGHT] = toPixels(newRowHeight);\n that._setTableHeight(initialTableHeight + (newRowHeight - currentRowHeight));\n if (inPercentages(initialStyleHeight)) {\n that._setRowsHeightInPercentages();\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(TBODY).children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = tableBody.children(TR);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableBodyHeight));\n }\n },\n _setTableHeight: function (newHeight) {\n var element = this.element;\n if (inPercentages(element.style[HEIGHT])) {\n element.style[HEIGHT] = toPercentages(calculatePercentageRatio(newHeight, $(element).parent().height()));\n } else {\n element.style[HEIGHT] = toPixels(newHeight);\n }\n }\n });\n RowResizing.create = function (editor) {\n TableElementResizing.create(editor, {\n name: 'rowResizing',\n type: RowResizing,\n eventNamespace: NS\n });\n };\n RowResizing.dispose = function (editor) {\n TableElementResizing.dispose(editor, { eventNamespace: NS });\n };\n extend(Editor, { RowResizing: RowResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-resize-handle', [\n 'editor/main',\n 'kendo.draganddrop',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var $ = kendo.jQuery;\n var extend = $.extend;\n var noop = $.noop;\n var proxy = $.proxy;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var Draggable = kendo.ui.Draggable;\n var Observable = kendo.Observable;\n var getScrollBarWidth = Editor.ResizingUtils.getScrollBarWidth;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorTableResizeHandle';\n var RESIZE_HANDLE_CLASS = 'k-table-resize-handle';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var HALF_INSIDE = 'halfInside';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var BODY = 'body';\n var TABLE = 'table';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n var TableResizeHandle = Observable.extend({\n init: function (options) {\n var that = this;\n Observable.fn.init.call(that);\n that.options = extend({}, that.options, options);\n that.element = $(that.options.template).appendTo(that.options.appendTo)[0];\n that._attachEventHandlers();\n that._addStyles();\n that._initDraggable();\n that._initPositioningStrategy();\n that._initDraggingStrategy();\n $(that.element).data(TABLE, that.options.resizableElement);\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS).remove();\n that.element = null;\n that._destroyDraggable();\n that.unbind();\n },\n options: {\n appendTo: null,\n direction: SOUTHEAST,\n resizableElement: null,\n rtl: false,\n template: '
    ' + '
    ' + '
    '\n },\n events: [\n DRAG_START,\n DRAG,\n DRAG_END,\n MOUSE_OVER,\n MOUSE_OUT\n ],\n show: function () {\n this._setPosition();\n },\n _setPosition: function () {\n var that = this;\n var position = that._positioningStrategy.getPosition();\n $(that.element).css({\n top: position.top,\n left: position.left,\n position: 'absolute'\n });\n },\n _attachEventHandlers: function () {\n var that = this;\n $(that.element).on(MOUSE_OVER + NS, proxy(that._onMouseOver, that)).on(MOUSE_OUT + NS, proxy(that._onMouseOut, that));\n },\n _onMouseOver: function () {\n this.trigger(MOUSE_OVER);\n },\n _onMouseOut: function () {\n this.trigger(MOUSE_OUT);\n },\n _addStyles: function () {\n var that = this;\n $(that.element).children(DOT + RESIZE_HANDLE_CLASS).addClass('k-resize-' + that.options.direction);\n },\n _initPositioningStrategy: function () {\n var that = this;\n var options = that.options;\n that._positioningStrategy = HandlePositioningStrategy.create({\n name: options.direction,\n handle: that.element,\n resizableElement: options.resizableElement,\n rootElement: options.rootElement,\n rtl: options.rtl\n });\n },\n _initDraggable: function () {\n var that = this;\n var element = that.element;\n if (that._draggable || !element) {\n return;\n }\n that._draggable = new Draggable(element, {\n dragstart: proxy(that._onDragStart, that),\n drag: proxy(that._onDrag, that),\n dragend: proxy(that._onDragEnd, that)\n });\n },\n _onDragStart: function () {\n this.trigger(DRAG_START);\n },\n _onDrag: function (e) {\n var that = this;\n that.trigger(DRAG, that._draggingStrategy.adjustDragDelta({\n deltaX: e.x.delta,\n deltaY: e.y.delta,\n initialDeltaX: e.x.initialDelta,\n initialDeltaY: e.y.initialDelta\n }));\n },\n _onDragEnd: function () {\n this.trigger(DRAG_END);\n },\n _destroyDraggable: function () {\n var that = this;\n if (that._draggable) {\n that._draggable.destroy();\n that._draggable = null;\n }\n },\n _initDraggingStrategy: function () {\n var that = this;\n that._draggingStrategy = HandleDraggingStrategy.create({ name: that.options.direction });\n }\n });\n var StrategyFactory = Class.extend({\n init: function () {\n this._items = [];\n },\n register: function (name, type) {\n this._items.push({\n name: name,\n type: type\n });\n },\n create: function (options) {\n var items = this._items;\n var itemsLength = items.length;\n var name = options.name ? options.name.toLowerCase() : '';\n var match;\n var item;\n var i;\n for (i = 0; i < itemsLength; i++) {\n item = items[i];\n if (item.name.toLowerCase() === name) {\n match = item;\n break;\n }\n }\n if (match) {\n return new match.type(options);\n }\n }\n });\n var PositioningStrategyFactory = StrategyFactory.extend({});\n PositioningStrategyFactory.current = new PositioningStrategyFactory();\n var HandlePositioningStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n handle: null,\n offset: HALF_INSIDE,\n resizableElement: null,\n rootElement: null,\n rtl: false\n },\n getPosition: function () {\n var that = this;\n var position = that.calculatePosition();\n var handleOffsetPosition = that.applyHandleOffset(position);\n var scrollOffsetPosition = that.applyScrollOffset(handleOffsetPosition);\n return scrollOffsetPosition;\n },\n calculatePosition: noop,\n applyHandleOffset: function (position) {\n var options = this.options;\n var handle = $(options.handle);\n if (options.offset === HALF_INSIDE) {\n return {\n top: position.top - outerHeight(handle) / 2,\n left: position.left - outerWidth(handle) / 2\n };\n }\n return position;\n },\n applyScrollOffset: function (position) {\n var options = this.options;\n var rootElement = $(options.rootElement);\n var scrollBarWidth = options.rtl ? getScrollBarWidth(rootElement[0]) : 0;\n if (!rootElement.is(BODY)) {\n return {\n top: position.top + (rootElement.scrollTop() || 0),\n left: position.left + (rootElement.scrollLeft() || 0) - scrollBarWidth\n };\n }\n return position;\n }\n });\n HandlePositioningStrategy.create = function (options) {\n return PositioningStrategyFactory.current.create(options);\n };\n var EastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(EAST, EastPositioningStrategy);\n var NorthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) / 2\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTH, NorthPositioningStrategy);\n var NortheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHEAST, NortheastPositioningStrategy);\n var NorthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top,\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(NORTHWEST, NorthwestPositioningStrategy);\n var SouthPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) / 2\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTH, SouthPositioningStrategy);\n var SoutheastPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement)\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHEAST, SoutheastPositioningStrategy);\n var SouthwestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(SOUTHWEST, SouthwestPositioningStrategy);\n var WestPositioningStrategy = HandlePositioningStrategy.extend({\n calculatePosition: function () {\n var resizableElement = $(this.options.resizableElement);\n var offset = resizableElement.position();\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left\n };\n }\n });\n PositioningStrategyFactory.current.register(WEST, WestPositioningStrategy);\n var DraggingStrategyFactory = StrategyFactory.extend({});\n DraggingStrategyFactory.current = new DraggingStrategyFactory();\n var HandleDraggingStrategy = Class.extend({\n init: function (options) {\n var that = this;\n that.options = extend({}, that.options, options);\n },\n options: {\n deltaX: {\n adjustment: null,\n modifier: null\n },\n deltaY: {\n adjustment: null,\n modifier: null\n }\n },\n adjustDragDelta: function (deltas) {\n var options = this.options;\n var xAxisAdjustment = options.deltaX.adjustment * options.deltaX.modifier;\n var yAxisAdjustment = options.deltaY.adjustment * options.deltaY.modifier;\n return {\n deltaX: deltas.deltaX * xAxisAdjustment,\n deltaY: deltas.deltaY * yAxisAdjustment,\n initialDeltaX: deltas.initialDeltaX * xAxisAdjustment,\n initialDeltaY: deltas.initialDeltaY * yAxisAdjustment\n };\n }\n });\n HandleDraggingStrategy.create = function (options) {\n return DraggingStrategyFactory.current.create(options);\n };\n var HorizontalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 0,\n modifier: 0\n }\n }\n });\n var EastDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(EAST, EastDraggingStrategy);\n var WestDraggingStrategy = HorizontalDraggingStrategy.extend({ options: { deltaX: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(WEST, WestDraggingStrategy);\n var VerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 0,\n modifier: 0\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: -1 } } });\n DraggingStrategyFactory.current.register(NORTH, NorthDraggingStrategy);\n var SouthDraggingStrategy = VerticalDraggingStrategy.extend({ options: { deltaY: { modifier: 1 } } });\n DraggingStrategyFactory.current.register(SOUTH, SouthDraggingStrategy);\n var HorizontalAndVerticalDraggingStrategy = HandleDraggingStrategy.extend({\n options: {\n deltaX: {\n adjustment: 1,\n modifier: 1\n },\n deltaY: {\n adjustment: 1,\n modifier: 1\n }\n }\n });\n var NorthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHEAST, NorthEastDraggingStrategy);\n var NorthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: -1 }\n }\n });\n DraggingStrategyFactory.current.register(NORTHWEST, NorthWestDraggingStrategy);\n var SouthEastDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: 1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHEAST, SouthEastDraggingStrategy);\n var SouthWestDraggingStrategy = HorizontalAndVerticalDraggingStrategy.extend({\n options: {\n deltaX: { modifier: -1 },\n deltaY: { modifier: 1 }\n }\n });\n DraggingStrategyFactory.current.register(SOUTHWEST, SouthWestDraggingStrategy);\n extend(Editor, { TableResizeHandle: TableResizeHandle });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/resizing/table-resizing', [\n 'editor/main',\n 'editor/resizing/table-resize-handle',\n 'editor/resizing/resizing-utils'\n ], f);\n}(function () {\n (function (kendo, undefined) {\n var global = window;\n var math = global.Math;\n var min = math.min;\n var max = math.max;\n var $ = kendo.jQuery;\n var contains = $.contains;\n var extend = $.extend;\n var proxy = $.proxy;\n var browser = kendo.support.browser;\n var Editor = kendo.ui.editor;\n var Class = kendo.Class;\n var TableResizeHandle = Editor.TableResizeHandle;\n var ResizingUtils = Editor.ResizingUtils;\n var calculatePercentageRatio = ResizingUtils.calculatePercentageRatio;\n var constrain = ResizingUtils.constrain;\n var inPercentages = ResizingUtils.inPercentages;\n var inPixels = ResizingUtils.inPixels;\n var toPercentages = ResizingUtils.toPercentages;\n var toPixels = ResizingUtils.toPixels;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var NS = '.kendoEditorTableResizing';\n var RESIZE_HANDLE_WRAPPER_CLASS = 'k-table-resize-handle-wrapper';\n var TABLE_CLASS = 'k-table';\n var TABLE_RESIZING_CLASS = 'k-table-resizing';\n var DRAG_START = 'dragStart';\n var DRAG = 'drag';\n var DRAG_END = 'dragEnd';\n var KEY_DOWN = 'keydown';\n var MOUSE_DOWN = 'mousedown';\n var MOUSE_OVER = 'mouseover';\n var MOUSE_OUT = 'mouseout';\n var COLUMN = 'td';\n var ROW = 'tr';\n var TBODY = 'tbody';\n var TABLE = 'table';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var EAST = 'east';\n var NORTH = 'north';\n var NORTHEAST = 'northeast';\n var NORTHWEST = 'northwest';\n var SOUTH = 'south';\n var SOUTHEAST = 'southeast';\n var SOUTHWEST = 'southwest';\n var WEST = 'west';\n var DOT = '.';\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n var TableResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.handles = [];\n if ($(element).is(TABLE)) {\n that.element = element;\n }\n },\n destroy: function () {\n var that = this;\n $(that.element).off(NS);\n that.element = null;\n $(that.options.rootElement).off(KEY_DOWN + NS);\n that._destroyResizeHandles();\n },\n options: {\n appendHandlesTo: null,\n rtl: false,\n rootElement: null,\n minWidth: 10,\n minHeight: 10,\n handles: [\n { direction: NORTHWEST },\n { direction: NORTH },\n { direction: NORTHEAST },\n { direction: EAST },\n { direction: SOUTHEAST },\n { direction: SOUTH },\n { direction: SOUTHWEST },\n { direction: WEST }\n ]\n },\n resize: function (args) {\n var that = this;\n var deltas = extend({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, args);\n that._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n that._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n that.showResizeHandles();\n },\n _resizeWidth: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleWidth = element[0].style[WIDTH];\n var currentWidth = outerWidth(element);\n var parentWidth = element.parent().width();\n var maxWidth = that._getMaxDimensionValue(WIDTH);\n var newWidth;\n var ratioValue;\n var ratioTotalValue;\n var constrainedWidth;\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementWidth)) {\n that._initialElementWidth = currentWidth;\n }\n constrainedWidth = constrain({\n value: that._initialElementWidth + initialDelta,\n min: that.options.minWidth,\n max: maxWidth\n });\n if (inPercentages(styleWidth)) {\n if (currentWidth + delta > parentWidth) {\n ratioValue = max(constrainedWidth, parentWidth);\n ratioTotalValue = min(constrainedWidth, parentWidth);\n } else {\n ratioValue = min(constrainedWidth, parentWidth);\n ratioTotalValue = max(constrainedWidth, parentWidth);\n }\n newWidth = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newWidth = toPixels(constrainedWidth);\n }\n that._setColumnsWidth();\n element[0].style[WIDTH] = newWidth;\n },\n _resizeHeight: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var styleHeight = element[0].style[HEIGHT];\n var currentHeight = outerHeight(element);\n var parent = element.parent();\n var parentHeight = parent.height();\n var maxHeight = that._getMaxDimensionValue(HEIGHT);\n var newHeight;\n var ratioValue;\n var ratioTotalValue;\n var constrainedHeight;\n var minHeight = that.options.minHeight;\n var hasRowsInPixels = that._hasRowsInPixels();\n if (delta === 0) {\n return;\n }\n if (isUndefined(that._initialElementHeight)) {\n that._initialElementHeight = currentHeight;\n }\n constrainedHeight = constrain({\n value: that._initialElementHeight + initialDelta,\n min: minHeight,\n max: maxHeight\n });\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPercentages();\n }\n if (inPercentages(styleHeight)) {\n if (currentHeight + delta > parentHeight) {\n ratioValue = max(constrainedHeight, parentHeight);\n ratioTotalValue = min(constrainedHeight, parentHeight);\n } else {\n ratioValue = min(constrainedHeight, parentHeight);\n ratioTotalValue = max(constrainedHeight, parentHeight);\n }\n newHeight = toPercentages(calculatePercentageRatio(ratioValue, ratioTotalValue));\n } else {\n newHeight = toPixels(constrainedHeight);\n }\n element[0].style[HEIGHT] = newHeight;\n if (hasRowsInPixels && delta < 0) {\n that._setRowsHeightInPixels();\n }\n },\n _getMaxDimensionValue: function (dimension) {\n var that = this;\n var element = $(that.element);\n var dimensionLowercase = dimension.toLowerCase();\n var rtlModifier = that.options.rtl ? -1 : 1;\n var parent = $(that.element).parent();\n var parentElement = parent[0];\n var parentDimension = parent[dimensionLowercase]();\n var parentScrollOffset = rtlModifier * (dimension === WIDTH ? parent.scrollLeft() : parent.scrollTop());\n if (parentElement === element.closest(COLUMN)[0]) {\n if (parentElement.style[dimensionLowercase] === '' && !inPercentages(that.element.style[dimensionLowercase])) {\n return Infinity;\n } else {\n return parentDimension + parentScrollOffset;\n }\n } else {\n return parentDimension + parentScrollOffset;\n }\n },\n _setColumnsWidth: function () {\n var that = this;\n var element = $(that.element);\n var parentElement = element.parent()[0];\n var parentColumn = element.closest(COLUMN);\n var columns = parentColumn.closest(ROW).children();\n var columnsLength = columns.length;\n var i;\n function isWidthInPercentages(element) {\n var styleWidth = element.style.width;\n if (styleWidth !== '') {\n return inPercentages(styleWidth) ? true : false;\n } else {\n return $(element).hasClass(TABLE_CLASS) ? true : false;\n }\n }\n if (isWidthInPercentages(element[0]) && parentElement === parentColumn[0] && parentElement.style[WIDTH] === '') {\n for (i = 0; i < columnsLength; i++) {\n columns[i].style[WIDTH] = toPixels($(columns[i]).width());\n }\n }\n },\n _hasRowsInPixels: function () {\n var that = this;\n var rows = $(that.element).children(TBODY).children(ROW);\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].style.height === '' || inPixels(rows[i].style.height)) {\n return true;\n }\n }\n return false;\n },\n _setRowsHeightInPercentages: function () {\n var that = this;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = tableBody.children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableBodyHeight));\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(TBODY).children(ROW);\n var length = rows.length;\n var currentRowsHeights = rows.map(function () {\n return outerHeight($(this));\n });\n var i;\n for (i = 0; i < length; i++) {\n rows[i].style[HEIGHT] = toPixels(currentRowsHeights[i]);\n }\n },\n showResizeHandles: function () {\n var that = this;\n that._initResizeHandles();\n that._showResizeHandles();\n },\n _initResizeHandles: function () {\n var that = this;\n var handles = that.handles;\n var options = that.options;\n var handleOptions = that.options.handles;\n var length = handleOptions.length;\n var i;\n if (handles && handles.length > 0) {\n return;\n }\n for (i = 0; i < length; i++) {\n that.handles.push(new TableResizeHandle(extend({\n appendTo: options.appendHandlesTo,\n resizableElement: that.element,\n rootElement: options.rootElement,\n rtl: options.rtl\n }, handleOptions[i])));\n }\n that._bindToResizeHandlesEvents();\n },\n _destroyResizeHandles: function () {\n var that = this;\n var length = that.handles ? that.handles.length : 0;\n for (var i = 0; i < length; i++) {\n that.handles[i].destroy();\n }\n },\n _showResizeHandles: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n for (i = 0; i < length; i++) {\n that.handles[i].show();\n }\n },\n _bindToResizeHandlesEvents: function () {\n var that = this;\n var handles = that.handles || [];\n var length = handles.length;\n var i;\n var handle;\n for (i = 0; i < length; i++) {\n handle = handles[i];\n handle.bind(DRAG_START, proxy(that._onResizeHandleDragStart, that));\n handle.bind(DRAG, proxy(that._onResizeHandleDrag, that));\n handle.bind(DRAG_END, proxy(that._onResizeHandleDragEnd, that));\n handle.bind(MOUSE_OVER, proxy(that._onResizeHandleMouseOver, that));\n handle.bind(MOUSE_OUT, proxy(that._onResizeHandleMouseOut, that));\n }\n },\n _onResizeHandleDragStart: function () {\n var that = this;\n var element = $(that.element);\n element.addClass(TABLE_RESIZING_CLASS);\n that._initialElementHeight = outerHeight(element);\n that._initialElementWidth = outerWidth(element);\n that._disableKeyboard();\n },\n _onResizeHandleDrag: function (e) {\n this.resize(e);\n },\n _onResizeHandleDragEnd: function () {\n var that = this;\n $(that.element).removeClass(TABLE_RESIZING_CLASS);\n that._enableKeyboard();\n },\n _enableKeyboard: function () {\n $(this.options.rootElement).off(KEY_DOWN + NS);\n },\n _disableKeyboard: function () {\n $(this.options.rootElement).on(KEY_DOWN + NS, function (e) {\n e.preventDefault();\n });\n }\n });\n var TableResizingFactory = Class.extend({\n create: function (editor) {\n var factory = this;\n $(editor.body).on(MOUSE_DOWN + NS, TABLE, function (e) {\n var eventTarget = e.target;\n var eventCurrentTarget = e.currentTarget;\n var tableResizing = editor.tableResizing;\n var element = tableResizing ? tableResizing.element : null;\n if (tableResizing) {\n if (element && eventCurrentTarget !== element) {\n if (contains(eventCurrentTarget, element) && element !== eventTarget && contains(element, eventTarget)) {\n return;\n } else {\n if (element !== eventTarget) {\n editor._destroyTableResizing();\n factory._initResizing(editor, eventCurrentTarget);\n }\n }\n }\n } else {\n factory._initResizing(editor, eventCurrentTarget);\n }\n editor._showTableResizeHandles();\n }).on(MOUSE_DOWN + NS, function (e) {\n var tableResizing = editor.tableResizing;\n var element = tableResizing ? tableResizing.element : null;\n var target = e.target;\n var isResizeHandleOrChild = $(target).hasClass(RESIZE_HANDLE_WRAPPER_CLASS) || $(target).parents(DOT + RESIZE_HANDLE_WRAPPER_CLASS).length > 0;\n if (tableResizing && element !== target && !contains(element, target) && !isResizeHandleOrChild) {\n editor._destroyTableResizing();\n }\n });\n },\n dispose: function (editor) {\n $(editor.body).off(NS);\n },\n _initResizing: function (editor, table) {\n if (!browser.msie && !browser.mozilla) {\n editor.tableResizing = new TableResizing(table, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n }\n }\n });\n TableResizingFactory.current = new TableResizingFactory();\n TableResizing.create = function (editor) {\n TableResizingFactory.current.create(editor);\n };\n TableResizing.dispose = function (editor) {\n TableResizingFactory.current.dispose(editor);\n };\n extend(Editor, { TableResizing: TableResizing });\n }(window.kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-command', ['editor/plugins/tables'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, RangeUtils = Editor.RangeUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, Command = Editor.Command;\n var tableFormatFinder = new Editor.BlockFormatFinder([{ tags: ['table'] }]);\n var cellsFormatFinder = new Editor.BlockFormatFinder([{\n tags: [\n 'td',\n 'th'\n ]\n }]);\n var reUnit = /([a-z]+|%)$/i;\n var TableWizardCommand = Command.extend({\n exec: function () {\n var cmd = this;\n var editor = cmd.editor;\n var range = cmd.range = cmd.lockRange();\n var selectedTable = cmd._sourceTable = !cmd.options.insertNewTable ? cmd._selectedTable(range) : undefined;\n var selectedCells = cmd._selectedTableCells = selectedTable ? cmd._selectedCells(range) : undefined;\n var options = {\n visible: false,\n messages: editor.options.messages,\n closeCallback: $.proxy(cmd.onDialogClose, cmd),\n table: cmd.parseTable(selectedTable, selectedCells),\n dialogOptions: editor.options.dialogOptions,\n isRtl: kendo.support.isRtl(editor.wrapper)\n };\n var dialog = new Editor.TableWizardDialog(options);\n dialog.open();\n },\n onDialogClose: function (data) {\n var cmd = this;\n cmd.releaseRange(cmd.range);\n if (data) {\n if (cmd.options.insertNewTable) {\n cmd.insertTable(cmd.createNewTable(data));\n } else {\n cmd.updateTable(data, cmd._sourceTable, cmd._selectedTableCells);\n }\n }\n },\n releaseRange: function (range) {\n var cmd = this;\n var doc = cmd.editor.document;\n dom.windowFromDocument(doc).focus();\n Command.fn.releaseRange.call(cmd, range);\n },\n insertTable: function (table) {\n var range = this.range;\n range.insertNode(table);\n range.collapse(true);\n this.editor.selectRange(range);\n this._ensureFocusableAfterTable(table);\n },\n _ensureFocusableAfterTable: function (table) {\n var siblingNodes = $(table).parent().contents();\n var lastSiblingIndex = siblingNodes.length - 1;\n var lastSibling = siblingNodes.get(lastSiblingIndex);\n while (lastSibling.nodeValue !== null && (lastSibling.nodeValue === ' ' || lastSibling.nodeValue === '')) {\n lastSiblingIndex -= 1;\n lastSibling = siblingNodes.get(lastSiblingIndex);\n }\n if (lastSibling === table) {\n dom.insertAfter(dom.createEmptyNode(this.editor.document, 'p'), table);\n }\n },\n updateTable: function (data, table, selectedCells) {\n var cmd = this;\n var tableRows = $(table.rows).toArray();\n var tableProp = data.tableProperties;\n var rows = tableProp.rows;\n var columns = tableProp.columns;\n var last = function (collection) {\n return collection[collection.length - 1];\n };\n while (selectedCells.length > 1) {\n selectedCells.pop();\n }\n var lastSelectedRow = selectedCells.length ? last(selectedCells).parentNode : last(tableRows);\n var row, parent;\n cmd._deleteTableRows(tableRows, tableRows.length - rows);\n if (tableRows.length < rows) {\n var rowIndex = $(lastSelectedRow).index();\n var cellsLength = lastSelectedRow.cells.length;\n var newRowsCount = rows - tableRows.length;\n parent = lastSelectedRow.parentNode;\n while (newRowsCount) {\n row = parent.insertRow(rowIndex + 1);\n cmd._insertCells(cellsLength - row.cells.length, row);\n newRowsCount--;\n }\n }\n if (tableRows[0].cells.length > columns) {\n $(tableRows).each(function (i, row) {\n while (row.cells.length > columns) {\n row.deleteCell(-1);\n }\n });\n }\n if (tableRows[0].cells.length < columns) {\n var cellIndex = $(last(selectedCells) || last(lastSelectedRow.cells)).index();\n $(tableRows).each(function (i, row) {\n cmd._insertCells(columns - row.cells.length, row, cellIndex + 1);\n });\n }\n cmd._updateTableProperties(table, tableProp);\n var cellProp = data.cellProperties;\n if (selectedCells[0]) {\n dom.attr(selectedCells[0], { id: cellProp.id || null });\n }\n (cellProp.selectAllCells ? $(tableRows).children() : $(selectedCells)).each(function (i, cell) {\n cmd._updateCellProperties(cell, cellProp);\n });\n cmd._updateCaption(table, tableProp);\n tableProp.cellsWithHeaders = tableProp.cellsWithHeaders || false;\n if (cmd.cellsWithHeadersAssociated(table) != tableProp.cellsWithHeaders) {\n cmd.associateCellsWithHeader(table, tableProp.cellsWithHeaders);\n }\n },\n _isHeadingRow: function (row) {\n return dom.is(row.parentNode, 'thead') || dom.is(row.cells[0], 'th');\n },\n associateCellsWithHeader: function (table, associate) {\n var timestamp = new Date().getTime();\n var ids = [];\n var columns = table.rows[0].cells.length;\n var index, nextRow, isDataRow;\n var generateIds = function () {\n for (var i = 0; i < columns; i++) {\n ids[i] = 'table' + ++timestamp;\n }\n };\n var modifySellsIds = function (c, cell) {\n $(cell)[associate ? 'attr' : 'removeAttr']('id', ids[c]);\n };\n var modifyCellsHeadings = function (c, cell) {\n $(cell)[associate ? 'attr' : 'removeAttr']('headers', ids[c]);\n };\n var isHeadingRow = this._isHeadingRow;\n $(table.rows).each(function (r, row) {\n if (isHeadingRow(row)) {\n index = r;\n nextRow = table.rows[++index];\n isDataRow = nextRow && !isHeadingRow(nextRow);\n if (isDataRow) {\n generateIds();\n $(row.cells).each(modifySellsIds);\n }\n while (isDataRow) {\n $(nextRow.cells).each(modifyCellsHeadings);\n nextRow = table.rows[++index];\n isDataRow = nextRow && !isHeadingRow(nextRow);\n }\n }\n });\n },\n cellsWithHeadersAssociated: function (table) {\n var cells = $(table.rows).children();\n var isHeadingRow = this._isHeadingRow;\n var headingIds = [];\n cells.each(function (c, cell) {\n if (cell.id && isHeadingRow(cell.parentNode)) {\n headingIds.push(cell.id);\n }\n });\n var associatedCells = cells.filter(function (c, cell) {\n var headersAttr = cell.getAttribute('headers');\n return headersAttr && !isHeadingRow(cell.parentNode) && $.inArray(headersAttr, headingIds) > -1;\n });\n return !!associatedCells.length;\n },\n _insertCells: function (count, row, index) {\n index = isNaN(index) ? -1 : index;\n for (var i = 0, cell; i < count; i++) {\n cell = row.insertCell(index);\n cell.innerHTML = ' ';\n }\n },\n _deleteTableRows: function (rows, count) {\n for (var i = 0, row, rowParent; i < count; i++) {\n row = rows.pop();\n rowParent = row.parentNode;\n rowParent.removeChild(row);\n if (!rowParent.rows.length) {\n dom.remove(rowParent);\n }\n }\n },\n createNewTable: function (data) {\n var cmd = this;\n var doc = cmd.editor.document;\n var tableProp = data.tableProperties;\n var cellProp = data.cellProperties;\n var cellPropToAll = cellProp.selectAllCells;\n var table = dom.create(doc, 'table');\n cmd._updateTableProperties(table, tableProp);\n cmd._updateCaption(table, tableProp);\n var tbody = table.createTBody();\n for (var r = 0, row; r < tableProp.rows; r++) {\n row = tbody.insertRow();\n for (var c = 0, cell; c < tableProp.columns; c++) {\n cell = row.insertCell();\n cell.innerHTML = ' ';\n if (r === 0 && c === 0 && cellProp.id) {\n cell.id = cellProp.id;\n }\n cmd._updateCellProperties(cell, cellPropToAll || r === 0 && c === 0 ? cellProp : {});\n }\n }\n if (tableProp.cellsWithHeaders) {\n cmd.associateCellsWithHeader(table, tableProp.cellsWithHeaders);\n }\n return table;\n },\n _updateTableProperties: function (table, data) {\n var style = this._getStylesData(data);\n dom.attr(table, {\n cellSpacing: data.cellSpacing || null,\n cellPadding: data.cellPadding || null,\n className: data.className || null,\n id: data.id || null,\n summary: data.summary || null,\n style: style || null\n });\n $(table).addClass('k-table');\n },\n _updateCellProperties: function (cell, data) {\n var style = this._getStylesData(data);\n style.padding = data.cellPadding || null;\n style.margin = data.cellMargin || null;\n dom.attr(cell, {\n style: style || null,\n className: data.className || null\n });\n },\n _updateCaption: function (table, data) {\n if (table.caption && !data.captionContent) {\n table.deleteCaption();\n } else if (data.captionContent) {\n var caption = table.createCaption();\n caption.innerHTML = data.captionContent;\n var alignment = this._getAlignmentData(data.captionAlignment);\n dom.attr(caption, {\n style: {\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign\n }\n });\n }\n },\n _getStylesData: function (data) {\n var alignment = this._getAlignmentData(data.alignment);\n var whiteSpace = 'wrapText' in data ? data.wrapText ? '' : 'nowrap' : null;\n return {\n width: data.width ? data.width + data.widthUnit : null,\n height: data.height ? data.height + data.heightUnit : null,\n textAlign: alignment.textAlign,\n verticalAlign: alignment.verticalAlign,\n backgroundColor: data.bgColor || '',\n borderWidth: data.borderWidth,\n borderStyle: data.borderStyle,\n borderColor: data.borderColor || '',\n borderCollapse: data.collapseBorders ? 'collapse' : null,\n whiteSpace: whiteSpace\n };\n },\n _getAlignmentData: function (alignment) {\n var textAlign = '';\n var verticalAlign = textAlign;\n if (alignment) {\n if (alignment.indexOf(' ') != -1) {\n var align = alignment.split(' ');\n textAlign = align[0];\n verticalAlign = align[1];\n } else {\n textAlign = alignment;\n }\n }\n return {\n textAlign: textAlign,\n verticalAlign: verticalAlign\n };\n },\n parseTable: function (table, selectedCells) {\n if (!table) {\n return {\n tableProperties: {},\n selectedCells: []\n };\n }\n var cmd = this;\n var tStyle = table.style;\n var rows = table.rows;\n var caption = table.caption;\n var captionClone = $(caption ? caption.cloneNode(true) : undefined);\n captionClone.find('.k-marker').remove();\n var cssClass = table.className;\n cssClass = cssClass.replace(/^k-table\\s|\\sk-table$/, '');\n cssClass = cssClass.replace(/\\sk-table\\s/, ' ');\n cssClass = cssClass.replace(/^k-table$/, '');\n var tableAlignment = cmd._getAlignment(table, true);\n var captionAlignment = caption ? cmd._getAlignment(caption) : undefined;\n var cellsWithHeaders = cmd.cellsWithHeadersAssociated(table);\n var tableJson = {\n tableProperties: {\n width: tStyle.width || table.width ? parseFloat(tStyle.width || table.width) : null,\n height: tStyle.height || table.height ? parseFloat(tStyle.height || table.height) : null,\n columns: rows[0] ? rows[0].children.length : 0,\n rows: rows.length,\n widthUnit: cmd._getUnit(tStyle.width),\n heightUnit: cmd._getUnit(tStyle.height),\n cellSpacing: table.cellSpacing,\n cellPadding: table.cellPadding,\n alignment: tableAlignment.textAlign,\n bgColor: tStyle.backgroundColor || table.bgColor,\n className: cssClass,\n id: table.id,\n borderWidth: tStyle.borderWidth || table.border,\n borderColor: tStyle.borderColor,\n borderStyle: tStyle.borderStyle || '',\n collapseBorders: !!tStyle.borderCollapse,\n summary: table.summary,\n captionContent: caption ? captionClone.html() : '',\n captionAlignment: caption && captionAlignment.textAlign ? captionAlignment.textAlign + ' ' + captionAlignment.verticalAlign : '',\n cellsWithHeaders: cellsWithHeaders\n },\n selectedCells: []\n };\n tableJson.rows = cmd.parseTableRows(rows, selectedCells, tableJson);\n return tableJson;\n },\n parseTableRows: function (rows, selectedCells, tableJson) {\n var cmd = this;\n var data = [], row, rowData, cells, cell, cellData;\n for (var i = 0; i < rows.length; i++) {\n row = rows[i];\n rowData = { cells: [] };\n cells = row.cells;\n data.push(rowData);\n for (var j = 0; j < cells.length; j++) {\n cell = cells[j];\n cellData = cmd.parseCell(cell);\n if ($.inArray(cell, selectedCells) != -1) {\n tableJson.selectedCells.push(cellData);\n }\n rowData.cells.push(cellData);\n }\n }\n return data;\n },\n parseCell: function (cell) {\n var cmd = this;\n var cStyle = cell.style;\n var alignment = cmd._getAlignment(cell);\n alignment = alignment.textAlign ? alignment.textAlign + ' ' + alignment.verticalAlign : '';\n var data = {\n width: cStyle.width || cell.width ? parseFloat(cStyle.width || cell.width) : null,\n height: cStyle.height || cell.height ? parseFloat(cStyle.height || cell.height) : null,\n widthUnit: cmd._getUnit(cStyle.width),\n heightUnit: cmd._getUnit(cStyle.height),\n cellMargin: cStyle.margin,\n cellPadding: cStyle.padding,\n alignment: alignment,\n bgColor: cStyle.backgroundColor || cell.bgColor,\n className: cell.className,\n id: cell.id,\n borderWidth: cStyle.borderWidth || cell.border,\n borderColor: cStyle.borderColor,\n borderStyle: cStyle.borderStyle,\n wrapText: cStyle.whiteSpace != 'nowrap'\n };\n return data;\n },\n _getAlignment: function (element, horizontalOnly) {\n var style = element.style;\n var hAlign = style.textAlign || element.align || '';\n if (horizontalOnly) {\n return { textAlign: hAlign };\n }\n var vAlign = style.verticalAlign || element.vAlign || '';\n if (hAlign && vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: vAlign\n };\n }\n if (!hAlign && vAlign) {\n return {\n textAlign: 'left',\n verticalAlign: vAlign\n };\n }\n if (hAlign && !vAlign) {\n return {\n textAlign: hAlign,\n verticalAlign: 'top'\n };\n }\n return {\n textAlign: '',\n verticalAlign: ''\n };\n },\n _getUnit: function (value) {\n var unit = (value || '').match(reUnit);\n return unit ? unit[0] : 'px';\n },\n _selectedTable: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return tableFormatFinder.findSuitable(nodes)[0];\n },\n _selectedCells: function (range) {\n var nodes = dom.filterBy(RangeUtils.nodes(range), dom.htmlIndentSpace, true);\n return cellsFormatFinder.findSuitable(nodes);\n }\n });\n var TableWizardTool = Editor.Tool.extend({\n command: function (options) {\n options.insertNewTable = this.options.insertNewTable;\n return new TableWizardCommand(options);\n }\n });\n var TableWizardEditTool = TableWizardTool.extend({\n update: function (ui, nodes) {\n var isFormatted = !tableFormatFinder.isFormatted(nodes);\n ui.toggleClass('k-state-disabled', isFormatted);\n }\n });\n kendo.ui.editor.TableWizardTool = TableWizardTool;\n kendo.ui.editor.TableWizardCommand = TableWizardCommand;\n registerTool('tableWizard', new TableWizardEditTool({\n command: TableWizardCommand,\n insertNewTable: false,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Table Wizard'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-dialog', [\n 'editor/table-wizard/table-wizard-command',\n 'kendo.tabstrip'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, numericTextBoxSettings = {\n format: '0',\n min: 0\n }, units = [\n 'px',\n 'em'\n ], borderStyles = [\n 'solid',\n 'dotted',\n 'dashed',\n 'double',\n 'groove',\n 'ridge',\n 'inset',\n 'outset',\n 'initial',\n 'inherit',\n 'none',\n 'hidden'\n ];\n var tableAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var cellAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-middle-left',\n value: 'left middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-center',\n value: 'center middle'\n },\n {\n className: 'k-icon k-i-table-align-middle-right',\n value: 'right middle'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var accessibilityAlignmentDropDownSettings = {\n dataSource: [\n {\n className: 'k-icon k-i-table-align-top-left',\n value: 'left top'\n },\n {\n className: 'k-icon k-i-table-align-top-center',\n value: 'center top'\n },\n {\n className: 'k-icon k-i-table-align-top-right',\n value: 'right top'\n },\n {\n className: 'k-icon k-i-table-align-bottom-left',\n value: 'left bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-center',\n value: 'center bottom'\n },\n {\n className: 'k-icon k-i-table-align-bottom-right',\n value: 'right bottom'\n },\n {\n className: 'k-icon k-i-align-remove',\n value: ''\n }\n ],\n dataTextField: 'className',\n dataValueField: 'value',\n template: '',\n valueTemplate: ''\n };\n var dialogTemplate = '
    ' + '
    ' + '
    ' + '
      ' + '
    • #= messages.tableTab #
    • ' + '
    • #= messages.cellTab #
    • ' + '
    • #= messages.accessibilityTab #
    • ' + '
    ' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
     
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
     
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
     
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '
    ';\n var TableWizardDialog = kendo.Class.extend({\n init: function (options) {\n this.options = options;\n },\n open: function () {\n var that = this, options = that.options, dialogOptions = options.dialogOptions, tableData = options.table, dialog, messages = options.messages, isIE = kendo.support.browser.msie;\n function close(e) {\n e.preventDefault();\n that.destroy();\n dialog.destroy();\n }\n function okHandler(e) {\n that.collectDialogValues(tableData);\n close(e);\n if (that.change) {\n that.change();\n }\n options.closeCallback(tableData);\n }\n function closeHandler(e) {\n close(e);\n options.closeCallback();\n }\n dialogOptions.close = closeHandler;\n dialogOptions.title = messages.tableWizard;\n dialogOptions.visible = options.visible;\n dialog = $(that._dialogTemplate(messages)).appendTo(document.body).kendoWindow(dialogOptions).closest('.k-window').toggleClass('k-rtl', options.isRtl).end().find('.k-dialog-ok').click(okHandler).end().find('.k-dialog-close').click(closeHandler).end().data('kendoWindow');\n var element = dialog.element;\n that._initTabStripComponent(element);\n that._initTableViewComponents(element, tableData);\n that._initCellViewComponents(element, tableData);\n that._initAccessibilityViewComponents(element, tableData);\n dialog.center();\n dialog.open();\n if (isIE) {\n var dialogHeight = element.closest('.k-window').height();\n element.css('max-height', dialogHeight);\n }\n },\n _initTabStripComponent: function (element) {\n var components = this.components = {};\n components.tabStrip = element.find('#k-table-wizard-tabs').kendoTabStrip({ animation: false }).data('kendoTabStrip');\n },\n collectDialogValues: function () {\n var that = this;\n var data = that.options.table;\n that._collectTableViewValues(data);\n that._collectCellViewValues(data);\n that._collectAccessibilityViewValues(data);\n },\n _collectTableViewValues: function (tableData) {\n var tableView = this.components.tableView;\n var tableProperties = tableData.tableProperties;\n tableProperties.width = tableView.width.value();\n tableProperties.widthUnit = tableView.widthUnit.value();\n tableProperties.height = tableView.height.value();\n tableProperties.columns = tableView.columns.value();\n tableProperties.rows = tableView.rows.value();\n tableProperties.heightUnit = tableView.heightUnit.value();\n tableProperties.cellSpacing = tableView.cellSpacing.value();\n tableProperties.cellPadding = tableView.cellPadding.value();\n tableProperties.alignment = tableView.alignment.value();\n tableProperties.bgColor = tableView.bgColor.value();\n tableProperties.className = tableView.className.value;\n tableProperties.id = tableView.id.value;\n tableProperties.borderWidth = tableView.borderWidth.value();\n tableProperties.borderColor = tableView.borderColor.value();\n tableProperties.borderStyle = tableView.borderStyle.value();\n tableProperties.collapseBorders = tableView.collapseBorders.checked;\n },\n _collectCellViewValues: function (table) {\n var cellData = table.cellProperties = {};\n var cellView = this.components.cellView;\n cellData.selectAllCells = cellView.selectAllCells.checked;\n cellData.width = cellView.width.value();\n cellData.widthUnit = cellView.widthUnit.value();\n cellData.height = cellView.height.value();\n cellData.heightUnit = cellView.heightUnit.value();\n cellData.cellMargin = cellView.cellMargin.value();\n cellData.cellPadding = cellView.cellPadding.value();\n cellData.alignment = cellView.alignment.value();\n cellData.bgColor = cellView.bgColor.value();\n cellData.className = cellView.className.value;\n cellData.id = cellView.id.value;\n cellData.borderWidth = cellView.borderWidth.value();\n cellData.borderColor = cellView.borderColor.value();\n cellData.borderStyle = cellView.borderStyle.value();\n cellData.wrapText = cellView.wrapText.checked;\n if (!cellData.width) {\n cellData.selectAllCells = true;\n cellData.width = 100 / table.tableProperties.columns;\n cellData.widthUnit = '%';\n }\n },\n _collectAccessibilityViewValues: function (table) {\n var tableProperties = table.tableProperties;\n var accessibilityView = this.components.accessibilityView;\n tableProperties.captionContent = accessibilityView.captionContent.value;\n tableProperties.captionAlignment = accessibilityView.captionAlignment.value();\n tableProperties.summary = accessibilityView.summary.value;\n tableProperties.cellsWithHeaders = accessibilityView.cellsWithHeaders.checked;\n },\n _addUnit: function (units, value) {\n if (value && $.inArray(value, units) == -1) {\n units.push(value);\n }\n },\n _initTableViewComponents: function (element, table) {\n var components = this.components;\n var tableView = components.tableView = {};\n var tableProperties = table.tableProperties = table.tableProperties || {};\n tableProperties.borderStyle = tableProperties.borderStyle || '';\n this._addUnit(units, tableProperties.widthUnit);\n this._addUnit(units, tableProperties.heightUnit);\n this._initNumericTextbox(element.find('#k-editor-table-width'), 'width', tableProperties, tableView);\n this._initNumericTextbox(element.find('#k-editor-table-height'), 'height', tableProperties, tableView);\n this._initNumericTextbox(element.find('#k-editor-table-columns'), 'columns', tableProperties, tableView, {\n min: 1,\n value: 4\n });\n this._initNumericTextbox(element.find('#k-editor-table-rows'), 'rows', tableProperties, tableView, {\n min: 1,\n value: 4\n });\n this._initDropDownList(element.find('#k-editor-table-width-type'), 'widthUnit', tableProperties, tableView, units);\n this._initDropDownList(element.find('#k-editor-table-height-type'), 'heightUnit', tableProperties, tableView, units);\n this._initNumericTextbox(element.find('#k-editor-table-cell-spacing'), 'cellSpacing', tableProperties, tableView);\n this._initNumericTextbox(element.find('#k-editor-table-cell-padding'), 'cellPadding', tableProperties, tableView);\n this._initTableAlignmentDropDown(element.find('#k-editor-table-alignment'), tableProperties);\n this._initColorPicker(element.find('#k-editor-table-bg'), 'bgColor', tableProperties, tableView);\n this._initInput(element.find('#k-editor-css-class'), 'className', tableProperties, tableView);\n this._initInput(element.find('#k-editor-id'), 'id', tableProperties, tableView);\n this._initNumericTextbox(element.find('#k-editor-border-width'), 'borderWidth', tableProperties, tableView);\n this._initColorPicker(element.find('#k-editor-border-color'), 'borderColor', tableProperties, tableView);\n this._initDropDownList(element.find('#k-editor-border-style'), 'borderStyle', tableProperties, tableView, borderStyles);\n this._initCheckbox(element.find('#k-editor-collapse-borders'), 'collapseBorders', tableProperties, tableView);\n },\n _initCellViewComponents: function (element, table) {\n var components = this.components;\n var cellView = components.cellView = {};\n table.selectedCells = table.selectedCells = table.selectedCells || [];\n var cellProperties = table.selectedCells[0] || {\n borderStyle: '',\n wrapText: true\n };\n this._addUnit(units, cellProperties.widthUnit);\n this._addUnit(units, cellProperties.heightUnit);\n this._initCheckbox(element.find('#k-editor-selectAllCells'), 'selectAllCells', table.tableProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-width'), 'width', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-height'), 'height', cellProperties, cellView);\n this._initDropDownList(element.find('#k-editor-cell-width-type'), 'widthUnit', cellProperties, cellView, units);\n this._initDropDownList(element.find('#k-editor-cell-height-type'), 'heightUnit', cellProperties, cellView, units);\n this._initNumericTextbox(element.find('#k-editor-table-cell-margin'), 'cellMargin', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-table-cells-padding'), 'cellPadding', cellProperties, cellView);\n this._initCellAlignmentDropDown(element.find('#k-editor-cell-alignment'), cellProperties);\n this._initColorPicker(element.find('#k-editor-cell-bg'), 'bgColor', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-css-class'), 'className', cellProperties, cellView);\n this._initInput(element.find('#k-editor-cell-id'), 'id', cellProperties, cellView);\n this._initNumericTextbox(element.find('#k-editor-cell-border-width'), 'borderWidth', cellProperties, cellView);\n this._initColorPicker(element.find('#k-editor-cell-border-color'), 'borderColor', cellProperties, cellView);\n this._initDropDownList(element.find('#k-editor-cell-border-style'), 'borderStyle', cellProperties, cellView, borderStyles);\n this._initCheckbox(element.find('#k-editor-wrap-text'), 'wrapText', cellProperties, cellView);\n },\n _initAccessibilityViewComponents: function (element, table) {\n var components = this.components;\n var accessibilityView = components.accessibilityView = {};\n var tableProperties = table.tableProperties;\n this._initInput(element.find('#k-editor-table-caption'), 'captionContent', tableProperties, accessibilityView);\n this._initAccessibilityAlignmentDropDown(element.find('#k-editor-accessibility-alignment'), tableProperties);\n this._initInput(element.find('#k-editor-accessibility-summary'), 'summary', tableProperties, accessibilityView);\n this._initCheckbox(element.find('#k-editor-cells-headers'), 'cellsWithHeaders', tableProperties, accessibilityView);\n },\n _initNumericTextbox: function (element, property, data, storage, settings) {\n var component = storage[property] = element.kendoNumericTextBox(settings ? $.extend({}, numericTextBoxSettings, settings) : numericTextBoxSettings).data('kendoNumericTextBox');\n if (property in data) {\n component.value(parseInt(data[property], 10));\n }\n },\n _initDropDownList: function (element, property, data, storage, dataSource) {\n var component = storage[property] = element.kendoDropDownList({ dataSource: dataSource }).data('kendoDropDownList');\n this._setComponentValue(component, data, property);\n },\n _initTableAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var tableView = this.components.tableView;\n var dataSource = tableAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeft;\n dataSource[1].tooltip = messages.alignCenter;\n dataSource[2].tooltip = messages.alignRight;\n dataSource[3].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, tableAlignmentDropDownSettings, 'alignment', data, tableView);\n },\n _initCellAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var cellView = this.components.cellView;\n var dataSource = cellAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftMiddle;\n dataSource[4].tooltip = messages.alignCenterMiddle;\n dataSource[5].tooltip = messages.alignRightMiddle;\n dataSource[6].tooltip = messages.alignLeftBottom;\n dataSource[7].tooltip = messages.alignCenterBottom;\n dataSource[8].tooltip = messages.alignRightBottom;\n dataSource[9].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, cellAlignmentDropDownSettings, 'alignment', data, cellView);\n },\n _initAccessibilityAlignmentDropDown: function (element, data) {\n var messages = this.options.messages;\n var accessibilityView = this.components.accessibilityView;\n var dataSource = accessibilityAlignmentDropDownSettings.dataSource;\n dataSource[0].tooltip = messages.alignLeftTop;\n dataSource[1].tooltip = messages.alignCenterTop;\n dataSource[2].tooltip = messages.alignRightTop;\n dataSource[3].tooltip = messages.alignLeftBottom;\n dataSource[4].tooltip = messages.alignCenterBottom;\n dataSource[5].tooltip = messages.alignRightBottom;\n dataSource[6].tooltip = messages.alignRemove;\n this._initAlignmentDropDown(element, accessibilityAlignmentDropDownSettings, 'captionAlignment', data, accessibilityView);\n },\n _initAlignmentDropDown: function (element, settings, name, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n component.list.addClass('k-align').css('width', '110px');\n this._setComponentValue(component, data, name);\n },\n _setComponentValue: function (component, data, property) {\n if (property in data) {\n component.value(data[property]);\n }\n },\n _initColorPicker: function (element, property, data, storage) {\n var component = storage[property] = element.kendoColorPicker({\n buttons: false,\n clearButton: true\n }).data('kendoColorPicker');\n if (data[property]) {\n component.value(data[property]);\n }\n },\n _initInput: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.value = data[property];\n }\n },\n _initCheckbox: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.checked = data[property];\n }\n },\n destroy: function () {\n this._destroyComponents(this.components.tableView);\n this._destroyComponents(this.components.cellView);\n this._destroyComponents(this.components.accessibilityView);\n this._destroyComponents(this.components);\n delete this.components;\n },\n _destroyComponents: function (components) {\n for (var widget in components) {\n if (components[widget].destroy) {\n components[widget].destroy();\n }\n delete components[widget];\n }\n },\n _dialogTemplate: function (messages) {\n return kendo.template(dialogTemplate)({ messages: messages });\n }\n });\n kendo.ui.editor.TableWizardDialog = TableWizardDialog;\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.editor', [\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.resizable',\n 'kendo.window',\n 'kendo.colorpicker',\n 'kendo.imagebrowser',\n 'kendo.numerictextbox',\n 'util/undoredostack',\n 'editor/main',\n 'editor/dom',\n 'editor/serializer',\n 'editor/range',\n 'editor/command',\n 'editor/components',\n 'editor/toolbar',\n 'editor/immutables',\n 'editor/plugins/viewhtml',\n 'editor/plugins/link',\n 'editor/plugins/lists',\n 'editor/plugins/formatting',\n 'editor/plugins/image',\n 'editor/plugins/import',\n 'editor/plugins/insert',\n 'editor/plugins/export',\n 'editor/plugins/indent',\n 'editor/plugins/linebreak',\n 'editor/plugins/format',\n 'editor/plugins/inlineformat',\n 'editor/plugins/formatblock',\n 'editor/plugins/file',\n 'editor/plugins/tables',\n 'editor/plugins/clipboard',\n 'editor/plugins/keyboard',\n 'editor/plugins/exportpdf',\n 'editor/plugins/print',\n 'editor/resizing/column-resizing',\n 'editor/resizing/row-resizing',\n 'editor/resizing/table-resizing',\n 'editor/resizing/table-resize-handle',\n 'editor/table-wizard/table-wizard-command',\n 'editor/table-wizard/table-wizard-dialog'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'editor',\n name: 'Editor',\n category: 'web',\n description: 'Rich text editor component',\n depends: [\n 'combobox',\n 'dropdownlist',\n 'window',\n 'colorpicker'\n ],\n features: [\n {\n id: 'editor-imagebrowser',\n name: 'Image Browser',\n description: 'Support for uploading and inserting images',\n depends: ['imagebrowser']\n },\n {\n id: 'editor-resizable',\n name: 'Resize handle',\n description: 'Support for resizing the content area via a resize handle',\n depends: ['resizable']\n },\n {\n id: 'editor-tablewizard',\n name: 'Table wizard dialog',\n description: 'Support for table properties configuration',\n depends: [\n 'tabstrip',\n 'button',\n 'numerictextbox'\n ]\n },\n {\n id: 'editor-pdf-export',\n name: 'PDF export',\n description: 'Export Editor content as PDF',\n depends: [\n 'pdf',\n 'drawing'\n ]\n }\n ]\n };\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}