@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 9.93 kB
JavaScript
module.exports=function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}({0:function(t,e,i){t.exports=i(967)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},957:function(t,e){t.exports=require("./inlineformat")},967:function(t,e,i){var n,s,r;!function(o,define){s=[i(957)],n=o,r="function"==typeof n?n.apply(e,s):n,!(void 0!==r&&(t.exports=r))}(function(){!function(t,e){function i(t,e){for(var i=t.length;i--&&!e.test(t[i]););return i}function n(t,e){var i=e.exec(t);return i?i.index:-1}var s=window.kendo,r=s.Class,o=t.extend,a=t.proxy,l=s.ui.editor,d=l.Dom,c=l.RangeUtils,h=l.EditorUtils,f=l.Command,u=l.Tool,k=l.ToolTemplate,x=l.InlineFormatter,m=l.InlineFormatFinder,p=c.textNodes,g=c.editableTextNodes,v=l.EditorUtils.registerTool,b=s.keys,_="http://",T=/^\w*:\/\//,w=/[\w\/\$\-_\*\?]/i,y=r.extend({findSuitable:function(t){return d.parentOfType(t,["a"])}}),N=r.extend({init:function(){this.finder=new y},apply:function(t,e){var i,n,s,r,o,a,l,h=this.immutables?g(t):p(t);if(e.innerText){for(n=c.documentFromRange(t),i=c.getMarkers(t),t.deleteContents(),r=d.create(n,"a",e),t.insertNode(r),o=r.parentNode,"a"==d.name(o)&&d.insertAfter(r,o),d.emptyNode(o)&&d.remove(o),a=r,l=0;l<i.length;l++)d.insertAfter(i[l],a),a=i[l];i.length&&(d.insertBefore(n.createTextNode("\ufeff"),i[1]||i[0]),d.insertAfter(n.createTextNode("\ufeff"),i[1]||i[0]),t.setStartBefore(i[0]),t.setEndAfter(i[i.length-1]))}else s=new x([{tags:["a"]}],e),s.finder=this.finder,s.apply(h)}}),C=f.extend({init:function(t){var e=this;t.formatter={toggle:function(t){var i=e.immutables()?g(t):p(t);new x([{tags:["a"]}]).remove(i)}},this.options=t,f.fn.init.call(this,t)}}),L=f.extend({init:function(t){var e;this.options=t,f.fn.init.call(this,t),this.formatter=new N,t.url?this.exec=function(){this.formatter.immutables=e&&e.immutables(),this.formatter.apply(t.range,{href:t.url,innerText:t.text||t.url,target:t.target})}:(this.attributes=null,this.async=!0)},_dialogTemplate:function(){return s.template("<div class=\"k-editor-dialog k-popup-edit-form\"><div class=\"k-edit-form-container\"><div class='k-edit-label'><label for='k-editor-link-url'>#: messages.linkWebAddress #</label></div><div class='k-edit-field'><input type='text' class='k-textbox' id='k-editor-link-url'></div><div class='k-edit-label k-editor-link-text-row'><label for='k-editor-link-text'>#: messages.linkText #</label></div><div class='k-edit-field k-editor-link-text-row'><input type='text' class='k-textbox' id='k-editor-link-text'></div><div class='k-edit-label'><label for='k-editor-link-title'>#: messages.linkToolTip #</label></div><div class='k-edit-field'><input type='text' class='k-textbox' id='k-editor-link-title'></div><div class='k-edit-label'></div><div class='k-edit-field'><input type='checkbox' class='k-checkbox' id='k-editor-link-target'><label for='k-editor-link-target' class='k-checkbox-label'>#: messages.linkOpenInNewWindow #</label></div><div class='k-edit-buttons k-state-default'><button class=\"k-dialog-insert k-button k-primary\">#: messages.dialogInsert #</button><button class=\"k-dialog-close k-button\">#: messages.dialogCancel #</button></div></div></div>")({messages:this.editor.options.messages})},exec:function(){var e,i,n,s,r=this.editor.options.messages;this._initialText="",this._range=this.lockRange(!0),this.formatter.immutables=this.immutables(),e=p(this._range),i=e.length?this.formatter.finder.findSuitable(e[0]):null,n=e.length&&"img"==d.name(e[0]),s=this.createDialog(this._dialogTemplate(),{title:r.createLink,close:a(this._close,this),visible:!1}),i&&(this._range.selectNodeContents(i),e=p(this._range)),this._initialText=this.linkText(e),s.find(".k-dialog-insert").click(a(this._apply,this)).end().find(".k-dialog-close").click(a(this._close,this)).end().find(".k-edit-field input").keydown(a(this._keydown,this)).end().find("#k-editor-link-url").val(this.linkUrl(i)).end().find("#k-editor-link-text").val(this._initialText).end().find("#k-editor-link-title").val(i?i.title:"").end().find("#k-editor-link-target").attr("checked",!!i&&"_blank"==i.target).end().find(".k-editor-link-text-row").toggle(!n),this._dialog=s.data("kendoWindow").center().open(),t("#k-editor-link-url",s).focus().select()},_keydown:function(t){var e=s.keys;t.keyCode==e.ENTER?this._apply(t):t.keyCode==e.ESC&&this._close(t)},_apply:function(e){var i,n,s,r=this._dialog.element,o=t("#k-editor-link-url",r).val(),a=t("#k-editor-link-text",r);o&&o!=_&&(o.indexOf("@")>0&&!/^(\w+:)|(\/\/)/i.test(o)&&(o="mailto:"+o),this.attributes={href:o},i=t("#k-editor-link-title",r).val(),i&&(this.attributes.title=i),a.is(":visible")&&(n=a.val(),n||this._initialText?n&&n!==this._initialText&&(this.attributes.innerText=d.stripBom(n)):this.attributes.innerText=o),s=t("#k-editor-link-target",r).is(":checked"),this.attributes.target=s?"_blank":null,this.formatter.apply(this._range,this.attributes)),this._close(e),this.change&&this.change()},_close:function(t){t.preventDefault(),this._dialog.destroy(),d.windowFromDocument(c.documentFromRange(this._range)).focus(),this.releaseRange(this._range)},linkUrl:function(t){return t?t.getAttribute("href",2):_},linkText:function(t){var e,i="";for(e=0;e<t.length;e++)i+=t[e].nodeValue;return d.stripBom(i||"")},redo:function(){var t=this.lockRange(!0);this.formatter.apply(t,this.attributes),this.releaseRange(t)}}),A=f.extend({init:function(t){f.fn.init.call(this,t),this.formatter=new N},exec:function(){var t,e,i,n=this.detectLink();n&&(t=this.getRange(),e=new s.ui.editor.Marker,i=t.cloneRange(),i.setStart(n.start.node,n.start.offset),i.setEnd(n.end.node,n.end.offset),t=this.lockRange(),e.add(i),this.formatter.apply(i,{href:this._ensureWebProtocol(n.text)}),e.remove(i),this.releaseRange(t))},detectLink:function(){var t,e,i=this.getRange(),n=i.startContainer,s=i.startOffset,r=n.previousSibling;return!r&&(d.isBom(n)&&!n.nextSibling||!s&&d.isDataNode(n))&&(n=n.parentNode,s=0),t=new P({node:n,offset:s,cancelAtNode:function(t){return t&&"a"===d.name(t)}}),e=new S(t),e.detectLink()},changesContent:function(){return!!this.detectLink()},_ensureWebProtocol:function(t){var e=this._hasProtocolPrefix(t);return e?t:this._prefixWithWebProtocol(t)},_hasProtocolPrefix:function(t){return T.test(t)},_prefixWithWebProtocol:function(t){return _+t}}),R=u.extend({init:function(e){this.options=e,this.finder=new m([{tags:["a"]}]),u.fn.init.call(this,t.extend(e,{command:C}))},initialize:function(t,e){u.fn.initialize.call(this,t,e),t.addClass("k-state-disabled")},update:function(t,e){t.toggleClass("k-state-disabled",!this.finder.isFormatted(e)).removeClass("k-state-hover")}}),S=r.extend({init:function(t){this.traverser=t,this.start=E(),this.end=E(),this.text=""},detectLink:function(){var e,i,n,s,r=this.traverser.node,o=this.traverser.offset;if(d.isDataNode(r)){if(e=r.data.substring(0,o),/\s{2}$/.test(d.stripBom(e)))return}else 0===o&&(i=d.closestEditableOfType(r,d.blockElements),i&&i.previousSibling&&this.traverser.init({node:i.previousSibling}));return this.traverser.traverse(t.proxy(this._detectEnd,this)),this.end.blank()||(this.traverser=this.traverser.clone(this.end),this.traverser.traverse(t.proxy(this._detectStart,this)),this._isLinkDetected()||(n=this.traverser.extendOptions(this.start),s=new F(n),s.traverse(t.proxy(this._skipStartPuntuation,this)),this._isLinkDetected()||(this.start=E()))),this.start.blank()?null:{start:this.start,end:this.end,text:this.text}},_isLinkDetected:function(){return T.test(this.text)||/^w{3}\./i.test(this.text)},_detectEnd:function(t,e){var n=i(t,w);if(n>-1)return this.end.node=e,this.end.offset=n+1,!1},_detectStart:function(t,e){var n=i(t,/\s/),s=n+1;if(this.text=t.substring(s)+this.text,this.start.node=e,this.start.offset=s,n>-1)return!1},_skipStartPuntuation:function(t,e,i){var s=n(t,/\w/),r=s;if(s===-1&&(r=t.length),this.text=this.text.substring(r),this.start.node=e,this.start.offset=r+(0|i),s>-1)return!1}}),E=function(){return{node:null,offset:null,blank:function(){return null===this.node&&null===this.offset}}},D=r.extend({init:function(i){this.node=i.node,this.offset=i.offset===e?d.isDataNode(this.node)&&this.node.length||0:i.offset,this.cancelAtNode=i.cancelAtNode||this.cancelAtNode||t.noop},traverse:function(t){t&&(this.cancel=!1,this._traverse(t,this.node,this.offset))},_traverse:function(t,i,n){var s,r,o,a;if(i&&!this.cancel){if(3!==i.nodeType)return r=this.edgeNode(i),this.cancel=this.cancel||this.cancelAtNode(r),this._traverse(t,r);if(s=i.data,n!==e&&(s=this.subText(s,n)),this.cancel=t(s,i,n)===!1,o=this.next(i),!o)for(a=i.parentNode;!o&&d.isInline(a);)o=this.next(a),a=a.parentNode;this.cancel=this.cancel||this.cancelAtNode(o),this._traverse(t,o)}},extendOptions:function(e){return t.extend({node:this.node,offset:this.offset,cancelAtNode:this.cancelAtNode},e||{})},edgeNode:function(t){},next:function(t){},subText:function(t,e){}}),P=D.extend({subText:function(t,e){return t.substring(0,e)},next:function(t){return t.previousSibling},edgeNode:function(t){return t.lastChild},clone:function(t){var e=this.extendOptions(t);return new P(e)}}),F=D.extend({subText:function(t,e){return t.substring(e)},next:function(t){return t.nextSibling},edgeNode:function(t){return t.firstChild},clone:function(t){var e=this.extendOptions(t);return new F(e)}});o(s.ui.editor,{LinkFormatFinder:y,LinkFormatter:N,UnlinkCommand:C,LinkCommand:L,AutoLinkCommand:A,UnlinkTool:R,DomTextLinkDetection:S,LeftDomTextTraverser:P,RightDomTextTraverser:F}),v("createLink",new u({key:"K",ctrl:!0,command:L,template:new k({template:h.buttonTemplate,title:"Create Link"})})),v("unlink",new R({key:"K",ctrl:!0,shift:!0,template:new k({template:h.buttonTemplate,title:"Remove Link"})})),v("autoLink",new u({key:[b.ENTER,b.SPACEBAR],keyPressCommand:!0,command:A}))}(window.kendo.jQuery)},i(3))}});