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.5 kB
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(1710)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},20:function(t,e){t.exports=require("../kendo.core")},1710:function(t,e,i){var n;i(3),i=[i(20)],void 0===(e="function"==typeof(n=function(){var u=kendo,a=window,e=u.jQuery,i=u.ui.Widget,r=".kendoFormulaInput",n=u.keys,t={wrapper:"k-spreadsheet-formula-input",listWrapper:"k-spreadsheet-formula-list"},o=["font-family","font-size","font-stretch","font-style","font-weight","letter-spacing","text-transform","line-height"],l={27:"esc",37:"left",39:"right",35:"end",36:"home",32:"spacebar"},c=/(^_|[^a-z0-9]$)/i,s=i.extend({init:function(t,e){i.call(this,t,e);t=this.element;t.addClass(s.classNames.wrapper).attr("contenteditable",true).attr("spellcheck",false).css("white-space","pre");if(e&&e.formulaBarWidth)t.css("max-width",e.formulaBarWidth-16+"px");if(this.options.autoScale)t.on("input",this.scale.bind(this));this._highlightedRefs=[];this._formulaSource();this._formulaList();this._popup();this._tooltip();t.on("keydown",this._keydown.bind(this)).on("keyup",this._keyup.bind(this)).on("blur",this._blur.bind(this)).on("input click",this._input.bind(this)).on("focus",this._focus.bind(this)).on("paste",this._paste.bind(this))},options:{name:"FormulaInput",autoScale:false,filterOperator:"startswith",scalePadding:30,minLength:1,formulaBarWidth:null},events:["keyup","focus"],enable:function(t){if(t===undefined)return this.element.attr("contenteditable")==="true";if(t)this.element.attr("contenteditable",t);else this.element.removeAttr("contenteditable");this.element.toggleClass("k-state-disabled",!t)},getPos:function(){var t=this.element[0];var e=a.getSelection();var i=r(e.focusNode,e.focusOffset);var n=r(e.anchorNode,e.anchorOffset);if(i!=null&&n!=null){if(i>n){var s=i;i=n;n=s}return{begin:i,end:n,collapsed:i==n}}function r(n,s){try{(function t(e){if(e===n)throw s;else if(e.nodeType==1)for(var i=e.firstChild;i;i=i.nextSibling)t(i);else if(e.nodeType==3)s+=e.nodeValue.length})(t)}catch(t){return t}}},setPos:function(t,e){var i=this.element[0];t=l(i,t);if(e!=null)e=l(i,e);else e=t;if(t&&e){var n=document.createRange();n.setStart(t.node,t.pos);n.setEnd(e.node,e.pos);var s=a.getSelection();var r=s.getRangeAt(0);if(o(n,r)){s.removeAllRanges();s.addRange(n)}}function o(t,e){return t.startOffset!=e.startOffset||t.endOffset!=e.endOffset||t.startContainer!=e.endContainer||t.endContainer!=e.endContainer}function l(t,s){try{(function t(e){if(e.nodeType==3){var i=e.nodeValue.length;if(i>=s)throw e;s-=i}else if(e.nodeType==1)for(var n=e.firstChild;n;n=n.nextSibling)t(n)})(t)}catch(t){return{node:t,pos:s}}}},end:function(){this.setPos(this.length())},home:function(){this.setPos(0)},select:function(){this.setPos(0,this.length())},length:function(){return this.value().length},_formulaSource:function(){var t=[];var e;for(var i in u.spreadsheet.calc.runtime.FUNCS)if(!c.test(i)){e=i.toUpperCase();t.push({value:e,text:e})}this.formulaSource=new u.data.DataSource({data:t})},_formulaList:function(){this.list=new u.ui.StaticList(e("<ul />").addClass(s.classNames.listWrapper).insertAfter(this.element),{autoBind:false,selectable:true,change:this._formulaListChange.bind(this),dataSource:this.formulaSource,dataValueField:"value",template:"#:data.value#"});this.list.element.on("mousedown",function(t){t.preventDefault()})},_formulaListChange:function(){var t=this._tokenContext();if(!t||this._mute)return;var e=t.token;var i=this.list.value()[0];var n={replace:true,token:e,end:e.end};if(!t.nextToken||t.nextToken.value!="(")i+="(";this._replaceAt(n,i);this.popup.close()},_popup:function(){this.popup=new u.ui.Popup(this.list.element,{anchor:this.element})},_blur:function(){this.popup.close();clearTimeout(this._focusId);this.trigger("blur")},_isFormula:function(){return/^=/.test(this.value())},_keydown:function(t){var e=t.keyCode;var i=this;if(l[e]){i.popup.close();i._navigated=true}else if(i._move(e)){i._navigated=true;t.preventDefault()}i._keyDownTimeout=setTimeout(i._syntaxHighlight.bind(i))},_keyup:function(){var t=this.popup;var e;if(this._isFormula()&&!this._navigated){e=((this._tokenContext()||{}).token||{}).value;this.filter(e);if(!e||!this.formulaSource.view().length)t.close();else{t[t.visible()?"position":"open"]();this.list.focusFirst()}}this._navigated=false;this._syntaxHighlight();this.trigger("keyup")},_input:function(){this._syntaxHighlight()},_focus:function(){setTimeout(this._sync.bind(this));this._focusTimeout=setTimeout(this._syntaxHighlight.bind(this));this.trigger("focus")},_paste:function(t){t.preventDefault();var e=this.getPos();var i;if(u.support.browser.msie)i=a.clipboardData.getData("Text");else i=t.originalEvent.clipboardData.getData("text/plain");var n=this.value();n=n.substr(0,e.begin)+i+n.substr(e.end);this.value(n);this.setPos(e.begin+i.length);this.scale()},_move:function(t){var e=this.list;var i=this.popup;if(i.visible()){if(t===n.DOWN){e.focusNext();if(!e.focus())e.focusFirst();return true}if(t===n.UP){e.focusPrev();if(!e.focus())e.focusLast();return true}if(t===n.ENTER){e.select(e.focus());i.close();return true}if(t===n.TAB){e.select(e.focus());i.close();return true}if(t===n.PAGEUP){e.focusFirst();return true}if(t===n.PAGEDOWN){e.focusLast();return true}}return t===n.ENTER||t===n.TAB},_tokenContext:function(){var t=this.getPos();var e=this.value();if(!e||!t||!t.collapsed)return null;var i=u.spreadsheet.calc.tokenize(e,this.row(),this.col());var n;for(var s=0;s<i.length;++s){n=i[s];if(f(n,t)&&/^(?:str|sym|func)$/.test(n.type))return{token:n,nextToken:i[s+1]}}return null},_sync:function(){if(this._editorToSync&&this.isActive())this._editorToSync.value(this.value())},_textContainer:function(){var t=u.getComputedStyles(this.element[0],o);t.position="absolute";t.visibility="hidden";t.whiteSpace="pre";t.top=-3333;t.left=-3333;this._span=e("<span style='white-space: pre'/>").css(t).insertAfter(this.element)},_tooltip:function(){this._cellTooltip=e('<div class="k-widget k-tooltip" style="position:absolute; display:none">A1</div>').insertAfter(this.element)},tooltip:function(t){this._cellTooltip.text(t)},toggleTooltip:function(t){this._cellTooltip.toggle(t)},isActive:function(){return this.element[0]===u._activeElement()},filter:function(t){if(!t||t.length<this.options.minLength)return;this._mute=true;this.list.select(-1);this._mute=false;this.formulaSource.filter({field:this.list.options.dataValueField,operator:this.options.filterOperator,value:t})},hide:function(){this.enable(false);this.element.hide();this._cellTooltip.hide()},show:function(){this.enable(true);this.element.show()},row:function(){if(this.activeCell)return this.activeCell.row},col:function(){if(this.activeCell)return this.activeCell.col},position:function(t){if(!t)return;this.show();this.element.css({top:t.top+1+"px",left:t.left+1+"px"});this._cellTooltip.css({top:t.top-this._cellTooltip.height()-10+"px",left:t.left})},resize:function(t){if(!t)return;this.element.css({width:t.width-1,height:t.height-1})},canInsertRef:function(t){return this._canInsertRef(t)},_canInsertRef:function(t){if(this.popup.visible())return null;var i=t;var n=this.getPos();var e,s;if(n&&this._isFormula()){if(n.begin===0)return null;e=u.spreadsheet.calc.tokenize(this.value(),this.row(),this.col());for(var r=0;r<e.length;++r){s=e[r];if(f(s,n))return l(s);if(o(s))return a(e[r-1],s)}return a(s,null)}return null;function o(t){return t.begin>n.begin}function l(t){if(t){if(/^(?:num|str|bool|sym|ref)$/.test(t.type))return{replace:true,token:t,end:t.end};if(/^(?:op|punc|startexp)$/.test(t.type)){if(t.end==n.end)return a(t,e[r+1]);return a(e[r-1],t)}}}function a(t,e){if(t==null)return null;if(e==null){if(/^(?:op|startexp)$/.test(t.type)||h(t.value))return{token:t,end:n.end};return null}if(i){if(t.type=="op"&&/^(?:punc|op)$/.test(e.type))return{token:t,end:n.end}}else{if(t.type=="startexp")return{token:t,end:n.end};if(/^(?:op|punc)$/.test(t.type)&&/^[,;({]$/.test(t.value))return{token:t,end:n.end};if(/^(?:ref|sym)/.test(t.type))return{token:t,replace:true,end:t.end};if(/^(?:ref|sym)/.test(e.type))return{token:e,replace:true,end:e.end}}return false}},refAtPoint:function(t){var e=this._canInsertRef();if(e){var i=t.selection()._ref.simplify().clone().relative(0,0,3);if(t.isMerged(i))i=i.topLeft;if(t!==this.activeSheet)i=i.setSheet(t.name(),true);this._replaceAt(e,i.print(0,0))}},_replaceAt:function(t,e){var i=this.value();var n=t.token;var s=i.substr(t.end);i=i.substr(0,t.replace?n.begin:t.end)+e;var r=i.length;i+=s;this._value(i);this.setPos(r);this.scale();this._syntaxHighlight()},syncWith:function(t){var e=this;var i="input"+r;var n=e._sync.bind(e),s;if(u.support.browser.msie){i="keydown"+r;s=function(){setTimeout(n)}}e._editorToSync=t;e.element.off(i).on(i,s||n)},scale:function(){var t=this.element;var e,i;if(!this._span)this._textContainer();this._span.html(t.html());e=this._span.width()+this.options.scalePadding;i=this._span.height();if(e>t.width())t.width(e);if(i>t.height())t.height(i);this._sync()},_value:function(t){this.element.text(t)},value:function(t){if(t===undefined){var e=this.element[0].innerText;return e.replace(/\n$/,"")}this._value(t);this._syntaxHighlight()},highlightedRefs:function(){return this._highlightedRefs.slice()},_syntaxHighlight:function(){var i=this.getPos();var s=this.value();var n=u.spreadsheet.Pane.classNames.series;var r=[];var o=0;var l=[];var t=[];var a;if(i&&!i.collapsed)return;if(!/^=/.test(s)){if(this._highlightedRefs.length){this._highlightedRefs=[];this.element.text(s)}if(this.popup)this.popup.close();return}else{t=u.spreadsheet.calc.tokenize(s,this.row(),this.col());t.forEach(function(t){t.active=false;t.cls=["k-syntax-"+t.type];if(t.type=="ref"){t.colorClass=n[o++%n.length];t.cls.push(t.colorClass);r.push(t)}if(i&&t.type=="punc")if(h(t.value))l.unshift(t);else if(p(t.value)){var e=l.shift();if(e)if(d(t.value,e.value)){if(f(t,i)||f(e,i)){t.cls.push("k-syntax-paren-match");e.cls.push("k-syntax-paren-match")}}else{t.cls.push("k-syntax-error");e.cls.push("k-syntax-error")}else t.cls.push("k-syntax-error")}if(i&&f(t,i)){t.cls.push("k-syntax-at-point");t.active=true;a=t}if(t.type=="func"&&!v(t.value)&&(!i||!f(t,i)))t.cls.push("k-syntax-error")});t.reverse().forEach(function(t){var e=t.begin,i=t.end;var n=u.htmlEncode(s.substring(e,i));s=s.substr(0,e)+"<span class='"+t.cls.join(" ")+"'>"+n+"</span>"+s.substr(i)});this.element.html(s)}if(i)this.setPos(i.begin,i.end);this._highlightedRefs=r},destroy:function(){this._editorToSync=null;this.element.off(r);clearTimeout(this._focusTimeout);clearTimeout(this._keyDownTimeout);this._cellTooltip=null;this._span=null;this.popup.destroy();this.popup=null;i.fn.destroy.call(this)},insertNewline:function(){var t=this.value();var e=this.getPos();var i=e.end==t.length;t=t.substr(0,e.begin)+(i?"\n\n":"\n"+t.substr(e.end));this.value(t);this.setPos(e.begin+1)}});function h(t){return t=="("||t=="["||t=="{"}function p(t){return t==")"||t=="]"||t=="}"}function d(t,e){return e=="("?t==")":e=="["?t=="]":e=="{"?t=="}":false}function f(t,e){return t.begin<=e.begin&&t.end>=e.end}function v(t){return u.spreadsheet.calc.runtime.FUNCS[t.toLowerCase()]}u.spreadsheet.FormulaInput=s,e.extend(true,s,{classNames:t})})?n.apply(e,i):n)||(t.exports=e)}});