@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 15.6 kB
JavaScript
module.exports=function(e){function t(i){if(o[i])return o[i].exports;var n=o[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}({0:function(e,t,o){o(992),e.exports=o(992)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},939:function(e,t){e.exports=require("./range")},992:function(e,t,o){var i,n,s;!function(r,define){n=[o(939)],i=r,s="function"==typeof i?i.apply(t,n):i,!(void 0!==s&&(e.exports=s))}(function(){!function(e,t){var o,i=window.kendo,n=i.ui,s=n.editor,r=n.Widget,l=e.extend,a=e.proxy,d=i.keys,u=".kendoEditor",p=s.EditorUtils,c=s.ToolTemplate,f=s.Tool,h=i._outerWidth,m=i._outerHeight,k="overflowAnchor",v=".k-tool-group:visible a.k-tool:not(.k-state-disabled),.k-tool.k-overflow-anchor:visible,.k-tool-group:visible .k-widget.k-colorpicker,.k-tool-group:visible .k-selectbox,.k-tool-group:visible .k-dropdown,.k-tool-group:visible .k-combobox .k-input",w={"k-i-sup-script":"superscript","k-i-sub-script":"subscript","k-i-align-left":"justifyLeft","k-i-align-center":"justifyCenter","k-i-align-right":"justifyRight","k-i-align-justify":"justifyFull","k-i-list-unordered":"insertUnorderedList","k-i-list-ordered":"insertOrderedList","k-i-login":"import","k-i-indent-increase":"indent","k-i-indent-decrease":"outdent","k-i-link-horizontal":"createLink","k-i-unlink-horizontal":"unlink","k-i-image":"insertImage","k-i-file-add":"insertFile","k-i-html":"viewHtml","k-i-foreground-color":"foreColor","k-i-paint":"backColor","k-i-table-insert":"createTable","k-i-table-column-insert-left":"addColumnLeft","k-i-table-column-insert-right":"addColumnRight","k-i-table-row-insert-above":"addRowAbove","k-i-table-row-insert-below":"addRowBelow","k-i-table-row-delete":"deleteRow","k-i-table-column-delete":"deleteColumn","k-i-table-properties":"tableWizard","k-i-table-wizard":"tableWizardInsert","k-i-clear-css":"cleanFormatting"},b=f.extend({initialize:function(t,o){t.attr({unselectable:"on"});var i=o.editor.toolbar;t.attr("aria-controls",o.editor.element.attr("id")).on("click",e.proxy(function(){this.overflowPopup.toggle()},i))},options:{name:k},command:e.noop,update:e.noop,destroy:e.noop});p.registerTool(k,new b({key:"",ctrl:!0,template:new c({template:p.overflowAnchorTemplate})})),o=r.extend({init:function(e,t){var o=this;t=l({},t,{name:"EditorToolbar"}),r.fn.init.call(o,e,t),t.popup&&o._initPopup(),t.resizable&&t.resizable.toolbar&&(o._resizeHandler=i.onResize(function(){o.resize(!0)}),o.element.addClass("k-toolbar-resizable"))},events:["execute"],groups:{basic:["bold","italic","underline","strikethrough"],scripts:["subscript","superscript"],alignment:["justifyLeft","justifyCenter","justifyRight","justifyFull"],links:["insertImage","insertFile","createLink","unlink"],lists:["insertUnorderedList","insertOrderedList","indent","outdent"],tables:["createTable","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn"],advanced:["viewHtml","cleanFormatting","print","pdf","exportAs","import"],fonts:["fontName","fontSize"],colors:["foreColor","backColor"]},overflowFlaseTools:["formatting","fontName","fontSize","foreColor","backColor","insertHtml"],_initPopup:function(){var t=this;this.window=e(this.element).wrap("<div class='editorToolbarWindow k-header' />").parent().prepend("<button class='k-button k-bare k-editortoolbar-dragHandle'><span class='k-icon k-i-handler-drag' /></button>").kendoWindow({title:!1,resizable:!1,draggable:{dragHandle:".k-editortoolbar-dragHandle"},animation:{open:{effects:"fade:in"},close:{effects:"fade:out"}},minHeight:42,visible:!1,autoFocus:!1,actions:[],dragend:function(){this._moved=!0}}).on("mousedown",function(o){e(o.target).is(".k-icon")||(t.preventPopupHide=!0)}).on("focusout",function(){t.options.editor.element.focusout()}).data("kendoWindow")},_toggleOverflowStyles:function(e,t){e.find("> li").toggleClass("k-item k-state-default",t).find(".k-tool:not(.k-state-disabled),.k-overflow-button").toggleClass("k-overflow-button k-button",t)},_initOverflowPopup:function(t){var o=this,i="<ul class='k-editor-overflow-popup k-overflow-container k-list-container'></ul>";o.overflowPopup=e(i).appendTo("body").kendoPopup({anchor:t,origin:"bottom right",position:"top right",copyAnchorStyles:!1,open:function(e){this.element.is(":empty")&&e.preventDefault(),o._toggleOverflowStyles(this.element,!0),t.attr("aria-expanded",!0)},close:function(){t.attr("aria-expanded",!1)},activate:a(o.focusOverflowPopup,o)}).data("kendoPopup")},items:function(){var e,t,o=this.options.resizable&&this.options.resizable.toolbar;return t=this.element.children().find("> *, select"),o&&(e=this.overflowPopup,t=t.add(e.element.children().find("> *"))),t},focused:function(){return this.element.find(".k-state-focused").length>0||this.preventPopupHide||this.overflowPopup&&this.overflowPopup.visible()},toolById:function(e){var t,o=this.tools;for(t in o)if(t.toLowerCase()==e)return o[t]},toolGroupFor:function(t){var o,i=this.groups;if(this.isCustomTool(t))return"custom";for(o in i)if(e.inArray(t,i[o])>=0)return o},bindTo:function(t){var o=this,i=o.window;o._editor&&o._editor.unbind("select",a(o.resize,o)),o._editor=t,o.options.resizable&&o.options.resizable.toolbar&&t.options.tools.push(k),o.tools=o.expandTools(t.options.tools),o.render(),o.element.find(".k-combobox .k-input").keydown(function(t){var o=e(this).closest(".k-combobox").data("kendoComboBox"),i=t.keyCode;i==d.RIGHT||i==d.LEFT?o.close():i==d.DOWN&&(o.dropDown.isOpened()||(t.stopImmediatePropagation(),o.open()))}),o._attachEvents(),o.items().each(function(){var i,n=o._toolName(this),s="moreVertical"!==n?o.tools[n]:o.tools.overflowAnchor,r=s&&s.options,l=t.options.messages,a=r&&r.tooltip||l[n],d=e(this);s&&s.initialize&&("fontSize"!=n&&"fontName"!=n||(i=l[n+"Inherit"],d.find("input").val(i).end().find("span.k-input").text(i).end()),s.initialize(d,{title:o._appendShortcutSequence(a,s),editor:o._editor}),d.closest(".k-widget",o.element).addClass("k-editor-widget"),d.closest(".k-colorpicker",o.element).next(".k-colorpicker").addClass("k-editor-widget"))}),t.bind("select",a(o.resize,o)),o.update(),i&&i.wrapper.css({top:"",left:"",width:""})},show:function(){var e,t,o,n=this,s=n.window,r=n.options.editor,l=i.support.browser;s&&(e=s.wrapper,t=r.element,e.is(":visible")&&n.window.options.visible||(e[0].style.width||e.width(this._getWindowWidth()),s._moved||(o=t.offset(),e.css({top:Math.max(0,parseInt(o.top,10)-m(e)-parseInt(n.window.element.css("padding-bottom"),10)),left:Math.max(0,parseInt(o.left,10))})),(l.msie||l.edge)&&n._overlaps(t)?setTimeout(function(){s.open()},0):s.open()))},_getWindowWidth:function(){var e=this,t=e.window.wrapper,o=e.options.editor.element;return h(o)-parseInt(t.css("border-left-width"),10)-parseInt(t.css("border-right-width"),10)},_overlaps:function(e){var t=this.window.wrapper,o=t.offset(),i=o.left,n=o.top,s=e.offset(),r=s.left,l=s.top;return!(r+e.width()<i||r>i+t.width()||l+e.height()<n||l>n+t.height())},hide:function(){this.window&&this.window.close()},focus:function(){var e="tabIndex",t=this.element,o=this._editor.element.attr(e);t.attr(e,o||0).focus().find(v).first().focus(),o||0===o||t.removeAttr(e)},focusOverflowPopup:function(){var e="tabIndex",t=this.overflowPopup.element,o=this._editor.element.attr(e);t.closest(".k-animation-container").addClass("k-overflow-wrapper"),t.attr(e,o||0).find(v).first().focus(),o||0===o||t.removeAttr(e)},_appendShortcutSequence:function(e,t){if(!t.key)return e;var o=e+" (";return t.ctrl&&(o+="Ctrl + "),t.shift&&(o+="Shift + "),t.alt&&(o+="Alt + "),o+=t.key+")"},_nativeTools:["insertLineBreak","insertParagraph","redo","undo","autoLink"],tools:{},isCustomTool:function(e){return!(e in i.ui.Editor.defaultTools)},expandTools:function(t){var o,n,r,a,d=this._nativeTools,u=i.deepExtend({},i.ui.Editor.defaultTools),p={};for(n=0;n<t.length;n++)o=t[n],a=o.name,e.isPlainObject(o)?a&&u[a]?(p[a]=l({},u[a]),l(p[a].options,o)):(r=l({cssClass:"k-i-gear",type:"button",title:""},o),r.name||(r.name="custom"),r.cssClass="k-"+r.name,r.template||"button"!=r.type||(r.template=s.EditorUtils.buttonTemplate,r.title=r.title||r.tooltip),p[a]={options:r}):u[o]&&(p[o]=u[o]);for(n=0;n<d.length;n++)p[d[n]]||(p[d[n]]=u[d[n]]);return p},render:function(){function t(t){var o;return t.getHtml?o=t.getHtml():(e.isFunction(t)||(t=i.template(t)),o=t(s)),e.trim(o)}function o(){c.children().length&&(y&&(c.data("position",_),_++),c.appendTo(w))}function n(t){t!==k?(c=e("<li class='k-tool-group' role='presentation' />"),c.data("overflow",e.inArray(t,C)===-1)):c=e("<li class='k-overflow-tools' />")}var s,r,l,d,u,p,c,f,h=this,m=h.tools,v=h._editor.element,w=h.element.empty(),b=h._editor.options.tools,g=i.support.browser,_=0,y=h.options.resizable&&h.options.resizable.toolbar,C=this.overflowFlaseTools;for(w.empty(),b.length&&(d=b[0].name||b[0]),n(d,C),f=0;f<b.length;f++)d=b[f].name||b[f],s=m[d]&&m[d].options,!s&&e.isPlainObject(d)&&(s=d),r=s&&s.template,"break"==d&&(o(),e("<li class='k-row-break' />").appendTo(h.element),n(d,C)),r&&(p=h.toolGroupFor(d),u==p&&d!=k||(o(),n(d,C),u=p),d==k&&(r.options.title=h.options.messages.overflowAnchor),r=t(r),l=e(r).appendTo(c),"custom"==p&&(o(),n(d,C)),s.exec&&l.hasClass("k-tool")&&l.click(a(s.exec,v[0])));o(),e(h.element).children(":has(> .k-tool)").addClass("k-button-group"),h.options.popup&&g.msie&&g.version<9&&h.window.wrapper.find("*").attr("unselectable","on"),h.updateGroups(),y&&h._initOverflowPopup(h.element.find(".k-overflow-anchor")),h.angular("compile",function(){return{elements:h.element}})},updateGroups:function(){e(this.element).children().each(function(){e(this).addClass("k-state-disabled"),e(this).children().filter(function(){return!e(this).hasClass("k-state-disabled")}).removeClass("k-group-end").first().addClass("k-group-start").end().last().addClass("k-group-end").end().parent().removeClass("k-state-disabled").css("display","")})},decorateFrom:function(t){this.items().filter(".k-decorated").each(function(){var o=e(this).data("kendoSelectBox");o&&o.decorate(t)})},destroy:function(){r.fn.destroy.call(this);var e,t=this.tools;for(e in t)t[e].destroy&&t[e].destroy();this.window&&this.window.destroy(),this._resizeHandler&&i.unbindResize(this._resizeHandler),this.overflowPopup&&this.overflowPopup.destroy()},_attachEvents:function(){var t=this,o=t.overflowPopup?t.overflowPopup.element:e([]);t.attachToolsEvents(t.element.add(o))},attachToolsEvents:function(t){var o=this,n="[role=button].k-tool",s=n+":not(.k-state-disabled)",r=n+".k-state-disabled",l=".k-dropdown",a=".k-colorpicker",p=[n,l,a].join(",");t.off(u).on("mouseenter"+u,s,function(){e(this).addClass("k-state-hover")}).on("mouseleave"+u,s,function(){e(this).removeClass("k-state-hover")}).on("mousedown"+u,p,function(e){e.preventDefault()}).on("keydown"+u,v,function(t){function n(e,t,o){var i=t.find(v),n=i.index(a)+e;return o&&(n=Math.max(0,Math.min(i.length-1,n))),i[n]}var s,r,l,a=this,u=o.options.resizable&&o.options.resizable.toolbar,p=i.support.isRtl(o.element)?-1:1,c=t.keyCode;c==d.RIGHT||c==d.LEFT?r=e(a).is(".k-dropdown")?e(a):n(c==d.RIGHT?1*p:-1*p,o.element,!0):!u||c!=d.UP&&c!=d.DOWN?c==d.HOME?(r=o.element.find(v)[0],t.preventDefault()):c==d.END?(s=o.element.find(v).filter(function(){return"hidden"!==e(this).css("visibility")}),r=s[s.length-1],t.preventDefault()):c==d.ESC?(o.overflowPopup&&o.overflowPopup.visible()&&o.overflowPopup.close(),r=o._editor):c!=d.TAB||t.ctrlKey||t.altKey||(l=u&&e(a.parentElement).hasClass("k-overflow-tool-group")?o.overflowPopup.element:o.element,t.shiftKey?r=n(-1,l):(r=n(1,l),r&&"hidden"!==e(r).closest(".k-overflow-tools").css("visibility")||(r=o._editor))):r=n(c==d.DOWN?1:-1,o.overflowPopup.element,!0),r&&(t.preventDefault(),r.focus()),c!==d.ENTER&&c!==d.SPACEBAR||!e(a).is("a")||e(a).attr("href")||o._executeToolCommand(a,t)}).on("click"+u,s,function(e){o._executeToolCommand(this,e)}).on("click"+u,r,function(e){e.preventDefault()})},_executeToolCommand:function(t,o){var i=this,n=e(t);o.preventDefault(),o.stopPropagation(),n.removeClass("k-state-hover"),n.is("[data-popup]")||i._editor.exec(i._toolName(t))},_toolName:function(t){var o,n,s;if(t)return o=t.className,/k-tool\b/i.test(o)&&(o=t.firstChild.className),n=e.grep(o.split(" "),function(e){return!/^k-(widget|tool|tool-icon|icon|state-hover|header|combobox|dropdown|selectbox|colorpicker)$/i.test(e)}),n[0]?(s=n[0],w[s]&&(s=w[s]),s.indexOf("k-i-")>=0?i.toCamelCase(s.substring(s.indexOf("k-i-")+4)):s.substring(s.lastIndexOf("-")+1)):"custom"},refreshTools:function(){var t=this,o=t._editor,i=o.getRange(),n=s.RangeUtils.textNodes(i),r=o.options.immutables,l=t._immutablesContext(i);n=s.Dom.filterBy(n,s.Dom.htmlIndentSpace,!0),n.length||(n=[i.startContainer]),t.items().each(function(){var o,i=t.tools[t._toolName(this)];i&&(o=e(this),i.update&&i.update(o,n),r&&t._updateImmutablesState(i,o,l))}),this.update()},_immutablesContext:function(e){if(this._editor.options.immutables)return e.collapsed?s.Immutables.immutablesContext(e):0===s.RangeUtils.editableTextNodes(e).length},_updateImmutablesState:function(o,i,n){var r,l,a,d,u,p=o.name,c=i,f=o.options.trackImmutables;if(f===t&&(f=e.inArray(p,s.Immutables.toolsToBeUpdated)>-1),f){if(r=n?"none":"",!i.is(".k-tool")){l=i.data();for(a in l)if(a.match(/^kendo[A-Z][a-zA-Z]*/)){d=l[a],c=d.wrapper;break}}c.css("display",r),u=c.closest("li"),0===u.children(":visible").length&&u.css("display",r)}},update:function(){this.updateGroups()},_resize:function(e){var t=e.width,o=this.options.resizable&&this.options.resizable.toolbar,i=this.overflowPopup,n=this.options.editor.element,s=this.window;this.refreshTools(),o&&(s&&(s.wrapper.width(this._getWindowWidth()),s._moved||s.wrapper.css({left:Math.max(0,parseInt(n.offset().left,10))})),i.visible()&&i.close(!0),this._refreshWidths(),this._shrink(t),this._stretch(t),this._toggleOverflowStyles(this.element,!1),this._toggleOverflowStyles(this.overflowPopup.element,!0),this.element.children("li.k-overflow-tools").css("visibility",i.element.is(":empty")?"hidden":"visible"))},_refreshWidths:function(){this.element.children("li").each(function(t,o){var i=e(o);i.data("outerWidth",h(i,!0))})},_shrink:function(e){var t,o,i;if(e<this._groupsWidth())for(o=this._visibleGroups().filter(":not(.k-overflow-tools)"),i=o.length-1;i>=0&&(t=o.eq(i),!(e>this._groupsWidth()));i--)this._hideGroup(t)},_stretch:function(e){var t,o,i;if(e>this._groupsWidth())for(o=this._hiddenGroups(),i=0;i<o.length&&(t=o.eq(i),!(e<this._groupsWidth())&&this._showGroup(t,e));i++);},_hiddenGroups:function(){var t=this.overflowPopup,o=this.element.children("li.k-tool-group").filter(":hidden");return o=o.add(t.element.children("li")),o.sort(function(t,o){return e(t).data("position")>e(o).data("position")?1:-1}),o},_visibleGroups:function(){return this.element.children("li.k-tool-group, li.k-overflow-tools").filter(":visible")},_groupsWidth:function(){var t=0;return this._visibleGroups().each(function(){t+=e(this).data("outerWidth")}),Math.ceil(t)},_hideGroup:function(e){if(e.data("overflow")){var t=this.overflowPopup;e.detach().prependTo(t.element).addClass("k-overflow-tool-group")}else e.hide()},_showGroup:function(t,o){var i,n;return!(!(t.length&&o>this._groupsWidth()+t.data("outerWidth"))||t.hasClass("k-state-disabled"))&&(t.hasClass("k-overflow-tool-group")?(i=t.data("position"),0===i?t.detach().prependTo(this.element):(n=this.element.children().filter(function(t,o){return e(o).data("position")===i-1}),t.detach().insertAfter(n)),t.removeClass("k-overflow-tool-group")):t.show(),!0)}}),e.extend(s,{Toolbar:o})}(window.kendo.jQuery)},o(3))}});