UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 11.6 kB
module.exports=function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}({0:function(e,t,n){e.exports=n(997)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},977:function(e,t){e.exports=require("../command")},997:function(e,t,n){var i,r,o;!function(s,define){r=[n(977)],i=s,o="function"==typeof i?i.apply(t,r):i,!(void 0!==o&&(e.exports=o))}(function(){!function(e){function t(e,t){return t.startContainer===e&&t.endContainer===e&&0===t.startOffset&&t.endOffset==e.childNodes.length}function n(e,t,n){for(var i=e?e[t]:null;i&&!n(i);)i=i[t];return i}var i=window.kendo,r=i.Class,o=i.ui.editor,s=o.RangeUtils,a=o.Dom,d=o.RestorePoint,l=o.Marker,f=i.support.browser,c="<span class='k-br'>\ufeff</span>",u=e.extend,h=a.nodeTypes,m="previousSibling",p="td,th,caption",y="table,tbody,thead,tfoot,tr",g=y+","+p,C=function(t){return!t.collapsed&&e(t.commonAncestorContainer).is(y)},v=r.extend({remove:function(t){var n,i,r,o,d,f,c,u=this,h=new l;h.add(t,!1),n=s.getAll(t,function(t){return e(t).is(g)}),i=s.documentFromRange(t),r=h.start,o=h.end,d=p.split(","),f=a.parentOfType(r,d),c=a.parentOfType(o,d),u._removeContent(r,f,!0),u._removeContent(o,c,!1),e(n).each(function(t,n){n=e(n),(n.is(p)?n:n.find(p)).each(function(e,t){t.innerHTML="&#65279;"})}),f&&!r.previousSibling&&a.insertBefore(i.createTextNode("\ufeff"),r),c&&!o.nextSibling&&a.insertAfter(i.createTextNode("\ufeff"),o),f?t.setStartBefore(r):n[0]&&(f=e(n[0]),f=f.is(p)?f:f.find(p).first(),f.length&&t.setStart(f.get(0),0)),t.collapse(!0),a.remove(r),a.remove(o)},_removeContent:function(t,n,i){if(n){var r,o=i?"nextSibling":"previousSibling",s=function(t){for(;t&&!t[o];)t=t.parentNode;return t&&e.contains(n,t)?t[o]:null};for(t=s(t);t;)r=s(t),a.remove(t),t=r}}}),b=r.extend({init:function(e){this.editor=e},keydown:function(n){var i,r,s,a,l=this,c=l.editor,h=c.keyboard,m=h.isTypingKey(n),p=u(e.Event(),n);return l.editor.trigger("keydown",p),p.isDefaultPrevented()?(n.preventDefault(),!0):!(p.isDefaultPrevented()||!m||h.isTypingInProgress())&&(i=c.getRange(),r=c.body,l.startRestorePoint=new d(i,r),C(i)&&(s=new v(c),s.remove(i),c.selectRange(i)),f.webkit&&!i.collapsed&&t(r,i)&&(r.innerHTML=""),c.immutables&&o.Immutables.immutablesContext(i)&&(a=new o.BackspaceHandler(c),a.deleteSelection(i)),h.startTyping(function(){l._removeBomSpan(),l.endRestorePoint=o._finishUpdate(c,l.startRestorePoint)}),!0)},keyup:function(e){var t=this.editor.keyboard;return this.editor.trigger("keyup",e),!!t.isTypingInProgress()&&(t.endTyping(),!0)},_removeBomSpan:function(){var e=this.editor.getRange().commonAncestorContainer;a.emptyNode(e)||(3===e.nodeType&&(e=e.parentNode),a.insignificant(e)&&(e.textContent=a.stripBom(e.textContent),a.unwrap(e)))}}),T=r.extend({init:function(e){this.editor=e},_addCaret:function(e){var t=a.create(this.editor.document,"a");return!i.support.browser.chrome&&e.firstChild&&e.firstChild.nodeType===h.ELEMENT_NODE&&(e=e.firstChild),a.insertAt(e,t,0),a.stripBomNode(t.previousSibling),a.stripBomNode(t.nextSibling),t},_restoreCaret:function(e){var t=this.editor.createRange();!e.nextSibling&&a.isDataNode(e.previousSibling)?t.setStart(e.previousSibling,e.previousSibling.length):t.setStartAfter(e),t.collapse(!0),this.editor.selectRange(t),a.remove(e)},_handleDelete:function(e){var t,n,i,r=e.endContainer,s=a.closestEditableOfType(r,a.blockElements);return!(!s||!o.RangeUtils.isEndOf(e,s))&&(t=a.next(s),!(!t||"p"!=a.name(t))&&(n=a.significantChildNodes(t)[0],n=n&&a.isInline(n)?n:t,i=this._addCaret(n),this._merge(s,t),this._restoreCaret(i),!0))},_cleanBomBefore:function(e){for(var t=e.startOffset,n=e.startContainer,i=n.nodeValue,r=0;t-r>=0&&"\ufeff"==i[t-r-1];)r++;r>0&&(n.deleteData(t-r,r),e.setStart(n,Math.max(0,t-r)),e.collapse(!0),this.editor.selectRange(e))},_handleBackspace:function(t){var i,r,s,d,l,f,c,u,h,p,y,g,C,v,b=t.startContainer,T=a.closestEditableOfType(b,["li"]),S=a.closestEditableOfType(b,"p,h1,h2,h3,h4,h5,h6".split(",")),_=this.editor;if(a.isDataNode(b)){if(t.collapsed&&/^\s[\ufeff]+$/.test(b.nodeValue))return t.setStart(b,0),t.setEnd(b,b.length),_.selectRange(t),!1;this._cleanBomBefore(t)}return i=n(S,m,function(e){return!a.htmlIndentSpace(e)}),t.collapsed&&t.startOffset!==t.endOffset&&t.startOffset<0&&(t.startOffset=0,t.endOffset=0,_.selectRange(t)),r=T&&o.RangeUtils.isStartOf(t,T),s=T&&e(T).index(),d=r&&s>0,d&&(S=T,i=a.prev(T)),S&&i&&a.is(i,"table")&&o.RangeUtils.isStartOf(t,S)?(""===S.innerText&&(S.innerHTML="\ufeff"),!0):o.RangeUtils.isStartOf(t,S)&&parseInt(S.style.marginLeft,10)>0?(_.exec("outdent"),!0):S&&i&&o.RangeUtils.isStartOf(t,S)||d?(l=a.significantChildNodes(S)[0],l=l&&a.isInline(l)?l:S,f=this._addCaret(l),this._merge(i,S),this._restoreCaret(f),!0):r&&0===s?(c=T.firstChild,c||(T.innerHTML=o.emptyElementContent,c=T.firstChild),u=new o.ListFormatter(a.name(T.parentNode),"p"),t.selectNodeContents(T),u.toggle(t),a.insignificant(c)?t.setStartBefore(c):t.setStart(c,0),_.selectRange(t),!0):(h=b.childNodes[t.startOffset-1],p=t,y=h&&a.closestEditableOfType(h,["a"]),g=n(h||b,m,function(e){return!a.isDataNode(e)||!a.isBom(e)&&e.length>0}),(y||(0===t.startOffset||h)&&a.is(g,"a"))&&(y=y||g,p=_.createRange(),p.setStart(y,y.childNodes.length),p.collapse(!0)),y=y||a.closestEditableOfType(h||p.startContainer,["a"]),C=y&&o.RangeUtils.isEndOf(p,y),C&&(v=new o.UnlinkCommand({range:p,body:_.body,immutables:!!_.immutables}),_.execCommand(v),_._selectionChange()),!1)},_handleSelection:function(t){var n,i,r,s,d,f=t.commonAncestorContainer,c=a.closest(f,"table"),u=o.emptyElementContent,h=this.editor;return C(t)?(i=new v(h),i.remove(t),h.selectRange(t),!0):(r=new l,r.add(t,!1),t.commonAncestorContainer===h.body&&this._surroundFullyContent(r,t),h.immutables&&this._handleImmutables(r),this._surroundFullySelectedAnchor(r,t),t.setStartAfter(r.start),t.setEndBefore(r.end),s=t.startContainer,d=t.endContainer,t.deleteContents(),"li"===d.tagName.toLocaleLowerCase()&&a.emptyNode(d)&&(t.selectNode(d),t.deleteContents()),c&&""===e(c).text()&&(t.selectNode(c),t.deleteContents()),f=t.commonAncestorContainer,"p"===a.name(f)&&""===f.innerHTML&&(f.innerHTML=u,t.setStart(f,0)),this._join(s,d),a.insertAfter(h.document.createTextNode("\ufeff"),r.start),r.remove(t),s=t.startContainer,"tr"==a.name(s)&&(s=s.childNodes[Math.max(0,t.startOffset-1)],t.setStart(s,a.getNodeLength(s))),t.collapse(!0),h.selectRange(t),n=s.parentElement||s.parentNode,a.isDataNode(s)&&!a.emptyNode(n)&&this._cleanBomBefore(t),!0)},_handleImmutables:function(e){var t=o.Immutables.immutableParent,n=t(e.start),i=t(e.start);n&&a.insertBefore(e.start,n),i&&a.insertAfter(e.end,i),n&&a.remove(n),i&&i.parentNode&&a.remove(i)},_surroundFullyContent:function(e,t){var n=t.commonAncestorContainer.children,i=n[0],r=n[n.length-1];this._moveMarker(e,t,i,r)},_surroundFullySelectedAnchor:function(t,n){var i=t.start,r=e(i).closest("a").get(0),o=t.end,s=e(o).closest("a").get(0);this._moveMarker(t,n,r,s)},_moveMarker:function(e,t,n,i){var r=e.start,o=e.end;n&&s.isStartOf(t,n)&&a.insertBefore(r,n),i&&s.isEndOf(t,i)&&a.insertAfter(o,i)},_root:function(e){for(;e&&"body"!=a.name(e)&&e.parentNode&&"body"!=a.name(e.parentNode);)e=e.parentNode;return e},_join:function(e,t){e=this._root(e),t=this._root(t),e!=t&&a.is(t,"p")&&this._merge(e,t)},_merge:function(e,t){for(a.removeTrailingBreak(e);e&&t.firstChild;)1==e.nodeType?(e=a.list(e)?e.children[e.children.length-1]:e,e&&e.appendChild(t.firstChild)):e.nodeType===h.TEXT_NODE?this._mergeWithTextNode(e,t.firstChild):e.parentNode.appendChild(t.firstChild);a.remove(t)},_mergeWithTextNode:function(e,t){e&&e.nodeType===h.TEXT_NODE&&(e.nextSibling&&this._isCaret(e.nextSibling)?a.insertAfter(t,e.nextSibling):a.insertAfter(t,e))},_isCaret:function(t){return e(t).is("a")},keydown:function(e){var t,n,r=this.editor,s=r.getRange(),a=e.keyCode,l=i.keys,f=a===l.BACKSPACE,c=a==l.DELETE;r.immutables&&r.immutables.keydown(e,s)||(!f&&!c||s.collapsed?f?t="_handleBackspace":c&&(t="_handleDelete"):t="_handleSelection",t&&(n=new d(s,r.body),this[t](s)&&(e.preventDefault(),o._finishUpdate(r,n))))},deleteSelection:function(e){this._handleSelection(e)},keyup:e.noop}),S=r.extend({init:function(e){this.editor=e,this.systemCommandIsInProgress=!1},createUndoCommand:function(){this.startRestorePoint=this.endRestorePoint=o._finishUpdate(this.editor,this.startRestorePoint)},changed:function(){return!!this.startRestorePoint&&this.startRestorePoint.html!=this.editor.body.innerHTML},keydown:function(e){var t=this,n=t.editor,i=n.keyboard;return i.isModifierKey(e)?(i.isTypingInProgress()&&i.endTyping(!0),t.startRestorePoint=new d(n.getRange(),n.body),!0):!!i.isSystem(e)&&(t.systemCommandIsInProgress=!0,t.changed()&&(t.systemCommandIsInProgress=!1,t.createUndoCommand()),!0)},keyup:function(){var e=this;return!(!e.systemCommandIsInProgress||!e.changed())&&(e.systemCommandIsInProgress=!1,e.createUndoCommand(),!0)}}),_=r.extend({init:function(e){this.editor=e},keydown:function(e){!f.webkit||e.isDefaultPrevented()||!e.ctrlKey||65!=e.keyCode||e.altKey||e.shiftKey||(this.editor.options.immutables&&this._toSelectableImmutables(),this._selectEditorBody())},_selectEditorBody:function(){var e=this.editor,t=e.getRange();t.selectNodeContents(e.body),setTimeout(function(){e.selectRange(t)})},_toSelectableImmutables:function(){for(var t=this.editor,n=t.body,i=o.Immutables.immutable,r=a.emptyTextNode,s=n.firstChild,d=n.lastChild;r(s);)s=s.nextSibling;for(;r(d);)d=d.previousSibling;s&&i(s)&&e(c).prependTo(n),d&&i(d)&&e(c).appendTo(n)},keyup:e.noop}),k=r.extend({init:function(e){this.handlers=e,this.typingInProgress=!1},isCharacter:function(e){return e>=48&&e<=90||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||229==e},toolFromShortcut:function(t,n){var i,r,o=String.fromCharCode(n.keyCode),s=this._getShortcutModifier(n,navigator.platform);for(i in t)if(r=e.extend({ctrl:!1,alt:!1,shift:!1},t[i].options),(r.key==o||r.key==n.keyCode)&&r.ctrl==s&&r.alt==n.altKey&&r.shift==n.shiftKey)return i},_getShortcutModifier:function(e,t){var n=t.toUpperCase().indexOf("MAC")>=0;return n?e.metaKey:e.ctrlKey},toolsFromShortcut:function(t,n){var i,r,o,s=String.fromCharCode(n.keyCode),a=[],d=function(e){return e==s||e==n.keyCode||e==n.charCode};for(i in t)r=e.extend({ctrl:!1,alt:!1,shift:!1},t[i].options),o=Array.isArray(r.key)?e.grep(r.key,d).length>0:d(r.key),o&&r.ctrl==n.ctrlKey&&r.alt==n.altKey&&r.shift==n.shiftKey&&a.push(t[i]);return a},isTypingKey:function(e){var t=e.keyCode;return this.isCharacter(t)&&!e.ctrlKey&&!e.altKey||32==t||13==t||8==t||46==t&&!e.shiftKey&&!e.ctrlKey&&!e.altKey},isModifierKey:function(e){var t=e.keyCode;return 17==t&&!e.shiftKey&&!e.altKey||16==t&&!e.ctrlKey&&!e.altKey||18==t&&!e.ctrlKey&&!e.shiftKey},isSystem:function(e){return 46==e.keyCode&&e.ctrlKey&&!e.altKey&&!e.shiftKey},startTyping:function(e){this.onEndTyping=e,this.typingInProgress=!0},stopTyping:function(){this.typingInProgress&&this.onEndTyping&&this.onEndTyping(),this.typingInProgress=!1},endTyping:function(t){var n=this;n.clearTimeout(),t?n.stopTyping():n.timeout=window.setTimeout(e.proxy(n.stopTyping,n),1e3)},isTypingInProgress:function(){return this.typingInProgress},clearTimeout:function(){window.clearTimeout(this.timeout)},notify:function(e,t){var n,i=this.handlers;for(n=0;n<i.length&&!i[n][t](e);n++);},keydown:function(e){this.notify(e,"keydown")},keyup:function(e){this.notify(e,"keyup")}});u(o,{TypingHandler:b,SystemHandler:S,BackspaceHandler:T,SelectAllHandler:_,Keyboard:k})}(window.kendo.jQuery)},n(3))}});