UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 8.76 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.checkbox.js"),require("kendo.dropdownlist.js"),require("kendo.datepicker.js"),require("kendo.numerictextbox.js"),require("kendo.textbox.js"),require("kendo.validator.js"),require("kendo.binder.js"),require("kendo.icons.js"),require("kendo.otpinput.js")):"function"==typeof define&&define.amd?define(["exports","kendo.checkbox","kendo.dropdownlist","kendo.datepicker","kendo.numerictextbox","kendo.textbox","kendo.validator","kendo.binder","kendo.icons","kendo.otpinput"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Editable={}))}(this,(function(e){!function(e){var t=window.kendo,i=t.ui,o=i.Widget,n=e.extend,a=t.isFunction,r=e.isPlainObject,d=e.inArray,l=/("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,s="change",u="equalSet",p=["url","email","number","date","boolean"];function c(e){return(e=null!=e?e:"").type||t.type(e)||"string"}function f(e){var i,o,n=(e.model.fields||e.model)[e.field],l=c(n),s=n?n.validation:{},u=n?n.attributes:{},f=t.attr("type"),v=t.attr("bind"),k={id:e.id||e.field,name:e.field,title:e.title?e.title:e.field};for(i in s){if(o=s[i],d(i,p)>=0)k[f]=i;else if(!a(o)){var m=t.getCulture();if("number"==typeof o&&m.name.length){var b=m.numberFormat,x=o.toString().replace(".",b["."]);k[i]=x}else k[i]=r(o)?o.value||i:o}k[t.attr(i+"-msg")]=o.message,k.autocomplete="off"}for(var h in u)k[h]=u[h];return d(l,p)>=0&&(k[f]=l),k[v]=("boolean"===l?"checked:":"value:")+e.field,k}function v(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","OTPInput"],m={hidden:function(t,i){var o=f(i);e('<input type="hidden"/>').attr(o).appendTo(t)},number:function(i,o){var a=f(o);e('<input type="text"/>').attr(a).appendTo(i).kendoNumericTextBox(n({},o.editorOptions,{format:o.format})),e("<span "+t.attr("for")+'="'+o.field+'" class="k-invalid-msg k-hidden"/>').appendTo(i)},date:function(i,o){let a=f(o),r=o.format,d=a.min,l=a.max;r&&(r=t._extractFormat(r)),a[t.attr("format")]=r,e('<input type="text"/>').attr(a).appendTo(i).kendoDatePicker(n({},o.editorOptions,{format:o.format,min:d,max:l})),e("<span "+t.attr("for")+'="'+o.field+'" class="k-invalid-msg k-hidden"/>').appendTo(i)},string:function(t,i){var o=f(i);e('<input type="text"/>').attr(o).appendTo(t).kendoTextBox(i.editorOptions)},boolean:function(i,o){var n=f(o),a=e('<input type="checkbox" />').attr(n).appendTo(i).kendoCheckBox(o.editorOptions);e("<span "+t.attr("for")+'="'+o.field+'" class="k-invalid-msg k-hidden"/>').appendTo(i),h(a,i,o)},values:function(i,o){var n=f(o),a=t.stringify(function(e){var t,i,o,n,a,r;if(e&&e.length)for(r=[],t=0,i=e.length;t<i;t++)a=(o=e[t]).text||o.value||o,n=null==o.value?o.text||o:o.value,r[t]={text:a,value:n};return r}(o.values));e("<select "+t.attr("text-field")+'="text"'+t.attr("value-field")+'="value"'+t.attr("source")+"='"+(a?a.replace(/\'/g,"&apos;"):a)+"'"+t.attr("size")+'="'+o.editorOptions.size+'"'+t.attr("role")+'="dropdownlist"/>').attr(n).appendTo(i),e("<span "+t.attr("for")+'="'+o.field+'" class="k-invalid-msg k-hidden"/>').appendTo(i)},kendoEditor:function(t,i){var o=f(i),n=i.editor,a="kendo"+n,r=i.editorOptions,d=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 />"}(n,r);h(e(d).attr(o).appendTo(t)[a](r),t,i)}},b={number:function(t,i){var o=f(i);o=v(t,o),e('<input type="number"/>').attr(o).appendTo(t)},date:function(t,i){var o=f(i);o=v(t,o),e('<input type="date"/>').attr(o).appendTo(t)},string:function(t,i){var o=f(i);o=v(t,o),e('<input type="text" />').attr(o).appendTo(t)},boolean:function(t,i){var o=f(i);o=v(t,o),e('<input type="checkbox" />').attr(o).appendTo(t)},values:function(t,i){var o=f(i),n=i.values,a=e("<select />");for(var r in o=v(t,o),n)e('<option value="'+n[r].value+'">'+n[r].text+"</option>").appendTo(a);a.attr(o).appendTo(t)}};function x(e,t){var i,o,n=e&&e.validation||{};for(i in n)o=n[i],r(o)&&o.value&&(o=o.value),a(o)&&(t[i]=o)}function h(t,i,o){(o&&o.shouldRenderHidden||!1)&&(t.val(!0),i.append(e("<input type='hidden' name='"+o.field+"' value='false' data-skip='true' data-validate='false'/>")))}var g=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:[s],options:{name:"Editable",editors:m,mobileEditors:b,clearContainer:!0,validateOnBlur:!0,validationSummary:!1,errorTemplate:({message:e})=>'<div class="k-tooltip k-tooltip-error k-validator-tooltip">'+t.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(i,o){var a,d=this,s=d._isMobile?b:d.options.editors,u=r(i),p=u?i.field:i,f=d.options.model||{},v=u&&i.values?"values":c(o),m=u&&"string"==typeof i.editor&&"hidden"===i.editor,x=u&&!m&&i.editor,h=u&&-1!==e.inArray(i.editor,k),g=x?i.editor:s[m?"hidden":v],y=d.element.find("["+t.attr("container-for")+"="+p.replace(l,"\\$1")+"]");g=g||s.string,h?g=s.kendoEditor:x&&"string"==typeof i.editor&&(g=function(e){e.append(i.editor)}),u?(i.editorOptions||(i.editorOptions={}),i.editorOptions=n({},{size:d.options.size},i.editorOptions),a=i):a={field:p,editorOptions:{size:d.options.size}},g(y=y.length?y:d.element,n(!0,{},a,{model:f}))},_validate:function(i){var o,n=this,a=i.value,r=n._validationEventInProgress,d={},u=t.attr("bind"),p=i.field.replace(l,"\\$1"),c=new RegExp("(value|checked)\\s*:\\s*"+p+"\\s*(,|$)");d[i.field]=i.value,(o=e(":input["+u+'*="'+p+'"]',n.element).filter("["+t.attr("validate")+"!='false']").filter((function(){return c.test(e(this).attr(u))}))).length>1&&(o=o.filter((function(){var t=e(this);return!t.is(":radio")||t.val()==a})));try{n._validationEventInProgress=!0,(!n.validatable.validateInput(o)||!r&&n.trigger(s,{values:d}))&&i.preventDefault()}finally{n._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(u,e._validateProxy),t.unbind(e.element),e.validatable&&e.validatable.destroy(),t.destroy(e.element),e.element.removeData("kendoValidator"),e.element.is("["+t.attr("role")+"=editable]")&&e.element.removeAttr(t.attr("role"))},refresh:function(){var i,o,n,a,d,l,s=this,p=s.options.fields||[],c=s._container=s.options.clearContainer?s.element.empty():s.element,f=s.options.model||{},v={};for(Array.isArray(p)||(p=[p]),i=0,o=p.length;i<o;i++)n=p[i],a=r(n)?n.field:n,x(d=(f.fields||f)[a],v),s.editor(n,d);if(!o)for(a in l=f.fields||f)x(l[a],v);!function(i){i.find(":input:not(:button, .k-checkbox-list .k-checkbox, .k-radio-list .k-radio, ["+t.attr("role")+"=listbox], ["+t.attr("role")+"=upload], ["+t.attr("skip")+"], [type=file]), ["+t.attr("role")+"=radiogroup]").each((function(){var i=t.attr("bind"),o=this.getAttribute(i)||"",n="checkbox"===this.type||"radio"===this.type?"checked:":"value:",a=this.getAttribute("name")===g.antiForgeryTokenName,r=this.attributes.name&&this.attributes.name.value;-1===o.indexOf(n)&&r&&!a&&(o+=(o.length?",":"")+n+r,e(this).attr(i,o))}))}(c),s.validatable&&s.validatable.destroy(),t.bind(c,s.options.model),s.options.validateOnBlur&&(s.options.model.unbind("set",s._validateProxy).bind("set",s._validateProxy),s.options.model.unbind(u,s._validateProxy).bind(u,s._validateProxy)),s.validatable=new t.ui.Validator(c,{validateOnBlur:s.options.validateOnBlur,validationSummary:s.options.validationSummary,errorTemplate:s.options.errorTemplate||undefined,rules:v}),s.options.skipFocus||queueMicrotask((()=>{s._focusEditor()}))},_focusEditor:function(){this._container.find(":kendoFocusable").eq(0).trigger("focus")}});g.antiForgeryTokenName="__RequestVerificationToken",i.plugin(g)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"editable",name:"Editable",category:"framework",depends:["checkbox","dropdownlist","datepicker","numerictextbox","validator","binder","icons"],hidden:!0},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.editable.min.js.map