jsxgrid 2.0.0 → 2.2.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.
- package/README.md +65 -0
- package/dist/fields/jsgrid.field.XDateTimeField.min.js +1 -1
- package/dist/fields/jsgrid.field.XRowSelectField.min.js +1 -1
- package/dist/fields/jsgrid.field.Xcheckbox.min.js +1 -1
- package/dist/fields/jsgrid.field.Xcontrol.min.js +6 -0
- package/dist/fields/jsgrid.field.XimgField.min.js +1 -1
- package/dist/fields/jsgrid.field.Xjsoneditor.min.js +1 -1
- package/dist/fields/jsgrid.field.Xnumber.min.js +6 -0
- package/dist/fields/jsgrid.field.Xselect.min.js +1 -1
- package/dist/fields/jsgrid.field.Xtext.min.js +6 -0
- package/dist/fields/jsgrid.field.Xtextarea.min.js +1 -1
- package/dist/fields/lib/jsGridSummaryPlugin.min.js +1 -1
- package/dist/fields/lib/jsgrid.popup.basic.min.js +1 -1
- package/dist/i18n/jsgrid-Ko.js +18 -0
- package/dist/i18n/jsgrid-cs.js +18 -0
- package/dist/i18n/jsgrid-de.js +18 -0
- package/dist/i18n/jsgrid-el.js +18 -0
- package/dist/i18n/jsgrid-es.js +18 -0
- package/dist/i18n/jsgrid-fa.js +18 -0
- package/dist/i18n/jsgrid-fr.js +18 -0
- package/dist/i18n/jsgrid-he.js +18 -0
- package/dist/i18n/jsgrid-it.js +18 -0
- package/dist/i18n/jsgrid-ja.js +18 -0
- package/dist/i18n/jsgrid-ka.js +18 -0
- package/dist/i18n/jsgrid-lt.js +18 -0
- package/dist/i18n/jsgrid-pl.js +18 -0
- package/dist/i18n/jsgrid-pt-br.js +18 -0
- package/dist/i18n/jsgrid-pt.js +18 -0
- package/dist/i18n/jsgrid-ru.js +18 -0
- package/dist/i18n/jsgrid-tr.js +18 -0
- package/dist/i18n/jsgrid-zh-cn.js +18 -0
- package/dist/i18n/jsgrid-zh-tw.js +18 -0
- package/dist/jsxgrid-fields.js +1 -1
- package/dist/jsxgrid-fields.min.js +1 -1
- package/dist/jsxgrid-theme.css +1 -1
- package/dist/jsxgrid-xfields.js +393 -2
- package/dist/jsxgrid-xfields.min.js +2 -2
- package/dist/jsxgrid.css +1 -1
- package/dist/jsxgrid.js +52 -5
- package/dist/jsxgrid.min.js +2 -2
- package/package.json +1 -1
- package/src/fields/jsgrid.field.Xcontrol.js +229 -0
- package/src/fields/jsgrid.field.Xnumber.js +84 -0
- package/src/fields/jsgrid.field.Xtext.js +76 -0
- package/src/i18n/Ko.js +18 -0
- package/src/i18n/cs.js +18 -0
- package/src/i18n/de.js +18 -0
- package/src/i18n/el.js +18 -0
- package/src/i18n/es.js +18 -0
- package/src/i18n/fa.js +18 -0
- package/src/i18n/fr.js +18 -0
- package/src/i18n/he.js +18 -0
- package/src/i18n/it.js +18 -0
- package/src/i18n/ja.js +18 -0
- package/src/i18n/ka.js +18 -0
- package/src/i18n/lt.js +18 -0
- package/src/i18n/pl.js +18 -0
- package/src/i18n/pt-br.js +18 -0
- package/src/i18n/pt.js +18 -0
- package/src/i18n/ru.js +18 -0
- package/src/i18n/tr.js +18 -0
- package/src/i18n/zh-cn.js +18 -0
- package/src/i18n/zh-tw.js +18 -0
- package/src/jsgrid.core.js +44 -2
- package/src/jsgrid.validation.js +6 -1
|
@@ -28,6 +28,24 @@
|
|
|
28
28
|
insertButtonTooltip: "插入",
|
|
29
29
|
updateButtonTooltip: "更新",
|
|
30
30
|
cancelEditButtonTooltip: "取消编辑"
|
|
31
|
+
},
|
|
32
|
+
Xcontrol: {
|
|
33
|
+
searchModeButtonTooltip: "切换为搜索",
|
|
34
|
+
insertModeButtonTooltip: "切换为新增",
|
|
35
|
+
editButtonTooltip: "编辑",
|
|
36
|
+
deleteButtonTooltip: "删除",
|
|
37
|
+
searchButtonTooltip: "搜索",
|
|
38
|
+
clearFilterButtonTooltip: "清空过滤",
|
|
39
|
+
insertButtonTooltip: "插入",
|
|
40
|
+
updateButtonTooltip: "更新",
|
|
41
|
+
cancelEditButtonTooltip: "取消编辑"
|
|
42
|
+
},
|
|
43
|
+
XimgField: {
|
|
44
|
+
editButtonText: "打开文件管理器"
|
|
45
|
+
},
|
|
46
|
+
Xjsoneditor: {
|
|
47
|
+
editText: "编辑器",
|
|
48
|
+
closeText: "保存"
|
|
31
49
|
}
|
|
32
50
|
},
|
|
33
51
|
|
|
@@ -28,6 +28,24 @@
|
|
|
28
28
|
insertButtonTooltip: "新增",
|
|
29
29
|
updateButtonTooltip: "修改",
|
|
30
30
|
cancelEditButtonTooltip: "取消編輯"
|
|
31
|
+
},
|
|
32
|
+
Xcontrol: {
|
|
33
|
+
searchModeButtonTooltip: "切換為搜尋",
|
|
34
|
+
insertModeButtonTooltip: "切換為新增",
|
|
35
|
+
editButtonTooltip: "編輯",
|
|
36
|
+
deleteButtonTooltip: "刪除",
|
|
37
|
+
searchButtonTooltip: "搜尋",
|
|
38
|
+
clearFilterButtonTooltip: "清除搜尋條件",
|
|
39
|
+
insertButtonTooltip: "新增",
|
|
40
|
+
updateButtonTooltip: "修改",
|
|
41
|
+
cancelEditButtonTooltip: "取消編輯"
|
|
42
|
+
},
|
|
43
|
+
XimgField: {
|
|
44
|
+
editButtonText: "開啟檔案總管"
|
|
45
|
+
},
|
|
46
|
+
Xjsoneditor: {
|
|
47
|
+
editText: "編輯器",
|
|
48
|
+
closeText: "儲存"
|
|
31
49
|
}
|
|
32
50
|
},
|
|
33
51
|
|
package/dist/jsxgrid-fields.js
CHANGED
package/dist/jsxgrid-theme.css
CHANGED
package/dist/jsxgrid-xfields.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* jsxgrid v2.
|
|
2
|
+
* jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
|
|
3
3
|
* (c) 2026 Mikhail Kremza
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
@@ -148,6 +148,168 @@
|
|
|
148
148
|
return baseJsGrid.apply(this, arguments);
|
|
149
149
|
};
|
|
150
150
|
}(jQuery));
|
|
151
|
+
(function(jsGrid, $, undefined) {
|
|
152
|
+
|
|
153
|
+
// Standalone: does not extend jsGrid.TextField, only jsGrid.Field.
|
|
154
|
+
|
|
155
|
+
var Field = jsGrid.Field;
|
|
156
|
+
|
|
157
|
+
var Xtext = function (config) {
|
|
158
|
+
Field.call(this, config);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
Xtext.prototype = new Field({
|
|
162
|
+
autosearch: true,
|
|
163
|
+
readOnly: false,
|
|
164
|
+
defaultSelected: null,//value to preset the filter input with, applied once on first filter render then reset
|
|
165
|
+
|
|
166
|
+
filterTemplate: function () {
|
|
167
|
+
if (!this.filtering)
|
|
168
|
+
return "";
|
|
169
|
+
|
|
170
|
+
var grid = this._grid,
|
|
171
|
+
$result = this.filterControl = this._createTextBox();
|
|
172
|
+
|
|
173
|
+
if (this.autosearch) {
|
|
174
|
+
$result.on("keypress", function (e) {
|
|
175
|
+
if (e.which === 13) {
|
|
176
|
+
grid.search();
|
|
177
|
+
e.preventDefault();
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (this.defaultSelected !== null) {
|
|
183
|
+
$result.val(this.defaultSelected);
|
|
184
|
+
this.defaultSelected = null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return $result;
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
insertTemplate: function () {
|
|
191
|
+
if (!this.inserting)
|
|
192
|
+
return "";
|
|
193
|
+
|
|
194
|
+
return this.insertControl = this._createTextBox();
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
editTemplate: function (value) {
|
|
198
|
+
if (!this.editing)
|
|
199
|
+
return this.itemTemplate.apply(this, arguments);
|
|
200
|
+
|
|
201
|
+
var $result = this.editControl = this._createTextBox();
|
|
202
|
+
$result.val(value);
|
|
203
|
+
return $result;
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
filterValue: function () {
|
|
207
|
+
return this.filterControl.val();
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
insertValue: function () {
|
|
211
|
+
return this.insertControl.val();
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
editValue: function () {
|
|
215
|
+
return this.editControl.val();
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
_createTextBox: function () {
|
|
219
|
+
return $("<input>").attr("type", "text")
|
|
220
|
+
.prop("readonly", !!this.readOnly);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
jsGrid.fields.Xtext = Xtext;
|
|
225
|
+
|
|
226
|
+
}(jsGrid, jQuery));
|
|
227
|
+
|
|
228
|
+
(function(jsGrid, $, undefined) {
|
|
229
|
+
|
|
230
|
+
// Standalone: does not extend jsGrid.NumberField or Xtext, only jsGrid.Field.
|
|
231
|
+
|
|
232
|
+
var Field = jsGrid.Field;
|
|
233
|
+
|
|
234
|
+
var Xnumber = function (config) {
|
|
235
|
+
Field.call(this, config);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
Xnumber.prototype = new Field({
|
|
239
|
+
sorter: "number",
|
|
240
|
+
align: "right",
|
|
241
|
+
autosearch: true,
|
|
242
|
+
readOnly: false,
|
|
243
|
+
defaultSelected: null,//value to preset the filter input with, applied once on first filter render then reset
|
|
244
|
+
|
|
245
|
+
filterTemplate: function () {
|
|
246
|
+
if (!this.filtering)
|
|
247
|
+
return "";
|
|
248
|
+
|
|
249
|
+
var grid = this._grid,
|
|
250
|
+
$result = this.filterControl = this._createTextBox();
|
|
251
|
+
|
|
252
|
+
if (this.autosearch) {
|
|
253
|
+
$result.on("keypress", function (e) {
|
|
254
|
+
if (e.which === 13) {
|
|
255
|
+
grid.search();
|
|
256
|
+
e.preventDefault();
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (this.defaultSelected !== null) {
|
|
262
|
+
$result.val(this.defaultSelected);
|
|
263
|
+
this.defaultSelected = null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return $result;
|
|
267
|
+
},
|
|
268
|
+
|
|
269
|
+
insertTemplate: function () {
|
|
270
|
+
if (!this.inserting)
|
|
271
|
+
return "";
|
|
272
|
+
|
|
273
|
+
return this.insertControl = this._createTextBox();
|
|
274
|
+
},
|
|
275
|
+
|
|
276
|
+
editTemplate: function (value) {
|
|
277
|
+
if (!this.editing)
|
|
278
|
+
return this.itemTemplate.apply(this, arguments);
|
|
279
|
+
|
|
280
|
+
var $result = this.editControl = this._createTextBox();
|
|
281
|
+
$result.val(value);
|
|
282
|
+
return $result;
|
|
283
|
+
},
|
|
284
|
+
|
|
285
|
+
filterValue: function () {
|
|
286
|
+
return this.filterControl.val()
|
|
287
|
+
? parseInt(this.filterControl.val() || 0, 10)
|
|
288
|
+
: undefined;
|
|
289
|
+
},
|
|
290
|
+
|
|
291
|
+
insertValue: function () {
|
|
292
|
+
return this.insertControl.val()
|
|
293
|
+
? parseInt(this.insertControl.val() || 0, 10)
|
|
294
|
+
: undefined;
|
|
295
|
+
},
|
|
296
|
+
|
|
297
|
+
editValue: function () {
|
|
298
|
+
return this.editControl.val()
|
|
299
|
+
? parseInt(this.editControl.val() || 0, 10)
|
|
300
|
+
: undefined;
|
|
301
|
+
},
|
|
302
|
+
|
|
303
|
+
_createTextBox: function () {
|
|
304
|
+
return $("<input>").attr("type", "number")
|
|
305
|
+
.prop("readonly", !!this.readOnly);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
jsGrid.fields.Xnumber = Xnumber;
|
|
310
|
+
|
|
311
|
+
}(jsGrid, jQuery));
|
|
312
|
+
|
|
151
313
|
(function(jsGrid, $, undefined) {
|
|
152
314
|
|
|
153
315
|
// Standalone: does not extend jsGrid.CheckboxField, only jsGrid.Field.
|
|
@@ -976,4 +1138,233 @@
|
|
|
976
1138
|
|
|
977
1139
|
|
|
978
1140
|
jsGrid.fields.XDateTimeField = XDateTimeField;
|
|
979
|
-
}(jsGrid, jQuery));
|
|
1141
|
+
}(jsGrid, jQuery));
|
|
1142
|
+
(function(jsGrid, $, undefined) {
|
|
1143
|
+
|
|
1144
|
+
// Already standalone - the native control field extends jsGrid.Field
|
|
1145
|
+
// directly, same as every X-field. X-branded purely for naming parity,
|
|
1146
|
+
// so it can be used instead of "control" once the native fields bundle
|
|
1147
|
+
// is dropped in favor of the X set.
|
|
1148
|
+
|
|
1149
|
+
var Field = jsGrid.Field;
|
|
1150
|
+
|
|
1151
|
+
function Xcontrol(config) {
|
|
1152
|
+
Field.call(this, config);
|
|
1153
|
+
this.includeInDataExport = false;
|
|
1154
|
+
this._configInitialized = false;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
Xcontrol.prototype = new Field({
|
|
1158
|
+
css: "jsgrid-control-field",
|
|
1159
|
+
align: "center",
|
|
1160
|
+
width: 50,
|
|
1161
|
+
filtering: false,
|
|
1162
|
+
inserting: false,
|
|
1163
|
+
editing: false,
|
|
1164
|
+
sorting: false,
|
|
1165
|
+
|
|
1166
|
+
buttonClass: "jsgrid-button",
|
|
1167
|
+
modeButtonClass: "jsgrid-mode-button",
|
|
1168
|
+
|
|
1169
|
+
modeOnButtonClass: "jsgrid-mode-on-button",
|
|
1170
|
+
searchModeButtonClass: "jsgrid-search-mode-button",
|
|
1171
|
+
insertModeButtonClass: "jsgrid-insert-mode-button",
|
|
1172
|
+
editButtonClass: "jsgrid-edit-button",
|
|
1173
|
+
deleteButtonClass: "jsgrid-delete-button",
|
|
1174
|
+
searchButtonClass: "jsgrid-search-button",
|
|
1175
|
+
clearFilterButtonClass: "jsgrid-clear-filter-button",
|
|
1176
|
+
insertButtonClass: "jsgrid-insert-button",
|
|
1177
|
+
updateButtonClass: "jsgrid-update-button",
|
|
1178
|
+
cancelEditButtonClass: "jsgrid-cancel-edit-button",
|
|
1179
|
+
|
|
1180
|
+
searchModeButtonTooltip: "Switch to searching",
|
|
1181
|
+
insertModeButtonTooltip: "Switch to inserting",
|
|
1182
|
+
editButtonTooltip: "Edit",
|
|
1183
|
+
deleteButtonTooltip: "Delete",
|
|
1184
|
+
searchButtonTooltip: "Search",
|
|
1185
|
+
clearFilterButtonTooltip: "Clear filter",
|
|
1186
|
+
insertButtonTooltip: "Insert",
|
|
1187
|
+
updateButtonTooltip: "Update",
|
|
1188
|
+
cancelEditButtonTooltip: "Cancel edit",
|
|
1189
|
+
|
|
1190
|
+
editButton: true,
|
|
1191
|
+
deleteButton: true,
|
|
1192
|
+
clearFilterButton: true,
|
|
1193
|
+
modeSwitchButton: true,
|
|
1194
|
+
|
|
1195
|
+
_initConfig: function() {
|
|
1196
|
+
this._hasFiltering = this._grid.filtering;
|
|
1197
|
+
this._hasInserting = this._grid.inserting;
|
|
1198
|
+
|
|
1199
|
+
if(this._hasInserting && this.modeSwitchButton) {
|
|
1200
|
+
this._grid.inserting = false;
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
this._configInitialized = true;
|
|
1204
|
+
},
|
|
1205
|
+
|
|
1206
|
+
headerTemplate: function() {
|
|
1207
|
+
if(!this._configInitialized) {
|
|
1208
|
+
this._initConfig();
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
var hasFiltering = this._hasFiltering;
|
|
1212
|
+
var hasInserting = this._hasInserting;
|
|
1213
|
+
|
|
1214
|
+
if(!this.modeSwitchButton || (!hasFiltering && !hasInserting))
|
|
1215
|
+
return "";
|
|
1216
|
+
|
|
1217
|
+
if(hasFiltering && !hasInserting)
|
|
1218
|
+
return this._createFilterSwitchButton();
|
|
1219
|
+
|
|
1220
|
+
if(hasInserting && !hasFiltering)
|
|
1221
|
+
return this._createInsertSwitchButton();
|
|
1222
|
+
|
|
1223
|
+
return this._createModeSwitchButton();
|
|
1224
|
+
},
|
|
1225
|
+
|
|
1226
|
+
itemTemplate: function(value, item) {
|
|
1227
|
+
var $result = $([]);
|
|
1228
|
+
|
|
1229
|
+
if(this.editButton) {
|
|
1230
|
+
$result = $result.add(this._createEditButton(item));
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
if(this.deleteButton) {
|
|
1234
|
+
$result = $result.add(this._createDeleteButton(item));
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
return $result;
|
|
1238
|
+
},
|
|
1239
|
+
|
|
1240
|
+
filterTemplate: function() {
|
|
1241
|
+
var $result = this._createSearchButton();
|
|
1242
|
+
return this.clearFilterButton ? $result.add(this._createClearFilterButton()) : $result;
|
|
1243
|
+
},
|
|
1244
|
+
|
|
1245
|
+
insertTemplate: function() {
|
|
1246
|
+
return this._createInsertButton();
|
|
1247
|
+
},
|
|
1248
|
+
|
|
1249
|
+
editTemplate: function() {
|
|
1250
|
+
return this._createUpdateButton().add(this._createCancelEditButton());
|
|
1251
|
+
},
|
|
1252
|
+
|
|
1253
|
+
_createFilterSwitchButton: function() {
|
|
1254
|
+
return this._createOnOffSwitchButton("filtering", this.searchModeButtonClass, true);
|
|
1255
|
+
},
|
|
1256
|
+
|
|
1257
|
+
_createInsertSwitchButton: function() {
|
|
1258
|
+
return this._createOnOffSwitchButton("inserting", this.insertModeButtonClass, false);
|
|
1259
|
+
},
|
|
1260
|
+
|
|
1261
|
+
_createOnOffSwitchButton: function(option, cssClass, isOnInitially) {
|
|
1262
|
+
var isOn = isOnInitially;
|
|
1263
|
+
|
|
1264
|
+
var updateButtonState = $.proxy(function() {
|
|
1265
|
+
$button.toggleClass(this.modeOnButtonClass, isOn);
|
|
1266
|
+
}, this);
|
|
1267
|
+
|
|
1268
|
+
var $button = this._createGridButton(this.modeButtonClass + " " + cssClass, "", function(grid) {
|
|
1269
|
+
isOn = !isOn;
|
|
1270
|
+
grid.option(option, isOn);
|
|
1271
|
+
updateButtonState();
|
|
1272
|
+
});
|
|
1273
|
+
|
|
1274
|
+
updateButtonState();
|
|
1275
|
+
|
|
1276
|
+
return $button;
|
|
1277
|
+
},
|
|
1278
|
+
|
|
1279
|
+
_createModeSwitchButton: function() {
|
|
1280
|
+
var isInserting = false;
|
|
1281
|
+
|
|
1282
|
+
var updateButtonState = $.proxy(function() {
|
|
1283
|
+
$button.attr("title", isInserting ? this.searchModeButtonTooltip : this.insertModeButtonTooltip)
|
|
1284
|
+
.toggleClass(this.insertModeButtonClass, !isInserting)
|
|
1285
|
+
.toggleClass(this.searchModeButtonClass, isInserting);
|
|
1286
|
+
}, this);
|
|
1287
|
+
|
|
1288
|
+
var $button = this._createGridButton(this.modeButtonClass, "", function(grid) {
|
|
1289
|
+
isInserting = !isInserting;
|
|
1290
|
+
grid.option("inserting", isInserting);
|
|
1291
|
+
grid.option("filtering", !isInserting);
|
|
1292
|
+
updateButtonState();
|
|
1293
|
+
});
|
|
1294
|
+
|
|
1295
|
+
updateButtonState();
|
|
1296
|
+
|
|
1297
|
+
return $button;
|
|
1298
|
+
},
|
|
1299
|
+
|
|
1300
|
+
_createEditButton: function(item) {
|
|
1301
|
+
return this._createGridButton(this.editButtonClass, this.editButtonTooltip, function(grid, e) {
|
|
1302
|
+
grid.editItem(item);
|
|
1303
|
+
e.stopPropagation();
|
|
1304
|
+
});
|
|
1305
|
+
},
|
|
1306
|
+
|
|
1307
|
+
_createDeleteButton: function(item) {
|
|
1308
|
+
return this._createGridButton(this.deleteButtonClass, this.deleteButtonTooltip, function(grid, e) {
|
|
1309
|
+
grid.deleteItem(item);
|
|
1310
|
+
e.stopPropagation();
|
|
1311
|
+
});
|
|
1312
|
+
},
|
|
1313
|
+
|
|
1314
|
+
_createSearchButton: function() {
|
|
1315
|
+
return this._createGridButton(this.searchButtonClass, this.searchButtonTooltip, function(grid) {
|
|
1316
|
+
grid.search();
|
|
1317
|
+
});
|
|
1318
|
+
},
|
|
1319
|
+
|
|
1320
|
+
_createClearFilterButton: function() {
|
|
1321
|
+
return this._createGridButton(this.clearFilterButtonClass, this.clearFilterButtonTooltip, function(grid) {
|
|
1322
|
+
grid.clearFilter();
|
|
1323
|
+
});
|
|
1324
|
+
},
|
|
1325
|
+
|
|
1326
|
+
_createInsertButton: function() {
|
|
1327
|
+
return this._createGridButton(this.insertButtonClass, this.insertButtonTooltip, function(grid) {
|
|
1328
|
+
grid.insertItem().done(function() {
|
|
1329
|
+
grid.clearInsert();
|
|
1330
|
+
});
|
|
1331
|
+
});
|
|
1332
|
+
},
|
|
1333
|
+
|
|
1334
|
+
_createUpdateButton: function() {
|
|
1335
|
+
return this._createGridButton(this.updateButtonClass, this.updateButtonTooltip, function(grid, e) {
|
|
1336
|
+
grid.updateItem();
|
|
1337
|
+
e.stopPropagation();
|
|
1338
|
+
});
|
|
1339
|
+
},
|
|
1340
|
+
|
|
1341
|
+
_createCancelEditButton: function() {
|
|
1342
|
+
return this._createGridButton(this.cancelEditButtonClass, this.cancelEditButtonTooltip, function(grid, e) {
|
|
1343
|
+
grid.cancelEdit();
|
|
1344
|
+
e.stopPropagation();
|
|
1345
|
+
});
|
|
1346
|
+
},
|
|
1347
|
+
|
|
1348
|
+
_createGridButton: function(cls, tooltip, clickHandler) {
|
|
1349
|
+
var grid = this._grid;
|
|
1350
|
+
|
|
1351
|
+
return $("<input>").addClass(this.buttonClass)
|
|
1352
|
+
.addClass(cls)
|
|
1353
|
+
.attr({
|
|
1354
|
+
type: "button",
|
|
1355
|
+
title: tooltip
|
|
1356
|
+
})
|
|
1357
|
+
.on("click", function(e) {
|
|
1358
|
+
clickHandler(grid, e);
|
|
1359
|
+
});
|
|
1360
|
+
},
|
|
1361
|
+
|
|
1362
|
+
editValue: function() {
|
|
1363
|
+
return "";
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
});
|
|
1367
|
+
|
|
1368
|
+
jsGrid.fields.Xcontrol = Xcontrol;
|
|
1369
|
+
|
|
1370
|
+
}(jsGrid, jQuery));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* jsxgrid v2.
|
|
2
|
+
* jsxgrid v2.2.0 (https://github.com/rok9ru/jsxgrid#readme)
|
|
3
3
|
* (c) 2026 Mikhail Kremza
|
|
4
4
|
* Licensed under MIT
|
|
5
5
|
*/
|
|
6
|
-
((t,l)=>{t?t.popup=t.popupBasic=function(t,e){this.idcounter=this.idcounter||0,this.idcounter++,(e=e||{}).closeText=e.closeText||"Close",e.heading=e.heading||"",e.styles=e.styles||".jsGridpopupBasicOverlay { position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.7); transition: opacity 500ms; opacity: 1;}.jsGridpopupBasicPopup { margin: 70px auto; padding: 20px; min-height: 60%; background: #fff; border-radius: 5px; width: 60%; position: relative; transition: all 300ms ease-in-out;}.jsGridpopupBasicPopup h2 { margin-top: 0; color: #333; font-family: Tahoma, Arial, sans-serif;}.jsGridpopupBasicPopup .close { position: absolute; top: 10px; right: 30px; transition: all 200ms; font-size: 30px; font-weight: bold; text-decoration: none; color: #333;}.jsGridpopupBasicPopup .close:hover { color: #06D85F;}.jsGridpopupBasicPopup .jsGridpopupBasicContent { max-height: 30%; overflow: auto;}@media screen and (max-width: 700px){ .jsGridpopupBasicPopup{ width: 70%; }}",l("#jsGridpopupBasicStyles").length||(r=(i=l("head")).find("link[rel='stylesheet']:last"),n="<style id='jsGridpopupBasicStyles'>"+e.styles+"</style>",r.length?r.after(n):i.append(n));var i,n,r="jsGridpopupBasic"+this.idcounter,s=l('<div id="'+r+'" class="jsGridpopupBasicOverlay"><div class="jsGridpopupBasicPopup"><h2></h2><a class="close" href="#">×</a><div class="jsGridpopupBasicContent"></div></div></div>');return s.find("h2").text(e.heading),s.find(".jsGridpopupBasicContent").append(t),s.find(".close").click(function(){e.onClose instanceof Function&&e.onClose(s),s.remove()}),l("body").append(s),{id:r,$popup:s,hide:function(){s.remove()}}}:console.log("jsGrid is not defined!")})(jsGrid,jQuery),(s=>{var e=s.fn.jsGrid;e&&(s.fn.jsGrid=function(t){var r;return"object"==typeof t&&(r=t.onRefreshed,t.onRefreshed=function(t){r&&r.apply(this,arguments);var t=t.grid,i=t.option("data")||[],e=t.option("fields")||[],t=t._container.find(".jsgrid-table").last(),t=(t.find(".jsgrid-summary-footer").remove(),s("<tfoot class='jsgrid-summary-footer'>").appendTo(t)),n=s("<tr>").addClass("jsgrid-row").css({background:"#e1e1e1","font-weight":"bold"}).appendTo(t);e.forEach(function(t){var e=s("<td>").addClass("jsgrid-cell").appendTo(n);"function"==typeof t.summary&&(t=t.summary.call(t,i),e.html(t))})}),e.apply(this,arguments)})})(jQuery),((t,i)=>{function e(t){n.call(this,t)}var n=t.Field;e.prototype=new n({sorter:"number",align:"center",autosearch:!0,defaultSelected:null,filterTemplate:function(){var t,e;return this.filtering?(t=this._grid,(e=this.filterControl=this._createCheckbox()).prop({readOnly:!0,indeterminate:!0}),e.on("click",function(){var t=i(this);t.prop("readOnly")?t.prop({checked:!1,readOnly:!1}):t.prop("checked")||t.prop({readOnly:!0,indeterminate:!0})}),this.autosearch&&e.on("click",function(){t.search()}),null!==this.defaultSelected&&(e.prop({checked:!!this.defaultSelected,indeterminate:!1,readOnly:!1}),this.defaultSelected=null),e):""},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(t){return this._createCheckbox().prop({checked:+t,disabled:!0})},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createCheckbox()).prop("checked",+t),e):this.itemTemplate.apply(this,arguments)},_createCheckbox:function(){return i("<input>").attr("type","checkbox")}}),t.fields.Xcheckbox=e})(jsGrid,jQuery),((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),((t,o)=>{function e(t){var e;this.items=[],this.selectedIndex=-1,this.valueField="",this.textField="",t.valueField&&t.items&&t.items.length&&(e=t.items[0][t.valueField],this.valueType=typeof e==n?n:"string"),this.sorter=this.valueType,i.call(this,t)}var i=t.Field,n="number";e.prototype=new i({align:"center",autosearch:!0,valueType:n,pseudoElement:null,select2:null,defaultSelected:null,itemTemplate:function(e){var t=this.items,i=this.valueField,n=this.textField,t=i?"object"==typeof e?e:o.grep(t,function(t){return t[i]===e})[0]||{}:t[e],n=n?t[n]:t;return null==n?"":n},insertTemplate:function(){return this.inserting?this.insertControl=this._createSelect():""},editTemplate:function(t){var e,i;return this.editing?(e=this.editControl=this._createSelect(),void 0!==(i="object"==typeof(i=t)?t[this.valueField]:t)&&e.val(i),e):this.itemTemplate.apply(this,arguments)},insertValue:function(){var t=this.insertControl.val();return this.valueType===n?parseInt(t||0,10):t},editValue:function(){var t=this.editControl.val();return this.valueType===n?parseInt(t||0,10):t},filterTemplate:function(){var t,i,n,r,e,s;return this.filtering?(Array.isArray(this.items)?(t=this.items.slice(0),this.pseudoElement?t.unshift(this.pseudoElement):((s={})[this.textField]="",s[this.valueField]=null,t.unshift(s))):"object"==typeof this.items&&(t=Object.assign({},this.items),t="object"==typeof this.pseudoElement&&this.pseudoElement?Object.assign({},t,this.pseudoElement):Object.assign({},{"":null},t)),null!==this.defaultSelected&&(i=this.valueField,n=this.defaultSelected,r=-1,o.each(t,function(t,e){if((i?e[i]:t)==n)return r=t,!1}),-1!==r&&(this.selectedIndex=r),this.defaultSelected=null),e=this._grid,s=this.filterControl=this._createSelect(t),this.autosearch&&s.on("change",function(t){e.search()}),s):""},filterValue:function(){var t=this.filterControl.val();return this.valueType===n?parseInt(t||0,10):t},_createSelect:function(t){var e,n=o("<select>"),r=this.valueField,s=this.textField,l=this.selectedIndex;return o.each(t||this.items,function(t,e){var i=r?e[r]:t,e=s?e[s]:e;o("<option>").attr("value",i).text(e).appendTo(n).prop("selected",l===t)}),n.prop("disabled",!!this.readOnly),this.select2&&(e=Object.assign({},this.select2,{width:"100%"}),setTimeout(function(){n.select2(e)},0)),n}}),t.fields.Xselect=e})(jsGrid,jQuery),((t,r)=>{function e(t){i.call(this,t)}var i=t.Field;e.prototype=new i({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 r("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_createTextArea:function(){return r("<textarea>").prop("readonly",!!this.readOnly)},itemTemplate:function(t,e){var i,n;return(t=null==t?"":String(t)).length<=this.maxShowSymbols?r("<div>").text(t):(i=t.slice(0,this.maxShowSymbols),n=r("<div>").text(i+" ...").one("click",function(){return n.text(t),!1}))}}),t.fields.Xtextarea=e})(jsGrid,jQuery),((n,r)=>{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 r("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_doModal:function(t,e,i){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 i=r('<div style="height: 500px;">'),e=(r("body").append(i),i=i[0],{templates:this.templates,modes:["code","text","tree"],onError:function(t){alert(t.toString())},mode:e||"view"});return new JSONEditor(i,e,t)},itemTemplate:function(e,t){var i=this;return r("<button>"+i.editText+"</button>").click(function(){var t=i._createJsonEditor(e);return i._doModal(t.container,{onClose:function(){r(t.container).remove(),t.destroy()}}),!1})},insertTemplate:function(){var t;return this.inserting?(t=this).insertControl=r("<textarea>").click(function(){var e=t._createJsonEditor({},"tree"),i=r(this);return t._doModal(e.container,{closeText:t.closeText,onClose:function(){var t=e.get();r.isEmptyObject(t)?i.val({}):i.val(JSON.stringify(t)),e.destroy()}}),!1}):""},editTemplate:function(t){var n;return this.editing?(n=this).editControl=r("<textarea>").val(t).click(function(){var e=r(this),i=n._createJsonEditor(e.val(),"tree");return n._doModal(i.container,{closeText:n.closeText,onClose:function(){var t=i.get();r.isEmptyObject(t)?e.val({}):e.val(JSON.stringify(t)),i.destroy()}}),!1}):this.itemTemplate.apply(this,arguments)}}),n.fields.Xjsoneditor=t})(jsGrid,jQuery),((e,n)=>{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,n("<button>").attr("type","button").text(e.buttonText).on("click",function(t){e.selectedItemsAction(e.selectedItems),t.stopPropagation()})):""},itemTemplate:function(t,e){var i=this;return n("<input data-uid='"+i.uid+"' type='checkbox'>").prop("checked",-1<n.inArray(e,i.selectedItems)).on("change",function(){n(this).is(":checked")?i.selectItem(e):i.unselectItem(e)}).click(function(t){t.stopPropagation()})},editTemplate:function(){return""},align:"center",selectItem:function(t){this.selectedItems.push(t)},unselectItem:function(e){this.selectedItems=n.grep(this.selectedItems,function(t){return t!==e})}}),e.fields.XRowSelectField=t})(jsGrid,jQuery),((e,s)=>{function t(t){e.Field.call(this,t)}t.prototype=new e.Field({css:"date-field",align:"center",datePickerType:"datetime-local",dateRange:!1,defaultSelected:null,sorter:function(t,e){return new Date(t)-new Date(e)},filterTemplate:function(){var e,t,i,n,r;return this.filtering?(e=this._grid,t=s(),this.dateRange?(r=s("<div class='jsgrid-date-range-wrapper'>"),i=s("<input>",{class:"jsgrid-date-picker jsgrid-date-start",type:this.datePickerType,title:"Period date start"}),n=s("<input>",{class:"jsgrid-date-picker jsgrid-date-end",type:this.datePickerType,title:"Period date end"}),r.val=function(){return{from:i.val(),to:n.val()}},t=this.filterControl=r.append(i).append(n),null!==this.defaultSelected&&(r=this.defaultSelected||{},i.val(r.from||""),n.val(r.to||""),this.defaultSelected=null),this.autosearch&&t.on("change",".jsgrid-date-picker",function(t){e.search()})):(t=this.filterControl=this._createPicker(),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),this.autosearch&&t.on("change",function(t){e.search()})),t):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(t){var e;return t?(e=this.options||{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"},new Date(t.replace(" ","T")).toLocaleDateString(void 0,e)):""},insertTemplate:function(){return this._insertPicker=this._createPicker()},editTemplate:function(t){return this._editPicker=this._createPicker().val(t)},insertValue:function(){return this._insertPicker.val()},editValue:function(){return this._editPicker.val()},_createPicker:function(){return s("<input class='date-picker'>").attr("type",this.datePickerType)}}),e.fields.XDateTimeField=t})(jsGrid,jQuery);
|
|
6
|
+
((t,s)=>{t?t.popup=t.popupBasic=function(t,e){this.idcounter=this.idcounter||0,this.idcounter++,(e=e||{}).closeText=e.closeText||"Close",e.heading=e.heading||"",e.styles=e.styles||".jsGridpopupBasicOverlay { position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.7); transition: opacity 500ms; opacity: 1;}.jsGridpopupBasicPopup { margin: 70px auto; padding: 20px; min-height: 60%; background: #fff; border-radius: 5px; width: 60%; position: relative; transition: all 300ms ease-in-out;}.jsGridpopupBasicPopup h2 { margin-top: 0; color: #333; font-family: Tahoma, Arial, sans-serif;}.jsGridpopupBasicPopup .close { position: absolute; top: 10px; right: 30px; transition: all 200ms; font-size: 30px; font-weight: bold; text-decoration: none; color: #333;}.jsGridpopupBasicPopup .close:hover { color: #06D85F;}.jsGridpopupBasicPopup .jsGridpopupBasicContent { max-height: 30%; overflow: auto;}@media screen and (max-width: 700px){ .jsGridpopupBasicPopup{ width: 70%; }}",s("#jsGridpopupBasicStyles").length||(r=(i=s("head")).find("link[rel='stylesheet']:last"),n="<style id='jsGridpopupBasicStyles'>"+e.styles+"</style>",r.length?r.after(n):i.append(n));var i,n,r="jsGridpopupBasic"+this.idcounter,o=s('<div id="'+r+'" class="jsGridpopupBasicOverlay"><div class="jsGridpopupBasicPopup"><h2></h2><a class="close" href="#">×</a><div class="jsGridpopupBasicContent"></div></div></div>');return o.find("h2").text(e.heading),o.find(".jsGridpopupBasicContent").append(t),o.find(".close").click(function(){e.onClose instanceof Function&&e.onClose(o),o.remove()}),s("body").append(o),{id:r,$popup:o,hide:function(){o.remove()}}}:console.log("jsGrid is not defined!")})(jsGrid,jQuery),(o=>{var e=o.fn.jsGrid;e&&(o.fn.jsGrid=function(t){var r;return"object"==typeof t&&(r=t.onRefreshed,t.onRefreshed=function(t){r&&r.apply(this,arguments);var t=t.grid,i=t.option("data")||[],e=t.option("fields")||[],t=t._container.find(".jsgrid-table").last(),t=(t.find(".jsgrid-summary-footer").remove(),o("<tfoot class='jsgrid-summary-footer'>").appendTo(t)),n=o("<tr>").addClass("jsgrid-row").css({background:"#e1e1e1","font-weight":"bold"}).appendTo(t);e.forEach(function(t){var e=o("<td>").addClass("jsgrid-cell").appendTo(n);"function"==typeof t.summary&&(t=t.summary.call(t,i),e.html(t))})}),e.apply(this,arguments)})})(jQuery),((t,e)=>{function i(t){n.call(this,t)}var n=t.Field;i.prototype=new n({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),((t,e,i)=>{function n(t){r.call(this,t)}var r=t.Field;n.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})(jsGrid,jQuery),((t,i)=>{function e(t){n.call(this,t)}var n=t.Field;e.prototype=new n({sorter:"number",align:"center",autosearch:!0,defaultSelected:null,filterTemplate:function(){var t,e;return this.filtering?(t=this._grid,(e=this.filterControl=this._createCheckbox()).prop({readOnly:!0,indeterminate:!0}),e.on("click",function(){var t=i(this);t.prop("readOnly")?t.prop({checked:!1,readOnly:!1}):t.prop("checked")||t.prop({readOnly:!0,indeterminate:!0})}),this.autosearch&&e.on("click",function(){t.search()}),null!==this.defaultSelected&&(e.prop({checked:!!this.defaultSelected,indeterminate:!1,readOnly:!1}),this.defaultSelected=null),e):""},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(t){return this._createCheckbox().prop({checked:+t,disabled:!0})},editTemplate:function(t){var e;return this.editing?((e=this.editControl=this._createCheckbox()).prop("checked",+t),e):this.itemTemplate.apply(this,arguments)},_createCheckbox:function(){return i("<input>").attr("type","checkbox")}}),t.fields.Xcheckbox=e})(jsGrid,jQuery),((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),((t,l)=>{function e(t){var e;this.items=[],this.selectedIndex=-1,this.valueField="",this.textField="",t.valueField&&t.items&&t.items.length&&(e=t.items[0][t.valueField],this.valueType=typeof e==n?n:"string"),this.sorter=this.valueType,i.call(this,t)}var i=t.Field,n="number";e.prototype=new i({align:"center",autosearch:!0,valueType:n,pseudoElement:null,select2:null,defaultSelected:null,itemTemplate:function(e){var t=this.items,i=this.valueField,n=this.textField,t=i?"object"==typeof e?e:l.grep(t,function(t){return t[i]===e})[0]||{}:t[e],n=n?t[n]:t;return null==n?"":n},insertTemplate:function(){return this.inserting?this.insertControl=this._createSelect():""},editTemplate:function(t){var e,i;return this.editing?(e=this.editControl=this._createSelect(),void 0!==(i="object"==typeof(i=t)?t[this.valueField]:t)&&e.val(i),e):this.itemTemplate.apply(this,arguments)},insertValue:function(){var t=this.insertControl.val();return this.valueType===n?parseInt(t||0,10):t},editValue:function(){var t=this.editControl.val();return this.valueType===n?parseInt(t||0,10):t},filterTemplate:function(){var t,i,n,r,e,o;return this.filtering?(Array.isArray(this.items)?(t=this.items.slice(0),this.pseudoElement?t.unshift(this.pseudoElement):((o={})[this.textField]="",o[this.valueField]=null,t.unshift(o))):"object"==typeof this.items&&(t=Object.assign({},this.items),t="object"==typeof this.pseudoElement&&this.pseudoElement?Object.assign({},t,this.pseudoElement):Object.assign({},{"":null},t)),null!==this.defaultSelected&&(i=this.valueField,n=this.defaultSelected,r=-1,l.each(t,function(t,e){if((i?e[i]:t)==n)return r=t,!1}),-1!==r&&(this.selectedIndex=r),this.defaultSelected=null),e=this._grid,o=this.filterControl=this._createSelect(t),this.autosearch&&o.on("change",function(t){e.search()}),o):""},filterValue:function(){var t=this.filterControl.val();return this.valueType===n?parseInt(t||0,10):t},_createSelect:function(t){var e,n=l("<select>"),r=this.valueField,o=this.textField,s=this.selectedIndex;return l.each(t||this.items,function(t,e){var i=r?e[r]:t,e=o?e[o]:e;l("<option>").attr("value",i).text(e).appendTo(n).prop("selected",s===t)}),n.prop("disabled",!!this.readOnly),this.select2&&(e=Object.assign({},this.select2,{width:"100%"}),setTimeout(function(){n.select2(e)},0)),n}}),t.fields.Xselect=e})(jsGrid,jQuery),((t,r)=>{function e(t){i.call(this,t)}var i=t.Field;e.prototype=new i({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 r("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_createTextArea:function(){return r("<textarea>").prop("readonly",!!this.readOnly)},itemTemplate:function(t,e){var i,n;return(t=null==t?"":String(t)).length<=this.maxShowSymbols?r("<div>").text(t):(i=t.slice(0,this.maxShowSymbols),n=r("<div>").text(i+" ...").one("click",function(){return n.text(t),!1}))}}),t.fields.Xtextarea=e})(jsGrid,jQuery),((n,r)=>{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 r("<input>").attr("type","text").prop("readonly",!!this.readOnly)},_doModal:function(t,e,i){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 i=r('<div style="height: 500px;">'),e=(r("body").append(i),i=i[0],{templates:this.templates,modes:["code","text","tree"],onError:function(t){alert(t.toString())},mode:e||"view"});return new JSONEditor(i,e,t)},itemTemplate:function(e,t){var i=this;return r("<button>"+i.editText+"</button>").click(function(){var t=i._createJsonEditor(e);return i._doModal(t.container,{onClose:function(){r(t.container).remove(),t.destroy()}}),!1})},insertTemplate:function(){var t;return this.inserting?(t=this).insertControl=r("<textarea>").click(function(){var e=t._createJsonEditor({},"tree"),i=r(this);return t._doModal(e.container,{closeText:t.closeText,onClose:function(){var t=e.get();r.isEmptyObject(t)?i.val({}):i.val(JSON.stringify(t)),e.destroy()}}),!1}):""},editTemplate:function(t){var n;return this.editing?(n=this).editControl=r("<textarea>").val(t).click(function(){var e=r(this),i=n._createJsonEditor(e.val(),"tree");return n._doModal(i.container,{closeText:n.closeText,onClose:function(){var t=i.get();r.isEmptyObject(t)?e.val({}):e.val(JSON.stringify(t)),i.destroy()}}),!1}):this.itemTemplate.apply(this,arguments)}}),n.fields.Xjsoneditor=t})(jsGrid,jQuery),((e,n)=>{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,n("<button>").attr("type","button").text(e.buttonText).on("click",function(t){e.selectedItemsAction(e.selectedItems),t.stopPropagation()})):""},itemTemplate:function(t,e){var i=this;return n("<input data-uid='"+i.uid+"' type='checkbox'>").prop("checked",-1<n.inArray(e,i.selectedItems)).on("change",function(){n(this).is(":checked")?i.selectItem(e):i.unselectItem(e)}).click(function(t){t.stopPropagation()})},editTemplate:function(){return""},align:"center",selectItem:function(t){this.selectedItems.push(t)},unselectItem:function(e){this.selectedItems=n.grep(this.selectedItems,function(t){return t!==e})}}),e.fields.XRowSelectField=t})(jsGrid,jQuery),((e,o)=>{function t(t){e.Field.call(this,t)}t.prototype=new e.Field({css:"date-field",align:"center",datePickerType:"datetime-local",dateRange:!1,defaultSelected:null,sorter:function(t,e){return new Date(t)-new Date(e)},filterTemplate:function(){var e,t,i,n,r;return this.filtering?(e=this._grid,t=o(),this.dateRange?(r=o("<div class='jsgrid-date-range-wrapper'>"),i=o("<input>",{class:"jsgrid-date-picker jsgrid-date-start",type:this.datePickerType,title:"Period date start"}),n=o("<input>",{class:"jsgrid-date-picker jsgrid-date-end",type:this.datePickerType,title:"Period date end"}),r.val=function(){return{from:i.val(),to:n.val()}},t=this.filterControl=r.append(i).append(n),null!==this.defaultSelected&&(r=this.defaultSelected||{},i.val(r.from||""),n.val(r.to||""),this.defaultSelected=null),this.autosearch&&t.on("change",".jsgrid-date-picker",function(t){e.search()})):(t=this.filterControl=this._createPicker(),null!==this.defaultSelected&&(t.val(this.defaultSelected),this.defaultSelected=null),this.autosearch&&t.on("change",function(t){e.search()})),t):""},filterValue:function(){return this.filterControl.val()},itemTemplate:function(t){var e;return t?(e=this.options||{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"},new Date(t.replace(" ","T")).toLocaleDateString(void 0,e)):""},insertTemplate:function(){return this._insertPicker=this._createPicker()},editTemplate:function(t){return this._editPicker=this._createPicker().val(t)},insertValue:function(){return this._insertPicker.val()},editValue:function(){return this._editPicker.val()},_createPicker:function(){return o("<input class='date-picker'>").attr("type",this.datePickerType)}}),e.fields.XDateTimeField=t})(jsGrid,jQuery),((t,s)=>{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=s([]);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,r=s.proxy(function(){o.toggleClass(this.modeOnButtonClass,n)},this),o=this._createGridButton(this.modeButtonClass+" "+t,"",function(t){n=!n,t.option(e,n),r()});return r(),o},_createModeSwitchButton:function(){var e=!1,i=s.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 s("<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);
|
package/dist/jsxgrid.css
CHANGED