jsxgrid 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +7 -0
  2. package/dist/fields/jsgrid.field.XDateTimeField.min.js +2 -2
  3. package/dist/fields/jsgrid.field.XRowSelectField.min.js +2 -2
  4. package/dist/fields/jsgrid.field.Xcheckbox.min.js +2 -2
  5. package/dist/fields/jsgrid.field.Xcontrol.min.js +2 -2
  6. package/dist/fields/jsgrid.field.XimgField.min.js +2 -2
  7. package/dist/fields/jsgrid.field.Xjsoneditor.min.js +2 -2
  8. package/dist/fields/jsgrid.field.Xnumber.min.js +2 -2
  9. package/dist/fields/jsgrid.field.Xselect.min.js +2 -2
  10. package/dist/fields/jsgrid.field.Xtext.min.js +2 -2
  11. package/dist/fields/jsgrid.field.Xtextarea.min.js +2 -2
  12. package/dist/fields/lib/jsGridSummaryPlugin.min.js +1 -1
  13. package/dist/fields/lib/jsgrid.popup.basic.min.js +1 -1
  14. package/dist/i18n/jsgrid-Ko.js +10 -2
  15. package/dist/i18n/jsgrid-cs.js +10 -2
  16. package/dist/i18n/jsgrid-de.js +10 -2
  17. package/dist/i18n/jsgrid-el.js +10 -2
  18. package/dist/i18n/jsgrid-es.js +10 -2
  19. package/dist/i18n/jsgrid-fa.js +10 -2
  20. package/dist/i18n/jsgrid-fr.js +10 -2
  21. package/dist/i18n/jsgrid-he.js +10 -2
  22. package/dist/i18n/jsgrid-it.js +10 -2
  23. package/dist/i18n/jsgrid-ja.js +10 -2
  24. package/dist/i18n/jsgrid-ka.js +10 -2
  25. package/dist/i18n/jsgrid-lt.js +10 -2
  26. package/dist/i18n/jsgrid-pl.js +10 -2
  27. package/dist/i18n/jsgrid-pt-br.js +10 -2
  28. package/dist/i18n/jsgrid-pt.js +10 -2
  29. package/dist/i18n/jsgrid-ru.js +10 -2
  30. package/dist/i18n/jsgrid-tr.js +10 -2
  31. package/dist/i18n/jsgrid-zh-cn.js +10 -2
  32. package/dist/i18n/jsgrid-zh-tw.js +10 -2
  33. package/dist/jsxgrid-fields.js +61 -13
  34. package/dist/jsxgrid-fields.min.js +2 -2
  35. package/dist/jsxgrid-theme.css +1 -1
  36. package/dist/jsxgrid-xfields.js +98 -18
  37. package/dist/jsxgrid-xfields.min.js +2 -2
  38. package/dist/jsxgrid.css +1 -1
  39. package/dist/jsxgrid.js +9 -2
  40. package/dist/jsxgrid.min.js +2 -2
  41. package/package.json +1 -1
  42. package/src/fields/jsgrid.field.XDateTimeField.js +10 -2
  43. package/src/fields/jsgrid.field.XRowSelectField.js +10 -2
  44. package/src/fields/jsgrid.field.Xcheckbox.js +10 -2
  45. package/src/fields/jsgrid.field.Xcontrol.js +9 -1
  46. package/src/fields/jsgrid.field.XimgField.js +10 -2
  47. package/src/fields/jsgrid.field.Xjsoneditor.js +10 -2
  48. package/src/fields/jsgrid.field.Xnumber.js +9 -1
  49. package/src/fields/jsgrid.field.Xselect.js +10 -2
  50. package/src/fields/jsgrid.field.Xtext.js +9 -1
  51. package/src/fields/jsgrid.field.Xtextarea.js +10 -2
  52. package/src/fields/jsgrid.field.checkbox.js +10 -2
  53. package/src/fields/jsgrid.field.control.js +10 -2
  54. package/src/fields/jsgrid.field.number.js +10 -2
  55. package/src/fields/jsgrid.field.select.js +10 -2
  56. package/src/fields/jsgrid.field.text.js +10 -2
  57. package/src/fields/jsgrid.field.textarea.js +10 -2
  58. package/src/i18n/Ko.js +10 -2
  59. package/src/i18n/cs.js +10 -2
  60. package/src/i18n/de.js +10 -2
  61. package/src/i18n/el.js +10 -2
  62. package/src/i18n/es.js +10 -2
  63. package/src/i18n/fa.js +10 -2
  64. package/src/i18n/fr.js +10 -2
  65. package/src/i18n/he.js +10 -2
  66. package/src/i18n/it.js +10 -2
  67. package/src/i18n/ja.js +10 -2
  68. package/src/i18n/ka.js +10 -2
  69. package/src/i18n/lt.js +10 -2
  70. package/src/i18n/pl.js +10 -2
  71. package/src/i18n/pt-br.js +10 -2
  72. package/src/i18n/pt.js +10 -2
  73. package/src/i18n/ru.js +10 -2
  74. package/src/i18n/tr.js +10 -2
  75. package/src/i18n/zh-cn.js +10 -2
  76. package/src/i18n/zh-tw.js +10 -2
  77. package/src/jsgrid.core.js +7 -0
package/README.md CHANGED
@@ -60,6 +60,13 @@ The build is split into independent pieces - include only what you actually use:
60
60
 
61
61
  Individual fields (native or extra) can also be loaded one at a time from `dist/fields/` instead of pulling in a whole bundle.
62
62
 
63
+ `dist/jsxgrid.js` must load before any field file or locale file (`dist/i18n/jsgrid-*.js`) - they all register
64
+ themselves onto the `jsGrid` global. Getting the order wrong doesn't throw an uncaught error: each of those
65
+ files logs a specific `console.error` naming itself and returns without doing anything, and a grid that ends
66
+ up using an unregistered field type logs a `console.warn` and silently falls back to the plain base field
67
+ (no filter/insert/edit UI for that column) instead of failing to render. Check the console first if a field
68
+ or a locale seems to have no effect.
69
+
63
70
 
64
71
  ## Basic Usage
65
72
 
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,n)=>{function e(e){t.Field.call(this,e)}e.prototype=new t.Field({css:"date-field",align:"center",datePickerType:"datetime-local",dateRange:!1,defaultSelected:null,sorter:function(e,t){return new Date(e)-new Date(t)},filterTemplate:function(){var t,e,i,r,a;return this.filtering?(t=this._grid,e=n(),this.dateRange?(a=n("<div class='jsgrid-date-range-wrapper'>"),i=n("<input>",{class:"jsgrid-date-picker jsgrid-date-start",type:this.datePickerType,title:"Period date start"}),r=n("<input>",{class:"jsgrid-date-picker jsgrid-date-end",type:this.datePickerType,title:"Period date end"}),a.val=function(){return{from:i.val(),to:r.val()}},e=this.filterControl=a.append(i).append(r),null!==this.defaultSelected&&(a=this.defaultSelected||{},i.val(a.from||""),r.val(a.to||""),this.defaultSelected=null),this.autosearch&&e.on("change",".jsgrid-date-picker",function(e){t.search()})):(e=this.filterControl=this._createPicker(),null!==this.defaultSelected&&(e.val(this.defaultSelected),this.defaultSelected=null),this.autosearch&&e.on("change",function(e){t.search()})),e):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(e){var t;return e?(t=this.options||{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"},new Date(e.replace(" ","T")).toLocaleDateString(void 0,t)):""},insertTemplate:function(){return this._insertPicker=this._createPicker()},editTemplate:function(e){return this._editPicker=this._createPicker().val(e)},insertValue:function(){return this._insertPicker.val()},editValue:function(){return this._editPicker.val()},_createPicker:function(){return n("<input class='date-picker'>").attr("type",this.datePickerType)}}),t.fields.XDateTimeField=e})(jsGrid,jQuery);
6
+ ((t,a)=>{var e;t?((e=function(e){t.Field.call(this,e)}).prototype=new t.Field({css:"date-field",align:"center",datePickerType:"datetime-local",dateRange:!1,defaultSelected:null,sorter:function(e,t){return new Date(e)-new Date(t)},filterTemplate:function(){var t,e,i,r,n;return this.filtering?(t=this._grid,e=a(),this.dateRange?(n=a("<div class='jsgrid-date-range-wrapper'>"),i=a("<input>",{class:"jsgrid-date-picker jsgrid-date-start",type:this.datePickerType,title:"Period date start"}),r=a("<input>",{class:"jsgrid-date-picker jsgrid-date-end",type:this.datePickerType,title:"Period date end"}),n.val=function(){return{from:i.val(),to:r.val()}},e=this.filterControl=n.append(i).append(r),null!==this.defaultSelected&&(n=this.defaultSelected||{},i.val(n.from||""),r.val(n.to||""),this.defaultSelected=null),this.autosearch&&e.on("change",".jsgrid-date-picker",function(e){t.search()})):(e=this.filterControl=this._createPicker(),null!==this.defaultSelected&&(e.val(this.defaultSelected),this.defaultSelected=null),this.autosearch&&e.on("change",function(e){t.search()})),e):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(e){var t;return e?(t=this.options||{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"},new Date(e.replace(" ","T")).toLocaleDateString(void 0,t)):""},insertTemplate:function(){return this._insertPicker=this._createPicker()},editTemplate:function(e){return this._editPicker=this._createPicker().val(e)},insertValue:function(){return this._insertPicker.val()},editValue:function(){return this._editPicker.val()},_createPicker:function(){return a("<input class='date-picker'>").attr("type",this.datePickerType)}}),t.fields.XDateTimeField=e):window.console&&console.error("[jsxgrid] jsgrid.field.XDateTimeField.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((e,i)=>{function t(t){this.selectedItems=[],this.uid=Date.now().toString(36)+Math.random().toString(36).substring(2),e.Field.call(this,t)}t.prototype=new e.Field({filtering:!1,deleteItemByItem:!1,buttonText:"",selectedItemsAction:function(t){},unselectAll:function(){this.selectedItems=[],this._grid._container.find("[data-uid='"+this.uid+"'] ").prop("checked",!1)},headerTemplate:function(){var e;return this.buttonText?(e=this,i("<button>").attr("type","button").text(e.buttonText).on("click",function(t){e.selectedItemsAction(e.selectedItems),t.stopPropagation()})):""},itemTemplate:function(t,e){var n=this;return i("<input data-uid='"+n.uid+"' type='checkbox'>").prop("checked",-1<i.inArray(e,n.selectedItems)).on("change",function(){i(this).is(":checked")?n.selectItem(e):n.unselectItem(e)}).click(function(t){t.stopPropagation()})},editTemplate:function(){return""},align:"center",selectItem:function(t){this.selectedItems.push(t)},unselectItem:function(e){this.selectedItems=i.grep(this.selectedItems,function(t){return t!==e})}}),e.fields.XRowSelectField=t})(jsGrid,jQuery);
6
+ ((t,n)=>{var e;t?((e=function(e){this.selectedItems=[],this.uid=Date.now().toString(36)+Math.random().toString(36).substring(2),t.Field.call(this,e)}).prototype=new t.Field({filtering:!1,deleteItemByItem:!1,buttonText:"",selectedItemsAction:function(e){},unselectAll:function(){this.selectedItems=[],this._grid._container.find("[data-uid='"+this.uid+"'] ").prop("checked",!1)},headerTemplate:function(){var t;return this.buttonText?(t=this,n("<button>").attr("type","button").text(t.buttonText).on("click",function(e){t.selectedItemsAction(t.selectedItems),e.stopPropagation()})):""},itemTemplate:function(e,t){var i=this;return n("<input data-uid='"+i.uid+"' type='checkbox'>").prop("checked",-1<n.inArray(t,i.selectedItems)).on("change",function(){n(this).is(":checked")?i.selectItem(t):i.unselectItem(t)}).click(function(e){e.stopPropagation()})},editTemplate:function(){return""},align:"center",selectItem:function(e){this.selectedItems.push(e)},unselectItem:function(t){this.selectedItems=n.grep(this.selectedItems,function(e){return e!==t})}}),t.fields.XRowSelectField=e):window.console&&console.error("[jsxgrid] jsgrid.field.XRowSelectField.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((e,i)=>{function t(e){r.call(this,e)}var r=e.Field;t.prototype=new r({sorter:"number",align:"center",autosearch:!0,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,(t=this.filterControl=this._createCheckbox()).prop({readOnly:!0,indeterminate:!0}),t.on("click",function(){var e=i(this);e.prop("readOnly")?e.prop({checked:!1,readOnly:!1}):e.prop("checked")||e.prop({readOnly:!0,indeterminate:!0})}),this.autosearch&&t.on("click",function(){e.search()}),null!==this.defaultSelected&&(t.prop({checked:!!this.defaultSelected,indeterminate:!1,readOnly:!1}),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.get(0).indeterminate?void 0:this.filterControl.is(":checked")?1:0},insertTemplate:function(){return this.inserting?this.insertControl=this._createCheckbox():""},insertValue:function(){return+this.insertControl.is(":checked")},editValue:function(){return+this.editControl.is(":checked")},itemTemplate:function(e){return this._createCheckbox().prop({checked:+e,disabled:!0})},editTemplate:function(e){var t;return this.editing?((t=this.editControl=this._createCheckbox()).prop("checked",+e),t):this.itemTemplate.apply(this,arguments)},_createCheckbox:function(){return i("<input>").attr("type","checkbox")}}),e.fields.Xcheckbox=t})(jsGrid,jQuery);
6
+ ((e,i)=>{var t,r;e?(t=e.Field,(r=function(e){t.call(this,e)}).prototype=new t({sorter:"number",align:"center",autosearch:!0,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,(t=this.filterControl=this._createCheckbox()).prop({readOnly:!0,indeterminate:!0}),t.on("click",function(){var e=i(this);e.prop("readOnly")?e.prop({checked:!1,readOnly:!1}):e.prop("checked")||e.prop({readOnly:!0,indeterminate:!0})}),this.autosearch&&t.on("click",function(){e.search()}),null!==this.defaultSelected&&(t.prop({checked:!!this.defaultSelected,indeterminate:!1,readOnly:!1}),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.get(0).indeterminate?void 0:this.filterControl.is(":checked")?1:0},insertTemplate:function(){return this.inserting?this.insertControl=this._createCheckbox():""},insertValue:function(){return+this.insertControl.is(":checked")},editValue:function(){return+this.editControl.is(":checked")},itemTemplate:function(e){return this._createCheckbox().prop({checked:+e,disabled:!0})},editTemplate:function(e){var t;return this.editing?((t=this.editControl=this._createCheckbox()).prop("checked",+e),t):this.itemTemplate.apply(this,arguments)},_createCheckbox:function(){return i("<input>").attr("type","checkbox")}}),e.fields.Xcheckbox=r):window.console&&console.error("[jsxgrid] jsgrid.field.Xcheckbox.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,r)=>{var e=t.Field;function i(t){e.call(this,t),this.includeInDataExport=!1,this._configInitialized=!1}i.prototype=new e({css:"jsgrid-control-field",align:"center",width:50,filtering:!1,inserting:!1,editing:!1,sorting:!1,buttonClass:"jsgrid-button",modeButtonClass:"jsgrid-mode-button",modeOnButtonClass:"jsgrid-mode-on-button",searchModeButtonClass:"jsgrid-search-mode-button",insertModeButtonClass:"jsgrid-insert-mode-button",editButtonClass:"jsgrid-edit-button",deleteButtonClass:"jsgrid-delete-button",searchButtonClass:"jsgrid-search-button",clearFilterButtonClass:"jsgrid-clear-filter-button",insertButtonClass:"jsgrid-insert-button",updateButtonClass:"jsgrid-update-button",cancelEditButtonClass:"jsgrid-cancel-edit-button",searchModeButtonTooltip:"Switch to searching",insertModeButtonTooltip:"Switch to inserting",editButtonTooltip:"Edit",deleteButtonTooltip:"Delete",searchButtonTooltip:"Search",clearFilterButtonTooltip:"Clear filter",insertButtonTooltip:"Insert",updateButtonTooltip:"Update",cancelEditButtonTooltip:"Cancel edit",editButton:!0,deleteButton:!0,clearFilterButton:!0,modeSwitchButton:!0,_initConfig:function(){this._hasFiltering=this._grid.filtering,this._hasInserting=this._grid.inserting,this._hasInserting&&this.modeSwitchButton&&(this._grid.inserting=!1),this._configInitialized=!0},headerTemplate:function(){this._configInitialized||this._initConfig();var t=this._hasFiltering,e=this._hasInserting;return this.modeSwitchButton&&(t||e)?t&&!e?this._createFilterSwitchButton():e&&!t?this._createInsertSwitchButton():this._createModeSwitchButton():""},itemTemplate:function(t,e){var i=r([]);return this.editButton&&(i=i.add(this._createEditButton(e))),i=this.deleteButton?i.add(this._createDeleteButton(e)):i},filterTemplate:function(){var t=this._createSearchButton();return this.clearFilterButton?t.add(this._createClearFilterButton()):t},insertTemplate:function(){return this._createInsertButton()},editTemplate:function(){return this._createUpdateButton().add(this._createCancelEditButton())},_createFilterSwitchButton:function(){return this._createOnOffSwitchButton("filtering",this.searchModeButtonClass,!0)},_createInsertSwitchButton:function(){return this._createOnOffSwitchButton("inserting",this.insertModeButtonClass,!1)},_createOnOffSwitchButton:function(e,t,i){var n=i,o=r.proxy(function(){s.toggleClass(this.modeOnButtonClass,n)},this),s=this._createGridButton(this.modeButtonClass+" "+t,"",function(t){n=!n,t.option(e,n),o()});return o(),s},_createModeSwitchButton:function(){var e=!1,i=r.proxy(function(){t.attr("title",e?this.searchModeButtonTooltip:this.insertModeButtonTooltip).toggleClass(this.insertModeButtonClass,!e).toggleClass(this.searchModeButtonClass,e)},this),t=this._createGridButton(this.modeButtonClass,"",function(t){e=!e,t.option("inserting",e),t.option("filtering",!e),i()});return i(),t},_createEditButton:function(i){return this._createGridButton(this.editButtonClass,this.editButtonTooltip,function(t,e){t.editItem(i),e.stopPropagation()})},_createDeleteButton:function(i){return this._createGridButton(this.deleteButtonClass,this.deleteButtonTooltip,function(t,e){t.deleteItem(i),e.stopPropagation()})},_createSearchButton:function(){return this._createGridButton(this.searchButtonClass,this.searchButtonTooltip,function(t){t.search()})},_createClearFilterButton:function(){return this._createGridButton(this.clearFilterButtonClass,this.clearFilterButtonTooltip,function(t){t.clearFilter()})},_createInsertButton:function(){return this._createGridButton(this.insertButtonClass,this.insertButtonTooltip,function(t){t.insertItem().done(function(){t.clearInsert()})})},_createUpdateButton:function(){return this._createGridButton(this.updateButtonClass,this.updateButtonTooltip,function(t,e){t.updateItem(),e.stopPropagation()})},_createCancelEditButton:function(){return this._createGridButton(this.cancelEditButtonClass,this.cancelEditButtonTooltip,function(t,e){t.cancelEdit(),e.stopPropagation()})},_createGridButton:function(t,e,i){var n=this._grid;return r("<input>").addClass(this.buttonClass).addClass(t).attr({type:"button",title:e}).on("click",function(t){i(n,t)})},editValue:function(){return""}}),t.fields.Xcontrol=i})(jsGrid,jQuery);
6
+ ((t,r)=>{var e;function i(t){e.call(this,t),this.includeInDataExport=!1,this._configInitialized=!1}t?(e=t.Field,i.prototype=new e({css:"jsgrid-control-field",align:"center",width:50,filtering:!1,inserting:!1,editing:!1,sorting:!1,buttonClass:"jsgrid-button",modeButtonClass:"jsgrid-mode-button",modeOnButtonClass:"jsgrid-mode-on-button",searchModeButtonClass:"jsgrid-search-mode-button",insertModeButtonClass:"jsgrid-insert-mode-button",editButtonClass:"jsgrid-edit-button",deleteButtonClass:"jsgrid-delete-button",searchButtonClass:"jsgrid-search-button",clearFilterButtonClass:"jsgrid-clear-filter-button",insertButtonClass:"jsgrid-insert-button",updateButtonClass:"jsgrid-update-button",cancelEditButtonClass:"jsgrid-cancel-edit-button",searchModeButtonTooltip:"Switch to searching",insertModeButtonTooltip:"Switch to inserting",editButtonTooltip:"Edit",deleteButtonTooltip:"Delete",searchButtonTooltip:"Search",clearFilterButtonTooltip:"Clear filter",insertButtonTooltip:"Insert",updateButtonTooltip:"Update",cancelEditButtonTooltip:"Cancel edit",editButton:!0,deleteButton:!0,clearFilterButton:!0,modeSwitchButton:!0,_initConfig:function(){this._hasFiltering=this._grid.filtering,this._hasInserting=this._grid.inserting,this._hasInserting&&this.modeSwitchButton&&(this._grid.inserting=!1),this._configInitialized=!0},headerTemplate:function(){this._configInitialized||this._initConfig();var t=this._hasFiltering,e=this._hasInserting;return this.modeSwitchButton&&(t||e)?t&&!e?this._createFilterSwitchButton():e&&!t?this._createInsertSwitchButton():this._createModeSwitchButton():""},itemTemplate:function(t,e){var i=r([]);return this.editButton&&(i=i.add(this._createEditButton(e))),i=this.deleteButton?i.add(this._createDeleteButton(e)):i},filterTemplate:function(){var t=this._createSearchButton();return this.clearFilterButton?t.add(this._createClearFilterButton()):t},insertTemplate:function(){return this._createInsertButton()},editTemplate:function(){return this._createUpdateButton().add(this._createCancelEditButton())},_createFilterSwitchButton:function(){return this._createOnOffSwitchButton("filtering",this.searchModeButtonClass,!0)},_createInsertSwitchButton:function(){return this._createOnOffSwitchButton("inserting",this.insertModeButtonClass,!1)},_createOnOffSwitchButton:function(e,t,i){var n=i,o=r.proxy(function(){s.toggleClass(this.modeOnButtonClass,n)},this),s=this._createGridButton(this.modeButtonClass+" "+t,"",function(t){n=!n,t.option(e,n),o()});return o(),s},_createModeSwitchButton:function(){var e=!1,i=r.proxy(function(){t.attr("title",e?this.searchModeButtonTooltip:this.insertModeButtonTooltip).toggleClass(this.insertModeButtonClass,!e).toggleClass(this.searchModeButtonClass,e)},this),t=this._createGridButton(this.modeButtonClass,"",function(t){e=!e,t.option("inserting",e),t.option("filtering",!e),i()});return i(),t},_createEditButton:function(i){return this._createGridButton(this.editButtonClass,this.editButtonTooltip,function(t,e){t.editItem(i),e.stopPropagation()})},_createDeleteButton:function(i){return this._createGridButton(this.deleteButtonClass,this.deleteButtonTooltip,function(t,e){t.deleteItem(i),e.stopPropagation()})},_createSearchButton:function(){return this._createGridButton(this.searchButtonClass,this.searchButtonTooltip,function(t){t.search()})},_createClearFilterButton:function(){return this._createGridButton(this.clearFilterButtonClass,this.clearFilterButtonTooltip,function(t){t.clearFilter()})},_createInsertButton:function(){return this._createGridButton(this.insertButtonClass,this.insertButtonTooltip,function(t){t.insertItem().done(function(){t.clearInsert()})})},_createUpdateButton:function(){return this._createGridButton(this.updateButtonClass,this.updateButtonTooltip,function(t,e){t.updateItem(),e.stopPropagation()})},_createCancelEditButton:function(){return this._createGridButton(this.cancelEditButtonClass,this.cancelEditButtonTooltip,function(t,e){t.cancelEdit(),e.stopPropagation()})},_createGridButton:function(t,e,i){var n=this._grid;return r("<input>").addClass(this.buttonClass).addClass(t).attr({type:"button",title:e}).on("click",function(t){i(n,t)})},editValue:function(){return""}}),t.fields.Xcontrol=i):window.console&&console.error("[jsxgrid] jsgrid.field.Xcontrol.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,n)=>{function e(t){i.call(this,t)}var i=t.Field;e.prototype=new i({autosearch:!0,readOnly:!1,fm_callback:null,editButtonText:"Open FM",defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(t){var e=n('<img class="jsgrid-img" src="">');return e.attr("src",t||""),e.css("max-height","50px"),e.css("max-width","50px"),e},editTemplate:function(t){var e,i;return this.editing?(e=this.fm_callback,i=this.editControl=n('<input type="text">').val(t||""),e?n('<button class="jsgrid-imgField-button">'+this.editButtonText+"</button>").click(function(){e(i)}):i):this.itemTemplate.apply(this,arguments)},insertTemplate:function(){var t,e;return this.inserting?(t=this.fm_callback,e=this.insertControl=n('<input type="text">'),"function"==typeof t?n('<button class="jsgrid-imgField-button">'+this.editButtonText+"</button>").click(function(){t(e)}):e):""},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return n("<input>").attr("type","text").prop("readonly",!!this.readOnly)}}),t.fields.XimgField=e})(jsGrid,jQuery);
6
+ ((t,n)=>{var e,i;t?(e=t.Field,(i=function(t){e.call(this,t)}).prototype=new e({autosearch:!0,readOnly:!1,fm_callback:null,editButtonText:"Open FM",defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(t){var e=n('<img class="jsgrid-img" src="">');return e.attr("src",t||""),e.css("max-height","50px"),e.css("max-width","50px"),e},editTemplate:function(t){var e,i;return this.editing?(e=this.fm_callback,i=this.editControl=n('<input type="text">').val(t||""),e?n('<button class="jsgrid-imgField-button">'+this.editButtonText+"</button>").click(function(){e(i)}):i):this.itemTemplate.apply(this,arguments)},insertTemplate:function(){var t,e;return this.inserting?(t=this.fm_callback,e=this.insertControl=n('<input type="text">'),"function"==typeof t?n('<button class="jsgrid-imgField-button">'+this.editButtonText+"</button>").click(function(){t(e)}):e):""},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return n("<input>").attr("type","text").prop("readonly",!!this.readOnly)}}),t.fields.XimgField=i):window.console&&console.error("[jsxgrid] jsgrid.field.XimgField.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((n,o)=>{function t(t){e.call(this,t)}var e=n.Field;t.prototype=new e({autosearch:!0,readOnly:!1,templates:[],closeText:"Save",editText:"Editor",defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.val()},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return o("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_doModal:function(t,e,r){return n.popup(t,e)},_createJsonEditor:function(t,e){if("undefined"==typeof JSONEditor)throw new Error("Xjsoneditor requires the 'jsoneditor' package to be loaded on the page.");"object"!=typeof(t=t||{})&&(t=JSON.parse(t));var r=o('<div style="height: 500px;">'),e=(o("body").append(r),r=r[0],{templates:this.templates,modes:["code","text","tree"],onError:function(t){alert(t.toString())},mode:e||"view"});return new JSONEditor(r,e,t)},itemTemplate:function(e,t){var r=this;return o("<button>"+r.editText+"</button>").click(function(){var t=r._createJsonEditor(e);return r._doModal(t.container,{onClose:function(){o(t.container).remove(),t.destroy()}}),!1})},insertTemplate:function(){var t;return this.inserting?(t=this).insertControl=o("<textarea>").click(function(){var e=t._createJsonEditor({},"tree"),r=o(this);return t._doModal(e.container,{closeText:t.closeText,onClose:function(){var t=e.get();o.isEmptyObject(t)?r.val({}):r.val(JSON.stringify(t)),e.destroy()}}),!1}):""},editTemplate:function(t){var n;return this.editing?(n=this).editControl=o("<textarea>").val(t).click(function(){var e=o(this),r=n._createJsonEditor(e.val(),"tree");return n._doModal(r.container,{closeText:n.closeText,onClose:function(){var t=r.get();o.isEmptyObject(t)?e.val({}):e.val(JSON.stringify(t)),r.destroy()}}),!1}):this.itemTemplate.apply(this,arguments)}}),n.fields.Xjsoneditor=t})(jsGrid,jQuery);
6
+ ((n,o)=>{var t,e;n?(t=n.Field,(e=function(e){t.call(this,e)}).prototype=new t({autosearch:!0,readOnly:!1,templates:[],closeText:"Save",editText:"Editor",defaultSelected:null,filterTemplate:function(){var t,e;return this.filtering?(t=this._grid,e=this.filterControl=this._createTextBox(),this.autosearch&&e.on("keypress",function(e){13===e.which&&(t.search(),e.preventDefault())}),null!==this.defaultSelected&&(e.val(this.defaultSelected),this.defaultSelected=null),e):""},filterValue:function(){return this.filterControl.val()},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return o("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_doModal:function(e,t,r){return n.popup(e,t)},_createJsonEditor:function(e,t){if("undefined"==typeof JSONEditor)throw new Error("Xjsoneditor requires the 'jsoneditor' package to be loaded on the page.");"object"!=typeof(e=e||{})&&(e=JSON.parse(e));var r=o('<div style="height: 500px;">'),t=(o("body").append(r),r=r[0],{templates:this.templates,modes:["code","text","tree"],onError:function(e){alert(e.toString())},mode:t||"view"});return new JSONEditor(r,t,e)},itemTemplate:function(t,e){var r=this;return o("<button>"+r.editText+"</button>").click(function(){var e=r._createJsonEditor(t);return r._doModal(e.container,{onClose:function(){o(e.container).remove(),e.destroy()}}),!1})},insertTemplate:function(){var e;return this.inserting?(e=this).insertControl=o("<textarea>").click(function(){var t=e._createJsonEditor({},"tree"),r=o(this);return e._doModal(t.container,{closeText:e.closeText,onClose:function(){var e=t.get();o.isEmptyObject(e)?r.val({}):r.val(JSON.stringify(e)),t.destroy()}}),!1}):""},editTemplate:function(e){var n;return this.editing?(n=this).editControl=o("<textarea>").val(e).click(function(){var t=o(this),r=n._createJsonEditor(t.val(),"tree");return n._doModal(r.container,{closeText:n.closeText,onClose:function(){var e=r.get();o.isEmptyObject(e)?t.val({}):t.val(JSON.stringify(e)),r.destroy()}}),!1}):this.itemTemplate.apply(this,arguments)}}),n.fields.Xjsoneditor=e):window.console&&console.error("[jsxgrid] jsgrid.field.Xjsoneditor.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,e,r)=>{function i(t){n.call(this,t)}var n=t.Field;i.prototype=new n({sorter:"number",align:"right",autosearch:!0,readOnly:!1,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextBox():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextBox()).val(t),e):this.itemTemplate.apply(this,arguments)},filterValue:function(){return this.filterControl.val()?parseInt(this.filterControl.val()||0,10):r},insertValue:function(){return this.insertControl.val()?parseInt(this.insertControl.val()||0,10):r},editValue:function(){return this.editControl.val()?parseInt(this.editControl.val()||0,10):r},_createTextBox:function(){return e("<input>").attr("type","number").prop("readonly",!!this.readOnly)}}),t.fields.Xnumber=i})(jsGrid,jQuery);
6
+ ((t,e,i)=>{var r,n;t?(r=t.Field,(n=function(t){r.call(this,t)}).prototype=new r({sorter:"number",align:"right",autosearch:!0,readOnly:!1,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextBox():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextBox()).val(t),e):this.itemTemplate.apply(this,arguments)},filterValue:function(){return this.filterControl.val()?parseInt(this.filterControl.val()||0,10):i},insertValue:function(){return this.insertControl.val()?parseInt(this.insertControl.val()||0,10):i},editValue:function(){return this.editControl.val()?parseInt(this.editControl.val()||0,10):i},_createTextBox:function(){return e("<input>").attr("type","number").prop("readonly",!!this.readOnly)}}),t.fields.Xnumber=n):window.console&&console.error("[jsxgrid] jsgrid.field.Xnumber.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((e,a,l)=>{function t(e){var t;this.items=[],this.selectedIndex=-1,this.valueField="",this.textField="",e.valueField&&e.items&&e.items.length&&(t=e.items[0][e.valueField],this.valueType=typeof t==s?s:"string"),this.sorter=this.valueType,i.call(this,e)}var i=e.Field,s="number";t.prototype=new i({align:"center",autosearch:!0,valueType:s,pseudoElement:null,select2:null,defaultSelected:null,itemTemplate:function(t){var e=this.items,i=this.valueField,s=this.textField,e=i?"object"==typeof t?t:a.grep(e,function(e){return e[i]===t})[0]||{}:e[t],s=s?e[s]:e;return s===l||null===s?"":s},insertTemplate:function(){return this.inserting?this.insertControl=this._createSelect():""},editTemplate:function(e){var t,i;return this.editing?(t=this.editControl=this._createSelect(),(i="object"==typeof(i=e)?e[this.valueField]:e)!==l&&t.val(i),t):this.itemTemplate.apply(this,arguments)},insertValue:function(){var e=this.insertControl.val();return this.valueType===s?parseInt(e||0,10):e},editValue:function(){var e=this.editControl.val();return this.valueType===s?parseInt(e||0,10):e},filterTemplate:function(){var e,i,s,l,t,n;return this.filtering?(Array.isArray(this.items)?(e=this.items.slice(0),this.pseudoElement?e.unshift(this.pseudoElement):((n={})[this.textField]="",n[this.valueField]=null,e.unshift(n))):"object"==typeof this.items&&(e=Object.assign({},this.items),e="object"==typeof this.pseudoElement&&this.pseudoElement?Object.assign({},e,this.pseudoElement):Object.assign({},{"":null},e)),null!==this.defaultSelected&&(i=this.valueField,s=this.defaultSelected,l=-1,a.each(e,function(e,t){if((i?t[i]:e)==s)return l=e,!1}),-1!==l&&(this.selectedIndex=l),this.defaultSelected=null),t=this._grid,n=this.filterControl=this._createSelect(e),this.autosearch&&n.on("change",function(e){t.search()}),n):""},filterValue:function(){var e=this.filterControl.val();return this.valueType===s?parseInt(e||0,10):e},_createSelect:function(e){var t,s=a("<select>"),l=this.valueField,n=this.textField,r=this.selectedIndex;return a.each(e||this.items,function(e,t){var i=l?t[l]:e,t=n?t[n]:t;a("<option>").attr("value",i).text(t).appendTo(s).prop("selected",r===e)}),s.prop("disabled",!!this.readOnly),this.select2&&(t=Object.assign({},this.select2,{width:"100%"}),setTimeout(function(){s.select2(t)},0)),s}}),e.fields.Xselect=t})(jsGrid,jQuery);
6
+ ((e,a,l)=>{var i,s,t;e?(i=e.Field,(t=function(e){var t;this.items=[],this.selectedIndex=-1,this.valueField="",this.textField="",e.valueField&&e.items&&e.items.length&&(t=e.items[0][e.valueField],this.valueType=typeof t==s?s:"string"),this.sorter=this.valueType,i.call(this,e)}).prototype=new i({align:"center",autosearch:!0,valueType:s="number",pseudoElement:null,select2:null,defaultSelected:null,itemTemplate:function(t){var e=this.items,i=this.valueField,s=this.textField,e=i?"object"==typeof t?t:a.grep(e,function(e){return e[i]===t})[0]||{}:e[t],s=s?e[s]:e;return s===l||null===s?"":s},insertTemplate:function(){return this.inserting?this.insertControl=this._createSelect():""},editTemplate:function(e){var t,i;return this.editing?(t=this.editControl=this._createSelect(),(i="object"==typeof(i=e)?e[this.valueField]:e)!==l&&t.val(i),t):this.itemTemplate.apply(this,arguments)},insertValue:function(){var e=this.insertControl.val();return this.valueType===s?parseInt(e||0,10):e},editValue:function(){var e=this.editControl.val();return this.valueType===s?parseInt(e||0,10):e},filterTemplate:function(){var e,i,s,l,t,n;return this.filtering?(Array.isArray(this.items)?(e=this.items.slice(0),this.pseudoElement?e.unshift(this.pseudoElement):((n={})[this.textField]="",n[this.valueField]=null,e.unshift(n))):"object"==typeof this.items&&(e=Object.assign({},this.items),e="object"==typeof this.pseudoElement&&this.pseudoElement?Object.assign({},e,this.pseudoElement):Object.assign({},{"":null},e)),null!==this.defaultSelected&&(i=this.valueField,s=this.defaultSelected,l=-1,a.each(e,function(e,t){if((i?t[i]:e)==s)return l=e,!1}),-1!==l&&(this.selectedIndex=l),this.defaultSelected=null),t=this._grid,n=this.filterControl=this._createSelect(e),this.autosearch&&n.on("change",function(e){t.search()}),n):""},filterValue:function(){var e=this.filterControl.val();return this.valueType===s?parseInt(e||0,10):e},_createSelect:function(e){var t,s=a("<select>"),l=this.valueField,n=this.textField,r=this.selectedIndex;return a.each(e||this.items,function(e,t){var i=l?t[l]:e,t=n?t[n]:t;a("<option>").attr("value",i).text(t).appendTo(s).prop("selected",r===e)}),s.prop("disabled",!!this.readOnly),this.select2&&(t=Object.assign({},this.select2,{width:"100%"}),setTimeout(function(){s.select2(t)},0)),s}}),e.fields.Xselect=t):window.console&&console.error("[jsxgrid] jsgrid.field.Xselect.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,e)=>{function i(t){r.call(this,t)}var r=t.Field;i.prototype=new r({autosearch:!0,readOnly:!1,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextBox():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextBox()).val(t),e):this.itemTemplate.apply(this,arguments)},filterValue:function(){return this.filterControl.val()},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return e("<input>").attr("type","text").prop("readonly",!!this.readOnly)}}),t.fields.Xtext=i})(jsGrid,jQuery);
6
+ ((t,e)=>{var i,r;t?(i=t.Field,(r=function(t){i.call(this,t)}).prototype=new i({autosearch:!0,readOnly:!1,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextBox():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextBox()).val(t),e):this.itemTemplate.apply(this,arguments)},filterValue:function(){return this.filterControl.val()},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return e("<input>").attr("type","text").prop("readonly",!!this.readOnly)}}),t.fields.Xtext=r):window.console&&console.error("[jsxgrid] jsgrid.field.Xtext.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,6 +1,6 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
6
- ((t,n)=>{function e(t){r.call(this,t)}var r=t.Field;e.prototype=new r({autosearch:!0,readOnly:!1,maxShowSymbols:50,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.val()},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextArea():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextArea()).val(t),e):this.itemTemplate.apply(this,arguments)},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return n("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_createTextArea:function(){return n("<textarea>").prop("readonly",!!this.readOnly)},itemTemplate:function(t,e){var r,i;return(t=null==t?"":String(t)).length<=this.maxShowSymbols?n("<div>").text(t):(r=t.slice(0,this.maxShowSymbols),i=n("<div>").text(r+" ...").one("click",function(){return i.text(t),!1}))}}),t.fields.Xtextarea=e})(jsGrid,jQuery);
6
+ ((t,n)=>{var e,i;t?(e=t.Field,(i=function(t){e.call(this,t)}).prototype=new e({autosearch:!0,readOnly:!1,maxShowSymbols:50,defaultSelected:null,filterTemplate:function(){var e,t;return this.filtering?(e=this._grid,t=this.filterControl=this._createTextBox(),this.autosearch&&t.on("keypress",function(t){13===t.which&&(e.search(),t.preventDefault())}),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),t):""},filterValue:function(){return this.filterControl.val()},insertTemplate:function(){return this.inserting?this.insertControl=this._createTextArea():""},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createTextArea()).val(t),e):this.itemTemplate.apply(this,arguments)},insertValue:function(){return this.insertControl.val()},editValue:function(){return this.editControl.val()},_createTextBox:function(){return n("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_createTextArea:function(){return n("<textarea>").prop("readonly",!!this.readOnly)},itemTemplate:function(t,e){var i,r;return(t=null==t?"":String(t)).length<=this.maxShowSymbols?n("<div>").text(t):(i=t.slice(0,this.maxShowSymbols),r=n("<div>").text(i+" ...").one("click",function(){return r.text(t),!1}))}}),t.fields.Xtextarea=i):window.console&&console.error("[jsxgrid] jsgrid.field.Xtextarea.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.")})(window.jsGrid,window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*
2
- * jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
2
+ * jsxgrid v2.3.0 (https://github.com/rok9ru/jsxgrid#readme)
3
3
  * (c) 2026 Mikhail Kremza
4
4
  * Licensed under MIT
5
5
  */
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] Ko.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.ko = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] cs.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.cs = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] de.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.de = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] el.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.el = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] es.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.es = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] fa.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.fa = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] fr.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.fr = {
4
12
  grid: {
@@ -61,5 +69,5 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
65
73
 
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] he.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.he = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] it.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.it = {
4
12
  grid: {
@@ -61,5 +69,5 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
65
73
 
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] ja.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.ja = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] ka.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.ka = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] lt.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.lt = {
4
12
  grid: {
@@ -61,5 +69,5 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
65
73
 
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] pl.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.pl = {
4
12
  grid: {
@@ -77,4 +85,4 @@
77
85
  }
78
86
  };
79
87
 
80
- }(jsGrid, jQuery));
88
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] pt-br.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales["pt-br"] = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] pt.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.pt = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] ru.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.ru = {
4
12
  grid: {
@@ -61,5 +69,5 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
65
73
 
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] tr.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales.tr = {
4
12
  grid: {
@@ -61,5 +69,5 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
65
73
 
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] zh-cn.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales["zh-cn"] = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));
@@ -1,4 +1,12 @@
1
- (function(jsGrid) {
1
+ (function(jsGrid) {
2
+
3
+ if (!jsGrid) {
4
+ if (window.console) {
5
+ console.error("[jsxgrid] zh-tw.js was loaded before the jsxgrid engine (jsxgrid.js) - include the engine first.");
6
+ }
7
+ return;
8
+ }
9
+
2
10
 
3
11
  jsGrid.locales["zh-tw"] = {
4
12
  grid: {
@@ -61,4 +69,4 @@
61
69
  }
62
70
  };
63
71
 
64
- }(jsGrid, jQuery));
72
+ }(window.jsGrid, window.jQuery));