@serenity-is/sleekgrid
Version:
A modern Data Grid / Spreadsheet component
4 lines (3 loc) • 8.63 kB
JavaScript
var Slick=Slick||{};Slick._=(()=>{var g=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var L=(i,e)=>{for(var t in e)g(i,t,{get:e[t],enumerable:!0})},E=(i,e,t,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of b(e))!w.call(i,r)&&r!==t&&g(i,r,{get:()=>e[r],enumerable:!(l=V(e,r))||l.enumerable});return i};var C=i=>E(g({},"__esModule",{value:!0}),i);var D={};L(D,{CheckboxCellEdit:()=>_,DateCellEdit:()=>c,Editors:()=>x,FloatCellEdit:()=>d,IntegerCellEdit:()=>p,LongTextCellEdit:()=>v,PercentCompleteCellEdit:()=>f,TextCellEdit:()=>n,YesNoSelectCellEdit:()=>h});var{escapeHtml:N,H:a,keyCode:A,parsePx:k}=Slick;var u=class{constructor(e){this._args=e,this.init()}destroy(){this._input.remove()}focus(){this._input.focus()}getValue(){return this._input.value}setValue(e){this._input.value=e!=null?e:""}loadValue(e){var t;this._defaultValue=(t=e[this._args.column.field])!=null?t:"",this._input.value=this._defaultValue,this._input.select&&(this._input.defaultValue=this._defaultValue,this._input.select())}serializeValue(){return this._input.value}applyValue(e,t){e[this._args.column.field]=t}isValueChanged(){return!(this._input.value===""&&this._defaultValue==null)&&this._input.value!=this._defaultValue}validate(){if(this._args.column.validator){var e=this._args.column.validator(this._input.value,this._args);if(!e.valid)return e}return{valid:!0,msg:null}}},n=class extends u{init(){let e=this._input=this._args.container.appendChild(a("input",{type:"text",class:"editor-text slick-editor-text"}));e.addEventListener("keydown",this._args.editorCellNavOnLRKeys?T:O),e.focus(),e.select(),y(this,this._args,e)}},p=class extends n{serializeValue(){return parseInt(this._input.value,10)||0}validate(){return isNaN(parseInt(this._input.value,10))?{valid:!1,msg:"Please enter a valid integer"}:super.validate()}},o=class o extends n{getDecimalPlaces(){var e=this._args.column.editorFixedDecimalPlaces;return typeof e=="undefined"&&(e=o.DefaultDecimalPlaces),!e&&e!==0?null:e}loadValue(e){this._defaultValue=e[this._args.column.field];var t=this.getDecimalPlaces();t!==null&&(this._defaultValue||this._defaultValue===0)&&this._defaultValue.toFixed&&(this._defaultValue=this._defaultValue.toFixed(t)),this._input.value=this._defaultValue,this._input.defaultValue=this._defaultValue,this._input.select()}serializeValue(){var e=parseFloat(this._input.value);o.AllowEmptyValue?!e&&e!==0&&(e=""):e=e||0;var t=this.getDecimalPlaces();return t!==null&&(e||e===0)&&e.toFixed&&(e=parseFloat(e.toFixed(t))),e}validate(){return isNaN(parseFloat(this._input.value))?{valid:!1,msg:"Please enter a valid number"}:super.validate()}};o.AllowEmptyValue=!1,o.DefaultDecimalPlaces=null;var d=o,c=class extends n{constructor(){super(...arguments);this._calendarOpen=!1}init(){super.init(),$(this._input).datepicker({showOn:"button",buttonText:"",buttonImage:null,buttonImageOnly:!1,beforeShow:()=>{this._calendarOpen=!0},onClose:()=>{this._calendarOpen=!1,this._args.compositeEditorOptions&&m(this,this._args)}}),this._input.style.width=k(getComputedStyle(this._input).width)-(this._args.compositeEditorOptions?28:18)+"px"}destroy(){$.datepicker.dpDiv.stop(!0,!0),$(this._input).datepicker("hide").datepicker("destroy"),super.destroy()}show(){this._calendarOpen&&$.datepicker.dpDiv.stop(!0,!0).show()}hide(){this._calendarOpen&&$.datepicker.dpDiv.stop(!0,!0).hide()}position(t){this._calendarOpen&&$.datepicker.dpDiv.css("top",t.top+30).css("left",t.left)}},h=class extends u{init(){this._args.container.appendChild(this._input=a("select",{tabIndex:"0",class:"editor-yesno slick-editor-yesno"},a("option",{value:"yes"},"Yes"),a("option",{value:"no"},"No"))),this._input.focus(),y(this,this._args,this._input)}loadValue(e){this._input.value=(this._defaultValue=e[this._args.column.field])?"yes":"no"}serializeValue(){return this._input.value==="yes"}isValueChanged(){return this._input.value!=this._defaultValue}validate(){return{valid:!0,msg:null}}},_=class extends u{init(){this._input=this._args.container.appendChild(a("input",{type:"checkbox",value:"true",class:"editor-checkbox slick-editor-checkbox",hideFocus:!0})),this._input.focus(),y(this,this._args,this._input)}loadValue(e){this._defaultValue=!!e[this._args.column.field],this._input.checked=!!this._defaultValue}preClick(){this._input.checked=!this._input.checked}serializeValue(){return this._input.checked}applyValue(e,t){e[this._args.column.field]=t}isValueChanged(){return this.serializeValue()!==this._defaultValue}validate(){return{valid:!0,msg:null}}},f=class extends p{init(){super.init(),this._input.classList.remove("editor-text","slick-editor-text"),this._input.classList.add("editor-percentcomplete","slick-editor-percentcomplete");var e;this._picker=this._args.container.appendChild(a("div",{class:"slick-editor-percentcomplete-picker"},a("div",{class:"slick-editor-percentcomplete-helper"},a("div",{class:"slick-editor-percentcomplete-wrapper"},a("div",{class:"slick-editor-percentcomplete-slider",ref:t=>e=t}),a("div",{class:"slick-editor-percentcomplete-buttons"},a("button",{"data-val":0},"Not started"),a("button",{"data-val":50},"In Progress"),a("button",{"data-val":100},"Complete")))))),this._input.focus(),this._input.select(),$(e).slider({orientation:"vertical",range:"min",value:this._defaultValue,slide:(t,l)=>{this._input.value=l.value},stop:()=>{this._args.compositeEditorOptions&&m(this,this._args)}}),$(this._picker).find(".slick-editor-percentcomplete-buttons button").on("click",t=>{this._input.value=t.target.dataset.val,$(e).slider("value",t.target.dataset.val)})}destroy(){super.destroy(),this._picker.remove()}},v=class extends u{init(){let e=this._args.compositeEditorOptions;this._container=e?this._args.container:document.body,this._wrapper=this._container.appendChild(a("div",{class:"large-editor-text slick-large-editor-text",style:`z-index:10000; background:white; padding:5px; border:3px solid gray; border-radius:10px;${e?"position: relative; padding: 0; border: 0":"position: absolute"}`},a("textarea",{hidefocus:!0,rows:"5",style:"background:white; width:250px; height:80px; border:0; outline:0",ref:t=>this._input=t}))),e?y(this,this._args,this._input):(this._wrapper.appendChild(a("div",{style:"text-align: right"},a("button",{ref:t=>t.addEventListener("click",this.save.bind(this))},"Save"),a("button",{ref:t=>t.addEventListener("click",this.cancel.bind(this))},"Cancel"))),this._input.addEventListener("keydown",this.handleKeyDown.bind(this)),this.position(this._args.position)),this._input.focus(),this._input.select()}handleKeyDown(e){if(e.key==="Enter"&&e.ctrlKey)this.save();else if(e.key==="Esc"||e.key=="Escape")e.preventDefault(),this.cancel();else if(e.key==="Tab"&&e.shiftKey)e.preventDefault(),this._args.grid.navigatePrev();else if(e.key==="Tab")e.preventDefault(),this._args.grid.navigateNext();else if((e.key==="Left"||e.key==="ArrowLeft"||e.key==="Right"||e.key==="ArrowRight")&&this._args.editorCellNavOnLRKeys){var t=e.target.selectionStart,l=e.target.value.length;(e.key==="Left"||e.key==="ArrowLeft")&&t===0&&this._args.grid.navigatePrev(),(e.key==="Right"||e.key==="ArrowRight")&&t>=l-1&&this._args.grid.navigateNext()}}save(){this._args.commitChanges()}cancel(){this._input.value=this._defaultValue,this._args.cancelChanges()}hide(){this._wrapper.style.display="none"}show(){this._wrapper.style.display=null}position(e){this._wrapper.style.top=e.top-5+"px",this._wrapper.style.left=e.left-5+"px"}destroy(){this._wrapper.remove()}};function y(i,e,t){e.compositeEditorOptions&&t.addEventListener("change",()=>{m(i,e)})}function m(i,e){var t=e.grid.getActiveCell();i.validate().valid&&i.applyValue(e.item,i.serializeValue()),i.applyValue(e.compositeEditorOptions.formValues,i.serializeValue()),e.grid.onCompositeEditorChange.notify({row:t.row,cell:t.cell,item:e.item,column:e.column,formValues:e.compositeEditorOptions.formValues})}function T(i){var e=this.selectionStart,t=this.value.length;((i.key==="Left"||i.key==="ArrowLeft")&&e>0||(i.key==="Right"||i.key==="ArrowRight")&&e<t-1)&&i.stopImmediatePropagation()}function O(i){(i.key==="Left"||i.key==="ArrowLeft"||i.key==="Right"||i.key==="ArrowRight")&&i.stopImmediatePropagation()}var x;(s=>(s.Text=n,s.Integer=p,s.Float=d,s.Date=c,s.YesNoSelect=h,s.Checkbox=_,s.PercentComplete=f,s.LongText=v))(x||(x={}));return C(D);})();
["Data", "Editors", "Formatters", "Plugins"].forEach(ns => Slick._[ns] && (Slick[ns] = Object.assign(Slick[ns] || {}, Slick._[ns])) && delete Slick._[ns]); Object.assign(Slick, Slick._); delete Slick._;
//# sourceMappingURL=slick.editors.min.js.map