slickgrid
Version:
A lightning fast JavaScript grid/spreadsheet
9 lines • 2.39 kB
JavaScript
/**
* SlickGrid v3.0.2
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
* date: 2022-11-14
* file: ./slick.compositeeditor.js
*/
!function(v){v.extend(!0,window,{Slick:{CompositeEditor:function(s,h,u){var f,r=function(){};function i(i){var d=[];this.destroy=function(){for(var i=0;i<d.length;)d[i].destroy(),i++;u.destroy&&u.destroy(),d=[]},this.focus=function(){(f||d[0]).focus()},this.isValueChanged=function(){for(var i=0;i<d.length;){if(d[i].isValueChanged())return!0;i++}return!1},this.serializeValue=function(){for(var i=[],t=0;t<d.length;)i[t]=d[t].serializeValue(),t++;return i},this.applyValue=function(i,t){for(var e=0;e<d.length;)d[e].applyValue(i,t[e]),e++},this.loadValue=function(i){for(var t=0;t<d.length;)d[t].loadValue(i),t++},this.validate=function(i){for(var t,e=[],o=i?v(i):null,n=(f=null,0);n<d.length;){var l,a,s,r=d[n].args&&d[n].args.column||{};r&&(l=v(".item-details-validation.editor-"+r.id),a=v(".item-details-label.editor-"+r.id),r=v("[data-editorid="+r.id+"]"),s=u&&u.validationMsgPrefix||"",(!o||0<r.has(o).length)&&((t=d[n].validate()).valid?l&&(l.text(""),r.removeClass("invalid"),a.removeClass("invalid")):(f=d[n],e.push({index:n,editor:d[n],container:h[n],msg:t.msg}),l&&(l.text(s+t.msg),a.addClass("invalid"),r.addClass("invalid")))),r=a=l=null),n++}return o=null,e.length?{valid:!1,msg:u.validationFailedMsg,errors:e}:{valid:!0,msg:""}},this.hide=function(){for(var i=0;i<d.length;)d[i].hide&&d[i].hide(),i++;u.hide&&u.hide()},this.show=function(){for(var i=0;i<d.length;)d[i].show&&d[i].show(),i++;u.show&&u.show()},this.position=function(i){u.position&&u.position(i)};for(var t,e,o,n,l={},a=0;a<s.length;)s[a].editor&&(t=s[a],(l=v.extend({},i)).container=h[a],l.column=t,l.position=(n=o=void 0,e=h[e=a],o=v(e).offset(),n=v(e).width()||0,e=v(e).height()||0,{top:o&&o.top,left:o&&o.left,bottom:o&&o.top+e,right:o&&o.left+n,width:n,height:e,visible:!0}),l.commitChanges=r,l.cancelChanges=r,l.compositeEditorOptions=u,l.formValues={},o=new t.editor(l),u.editors[t.id]=o,d.push(o)),a++;setTimeout(function(){Array.isArray(d)&&0<d.length&&d[0].focus&&d[0].focus()},0)}return u=v.extend({},{modalType:"edit",validationFailedMsg:"Some of the fields have failed validation",validationMsgPrefix:null,show:null,hide:null,position:null,destroy:null,formValues:{},editors:{}},u),i.prototype=this,i}}})}(jQuery);