{"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","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","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","body","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","click","target","createRange","selectNode","cut copy paste drop dragover","focusin","hasAttribute","show","focusout","toolbarContainerElement","active","get","contains","is","focused","removeClass","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","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","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","each","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","toggleClass","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","origin","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","picker","sender","_popup","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","placeholder","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","_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","scrollHeight","clientHeight","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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","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 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.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 = this.extractListLevels(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 (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 (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', ['editor/table-wizard/table-wizard-command'], 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.tabstrip',\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}));"]}