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