{"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","emptyElementContent","emptyTableCellContent","window","Class","Widget","ui","os","support","mobileOS","browser","proxy","keys","SELECT","SELECT_OVERLAY_SELECTOR","PLACEHOLDER_CLASS","PLACEHOLDER_TAG_ID","REFRESH_INTERVAL","DEFAULT_LANGUAGE","ToolTemplate","getHtml","template","useWithBlock","EditorUtils","editorWrapperTemplate","buttonTemplate","iconTextButtonTemplate","tableWizardButtonTemplate","colorPickerTemplate","comboBoxTemplate","dropDownListTemplate","separatorTemplate","overflowAnchorTemplate","formatByName","name","format","i","inArray","tags","getToolCssClass","toolCssClassNames","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","insertUnorderedList","insertOrderedList","insertUpperRomanList","insertLowerRomanList","import","indent","outdent","createLink","unlink","insertImage","insertFile","viewHtml","foreColor","backColor","createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn","mergeCellsHorizontally","mergeCellsVertically","splitCellHorizontally","splitCellVertically","tableWizard","tableWizardInsert","tableAlignLeft","tableAlignCenter","tableAlignRight","cleanFormatting","copyFormat","applyFormat","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","print","headerRows","headerColumns","tableSummaryPlaceholder","associateNone","associateScope","associateIds","borderNone","supportedBrowser","ios","flatVersion","document","documentElement","contentEditable","toolGroups","basic","lists","indenting","formatPainter","links","tables","element","value","toolbarContainer","toolbarOptions","type","domElement","deserializedRoot","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","defaultValue","trim","Serializer","htmlToDom","deserialization","getAllComments","innerHTML","mousedown","_endTyping","mouseup","e","_mouseup","_initializeImmutables","resize","notify","setOptions","_initializePlaceholder","_togglePlaceholder","show","body","$body","placeholder","toggleClass","isTypingInProgress","endTyping","saveSelection","_selectionChange","_selectionStarted","draggableElement","resizableWidget","resizable","isResizable","isPlainObject","insertAfter","kendoResizable","start","currentTarget","initialSize","append","delta","y","initialDelta","newSize","min","max","Infinity","Math","resizeend","remove","getKendoResizable","draggable","ignore","_initializeElementResizing","ElementResizingFactory","current","create","_showElementResizeHandlesProxy","_showElementResizeHandles","bind","_destroyElementResizing","elementResizing","destroy","unbind","parentNode","showResizeHandles","_initializeColumnResizing","ColumnResizing","_destroyColumnResizing","columnResizing","_initializeRowResizing","RowResizing","_destroyRowResizing","rowResizing","w","h","editorWrap","editArea","appendTo","css","_createContentElement","stylesheets","iframe","wnd","doc","specifiedDomain","domain","domainScript","src","lang","hide","title","frameBorder","tabIndex","location","hostname","contentWindow","contentDocument","one","decorateFrom","getElementsByTagName","getAttribute","open","write","isRtl","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","appendChild","setInterval","clearInterval","_mousedown","execCommand","touch","keydown","_activeElement","focus","mouseover dragenter","htmlHeight","parentElement","target","nodeName","_cachedHeight","mouseout dragleave drop contextmenu","restoreHeight","range","left","container","offset","direction","next","nextChar","keyCode","BACKSPACE","DELETE","F10","preventPopupHide","preventDefault","LEFT","RIGHT","nodeType","nodeValue","setStart","collapse","selectRange","toolFromShortcut","keyPressCommand","test","exec","_runPostContentKeyCommands","clearTimeout","keypress","keyup","selectionCodes","TAB","PAGEUP","PAGEDOWN","END","HOME","UP","DOWN","INSERT","ctrlKey","altKey","shiftKey","_refreshInterval","click","createRange","selectNode","cut copy paste drop dragover","focusin","hasAttribute","focusout","toolbarContainerElement","active","get","contains","focused","removeClass","$head","head","immutables","Immutables","parents","stopPropagation","gecko","which","is","tagName","o","cmd","toolsFromShortcut","changesContent","refresh","_destroyResizings","custom","serialization","entities","semantic","scripts","pasteCleanup","all","keepNewLines","msAllFormatting","msConvertLists","msTags","none","span","dialogOptions","modal","animation","imageBrowser","fileBrowser","text","concat","_focusOutside","_destroyUploadWidget","dispose","msie","tempInput","blur","_uploadWidget","state","textNodes","finder","RangeUtils","collapsed","startContainer","getFormat","isFormatted","html","currentHtml","domToXhtml","selectionRestorePoint","refreshTools","commonAncestorContainer","_focusBody","scrollTop","activeElement","scrollHeight","clientHeight","restoreSelection","toRange","encode","getSelection","SelectionUtils","selectionFromDocument","selection","removeAllRanges","addRange","rangeCount","getRangeAt","endContainer","startOffset","endOffset","_containsRange","isAncestorOrSelf","_deleteSavedRange","_range","selectedHtml","cloneContents","paste","InsertHtmlCommand","params","prevented","Error","toolById","async","change","managesUndoRedo","key","ctrl","plugin","initialize","unselectable","aria-label","commandArguments","noop","edge","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","version","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","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","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","closestBy","condition","rootCondition","ofType","changeTag","skipAttributes","attribute","specified","cssText","editableParent","wrap","unwrap","createEmptyNode","removeAttribute","mergeAttributes","origin","traverseCss","each","unstyle","inlineStyle","getEffectiveBackground","backgroundStyle","innerText","classNames","classes","commonAncestor","ancestors","first","j","count","arguments","paths","minPathLength","output","reverse","closestSplittableParent","editableParents","editableAncestor","apply","closestEditable","types","editable","closestEditableOfType","filter","invert","filterFn","filterBy","match","ensureTrailingBreaks","elements","ensureTrailingBreak","removeTrailingBreak","br","reMapTableColumns","table","colAttr","_mapColIndices","clearTableMappings","removeAttr","rowIndex","cells","colIndex","cellIndex","cell","registeredColumns","rowSpan","_mapColspan","colSpan","ci","ri","associateWithIds","theadRows","numberOfTheadRows","tableRows","numberOfTableRows","theadMatrix","tbodyMatrix","tHead","_getNumberOfHeaderRows","_generateIdsForColumns","_generateIdsForRows","_assignIds","row","col","colspan","rowspan","k","l","timestamp","Date","getTime","headers","pushHeaderId","forEach","_onlyUnique","_getNumberOfColumns","currentIndex","numberOfCols","_getNumberOfHeaderColumns","numberOfHeaderRows","thead","number","self","supportsLeadingWhitespace","isFunction","TD","fontSizeMappings","quoteRe","brRe","pixelRe","emptyPRe","cssDeclaration","sizzleAttr","scriptAttr","onerrorRe","bomSpan","div","toEditableHtml","_toEditableImmutables","immutable","last","prependTo","_fillEmptyElements","p","children","_removeSystemElements","_resetOrderedLists","ol","originalStart","ols","_preventScriptExecution","attributesToRemove","deserialize","semanticFilter","mapStart","tag","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","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","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","deletingKey","updateToolOptions","_initOptions","_toHtml","serializationType","isDeleting","shouldCancelEvent","_cancelDeleting","_cancelTyping","typingInProgress","isTypingKey","cancelDeleting","closestSelectionLi","closestImmutableLi","backspace","del","nextImmutable","_removeImmutable","forwards","commonContainer","_nextNode","startRestorePoint","finishUpdate","endRestorePoint","GenericCommand","Command","restorePoint","formatter","lockRange","releaseRange","point","createDialog","kendoWindow","toggle","outerWidth","_outerWidth","outerHeight","_outerHeight","OVERFLOWANCHOR","focusable","toolNamesByCssClass","k-i-sup-script","k-i-sub-script","k-i-align-left","k-i-align-center","k-i-align-right","k-i-align-justify","k-i-list-unordered","k-i-list-ordered","k-i-list-roman-upper","k-i-list-roman-lower","k-i-import","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-table-position-left","k-i-table-position-center","k-i-table-position-right","k-i-clear-css","k-i-cells-merge-horizontally","k-i-cells-merge-vertically","k-i-cell-split-horizontally","k-i-cell-split-vertically","k-i-copy-format","k-i-apply-format","OverflowAnchorTool","overflowPopup","_initPopup","_resizeHandler","onResize","groups","tablesInsert","tablesAddDelete","tablesMerge","tablesPosition","advanced","fonts","colors","overflowFlaseTools","prepend","dragHandle","effects","minHeight","visible","autoFocus","actions","dragend","_moved","_toggleOverflowStyles","_initOverflowPopup","popupTemplate","kendoPopup","anchor","copyAnchorStyles","activate","focusOverflowPopup","toolGroupFor","isCustomTool","_editor","expandTools","render","combobox","dropDown","isOpened","stopImmediatePropagation","_attachEvents","inheritText","_toolName","description","tooltip","_appendShortcutSequence","editorElement","editorOffset","editorOptions","_getWindowWidth","_overlaps","box","toolbarWrapper","toolbarWrapperOffset","toolbarWrapperLeft","toolbarWrapperTop","boxOffset","boxOffsetLeft","boxOffsetTop","TABINDEX","localizedText","res","shift","alt","_nativeTools","currentTool","nativeTools","endGroup","group","groupPosition","startGroup","toolElement","groupName","newGroupName","toolConfig","not","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","groupWidth","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","fontAttr","getInlineCssValue","attributeValue","pair","cssIndex","propertyAndValue","getFormatInner","parentsUntil","addBack","toArray","GreedyInlineFormatter","action","InlineFormatTool","DelayedExecutionTool","FontTool","cssAttr","domAttr","initOptions","dataTextField","dataValueField","highlightFirst","newRange","ColorTool","palette","_widget","ColorPicker","toolIcon","storedRange","_inputFocused","picker","sender","_popup","_value","toCssRgba","fontWeight","fontStyle","lastIndexOfRegExp","str","indexOfRegExp","r","HTTP_PROTOCOL","protocolRegExp","endLinkCharsRegExp","LinkFormatFinder","LinkFormatter","markers","ref","UnlinkCommand","LinkCommand","url","_dialogTemplate","img","_initialText","_close","_apply","_keydown","linkUrl","_dialog","textInput","AutoLinkCommand","linkMarker","linkRange","detectedLink","detectLink","_ensureWebProtocol","traverser","detection","startNode","LeftDomTextTraverser","cancelAtNode","DomTextLinkDetection","hasProtocol","_hasProtocolPrefix","_prefixWithWebProtocol","UnlinkTool","DomPos","puntuationOptions","puntuationTraverser","_detectEnd","blank","clone","_detectStart","_isLinkDetected","extendOptions","RightDomTextTraverser","_skipStartPuntuation","ii","DomTextTraverser","cancel","_traverse","edgeNode","subText","splitIndex","listElements","BlockFormatFinder","candidate","suitable","_resolveListsItems","until","ImmutablesNS","BlockFormatter","ancestor","images","imageFormat","imageAttributes","nonImages","_handleImmutables","applyFormatting","immutableFormat","namedFormat","GreedyBlockFormatter","immutalbeParent","blockFormatter","formatTag","ListFormatter","BlockFormatTool","textAlign","float","marginLeft","marginRight","listStylePosition","ListFormatFinder","altAttr","matchesType","isList","unwrapTag","li","isImmutable","containsAny","_parentLists","merge","breakable","findSuitableNode","applyOnSection","section","pushAncestor","listStyleType","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","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","displayName","unshift","valueTemplate","_exec","indentDirection","IndentFormatter","targets","parentList","siblingList","nestedList","targetIndex","mapImmutables","getListTypeAttr","styleType","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","kbrParent","KEDITORFILEURL","KEDITORFILETEXT","KEDITORFILETITLE","FileCommand","file","FileBrowser","_fileBrowser","ACTIVESTATE","SELECTEDSTATE","SCOPE","ROW","COL","ROWGROUP","COLGROUP","COLSPAN","ROWSPAN","TABLE","THEAD","TBODY","TR","TH","getTouches","columnTemplate","tableFormatFinder","TableCommand","skipCleaners","_tableHtml","columnHtml","rowHeight","Array","insertedTable","PopupTool","twTool","_open","_activate","_toggle","TableWizardTool","TableWizardCommand","insertNewTable","InsertTableTool","cols","tableFromLocation","floor","clientY","cellHeight","clientX","scrollLeft","cellWidth","firstCell","lastCell","getOffset","offsetWidth","autoApplyNS","_setTableSize","_valid","status","selectedRows","selectedColumns","changed","tableSize","TableModificationCommand","_clearColIndexAttr","_findRowSpanCell","_resetElementResizing","_findNextTdInRow","td","lastTd","prop","_adjustColgroups","colgroup","colElements","colgroupElements","numberOfCells","_associateHeaderIds","InsertRowCommand","cellCount","newRow","rowSpanIndex","createdCell","_appendCell","newCell","InsertColumnCommand","columnIndex","_processForColSpan","_resizeCells","selectedCell","colSpanEffect","parsedWidth","unit","calculatedWidth","parseFloat","DeleteRowCommand","rowParent","_focusElement","_handleRowSpanCells","adjacentCell","nextRow","firstRow","before","_reduceRowSpan","rowSpanValue","DeleteColumnCommand","columnCount","_handleColSpanCells","after","_reduceColSpan","colSpanValue","MergeCellsHorizontallyCommand","nextTd","_getColspan","MergeCellsVerticallyCommand","tr","targetRow","bottomTd","_getRowspan","SplitCellCommand","emptyTd","_splitCellHorizontally","_splitCellVertically","_getRowspanValue","_getColspanValue","tdToAdd","colSpanResult","rowSpanResult","TableModificationTool","commandsMap","insert","delete","column","TableFormatCommand","_showResizeHandles","TableFormatTool","isTable","align","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","_startModification","_inProgress","_endModification","modificationInfo","_contentModification","_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","_checkForBullet","_getHtmlNoBullet","bulletRgx","extractListLevels","msoListRegExp","level","_createList","rootMargin","rootIndex","lastRootLi","isLastRootLi","rootList","listIndex","levelType","blockChildren","lastMargin","levels","acceptedNameTags","isParentTable","removeAttributes","removeAttributeNode","createColGroup","convertHeaders","boldedCells","removeParagraphs","paragraphs","removeDefaultColors","spans","removeTextNodes","trs","currentNode","longestRow","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","tbody","cleaner","tdCleaner","cellText","getSibling","PREVIOUS_SIBLING","tableCells","tableCellsWrappers","tableElements","inTable","RemoveTableContent","cellsTypes","startCell","endCell","_removeContent","getNext","removeTableContent","backspaceHandler","evt","Event","isDefaultPrevented","deleteSelection","startTyping","_removeBomSpan","textContent","_addCaret","chrome","_restoreCaret","_handleDelete","caretPlaceholder","_merge","_cleanBomBefore","_handleBackspace","startAtLi","liIndex","startAtNonFirstLi","rangeStartNode","previousNode","isEndOfLink","_handleSelection","parentElementOrNode","_surroundFullyContent","_surroundFullySelectedAnchor","toLocaleLowerCase","_join","startImmutable","endImmutable","_moveMarker","_root","dest","_mergeWithTextNode","appendedNode","_isCaret","systemCommandIsInProgress","createUndoCommand","isModifierKey","isSystem","_toSelectableImmutables","_selectEditorBody","isCharacter","String","fromCharCode","modifier","_getShortcutModifier","navigator","platform","mac","toUpperCase","metaKey","matchesKey","found","matchKey","toolKey","isArray","onEndTyping","stopTyping","force","timeout","what","ExportPdfCommand","PrintCommand","CopyFormatCommand","inlineStyles","blockStyles","collectStyles","rangeNodes","populateStyles","destination","styleValue","styleKey","attributeKey","styles","nodeStyles","ApplyFormatCommand","removeEmptyElementsFromRange","cleanInlineParents","applyBlockStyles","applyInlineStyles","isEmptyInline","emptyElements","blockParent","outerWrapper","previousNodes","nextNodes","prevWrapper","nextWrapper","listItems","currentStyle","createdNode","topNode","CopyFormatTool","ApplyFormatTool","lowerBound","upperBound","getScrollBarWidth","calculatePercentageRatio","total","inPercentages","STRING","REGEX_NUMBER_IN_PERCENTAGES","inPixels","REGEX_NUMBER_IN_PIXELS","toPercentages","PERCENTAGE","toPixels","PIXEL","global","math","ResizingUtils","KEY_DOWN","MOUSE_DOWN","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_MOVE","MOUSE_UP","COMMA","DOT","LAST_CHILD","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","COLATTR","WIDTH","handleWidth","borderOffset","mousePosition","tableInnerElement","tBodies","scrollTopOffset","scrollLeftOffset","columnWidthOffset","scrollBarWidth","columnOffsetLeft","innerElementOffsetTop","tableHead","tableBody","fullHeight","handleOffset","columnWidth","columnLeftOffset","adjacentColumnWidth","resizeHandleOffsetLeft","newWidth","initialAdjacentColumnWidth","initialColumnWidth","nextColumn","rtlModifier","initialDeltaX","_setTableComputedWidth","_setColumnsComputedWidth","_resizeColumn","_resizeTopAndBottomColumns","_resizeAdjacentColumns","innerElementWidth","currentColumnsWidths","topAndBottomColumns","innerTableElement","deltaWidth","adjacentColumns","_resizeAdjacentColumn","adjacentColumn","RESIZE_HANDLE_MARKER_WRAPPER_CLASS","HEIGHT","handleHeight","rowOffsetLeft","rowOffsetTop","topInnerTableElement","$row","tableTopOffset","resizeHandleOffsetTop","currentRowHeight","initialTableHeight","tableHeadHeight","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","ElementResizeHandle","_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","rootLeft","adjustment","deltas","xAxisAdjustment","yAxisAdjustment","isUndefined","RESIZE_HANDLE_WRAPPER_CLASS","TABLE_CLASS","ELEMENT_RESIZING_CLASS","DROP","COLUMN","IMG","ELEMENT_TYPES","ElementResizing","handles","_destroyResizeHandles","appendHandlesTo","minWidth","_resizeWidth","_resizeHeight","_getMaxDimensionValue","dimension","dimensionLowercase","parentDimension","parentScrollOffset","_initResizeHandles","_bindToResizeHandlesEvents","_onResizeHandleDragStart","_initialElementHeight","_initialElementWidth","_onResizeHandleDrag","_onResizeHandleDragEnd","TableResizing","_onResizeHandleMouseOver","_onResizeHandleMouseOut","_hasRowsInPixels","ratioValue","ratioTotalValue","constrainedWidth","styleWidth","currentWidth","parentWidth","maxWidth","_setColumnsWidth","constrainedHeight","styleHeight","currentHeight","parentHeight","maxHeight","hasRowsInPixels","isWidthInPercentages","parentColumn","columnsLength","ImageResizing","_onResizeHandleDragVertical","_onResizeHandleDragHorizontal","_onResizeHandleDragLocked","_getDeltas","initialWidth","initialHeight","Number","MAX_SAFE_INTEGER","factory","hasImg","eventTarget","eventCurrentTarget","isResizeHandleOrChild","tableResizing","cellsFormatFinder","reUnit","COL_INDEX","HEADERS","selectedTable","_sourceTable","_selectedTable","selectedCells","_selectedTableCells","_selectedCells","closeCallback","onDialogClose","parseTable","TableWizardDialog","insertTable","createNewTable","updateTable","_ensureFocusableAfterTable","lastSelectedRow","cellProp","tableProp","tableProperties","_lastInCollection","_deleteTableRows","_addRows","_updateColumns","_updateTableProperties","cellProperties","_updateCellProperties","_updateCaption","_updateHeadersWithThead","_updateHeadersNoThead","_updateHeaderAssociates","_isHeadingRow","_isHeadingCell","cellsWithHeadersAssociated","associatedCells","headingIds","checkHeader","header","headersArray","headersAttr","some","_insertCells","insertCell","createTHead","_createTableRows","createTBody","cellsWithHeaders","_addScopes","initialIndex","cellPropToAll","insertRow","cellsLength","newRowsCount","firstRowLastCell","numberOfColumns","lastCurrentCell","rowColumns","deleteCell","_getStylesData","captionContent","deleteCaption","createCaption","_getAlignmentData","captionAlignment","verticalAlign","_swapToHeaderCells","deleteTHead","_removeScopes","_removeAssociates","headerCols","tds","swapCell","widthUnit","heightUnit","backgroundColor","bgColor","borderColor","borderCollapse","tStyle","captionClone","tableAlignment","numberOfHeaderColumns","tableJson","_getAlignment","_getUnit","parseTableRows","rowData","cellData","parseCell","cStyle","horizontalOnly","vAlign","hAlign","collection","TableWizardEditTool","numericTextBoxSettings","borderStyles","DEFAULT_NUMBER_OF_COLS_AND_ROWS","tableAlignmentDropDownSettings","cellAlignmentDropDownSettings","accessibilityAlignmentDropDownSettings","dialogTemplate","okHandler","collectDialogValues","tableData","closeHandler","_initTabStripComponent","_initTableViewComponents","_initCellViewComponents","_initAccessibilityViewComponents","components","tabStrip","kendoTabStrip","_collectTableViewValues","_collectCellViewValues","_collectAccessibilityViewValues","tableView","checked","cellView","accessibilityView","_addUnit","onColumnsNumberChange","onRowsNumberChange","headerColumnsNumeric","currentNumberOfColumnsHeaders","headerRowsNumeric","currentNumberOfRowHeaders","numberOfRows","_initNumericTextbox","_initDropDownList","_initTableAlignmentDropDown","_initColorPicker","_initInput","_initBorderStyleDropDown","_initCheckbox","_initCellAlignmentDropDown","_initAccessibilityAlignmentDropDown","_initAssociationDropDown","valuePrimitive","storage","settings","component","kendoNumericTextBox","kendoDropDownList","_setComponentValue","optionLabel","_initAlignmentDropDown","kendoColorPicker","clearButton","_destroyComponents"],"mappings":"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,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,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","file":"kendo.editor.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/undoredostack', ['kendo.core'], f);\n}(function () {\n (function (kendo) {\n var UndoRedoStack = kendo.Observable.extend({\n init: function (options) {\n kendo.Observable.fn.init.call(this, options);\n this.clear();\n },\n events: [\n 'undo',\n 'redo'\n ],\n push: function (command) {\n this.stack = this.stack.slice(0, this.currentCommandIndex + 1);\n this.currentCommandIndex = this.stack.push(command) - 1;\n },\n undo: function () {\n if (this.canUndo()) {\n var command = this.stack[this.currentCommandIndex--];\n command.undo();\n this.trigger('undo', { command: command });\n }\n },\n redo: function () {\n if (this.canRedo()) {\n var command = this.stack[++this.currentCommandIndex];\n command.redo();\n this.trigger('redo', { command: command });\n }\n },\n clear: function () {\n this.stack = [];\n this.currentCommandIndex = -1;\n },\n canUndo: function () {\n return this.currentCommandIndex >= 0;\n },\n canRedo: function () {\n return this.currentCommandIndex != this.stack.length - 1;\n }\n });\n kendo.deepExtend(kendo, { util: { UndoRedoStack: UndoRedoStack } });\n }(kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/main', [\n 'util/undoredostack',\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.window',\n 'kendo.colorpicker'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, Widget = kendo.ui.Widget, os = kendo.support.mobileOS, browser = kendo.support.browser, extend = $.extend, proxy = $.proxy, deepExtend = kendo.deepExtend, keys = kendo.keys;\n var SELECT = 'select';\n var SELECT_OVERLAY_SELECTOR = 'select.k-select-overlay';\n var PLACEHOLDER_CLASS = 'k-placeholder';\n var PLACEHOLDER_TAG_ID = 'placeholder';\n var REFRESH_INTERVAL = 200;\n var DEFAULT_LANGUAGE = 'en';\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-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n iconTextButtonTemplate: '# var iconCssClass = \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n tableWizardButtonTemplate: '# var iconCssClass = \"k-icon k-i-\" + kendo.toHyphens(data.cssClass.replace(\"k-\", \"\"));#' + '# var dataPopup = data.popup ? \"data-popup\" : \"\";#' + '',\n colorPickerTemplate: '',\n comboBoxTemplate: '',\n dropDownListTemplate: '',\n separatorTemplate: '',\n overflowAnchorTemplate: '',\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 insertUpperRomanList: 'list-roman-upper',\n insertLowerRomanList: 'list-roman-lower',\n 'import': 'import',\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 mergeCellsHorizontally: 'cells-merge-horizontally',\n mergeCellsVertically: 'cells-merge-vertically',\n splitCellHorizontally: 'cell-split-horizontally',\n splitCellVertically: 'cell-split-vertically',\n tableWizard: 'table-properties',\n tableWizardInsert: 'table-wizard',\n tableAlignLeft: 'table-position-left',\n tableAlignCenter: 'table-position-center',\n tableAlignRight: 'table-position-right',\n cleanFormatting: 'clear-css',\n copyFormat: 'copy-format',\n applyFormat: 'apply-format'\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 mergeCellsHorizontally: 'Merge cells horizontally',\n mergeCellsVertically: 'Merge cells vertically',\n splitCellHorizontally: 'Split cells horizontally',\n splitCellVertically: 'Split cells vertically',\n tableAlignLeft: 'Table Align Left',\n tableAlignCenter: 'Table Align Center',\n tableAlignRight: 'Table Align Right',\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 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 print: 'Print',\n headerRows: 'Header Rows',\n headerColumns: 'Header Cols',\n tableSummaryPlaceholder: 'Summary attribute is not HTML5 compatible.',\n associateNone: 'None',\n associateScope: 'Associate using \\'scope\\' attribute',\n associateIds: 'Associate using Ids',\n copyFormat: 'Copy format',\n applyFormat: 'Apply format',\n borderNone: 'None'\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 formatPainter: [\n 'copyFormat',\n 'applyFormat'\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 'mergeCellsHorizontally',\n 'mergeCellsVertically',\n 'splitCellHorizontally',\n 'splitCellVertically',\n 'tableAlignLeft',\n 'tableAlignCenter',\n 'tableAlignRight'\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' || range.collapsed && dom.name(rangeEnd) == 'thead') {\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) && !focusedTable.parents('table').length) {\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;\n if (p.childNodes.length == 1) {\n content = p.firstChild.nodeType === dom.nodeTypes.TEXT_NODE ? dom.innerText(p) : p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, '');\n content = this._checkForBullet(content);\n } else {\n content = this._getHtmlNoBullet(p);\n }\n dom.remove(p);\n return dom.create(document, 'li', { innerHTML: content });\n },\n _checkForBullet: function (html) {\n var p = dom.create(document, 'p', { innerHTML: html });\n var bulletRgx = /^\\s*\\w+[\\.\\)]\\s+/;\n if (bulletRgx.test(p.innerText)) {\n return this._getHtmlNoBullet(p);\n }\n return html;\n },\n _getHtmlNoBullet: function (element) {\n var content, name = dom.name(element);\n dom.remove(element.firstChild);\n if (element.firstChild.nodeType == 3) {\n if (/^[ivxlcdm]+\\.$/i.test(element.firstChild.nodeValue)) {\n dom.remove(element.firstChild);\n }\n }\n if (/^( |\\s)+$/i.test(element.firstChild.innerHTML)) {\n dom.remove(element.firstChild);\n }\n if (name != 'p') {\n content = '<' + name + '>' + element.innerHTML + '';\n } else {\n content = element.innerHTML;\n }\n return 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 ], isParentTable = false;\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 isParentTable = !!$(p).parents('table').length;\n if (isParentTable) {\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 removeTextNodes: function (trs) {\n var i, j, childNodes, currentNode, row;\n for (i = 0; i < trs.length; i++) {\n row = trs[i];\n childNodes = row.childNodes;\n for (j = 0; j < childNodes.length; j++) {\n currentNode = childNodes[j];\n if (currentNode.nodeType === dom.nodeTypes.TEXT_NODE) {\n row.removeChild(currentNode);\n }\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 that.removeTextNodes(tables.eq(i).find('tr'));\n }\n },\n headers: function (placeholder) {\n var titles = $(placeholder).find('p.MsoTitle');\n for (var i = 0; i < titles.length; i++) {\n dom.changeTag(titles[i], 'h1');\n }\n },\n removeFormatting: function (placeholder) {\n $(placeholder).find('*').each(function () {\n $(this).css({\n fontSize: '',\n fontFamily: ''\n });\n if (!this.getAttribute('style') && !this.style.cssText) {\n this.removeAttribute('style');\n }\n });\n },\n clean: function (html) {\n var that = this, placeholder;\n var filters = this.options;\n if (filters.none) {\n html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n html = that.stripEmptyAnchors(html);\n } else {\n html = filters.msConvertLists ? this.extractListLevels(html) : html;\n html = Cleaner.fn.clean.call(that, html);\n html = that.stripEmptyAnchors(html);\n placeholder = dom.create(document, 'div', { innerHTML: html });\n that.headers(placeholder);\n if (filters.msConvertLists) {\n that.lists(placeholder);\n }\n that.tables(placeholder);\n if (filters.msAllFormatting) {\n that.removeFormatting(placeholder);\n }\n html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, '$1');\n }\n return html;\n }\n });\n var WebkitFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /\\s+class=\"Apple-style-span[^\"]*\"/gi,\n '',\n /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi,\n '<$1',\n /^
    (.*)<\\/div>$/,\n '$1'\n ];\n },\n applicable: function (html) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(html);\n }\n });\n var DomCleaner = Cleaner.extend({\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n container = this.cleanDom(container);\n return container.innerHTML;\n },\n cleanDom: function (container) {\n return container;\n }\n });\n var HtmlTagsCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var tags = this.collectTags();\n $(container).find(tags).each(function () {\n dom.unwrap(this);\n });\n return container;\n },\n collectTags: function () {\n if (this.options.span) {\n return 'span';\n }\n },\n applicable: function () {\n return this.options.span;\n }\n });\n var HtmlAttrCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var attributes = this.collectAttr();\n var nodes = $(container).find('[' + attributes.join('],[') + ']');\n nodes.removeAttr(attributes.join(' '));\n return container;\n },\n collectAttr: function () {\n if (this.options.css) {\n return [\n 'class',\n 'style'\n ];\n }\n return [];\n },\n applicable: function () {\n return this.options.css;\n }\n });\n var TextContainer = function () {\n this.text = '';\n this.add = function (text) {\n this.text += text;\n };\n };\n var HtmlTextLines = Class.extend({\n init: function (separators) {\n this.separators = separators || {\n text: ' ',\n line: '
    '\n };\n this.lines = [];\n this.inlineBlockText = [];\n this.resetLine();\n },\n appendText: function (text) {\n if (text.nodeType === 3) {\n text = text.nodeValue;\n }\n this.textContainer.add(text);\n },\n appendInlineBlockText: function (text) {\n this.inlineBlockText.push(text);\n },\n flashInlineBlockText: function () {\n if (this.inlineBlockText.length) {\n this.appendText(this.inlineBlockText.join(' '));\n this.inlineBlockText = [];\n }\n },\n endLine: function () {\n this.flashInlineBlockText();\n this.resetLine();\n },\n html: function () {\n var separators = this.separators;\n var result = '';\n var lines = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n var line = lines[i];\n for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n var text = line[j].text;\n result += text;\n if (j !== jl1) {\n result += separators.text;\n }\n }\n if (i !== il1) {\n result += separators.line;\n }\n }\n return result;\n },\n resetLine: function () {\n this.textContainer = new TextContainer();\n this.line = [];\n this.line.push(this.textContainer);\n this.lines.push(this.line);\n }\n });\n var DomEnumerator = Class.extend({\n init: function (callback) {\n this.callback = callback;\n },\n enumerate: function (node) {\n if (!node) {\n return;\n }\n var preventDown = this.callback(node);\n var child = node.firstChild;\n if (!preventDown && child) {\n this.enumerate(child);\n }\n this.enumerate(node.nextSibling);\n }\n });\n var HtmlContentCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.hasText = false;\n this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n },\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n return this.cleanDom(container);\n },\n cleanDom: function (container) {\n this.separators = this.getDefaultSeparators();\n this.htmlLines = new HtmlTextLines(this.separators);\n this.enumerator.enumerate(container.firstChild);\n this.hasText = false;\n return this.htmlLines.html();\n },\n buildText: function (node) {\n if (dom.isDataNode(node)) {\n if (dom.isEmptyspace(node)) {\n return;\n }\n this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n this.hasText = true;\n } else if (dom.isBlock(node) && this.hasText) {\n var action = this.actions[dom.name(node)] || this.actions.block;\n return action(this, node);\n } else if (dom.isBr(node)) {\n this.htmlLines.appendText(this.separators.line);\n }\n },\n applicable: function () {\n var o = this.options;\n return o.all || o.keepNewLines;\n },\n getDefaultSeparators: function () {\n if (this.options.all) {\n return {\n text: ' ',\n line: ' '\n };\n } else {\n return {\n text: ' ',\n line: '
    '\n };\n }\n },\n actions: {\n ul: $.noop,\n ol: $.noop,\n table: $.noop,\n thead: $.noop,\n tbody: $.noop,\n td: function (cleaner, node) {\n var tdCleaner = new HtmlContentCleaner({ all: true });\n var cellText = tdCleaner.cleanDom(node);\n cleaner.htmlLines.appendInlineBlockText(cellText);\n return true;\n },\n block: function (cleaner) {\n cleaner.htmlLines.endLine();\n }\n }\n });\n var CustomCleaner = Cleaner.extend({\n clean: function (html) {\n return this.options.custom(html);\n },\n applicable: function () {\n return typeof this.options.custom === 'function';\n }\n });\n extend(editorNS, {\n Clipboard: Clipboard,\n Cleaner: Cleaner,\n ScriptCleaner: ScriptCleaner,\n TabCleaner: TabCleaner,\n MSWordFormatCleaner: MSWordFormatCleaner,\n WebkitFormatCleaner: WebkitFormatCleaner,\n HtmlTagsCleaner: HtmlTagsCleaner,\n HtmlAttrCleaner: HtmlAttrCleaner,\n HtmlContentCleaner: HtmlContentCleaner,\n HtmlTextLines: HtmlTextLines,\n CustomCleaner: CustomCleaner\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/plugins/keyboard', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, editorNS = kendo.ui.editor, RangeUtils = editorNS.RangeUtils, dom = editorNS.Dom, RestorePoint = editorNS.RestorePoint, Marker = editorNS.Marker, browser = kendo.support.browser, bomSpan = '\\uFEFF', 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._removeBomSpan();\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 _removeBomSpan: function () {\n var node = this.editor.getRange().commonAncestorContainer;\n if (!dom.emptyNode(node)) {\n if (node.nodeType === 3) {\n node = node.parentNode;\n }\n if (dom.insignificant(node)) {\n node.textContent = dom.stripBom(node.textContent);\n dom.unwrap(node);\n }\n }\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 caretPlaceholder = dom.significantChildNodes(next)[0];\n caretPlaceholder = caretPlaceholder && dom.isInline(caretPlaceholder) ? caretPlaceholder : next;\n var caret = this._addCaret(caretPlaceholder);\n this._merge(block, next);\n this._restoreCaret(caret);\n return true;\n }\n return false;\n },\n _cleanBomBefore: function (range) {\n var offset = range.startOffset;\n var node = range.startContainer;\n var text = node.nodeValue;\n var count = 0;\n while (offset - count >= 0 && text[offset - count - 1] == '\\uFEFF') {\n count++;\n }\n if (count > 0) {\n node.deleteData(offset - count, count);\n range.setStart(node, Math.max(0, offset - count));\n range.collapse(true);\n this.editor.selectRange(range);\n }\n },\n _handleBackspace: function (range) {\n var node = range.startContainer;\n var li = dom.closestEditableOfType(node, ['li']);\n var block = dom.closestEditableOfType(node, 'p,h1,h2,h3,h4,h5,h6'.split(','));\n var editor = this.editor;\n var previousSibling;\n if (dom.isDataNode(node)) {\n if (range.collapsed && /^\\s[\\ufeff]+$/.test(node.nodeValue)) {\n range.setStart(node, 0);\n range.setEnd(node, node.length);\n editor.selectRange(range);\n return false;\n }\n this._cleanBomBefore(range);\n }\n previousSibling = getSibling(block, PREVIOUS_SIBLING, function (sibling) {\n return !dom.htmlIndentSpace(sibling);\n });\n if (range.collapsed && range.startOffset !== range.endOffset && range.startOffset < 0) {\n range.startOffset = 0;\n range.endOffset = 0;\n editor.selectRange(range);\n }\n var startAtLi = li && editorNS.RangeUtils.isStartOf(range, li);\n var liIndex = li && $(li).index();\n var startAtNonFirstLi = startAtLi && liIndex > 0;\n if (startAtNonFirstLi) {\n block = li;\n previousSibling = dom.prev(li);\n }\n if (block && previousSibling && dom.is(previousSibling, 'table') && editorNS.RangeUtils.isStartOf(range, block)) {\n if (block.innerText === '') {\n block.innerHTML = '\\uFEFF';\n }\n return true;\n }\n if (editorNS.RangeUtils.isStartOf(range, block) && parseInt(block.style.marginLeft, 10) > 0) {\n editor.exec('outdent');\n return true;\n }\n if (block && previousSibling && editorNS.RangeUtils.isStartOf(range, block) || startAtNonFirstLi) {\n var caretPlaceholder = dom.significantChildNodes(block)[0];\n caretPlaceholder = caretPlaceholder && dom.isInline(caretPlaceholder) ? caretPlaceholder : block;\n var caret = this._addCaret(caretPlaceholder);\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 var parentElementOrNode;\n if (inTable(range)) {\n var removeTableContent = new RemoveTableContent(editor);\n removeTableContent.remove(range);\n editor.selectRange(range);\n return true;\n }\n var marker = new Marker();\n marker.add(range, false);\n if (range.commonAncestorContainer === editor.body) {\n this._surroundFullyContent(marker, range);\n }\n if (editor.immutables) {\n this._handleImmutables(marker);\n }\n this._surroundFullySelectedAnchor(marker, range);\n range.setStartAfter(marker.start);\n range.setEndBefore(marker.end);\n var start = range.startContainer;\n var end = range.endContainer;\n range.deleteContents();\n if (end.tagName.toLocaleLowerCase() === 'li' && dom.emptyNode(end)) {\n range.selectNode(end);\n range.deleteContents();\n }\n if (table && $(table).text() === '') {\n range.selectNode(table);\n range.deleteContents();\n }\n ancestor = range.commonAncestorContainer;\n if (dom.name(ancestor) === 'p' && ancestor.innerHTML === '') {\n ancestor.innerHTML = emptyParagraphContent;\n range.setStart(ancestor, 0);\n }\n this._join(start, end);\n dom.insertAfter(editor.document.createTextNode('\\uFEFF'), marker.start);\n marker.remove(range);\n start = range.startContainer;\n if (dom.name(start) == 'tr') {\n start = start.childNodes[Math.max(0, range.startOffset - 1)];\n range.setStart(start, dom.getNodeLength(start));\n }\n range.collapse(true);\n editor.selectRange(range);\n parentElementOrNode = start.parentElement || start.parentNode;\n if (dom.isDataNode(start) && !dom.emptyNode(parentElementOrNode)) {\n this._cleanBomBefore(range);\n }\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 setTimeout(function () {\n editor.selectRange(range);\n });\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 $(bomSpan).prependTo(body);\n }\n if (last && immutable(last)) {\n $(bomSpan).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._initializeElementResizing();\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/plugins/formatpainter', ['editor/command'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Editor = kendo.ui.editor, Tool = Editor.Tool, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, registerTool = EditorUtils.registerTool;\n var CopyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n this.inlineStyles = [];\n this.blockStyles = [];\n this.collectStyles(range);\n this.editor.inlineStyles = this.inlineStyles;\n this.editor.blockStyles = this.blockStyles;\n this.releaseRange(range);\n },\n collectStyles: function (range) {\n var rangeNodes = RangeUtils.nodes(range);\n var node;\n if (rangeNodes.length === 1) {\n node = rangeNodes[0].parentNode;\n } else {\n node = range.startContainer;\n }\n while (node && !dom.is(node, 'body') && node.getAttribute('data-role') !== 'editor') {\n if (dom.isBlock(node)) {\n this.populateStyles(node, 'blockStyles');\n if (dom.is(node, 'li')) {\n node = node.parentNode;\n } else {\n node = null;\n }\n } else {\n this.populateStyles(node, 'inlineStyles');\n node = node.parentNode;\n }\n }\n },\n populateStyles: function (node, destination) {\n var styles = node.style;\n var attributes = node.attributes;\n var nodeStyles = {\n tags: [node.tagName],\n attr: { style: {} }\n };\n var styleValue, styleKey, attributeKey, attributeValue, i;\n for (i = 0; styles && i < styles.length; i++) {\n styleKey = styles[i];\n styleValue = styles[styleKey];\n nodeStyles.attr.style[styleKey] = styleValue;\n }\n for (i = 0; attributes && i < attributes.length; i++) {\n attributeKey = attributes[i].nodeName;\n attributeValue = attributes[i].nodeValue;\n if (attributeKey === 'style') {\n continue;\n } else if (attributeKey === 'class') {\n nodeStyles.attr.className = attributeValue;\n } else {\n nodeStyles.attr[attributeKey] = attributeValue;\n }\n }\n this[destination].push(nodeStyles);\n }\n });\n var ApplyFormatCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.lockRange(true);\n var markers = RangeUtils.getMarkers(range);\n var editor = this.editor;\n var inlineStyles = editor.inlineStyles;\n var blockStyles = editor.blockStyles;\n var nodes;\n if ((!inlineStyles || inlineStyles.length === 0) && (!blockStyles || blockStyles.length === 0)) {\n return;\n }\n if (markers.length === 3) {\n this.marker.removeCaret(range);\n this.marker.caret = null;\n }\n this.removeEmptyElementsFromRange(range);\n nodes = RangeUtils.nodes(range);\n this.cleanInlineParents(nodes);\n dom.normalize(range.commonAncestorContainer);\n if (markers.length === 2) {\n range.setStartAfter(markers[0]);\n range.setEndBefore(markers[1]);\n } else {\n range.setStartBefore(nodes[0]);\n range.setEndAfter(nodes[0]);\n }\n nodes = RangeUtils.nodes(range);\n if (nodes && blockStyles && blockStyles.length) {\n this.applyBlockStyles(nodes, blockStyles);\n }\n if (nodes && inlineStyles && inlineStyles.length) {\n this.applyInlineStyles(nodes, inlineStyles);\n }\n this.releaseRange(range);\n },\n removeEmptyElementsFromRange: function (range) {\n var isEmptyInline = function (node) {\n return dom.isInline(node) && !node.firstChild && !dom.isMarker(node);\n };\n var emptyElements, i;\n emptyElements = RangeUtils.getAll(range, isEmptyInline);\n if (emptyElements && emptyElements.length > 0) {\n for (i = 0; i < emptyElements.length; i++) {\n emptyElements[i].parentNode.removeChild(emptyElements[i]);\n }\n }\n },\n cleanInlineParents: function (nodes) {\n var i, node, parent, children, j, child, newNode;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n parent = node.parentNode;\n if (this.immutableParent(node)) {\n continue;\n }\n while (parent && dom.isInline(parent)) {\n children = parent.childNodes;\n for (j = 0; j < children.length; j++) {\n child = children[j];\n if (!dom.isMarker(child) && child !== node) {\n newNode = parent.cloneNode(true);\n newNode.innerHTML = '';\n dom.wrap(child, newNode);\n }\n }\n dom.unwrap(parent);\n parent = node.parentNode;\n }\n }\n },\n applyBlockStyles: function (nodes, blockStyles) {\n var formatTag = blockStyles[0].tags[0];\n var attr = blockStyles[0].attr;\n var document = this.editor.document;\n var i, len, node, wrapper, blockParent, outerWrapper;\n var previousNodes, nextNodes, previous, next, prevWrapper, nextWrapper, child, j, listItems;\n for (i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n blockParent = dom.blockParentOrBody(node);\n if (blockParent.tagName !== 'BODY' && blockParent.tagName !== formatTag) {\n if (blockParent.tagName !== 'LI' && blockParent.tagName !== 'TD' && blockParent.tagName !== 'TH') {\n previousNodes = [];\n nextNodes = [];\n previous = node.previousSibling;\n next = node.nextSibling;\n while (previous) {\n if (!dom.isMarker(previous)) {\n previousNodes.push(previous);\n }\n previous = previous.previousSibling;\n }\n if (previousNodes.length) {\n prevWrapper = blockParent.cloneNode(true);\n prevWrapper.innerHTML = '';\n dom.insertBefore(prevWrapper, previousNodes[0]);\n for (j = 0; j < previousNodes.length; j++) {\n child = previousNodes[j];\n dom.insertAt(prevWrapper, child, 0);\n }\n }\n while (next) {\n if (!dom.isMarker(next)) {\n nextNodes.push(next);\n }\n next = next.nextSibling;\n }\n if (nextNodes.length) {\n nextWrapper = blockParent.cloneNode(true);\n nextWrapper.innerHTML = '';\n dom.insertBefore(nextWrapper, nextNodes[0]);\n for (j = 0; j < nextNodes.length; j++) {\n child = nextNodes[j];\n nextWrapper.appendChild(child);\n }\n }\n dom.unwrap(blockParent);\n }\n wrapper = dom.create(document, formatTag, attr);\n dom.wrap(node, wrapper);\n } else if (blockParent.tagName === formatTag) {\n dom.attr(blockParent, attr);\n }\n }\n if (blockParent && blockStyles.length === 2 && blockParent.tagName !== 'LI' && formatTag === 'LI') {\n listItems = [];\n while (dom.is(wrapper, 'li')) {\n listItems.push(wrapper);\n wrapper = dom.prev(wrapper);\n }\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.insertBefore(outerWrapper, listItems[listItems.length - 1]);\n outerWrapper.appendChild(listItems[0]);\n for (i = 1, len = listItems.length; i < len; i++) {\n dom.insertBefore(listItems[i], outerWrapper.firstChild);\n }\n } else if (blockParent && blockStyles.length === 2 && blockParent.tagName !== 'LI') {\n outerWrapper = dom.create(document, blockStyles[1].tags[0], blockStyles[1].attr);\n dom.wrap(wrapper, outerWrapper);\n }\n },\n applyInlineStyles: function (nodes, inlineStyles) {\n var document = this.editor.document;\n var currentStyle, createdNode, topNode, i, newNode, node;\n for (i = 0; i < inlineStyles.length; i++) {\n currentStyle = inlineStyles[i];\n createdNode = dom.create(document, currentStyle.tags[0], currentStyle.attr);\n if (topNode) {\n createdNode.appendChild(topNode);\n }\n topNode = createdNode;\n }\n if (topNode) {\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (dom.isWhitespace(node) || this.immutableParent(node)) {\n continue;\n }\n newNode = topNode.cloneNode(true);\n dom.insertBefore(newNode, node);\n while (newNode.children && newNode.children.length) {\n newNode = newNode.children[0];\n }\n newNode.appendChild(node);\n }\n }\n },\n immutables: function () {\n return this.editor && this.editor.options.immutables;\n },\n immutableParent: function (node) {\n return this.immutables() && Editor.Immutables.immutableParent(node);\n }\n });\n var CopyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new CopyFormatCommand(commandArguments);\n }\n });\n var ApplyFormatTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n },\n command: function (commandArguments) {\n return new ApplyFormatCommand(commandArguments);\n }\n });\n $.extend(Editor, {\n CopyFormatCommand: CopyFormatCommand,\n ApplyFormatCommand: ApplyFormatCommand,\n CopyFormatTool: CopyFormatTool,\n ApplyFormatTool: ApplyFormatTool\n });\n registerTool('copyFormat', new CopyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Copy format'\n })\n }));\n registerTool('applyFormat', new ApplyFormatTool({\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Apply format'\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 'editor/dom'\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 dom = Editor.Dom;\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 THEAD = 'thead';\n var TD = 'td';\n var TH = 'th';\n var TR = 'tr';\n var COLATTR = 'col-index';\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 tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\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 : kendo.scrollLeft(rootElement);\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 innerElementOffsetTop = tableInnerElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(tableInnerElement.css('marginTop'));\n var browser = kendo.support.browser;\n if (rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\n that.resizeHandle.css({\n top: innerElementOffsetTop + scrollTopOffset,\n left: columnOffsetLeft + columnWidthOffset + (scrollLeftOffset - scrollBarWidth) - handleWidth / 2,\n position: 'absolute'\n });\n },\n setResizeHandleDimensions: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var fullHeight = tableHead.length > 0 ? tableHead.height() + tableBody.height() : tableBody.height();\n that.resizeHandle.css({\n width: that.options.handle.width,\n height: fullHeight\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 : kendo.scrollLeft(rootElement);\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 browser = kendo.support.browser;\n if (rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\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 var colIndex;\n var nextColumn;\n dom.reMapTableColumns(that.element, COLATTR);\n colIndex = parseInt(column.attr(COLATTR), 10);\n if (column.prop('colSpan') > 1) {\n column = $(that.element).find('[' + COLATTR + '=' + (colIndex + column.prop('colSpan') - 1) + ']').eq(0);\n colIndex = parseInt(column.attr(COLATTR), 10);\n }\n nextColumn = $(that.element).find('[' + COLATTR + '=' + (colIndex + 1) + ']:not([colspan])');\n that._setTableComputedWidth();\n that._setColumnsComputedWidth();\n initialColumnWidth = outerWidth(column);\n initialAdjacentColumnWidth = outerWidth(nextColumn);\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(parseInt(column.attr(COLATTR), 10), initialAdjacentColumnWidth, initialColumnWidth, initialColumnWidth - newWidth);\n dom.clearTableMappings(that.element, COLATTR);\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 tableInnerElement = $(that.element.tHead || that.element.tBodies[0]);\n var innerElementWidth = outerWidth(tableInnerElement);\n var columns = tableInnerElement.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], innerElementWidth));\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).attr(COLATTR);\n var topAndBottomColumns = $(that.element).children(TBODY + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n var cell = this;\n return $(cell).attr(COLATTR) === 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 var innerTableElement = $(this.element.tHead || this.element.tBodies[0]);\n if (inPercentages(column.style[WIDTH])) {\n column.style[WIDTH] = toPercentages(calculatePercentageRatio(newWidth, outerWidth(innerTableElement)));\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 + COMMA + THEAD).children(TR).children(that.options.tags.join(COMMA)).filter(function () {\n return parseInt($(this).attr(COLATTR), 10) === 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 THEAD = 'thead';\n var COMMA = ',';\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 : kendo.scrollLeft(rootElement);\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 var browser = kendo.support.browser;\n if (options.rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeftOffset = scrollLeftOffset * -1;\n }\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 var innerTableElement = $(that.element.tHead || that.element.tBodies[0]);\n that.resizeHandle.css({\n width: innerTableElement.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 tableHead = $(that.element).children(THEAD);\n var tableBody = $(that.element).children(TBODY);\n var topInnerTableElement = tableHead.length > 0 ? tableHead : tableBody;\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 tableTopOffset = topInnerTableElement.offset().top - (rootElement.offset().top + parseFloat(rootElement.css('borderTopWidth'))) - parseFloat(topInnerTableElement.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 - (Math.max(0, 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: tableTopOffset + outerHeight(tableHead) + 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 tableHead = element.children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\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(tableHeadHeight + 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 + COMMA + THEAD).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 tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + 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] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + 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/element-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 = '.kendoEditorElementResizeHandle';\n var RESIZE_HANDLE_CLASS = 'k-element-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 ElementResizeHandle = 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 var browser = kendo.support.browser;\n var rootLeft;\n if (!rootElement.is(BODY)) {\n rootLeft = kendo.scrollLeft(rootElement) || 0;\n if (options.rtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n rootLeft = rootLeft * -1;\n }\n return {\n top: position.top + (rootElement.scrollTop() || 0),\n left: position.left + rootLeft - 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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + outerWidth(resizableElement) + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) / 2 + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + outerWidth(resizableElement) + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top,\n left: offset.left + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) / 2 + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + outerWidth(resizableElement) + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement),\n left: offset.left + marginLeft\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 var marginLeft = parseInt(resizableElement.css('marginLeft'), 10);\n return {\n top: offset.top + outerHeight(resizableElement) / 2,\n left: offset.left + marginLeft\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, { ElementResizeHandle: ElementResizeHandle });\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/element-resizing', [\n 'editor/main',\n 'editor/resizing/element-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 ElementResizeHandle = Editor.ElementResizeHandle;\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 RangeUtils = Editor.RangeUtils;\n var NS = '.kendoEditorElementResizing';\n var RESIZE_HANDLE_WRAPPER_CLASS = 'k-element-resize-handle-wrapper';\n var TABLE_CLASS = 'k-table';\n var ELEMENT_RESIZING_CLASS = 'k-element-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 SELECT = 'select';\n var DROP = 'drop';\n var COLUMN = 'td';\n var ROW = 'tr';\n var TBODY = 'tbody';\n var THEAD = 'thead';\n var TABLE = 'table';\n var IMG = 'img';\n var ELEMENT_TYPES = [\n 'TABLE',\n 'IMG'\n ];\n var COMMA = ',';\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 ElementResizing = Class.extend({\n init: function (element, options) {\n var that = this;\n that.options = extend({}, that.options, options);\n that.handles = [];\n if (ELEMENT_TYPES.indexOf(element.nodeName) >= 0) {\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 () {\n return false;\n },\n _resizeHeight: function () {\n return false;\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 ? kendo.scrollLeft(parent) : parent.scrollTop());\n if (parentElement && 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 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 ElementResizeHandle(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 that.handles = [];\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 return false;\n },\n _onResizeHandleDragStart: function () {\n var that = this;\n var element = $(that.element);\n element.addClass(ELEMENT_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(ELEMENT_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 TableResizing = ElementResizing.extend({\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 _hasRowsInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + 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 _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 _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 _setRowsHeightInPercentages: function () {\n var that = this;\n var tableHead = $(that.element).children(THEAD);\n var tableHeadHeight = tableHead.length > 0 ? tableHead.height() : 0;\n var tableBody = $(that.element).children(TBODY);\n var tableBodyHeight = tableBody.height();\n var rows = $(that.element).children(THEAD + COMMA + 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] = toPercentages(calculatePercentageRatio(currentRowsHeights[i], tableHeadHeight + tableBodyHeight));\n }\n },\n _setRowsHeightInPixels: function () {\n var that = this;\n var rows = $(that.element).children(THEAD + COMMA + 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 });\n var ImageResizing = ElementResizing.extend({\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 if (handle.options.direction === 'north' || handle.options.direction === 'south') {\n handle.bind(DRAG, proxy(that._onResizeHandleDragVertical, that));\n } else if (handle.options.direction === 'east' || handle.options.direction === 'west') {\n handle.bind(DRAG, proxy(that._onResizeHandleDragHorizontal, that));\n } else {\n handle.bind(DRAG, proxy(that._onResizeHandleDragLocked, that));\n }\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 _getDeltas: function (args) {\n return extend({}, {\n deltaX: 0,\n deltaY: 0,\n initialDeltaX: 0,\n initialDeltaY: 0\n }, args);\n },\n _onResizeHandleDragVertical: function (args) {\n var deltas = this._getDeltas(args);\n this._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n this.showResizeHandles();\n },\n _onResizeHandleDragHorizontal: function (args) {\n var deltas = this._getDeltas(args);\n this._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n this.showResizeHandles();\n },\n _onResizeHandleDragLocked: function (args) {\n var min = Math.min(Math.abs(args.initialDeltaX), Math.abs(args.initialDeltaY)), initialWidth = this._initialElementWidth, initialHeight = this._initialElementHeight, deltas;\n if (min === args.initialDeltaX || min === args.initialDeltaX * -1) {\n args.initialDeltaY = args.initialDeltaX * initialHeight / initialWidth;\n args.deltaY = args.deltaX;\n } else if (min === args.initialDeltaY || min === args.initialDeltaY * -1) {\n args.initialDeltaX = args.initialDeltaY * initialWidth / initialHeight;\n args.deltaX = args.deltaY;\n }\n deltas = this._getDeltas(args);\n this._resizeWidth(deltas.deltaX, deltas.initialDeltaX);\n this._resizeHeight(deltas.deltaY, deltas.initialDeltaY);\n this.showResizeHandles();\n },\n _resizeWidth: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var currentWidth = outerWidth(element);\n var newWidth;\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: that._getMaxDimensionValue(WIDTH)\n });\n newWidth = toPixels(constrainedWidth);\n element[0].style[WIDTH] = newWidth;\n element.attr(WIDTH, Math.floor(constrainedWidth));\n },\n _resizeHeight: function (delta, initialDelta) {\n var that = this;\n var element = $(that.element);\n var currentHeight = outerHeight(element);\n var newHeight;\n var constrainedHeight;\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: that.options.minHeight,\n max: Number.MAX_SAFE_INTEGER\n });\n newHeight = toPixels(constrainedHeight);\n element[0].style[HEIGHT] = newHeight;\n element.attr(HEIGHT, Math.floor(constrainedHeight));\n }\n });\n var ElementResizingFactory = Class.extend({\n create: function (editor) {\n var factory = this;\n $(editor.body).on('dragstart' + NS, function () {\n var nodes = RangeUtils.nodes(editor.getRange()), hasImg = false;\n nodes.forEach(function (node) {\n if (node.nodeName === 'IMG') {\n hasImg = true;\n }\n });\n if (hasImg && nodes.length > 1) {\n editor.elementResizing._destroyResizeHandles();\n }\n }).on(DROP + NS, function () {\n setTimeout(function () {\n var image = RangeUtils.image(editor.getRange());\n if (image) {\n editor.elementResizing._destroyResizeHandles();\n editor.elementResizing.element = image;\n editor.elementResizing.showResizeHandles();\n }\n });\n }).on(MOUSE_DOWN + NS, TABLE + COMMA + IMG, function (e) {\n var eventTarget = e.target;\n var eventCurrentTarget = e.currentTarget;\n var elementResizing = editor.elementResizing;\n var element = elementResizing ? elementResizing.element : null;\n if (elementResizing) {\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._destroyElementResizing();\n factory._initResizing(editor, eventCurrentTarget);\n }\n }\n }\n } else {\n factory._initResizing(editor, eventCurrentTarget);\n }\n editor._showElementResizeHandles();\n }).on(MOUSE_DOWN + NS, function (e) {\n var elementResizing = editor.elementResizing;\n var element = elementResizing ? elementResizing.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 (elementResizing && element !== target && !contains(element, target) && !isResizeHandleOrChild) {\n editor._destroyElementResizing();\n }\n });\n },\n dispose: function (editor) {\n $(editor.body).off(NS);\n },\n _initResizing: function (editor, element) {\n if (!browser.msie) {\n if ($(element).is(TABLE)) {\n editor.elementResizing = editor.tableResizing = new TableResizing(element, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n } else if ($(element).is(IMG)) {\n editor.elementResizing = new ImageResizing(element, {\n appendHandlesTo: editor.body,\n rtl: kendo.support.isRtl(editor.element),\n rootElement: editor.body\n });\n }\n if (editor._showElementResizeHandlesProxy) {\n editor.unbind(SELECT, editor._showElementResizeHandlesProxy);\n editor.bind(SELECT, editor._showElementResizeHandlesProxy);\n }\n }\n }\n });\n ElementResizingFactory.current = new ElementResizingFactory();\n extend(Editor, {\n TableResizing: TableResizing,\n ImageResizing: ImageResizing,\n ElementResizing: ElementResizing,\n ElementResizingFactory: ElementResizingFactory\n });\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 COL = 'col';\n var ROW = 'row';\n var COLGROUP = 'colgroup';\n var SCOPE = 'scope';\n var COL_INDEX = 'col-index';\n var TH = 'th';\n var TD = 'td';\n var THEAD = 'thead';\n var HEADERS = 'headers';\n var TABLE = 'table';\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 tHead = table.tHead;\n var last = cmd._lastInCollection;\n var lastSelectedRow, cellProp;\n while (selectedCells.length > 1) {\n selectedCells.pop();\n }\n lastSelectedRow = selectedCells.length ? last(selectedCells).parentNode : last(tableRows);\n cmd._deleteTableRows(tableRows, tableRows.length - rows);\n if (tableRows.length < rows) {\n cmd._addRows(lastSelectedRow, rows, tableRows);\n }\n dom.reMapTableColumns(table, COL_INDEX);\n cmd._updateColumns(tableRows, tableProp.columns, selectedCells, lastSelectedRow);\n cmd._updateTableProperties(table, tableProp);\n 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 if (tHead) {\n cmd._updateHeadersWithThead(table, data);\n } else {\n cmd._updateHeadersNoThead(table, data);\n }\n cmd._updateHeaderAssociates(table, tableProp);\n dom.clearTableMappings(table, COL_INDEX);\n },\n _isHeadingRow: function (row) {\n return dom.is(row.cells[0], TH) && dom.is(row.parentNode, THEAD);\n },\n _isHeadingCell: function (cell) {\n return dom.is(cell, TH);\n },\n cellsWithHeadersAssociated: function (table) {\n var cells = $(table.rows).children();\n var headingIds = [];\n var checkHeader = function (header) {\n return headingIds.indexOf(header) > -1;\n };\n cells.each(function (c, cell) {\n if (cell.id && dom.is(cell, TH)) {\n headingIds.push(cell.id);\n }\n });\n var associatedCells = cells.filter(function (c, cell) {\n var headersAttr = cell.getAttribute(HEADERS);\n var headersArray;\n if (headersAttr && !dom.is(cell, TH)) {\n headersArray = headersAttr.split(' ');\n if (headersArray && headersArray.length > 0) {\n return headersArray.some(checkHeader);\n }\n }\n return false;\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 table = dom.create(doc, TABLE);\n var rowIndex = 0;\n var thead;\n cmd._updateTableProperties(table, tableProp);\n cmd._updateCaption(table, tableProp);\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n thead = table.createTHead();\n cmd._createTableRows(data, thead, rowIndex, true);\n rowIndex += tableProp.headerRows;\n }\n var tbody = table.createTBody();\n cmd._createTableRows(data, tbody, rowIndex, false);\n dom.reMapTableColumns(table, COL_INDEX);\n if (tableProp.cellsWithHeaders === 'ids') {\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n }\n dom.clearTableMappings(table, COL_INDEX);\n return table;\n },\n _createTableRows: function (data, container, initialIndex, headerRows) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var cellProp = data.cellProperties;\n var columns = tableProp.columns;\n var rows = headerRows ? tableProp.headerRows : tableProp.rows;\n var cellPropToAll = cellProp.selectAllCells;\n var headerColumns = tableProp.headerColumns;\n for (var r = initialIndex, row; r < rows; r++) {\n row = container.insertRow();\n for (var c = 0, cell; c < columns; c++) {\n if (headerRows || headerColumns > c) {\n cell = document.createElement(TH);\n } else {\n cell = document.createElement(TD);\n }\n row.appendChild(cell);\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 },\n _addRows: function (lastSelectedRow, rows, tableRows) {\n var cmd = this;\n var rowIndex = $(lastSelectedRow).index();\n var cellsLength = lastSelectedRow.cells.length;\n var newRowsCount = rows - tableRows.length;\n var parent = lastSelectedRow.parentNode;\n var row;\n while (newRowsCount) {\n row = parent.insertRow(rowIndex + 1);\n cmd._insertCells(cellsLength - row.cells.length, row);\n newRowsCount--;\n }\n },\n _updateColumns: function (tableRows, columns, selectedCells, lastSelectedRow) {\n var cmd = this;\n var last = cmd._lastInCollection;\n var firstRowLastCell = last(tableRows[0].cells);\n var numberOfColumns = Number(firstRowLastCell.getAttribute(COL_INDEX)) + firstRowLastCell.colSpan;\n if (numberOfColumns > columns) {\n $(tableRows).each(function (i, row) {\n var lastCurrentCell = last(row.cells);\n var rowColumns = Number(lastCurrentCell.getAttribute(COL_INDEX)) + lastCurrentCell.colSpan;\n while (rowColumns > columns) {\n if (lastCurrentCell.colSpan && lastCurrentCell.colSpan > 1) {\n lastCurrentCell.colSpan -= 1;\n } else {\n row.deleteCell(-1);\n }\n lastCurrentCell = last(row.cells);\n rowColumns = Number(lastCurrentCell.getAttribute(COL_INDEX)) + lastCurrentCell.colSpan;\n }\n });\n }\n if (numberOfColumns < columns) {\n var cellIndex = $(last(selectedCells) || last(lastSelectedRow.cells)).index();\n $(tableRows).each(function (i, row) {\n var lastCurrentCell = last(row.cells);\n cmd._insertCells(columns - Number(lastCurrentCell.getAttribute(COL_INDEX)) - lastCurrentCell.colSpan, row, cellIndex + 1);\n });\n }\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 _updateHeadersNoThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var rows = table.rows;\n var row, cells, cell, i, j;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n cells = row.cells;\n for (j = 0; j < cells.length; j++) {\n cell = cells[j];\n if (!cmd._isHeadingCell(cell) && (i < tableProp.headerRows || tableProp.headerColumns > cell.getAttribute(COL_INDEX))) {\n dom.changeTag(cell, TH, false);\n } else if (cmd._isHeadingCell(cell) && i >= tableProp.headerRows && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n }\n }\n }\n },\n _updateHeadersWithThead: function (table, data) {\n var cmd = this;\n var tableProp = data.tableProperties;\n var thead = table.tHead;\n var rowIndex = 0;\n var tbody = table.tBodies[0];\n var row, cell, i;\n if (!tbody) {\n tbody = table.createTBody();\n }\n if (tableProp.headerRows && tableProp.headerRows > 0) {\n if (!thead) {\n thead = table.createTHead();\n }\n while (thead.rows.length < tableProp.headerRows) {\n thead.appendChild(tbody.rows[0]);\n }\n while (thead.rows.length > tableProp.headerRows) {\n tbody.appendChild(thead.rows[0]);\n }\n cmd._swapToHeaderCells(thead);\n } else if (thead) {\n while (thead.rows.length > 0) {\n tbody.appendChild(thead.rows[thead.rows.length - 1]);\n }\n table.deleteTHead();\n }\n while (tbody.rows.length > rowIndex) {\n row = tbody.rows[rowIndex];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[i];\n if (cmd._isHeadingCell(cell) && tableProp.headerColumns <= cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TD, false);\n } else if (!cmd._isHeadingCell(cell) && tableProp.headerColumns > cell.getAttribute(COL_INDEX)) {\n dom.changeTag(cell, TH, false);\n }\n }\n rowIndex += 1;\n }\n },\n _updateHeaderAssociates: function (table, tableProp) {\n var cmd = this;\n if (tableProp.cellsWithHeaders === 'ids') {\n if (!cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeScopes(table);\n }\n dom.associateWithIds(table);\n } else if (tableProp.cellsWithHeaders === 'scope') {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n }\n cmd._addScopes(table, tableProp.headerRows, tableProp.headerColumns);\n } else {\n if (cmd.cellsWithHeadersAssociated(table)) {\n cmd._removeAssociates(table);\n } else {\n cmd._removeScopes(table);\n }\n }\n },\n _addScopes: function (table, headerRows, headerCols) {\n var rows = table.rows;\n var i, j, row, cell;\n for (i = 0; i < rows.length; i++) {\n row = rows[i];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[j];\n if (i < headerRows) {\n cell.setAttribute(SCOPE, COL);\n } else if (cell.getAttribute(COL_INDEX) < headerCols) {\n cell.setAttribute(SCOPE, ROW);\n }\n }\n }\n },\n _removeScopes: function (table) {\n $(table).find(TH).removeAttr(SCOPE);\n $(table).find(COL).remove();\n $(table).find(COLGROUP).remove();\n },\n _removeAssociates: function (table) {\n $(table).find('th, td').removeAttr('id headers');\n },\n _swapToHeaderCells: function (thead) {\n var tds = $(thead).find('td');\n var swapCell = function (index, cell) {\n dom.changeTag(cell, TH, false);\n };\n tds.each(swapCell);\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 numberOfHeaderRows = dom._getNumberOfHeaderRows(table);\n var cellsWithHeaders;\n if (cmd.cellsWithHeadersAssociated(table)) {\n cellsWithHeaders = 'ids';\n } else if ($(table).find('th[scope]').length > 0) {\n cellsWithHeaders = 'scope';\n } else {\n cellsWithHeaders = 'none';\n }\n dom.reMapTableColumns(table, COL_INDEX);\n var numberOfColumns = dom._getNumberOfColumns(table);\n var numberOfHeaderColumns = dom._getNumberOfHeaderColumns(table, numberOfHeaderRows);\n dom.clearTableMappings(table, COL_INDEX);\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: numberOfColumns,\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 headerRows: numberOfHeaderRows,\n headerColumns: numberOfHeaderColumns,\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 _lastInCollection: function (collection) {\n return collection[collection.length - 1];\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 if (isFormatted === true) {\n ui.parent().addClass('k-hidden k-state-disabled');\n ui.attr('disabled', 'disabled');\n ui.addClass('k-state-disabled');\n } else {\n ui.parent().removeClass('k-hidden k-state-disabled');\n ui.removeAttr('disabled');\n ui.removeClass('k-state-disabled');\n }\n }\n });\n kendo.ui.editor.TableWizardTool = TableWizardTool;\n kendo.ui.editor.TableWizardCommand = TableWizardCommand;\n registerTool('tableWizard', new TableWizardEditTool({\n command: TableWizardCommand,\n insertNewTable: false,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Table Wizard'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/table-wizard/table-wizard-dialog', [\n 'editor/table-wizard/table-wizard-command',\n 'kendo.tabstrip'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, numericTextBoxSettings = {\n format: '0',\n min: 0\n }, units = [\n 'px',\n 'em'\n ], borderStyles = [\n 'solid',\n 'dotted',\n 'dashed',\n 'double',\n 'groove',\n 'ridge',\n 'inset',\n 'outset',\n 'initial',\n 'inherit',\n 'none',\n 'hidden'\n ];\n var DEFAULT_NUMBER_OF_COLS_AND_ROWS = 4;\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.value();\n tableProperties.headerRows = accessibilityView.headerRows.value();\n tableProperties.headerColumns = accessibilityView.headerColumns.value();\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 that = this;\n var components = that.components;\n var tableView = components.tableView = {};\n var tableProperties = table.tableProperties = table.tableProperties || {};\n tableProperties.borderStyle = tableProperties.borderStyle || '';\n var onColumnsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerColumnsNumeric = accessibilityView.headerColumns;\n var currentNumberOfColumnsHeaders = headerColumnsNumeric.value();\n var numberOfColumns = args.sender.value();\n if (numberOfColumns < currentNumberOfColumnsHeaders) {\n headerColumnsNumeric.value(numberOfColumns);\n }\n headerColumnsNumeric.max(numberOfColumns);\n };\n var onRowsNumberChange = function (args) {\n var accessibilityView = that.components.accessibilityView;\n var headerRowsNumeric = accessibilityView.headerRows;\n var currentNumberOfRowHeaders = headerRowsNumeric.value();\n var numberOfRows = args.sender.value();\n if (numberOfRows < currentNumberOfRowHeaders) {\n headerRowsNumeric.value(numberOfRows);\n }\n headerRowsNumeric.max(numberOfRows);\n };\n that._addUnit(units, tableProperties.widthUnit);\n that._addUnit(units, tableProperties.heightUnit);\n that._initNumericTextbox(element.find('#k-editor-table-width'), 'width', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-height'), 'height', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-columns'), 'columns', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onColumnsNumberChange\n });\n that._initNumericTextbox(element.find('#k-editor-table-rows'), 'rows', tableProperties, tableView, {\n min: 1,\n value: DEFAULT_NUMBER_OF_COLS_AND_ROWS,\n change: onRowsNumberChange\n });\n that._initDropDownList(element.find('#k-editor-table-width-type'), 'widthUnit', tableProperties, tableView, units);\n that._initDropDownList(element.find('#k-editor-table-height-type'), 'heightUnit', tableProperties, tableView, units);\n that._initNumericTextbox(element.find('#k-editor-table-cell-spacing'), 'cellSpacing', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-table-cell-padding'), 'cellPadding', tableProperties, tableView);\n that._initTableAlignmentDropDown(element.find('#k-editor-table-alignment'), tableProperties);\n that._initColorPicker(element.find('#k-editor-table-bg'), 'bgColor', tableProperties, tableView);\n that._initInput(element.find('#k-editor-css-class'), 'className', tableProperties, tableView);\n that._initInput(element.find('#k-editor-id'), 'id', tableProperties, tableView);\n that._initNumericTextbox(element.find('#k-editor-border-width'), 'borderWidth', tableProperties, tableView);\n that._initColorPicker(element.find('#k-editor-border-color'), 'borderColor', tableProperties, tableView);\n that._initBorderStyleDropDown(element.find('#k-editor-border-style'), 'borderStyle', tableProperties, tableView, borderStyles);\n that._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._initBorderStyleDropDown(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._initAssociationDropDown(element.find('#k-editor-cells-headers'), 'cellsWithHeaders', { valuePrimitive: true }, tableProperties, accessibilityView);\n this._initNumericTextbox(element.find('#k-editor-table-header-rows'), 'headerRows', tableProperties, accessibilityView, { max: tableProperties.rows || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\n this._initNumericTextbox(element.find('#k-editor-table-header-columns'), 'headerColumns', tableProperties, accessibilityView, { max: tableProperties.columns || DEFAULT_NUMBER_OF_COLS_AND_ROWS });\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 _initBorderStyleDropDown: function (element, property, data, storage, dataSource) {\n var component = storage[property] = element.kendoDropDownList({\n dataSource: dataSource,\n optionLabel: this.options.messages.borderNone\n }).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 _initAssociationDropDown: function (element, name, settings, data, storage) {\n var component = storage[name] = element.kendoDropDownList(settings).data('kendoDropDownList');\n this._setComponentValue(component, data, name);\n },\n _setComponentValue: function (component, data, property) {\n if (property in data) {\n component.value(data[property]);\n }\n },\n _initColorPicker: function (element, property, data, storage) {\n var component = storage[property] = element.kendoColorPicker({\n buttons: false,\n clearButton: true\n }).data('kendoColorPicker');\n if (data[property]) {\n component.value(data[property]);\n }\n },\n _initInput: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.value = data[property];\n }\n },\n _initCheckbox: function (element, property, data, storage) {\n var component = storage[property] = element.get(0);\n if (property in data) {\n component.checked = data[property];\n }\n },\n destroy: function () {\n this._destroyComponents(this.components.tableView);\n this._destroyComponents(this.components.cellView);\n this._destroyComponents(this.components.accessibilityView);\n this._destroyComponents(this.components);\n delete this.components;\n },\n _destroyComponents: function (components) {\n for (var widget in components) {\n if (components[widget].destroy) {\n components[widget].destroy();\n }\n delete components[widget];\n }\n },\n _dialogTemplate: function (messages) {\n return kendo.template(dialogTemplate)({ messages: messages });\n }\n });\n kendo.ui.editor.TableWizardDialog = TableWizardDialog;\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.editor', [\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.resizable',\n 'kendo.window',\n 'kendo.colorpicker',\n 'kendo.imagebrowser',\n 'kendo.numerictextbox',\n 'util/undoredostack',\n 'editor/main',\n 'editor/dom',\n 'editor/serializer',\n 'editor/range',\n 'editor/command',\n 'editor/components',\n 'editor/toolbar',\n 'editor/immutables',\n 'editor/plugins/viewhtml',\n 'editor/plugins/link',\n 'editor/plugins/lists',\n 'editor/plugins/formatting',\n 'editor/plugins/image',\n 'editor/plugins/import',\n 'editor/plugins/insert',\n 'editor/plugins/export',\n 'editor/plugins/indent',\n 'editor/plugins/linebreak',\n 'editor/plugins/format',\n 'editor/plugins/inlineformat',\n 'editor/plugins/formatblock',\n 'editor/plugins/file',\n 'editor/plugins/tables',\n 'editor/plugins/clipboard',\n 'editor/plugins/keyboard',\n 'editor/plugins/exportpdf',\n 'editor/plugins/print',\n 'editor/plugins/formatpainter',\n 'editor/resizing/column-resizing',\n 'editor/resizing/row-resizing',\n 'editor/resizing/element-resizing',\n 'editor/resizing/element-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}));"]}