kendo-ui-core
Version:
3 lines (2 loc) • 7.8 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.dropdownlist.min","kendo.datepicker.min","kendo.numerictextbox.min","kendo.validator.min","kendo.binder.min","kendo.icons.min"],e):e()}((function(){!function(e,t){var i=window.kendo,n=i.ui,o=n.Widget,a=e.extend,r=i.isFunction,l=e.isPlainObject,d=e.inArray,s=/("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,u="change",p="equalSet",c=["url","email","number","date","boolean"];function f(e){return(e=null!=e?e:"").type||i.type(e)||"string"}function v(e){var t,n,o=(e.model.fields||e.model)[e.field],a=f(o),s=o?o.validation:{},u=o?o.attributes:{},p=i.attr("type"),v=i.attr("bind"),m={id:e.id||e.field,name:e.field,title:e.title?e.title:e.field};for(t in s){if(n=s[t],d(t,c)>=0)m[p]=t;else if(!r(n)){var k=i.getCulture();if("number"==typeof n&&k.name.length){var b=k.numberFormat,x=n.toString().replace(".",b["."]);m[t]=x}else m[t]=l(n)?n.value||t:n}m[i.attr(t+"-msg")]=n.message,m.autocomplete="off"}for(var h in u)m[h]=u[h];return d(a,c)>=0&&(m[p]=a),m[v]=("boolean"===a?"checked:":"value:")+e.field,m}function m(e,t){var i=e.attr("id");return i&&(t.id=i,e.removeAttr("id")),t}var k=["AutoComplete","CheckBox","CheckBoxGroup","ColorGradient","ColorPicker","ColorPalette","ComboBox","DateInput","DatePicker","DateTimePicker","DropDownTree","Editor","FlatColorPicker","MaskedTextBox","MultiColumnComboBox","MultiSelect","NumericTextBox","RadioGroup","Rating","Slider","Switch","TimePicker","DropDownList","TextBox","TextArea","Captcha","Signature","TimeDurationPicker"],b={hidden:function(t,i){var n=v(i);e('<input type="hidden"/>').attr(n).appendTo(t)},number:function(t,n){var o=v(n);e('<input type="text"/>').attr(o).appendTo(t).kendoNumericTextBox(a({},n.editorOptions,{format:n.format})),e("<span "+i.attr("for")+'="'+n.field+'" class="k-invalid-msg k-hidden"/>').appendTo(t)},date:function(t,n){var o=v(n),r=n.format;r&&(r=i._extractFormat(r)),o[i.attr("format")]=r,e('<input type="text"/>').attr(o).appendTo(t).kendoDatePicker(a({},n.editorOptions,{format:n.format})),e("<span "+i.attr("for")+'="'+n.field+'" class="k-invalid-msg k-hidden"/>').appendTo(t)},string:function(t,i){var n=v(i);e('<input type="text"/>').attr(n).appendTo(t).kendoTextBox(i.editorOptions)},boolean:function(t,i){var n=v(i);g(e('<input type="checkbox" />').attr(n).kendoCheckBox(i.editorOptions).appendTo(t),t,i)},values:function(t,n){var o=v(n),a=i.stringify(function(e){var t,i,n,o,a,r;if(e&&e.length)for(r=[],t=0,i=e.length;t<i;t++)a=(n=e[t]).text||n.value||n,o=null==n.value?n.text||n:n.value,r[t]={text:a,value:o};return r}(n.values));e("<select "+i.attr("text-field")+'="text"'+i.attr("value-field")+'="value"'+i.attr("source")+"='"+(a?a.replace(/\'/g,"'"):a)+"'"+i.attr("size")+'="'+n.editorOptions.size+'"'+i.attr("role")+'="dropdownlist"/>').attr(o).appendTo(t),e("<span "+i.attr("for")+'="'+n.field+'" class="k-invalid-msg k-hidden"/>').appendTo(t)},kendoEditor:function(t,i){var n=v(i),o=i.editor,a="kendo"+o,r=i.editorOptions,l=function(e,t){if(e.length)return"DropDownTree"===e&&t&&t.checkboxes||"MultiSelect"===e?"<select />":"RadioGroup"===e||"CheckBoxGroup"===e?"<ul />":"Signature"===e?"<div></div>":"Editor"===e||"TextArea"===e?"<textarea />":"<input />"}(o,r);g(e(l).attr(n).appendTo(t)[a](r),t,i)}},x={number:function(t,i){var n=v(i);n=m(t,n),e('<input type="number"/>').attr(n).appendTo(t)},date:function(t,i){var n=v(i);n=m(t,n),e('<input type="date"/>').attr(n).appendTo(t)},string:function(t,i){var n=v(i);n=m(t,n),e('<input type="text" />').attr(n).appendTo(t)},boolean:function(t,i){var n=v(i);n=m(t,n),e('<input type="checkbox" />').attr(n).appendTo(t)},values:function(t,i){var n=v(i),o=i.values,a=e("<select />");for(var r in n=m(t,n),o)e('<option value="'+o[r].value+'">'+o[r].text+"</option>").appendTo(a);a.attr(n).appendTo(t)}};function h(e,t){var i,n,o=e&&e.validation||{};for(i in o)n=o[i],l(n)&&n.value&&(n=n.value),r(n)&&(t[i]=n)}function g(t,i,n){(n&&n.shouldRenderHidden||!1)&&(t.val(!0),i.append(e("<input type='hidden' name='"+n.field+"' value='false' data-skip='true' data-validate='false'/>")))}var y=o.extend({init:function(e,t){var i=this;t.target&&t.target.pane&&(i._isMobile=!0),o.fn.init.call(i,e,t),i._validateProxy=i._validate.bind(i),i.refresh()},events:[u],options:{name:"Editable",editors:b,mobileEditors:x,clearContainer:!0,validateOnBlur:!0,validationSummary:!1,errorTemplate:({message:e})=>'<div class="k-tooltip k-tooltip-error k-validator-tooltip">'+i.ui.icon({icon:"exclamation-circle",iconClass:"k-tooltip-icon"})+`<span class="k-tooltip-content">${e}</span><span class="k-callout k-callout-n"></span></div>`,skipFocus:!1,size:"medium"},editor:function(t,n){var o,r=this,d=r._isMobile?x:r.options.editors,u=l(t),p=u?t.field:t,c=r.options.model||{},v=u&&t.values?"values":f(n),m=u&&"string"==typeof t.editor&&"hidden"===t.editor,b=u&&!m&&t.editor,h=u&&-1!==e.inArray(t.editor,k),g=b?t.editor:d[m?"hidden":v],y=r.element.find("["+i.attr("container-for")+"="+p.replace(s,"\\$1")+"]");g=g||d.string,h?g=d.kendoEditor:b&&"string"==typeof t.editor&&(g=function(e){e.append(t.editor)}),u?(t.editorOptions||(t.editorOptions={}),t.editorOptions=a({},{size:r.options.size},t.editorOptions),o=t):o={field:p,editorOptions:{size:r.options.size}},g(y=y.length?y:r.element,a(!0,{},o,{model:c}))},_validate:function(t){var n,o=this,a=t.value,r=o._validationEventInProgress,l={},d=i.attr("bind"),p=t.field.replace(s,"\\$1"),c=new RegExp("(value|checked)\\s*:\\s*"+p+"\\s*(,|$)");l[t.field]=t.value,(n=e(":input["+d+'*="'+p+'"]',o.element).filter("["+i.attr("validate")+"!='false']").filter((function(){return c.test(e(this).attr(d))}))).length>1&&(n=n.filter((function(){var t=e(this);return!t.is(":radio")||t.val()==a})));try{o._validationEventInProgress=!0,(!o.validatable.validateInput(n)||!r&&o.trigger(u,{values:l}))&&t.preventDefault()}finally{o._validationEventInProgress=!1}},end:function(){return this.validatable.validate()},destroy:function(){var e=this;o.fn.destroy.call(e),e.options.model.unbind("set",e._validateProxy),e.options.model.unbind(p,e._validateProxy),i.unbind(e.element),e.validatable&&e.validatable.destroy(),i.destroy(e.element),e.element.removeData("kendoValidator"),e.element.is("["+i.attr("role")+"=editable]")&&e.element.removeAttr(i.attr("role"))},refresh:function(){var t,n,o,a,r,d,s=this,u=s.options.fields||[],c=s.options.clearContainer?s.element.empty():s.element,f=s.options.model||{},v={};for(Array.isArray(u)||(u=[u]),t=0,n=u.length;t<n;t++)o=u[t],a=l(o)?o.field:o,h(r=(f.fields||f)[a],v),s.editor(o,r);if(!n)for(a in d=f.fields||f)h(d[a],v);!function(t){t.find(":input:not(:button, .k-combobox .k-input, .k-checkbox-list .k-checkbox, .k-radio-list .k-radio, ["+i.attr("role")+"=listbox], ["+i.attr("role")+"=upload], ["+i.attr("skip")+"], [type=file]), ["+i.attr("role")+"=radiogroup]").each((function(){var t=i.attr("bind"),n=this.getAttribute(t)||"",o="checkbox"===this.type||"radio"===this.type?"checked:":"value:",a=this.getAttribute("name")===y.antiForgeryTokenName,r=this.attributes.name&&this.attributes.name.value;-1===n.indexOf(o)&&r&&!a&&(n+=(n.length?",":"")+o+r,e(this).attr(t,n))}))}(c),s.validatable&&s.validatable.destroy(),i.bind(c,s.options.model),s.options.validateOnBlur&&(s.options.model.unbind("set",s._validateProxy).bind("set",s._validateProxy),s.options.model.unbind(p,s._validateProxy).bind(p,s._validateProxy)),s.validatable=new i.ui.Validator(c,{validateOnBlur:s.options.validateOnBlur,validationSummary:s.options.validationSummary,errorTemplate:s.options.errorTemplate||undefined,rules:v}),s.options.skipFocus||c.find(":kendoFocusable").eq(0).trigger("focus")}});y.antiForgeryTokenName="__RequestVerificationToken",n.plugin(y)}(window.kendo.jQuery)}));
//# sourceMappingURL=kendo.editable.min.js.map