tabulator-rails 1.0.5 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSIONS.md +1 -0
- data/lib/tabulator-rails/version.rb +1 -1
- data/vendor/assets/javascripts/tabulator.js +2694 -654
- data/vendor/assets/stylesheets/tabulator.css +139 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cd7dfd28a67c15af8ca59105893bbe550a6026e
|
4
|
+
data.tar.gz: fd6d5a86e4a28a5df65740f45fac9aec6d0cec86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 499b1d4e15b2a5d1f2108b35487a2c86c5cc74af0c30b249a595f05a6a9833b261d4c4ecfb3ab74b70e5d083e58eeaeee7165a3fbe226524c8f35d0d7955ad80
|
7
|
+
data.tar.gz: caae8c59ae227138670d63069afeca745681d5a6f1ed7cb942fd9f7c24840c010a54128e24a36addb898732d91293847cc6ef1d6c7dedc9ed35ec3605c7a519b
|
data/VERSIONS.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
2
2
|
|
3
|
-
/* Tabulator v4.0
|
3
|
+
/* Tabulator v4.1.0 (c) Oliver Folkerd */
|
4
4
|
|
5
5
|
;(function (global, factory) {
|
6
6
|
if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined') {
|
@@ -1177,7 +1177,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1177
1177
|
|
1178
1178
|
this.field = field;
|
1179
1179
|
|
1180
|
-
this.fieldStructure = field ? field.split(
|
1180
|
+
this.fieldStructure = field ? this.table.options.nestedFieldSeparator ? field.split(this.table.options.nestedFieldSeparator) : [field] : [];
|
1181
1181
|
|
1182
1182
|
this.getFieldValue = this.fieldStructure.length > 1 ? this._getNestedData : this._getFlatData;
|
1183
1183
|
|
@@ -1266,7 +1266,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1266
1266
|
|
1267
1267
|
while (self.element.firstChild) {
|
1268
1268
|
self.element.removeChild(self.element.firstChild);
|
1269
|
-
}
|
1269
|
+
}if (def.headerVertical) {
|
1270
|
+
|
1271
|
+
self.element.classList.add("tabulator-col-vertical");
|
1272
|
+
|
1273
|
+
if (def.headerVertical === "flip") {
|
1274
|
+
|
1275
|
+
self.element.classList.add("tabulator-col-vertical-flip");
|
1276
|
+
}
|
1277
|
+
}
|
1278
|
+
|
1279
|
+
self.contentElement = self._bindEvents();
|
1270
1280
|
|
1271
1281
|
self.contentElement = self._buildColumnHeaderContent();
|
1272
1282
|
|
@@ -1691,7 +1701,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1691
1701
|
|
1692
1702
|
contents = formatter.call(this.table.modules.format, mockCell, params);
|
1693
1703
|
|
1694
|
-
|
1704
|
+
switch (typeof contents === 'undefined' ? 'undefined' : _typeof(contents)) {
|
1705
|
+
|
1706
|
+
case "object":
|
1707
|
+
|
1708
|
+
if (contents instanceof Node) {
|
1709
|
+
|
1710
|
+
this.element.appendChild(contents);
|
1711
|
+
} else {
|
1712
|
+
|
1713
|
+
this.element.innerHTML = "";
|
1714
|
+
|
1715
|
+
console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", contents);
|
1716
|
+
}
|
1717
|
+
|
1718
|
+
break;
|
1719
|
+
|
1720
|
+
case "undefined":
|
1721
|
+
|
1722
|
+
case "null":
|
1723
|
+
|
1724
|
+
this.element.innerHTML = "";
|
1725
|
+
|
1726
|
+
break;
|
1727
|
+
|
1728
|
+
default:
|
1729
|
+
|
1730
|
+
this.element.innerHTML = contents;
|
1731
|
+
|
1732
|
+
}
|
1695
1733
|
} else {
|
1696
1734
|
|
1697
1735
|
el.innerHTML = title;
|
@@ -2718,7 +2756,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2718
2756
|
self.rows.push(row);
|
2719
2757
|
} else {
|
2720
2758
|
|
2721
|
-
console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but
|
2759
|
+
console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:", def);
|
2722
2760
|
}
|
2723
2761
|
});
|
2724
2762
|
|
@@ -2867,7 +2905,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2867
2905
|
|
2868
2906
|
RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
|
2869
2907
|
|
2870
|
-
var row = new Row(data || {}, this),
|
2908
|
+
var row = data instanceof Row ? data : new Row(data || {}, this),
|
2871
2909
|
top = this.findAddRowPos(pos),
|
2872
2910
|
dispRows;
|
2873
2911
|
|
@@ -3487,6 +3525,31 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3487
3525
|
skipStage = false;
|
3488
3526
|
}
|
3489
3527
|
|
3528
|
+
case "tree":
|
3529
|
+
|
3530
|
+
if (!skipStage) {
|
3531
|
+
|
3532
|
+
if (table.options.dataTree && table.modExists("dataTree")) {
|
3533
|
+
|
3534
|
+
if (!table.modules.dataTree.getDisplayIndex()) {
|
3535
|
+
|
3536
|
+
table.modules.dataTree.setDisplayIndex(this.getNextDisplayIndex());
|
3537
|
+
}
|
3538
|
+
|
3539
|
+
displayIndex = table.modules.dataTree.getDisplayIndex();
|
3540
|
+
|
3541
|
+
displayIndex = self.setDisplayRows(table.modules.dataTree.getRows(this.getDisplayRows(displayIndex - 1)), displayIndex);
|
3542
|
+
|
3543
|
+
if (displayIndex !== true) {
|
3544
|
+
|
3545
|
+
table.modules.dataTree.setDisplayIndex(displayIndex);
|
3546
|
+
}
|
3547
|
+
}
|
3548
|
+
} else {
|
3549
|
+
|
3550
|
+
skipStage = false;
|
3551
|
+
}
|
3552
|
+
|
3490
3553
|
if (table.options.pagination && table.modExists("page") && !renderInPosition) {
|
3491
3554
|
|
3492
3555
|
if (table.modules.page.getMode() == "local") {
|
@@ -4235,7 +4298,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4235
4298
|
|
4236
4299
|
var rowEl = bottomRow.getElement();
|
4237
4300
|
|
4238
|
-
rowEl.parentNode
|
4301
|
+
if (rowEl.parentNode) {
|
4302
|
+
|
4303
|
+
rowEl.parentNode.removeChild(rowEl);
|
4304
|
+
}
|
4239
4305
|
|
4240
4306
|
this.vDomBottomPad += bottomRowHeight;
|
4241
4307
|
|
@@ -4477,6 +4543,50 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4477
4543
|
}
|
4478
4544
|
};
|
4479
4545
|
|
4546
|
+
RowComponent.prototype.treeCollapse = function () {
|
4547
|
+
|
4548
|
+
if (this._row.table.modExists("dataTree", true)) {
|
4549
|
+
|
4550
|
+
this._row.table.modules.dataTree.collapseRow(this._row);
|
4551
|
+
}
|
4552
|
+
};
|
4553
|
+
|
4554
|
+
RowComponent.prototype.treeExpand = function () {
|
4555
|
+
|
4556
|
+
if (this._row.table.modExists("dataTree", true)) {
|
4557
|
+
|
4558
|
+
this._row.table.modules.dataTree.expandRow(this._row);
|
4559
|
+
}
|
4560
|
+
};
|
4561
|
+
|
4562
|
+
RowComponent.prototype.treeToggle = function () {
|
4563
|
+
|
4564
|
+
if (this._row.table.modExists("dataTree", true)) {
|
4565
|
+
|
4566
|
+
this._row.table.modules.dataTree.toggleRow(this._row);
|
4567
|
+
}
|
4568
|
+
};
|
4569
|
+
|
4570
|
+
RowComponent.prototype.getTreeParent = function () {
|
4571
|
+
|
4572
|
+
if (this._row.table.modExists("dataTree", true)) {
|
4573
|
+
|
4574
|
+
return this._row.table.modules.dataTree.getTreeParent(this._row);
|
4575
|
+
}
|
4576
|
+
|
4577
|
+
return false;
|
4578
|
+
};
|
4579
|
+
|
4580
|
+
RowComponent.prototype.getTreeChildren = function () {
|
4581
|
+
|
4582
|
+
if (this._row.table.modExists("dataTree", true)) {
|
4583
|
+
|
4584
|
+
return this._row.table.modules.dataTree.getTreeChildren(this._row);
|
4585
|
+
}
|
4586
|
+
|
4587
|
+
return false;
|
4588
|
+
};
|
4589
|
+
|
4480
4590
|
RowComponent.prototype.reformat = function () {
|
4481
4591
|
|
4482
4592
|
return this._row.reinitialize();
|
@@ -4492,6 +4602,16 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4492
4602
|
return this._row.table;
|
4493
4603
|
};
|
4494
4604
|
|
4605
|
+
RowComponent.prototype.getNextRow = function () {
|
4606
|
+
|
4607
|
+
return this._row.nextRow();
|
4608
|
+
};
|
4609
|
+
|
4610
|
+
RowComponent.prototype.getPrevRow = function () {
|
4611
|
+
|
4612
|
+
return this._row.prevRow();
|
4613
|
+
};
|
4614
|
+
|
4495
4615
|
var Row = function Row(data, parent) {
|
4496
4616
|
|
4497
4617
|
this.table = parent.table;
|
@@ -4559,6 +4679,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4559
4679
|
self.table.modules.moveRow.initializeRow(this);
|
4560
4680
|
}
|
4561
4681
|
|
4682
|
+
//setup data tree
|
4683
|
+
|
4684
|
+
if (self.table.options.dataTree !== false && self.table.modExists("dataTree")) {
|
4685
|
+
|
4686
|
+
self.table.modules.dataTree.initializeRow(this);
|
4687
|
+
}
|
4688
|
+
|
4562
4689
|
//handle row click events
|
4563
4690
|
|
4564
4691
|
if (self.table.options.rowClick) {
|
@@ -4699,6 +4826,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4699
4826
|
|
4700
4827
|
//setup movable rows
|
4701
4828
|
|
4829
|
+
if (self.table.options.dataTree && self.table.modExists("dataTree")) {
|
4830
|
+
|
4831
|
+
self.table.modules.dataTree.layoutRow(this);
|
4832
|
+
}
|
4833
|
+
|
4834
|
+
//setup movable rows
|
4835
|
+
|
4702
4836
|
if (self.table.options.responsiveLayout === "collapse" && self.table.modExists("responsiveLayout")) {
|
4703
4837
|
|
4704
4838
|
self.table.modules.responsiveLayout.layoutRow(this);
|
@@ -5043,6 +5177,20 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5043
5177
|
return this.cells;
|
5044
5178
|
};
|
5045
5179
|
|
5180
|
+
Row.prototype.nextRow = function () {
|
5181
|
+
|
5182
|
+
var row = this.table.rowManager.nextDisplayRow(this, true);
|
5183
|
+
|
5184
|
+
return row ? row.getComponent() : false;
|
5185
|
+
};
|
5186
|
+
|
5187
|
+
Row.prototype.prevRow = function () {
|
5188
|
+
|
5189
|
+
var row = this.table.rowManager.prevDisplayRow(this, true);
|
5190
|
+
|
5191
|
+
return row ? row.getComponent() : false;
|
5192
|
+
};
|
5193
|
+
|
5046
5194
|
///////////////////// Actions /////////////////////
|
5047
5195
|
|
5048
5196
|
|
@@ -5077,13 +5225,24 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5077
5225
|
|
5078
5226
|
if (this.table.modExists("selectRow")) {
|
5079
5227
|
|
5080
|
-
this.table.modules.selectRow._deselectRow(this
|
5228
|
+
this.table.modules.selectRow._deselectRow(this, true);
|
5081
5229
|
}
|
5082
5230
|
|
5231
|
+
// if(this.table.options.dataTree && this.table.modExists("dataTree")){
|
5232
|
+
|
5233
|
+
// this.table.modules.dataTree.collapseRow(this, true);
|
5234
|
+
|
5235
|
+
// }
|
5236
|
+
|
5237
|
+
|
5083
5238
|
this.table.rowManager.deleteRow(this);
|
5084
5239
|
|
5085
5240
|
this.deleteCells();
|
5086
5241
|
|
5242
|
+
this.initialized = false;
|
5243
|
+
|
5244
|
+
this.heightInitialized = false;
|
5245
|
+
|
5087
5246
|
//remove from group
|
5088
5247
|
|
5089
5248
|
if (this.modules.group) {
|
@@ -5516,7 +5675,15 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5516
5675
|
|
5517
5676
|
case "object":
|
5518
5677
|
|
5519
|
-
|
5678
|
+
if (val instanceof Node) {
|
5679
|
+
|
5680
|
+
this.element.appendChild(val);
|
5681
|
+
} else {
|
5682
|
+
|
5683
|
+
this.element.innerHTML = "";
|
5684
|
+
|
5685
|
+
console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:", val);
|
5686
|
+
}
|
5520
5687
|
|
5521
5688
|
break;
|
5522
5689
|
|
@@ -6091,6 +6258,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6091
6258
|
data: [], //default starting data
|
6092
6259
|
|
6093
6260
|
|
6261
|
+
nestedFieldSeparator: ".", //seperatpr for nested data
|
6262
|
+
|
6263
|
+
|
6094
6264
|
tooltips: false, //Tool tip value
|
6095
6265
|
|
6096
6266
|
tooltipsHeader: false, //Tool tip for headers
|
@@ -6103,6 +6273,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6103
6273
|
initialFilter: false, //initial filtering criteria
|
6104
6274
|
|
6105
6275
|
|
6276
|
+
columnHeaderSortMulti: true, //multiple or single column sorting
|
6277
|
+
|
6278
|
+
|
6279
|
+
sortOrderReverse: false, //reverse internal sort ordering
|
6280
|
+
|
6281
|
+
|
6106
6282
|
footerElement: false, //hold footer element
|
6107
6283
|
|
6108
6284
|
|
@@ -6120,12 +6296,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6120
6296
|
|
6121
6297
|
clipboardCopyFormatter: "table", //convert data to a clipboard string
|
6122
6298
|
|
6123
|
-
clipboardCopyHeader: true, //include table headers in copt
|
6124
|
-
|
6125
6299
|
clipboardPasteParser: "table", //convert pasted clipboard data to rows
|
6126
6300
|
|
6127
6301
|
clipboardPasteAction: "insert", //how to insert pasted data into the table
|
6128
6302
|
|
6303
|
+
clipboardCopyConfig: false, //clipboard config
|
6304
|
+
|
6129
6305
|
|
6130
6306
|
clipboardCopied: function clipboardCopied() {}, //data has been copied to the clipboard
|
6131
6307
|
|
@@ -6142,12 +6318,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6142
6318
|
|
6143
6319
|
downloadComplete: false, //function to manipulate download data
|
6144
6320
|
|
6321
|
+
downloadConfig: false, //download config
|
6322
|
+
|
6323
|
+
|
6324
|
+
dataTree: false, //enable data tree
|
6325
|
+
|
6326
|
+
dataTreeBranchElement: true, //show data tree branch element
|
6327
|
+
|
6328
|
+
dataTreeChildIndent: 9, //data tree child indent in px
|
6329
|
+
|
6330
|
+
dataTreeChildField: "_children", //data tre column field to look for child rows
|
6331
|
+
|
6332
|
+
dataTreeCollapseElement: false, //data tree row collapse element
|
6333
|
+
|
6334
|
+
dataTreeExpandElement: false, //data tree row expand element
|
6335
|
+
|
6336
|
+
dataTreeStartExpanded: false,
|
6337
|
+
|
6338
|
+
dataTreeRowExpanded: function dataTreeRowExpanded() {}, //row has been expanded
|
6339
|
+
|
6340
|
+
dataTreeRowCollapsed: function dataTreeRowCollapsed() {}, //row has been collapsed
|
6341
|
+
|
6145
6342
|
|
6146
6343
|
addRowPos: "bottom", //position to insert blank rows, top|bottom
|
6147
6344
|
|
6148
6345
|
|
6149
6346
|
selectable: "highlight", //highlight rows on hover
|
6150
6347
|
|
6348
|
+
selectableRangeType: "drag", //highlight rows on hover
|
6349
|
+
|
6151
6350
|
selectableRollingSelection: true, //roll selection once maximum number of selectable rows is reached
|
6152
6351
|
|
6153
6352
|
selectablePersistence: true, // maintain selection when table view is updated
|
@@ -6213,6 +6412,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6213
6412
|
|
6214
6413
|
ajaxConfig: "get", //ajax request type
|
6215
6414
|
|
6415
|
+
ajaxContentType: "form", //ajax request type
|
6416
|
+
|
6216
6417
|
ajaxRequestFunc: false, //promise function
|
6217
6418
|
|
6218
6419
|
ajaxLoader: true, //show loader
|
@@ -6236,6 +6437,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6236
6437
|
|
6237
6438
|
groupStartOpen: true, //starting state of group
|
6238
6439
|
|
6440
|
+
groupValues: false,
|
6239
6441
|
|
6240
6442
|
groupHeader: false, //header generation function
|
6241
6443
|
|
@@ -6608,6 +6810,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6608
6810
|
this.footerManager.activate();
|
6609
6811
|
}
|
6610
6812
|
|
6813
|
+
if (options.dataTree && this.modExists("dataTree", true)) {
|
6814
|
+
|
6815
|
+
mod.dataTree.initialize();
|
6816
|
+
}
|
6817
|
+
|
6611
6818
|
if ((options.persistentLayout || options.persistentSort || options.persistentFilter) && this.modExists("persistence", true)) {
|
6612
6819
|
|
6613
6820
|
mod.persistence.initialize(options.persistenceMode, options.persistenceID);
|
@@ -6941,6 +7148,26 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6941
7148
|
return this.rowManager.getDataCount(active);
|
6942
7149
|
};
|
6943
7150
|
|
7151
|
+
//search for specific row components
|
7152
|
+
|
7153
|
+
Tabulator.prototype.searchRows = function (field, type, value) {
|
7154
|
+
|
7155
|
+
if (this.modExists("filter", true)) {
|
7156
|
+
|
7157
|
+
return this.modules.filter.search("rows", field, type, value);
|
7158
|
+
}
|
7159
|
+
};
|
7160
|
+
|
7161
|
+
//search for specific data
|
7162
|
+
|
7163
|
+
Tabulator.prototype.searchData = function (field, type, value) {
|
7164
|
+
|
7165
|
+
if (this.modExists("filter", true)) {
|
7166
|
+
|
7167
|
+
return this.modules.filter.search("data", field, type, value);
|
7168
|
+
}
|
7169
|
+
};
|
7170
|
+
|
6944
7171
|
//get table html
|
6945
7172
|
|
6946
7173
|
Tabulator.prototype.getHtml = function (active) {
|
@@ -7899,13 +8126,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7899
8126
|
|
7900
8127
|
if (this.modExists("groupRows", true)) {
|
7901
8128
|
|
7902
|
-
return this.modules.groupRows.getGroups();
|
8129
|
+
return this.modules.groupRows.getGroups(true);
|
7903
8130
|
} else {
|
7904
8131
|
|
7905
8132
|
return false;
|
7906
8133
|
}
|
7907
8134
|
};
|
7908
8135
|
|
8136
|
+
// get grouped table data in the same format as getData()
|
8137
|
+
|
8138
|
+
Tabulator.prototype.getGroupedData = function () {
|
8139
|
+
|
8140
|
+
if (this.modExists("groupRows", true)) {
|
8141
|
+
|
8142
|
+
return this.options.groupBy ? this.modules.groupRows.getGroupedData() : this.getData();
|
8143
|
+
}
|
8144
|
+
};
|
8145
|
+
|
7909
8146
|
///////////////// Column Calculation Functions ///////////////
|
7910
8147
|
|
7911
8148
|
Tabulator.prototype.getCalcResults = function () {
|
@@ -8199,13 +8436,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8199
8436
|
|
8200
8437
|
deepClone: function deepClone(obj) {
|
8201
8438
|
|
8202
|
-
var clone = {};
|
8439
|
+
var clone = Array.isArray(obj) ? [] : {};
|
8203
8440
|
|
8204
8441
|
for (var i in obj) {
|
8205
8442
|
|
8206
8443
|
if (obj[i] != null && _typeof(obj[i]) === "object") {
|
8207
8444
|
|
8208
|
-
|
8445
|
+
if (obj[i] instanceof Date) {
|
8446
|
+
|
8447
|
+
clone[i] = new Date(obj[i]);
|
8448
|
+
} else {
|
8449
|
+
|
8450
|
+
clone[i] = this.deepClone(obj[i]);
|
8451
|
+
}
|
8209
8452
|
} else {
|
8210
8453
|
|
8211
8454
|
clone[i] = obj[i];
|
@@ -9245,17 +9488,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9245
9488
|
return encoded.join("&");
|
9246
9489
|
};
|
9247
9490
|
|
9248
|
-
Ajax.prototype.formDataParams = function (params) {
|
9249
|
-
var output = this.generateParamsList(params),
|
9250
|
-
form = new FormData();
|
9251
|
-
|
9252
|
-
output.forEach(function (item) {
|
9253
|
-
form.append(item.key, item.value);
|
9254
|
-
});
|
9255
|
-
|
9256
|
-
return form;
|
9257
|
-
};
|
9258
|
-
|
9259
9491
|
//send ajax request
|
9260
9492
|
Ajax.prototype.sendRequest = function (silent) {
|
9261
9493
|
var _this17 = this;
|
@@ -9364,11 +9596,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9364
9596
|
};
|
9365
9597
|
|
9366
9598
|
Ajax.prototype.defaultURLGenerator = function (url, config, params) {
|
9367
|
-
if (params) {
|
9599
|
+
if (params && Object.keys(params).length) {
|
9368
9600
|
if (!config.method || config.method.toLowerCase() == "get") {
|
9601
|
+
config.method = "get";
|
9369
9602
|
url += "?" + this.serializeParams(params);
|
9370
|
-
} else {
|
9371
|
-
config.body = this.formDataParams(params);
|
9372
9603
|
}
|
9373
9604
|
}
|
9374
9605
|
|
@@ -9376,14 +9607,55 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9376
9607
|
};
|
9377
9608
|
|
9378
9609
|
Ajax.prototype.defaultLoaderPromise = function (url, config, params) {
|
9379
|
-
var self = this
|
9610
|
+
var self = this,
|
9611
|
+
contentType;
|
9380
9612
|
|
9381
9613
|
return new Promise(function (resolve, reject) {
|
9382
9614
|
|
9615
|
+
//set url
|
9383
9616
|
url = self.urlGenerator(url, config, params);
|
9384
9617
|
|
9618
|
+
//set body content if not GET request
|
9619
|
+
if (config.method != "get") {
|
9620
|
+
contentType = _typeof(self.table.options.ajaxContentType) === "object" ? self.table.options.ajaxContentType : self.contentTypeFormatters[self.table.options.ajaxContentType];
|
9621
|
+
if (contentType) {
|
9622
|
+
|
9623
|
+
for (var key in contentType.headers) {
|
9624
|
+
if (!config.headers) {
|
9625
|
+
config.headers = {};
|
9626
|
+
}
|
9627
|
+
|
9628
|
+
if (typeof config.headers[key] === "undefined") {
|
9629
|
+
config.headers[key] = contentType.headers[key];
|
9630
|
+
}
|
9631
|
+
}
|
9632
|
+
|
9633
|
+
config.body = contentType.body.call(self, url, config, params);
|
9634
|
+
} else {
|
9635
|
+
console.warn("Ajax Error - Invalid ajaxContentType value:", self.table.options.ajaxContentType);
|
9636
|
+
}
|
9637
|
+
}
|
9638
|
+
|
9385
9639
|
if (url) {
|
9386
9640
|
|
9641
|
+
//configure headers
|
9642
|
+
if (typeof config.credentials === "undefined") {
|
9643
|
+
config.credentials = 'include';
|
9644
|
+
}
|
9645
|
+
|
9646
|
+
if (typeof config.headers === "undefined") {
|
9647
|
+
config.headers = {};
|
9648
|
+
}
|
9649
|
+
|
9650
|
+
if (typeof config.headers.Accept === "undefined") {
|
9651
|
+
config.headers.Accept = "application/json";
|
9652
|
+
}
|
9653
|
+
|
9654
|
+
if (typeof config.headers["X-Requested-With"] === "undefined") {
|
9655
|
+
config.headers["X-Requested-With"] = "XMLHttpRequest";
|
9656
|
+
}
|
9657
|
+
|
9658
|
+
//send request
|
9387
9659
|
fetch(url, config).then(function (response) {
|
9388
9660
|
if (response.ok) {
|
9389
9661
|
response.json().then(function (data) {
|
@@ -9406,6 +9678,30 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9406
9678
|
});
|
9407
9679
|
};
|
9408
9680
|
|
9681
|
+
Ajax.prototype.contentTypeFormatters = {
|
9682
|
+
"json": {
|
9683
|
+
headers: {
|
9684
|
+
'Content-Type': 'application/json'
|
9685
|
+
},
|
9686
|
+
body: function body(url, config, params) {
|
9687
|
+
return JSON.stringify(params);
|
9688
|
+
}
|
9689
|
+
},
|
9690
|
+
"form": {
|
9691
|
+
headers: {},
|
9692
|
+
body: function body(url, config, params) {
|
9693
|
+
var output = this.generateParamsList(params),
|
9694
|
+
form = new FormData();
|
9695
|
+
|
9696
|
+
output.forEach(function (item) {
|
9697
|
+
form.append(item.key, item.value);
|
9698
|
+
});
|
9699
|
+
|
9700
|
+
return form;
|
9701
|
+
}
|
9702
|
+
}
|
9703
|
+
};
|
9704
|
+
|
9409
9705
|
Tabulator.prototype.registerModule("ajax", Ajax);
|
9410
9706
|
var ColumnCalcs = function ColumnCalcs(table) {
|
9411
9707
|
this.table = table; //hold Tabulator object
|
@@ -9720,7 +10016,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9720
10016
|
groups;
|
9721
10017
|
|
9722
10018
|
if (this.table.options.groupBy && this.table.modExists("groupRows")) {
|
9723
|
-
groups = this.table.modules.groupRows.getGroups();
|
10019
|
+
groups = this.table.modules.groupRows.getGroups(true);
|
9724
10020
|
|
9725
10021
|
groups.forEach(function (group) {
|
9726
10022
|
results[group.getKey()] = self.getGroupResults(group);
|
@@ -9856,6 +10152,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9856
10152
|
this.pasteParser = function () {};
|
9857
10153
|
this.pasteAction = function () {};
|
9858
10154
|
this.htmlElement = false;
|
10155
|
+
this.config = {};
|
9859
10156
|
|
9860
10157
|
this.blocked = true; //block copy actions not originating from this command
|
9861
10158
|
};
|
@@ -9869,6 +10166,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9869
10166
|
this.table.element.addEventListener("copy", function (e) {
|
9870
10167
|
var data;
|
9871
10168
|
|
10169
|
+
self.processConfig();
|
10170
|
+
|
9872
10171
|
if (!self.blocked) {
|
9873
10172
|
e.preventDefault();
|
9874
10173
|
|
@@ -9905,6 +10204,38 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9905
10204
|
this.setPasteAction(this.table.options.clipboardPasteAction);
|
9906
10205
|
};
|
9907
10206
|
|
10207
|
+
Clipboard.prototype.processConfig = function () {
|
10208
|
+
var config = {
|
10209
|
+
columnHeaders: "groups",
|
10210
|
+
rowGroups: true
|
10211
|
+
};
|
10212
|
+
|
10213
|
+
if (typeof this.table.options.clipboardCopyHeader !== "undefined") {
|
10214
|
+
config.columnHeaders = this.table.options.clipboardCopyHeader;
|
10215
|
+
console.warn("DEPRICATION WANRING - clipboardCopyHeader option has been depricated, please use the columnHeaders property on the clipboardCopyConfig option");
|
10216
|
+
}
|
10217
|
+
|
10218
|
+
if (this.table.options.clipboardCopyConfig) {
|
10219
|
+
for (var key in this.table.options.clipboardCopyConfig) {
|
10220
|
+
config[key] = this.table.options.clipboardCopyConfig[key];
|
10221
|
+
}
|
10222
|
+
}
|
10223
|
+
|
10224
|
+
if (config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows")) {
|
10225
|
+
this.config.rowGroups = true;
|
10226
|
+
}
|
10227
|
+
|
10228
|
+
if (config.columnHeaders) {
|
10229
|
+
if ((config.columnHeaders === "groups" || config === true) && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) {
|
10230
|
+
this.config.columnHeaders = "groups";
|
10231
|
+
} else {
|
10232
|
+
this.config.columnHeaders = "columns";
|
10233
|
+
}
|
10234
|
+
} else {
|
10235
|
+
this.config.columnHeaders = false;
|
10236
|
+
}
|
10237
|
+
};
|
10238
|
+
|
9908
10239
|
Clipboard.prototype.reset = function () {
|
9909
10240
|
this.blocked = false;
|
9910
10241
|
this.originalSelectionText = "";
|
@@ -10032,7 +10363,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10032
10363
|
}
|
10033
10364
|
|
10034
10365
|
this.setSelector(selector);
|
10035
|
-
this.copySelectorParams = typeof selectorParams != "undefined" && selectorParams != null ? selectorParams : this.
|
10366
|
+
this.copySelectorParams = typeof selectorParams != "undefined" && selectorParams != null ? selectorParams : this.config.columnHeaders;
|
10036
10367
|
this.setFormatter(formatter);
|
10037
10368
|
this.copyFormatterParams = typeof formatterParams != "undefined" && formatterParams != null ? formatterParams : {};
|
10038
10369
|
|
@@ -10085,86 +10416,369 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10085
10416
|
var data;
|
10086
10417
|
|
10087
10418
|
this.htmlElement = false;
|
10088
|
-
data = this.copySelector.call(this, this.copySelectorParams);
|
10419
|
+
data = this.copySelector.call(this, this.config, this.copySelectorParams);
|
10089
10420
|
|
10090
|
-
return this.copyFormatter.call(this, data, this.copyFormatterParams);
|
10421
|
+
return this.copyFormatter.call(this, data, this.config, this.copyFormatterParams);
|
10091
10422
|
};
|
10092
10423
|
|
10093
|
-
Clipboard.prototype.
|
10094
|
-
var
|
10095
|
-
headers = [],
|
10096
|
-
data = [];
|
10424
|
+
Clipboard.prototype.generateSimpleHeaders = function (columns) {
|
10425
|
+
var headers = [];
|
10097
10426
|
|
10098
|
-
|
10099
|
-
|
10100
|
-
}
|
10427
|
+
columns.forEach(function (column) {
|
10428
|
+
headers.push(column.definition.title);
|
10429
|
+
});
|
10101
10430
|
|
10102
|
-
|
10103
|
-
|
10104
|
-
headers.push(column.definition.title);
|
10105
|
-
});
|
10431
|
+
return headers;
|
10432
|
+
};
|
10106
10433
|
|
10107
|
-
|
10108
|
-
|
10434
|
+
Clipboard.prototype.generateColumnGroupHeaders = function (columns) {
|
10435
|
+
var _this18 = this;
|
10109
10436
|
|
10110
|
-
|
10111
|
-
var rowArray = [],
|
10112
|
-
rowData = row.getData("clipboard");
|
10437
|
+
var output = [];
|
10113
10438
|
|
10114
|
-
|
10115
|
-
|
10116
|
-
rowArray.push(value);
|
10117
|
-
});
|
10439
|
+
this.table.columnManager.columns.forEach(function (column) {
|
10440
|
+
var colData = _this18.processColumnGroup(column);
|
10118
10441
|
|
10119
|
-
|
10442
|
+
if (colData) {
|
10443
|
+
output.push(colData);
|
10444
|
+
}
|
10120
10445
|
});
|
10121
10446
|
|
10122
|
-
return
|
10447
|
+
return output;
|
10123
10448
|
};
|
10124
10449
|
|
10125
|
-
Clipboard.prototype.
|
10126
|
-
var
|
10127
|
-
columns = this.table.columnManager.columnsByIndex,
|
10128
|
-
data = [],
|
10129
|
-
headers,
|
10130
|
-
body,
|
10131
|
-
oddRow,
|
10132
|
-
evenRow,
|
10133
|
-
firstRow,
|
10134
|
-
firstCell,
|
10135
|
-
lastCell,
|
10136
|
-
styleCells;
|
10450
|
+
Clipboard.prototype.processColumnGroup = function (column) {
|
10451
|
+
var _this19 = this;
|
10137
10452
|
|
10138
|
-
|
10139
|
-
this.htmlElement = document.createElement("table");
|
10140
|
-
self.mapElementStyles(this.table.element, this.htmlElement, ["border-top", "border-left", "border-right", "border-bottom"]);
|
10453
|
+
var subGroups = column.columns;
|
10141
10454
|
|
10142
|
-
|
10143
|
-
|
10144
|
-
|
10455
|
+
var groupData = {
|
10456
|
+
type: "group",
|
10457
|
+
title: column.definition.title,
|
10458
|
+
column: column
|
10459
|
+
};
|
10460
|
+
|
10461
|
+
if (subGroups.length) {
|
10462
|
+
groupData.subGroups = [];
|
10463
|
+
groupData.width = 0;
|
10464
|
+
|
10465
|
+
subGroups.forEach(function (subGroup) {
|
10466
|
+
var subGroupData = _this19.processColumnGroup(subGroup);
|
10467
|
+
|
10468
|
+
if (subGroupData) {
|
10469
|
+
groupData.width += subGroupData.width;
|
10470
|
+
groupData.subGroups.push(subGroupData);
|
10471
|
+
}
|
10472
|
+
});
|
10473
|
+
|
10474
|
+
if (!groupData.width) {
|
10475
|
+
return false;
|
10476
|
+
}
|
10477
|
+
} else {
|
10478
|
+
if (column.field && column.visible) {
|
10479
|
+
groupData.width = 1;
|
10480
|
+
} else {
|
10481
|
+
return false;
|
10482
|
+
}
|
10483
|
+
}
|
10484
|
+
|
10485
|
+
return groupData;
|
10486
|
+
};
|
10487
|
+
|
10488
|
+
Clipboard.prototype.groupHeadersToRows = function (columns) {
|
10489
|
+
|
10490
|
+
var headers = [];
|
10491
|
+
|
10492
|
+
function parseColumnGroup(column, level) {
|
10493
|
+
|
10494
|
+
if (typeof headers[level] === "undefined") {
|
10495
|
+
headers[level] = [];
|
10496
|
+
}
|
10497
|
+
|
10498
|
+
headers[level].push(column.title);
|
10499
|
+
|
10500
|
+
if (column.subGroups) {
|
10501
|
+
column.subGroups.forEach(function (subGroup) {
|
10502
|
+
parseColumnGroup(subGroup, level + 1);
|
10503
|
+
});
|
10504
|
+
} else {
|
10505
|
+
padColumnheaders();
|
10506
|
+
}
|
10507
|
+
}
|
10508
|
+
|
10509
|
+
function padColumnheaders() {
|
10510
|
+
var max = 0;
|
10511
|
+
|
10512
|
+
headers.forEach(function (title) {
|
10513
|
+
var len = title.length;
|
10514
|
+
if (len > max) {
|
10515
|
+
max = len;
|
10516
|
+
}
|
10517
|
+
});
|
10518
|
+
|
10519
|
+
headers.forEach(function (title) {
|
10520
|
+
var len = title.length;
|
10521
|
+
if (len < max) {
|
10522
|
+
for (var i = len; i < max; i++) {
|
10523
|
+
title.push("");
|
10524
|
+
}
|
10525
|
+
}
|
10526
|
+
});
|
10527
|
+
}
|
10528
|
+
|
10529
|
+
columns.forEach(function (column) {
|
10530
|
+
parseColumnGroup(column, 0);
|
10531
|
+
});
|
10532
|
+
|
10533
|
+
return headers;
|
10534
|
+
};
|
10535
|
+
|
10536
|
+
Clipboard.prototype.rowsToData = function (rows, config, params) {
|
10537
|
+
var columns = this.table.columnManager.columnsByIndex,
|
10538
|
+
data = [];
|
10539
|
+
|
10540
|
+
rows.forEach(function (row) {
|
10541
|
+
var rowArray = [],
|
10542
|
+
rowData = row.getData("clipboard");
|
10543
|
+
|
10544
|
+
columns.forEach(function (column) {
|
10545
|
+
var value = column.getFieldValue(rowData);
|
10546
|
+
|
10547
|
+
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
|
10548
|
+
case "object":
|
10549
|
+
value = JSON.stringify(value);
|
10550
|
+
break;
|
10551
|
+
|
10552
|
+
case "undefined":
|
10553
|
+
case "null":
|
10554
|
+
value = "";
|
10555
|
+
break;
|
10556
|
+
|
10557
|
+
default:
|
10558
|
+
value = value;
|
10559
|
+
}
|
10560
|
+
|
10561
|
+
rowArray.push(value);
|
10562
|
+
});
|
10563
|
+
|
10564
|
+
data.push(rowArray);
|
10565
|
+
});
|
10566
|
+
|
10567
|
+
return data;
|
10568
|
+
};
|
10569
|
+
|
10570
|
+
Clipboard.prototype.buildComplexRows = function (config) {
|
10571
|
+
var _this20 = this;
|
10572
|
+
|
10573
|
+
var output = [],
|
10574
|
+
groups = this.table.modules.groupRows.getGroups();
|
10575
|
+
|
10576
|
+
groups.forEach(function (group) {
|
10577
|
+
output.push(_this20.processGroupData(group));
|
10578
|
+
});
|
10579
|
+
|
10580
|
+
return output;
|
10581
|
+
};
|
10582
|
+
|
10583
|
+
Clipboard.prototype.processGroupData = function (group) {
|
10584
|
+
var _this21 = this;
|
10585
|
+
|
10586
|
+
var subGroups = group.getSubGroups();
|
10587
|
+
|
10588
|
+
var groupData = {
|
10589
|
+
type: "group",
|
10590
|
+
key: group.key
|
10591
|
+
};
|
10592
|
+
|
10593
|
+
if (subGroups.length) {
|
10594
|
+
groupData.subGroups = [];
|
10595
|
+
|
10596
|
+
subGroups.forEach(function (subGroup) {
|
10597
|
+
groupData.subGroups.push(_this21.processGroupData(subGroup));
|
10598
|
+
});
|
10599
|
+
} else {
|
10600
|
+
groupData.rows = group.getRows(true);
|
10601
|
+
}
|
10602
|
+
|
10603
|
+
return groupData;
|
10604
|
+
};
|
10605
|
+
|
10606
|
+
Clipboard.prototype.buildOutput = function (rows, config, params) {
|
10607
|
+
var _this22 = this;
|
10608
|
+
|
10609
|
+
var output = [],
|
10610
|
+
columns = this.table.columnManager.columnsByIndex;
|
10611
|
+
|
10612
|
+
if (config.columnHeaders) {
|
10613
|
+
|
10614
|
+
if (config.columnHeaders == "groups") {
|
10615
|
+
columns = this.generateColumnGroupHeaders(this.table.columnManager.columns);
|
10616
|
+
|
10617
|
+
output = output.concat(this.groupHeadersToRows(columns));
|
10618
|
+
} else {
|
10619
|
+
output.push(this.generateSimpleHeaders(columns));
|
10620
|
+
}
|
10621
|
+
}
|
10622
|
+
|
10623
|
+
//generate styled content
|
10624
|
+
if (this.table.options.clipboardCopyStyled) {
|
10625
|
+
this.generateHTML(rows, columns, config, params);
|
10626
|
+
}
|
10627
|
+
|
10628
|
+
//generate unstyled content
|
10629
|
+
if (config.rowGroups) {
|
10630
|
+
rows.forEach(function (row) {
|
10631
|
+
output = output.concat(_this22.parseRowGroupData(row, config, params));
|
10632
|
+
});
|
10633
|
+
} else {
|
10634
|
+
output = output.concat(this.rowsToData(rows, config, params));
|
10635
|
+
}
|
10636
|
+
|
10637
|
+
return output;
|
10638
|
+
};
|
10639
|
+
|
10640
|
+
Clipboard.prototype.parseRowGroupData = function (group, config, params) {
|
10641
|
+
var _this23 = this;
|
10642
|
+
|
10643
|
+
var groupData = [];
|
10644
|
+
|
10645
|
+
groupData.push([group.key]);
|
10646
|
+
|
10647
|
+
if (group.subGroups) {
|
10648
|
+
group.subGroups.forEach(function (subGroup) {
|
10649
|
+
groupData = groupData.concat(_this23.parseRowGroupData(subGroup, config, params));
|
10650
|
+
});
|
10651
|
+
} else {
|
10652
|
+
|
10653
|
+
groupData = groupData.concat(this.rowsToData(group.rows, config, params));
|
10654
|
+
}
|
10655
|
+
|
10656
|
+
return groupData;
|
10657
|
+
};
|
10658
|
+
|
10659
|
+
Clipboard.prototype.generateHTML = function (rows, columns, config, params) {
|
10660
|
+
var self = this,
|
10661
|
+
data = [],
|
10662
|
+
headers = [],
|
10663
|
+
body,
|
10664
|
+
oddRow,
|
10665
|
+
evenRow,
|
10666
|
+
firstRow,
|
10667
|
+
firstCell,
|
10668
|
+
firstGroup,
|
10669
|
+
lastCell,
|
10670
|
+
styleCells;
|
10671
|
+
|
10672
|
+
//create table element
|
10673
|
+
this.htmlElement = document.createElement("table");
|
10674
|
+
self.mapElementStyles(this.table.element, this.htmlElement, ["border-top", "border-left", "border-right", "border-bottom"]);
|
10675
|
+
|
10676
|
+
function generateSimpleHeaders() {
|
10677
|
+
var headerEl = document.createElement("tr");
|
10145
10678
|
|
10146
10679
|
columns.forEach(function (column) {
|
10147
|
-
var
|
10148
|
-
|
10680
|
+
var columnEl = document.createElement("th");
|
10681
|
+
columnEl.innerHTML = column.definition.title;
|
10682
|
+
|
10683
|
+
self.mapElementStyles(column.getElement(), columnEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
|
10684
|
+
|
10685
|
+
headerEl.appendChild(columnEl);
|
10686
|
+
});
|
10687
|
+
|
10688
|
+
self.mapElementStyles(self.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
|
10689
|
+
|
10690
|
+
self.htmlElement.appendChild(document.createElement("thead").appendChild(headerEl));
|
10691
|
+
}
|
10692
|
+
|
10693
|
+
function generateHeaders(headers) {
|
10694
|
+
|
10695
|
+
var headerHolderEl = document.createElement("thead");
|
10696
|
+
|
10697
|
+
headers.forEach(function (columns) {
|
10698
|
+
var headerEl = document.createElement("tr");
|
10699
|
+
|
10700
|
+
columns.forEach(function (column) {
|
10701
|
+
var columnEl = document.createElement("th");
|
10702
|
+
|
10703
|
+
if (column.width > 1) {
|
10704
|
+
columnEl.colSpan = column.width;
|
10705
|
+
}
|
10706
|
+
|
10707
|
+
if (column.height > 1) {
|
10708
|
+
columnEl.rowSpan = column.height;
|
10709
|
+
}
|
10710
|
+
|
10711
|
+
columnEl.innerHTML = column.title;
|
10712
|
+
|
10713
|
+
self.mapElementStyles(column.element, columnEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
|
10714
|
+
|
10715
|
+
headerEl.appendChild(columnEl);
|
10716
|
+
});
|
10717
|
+
|
10718
|
+
self.mapElementStyles(self.table.columnManager.getHeadersElement(), headerEl, ["border-top", "border-left", "border-right", "border-bottom", "background-color", "color", "font-weight", "font-family", "font-size"]);
|
10719
|
+
|
10720
|
+
headerHolderEl.appendChild(headerEl);
|
10721
|
+
});
|
10722
|
+
|
10723
|
+
self.htmlElement.appendChild(headerHolderEl);
|
10724
|
+
}
|
10725
|
+
|
10726
|
+
function parseColumnGroup(column, level) {
|
10149
10727
|
|
10150
|
-
|
10728
|
+
if (typeof headers[level] === "undefined") {
|
10729
|
+
headers[level] = [];
|
10730
|
+
}
|
10731
|
+
|
10732
|
+
headers[level].push({
|
10733
|
+
title: column.title,
|
10734
|
+
width: column.width,
|
10735
|
+
height: 1,
|
10736
|
+
children: !!column.subGroups,
|
10737
|
+
element: column.column.getElement()
|
10738
|
+
});
|
10739
|
+
|
10740
|
+
if (column.subGroups) {
|
10741
|
+
column.subGroups.forEach(function (subGroup) {
|
10742
|
+
parseColumnGroup(subGroup, level + 1);
|
10743
|
+
});
|
10744
|
+
}
|
10745
|
+
}
|
10151
10746
|
|
10152
|
-
|
10747
|
+
function padVerticalColumnheaders() {
|
10748
|
+
headers.forEach(function (row, index) {
|
10749
|
+
row.forEach(function (header) {
|
10750
|
+
if (!header.children) {
|
10751
|
+
header.height = headers.length - index;
|
10752
|
+
}
|
10753
|
+
});
|
10153
10754
|
});
|
10755
|
+
}
|
10154
10756
|
|
10155
|
-
|
10757
|
+
//create headers if needed
|
10758
|
+
if (config.columnHeaders) {
|
10759
|
+
if (config.columnHeaders == "groups") {
|
10760
|
+
columns.forEach(function (column) {
|
10761
|
+
parseColumnGroup(column, 0);
|
10762
|
+
});
|
10156
10763
|
|
10157
|
-
|
10764
|
+
padVerticalColumnheaders();
|
10765
|
+
generateHeaders(headers);
|
10766
|
+
} else {
|
10767
|
+
generateSimpleHeaders();
|
10768
|
+
}
|
10158
10769
|
}
|
10159
10770
|
|
10771
|
+
columns = this.table.columnManager.columnsByIndex;
|
10772
|
+
|
10160
10773
|
//create table body
|
10161
10774
|
body = document.createElement("tbody");
|
10162
10775
|
|
10163
10776
|
//lookup row styles
|
10164
10777
|
if (window.getComputedStyle) {
|
10165
|
-
oddRow = this.table.element.
|
10166
|
-
evenRow = this.table.element.
|
10167
|
-
firstRow = this.table.element.
|
10778
|
+
oddRow = this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)");
|
10779
|
+
evenRow = this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)");
|
10780
|
+
firstRow = this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)");
|
10781
|
+
firstGroup = this.table.element.getElementsByClassName("tabulator-group")[0];
|
10168
10782
|
|
10169
10783
|
if (firstRow) {
|
10170
10784
|
styleCells = firstRow.getElementsByClassName("tabulator-cell");
|
@@ -10173,47 +10787,95 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10173
10787
|
}
|
10174
10788
|
}
|
10175
10789
|
|
10176
|
-
|
10177
|
-
|
10178
|
-
|
10179
|
-
|
10180
|
-
|
10790
|
+
function processRows(rowArray) {
|
10791
|
+
//add rows to table
|
10792
|
+
rowArray.forEach(function (row, i) {
|
10793
|
+
var rowEl = document.createElement("tr"),
|
10794
|
+
rowData = row.getData("clipboard"),
|
10795
|
+
styleRow = firstRow;
|
10181
10796
|
|
10182
|
-
|
10183
|
-
|
10184
|
-
|
10797
|
+
columns.forEach(function (column, j) {
|
10798
|
+
var cellEl = document.createElement("td"),
|
10799
|
+
value = column.getFieldValue(rowData);
|
10185
10800
|
|
10186
|
-
|
10187
|
-
|
10188
|
-
|
10801
|
+
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
|
10802
|
+
case "object":
|
10803
|
+
value = JSON.stringify(value);
|
10804
|
+
break;
|
10805
|
+
|
10806
|
+
case "undefined":
|
10807
|
+
case "null":
|
10808
|
+
value = "";
|
10809
|
+
break;
|
10189
10810
|
|
10190
|
-
|
10191
|
-
|
10192
|
-
self.mapElementStyles(firstCell, cellEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
|
10811
|
+
default:
|
10812
|
+
value = value;
|
10193
10813
|
}
|
10194
|
-
|
10195
|
-
|
10196
|
-
|
10814
|
+
|
10815
|
+
cellEl.innerHTML = value;
|
10816
|
+
|
10817
|
+
if (column.definition.align) {
|
10818
|
+
cellEl.style.textAlign = column.definition.align;
|
10197
10819
|
}
|
10820
|
+
|
10821
|
+
if (j < columns.length - 1) {
|
10822
|
+
if (firstCell) {
|
10823
|
+
self.mapElementStyles(firstCell, cellEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
|
10824
|
+
}
|
10825
|
+
} else {
|
10826
|
+
if (firstCell) {
|
10827
|
+
self.mapElementStyles(firstCell, cellEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size"]);
|
10828
|
+
}
|
10829
|
+
}
|
10830
|
+
|
10831
|
+
rowEl.appendChild(cellEl);
|
10832
|
+
});
|
10833
|
+
|
10834
|
+
if (!(i % 2) && oddRow) {
|
10835
|
+
styleRow = oddRow;
|
10198
10836
|
}
|
10199
10837
|
|
10200
|
-
|
10838
|
+
if (i % 2 && evenRow) {
|
10839
|
+
styleRow = evenRow;
|
10840
|
+
}
|
10841
|
+
|
10842
|
+
if (styleRow) {
|
10843
|
+
self.mapElementStyles(styleRow, rowEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
|
10844
|
+
}
|
10845
|
+
|
10846
|
+
body.appendChild(rowEl);
|
10201
10847
|
});
|
10848
|
+
}
|
10202
10849
|
|
10203
|
-
|
10204
|
-
|
10205
|
-
|
10850
|
+
function processGroup(group) {
|
10851
|
+
var groupEl = document.createElement("tr"),
|
10852
|
+
groupCellEl = document.createElement("td");
|
10206
10853
|
|
10207
|
-
|
10208
|
-
|
10209
|
-
|
10854
|
+
groupCellEl.colSpan = columns.length;
|
10855
|
+
|
10856
|
+
groupCellEl.innerHTML = group.key;
|
10210
10857
|
|
10211
|
-
|
10212
|
-
|
10858
|
+
groupEl.appendChild(groupCellEl);
|
10859
|
+
body.appendChild(groupEl);
|
10860
|
+
|
10861
|
+
self.mapElementStyles(firstGroup, groupEl, ["border-top", "border-left", "border-right", "border-bottom", "color", "font-weight", "font-family", "font-size", "background-color"]);
|
10862
|
+
|
10863
|
+
if (group.subGroups) {
|
10864
|
+
group.subGroups.forEach(function (subGroup) {
|
10865
|
+
processGroup(subGroup);
|
10866
|
+
});
|
10867
|
+
} else {
|
10868
|
+
processRows(group.rows);
|
10213
10869
|
}
|
10870
|
+
}
|
10214
10871
|
|
10215
|
-
|
10216
|
-
|
10872
|
+
if (config.rowGroups) {
|
10873
|
+
rows.forEach(function (group) {
|
10874
|
+
processGroup(group);
|
10875
|
+
});
|
10876
|
+
} else {
|
10877
|
+
processRows(rows);
|
10878
|
+
}
|
10217
10879
|
|
10218
10880
|
this.htmlElement.appendChild(body);
|
10219
10881
|
};
|
@@ -10244,23 +10906,39 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10244
10906
|
};
|
10245
10907
|
|
10246
10908
|
Clipboard.prototype.copySelectors = {
|
10247
|
-
userSelection: function userSelection(params) {
|
10909
|
+
userSelection: function userSelection(config, params) {
|
10248
10910
|
return params;
|
10249
10911
|
},
|
10250
|
-
selected: function selected(params) {
|
10912
|
+
selected: function selected(config, params) {
|
10251
10913
|
var rows = [];
|
10252
10914
|
|
10253
10915
|
if (this.table.modExists("selectRow", true)) {
|
10254
10916
|
rows = this.table.modules.selectRow.getSelectedRows();
|
10255
10917
|
}
|
10256
10918
|
|
10257
|
-
|
10919
|
+
if (config.rowGroups) {
|
10920
|
+
console.warn("Clipboard Warning - select coptSelector does not support row groups");
|
10921
|
+
}
|
10922
|
+
|
10923
|
+
return this.buildOutput(rows, config, params);
|
10258
10924
|
},
|
10259
|
-
table: function table(params) {
|
10260
|
-
|
10925
|
+
table: function table(config, params) {
|
10926
|
+
if (config.rowGroups) {
|
10927
|
+
console.warn("Clipboard Warning - table coptSelector does not support row groups");
|
10928
|
+
}
|
10929
|
+
|
10930
|
+
return this.buildOutput(this.table.rowManager.getComponents(), config, params);
|
10261
10931
|
},
|
10262
|
-
active: function active(params) {
|
10263
|
-
|
10932
|
+
active: function active(config, params) {
|
10933
|
+
var rows;
|
10934
|
+
|
10935
|
+
if (config.rowGroups) {
|
10936
|
+
rows = this.buildComplexRows(config);
|
10937
|
+
} else {
|
10938
|
+
rows = this.table.rowManager.getComponents(true);
|
10939
|
+
}
|
10940
|
+
|
10941
|
+
return this.buildOutput(rows, config, params);
|
10264
10942
|
}
|
10265
10943
|
};
|
10266
10944
|
|
@@ -10384,40 +11062,360 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10384
11062
|
|
10385
11063
|
Tabulator.prototype.registerModule("clipboard", Clipboard);
|
10386
11064
|
|
10387
|
-
var
|
10388
|
-
this.table = table;
|
10389
|
-
this.
|
10390
|
-
this.
|
10391
|
-
this.
|
11065
|
+
var DataTree = function DataTree(table) {
|
11066
|
+
this.table = table;
|
11067
|
+
this.indent = 10;
|
11068
|
+
this.field = "";
|
11069
|
+
this.collapseEl = null;
|
11070
|
+
this.expandEl = null;
|
11071
|
+
this.branchEl = null;
|
11072
|
+
|
11073
|
+
this.startOpen = function () {};
|
11074
|
+
|
11075
|
+
this.displayIndex = 0;
|
10392
11076
|
};
|
10393
11077
|
|
10394
|
-
|
10395
|
-
|
10396
|
-
|
10397
|
-
downloadFunc = false;
|
11078
|
+
DataTree.prototype.initialize = function () {
|
11079
|
+
var dummyEl = null,
|
11080
|
+
options = this.table.options;
|
10398
11081
|
|
10399
|
-
|
10400
|
-
|
10401
|
-
|
11082
|
+
this.field = options.dataTreeChildField;
|
11083
|
+
this.indent = options.dataTreeChildIndent;
|
11084
|
+
|
11085
|
+
if (options.dataTreeBranchElement) {
|
11086
|
+
|
11087
|
+
if (options.dataTreeBranchElement === true) {
|
11088
|
+
this.branchEl = document.createElement("div");
|
11089
|
+
this.branchEl.classList.add("tabulator-data-tree-branch");
|
10402
11090
|
} else {
|
10403
|
-
|
11091
|
+
if (typeof options.dataTreeBranchElement === "string") {
|
11092
|
+
dummyEl = document.createElement("div");
|
11093
|
+
dummyEl.innerHTML = options.dataTreeBranchElement;
|
11094
|
+
this.branchEl = dummyEl.firstChild;
|
11095
|
+
} else {
|
11096
|
+
this.branchEl = options.dataTreeBranchElement;
|
11097
|
+
}
|
10404
11098
|
}
|
10405
11099
|
}
|
10406
11100
|
|
10407
|
-
if (
|
10408
|
-
|
11101
|
+
if (options.dataTreeCollapseElement) {
|
11102
|
+
if (typeof options.dataTreeCollapseElement === "string") {
|
11103
|
+
dummyEl = document.createElement("div");
|
11104
|
+
dummyEl.innerHTML = options.dataTreeCollapseElement;
|
11105
|
+
this.collapseEl = dummyEl.firstChild;
|
11106
|
+
} else {
|
11107
|
+
this.collapseEl = options.dataTreeCollapseElement;
|
11108
|
+
}
|
10409
11109
|
} else {
|
10410
|
-
|
10411
|
-
|
11110
|
+
this.collapseEl = document.createElement("div");
|
11111
|
+
this.collapseEl.classList.add("tabulator-data-tree-control");
|
11112
|
+
this.collapseEl.innerHTML = "<div class='tabulator-data-tree-control-collapse'></div>";
|
11113
|
+
}
|
11114
|
+
|
11115
|
+
if (options.dataTreeExpandElement) {
|
11116
|
+
if (typeof options.dataTreeExpandElement === "string") {
|
11117
|
+
dummyEl = document.createElement("div");
|
11118
|
+
dummyEl.innerHTML = options.dataTreeExpandElement;
|
11119
|
+
this.expandEl = dummyEl.firstChild;
|
10412
11120
|
} else {
|
10413
|
-
|
11121
|
+
this.expandEl = options.dataTreeExpandElement;
|
11122
|
+
}
|
11123
|
+
} else {
|
11124
|
+
this.expandEl = document.createElement("div");
|
11125
|
+
this.expandEl.classList.add("tabulator-data-tree-control");
|
11126
|
+
this.expandEl.innerHTML = "<div class='tabulator-data-tree-control-expand'></div>";
|
11127
|
+
}
|
11128
|
+
|
11129
|
+
switch (_typeof(options.dataTreeStartExpanded)) {
|
11130
|
+
case "boolean":
|
11131
|
+
this.startOpen = function (row, index) {
|
11132
|
+
return options.dataTreeStartExpanded;
|
11133
|
+
};
|
11134
|
+
break;
|
11135
|
+
|
11136
|
+
case "function":
|
11137
|
+
this.startOpen = options.dataTreeStartExpanded;
|
11138
|
+
break;
|
11139
|
+
|
11140
|
+
default:
|
11141
|
+
this.startOpen = function (row, index) {
|
11142
|
+
return options.dataTreeStartExpanded[index];
|
11143
|
+
};
|
11144
|
+
break;
|
11145
|
+
}
|
11146
|
+
};
|
11147
|
+
|
11148
|
+
DataTree.prototype.initializeRow = function (row) {
|
11149
|
+
|
11150
|
+
var children = typeof row.getData()[this.field] !== "undefined";
|
11151
|
+
|
11152
|
+
row.modules.dataTree = {
|
11153
|
+
index: 0,
|
11154
|
+
open: children ? this.startOpen(row.getComponent(), 0) : false,
|
11155
|
+
controlEl: false,
|
11156
|
+
branchEl: false,
|
11157
|
+
parent: false,
|
11158
|
+
children: children
|
11159
|
+
};
|
11160
|
+
};
|
11161
|
+
|
11162
|
+
DataTree.prototype.layoutRow = function (row) {
|
11163
|
+
var cell = row.getCells()[0],
|
11164
|
+
el = cell.getElement(),
|
11165
|
+
config = row.modules.dataTree;
|
11166
|
+
|
11167
|
+
el.style.paddingLeft = parseInt(window.getComputedStyle(el, null).getPropertyValue('padding-left')) + config.index * this.indent + "px";
|
11168
|
+
|
11169
|
+
if (config.branchEl) {
|
11170
|
+
config.branchEl.parentNode.removeChild(config.branchEl);
|
11171
|
+
}
|
11172
|
+
|
11173
|
+
this.generateControlElement(row, el);
|
11174
|
+
|
11175
|
+
if (config.index && this.branchEl) {
|
11176
|
+
config.branchEl = this.branchEl.cloneNode(true);
|
11177
|
+
el.insertBefore(config.branchEl, el.firstChild);
|
11178
|
+
el.style.paddingLeft = parseInt(el.style.paddingLeft) + (config.branchEl.offsetWidth + config.branchEl.style.marginRight) * (config.index - 1) + "px";
|
11179
|
+
}
|
11180
|
+
};
|
11181
|
+
|
11182
|
+
DataTree.prototype.generateControlElement = function (row, el) {
|
11183
|
+
var _this24 = this;
|
11184
|
+
|
11185
|
+
var config = row.modules.dataTree,
|
11186
|
+
el = el || row.getCells()[0].getElement(),
|
11187
|
+
oldControl = config.controlEl;
|
11188
|
+
|
11189
|
+
if (config.children !== false) {
|
11190
|
+
|
11191
|
+
if (config.open) {
|
11192
|
+
config.controlEl = this.collapseEl.cloneNode(true);
|
11193
|
+
config.controlEl.addEventListener("click", function (e) {
|
11194
|
+
e.stopPropagation();
|
11195
|
+
_this24.collapseRow(row);
|
11196
|
+
});
|
11197
|
+
} else {
|
11198
|
+
config.controlEl = this.expandEl.cloneNode(true);
|
11199
|
+
config.controlEl.addEventListener("click", function (e) {
|
11200
|
+
e.stopPropagation();
|
11201
|
+
_this24.expandRow(row);
|
11202
|
+
});
|
11203
|
+
}
|
11204
|
+
|
11205
|
+
config.controlEl.addEventListener("mousedown", function (e) {
|
11206
|
+
e.stopPropagation();
|
11207
|
+
});
|
11208
|
+
|
11209
|
+
if (oldControl && oldControl.parentNode === el) {
|
11210
|
+
oldControl.parentNode.replaceChild(config.controlEl, oldControl);
|
11211
|
+
} else {
|
11212
|
+
el.insertBefore(config.controlEl, el.firstChild);
|
11213
|
+
}
|
11214
|
+
}
|
11215
|
+
};
|
11216
|
+
|
11217
|
+
DataTree.prototype.setDisplayIndex = function (index) {
|
11218
|
+
this.displayIndex = index;
|
11219
|
+
};
|
11220
|
+
|
11221
|
+
DataTree.prototype.getDisplayIndex = function () {
|
11222
|
+
return this.displayIndex;
|
11223
|
+
};
|
11224
|
+
|
11225
|
+
DataTree.prototype.getRows = function (rows) {
|
11226
|
+
var _this25 = this;
|
11227
|
+
|
11228
|
+
var output = [];
|
11229
|
+
|
11230
|
+
rows.forEach(function (row, i) {
|
11231
|
+
var config = row.modules.dataTree.children,
|
11232
|
+
children;
|
11233
|
+
|
11234
|
+
output.push(row);
|
11235
|
+
|
11236
|
+
if (!config.index && config.children !== false) {
|
11237
|
+
children = _this25.getChildren(row);
|
11238
|
+
|
11239
|
+
children.forEach(function (child) {
|
11240
|
+
output.push(child);
|
11241
|
+
});
|
11242
|
+
}
|
11243
|
+
});
|
11244
|
+
|
11245
|
+
return output;
|
11246
|
+
};
|
11247
|
+
|
11248
|
+
DataTree.prototype.getChildren = function (row) {
|
11249
|
+
var _this26 = this;
|
11250
|
+
|
11251
|
+
var config = row.modules.dataTree,
|
11252
|
+
output = [];
|
11253
|
+
|
11254
|
+
if (config.children !== false && config.open) {
|
11255
|
+
if (!Array.isArray(config.children)) {
|
11256
|
+
config.children = this.generateChildren(row);
|
11257
|
+
}
|
11258
|
+
|
11259
|
+
config.children.forEach(function (child) {
|
11260
|
+
output.push(child);
|
11261
|
+
|
11262
|
+
var subChildren = _this26.getChildren(child);
|
11263
|
+
|
11264
|
+
subChildren.forEach(function (sub) {
|
11265
|
+
output.push(sub);
|
11266
|
+
});
|
11267
|
+
});
|
11268
|
+
}
|
11269
|
+
|
11270
|
+
return output;
|
11271
|
+
};
|
11272
|
+
|
11273
|
+
DataTree.prototype.generateChildren = function (row) {
|
11274
|
+
var _this27 = this;
|
11275
|
+
|
11276
|
+
var children = [];
|
11277
|
+
|
11278
|
+
row.getData()[this.field].forEach(function (childData) {
|
11279
|
+
var childRow = new Row(childData || {}, _this27.table.rowManager);
|
11280
|
+
childRow.modules.dataTree.index = row.modules.dataTree.index + 1;
|
11281
|
+
childRow.modules.dataTree.parent = row;
|
11282
|
+
childRow.modules.dataTree.open = _this27.startOpen(row, childRow.modules.dataTree.index);
|
11283
|
+
children.push(childRow);
|
11284
|
+
});
|
11285
|
+
|
11286
|
+
return children;
|
11287
|
+
};
|
11288
|
+
|
11289
|
+
DataTree.prototype.expandRow = function (row, silent) {
|
11290
|
+
var config = row.modules.dataTree;
|
11291
|
+
|
11292
|
+
if (config.children !== false) {
|
11293
|
+
config.open = true;
|
11294
|
+
|
11295
|
+
row.reinitialize();
|
11296
|
+
|
11297
|
+
this.table.rowManager.refreshActiveData("tree", false, true);
|
11298
|
+
|
11299
|
+
this.table.options.dataTreeRowExpanded(row.getComponent(), row.modules.dataTree.index);
|
11300
|
+
}
|
11301
|
+
};
|
11302
|
+
|
11303
|
+
DataTree.prototype.collapseRow = function (row) {
|
11304
|
+
var config = row.modules.dataTree;
|
11305
|
+
|
11306
|
+
if (config.children !== false) {
|
11307
|
+
config.open = false;
|
11308
|
+
|
11309
|
+
row.reinitialize();
|
11310
|
+
|
11311
|
+
this.table.rowManager.refreshActiveData("tree", false, true);
|
11312
|
+
|
11313
|
+
this.table.options.dataTreeRowCollapsed(row.getComponent(), row.modules.dataTree.index);
|
11314
|
+
}
|
11315
|
+
};
|
11316
|
+
|
11317
|
+
DataTree.prototype.toggleRow = function (row) {
|
11318
|
+
var config = row.modules.dataTree;
|
11319
|
+
|
11320
|
+
if (config.children !== false) {
|
11321
|
+
if (config.open) {
|
11322
|
+
this.collapseRow(row);
|
11323
|
+
} else {
|
11324
|
+
this.expandRow(row);
|
11325
|
+
}
|
11326
|
+
}
|
11327
|
+
};
|
11328
|
+
|
11329
|
+
DataTree.prototype.getTreeParent = function (row) {
|
11330
|
+
return row.modules.dataTree.parent ? row.modules.dataTree.parent.getComponent() : false;
|
11331
|
+
};
|
11332
|
+
|
11333
|
+
DataTree.prototype.getTreeChildren = function (row) {
|
11334
|
+
var config = row.modules.dataTree,
|
11335
|
+
output = [];
|
11336
|
+
|
11337
|
+
if (config.children) {
|
11338
|
+
|
11339
|
+
if (!Array.isArray(config.children)) {
|
11340
|
+
config.children = this.generateChildren(row);
|
11341
|
+
}
|
11342
|
+
|
11343
|
+
config.children.forEach(function (childRow) {
|
11344
|
+
if (childRow instanceof Row) {
|
11345
|
+
output.push(childRow.getComponent());
|
11346
|
+
}
|
11347
|
+
});
|
11348
|
+
}
|
11349
|
+
|
11350
|
+
return output;
|
11351
|
+
};
|
11352
|
+
|
11353
|
+
DataTree.prototype.checkForRestyle = function (cell) {
|
11354
|
+
if (!cell.row.cells.indexOf(cell)) {
|
11355
|
+
if (cell.row.modules.dataTree.children !== false) {
|
11356
|
+
cell.row.reinitialize();
|
11357
|
+
}
|
11358
|
+
}
|
11359
|
+
};
|
11360
|
+
|
11361
|
+
Tabulator.prototype.registerModule("dataTree", DataTree);
|
11362
|
+
var Download = function Download(table) {
|
11363
|
+
this.table = table; //hold Tabulator object
|
11364
|
+
this.fields = {}; //hold filed multi dimension arrays
|
11365
|
+
this.columnsByIndex = []; //hold columns in their order in the table
|
11366
|
+
this.columnsByField = {}; //hold columns with lookup by field name
|
11367
|
+
this.config = {};
|
11368
|
+
};
|
11369
|
+
|
11370
|
+
//trigger file download
|
11371
|
+
Download.prototype.download = function (type, filename, options, interceptCallback) {
|
11372
|
+
var self = this,
|
11373
|
+
downloadFunc = false;
|
11374
|
+
this.processConfig();
|
11375
|
+
|
11376
|
+
function buildLink(data, mime) {
|
11377
|
+
if (interceptCallback) {
|
11378
|
+
interceptCallback(data);
|
11379
|
+
} else {
|
11380
|
+
self.triggerDownload(data, mime, type, filename);
|
11381
|
+
}
|
11382
|
+
}
|
11383
|
+
|
11384
|
+
if (typeof type == "function") {
|
11385
|
+
downloadFunc = type;
|
11386
|
+
} else {
|
11387
|
+
if (self.downloaders[type]) {
|
11388
|
+
downloadFunc = self.downloaders[type];
|
11389
|
+
} else {
|
11390
|
+
console.warn("Download Error - No such download type found: ", type);
|
10414
11391
|
}
|
10415
11392
|
}
|
10416
11393
|
|
10417
11394
|
this.processColumns();
|
10418
11395
|
|
10419
11396
|
if (downloadFunc) {
|
10420
|
-
downloadFunc.call(this, self.processDefinitions(), self.processData(), options || {}, buildLink);
|
11397
|
+
downloadFunc.call(this, self.processDefinitions(), self.processData(), options || {}, buildLink, this.config);
|
11398
|
+
}
|
11399
|
+
};
|
11400
|
+
|
11401
|
+
Download.prototype.processConfig = function () {
|
11402
|
+
var config = { //download config
|
11403
|
+
columnGroups: true,
|
11404
|
+
rowGroups: true
|
11405
|
+
};
|
11406
|
+
|
11407
|
+
if (this.table.options.downloadConfig) {
|
11408
|
+
for (var key in this.table.options.downloadConfig) {
|
11409
|
+
config[key] = this.table.options.downloadConfig[key];
|
11410
|
+
}
|
11411
|
+
}
|
11412
|
+
|
11413
|
+
if (config.rowGroups && this.table.options.groupBy && this.table.modExists("groupRows")) {
|
11414
|
+
this.config.rowGroups = true;
|
11415
|
+
}
|
11416
|
+
|
11417
|
+
if (config.columnGroups && this.table.columnManager.columns.length != this.table.columnManager.columnsByIndex.length) {
|
11418
|
+
this.config.columnGroups = true;
|
10421
11419
|
}
|
10422
11420
|
};
|
10423
11421
|
|
@@ -10440,31 +11438,94 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10440
11438
|
var self = this,
|
10441
11439
|
processedDefinitions = [];
|
10442
11440
|
|
10443
|
-
|
10444
|
-
|
10445
|
-
|
10446
|
-
if (column.download !== false) {
|
10447
|
-
//isolate definiton from defintion object
|
10448
|
-
var def = {};
|
11441
|
+
if (this.config.columnGroups) {
|
11442
|
+
self.table.columnManager.columns.forEach(function (column) {
|
11443
|
+
var colData = self.processColumnGroup(column);
|
10449
11444
|
|
10450
|
-
|
10451
|
-
|
11445
|
+
if (colData) {
|
11446
|
+
processedDefinitions.push(colData);
|
11447
|
+
}
|
11448
|
+
});
|
11449
|
+
} else {
|
11450
|
+
self.columnsByIndex.forEach(function (column) {
|
11451
|
+
if (column.download !== false) {
|
11452
|
+
//isolate definiton from defintion object
|
11453
|
+
processedDefinitions.push(self.processDefinition(column));
|
10452
11454
|
}
|
11455
|
+
});
|
11456
|
+
}
|
11457
|
+
|
11458
|
+
return processedDefinitions;
|
11459
|
+
};
|
11460
|
+
|
11461
|
+
Download.prototype.processColumnGroup = function (column) {
|
11462
|
+
var _this28 = this;
|
11463
|
+
|
11464
|
+
var subGroups = column.columns;
|
10453
11465
|
|
10454
|
-
|
10455
|
-
|
11466
|
+
var groupData = {
|
11467
|
+
type: "group",
|
11468
|
+
title: column.definition.title
|
11469
|
+
};
|
11470
|
+
|
11471
|
+
if (subGroups.length) {
|
11472
|
+
groupData.subGroups = [];
|
11473
|
+
groupData.width = 0;
|
11474
|
+
|
11475
|
+
subGroups.forEach(function (subGroup) {
|
11476
|
+
var subGroupData = _this28.processColumnGroup(subGroup);
|
11477
|
+
|
11478
|
+
if (subGroupData) {
|
11479
|
+
groupData.width += subGroupData.width;
|
11480
|
+
groupData.subGroups.push(subGroupData);
|
10456
11481
|
}
|
11482
|
+
});
|
10457
11483
|
|
10458
|
-
|
11484
|
+
if (!groupData.width) {
|
11485
|
+
return false;
|
10459
11486
|
}
|
10460
|
-
}
|
11487
|
+
} else {
|
11488
|
+
if (column.field && column.visible && column.definition.download !== false) {
|
11489
|
+
groupData.width = 1;
|
11490
|
+
groupData.definition = this.processDefinition(column);
|
11491
|
+
} else {
|
11492
|
+
return false;
|
11493
|
+
}
|
11494
|
+
}
|
10461
11495
|
|
10462
|
-
return
|
11496
|
+
return groupData;
|
11497
|
+
};
|
11498
|
+
|
11499
|
+
Download.prototype.processDefinition = function (column) {
|
11500
|
+
var def = {};
|
11501
|
+
|
11502
|
+
for (var key in column.definition) {
|
11503
|
+
def[key] = column.definition[key];
|
11504
|
+
}
|
11505
|
+
|
11506
|
+
if (typeof column.definition.downloadTitle != "undefined") {
|
11507
|
+
def.title = column.definition.downloadTitle;
|
11508
|
+
}
|
11509
|
+
|
11510
|
+
return def;
|
10463
11511
|
};
|
10464
11512
|
|
10465
11513
|
Download.prototype.processData = function () {
|
11514
|
+
var _this29 = this;
|
11515
|
+
|
10466
11516
|
var self = this,
|
10467
|
-
data =
|
11517
|
+
data = [],
|
11518
|
+
groups = [];
|
11519
|
+
|
11520
|
+
if (this.config.rowGroups) {
|
11521
|
+
groups = this.table.modules.groupRows.getGroups();
|
11522
|
+
|
11523
|
+
groups.forEach(function (group) {
|
11524
|
+
data.push(_this29.processGroupData(group));
|
11525
|
+
});
|
11526
|
+
} else {
|
11527
|
+
data = self.table.rowManager.getData(true, "download");
|
11528
|
+
}
|
10468
11529
|
|
10469
11530
|
//bulk data processing
|
10470
11531
|
if (typeof self.table.options.downloadDataFormatter == "function") {
|
@@ -10474,6 +11535,29 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10474
11535
|
return data;
|
10475
11536
|
};
|
10476
11537
|
|
11538
|
+
Download.prototype.processGroupData = function (group) {
|
11539
|
+
var _this30 = this;
|
11540
|
+
|
11541
|
+
var subGroups = group.getSubGroups();
|
11542
|
+
|
11543
|
+
var groupData = {
|
11544
|
+
type: "group",
|
11545
|
+
key: group.key
|
11546
|
+
};
|
11547
|
+
|
11548
|
+
if (subGroups.length) {
|
11549
|
+
groupData.subGroups = [];
|
11550
|
+
|
11551
|
+
subGroups.forEach(function (subGroup) {
|
11552
|
+
groupData.subGroups.push(_this30.processGroupData(subGroup));
|
11553
|
+
});
|
11554
|
+
} else {
|
11555
|
+
groupData.rows = group.getData(true, "download");
|
11556
|
+
}
|
11557
|
+
|
11558
|
+
return groupData;
|
11559
|
+
};
|
11560
|
+
|
10477
11561
|
Download.prototype.triggerDownload = function (data, mime, type, filename) {
|
10478
11562
|
var element = document.createElement('a'),
|
10479
11563
|
blob = new Blob([data], { type: mime }),
|
@@ -10527,107 +11611,214 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10527
11611
|
|
10528
11612
|
//downloaders
|
10529
11613
|
Download.prototype.downloaders = {
|
10530
|
-
csv: function csv(columns, data, options, setFileContents) {
|
11614
|
+
csv: function csv(columns, data, options, setFileContents, config) {
|
10531
11615
|
var self = this,
|
10532
11616
|
titles = [],
|
10533
11617
|
fields = [],
|
10534
11618
|
delimiter = options && options.delimiter ? options.delimiter : ",",
|
10535
11619
|
fileContents;
|
10536
11620
|
|
10537
|
-
//
|
10538
|
-
|
10539
|
-
|
11621
|
+
//build column headers
|
11622
|
+
function parseSimpleTitles() {
|
11623
|
+
columns.forEach(function (column) {
|
10540
11624
|
titles.push('"' + String(column.title).split('"').join('""') + '"');
|
10541
11625
|
fields.push(column.field);
|
11626
|
+
});
|
11627
|
+
}
|
11628
|
+
|
11629
|
+
function parseColumnGroup(column, level) {
|
11630
|
+
if (column.subGroups) {
|
11631
|
+
column.subGroups.forEach(function (subGroup) {
|
11632
|
+
parseColumnGroup(subGroup, level + 1);
|
11633
|
+
});
|
11634
|
+
} else {
|
11635
|
+
titles.push('"' + String(column.title).split('"').join('""') + '"');
|
11636
|
+
fields.push(column.definition.field);
|
10542
11637
|
}
|
10543
|
-
}
|
11638
|
+
}
|
11639
|
+
|
11640
|
+
if (config.columnGroups) {
|
11641
|
+
console.warn("Download Warning - CSV downloader cannot process column groups");
|
11642
|
+
|
11643
|
+
columns.forEach(function (column) {
|
11644
|
+
parseColumnGroup(column, 0);
|
11645
|
+
});
|
11646
|
+
} else {
|
11647
|
+
parseSimpleTitles();
|
11648
|
+
}
|
10544
11649
|
|
10545
11650
|
//generate header row
|
10546
11651
|
fileContents = [titles.join(delimiter)];
|
10547
11652
|
|
10548
|
-
|
10549
|
-
|
10550
|
-
|
11653
|
+
function parseRows(data) {
|
11654
|
+
//generate each row of the table
|
11655
|
+
data.forEach(function (row) {
|
11656
|
+
var rowData = [];
|
10551
11657
|
|
10552
|
-
|
10553
|
-
|
11658
|
+
fields.forEach(function (field) {
|
11659
|
+
var value = self.getFieldValue(field, row);
|
10554
11660
|
|
10555
|
-
|
10556
|
-
|
10557
|
-
|
10558
|
-
|
11661
|
+
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
|
11662
|
+
case "object":
|
11663
|
+
value = JSON.stringify(value);
|
11664
|
+
break;
|
10559
11665
|
|
10560
|
-
|
10561
|
-
|
10562
|
-
|
10563
|
-
|
11666
|
+
case "undefined":
|
11667
|
+
case "null":
|
11668
|
+
value = "";
|
11669
|
+
break;
|
10564
11670
|
|
10565
|
-
|
10566
|
-
|
10567
|
-
|
11671
|
+
default:
|
11672
|
+
value = value;
|
11673
|
+
}
|
10568
11674
|
|
10569
|
-
|
10570
|
-
|
10571
|
-
|
11675
|
+
//escape quotation marks
|
11676
|
+
rowData.push('"' + String(value).split('"').join('""') + '"');
|
11677
|
+
});
|
10572
11678
|
|
10573
|
-
|
10574
|
-
|
11679
|
+
fileContents.push(rowData.join(delimiter));
|
11680
|
+
});
|
11681
|
+
}
|
11682
|
+
|
11683
|
+
function parseGroup(group) {
|
11684
|
+
if (group.subGroups) {
|
11685
|
+
group.subGroups.forEach(function (subGroup) {
|
11686
|
+
parseGroup(subGroup);
|
11687
|
+
});
|
11688
|
+
} else {
|
11689
|
+
parseRows(group.rows);
|
11690
|
+
}
|
11691
|
+
}
|
11692
|
+
|
11693
|
+
if (config.rowGroups) {
|
11694
|
+
console.warn("Download Warning - CSV downloader cannot process row groups");
|
11695
|
+
|
11696
|
+
data.forEach(function (group) {
|
11697
|
+
parseGroup(group);
|
11698
|
+
});
|
11699
|
+
} else {
|
11700
|
+
parseRows(data);
|
11701
|
+
}
|
10575
11702
|
|
10576
11703
|
setFileContents(fileContents.join("\n"), "text/csv");
|
10577
11704
|
},
|
10578
11705
|
|
10579
|
-
json: function json(columns, data, options, setFileContents) {
|
11706
|
+
json: function json(columns, data, options, setFileContents, config) {
|
10580
11707
|
var fileContents = JSON.stringify(data, null, '\t');
|
10581
11708
|
|
10582
11709
|
setFileContents(fileContents, "application/json");
|
10583
11710
|
},
|
10584
11711
|
|
10585
|
-
pdf: function pdf(columns, data, options, setFileContents) {
|
11712
|
+
pdf: function pdf(columns, data, options, setFileContents, config) {
|
10586
11713
|
var self = this,
|
10587
11714
|
fields = [],
|
10588
11715
|
header = [],
|
10589
11716
|
body = [],
|
10590
11717
|
table = "",
|
11718
|
+
groupRowIndexs = [],
|
10591
11719
|
autoTableParams = {},
|
10592
|
-
|
10593
|
-
|
11720
|
+
rowGroupStyles = {},
|
11721
|
+
jsPDFParams = options.jsPDF || {},
|
11722
|
+
title = options && options.title ? options.title : "";
|
11723
|
+
|
11724
|
+
if (!jsPDFParams.orientation) {
|
11725
|
+
jsPDFParams.orientation = options.orientation || "landscape";
|
11726
|
+
}
|
11727
|
+
|
11728
|
+
if (!jsPDFParams.unit) {
|
11729
|
+
jsPDFParams.unit = "pt";
|
11730
|
+
}
|
10594
11731
|
|
10595
11732
|
//build column headers
|
10596
|
-
|
10597
|
-
|
11733
|
+
function parseSimpleTitles() {
|
11734
|
+
columns.forEach(function (column) {
|
11735
|
+
if (column.field) {
|
11736
|
+
header.push(column.title || "");
|
11737
|
+
fields.push(column.field);
|
11738
|
+
}
|
11739
|
+
});
|
11740
|
+
}
|
11741
|
+
|
11742
|
+
function parseColumnGroup(column, level) {
|
11743
|
+
if (column.subGroups) {
|
11744
|
+
column.subGroups.forEach(function (subGroup) {
|
11745
|
+
parseColumnGroup(subGroup, level + 1);
|
11746
|
+
});
|
11747
|
+
} else {
|
10598
11748
|
header.push(column.title || "");
|
10599
|
-
fields.push(column.field);
|
11749
|
+
fields.push(column.definition.field);
|
10600
11750
|
}
|
10601
|
-
}
|
11751
|
+
}
|
10602
11752
|
|
10603
|
-
|
10604
|
-
|
10605
|
-
var rowData = [];
|
11753
|
+
if (config.columnGroups) {
|
11754
|
+
console.warn("Download Warning - PDF downloader cannot process column groups");
|
10606
11755
|
|
10607
|
-
|
10608
|
-
|
11756
|
+
columns.forEach(function (column) {
|
11757
|
+
parseColumnGroup(column, 0);
|
11758
|
+
});
|
11759
|
+
} else {
|
11760
|
+
parseSimpleTitles();
|
11761
|
+
}
|
10609
11762
|
|
10610
|
-
|
10611
|
-
|
10612
|
-
|
10613
|
-
|
11763
|
+
function parseValue(value) {
|
11764
|
+
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
|
11765
|
+
case "object":
|
11766
|
+
value = JSON.stringify(value);
|
11767
|
+
break;
|
10614
11768
|
|
10615
|
-
|
10616
|
-
|
10617
|
-
|
10618
|
-
|
11769
|
+
case "undefined":
|
11770
|
+
case "null":
|
11771
|
+
value = "";
|
11772
|
+
break;
|
10619
11773
|
|
10620
|
-
|
10621
|
-
|
10622
|
-
|
11774
|
+
default:
|
11775
|
+
value = value;
|
11776
|
+
}
|
10623
11777
|
|
10624
|
-
|
11778
|
+
return value;
|
11779
|
+
}
|
11780
|
+
|
11781
|
+
function parseRows(data) {
|
11782
|
+
//build table rows
|
11783
|
+
data.forEach(function (row) {
|
11784
|
+
var rowData = [];
|
11785
|
+
|
11786
|
+
fields.forEach(function (field) {
|
11787
|
+
var value = self.getFieldValue(field, row);
|
11788
|
+
rowData.push(parseValue(value));
|
11789
|
+
});
|
11790
|
+
|
11791
|
+
body.push(rowData);
|
10625
11792
|
});
|
11793
|
+
}
|
10626
11794
|
|
10627
|
-
|
10628
|
-
|
11795
|
+
function parseGroup(group) {
|
11796
|
+
var groupData = [];
|
11797
|
+
|
11798
|
+
groupData.push(parseValue(group.key));
|
11799
|
+
|
11800
|
+
groupRowIndexs.push(body.length);
|
11801
|
+
|
11802
|
+
body.push(groupData);
|
11803
|
+
|
11804
|
+
if (group.subGroups) {
|
11805
|
+
group.subGroups.forEach(function (subGroup) {
|
11806
|
+
parseGroup(subGroup);
|
11807
|
+
});
|
11808
|
+
} else {
|
11809
|
+
parseRows(group.rows);
|
11810
|
+
}
|
11811
|
+
}
|
10629
11812
|
|
10630
|
-
|
11813
|
+
if (config.rowGroups) {
|
11814
|
+
data.forEach(function (group) {
|
11815
|
+
parseGroup(group);
|
11816
|
+
});
|
11817
|
+
} else {
|
11818
|
+
parseRows(data);
|
11819
|
+
}
|
11820
|
+
|
11821
|
+
var doc = new jsPDF(jsPDFParams); //set document to landscape, better for most tables
|
10631
11822
|
|
10632
11823
|
if (options && options.autoTable) {
|
10633
11824
|
if (typeof options.autoTable === "function") {
|
@@ -10637,6 +11828,34 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10637
11828
|
}
|
10638
11829
|
}
|
10639
11830
|
|
11831
|
+
if (config.rowGroups) {
|
11832
|
+
var createdCell = function createdCell(cell, data) {
|
11833
|
+
if (groupRowIndexs.indexOf(data.row.index) > -1) {
|
11834
|
+
for (var key in rowGroupStyles) {
|
11835
|
+
cell.styles[key] = rowGroupStyles[key];
|
11836
|
+
}
|
11837
|
+
}
|
11838
|
+
};
|
11839
|
+
|
11840
|
+
rowGroupStyles = options.rowGroupStyles || {
|
11841
|
+
fontStyle: "bold",
|
11842
|
+
fontSize: 12,
|
11843
|
+
cellPadding: 6,
|
11844
|
+
fillColor: 220
|
11845
|
+
};
|
11846
|
+
|
11847
|
+
if (!autoTableParams.createdCell) {
|
11848
|
+
autoTableParams.createdCell = createdCell;
|
11849
|
+
} else {
|
11850
|
+
var createdCellHolder = autoTableParams.createdCell;
|
11851
|
+
|
11852
|
+
autoTableParams.createdCell = function (cell, data) {
|
11853
|
+
createdCell(cell, data);
|
11854
|
+
createdCellHolder(cell, data);
|
11855
|
+
};
|
11856
|
+
}
|
11857
|
+
}
|
11858
|
+
|
10640
11859
|
if (title) {
|
10641
11860
|
autoTableParams.addPageContent = function (data) {
|
10642
11861
|
doc.text(title, 40, 30);
|
@@ -10648,10 +11867,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10648
11867
|
setFileContents(doc.output("arraybuffer"), "application/pdf");
|
10649
11868
|
},
|
10650
11869
|
|
10651
|
-
xlsx: function xlsx(columns, data, options, setFileContents) {
|
11870
|
+
xlsx: function xlsx(columns, data, options, setFileContents, config) {
|
10652
11871
|
var self = this,
|
10653
11872
|
sheetName = options.sheetName || "Sheet1",
|
10654
11873
|
workbook = { SheetNames: [], Sheets: {} },
|
11874
|
+
groupRowIndexs = [],
|
11875
|
+
groupColumnIndexs = [],
|
10655
11876
|
output;
|
10656
11877
|
|
10657
11878
|
function generateSheet() {
|
@@ -10669,29 +11890,155 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10669
11890
|
|
10670
11891
|
sheet['!ref'] = XLSX.utils.encode_range(range);
|
10671
11892
|
|
11893
|
+
var merges = generateMerges();
|
11894
|
+
|
11895
|
+
if (merges.length) {
|
11896
|
+
sheet["!merges"] = merges;
|
11897
|
+
}
|
11898
|
+
|
10672
11899
|
return sheet;
|
10673
11900
|
}
|
10674
11901
|
|
10675
|
-
|
10676
|
-
|
10677
|
-
|
11902
|
+
function parseSimpleTitles() {
|
11903
|
+
//get field lists
|
11904
|
+
columns.forEach(function (column) {
|
10678
11905
|
titles.push(column.title);
|
10679
11906
|
fields.push(column.field);
|
11907
|
+
});
|
11908
|
+
|
11909
|
+
rows.push(titles);
|
11910
|
+
}
|
11911
|
+
|
11912
|
+
function parseColumnGroup(column, level) {
|
11913
|
+
|
11914
|
+
if (typeof titles[level] === "undefined") {
|
11915
|
+
titles[level] = [];
|
10680
11916
|
}
|
10681
|
-
});
|
10682
11917
|
|
10683
|
-
|
11918
|
+
if (typeof groupColumnIndexs[level] === "undefined") {
|
11919
|
+
groupColumnIndexs[level] = [];
|
11920
|
+
}
|
11921
|
+
|
11922
|
+
if (column.width > 1) {
|
11923
|
+
|
11924
|
+
groupColumnIndexs[level].push({
|
11925
|
+
type: "hoz",
|
11926
|
+
start: titles[level].length,
|
11927
|
+
end: titles[level].length + column.width - 1
|
11928
|
+
});
|
11929
|
+
}
|
11930
|
+
|
11931
|
+
titles[level].push(column.title);
|
11932
|
+
|
11933
|
+
if (column.subGroups) {
|
11934
|
+
column.subGroups.forEach(function (subGroup) {
|
11935
|
+
parseColumnGroup(subGroup, level + 1);
|
11936
|
+
});
|
11937
|
+
} else {
|
11938
|
+
fields.push(column.definition.field);
|
11939
|
+
padColumnTitles(fields.length - 1, level);
|
11940
|
+
|
11941
|
+
groupColumnIndexs[level].push({
|
11942
|
+
type: "vert",
|
11943
|
+
start: fields.length - 1
|
11944
|
+
});
|
11945
|
+
}
|
11946
|
+
}
|
11947
|
+
|
11948
|
+
function padColumnTitles() {
|
11949
|
+
var max = 0;
|
11950
|
+
|
11951
|
+
titles.forEach(function (title) {
|
11952
|
+
var len = title.length;
|
11953
|
+
if (len > max) {
|
11954
|
+
max = len;
|
11955
|
+
}
|
11956
|
+
});
|
11957
|
+
|
11958
|
+
titles.forEach(function (title) {
|
11959
|
+
var len = title.length;
|
11960
|
+
if (len < max) {
|
11961
|
+
for (var i = len; i < max; i++) {
|
11962
|
+
title.push("");
|
11963
|
+
}
|
11964
|
+
}
|
11965
|
+
});
|
11966
|
+
}
|
11967
|
+
|
11968
|
+
if (config.columnGroups) {
|
11969
|
+
columns.forEach(function (column) {
|
11970
|
+
parseColumnGroup(column, 0);
|
11971
|
+
});
|
11972
|
+
|
11973
|
+
titles.forEach(function (title) {
|
11974
|
+
rows.push(title);
|
11975
|
+
});
|
11976
|
+
} else {
|
11977
|
+
parseSimpleTitles();
|
11978
|
+
}
|
11979
|
+
|
11980
|
+
function generateMerges() {
|
11981
|
+
var output = [];
|
11982
|
+
|
11983
|
+
groupRowIndexs.forEach(function (index) {
|
11984
|
+
output.push({ s: { r: index, c: 0 }, e: { r: index, c: fields.length - 1 } });
|
11985
|
+
});
|
11986
|
+
|
11987
|
+
groupColumnIndexs.forEach(function (merges, level) {
|
11988
|
+
merges.forEach(function (merge) {
|
11989
|
+
if (merge.type === "hoz") {
|
11990
|
+
output.push({ s: { r: level, c: merge.start }, e: { r: level, c: merge.end } });
|
11991
|
+
} else {
|
11992
|
+
if (level != titles.length - 1) {
|
11993
|
+
output.push({ s: { r: level, c: merge.start }, e: { r: titles.length - 1, c: merge.start } });
|
11994
|
+
}
|
11995
|
+
}
|
11996
|
+
});
|
11997
|
+
});
|
11998
|
+
|
11999
|
+
return output;
|
12000
|
+
}
|
10684
12001
|
|
10685
12002
|
//generate each row of the table
|
10686
|
-
|
10687
|
-
|
12003
|
+
function parseRows(data) {
|
12004
|
+
data.forEach(function (row) {
|
12005
|
+
var rowData = [];
|
10688
12006
|
|
10689
|
-
|
10690
|
-
|
12007
|
+
fields.forEach(function (field) {
|
12008
|
+
var value = self.getFieldValue(field, row);
|
12009
|
+
|
12010
|
+
rowData.push((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object" ? JSON.stringify(value) : value);
|
12011
|
+
});
|
12012
|
+
|
12013
|
+
rows.push(rowData);
|
10691
12014
|
});
|
12015
|
+
}
|
10692
12016
|
|
10693
|
-
|
10694
|
-
|
12017
|
+
function parseGroup(group) {
|
12018
|
+
var groupData = [];
|
12019
|
+
|
12020
|
+
groupData.push(group.key);
|
12021
|
+
|
12022
|
+
groupRowIndexs.push(rows.length);
|
12023
|
+
|
12024
|
+
rows.push(groupData);
|
12025
|
+
|
12026
|
+
if (group.subGroups) {
|
12027
|
+
group.subGroups.forEach(function (subGroup) {
|
12028
|
+
parseGroup(subGroup);
|
12029
|
+
});
|
12030
|
+
} else {
|
12031
|
+
parseRows(group.rows);
|
12032
|
+
}
|
12033
|
+
}
|
12034
|
+
|
12035
|
+
if (config.rowGroups) {
|
12036
|
+
data.forEach(function (group) {
|
12037
|
+
parseGroup(group);
|
12038
|
+
});
|
12039
|
+
} else {
|
12040
|
+
parseRows(data);
|
12041
|
+
}
|
10695
12042
|
|
10696
12043
|
worksheet = rowsToSheet();
|
10697
12044
|
|
@@ -10765,6 +12112,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10765
12112
|
//set column editor
|
10766
12113
|
switch (_typeof(column.definition.editor)) {
|
10767
12114
|
case "string":
|
12115
|
+
|
12116
|
+
if (column.definition.editor === "tick") {
|
12117
|
+
column.definition.editor = "tickCross";
|
12118
|
+
console.warn("DEPRICATION WANRING - the tick editor has been depricated, please use the tickCross editor");
|
12119
|
+
}
|
12120
|
+
|
10768
12121
|
if (self.editors[column.definition.editor]) {
|
10769
12122
|
config.editor = self.editors[column.definition.editor];
|
10770
12123
|
} else {
|
@@ -10781,6 +12134,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10781
12134
|
if (column.definition.editor === true) {
|
10782
12135
|
|
10783
12136
|
if (typeof column.definition.formatter !== "function") {
|
12137
|
+
|
12138
|
+
if (column.definition.formatter === "tick") {
|
12139
|
+
column.definition.formatter = "tickCross";
|
12140
|
+
console.warn("DEPRICATION WANRING - the tick editor has been depricated, please use the tickCross editor");
|
12141
|
+
}
|
12142
|
+
|
10784
12143
|
if (self.editors[column.definition.formatter]) {
|
10785
12144
|
config.editor = self.editors[column.definition.formatter];
|
10786
12145
|
} else {
|
@@ -10902,6 +12261,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10902
12261
|
if (valid === true) {
|
10903
12262
|
self.clearEditor();
|
10904
12263
|
cell.setValue(value, true);
|
12264
|
+
|
12265
|
+
if (self.table.options.dataTree && self.table.modExists("dataTree")) {
|
12266
|
+
self.table.modules.dataTree.checkForRestyle(cell);
|
12267
|
+
}
|
10905
12268
|
} else {
|
10906
12269
|
self.invalidEdit = true;
|
10907
12270
|
element.classList.add("tabulator-validation-fail");
|
@@ -10918,6 +12281,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10918
12281
|
function cancel() {
|
10919
12282
|
if (self.currentCell === cell) {
|
10920
12283
|
self.cancelEdit();
|
12284
|
+
|
12285
|
+
if (self.table.options.dataTree && self.table.modExists("dataTree")) {
|
12286
|
+
self.table.modules.dataTree.checkForRestyle(cell);
|
12287
|
+
}
|
10921
12288
|
} else {
|
10922
12289
|
// console.warn("Edit Success Error - cannot call cancel on a cell that is no longer being edited");
|
10923
12290
|
}
|
@@ -10970,22 +12337,29 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10970
12337
|
|
10971
12338
|
//if editor returned, add to DOM, if false, abort edit
|
10972
12339
|
if (cellEditor !== false) {
|
10973
|
-
element.classList.add("tabulator-editing");
|
10974
|
-
cell.row.getElement().classList.add("tabulator-row-editing");
|
10975
|
-
while (element.firstChild) {
|
10976
|
-
element.removeChild(element.firstChild);
|
10977
|
-
}element.appendChild(cellEditor);
|
10978
12340
|
|
10979
|
-
|
10980
|
-
|
12341
|
+
if (cellEditor instanceof Node) {
|
12342
|
+
element.classList.add("tabulator-editing");
|
12343
|
+
cell.row.getElement().classList.add("tabulator-row-editing");
|
12344
|
+
while (element.firstChild) {
|
12345
|
+
element.removeChild(element.firstChild);
|
12346
|
+
}element.appendChild(cellEditor);
|
10981
12347
|
|
10982
|
-
|
10983
|
-
|
12348
|
+
//trigger onRendered Callback
|
12349
|
+
rendered();
|
10984
12350
|
|
10985
|
-
|
10986
|
-
children
|
10987
|
-
|
10988
|
-
|
12351
|
+
//prevent editing from triggering rowClick event
|
12352
|
+
var children = element.children;
|
12353
|
+
|
12354
|
+
for (var i = 0; i < children.length; i++) {
|
12355
|
+
children[i].addEventListener("click", function (e) {
|
12356
|
+
e.stopPropagation();
|
12357
|
+
});
|
12358
|
+
}
|
12359
|
+
} else {
|
12360
|
+
console.warn("Edit Error - Editor should return an instance of Node, the editor returned:", cellEditor);
|
12361
|
+
element.blur();
|
12362
|
+
return false;
|
10989
12363
|
}
|
10990
12364
|
} else {
|
10991
12365
|
element.blur();
|
@@ -11029,7 +12403,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11029
12403
|
});
|
11030
12404
|
|
11031
12405
|
function onChange(e) {
|
11032
|
-
if (input.value != cellValue) {
|
12406
|
+
if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value != cellValue) {
|
11033
12407
|
success(input.value);
|
11034
12408
|
} else {
|
11035
12409
|
cancel();
|
@@ -11082,7 +12456,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11082
12456
|
});
|
11083
12457
|
|
11084
12458
|
function onChange(e) {
|
11085
|
-
|
12459
|
+
|
12460
|
+
if ((cellValue === null || typeof cellValue === "undefined") && input.value !== "" || input.value != cellValue) {
|
11086
12461
|
success(input.value);
|
11087
12462
|
setTimeout(function () {
|
11088
12463
|
cell.getRow().normalizeHeight();
|
@@ -11110,235 +12485,740 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11110
12485
|
}
|
11111
12486
|
});
|
11112
12487
|
|
11113
|
-
input.addEventListener("keydown", function (e) {
|
11114
|
-
if (e.keyCode == 27) {
|
11115
|
-
cancel();
|
12488
|
+
input.addEventListener("keydown", function (e) {
|
12489
|
+
if (e.keyCode == 27) {
|
12490
|
+
cancel();
|
12491
|
+
}
|
12492
|
+
});
|
12493
|
+
|
12494
|
+
return input;
|
12495
|
+
},
|
12496
|
+
|
12497
|
+
//input element with type of number
|
12498
|
+
number: function number(cell, onRendered, success, cancel, editorParams) {
|
12499
|
+
|
12500
|
+
var cellValue = cell.getValue(),
|
12501
|
+
input = document.createElement("input");
|
12502
|
+
|
12503
|
+
input.setAttribute("type", "number");
|
12504
|
+
|
12505
|
+
if (typeof editorParams.max != "undefined") {
|
12506
|
+
input.setAttribute("max", editorParams.max);
|
12507
|
+
}
|
12508
|
+
|
12509
|
+
if (typeof editorParams.min != "undefined") {
|
12510
|
+
input.setAttribute("min", editorParams.min);
|
12511
|
+
}
|
12512
|
+
|
12513
|
+
if (typeof editorParams.step != "undefined") {
|
12514
|
+
input.setAttribute("step", editorParams.step);
|
12515
|
+
}
|
12516
|
+
|
12517
|
+
//create and style input
|
12518
|
+
input.style.padding = "4px";
|
12519
|
+
input.style.width = "100%";
|
12520
|
+
input.style.boxSizing = "border-box";
|
12521
|
+
|
12522
|
+
input.value = cellValue;
|
12523
|
+
|
12524
|
+
onRendered(function () {
|
12525
|
+
input.focus();
|
12526
|
+
input.style.height = "100%";
|
12527
|
+
});
|
12528
|
+
|
12529
|
+
function onChange() {
|
12530
|
+
var value = input.value;
|
12531
|
+
|
12532
|
+
if (!isNaN(value) && value !== "") {
|
12533
|
+
value = Number(value);
|
12534
|
+
}
|
12535
|
+
|
12536
|
+
if (value != cellValue) {
|
12537
|
+
success(value);
|
12538
|
+
} else {
|
12539
|
+
cancel();
|
12540
|
+
}
|
12541
|
+
}
|
12542
|
+
|
12543
|
+
//submit new value on blur
|
12544
|
+
input.addEventListener("blur", function (e) {
|
12545
|
+
onChange();
|
12546
|
+
});
|
12547
|
+
|
12548
|
+
//submit new value on enter
|
12549
|
+
input.addEventListener("keydown", function (e) {
|
12550
|
+
switch (e.keyCode) {
|
12551
|
+
case 13:
|
12552
|
+
case 9:
|
12553
|
+
onChange();
|
12554
|
+
break;
|
12555
|
+
|
12556
|
+
case 27:
|
12557
|
+
cancel();
|
12558
|
+
break;
|
12559
|
+
}
|
12560
|
+
});
|
12561
|
+
|
12562
|
+
return input;
|
12563
|
+
},
|
12564
|
+
|
12565
|
+
//input element with type of number
|
12566
|
+
range: function range(cell, onRendered, success, cancel, editorParams) {
|
12567
|
+
|
12568
|
+
var cellValue = cell.getValue(),
|
12569
|
+
input = document.createElement("input");
|
12570
|
+
|
12571
|
+
input.setAttribute("type", "range");
|
12572
|
+
|
12573
|
+
if (typeof editorParams.max != "undefined") {
|
12574
|
+
input.setAttribute("max", editorParams.max);
|
12575
|
+
}
|
12576
|
+
|
12577
|
+
if (typeof editorParams.min != "undefined") {
|
12578
|
+
input.setAttribute("min", editorParams.min);
|
12579
|
+
}
|
12580
|
+
|
12581
|
+
if (typeof editorParams.step != "undefined") {
|
12582
|
+
input.setAttribute("step", editorParams.step);
|
12583
|
+
}
|
12584
|
+
|
12585
|
+
//create and style input
|
12586
|
+
input.style.padding = "4px";
|
12587
|
+
input.style.width = "100%";
|
12588
|
+
input.style.boxSizing = "border-box";
|
12589
|
+
|
12590
|
+
input.value = cellValue;
|
12591
|
+
|
12592
|
+
onRendered(function () {
|
12593
|
+
input.focus();
|
12594
|
+
input.style.height = "100%";
|
12595
|
+
});
|
12596
|
+
|
12597
|
+
function onChange() {
|
12598
|
+
var value = input.value;
|
12599
|
+
|
12600
|
+
if (!isNaN(value) && value !== "") {
|
12601
|
+
value = Number(value);
|
12602
|
+
}
|
12603
|
+
|
12604
|
+
if (value != cellValue) {
|
12605
|
+
success(value);
|
12606
|
+
} else {
|
12607
|
+
cancel();
|
12608
|
+
}
|
12609
|
+
}
|
12610
|
+
|
12611
|
+
//submit new value on blur
|
12612
|
+
input.addEventListener("blur", function (e) {
|
12613
|
+
onChange();
|
12614
|
+
});
|
12615
|
+
|
12616
|
+
//submit new value on enter
|
12617
|
+
input.addEventListener("keydown", function (e) {
|
12618
|
+
switch (e.keyCode) {
|
12619
|
+
case 13:
|
12620
|
+
case 9:
|
12621
|
+
onChange();
|
12622
|
+
break;
|
12623
|
+
|
12624
|
+
case 27:
|
12625
|
+
cancel();
|
12626
|
+
break;
|
12627
|
+
}
|
12628
|
+
});
|
12629
|
+
|
12630
|
+
return input;
|
12631
|
+
},
|
12632
|
+
|
12633
|
+
//select
|
12634
|
+
select: function select(cell, onRendered, success, cancel, editorParams) {
|
12635
|
+
var self = this,
|
12636
|
+
cellEl = cell.getElement(),
|
12637
|
+
initialValue = cell.getValue(),
|
12638
|
+
input = document.createElement("input"),
|
12639
|
+
listEl = document.createElement("div"),
|
12640
|
+
dataItems = [],
|
12641
|
+
displayItems = [],
|
12642
|
+
currentItem = {},
|
12643
|
+
blurable = true;
|
12644
|
+
|
12645
|
+
if (Array.isArray(editorParams) || !Array.isArray(editorParams) && (typeof editorParams === 'undefined' ? 'undefined' : _typeof(editorParams)) === "object" && !editorParams.values) {
|
12646
|
+
console.warn("DEPRICATION WANRING - values for the select editor must now be passed into the valuse property of the editorParams object, not as the editorParams object");
|
12647
|
+
editorParams = { values: editorParams };
|
12648
|
+
}
|
12649
|
+
|
12650
|
+
function getUniqueColumnValues() {
|
12651
|
+
var output = {},
|
12652
|
+
column = cell.getColumn()._getSelf(),
|
12653
|
+
data = self.table.getData();
|
12654
|
+
|
12655
|
+
data.forEach(function (row) {
|
12656
|
+
var val = column.getFieldValue(row);
|
12657
|
+
|
12658
|
+
if (val !== null && typeof val !== "undefined" && val !== "") {
|
12659
|
+
output[val] = true;
|
12660
|
+
}
|
12661
|
+
});
|
12662
|
+
|
12663
|
+
return Object.keys(output);
|
12664
|
+
}
|
12665
|
+
|
12666
|
+
function parseItems(inputValues, curentValue) {
|
12667
|
+
var dataList = [];
|
12668
|
+
var displayList = [];
|
12669
|
+
|
12670
|
+
function processComplexListItem(item) {
|
12671
|
+
var item = {
|
12672
|
+
label: editorParams.listItemFormatter ? editorParams.listItemFormatter(item.value, item.label) : item.label,
|
12673
|
+
value: item.value,
|
12674
|
+
element: false
|
12675
|
+
};
|
12676
|
+
|
12677
|
+
if (item.value === curentValue) {
|
12678
|
+
setCurrentItem(item);
|
12679
|
+
}
|
12680
|
+
|
12681
|
+
dataList.push(item);
|
12682
|
+
displayList.push(item);
|
12683
|
+
|
12684
|
+
return item;
|
12685
|
+
}
|
12686
|
+
|
12687
|
+
if (typeof inputValues == "function") {
|
12688
|
+
inputValues = inputValues(cell);
|
12689
|
+
}
|
12690
|
+
|
12691
|
+
if (Array.isArray(inputValues)) {
|
12692
|
+
inputValues.forEach(function (value) {
|
12693
|
+
var item;
|
12694
|
+
|
12695
|
+
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === "object") {
|
12696
|
+
|
12697
|
+
if (value.options) {
|
12698
|
+
item = {
|
12699
|
+
label: value.label,
|
12700
|
+
group: true,
|
12701
|
+
element: false
|
12702
|
+
};
|
12703
|
+
|
12704
|
+
displayList.push(item);
|
12705
|
+
|
12706
|
+
value.options.forEach(function (item) {
|
12707
|
+
processComplexListItem(item);
|
12708
|
+
});
|
12709
|
+
} else {
|
12710
|
+
processComplexListItem(value);
|
12711
|
+
}
|
12712
|
+
} else {
|
12713
|
+
item = {
|
12714
|
+
label: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
|
12715
|
+
value: value,
|
12716
|
+
element: false
|
12717
|
+
};
|
12718
|
+
|
12719
|
+
if (item.value === curentValue) {
|
12720
|
+
setCurrentItem(item);
|
12721
|
+
}
|
12722
|
+
|
12723
|
+
dataList.push(item);
|
12724
|
+
displayList.push(item);
|
12725
|
+
}
|
12726
|
+
});
|
12727
|
+
} else {
|
12728
|
+
for (var key in inputValues) {
|
12729
|
+
var item = {
|
12730
|
+
label: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
|
12731
|
+
value: key,
|
12732
|
+
element: false
|
12733
|
+
};
|
12734
|
+
|
12735
|
+
if (item.value === curentValue) {
|
12736
|
+
setCurrentItem(item);
|
12737
|
+
}
|
12738
|
+
|
12739
|
+
dataList.push(item);
|
12740
|
+
displayList.push(item);
|
12741
|
+
}
|
12742
|
+
}
|
12743
|
+
|
12744
|
+
dataItems = dataList;
|
12745
|
+
displayItems = displayList;
|
12746
|
+
|
12747
|
+
fillList();
|
12748
|
+
}
|
12749
|
+
|
12750
|
+
function fillList() {
|
12751
|
+
while (listEl.firstChild) {
|
12752
|
+
listEl.removeChild(listEl.firstChild);
|
12753
|
+
}displayItems.forEach(function (item) {
|
12754
|
+
var el = item.element;
|
12755
|
+
|
12756
|
+
if (!el) {
|
12757
|
+
|
12758
|
+
if (item.group) {
|
12759
|
+
el = document.createElement("div");
|
12760
|
+
el.classList.add("tabulator-edit-select-list-group");
|
12761
|
+
el.tabIndex = 0;
|
12762
|
+
el.innerHTML = item.label;
|
12763
|
+
} else {
|
12764
|
+
el = document.createElement("div");
|
12765
|
+
el.classList.add("tabulator-edit-select-list-item");
|
12766
|
+
el.tabIndex = 0;
|
12767
|
+
el.innerHTML = item.label;
|
12768
|
+
|
12769
|
+
el.addEventListener("click", function () {
|
12770
|
+
setCurrentItem(item);
|
12771
|
+
chooseItem();
|
12772
|
+
});
|
12773
|
+
|
12774
|
+
if (item === currentItem) {
|
12775
|
+
el.classList.add("active");
|
12776
|
+
}
|
12777
|
+
}
|
12778
|
+
|
12779
|
+
el.addEventListener("mousedown", function () {
|
12780
|
+
blurable = false;
|
12781
|
+
|
12782
|
+
setTimeout(function () {
|
12783
|
+
blurable = true;
|
12784
|
+
}, 10);
|
12785
|
+
});
|
12786
|
+
|
12787
|
+
item.element = el;
|
12788
|
+
}
|
12789
|
+
|
12790
|
+
listEl.appendChild(el);
|
12791
|
+
});
|
12792
|
+
}
|
12793
|
+
|
12794
|
+
function setCurrentItem(item) {
|
12795
|
+
|
12796
|
+
if (currentItem && currentItem.element) {
|
12797
|
+
currentItem.element.classList.remove("active");
|
12798
|
+
}
|
12799
|
+
|
12800
|
+
currentItem = item;
|
12801
|
+
input.value = item.label;
|
12802
|
+
|
12803
|
+
if (item.element) {
|
12804
|
+
item.element.classList.add("active");
|
12805
|
+
}
|
12806
|
+
}
|
12807
|
+
|
12808
|
+
function chooseItem() {
|
12809
|
+
hideList();
|
12810
|
+
|
12811
|
+
if (initialValue !== currentItem.value) {
|
12812
|
+
success(currentItem.value);
|
12813
|
+
} else {
|
12814
|
+
cancel();
|
12815
|
+
}
|
12816
|
+
}
|
12817
|
+
|
12818
|
+
function cancelItem() {
|
12819
|
+
hideList();
|
12820
|
+
cancel();
|
12821
|
+
}
|
12822
|
+
|
12823
|
+
function showList() {
|
12824
|
+
if (!listEl.parentNode) {
|
12825
|
+
|
12826
|
+
if (editorParams.values === true) {
|
12827
|
+
parseItems(getUniqueColumnValues(), initialValue);
|
12828
|
+
} else {
|
12829
|
+
parseItems(editorParams.values || [], initialValue);
|
12830
|
+
}
|
12831
|
+
|
12832
|
+
var offset = Tabulator.prototype.helpers.elOffset(cellEl);
|
12833
|
+
|
12834
|
+
listEl.style.minWidth = cellEl.offsetWidth + "px";
|
12835
|
+
|
12836
|
+
listEl.style.top = offset.top + cellEl.offsetHeight + "px";
|
12837
|
+
listEl.style.left = offset.left + "px";
|
12838
|
+
document.body.appendChild(listEl);
|
12839
|
+
}
|
12840
|
+
}
|
12841
|
+
|
12842
|
+
function hideList() {
|
12843
|
+
if (listEl.parentNode) {
|
12844
|
+
listEl.parentNode.removeChild(listEl);
|
12845
|
+
}
|
12846
|
+
}
|
12847
|
+
|
12848
|
+
//style input
|
12849
|
+
input.setAttribute("type", "text");
|
12850
|
+
|
12851
|
+
input.style.padding = "4px";
|
12852
|
+
input.style.width = "100%";
|
12853
|
+
input.style.boxSizing = "border-box";
|
12854
|
+
input.readonly = true;
|
12855
|
+
|
12856
|
+
//allow key based navigation
|
12857
|
+
input.addEventListener("keydown", function (e) {
|
12858
|
+
var index;
|
12859
|
+
|
12860
|
+
switch (e.keyCode) {
|
12861
|
+
case 38:
|
12862
|
+
//up arrow
|
12863
|
+
e.stopImmediatePropagation();
|
12864
|
+
e.stopPropagation();
|
12865
|
+
|
12866
|
+
index = dataItems.indexOf(currentItem);
|
12867
|
+
|
12868
|
+
if (index > 0) {
|
12869
|
+
setCurrentItem(dataItems[index - 1]);
|
12870
|
+
}
|
12871
|
+
break;
|
12872
|
+
|
12873
|
+
case 40:
|
12874
|
+
//down arrow
|
12875
|
+
e.stopImmediatePropagation();
|
12876
|
+
e.stopPropagation();
|
12877
|
+
|
12878
|
+
index = dataItems.indexOf(currentItem);
|
12879
|
+
|
12880
|
+
if (index < dataItems.length - 1) {
|
12881
|
+
if (index == -1) {
|
12882
|
+
setCurrentItem(dataItems[0]);
|
12883
|
+
} else {
|
12884
|
+
setCurrentItem(dataItems[index + 1]);
|
12885
|
+
}
|
12886
|
+
}
|
12887
|
+
break;
|
12888
|
+
|
12889
|
+
case 13:
|
12890
|
+
//enter
|
12891
|
+
chooseItem();
|
12892
|
+
break;
|
12893
|
+
|
12894
|
+
case 27:
|
12895
|
+
//escape
|
12896
|
+
cancelItem();
|
12897
|
+
break;
|
12898
|
+
}
|
12899
|
+
});
|
12900
|
+
|
12901
|
+
input.addEventListener("blur", function (e) {
|
12902
|
+
if (blurable) {
|
12903
|
+
cancelItem();
|
11116
12904
|
}
|
11117
12905
|
});
|
11118
12906
|
|
12907
|
+
input.addEventListener("focus", function (e) {
|
12908
|
+
showList();
|
12909
|
+
});
|
12910
|
+
|
12911
|
+
//style list element
|
12912
|
+
listEl = document.createElement("div");
|
12913
|
+
listEl.classList.add("tabulator-edit-select-list");
|
12914
|
+
|
12915
|
+
onRendered(function () {
|
12916
|
+
input.style.height = "100%";
|
12917
|
+
input.focus();
|
12918
|
+
});
|
12919
|
+
|
11119
12920
|
return input;
|
11120
12921
|
},
|
11121
12922
|
|
11122
|
-
//
|
11123
|
-
|
11124
|
-
|
11125
|
-
|
11126
|
-
|
12923
|
+
//autocomplete
|
12924
|
+
autocomplete: function autocomplete(cell, onRendered, success, cancel, editorParams) {
|
12925
|
+
var self = this,
|
12926
|
+
cellEl = cell.getElement(),
|
12927
|
+
initialValue = cell.getValue(),
|
12928
|
+
input = document.createElement("input"),
|
12929
|
+
listEl = document.createElement("div"),
|
12930
|
+
allItems = [],
|
12931
|
+
displayItems = [],
|
12932
|
+
currentItem = {},
|
12933
|
+
blurable = true;
|
12934
|
+
|
12935
|
+
function getUniqueColumnValues() {
|
12936
|
+
var output = {},
|
12937
|
+
column = cell.getColumn()._getSelf(),
|
12938
|
+
data = self.table.getData();
|
11127
12939
|
|
11128
|
-
|
12940
|
+
data.forEach(function (row) {
|
12941
|
+
var val = column.getFieldValue(row);
|
11129
12942
|
|
11130
|
-
|
11131
|
-
|
11132
|
-
|
12943
|
+
if (val !== null && typeof val !== "undefined" && val !== "") {
|
12944
|
+
output[val] = true;
|
12945
|
+
}
|
12946
|
+
});
|
11133
12947
|
|
11134
|
-
|
11135
|
-
input.setAttribute("min", editorParams.min);
|
12948
|
+
return Object.keys(output);
|
11136
12949
|
}
|
11137
12950
|
|
11138
|
-
|
11139
|
-
|
11140
|
-
}
|
12951
|
+
function parseItems(inputValues, curentValue) {
|
12952
|
+
var itemList = [];
|
11141
12953
|
|
11142
|
-
|
11143
|
-
|
11144
|
-
|
11145
|
-
|
12954
|
+
if (Array.isArray(inputValues)) {
|
12955
|
+
inputValues.forEach(function (value) {
|
12956
|
+
var item = {
|
12957
|
+
title: editorParams.listItemFormatter ? editorParams.listItemFormatter(value, value) : value,
|
12958
|
+
value: value,
|
12959
|
+
element: false
|
12960
|
+
};
|
11146
12961
|
|
11147
|
-
|
12962
|
+
if (item.value === curentValue) {
|
12963
|
+
setCurrentItem(item);
|
12964
|
+
}
|
11148
12965
|
|
11149
|
-
|
11150
|
-
|
11151
|
-
|
11152
|
-
|
12966
|
+
itemList.push(item);
|
12967
|
+
});
|
12968
|
+
} else {
|
12969
|
+
for (var key in inputValues) {
|
12970
|
+
var item = {
|
12971
|
+
title: editorParams.listItemFormatter ? editorParams.listItemFormatter(key, inputValues[key]) : inputValues[key],
|
12972
|
+
value: key,
|
12973
|
+
element: false
|
12974
|
+
};
|
11153
12975
|
|
11154
|
-
|
11155
|
-
|
12976
|
+
if (item.value === curentValue) {
|
12977
|
+
setCurrentItem(item);
|
12978
|
+
}
|
11156
12979
|
|
11157
|
-
|
11158
|
-
|
12980
|
+
itemList.push(item);
|
12981
|
+
}
|
11159
12982
|
}
|
11160
12983
|
|
11161
|
-
|
11162
|
-
success(value);
|
11163
|
-
} else {
|
11164
|
-
cancel();
|
11165
|
-
}
|
12984
|
+
allItems = itemList;
|
11166
12985
|
}
|
11167
12986
|
|
11168
|
-
|
11169
|
-
|
11170
|
-
onChange();
|
11171
|
-
});
|
12987
|
+
function filterList(term) {
|
12988
|
+
var matches = [];
|
11172
12989
|
|
11173
|
-
|
11174
|
-
|
11175
|
-
|
11176
|
-
|
11177
|
-
case 9:
|
11178
|
-
onChange();
|
11179
|
-
break;
|
12990
|
+
if (editorParams.searchFunc) {
|
12991
|
+
matches = editorParams.searchFunc(term, values);
|
12992
|
+
} else {
|
12993
|
+
if (term === "") {
|
11180
12994
|
|
11181
|
-
|
11182
|
-
|
11183
|
-
|
11184
|
-
|
11185
|
-
|
12995
|
+
if (editorParams.showListOnEmpty) {
|
12996
|
+
allItems.forEach(function (item) {
|
12997
|
+
matches.push(item);
|
12998
|
+
});
|
12999
|
+
}
|
13000
|
+
} else {
|
13001
|
+
allItems.forEach(function (item) {
|
11186
13002
|
|
11187
|
-
|
11188
|
-
|
13003
|
+
if (item.value !== null || typeof item.value !== "undefined") {
|
13004
|
+
if (String(item.value).toLowerCase().indexOf(String(term).toLowerCase()) > -1) {
|
13005
|
+
matches.push(item);
|
13006
|
+
}
|
13007
|
+
}
|
13008
|
+
});
|
13009
|
+
}
|
13010
|
+
}
|
11189
13011
|
|
11190
|
-
|
11191
|
-
range: function range(cell, onRendered, success, cancel, editorParams) {
|
13012
|
+
displayItems = matches;
|
11192
13013
|
|
11193
|
-
|
11194
|
-
|
13014
|
+
fillList();
|
13015
|
+
}
|
11195
13016
|
|
11196
|
-
|
13017
|
+
function fillList() {
|
13018
|
+
var current = false;
|
11197
13019
|
|
11198
|
-
|
11199
|
-
|
11200
|
-
|
13020
|
+
while (listEl.firstChild) {
|
13021
|
+
listEl.removeChild(listEl.firstChild);
|
13022
|
+
}displayItems.forEach(function (item) {
|
13023
|
+
var el = item.element;
|
11201
13024
|
|
11202
|
-
|
11203
|
-
|
11204
|
-
|
13025
|
+
if (!el) {
|
13026
|
+
el = document.createElement("div");
|
13027
|
+
el.classList.add("tabulator-edit-select-list-item");
|
13028
|
+
el.tabIndex = 0;
|
13029
|
+
el.innerHTML = item.title;
|
11205
13030
|
|
11206
|
-
|
11207
|
-
|
11208
|
-
|
13031
|
+
el.addEventListener("click", function () {
|
13032
|
+
setCurrentItem(item);
|
13033
|
+
chooseItem();
|
13034
|
+
});
|
11209
13035
|
|
11210
|
-
|
11211
|
-
|
11212
|
-
input.style.width = "100%";
|
11213
|
-
input.style.boxSizing = "border-box";
|
13036
|
+
el.addEventListener("mousedown", function () {
|
13037
|
+
blurable = false;
|
11214
13038
|
|
11215
|
-
|
13039
|
+
setTimeout(function () {
|
13040
|
+
blurable = true;
|
13041
|
+
}, 10);
|
13042
|
+
});
|
11216
13043
|
|
11217
|
-
|
11218
|
-
input.focus();
|
11219
|
-
input.style.height = "100%";
|
11220
|
-
});
|
13044
|
+
item.element = el;
|
11221
13045
|
|
11222
|
-
|
11223
|
-
|
13046
|
+
if (item === currentItem) {
|
13047
|
+
item.element.classList.add("active");
|
13048
|
+
current = true;
|
13049
|
+
}
|
13050
|
+
}
|
11224
13051
|
|
11225
|
-
|
11226
|
-
|
11227
|
-
}
|
13052
|
+
listEl.appendChild(el);
|
13053
|
+
});
|
11228
13054
|
|
11229
|
-
if (
|
11230
|
-
|
11231
|
-
} else {
|
11232
|
-
cancel();
|
13055
|
+
if (!current) {
|
13056
|
+
setCurrentItem(false);
|
11233
13057
|
}
|
11234
13058
|
}
|
11235
13059
|
|
11236
|
-
|
11237
|
-
|
11238
|
-
|
11239
|
-
|
13060
|
+
function setCurrentItem(item, showInputValue) {
|
13061
|
+
if (currentItem && currentItem.element) {
|
13062
|
+
currentItem.element.classList.remove("active");
|
13063
|
+
}
|
11240
13064
|
|
11241
|
-
|
11242
|
-
input.addEventListener("keydown", function (e) {
|
11243
|
-
switch (e.keyCode) {
|
11244
|
-
case 13:
|
11245
|
-
case 9:
|
11246
|
-
onChange();
|
11247
|
-
break;
|
13065
|
+
currentItem = item;
|
11248
13066
|
|
11249
|
-
|
11250
|
-
|
11251
|
-
break;
|
13067
|
+
if (item && item.element) {
|
13068
|
+
item.element.classList.add("active");
|
11252
13069
|
}
|
11253
|
-
}
|
13070
|
+
}
|
11254
13071
|
|
11255
|
-
|
11256
|
-
|
13072
|
+
function chooseItem() {
|
13073
|
+
hideList();
|
11257
13074
|
|
11258
|
-
|
11259
|
-
|
11260
|
-
|
11261
|
-
|
11262
|
-
|
13075
|
+
if (currentItem) {
|
13076
|
+
if (initialValue !== currentItem.value) {
|
13077
|
+
initialValue = currentItem.value;
|
13078
|
+
input.value = currentItem.value;
|
13079
|
+
success(input.value);
|
13080
|
+
} else {
|
13081
|
+
cancel();
|
13082
|
+
}
|
13083
|
+
} else {
|
13084
|
+
if (editorParams.freetext) {
|
13085
|
+
initialValue = input.value;
|
13086
|
+
success(input.value);
|
13087
|
+
} else {
|
13088
|
+
if (editorParams.allowEmpty && input.value === "") {
|
13089
|
+
initialValue = input.value;
|
13090
|
+
success(input.value);
|
13091
|
+
} else {
|
13092
|
+
cancel();
|
13093
|
+
}
|
13094
|
+
}
|
13095
|
+
}
|
13096
|
+
}
|
11263
13097
|
|
11264
|
-
|
11265
|
-
|
11266
|
-
|
13098
|
+
function cancelItem() {
|
13099
|
+
hideList();
|
13100
|
+
cancel();
|
11267
13101
|
}
|
11268
13102
|
|
11269
|
-
function
|
13103
|
+
function showList() {
|
13104
|
+
if (!listEl.parentNode) {
|
13105
|
+
while (listEl.firstChild) {
|
13106
|
+
listEl.removeChild(listEl.firstChild);
|
13107
|
+
}if (editorParams.values === true) {
|
13108
|
+
parseItems(getUniqueColumnValues(), initialValue);
|
13109
|
+
} else {
|
13110
|
+
parseItems(editorParams.values || [], initialValue);
|
13111
|
+
}
|
11270
13112
|
|
11271
|
-
|
13113
|
+
var offset = Tabulator.prototype.helpers.elOffset(cellEl);
|
11272
13114
|
|
11273
|
-
|
11274
|
-
option.text = label;
|
13115
|
+
listEl.style.minWidth = cellEl.offsetWidth + "px";
|
11275
13116
|
|
11276
|
-
|
11277
|
-
|
13117
|
+
listEl.style.top = offset.top + cellEl.offsetHeight + "px";
|
13118
|
+
listEl.style.left = offset.left + "px";
|
13119
|
+
document.body.appendChild(listEl);
|
11278
13120
|
}
|
13121
|
+
}
|
11279
13122
|
|
11280
|
-
|
13123
|
+
function hideList() {
|
13124
|
+
if (listEl.parentNode) {
|
13125
|
+
listEl.parentNode.removeChild(listEl);
|
13126
|
+
}
|
11281
13127
|
}
|
11282
13128
|
|
11283
|
-
|
11284
|
-
|
13129
|
+
//style input
|
13130
|
+
input.setAttribute("type", "text");
|
13131
|
+
|
13132
|
+
input.style.padding = "4px";
|
13133
|
+
input.style.width = "100%";
|
13134
|
+
input.style.boxSizing = "border-box";
|
11285
13135
|
|
11286
|
-
|
11287
|
-
|
13136
|
+
//allow key based navigation
|
13137
|
+
input.addEventListener("keydown", function (e) {
|
13138
|
+
var index;
|
11288
13139
|
|
11289
|
-
|
13140
|
+
switch (e.keyCode) {
|
13141
|
+
case 38:
|
13142
|
+
//up arrow
|
13143
|
+
e.stopImmediatePropagation();
|
13144
|
+
e.stopPropagation();
|
11290
13145
|
|
11291
|
-
|
11292
|
-
processOption(groupEl, item);
|
11293
|
-
});
|
13146
|
+
index = displayItems.indexOf(currentItem);
|
11294
13147
|
|
11295
|
-
|
11296
|
-
|
11297
|
-
|
11298
|
-
|
11299
|
-
|
13148
|
+
if (index > 0) {
|
13149
|
+
setCurrentItem(displayItems[index - 1]);
|
13150
|
+
} else {
|
13151
|
+
setCurrentItem(false);
|
13152
|
+
}
|
13153
|
+
break;
|
13154
|
+
|
13155
|
+
case 40:
|
13156
|
+
//down arrow
|
13157
|
+
e.stopImmediatePropagation();
|
13158
|
+
e.stopPropagation();
|
11300
13159
|
|
11301
|
-
|
11302
|
-
|
11303
|
-
|
13160
|
+
index = displayItems.indexOf(currentItem);
|
13161
|
+
|
13162
|
+
if (index < displayItems.length - 1) {
|
13163
|
+
if (index == -1) {
|
13164
|
+
setCurrentItem(displayItems[0]);
|
13165
|
+
} else {
|
13166
|
+
setCurrentItem(displayItems[index + 1]);
|
13167
|
+
}
|
13168
|
+
}
|
13169
|
+
break;
|
13170
|
+
|
13171
|
+
case 13:
|
13172
|
+
//enter
|
13173
|
+
chooseItem();
|
13174
|
+
break;
|
13175
|
+
|
13176
|
+
case 27:
|
13177
|
+
//escape
|
13178
|
+
cancelItem();
|
13179
|
+
break;
|
11304
13180
|
}
|
11305
|
-
}
|
11306
|
-
editorParams.forEach(function (item) {
|
11307
|
-
processOption(select, item);
|
11308
|
-
});
|
11309
|
-
}
|
13181
|
+
});
|
11310
13182
|
|
11311
|
-
|
11312
|
-
select.style.padding = "4px";
|
11313
|
-
select.style.width = "100%";
|
11314
|
-
select.style.boxSizing = "border-box";
|
11315
|
-
select.style.fontFamily = "";
|
13183
|
+
input.addEventListener("keyup", function (e) {
|
11316
13184
|
|
11317
|
-
|
13185
|
+
switch (e.keyCode) {
|
13186
|
+
case 38: //up arrow
|
13187
|
+
case 37: //left arrow
|
13188
|
+
case 39: //up arrow
|
13189
|
+
case 40: //right arrow
|
13190
|
+
case 13: //enter
|
13191
|
+
case 27:
|
13192
|
+
//escape
|
13193
|
+
break;
|
11318
13194
|
|
11319
|
-
|
11320
|
-
|
13195
|
+
default:
|
13196
|
+
filterList(input.value);
|
13197
|
+
}
|
11321
13198
|
});
|
11322
13199
|
|
11323
|
-
|
11324
|
-
|
11325
|
-
|
11326
|
-
success(select.options[select.selectedIndex].value);
|
11327
|
-
} else {
|
11328
|
-
cancel();
|
13200
|
+
input.addEventListener("blur", function (e) {
|
13201
|
+
if (blurable) {
|
13202
|
+
chooseItem();
|
11329
13203
|
}
|
11330
|
-
}
|
13204
|
+
});
|
13205
|
+
|
13206
|
+
input.addEventListener("focus", function (e) {
|
13207
|
+
showList();
|
13208
|
+
input.value = initialValue;
|
13209
|
+
filterList(initialValue);
|
13210
|
+
});
|
11331
13211
|
|
11332
|
-
|
11333
|
-
|
13212
|
+
//style list element
|
13213
|
+
listEl = document.createElement("div");
|
13214
|
+
listEl.classList.add("tabulator-edit-select-list");
|
11334
13215
|
|
11335
|
-
|
11336
|
-
|
11337
|
-
|
11338
|
-
success(select.options[select.selectedIndex].value);
|
11339
|
-
}
|
13216
|
+
onRendered(function () {
|
13217
|
+
input.style.height = "100%";
|
13218
|
+
input.focus();
|
11340
13219
|
});
|
11341
|
-
|
13220
|
+
|
13221
|
+
return input;
|
11342
13222
|
},
|
11343
13223
|
|
11344
13224
|
//start rating
|
@@ -11586,7 +13466,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11586
13466
|
//checkbox
|
11587
13467
|
tickCross: function tickCross(cell, onRendered, success, cancel, editorParams) {
|
11588
13468
|
var value = cell.getValue(),
|
11589
|
-
input = document.createElement("input")
|
13469
|
+
input = document.createElement("input"),
|
13470
|
+
tristate = editorParams.tristate,
|
13471
|
+
indetermValue = typeof editorParams.indeterminateValue === "undefined" ? null : editorParams.indeterminateValue,
|
13472
|
+
indetermState = false;
|
11590
13473
|
|
11591
13474
|
input.setAttribute("type", "checkbox");
|
11592
13475
|
input.style.marginTop = "5px";
|
@@ -11594,6 +13477,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11594
13477
|
|
11595
13478
|
input.value = value;
|
11596
13479
|
|
13480
|
+
if (tristate && (typeof value === "undefined" || value === indetermValue || value === "")) {
|
13481
|
+
indetermState = true;
|
13482
|
+
input.indeterminate = true;
|
13483
|
+
}
|
13484
|
+
|
11597
13485
|
if (this.table.browser != "firefox") {
|
11598
13486
|
//prevent blur issue on mac firefox
|
11599
13487
|
onRendered(function () {
|
@@ -11603,61 +13491,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11603
13491
|
|
11604
13492
|
input.checked = value === true || value === "true" || value === "True" || value === 1;
|
11605
13493
|
|
11606
|
-
|
11607
|
-
|
11608
|
-
|
11609
|
-
|
11610
|
-
|
11611
|
-
|
11612
|
-
|
11613
|
-
|
11614
|
-
|
11615
|
-
|
11616
|
-
|
11617
|
-
|
11618
|
-
|
11619
|
-
}
|
11620
|
-
if (e.keyCode == 27) {
|
11621
|
-
cancel();
|
11622
|
-
}
|
11623
|
-
});
|
11624
|
-
|
11625
|
-
return input;
|
11626
|
-
},
|
11627
|
-
|
11628
|
-
//checkbox
|
11629
|
-
tick: function tick(cell, onRendered, success, cancel, editorParams) {
|
11630
|
-
var value = cell.getValue(),
|
11631
|
-
input = document.createElement("input");
|
11632
|
-
|
11633
|
-
input.setAttribute("type", "checkbox");
|
11634
|
-
input.style.marginTop = "5px";
|
11635
|
-
input.style.boxSizing = "border-box";
|
11636
|
-
|
11637
|
-
input.value = value;
|
11638
|
-
|
11639
|
-
if (this.table.browser != "firefox") {
|
11640
|
-
//prevent blur issue on mac firefox
|
11641
|
-
onRendered(function () {
|
11642
|
-
input.focus();
|
11643
|
-
});
|
13494
|
+
function setValue() {
|
13495
|
+
if (tristate) {
|
13496
|
+
if (input.checked && !indetermState) {
|
13497
|
+
input.checked = false;
|
13498
|
+
input.indeterminate = true;
|
13499
|
+
indetermState = true;
|
13500
|
+
return indetermValue;
|
13501
|
+
} else {
|
13502
|
+
indetermState = false;
|
13503
|
+
return input.checked;
|
13504
|
+
}
|
13505
|
+
} else {
|
13506
|
+
return input.checked;
|
13507
|
+
}
|
11644
13508
|
}
|
11645
13509
|
|
11646
|
-
input.checked = value === true || value === "true" || value === "True" || value === 1;
|
11647
|
-
|
11648
13510
|
//submit new value on blur
|
11649
13511
|
input.addEventListener("change", function (e) {
|
11650
|
-
success(
|
13512
|
+
success(setValue());
|
11651
13513
|
});
|
11652
13514
|
|
11653
13515
|
input.addEventListener("blur", function (e) {
|
11654
|
-
success(
|
13516
|
+
success(setValue());
|
11655
13517
|
});
|
11656
13518
|
|
11657
13519
|
//submit new value on enter
|
11658
13520
|
input.addEventListener("keydown", function (e) {
|
11659
13521
|
if (e.keyCode == 13) {
|
11660
|
-
success(
|
13522
|
+
success(setValue());
|
11661
13523
|
}
|
11662
13524
|
if (e.keyCode == 27) {
|
11663
13525
|
cancel();
|
@@ -11676,6 +13538,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11676
13538
|
this.filterList = []; //hold filter list
|
11677
13539
|
this.headerFilters = {}; //hold column filters
|
11678
13540
|
this.headerFilterElements = []; //hold header filter elements for manipulation
|
13541
|
+
this.headerFilterColumns = []; //hold columns that use header filters
|
11679
13542
|
|
11680
13543
|
this.changed = false; //has filtering changed since last render
|
11681
13544
|
};
|
@@ -11855,7 +13718,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11855
13718
|
|
11856
13719
|
params = typeof params === "function" ? params.call(self.table) : params;
|
11857
13720
|
|
11858
|
-
editorElement = editor.call(
|
13721
|
+
editorElement = editor.call(this.table.modules.edit, cellWrapper, function () {}, success, cancel, params);
|
13722
|
+
|
13723
|
+
if (!editorElement) {
|
13724
|
+
console.warn("Filter Error - Cannot add filter to " + field + " column, editor returned a value of false");
|
13725
|
+
return;
|
13726
|
+
}
|
13727
|
+
|
13728
|
+
if (!(editorElement instanceof Node)) {
|
13729
|
+
console.warn("Filter Error - Cannot add filter to " + field + " column, editor should return an instance of Node, the editor returned:", editorElement);
|
13730
|
+
return;
|
13731
|
+
}
|
11859
13732
|
|
11860
13733
|
//set Placeholder Text
|
11861
13734
|
if (field) {
|
@@ -11887,32 +13760,36 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11887
13760
|
}, 300);
|
11888
13761
|
};
|
11889
13762
|
|
11890
|
-
editorElement.addEventListener("keyup", searchTrigger);
|
11891
|
-
editorElement.addEventListener("search", searchTrigger);
|
11892
|
-
|
11893
13763
|
column.modules.filter.headerElement = editorElement;
|
13764
|
+
column.modules.filter.attrType = editorElement.hasAttribute("type") ? editorElement.getAttribute("type").toLowerCase() : "";
|
13765
|
+
column.modules.filter.tagType = editorElement.tagName.toLowerCase();
|
11894
13766
|
|
11895
|
-
|
13767
|
+
if (column.definition.headerFilterLiveFilter !== false) {
|
11896
13768
|
|
11897
|
-
|
11898
|
-
|
11899
|
-
|
11900
|
-
success(editorElement.value);
|
11901
|
-
});
|
11902
|
-
}
|
13769
|
+
if (!(column.definition.headerFilter === "autocomplete" || column.definition.editor === "autocomplete" && column.definition.headerFilter === true)) {
|
13770
|
+
editorElement.addEventListener("keyup", searchTrigger);
|
13771
|
+
editorElement.addEventListener("search", searchTrigger);
|
11903
13772
|
|
11904
|
-
|
11905
|
-
|
11906
|
-
|
11907
|
-
|
11908
|
-
|
13773
|
+
//update number filtered columns on change
|
13774
|
+
if (column.modules.filter.attrType == "number") {
|
13775
|
+
editorElement.addEventListener("change", function (e) {
|
13776
|
+
success(editorElement.value);
|
13777
|
+
});
|
13778
|
+
}
|
11909
13779
|
|
11910
|
-
|
11911
|
-
|
11912
|
-
|
11913
|
-
|
11914
|
-
|
11915
|
-
}
|
13780
|
+
//change text inputs to search inputs to allow for clearing of field
|
13781
|
+
if (column.modules.filter.attrType == "text" && this.table.browser !== "ie") {
|
13782
|
+
editorElement.setAttribute("type", "search");
|
13783
|
+
// editorElement.off("change blur"); //prevent blur from triggering filter and preventing selection click
|
13784
|
+
}
|
13785
|
+
}
|
13786
|
+
|
13787
|
+
//prevent input and select elements from propegating click to column sorters etc
|
13788
|
+
if (column.modules.filter.tagType == "input" || column.modules.filter.tagType == "select" || column.modules.filter.tagType == "textarea") {
|
13789
|
+
editorElement.addEventListener("mousedown", function (e) {
|
13790
|
+
e.stopPropagation();
|
13791
|
+
});
|
13792
|
+
}
|
11916
13793
|
}
|
11917
13794
|
|
11918
13795
|
filterElement.appendChild(editorElement);
|
@@ -11920,6 +13797,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11920
13797
|
column.contentElement.appendChild(filterElement);
|
11921
13798
|
|
11922
13799
|
self.headerFilterElements.push(editorElement);
|
13800
|
+
self.headerFilterColumns.push(column);
|
11923
13801
|
}
|
11924
13802
|
} else {
|
11925
13803
|
console.warn("Filter Error - Cannot add header filter, column has no field set:", column.definition.title);
|
@@ -12156,17 +14034,55 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12156
14034
|
|
12157
14035
|
//clear header filters
|
12158
14036
|
Filter.prototype.clearHeaderFilter = function () {
|
14037
|
+
var self = this;
|
14038
|
+
|
12159
14039
|
this.headerFilters = {};
|
12160
14040
|
|
12161
|
-
this.
|
12162
|
-
|
14041
|
+
this.headerFilterColumns.forEach(function (column) {
|
14042
|
+
column.modules.filter.value = null;
|
14043
|
+
self.reloadHeaderFilter(column);
|
12163
14044
|
});
|
12164
14045
|
|
12165
14046
|
this.changed = true;
|
12166
14047
|
};
|
12167
14048
|
|
14049
|
+
//search data and return matching rows
|
14050
|
+
Filter.prototype.search = function (searchType, field, type, value) {
|
14051
|
+
var self = this,
|
14052
|
+
activeRows = [],
|
14053
|
+
filterList = [];
|
14054
|
+
|
14055
|
+
if (!Array.isArray(field)) {
|
14056
|
+
field = [{ field: field, type: type, value: value }];
|
14057
|
+
}
|
14058
|
+
|
14059
|
+
field.forEach(function (filter) {
|
14060
|
+
filter = self.findFilter(filter);
|
14061
|
+
|
14062
|
+
if (filter) {
|
14063
|
+
filterList.push(filter);
|
14064
|
+
}
|
14065
|
+
});
|
14066
|
+
|
14067
|
+
this.table.rowManager.rows.forEach(function (row) {
|
14068
|
+
var match = true;
|
14069
|
+
|
14070
|
+
filterList.forEach(function (filter) {
|
14071
|
+
if (!self.filterRecurse(filter, row.getData())) {
|
14072
|
+
match = false;
|
14073
|
+
}
|
14074
|
+
});
|
14075
|
+
|
14076
|
+
if (match) {
|
14077
|
+
activeRows.push(searchType === "data" ? row.getData("data") : row.getComponent());
|
14078
|
+
}
|
14079
|
+
});
|
14080
|
+
|
14081
|
+
return activeRows;
|
14082
|
+
};
|
14083
|
+
|
12168
14084
|
//filter row array
|
12169
|
-
Filter.prototype.filter = function (rowList) {
|
14085
|
+
Filter.prototype.filter = function (rowList, filters) {
|
12170
14086
|
var self = this,
|
12171
14087
|
activeRows = [],
|
12172
14088
|
activeRowComponents = [];
|
@@ -12199,7 +14115,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12199
14115
|
};
|
12200
14116
|
|
12201
14117
|
//filter individual row
|
12202
|
-
Filter.prototype.filterRow = function (row) {
|
14118
|
+
Filter.prototype.filterRow = function (row, filters) {
|
12203
14119
|
var self = this,
|
12204
14120
|
match = true,
|
12205
14121
|
data = row.getData();
|
@@ -12315,6 +14231,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12315
14231
|
//set column formatter
|
12316
14232
|
switch (_typeof(column.definition.formatter)) {
|
12317
14233
|
case "string":
|
14234
|
+
|
14235
|
+
if (column.definition.formatter === "tick") {
|
14236
|
+
column.definition.formatter = "tickCross";
|
14237
|
+
|
14238
|
+
if (typeof column.definition.formatterParams.crossElement == "undefined") {
|
14239
|
+
column.definition.formatterParams.crossElement = false;
|
14240
|
+
}
|
14241
|
+
|
14242
|
+
console.warn("DEPRICATION WANRING - the tick formatter has been depricated, please use the tickCross formatter with the crossElement param set to false");
|
14243
|
+
}
|
14244
|
+
|
12318
14245
|
if (self.formatters[column.definition.formatter]) {
|
12319
14246
|
config.formatter = self.formatters[column.definition.formatter];
|
12320
14247
|
} else {
|
@@ -12510,9 +14437,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12510
14437
|
|
12511
14438
|
//image element
|
12512
14439
|
image: function image(cell, formatterParams, onRendered) {
|
12513
|
-
var
|
12514
|
-
|
12515
|
-
el.setAttribute("src", value);
|
14440
|
+
var el = document.createElement("img");
|
14441
|
+
el.setAttribute("src", cell.getValue());
|
12516
14442
|
|
12517
14443
|
switch (_typeof(formatterParams.height)) {
|
12518
14444
|
case "number":
|
@@ -12541,41 +14467,25 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12541
14467
|
return el;
|
12542
14468
|
},
|
12543
14469
|
|
12544
|
-
//tick or empty cell
|
12545
|
-
tick: function tick(cell, formatterParams, onRendered) {
|
12546
|
-
var value = cell.getValue(),
|
12547
|
-
element = cell.getElement();
|
12548
|
-
|
12549
|
-
var tick = '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>';
|
12550
|
-
|
12551
|
-
if (value === true || value === "true" || value === "True" || value === 1 || value === "1") {
|
12552
|
-
element.setAttribute("aria-checked", true);
|
12553
|
-
return tick;
|
12554
|
-
} else {
|
12555
|
-
element.setAttribute("aria-checked", false);
|
12556
|
-
return "";
|
12557
|
-
}
|
12558
|
-
},
|
12559
|
-
|
12560
14470
|
//tick or cross
|
12561
14471
|
tickCross: function tickCross(cell, formatterParams, onRendered) {
|
12562
14472
|
var value = cell.getValue(),
|
12563
14473
|
element = cell.getElement(),
|
12564
14474
|
empty = formatterParams.allowEmpty,
|
12565
14475
|
truthy = formatterParams.allowTruthy,
|
12566
|
-
tick = '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
|
12567
|
-
cross = '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
|
14476
|
+
tick = typeof formatterParams.tickElement !== "undefined" ? formatterParams.tickElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',
|
14477
|
+
cross = typeof formatterParams.crossElement !== "undefined" ? formatterParams.crossElement : '<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';
|
12568
14478
|
|
12569
14479
|
if (truthy && value || value === true || value === "true" || value === "True" || value === 1 || value === "1") {
|
12570
14480
|
element.setAttribute("aria-checked", true);
|
12571
|
-
return tick;
|
14481
|
+
return tick || "";
|
12572
14482
|
} else {
|
12573
14483
|
if (empty && (value === "null" || value === "" || value === null || typeof value === "undefined")) {
|
12574
14484
|
element.setAttribute("aria-checked", "mixed");
|
12575
14485
|
return "";
|
12576
14486
|
} else {
|
12577
14487
|
element.setAttribute("aria-checked", false);
|
12578
|
-
return cross;
|
14488
|
+
return cross || "";
|
12579
14489
|
}
|
12580
14490
|
}
|
12581
14491
|
},
|
@@ -13112,23 +15022,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13112
15022
|
};
|
13113
15023
|
|
13114
15024
|
GroupComponent.prototype.getRows = function () {
|
13115
|
-
|
13116
|
-
|
13117
|
-
this._group.rows.forEach(function (row) {
|
13118
|
-
output.push(row.getComponent());
|
13119
|
-
});
|
13120
|
-
|
13121
|
-
return output;
|
15025
|
+
return this._group.getRows(true);
|
13122
15026
|
};
|
13123
15027
|
|
13124
15028
|
GroupComponent.prototype.getSubGroups = function () {
|
13125
|
-
|
13126
|
-
|
13127
|
-
this._group.groupList.forEach(function (child) {
|
13128
|
-
output.push(child.getComponent());
|
13129
|
-
});
|
13130
|
-
|
13131
|
-
return output;
|
15029
|
+
return this._group.getSubGroups(true);
|
13132
15030
|
};
|
13133
15031
|
|
13134
15032
|
GroupComponent.prototype.getParentGroup = function () {
|
@@ -13190,6 +15088,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13190
15088
|
|
13191
15089
|
this.createElements();
|
13192
15090
|
this.addBindings();
|
15091
|
+
|
15092
|
+
this.createValueGroups();
|
13193
15093
|
};
|
13194
15094
|
|
13195
15095
|
Group.prototype.createElements = function () {
|
@@ -13203,6 +15103,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13203
15103
|
this.arrowElement.classList.add("tabulator-arrow");
|
13204
15104
|
};
|
13205
15105
|
|
15106
|
+
Group.prototype.createValueGroups = function () {
|
15107
|
+
var _this31 = this;
|
15108
|
+
|
15109
|
+
var level = this.level + 1;
|
15110
|
+
if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
|
15111
|
+
this.groupManager.allowedValues[level].forEach(function (value) {
|
15112
|
+
_this31._createGroup(value, level);
|
15113
|
+
});
|
15114
|
+
}
|
15115
|
+
};
|
15116
|
+
|
13206
15117
|
Group.prototype.addBindings = function () {
|
13207
15118
|
var self = this,
|
13208
15119
|
dblTap,
|
@@ -13299,21 +15210,33 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13299
15210
|
}
|
13300
15211
|
};
|
13301
15212
|
|
15213
|
+
Group.prototype._createGroup = function (groupID, level) {
|
15214
|
+
var groupKey = level + "_" + groupID;
|
15215
|
+
var group = new Group(this.groupManager, this, level, groupID, this.groupManager.groupIDLookups[level].field, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupKey] : false);
|
15216
|
+
|
15217
|
+
this.groups[groupKey] = group;
|
15218
|
+
this.groupList.push(group);
|
15219
|
+
};
|
15220
|
+
|
13302
15221
|
Group.prototype._addRowToGroup = function (row) {
|
13303
15222
|
|
13304
15223
|
var level = this.level + 1;
|
13305
15224
|
|
13306
15225
|
if (this.hasSubGroups) {
|
13307
|
-
var groupID = this.groupManager.groupIDLookups[level].func(row.getData())
|
15226
|
+
var groupID = this.groupManager.groupIDLookups[level].func(row.getData()),
|
15227
|
+
groupKey = level + "_" + groupID;
|
13308
15228
|
|
13309
|
-
if (
|
13310
|
-
|
15229
|
+
if (this.groupManager.allowedValues && this.groupManager.allowedValues[level]) {
|
15230
|
+
if (this.groups[groupKey]) {
|
15231
|
+
this.groups[groupKey].addRow(row);
|
15232
|
+
}
|
15233
|
+
} else {
|
15234
|
+
if (!this.groups[groupKey]) {
|
15235
|
+
this._createGroup(groupID, level);
|
15236
|
+
}
|
13311
15237
|
|
13312
|
-
this.groups[
|
13313
|
-
this.groupList.push(group);
|
15238
|
+
this.groups[groupKey].addRow(row);
|
13314
15239
|
}
|
13315
|
-
|
13316
|
-
this.groups[groupID].addRow(row);
|
13317
15240
|
}
|
13318
15241
|
};
|
13319
15242
|
|
@@ -13393,10 +15316,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13393
15316
|
};
|
13394
15317
|
|
13395
15318
|
Group.prototype.removeGroup = function (group) {
|
13396
|
-
var
|
15319
|
+
var groupKey = group.level + "_" + group.key,
|
15320
|
+
index;
|
13397
15321
|
|
13398
|
-
if (this.groups[
|
13399
|
-
delete this.groups[
|
15322
|
+
if (this.groups[groupKey]) {
|
15323
|
+
delete this.groups[groupKey];
|
13400
15324
|
|
13401
15325
|
index = this.groupList.indexOf(group);
|
13402
15326
|
|
@@ -13459,12 +15383,27 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13459
15383
|
return output;
|
13460
15384
|
};
|
13461
15385
|
|
13462
|
-
Group.prototype.
|
15386
|
+
Group.prototype.getData = function (visible, transform) {
|
15387
|
+
var self = this,
|
15388
|
+
output = [];
|
15389
|
+
|
13463
15390
|
this._visSet();
|
13464
15391
|
|
13465
|
-
|
15392
|
+
if (!visible || visible && this.visible) {
|
15393
|
+
this.rows.forEach(function (row) {
|
15394
|
+
output.push(row.getData(transform || "data"));
|
15395
|
+
});
|
15396
|
+
}
|
15397
|
+
|
15398
|
+
return output;
|
13466
15399
|
};
|
13467
15400
|
|
15401
|
+
// Group.prototype.getRows = function(){
|
15402
|
+
// this._visSet();
|
15403
|
+
|
15404
|
+
// return this.visible ? this.rows : [];
|
15405
|
+
// };
|
15406
|
+
|
13468
15407
|
Group.prototype.getRowCount = function () {
|
13469
15408
|
var count = 0;
|
13470
15409
|
|
@@ -13603,6 +15542,26 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13603
15542
|
return match;
|
13604
15543
|
};
|
13605
15544
|
|
15545
|
+
Group.prototype.getSubGroups = function (component) {
|
15546
|
+
var output = [];
|
15547
|
+
|
15548
|
+
this.groupList.forEach(function (child) {
|
15549
|
+
output.push(component ? child.getComponent() : child);
|
15550
|
+
});
|
15551
|
+
|
15552
|
+
return output;
|
15553
|
+
};
|
15554
|
+
|
15555
|
+
Group.prototype.getRows = function (compoment) {
|
15556
|
+
var output = [];
|
15557
|
+
|
15558
|
+
this.rows.forEach(function (row) {
|
15559
|
+
output.push(compoment ? row.getComponent() : row);
|
15560
|
+
});
|
15561
|
+
|
15562
|
+
return output;
|
15563
|
+
};
|
15564
|
+
|
13606
15565
|
Group.prototype.generateGroupHeaderContents = function () {
|
13607
15566
|
var data = [];
|
13608
15567
|
|
@@ -13710,6 +15669,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13710
15669
|
return "";
|
13711
15670
|
}];
|
13712
15671
|
this.groupList = []; //ordered list of groups
|
15672
|
+
this.allowedValues = false;
|
13713
15673
|
this.groups = {}; //hold row groups
|
13714
15674
|
this.displayIndex = 0; //index in display pipeline
|
13715
15675
|
};
|
@@ -13721,6 +15681,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13721
15681
|
startOpen = self.table.options.groupStartOpen,
|
13722
15682
|
groupHeader = self.table.options.groupHeader;
|
13723
15683
|
|
15684
|
+
this.allowedValues = self.table.options.groupValues;
|
15685
|
+
|
13724
15686
|
self.headerGenerator = [function () {
|
13725
15687
|
return "";
|
13726
15688
|
}];
|
@@ -13762,7 +15724,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13762
15724
|
groupBy = [groupBy];
|
13763
15725
|
}
|
13764
15726
|
|
13765
|
-
groupBy.forEach(function (group) {
|
15727
|
+
groupBy.forEach(function (group, i) {
|
13766
15728
|
var lookupFunc, column;
|
13767
15729
|
|
13768
15730
|
if (typeof group == "function") {
|
@@ -13783,7 +15745,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13783
15745
|
|
13784
15746
|
self.groupIDLookups.push({
|
13785
15747
|
field: typeof group === "function" ? false : group,
|
13786
|
-
func: lookupFunc
|
15748
|
+
func: lookupFunc,
|
15749
|
+
values: self.allowedValues ? self.allowedValues[i] : false
|
13787
15750
|
});
|
13788
15751
|
});
|
13789
15752
|
|
@@ -13826,7 +15789,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13826
15789
|
this.generateGroups(rows);
|
13827
15790
|
|
13828
15791
|
if (this.table.options.dataGrouped) {
|
13829
|
-
this.table.options.dataGrouped.call(this.table, this.getGroups());
|
15792
|
+
this.table.options.dataGrouped.call(this.table, this.getGroups(true));
|
13830
15793
|
}
|
13831
15794
|
|
13832
15795
|
return this.updateGroupRows();
|
@@ -13835,16 +15798,57 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13835
15798
|
}
|
13836
15799
|
};
|
13837
15800
|
|
13838
|
-
GroupRows.prototype.getGroups = function () {
|
15801
|
+
GroupRows.prototype.getGroups = function (compoment) {
|
13839
15802
|
var groupComponents = [];
|
13840
15803
|
|
13841
15804
|
this.groupList.forEach(function (group) {
|
13842
|
-
groupComponents.push(group.getComponent());
|
15805
|
+
groupComponents.push(compoment ? group.getComponent() : group);
|
13843
15806
|
});
|
13844
15807
|
|
13845
15808
|
return groupComponents;
|
13846
15809
|
};
|
13847
15810
|
|
15811
|
+
GroupRows.prototype.pullGroupListData = function (groupList) {
|
15812
|
+
var self = this;
|
15813
|
+
var groupListData = [];
|
15814
|
+
|
15815
|
+
groupList.forEach(function (group) {
|
15816
|
+
var groupHeader = {};
|
15817
|
+
groupHeader.level = 0;
|
15818
|
+
groupHeader.rowCount = 0;
|
15819
|
+
groupHeader.headerContent = "";
|
15820
|
+
var childData = [];
|
15821
|
+
|
15822
|
+
if (group.hasSubGroups) {
|
15823
|
+
childData = self.pullGroupListData(group.groupList);
|
15824
|
+
|
15825
|
+
groupHeader.level = group.level;
|
15826
|
+
groupHeader.rowCount = childData.length - group.groupList.length; // data length minus number of sub-headers
|
15827
|
+
groupHeader.headerContent = group.generator(group.key, groupHeader.rowCount, group.rows, group);
|
15828
|
+
|
15829
|
+
groupListData.push(groupHeader);
|
15830
|
+
groupListData = groupListData.concat(childData);
|
15831
|
+
} else {
|
15832
|
+
groupHeader.level = group.level;
|
15833
|
+
groupHeader.headerContent = group.generator(group.key, group.rows.length, group.rows, group);
|
15834
|
+
groupHeader.rowCount = group.getRows().length;
|
15835
|
+
|
15836
|
+
groupListData.push(groupHeader);
|
15837
|
+
|
15838
|
+
group.getRows().forEach(function (row) {
|
15839
|
+
groupListData.push(row.getData("data"));
|
15840
|
+
});
|
15841
|
+
}
|
15842
|
+
});
|
15843
|
+
|
15844
|
+
return groupListData;
|
15845
|
+
};
|
15846
|
+
|
15847
|
+
GroupRows.prototype.getGroupedData = function () {
|
15848
|
+
|
15849
|
+
return this.pullGroupListData(this.groupList);
|
15850
|
+
};
|
15851
|
+
|
13848
15852
|
GroupRows.prototype.getRowGroup = function (row) {
|
13849
15853
|
var match = false;
|
13850
15854
|
|
@@ -13870,25 +15874,62 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13870
15874
|
self.groups = {};
|
13871
15875
|
self.groupList = [];
|
13872
15876
|
|
13873
|
-
|
13874
|
-
|
13875
|
-
|
15877
|
+
if (this.allowedValues && this.allowedValues[0]) {
|
15878
|
+
this.allowedValues[0].forEach(function (value) {
|
15879
|
+
self.createGroup(value, 0, oldGroups);
|
15880
|
+
});
|
15881
|
+
|
15882
|
+
rows.forEach(function (row) {
|
15883
|
+
self.assignRowToExistingGroup(row, oldGroups);
|
15884
|
+
});
|
15885
|
+
} else {
|
15886
|
+
rows.forEach(function (row) {
|
15887
|
+
self.assignRowToGroup(row, oldGroups);
|
15888
|
+
});
|
15889
|
+
}
|
15890
|
+
};
|
15891
|
+
|
15892
|
+
GroupRows.prototype.createGroup = function (groupID, level, oldGroups) {
|
15893
|
+
var groupKey = level + "_" + groupID,
|
15894
|
+
group;
|
15895
|
+
|
15896
|
+
oldGroups = oldGroups || [];
|
15897
|
+
|
15898
|
+
group = new Group(this, false, level, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupKey]);
|
15899
|
+
|
15900
|
+
this.groups[groupKey] = group;
|
15901
|
+
this.groupList.push(group);
|
13876
15902
|
};
|
13877
15903
|
|
13878
15904
|
GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
|
13879
15905
|
var groupID = this.groupIDLookups[0].func(row.getData()),
|
13880
|
-
|
15906
|
+
groupKey = "0_" + groupID;
|
13881
15907
|
|
13882
|
-
|
15908
|
+
if (!this.groups[groupKey]) {
|
15909
|
+
this.createGroup(groupID, 0, oldGroups);
|
15910
|
+
}
|
13883
15911
|
|
13884
|
-
|
13885
|
-
|
15912
|
+
this.groups[groupKey].addRow(row);
|
15913
|
+
};
|
15914
|
+
|
15915
|
+
GroupRows.prototype.assignRowToExistingGroup = function (row, oldGroups) {
|
15916
|
+
var groupID = this.groupIDLookups[0].func(row.getData()),
|
15917
|
+
groupKey = "0_" + groupID;
|
13886
15918
|
|
13887
|
-
|
13888
|
-
this.
|
15919
|
+
if (this.groups[groupKey]) {
|
15920
|
+
this.groups[groupKey].addRow(row);
|
13889
15921
|
}
|
15922
|
+
};
|
15923
|
+
|
15924
|
+
GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
|
15925
|
+
var groupID = this.groupIDLookups[0].func(row.getData()),
|
15926
|
+
newGroupNeeded = !this.groups["0_" + groupID];
|
13890
15927
|
|
13891
|
-
|
15928
|
+
if (newGroupNeeded) {
|
15929
|
+
this.createGroup(groupID, 0, oldGroups);
|
15930
|
+
}
|
15931
|
+
|
15932
|
+
this.groups["0_" + groupID].addRow(row);
|
13892
15933
|
|
13893
15934
|
return !newGroupNeeded;
|
13894
15935
|
};
|
@@ -13924,10 +15965,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13924
15965
|
};
|
13925
15966
|
|
13926
15967
|
GroupRows.prototype.removeGroup = function (group) {
|
13927
|
-
var
|
15968
|
+
var groupKey = group.level + "_" + group.key,
|
15969
|
+
index;
|
13928
15970
|
|
13929
|
-
if (this.groups[
|
13930
|
-
delete this.groups[
|
15971
|
+
if (this.groups[groupKey]) {
|
15972
|
+
delete this.groups[groupKey];
|
13931
15973
|
|
13932
15974
|
index = this.groupList.indexOf(group);
|
13933
15975
|
|
@@ -14298,13 +16340,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14298
16340
|
};
|
14299
16341
|
|
14300
16342
|
Keybindings.prototype.mapBindings = function (bindings) {
|
14301
|
-
var
|
16343
|
+
var _this32 = this;
|
14302
16344
|
|
14303
16345
|
var self = this;
|
14304
16346
|
|
14305
16347
|
var _loop2 = function _loop2(key) {
|
14306
16348
|
|
14307
|
-
if (
|
16349
|
+
if (_this32.actions[key]) {
|
14308
16350
|
|
14309
16351
|
if (bindings[key]) {
|
14310
16352
|
|
@@ -15542,18 +17584,18 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15542
17584
|
|
15543
17585
|
//set current page number
|
15544
17586
|
Page.prototype.setPage = function (page) {
|
15545
|
-
var
|
17587
|
+
var _this33 = this;
|
15546
17588
|
|
15547
17589
|
return new Promise(function (resolve, reject) {
|
15548
|
-
if (page > 0 && page <=
|
15549
|
-
|
15550
|
-
|
17590
|
+
if (page > 0 && page <= _this33.max) {
|
17591
|
+
_this33.page = page;
|
17592
|
+
_this33.trigger().then(function () {
|
15551
17593
|
resolve();
|
15552
17594
|
}).catch(function () {
|
15553
17595
|
reject();
|
15554
17596
|
});
|
15555
17597
|
} else {
|
15556
|
-
console.warn("Pagination Error - Requested page is out of range of 1 - " +
|
17598
|
+
console.warn("Pagination Error - Requested page is out of range of 1 - " + _this33.max + ":", page);
|
15557
17599
|
reject();
|
15558
17600
|
}
|
15559
17601
|
});
|
@@ -15626,12 +17668,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15626
17668
|
|
15627
17669
|
//previous page
|
15628
17670
|
Page.prototype.previousPage = function () {
|
15629
|
-
var
|
17671
|
+
var _this34 = this;
|
15630
17672
|
|
15631
17673
|
return new Promise(function (resolve, reject) {
|
15632
|
-
if (
|
15633
|
-
|
15634
|
-
|
17674
|
+
if (_this34.page > 1) {
|
17675
|
+
_this34.page--;
|
17676
|
+
_this34.trigger().then(function () {
|
15635
17677
|
resolve();
|
15636
17678
|
}).catch(function () {
|
15637
17679
|
reject();
|
@@ -15645,19 +17687,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15645
17687
|
|
15646
17688
|
//next page
|
15647
17689
|
Page.prototype.nextPage = function () {
|
15648
|
-
var
|
17690
|
+
var _this35 = this;
|
15649
17691
|
|
15650
17692
|
return new Promise(function (resolve, reject) {
|
15651
|
-
if (
|
15652
|
-
|
15653
|
-
|
17693
|
+
if (_this35.page < _this35.max) {
|
17694
|
+
_this35.page++;
|
17695
|
+
_this35.trigger().then(function () {
|
15654
17696
|
resolve();
|
15655
17697
|
}).catch(function () {
|
15656
17698
|
reject();
|
15657
17699
|
});
|
15658
17700
|
} else {
|
15659
|
-
if (!
|
15660
|
-
console.warn("Pagination Error - Next page would be greater than maximum page of " +
|
17701
|
+
if (!_this35.progressiveLoad) {
|
17702
|
+
console.warn("Pagination Error - Next page would be greater than maximum page of " + _this35.max + ":", _this35.max + 1);
|
15661
17703
|
}
|
15662
17704
|
reject();
|
15663
17705
|
}
|
@@ -15709,28 +17751,28 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15709
17751
|
};
|
15710
17752
|
|
15711
17753
|
Page.prototype.trigger = function () {
|
15712
|
-
var
|
17754
|
+
var _this36 = this;
|
15713
17755
|
|
15714
17756
|
var left;
|
15715
17757
|
|
15716
17758
|
return new Promise(function (resolve, reject) {
|
15717
17759
|
|
15718
|
-
switch (
|
17760
|
+
switch (_this36.mode) {
|
15719
17761
|
case "local":
|
15720
|
-
left =
|
17762
|
+
left = _this36.table.rowManager.scrollLeft;
|
15721
17763
|
|
15722
|
-
|
15723
|
-
|
17764
|
+
_this36.table.rowManager.refreshActiveData("page");
|
17765
|
+
_this36.table.rowManager.scrollHorizontal(left);
|
15724
17766
|
|
15725
|
-
|
17767
|
+
_this36.table.options.pageLoaded.call(_this36.table, _this36.getPage());
|
15726
17768
|
resolve();
|
15727
17769
|
break;
|
15728
17770
|
|
15729
17771
|
case "remote":
|
15730
17772
|
case "progressive_load":
|
15731
17773
|
case "progressive_scroll":
|
15732
|
-
|
15733
|
-
|
17774
|
+
_this36.table.modules.ajax.blockActiveRequest();
|
17775
|
+
_this36._getRemotePage().then(function () {
|
15734
17776
|
resolve();
|
15735
17777
|
}).catch(function () {
|
15736
17778
|
reject();
|
@@ -15738,14 +17780,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15738
17780
|
break;
|
15739
17781
|
|
15740
17782
|
default:
|
15741
|
-
console.warn("Pagination Error - no such pagination mode:",
|
17783
|
+
console.warn("Pagination Error - no such pagination mode:", _this36.mode);
|
15742
17784
|
reject();
|
15743
17785
|
}
|
15744
17786
|
});
|
15745
17787
|
};
|
15746
17788
|
|
15747
17789
|
Page.prototype._getRemotePage = function () {
|
15748
|
-
var
|
17790
|
+
var _this37 = this;
|
15749
17791
|
|
15750
17792
|
var self = this,
|
15751
17793
|
oldParams,
|
@@ -15762,33 +17804,33 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
15762
17804
|
pageParams = self.table.modules.ajax.getParams();
|
15763
17805
|
|
15764
17806
|
//configure request params
|
15765
|
-
pageParams[
|
17807
|
+
pageParams[_this37.paginationDataSentNames.page] = self.page;
|
15766
17808
|
|
15767
17809
|
//set page size if defined
|
15768
|
-
if (
|
15769
|
-
pageParams[
|
17810
|
+
if (_this37.size) {
|
17811
|
+
pageParams[_this37.paginationDataSentNames.size] = _this37.size;
|
15770
17812
|
}
|
15771
17813
|
|
15772
17814
|
//set sort data if defined
|
15773
|
-
if (
|
17815
|
+
if (_this37.table.options.ajaxSorting && _this37.table.modExists("sort")) {
|
15774
17816
|
var sorters = self.table.modules.sort.getSort();
|
15775
17817
|
|
15776
17818
|
sorters.forEach(function (item) {
|
15777
17819
|
delete item.column;
|
15778
17820
|
});
|
15779
17821
|
|
15780
|
-
pageParams[
|
17822
|
+
pageParams[_this37.paginationDataSentNames.sorters] = sorters;
|
15781
17823
|
}
|
15782
17824
|
|
15783
17825
|
//set filter data if defined
|
15784
|
-
if (
|
17826
|
+
if (_this37.table.options.ajaxFiltering && _this37.table.modExists("filter")) {
|
15785
17827
|
var filters = self.table.modules.filter.getFilters(true, true);
|
15786
|
-
pageParams[
|
17828
|
+
pageParams[_this37.paginationDataSentNames.filters] = filters;
|
15787
17829
|
}
|
15788
17830
|
|
15789
17831
|
self.table.modules.ajax.setParams(pageParams);
|
15790
17832
|
|
15791
|
-
self.table.modules.ajax.sendRequest(
|
17833
|
+
self.table.modules.ajax.sendRequest(_this37.progressiveLoad).then(function (data) {
|
15792
17834
|
self._parseRemoteData(data);
|
15793
17835
|
resolve();
|
15794
17836
|
}).catch(function (e) {
|
@@ -16599,12 +18641,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
16599
18641
|
var SelectRow = function SelectRow(table) {
|
16600
18642
|
this.table = table; //hold Tabulator object
|
16601
18643
|
this.selecting = false; //flag selecting in progress
|
18644
|
+
this.lastClickedRow = false; //last clicked row
|
16602
18645
|
this.selectPrev = []; //hold previously selected element for drag drop selection
|
16603
18646
|
this.selectedRows = []; //hold selected rows
|
16604
18647
|
};
|
16605
18648
|
|
16606
18649
|
SelectRow.prototype.clearSelectionData = function (silent) {
|
16607
18650
|
this.selecting = false;
|
18651
|
+
this.lastClickedRow = false;
|
16608
18652
|
this.selectPrev = [];
|
16609
18653
|
this.selectedRows = [];
|
16610
18654
|
|
@@ -16635,42 +18679,78 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
16635
18679
|
element.classList.remove("tabulator-unselectable");
|
16636
18680
|
|
16637
18681
|
if (self.table.options.selectable && self.table.options.selectable != "highlight") {
|
16638
|
-
|
16639
|
-
|
16640
|
-
|
16641
|
-
|
16642
|
-
|
18682
|
+
if (self.table.options.selectableRangeMode && self.table.options.selectableRangeMode === "click") {
|
18683
|
+
element.addEventListener("click", function (e) {
|
18684
|
+
if (e.shiftKey) {
|
18685
|
+
self.lastClickedRow = self.lastClickedRow || row;
|
18686
|
+
|
18687
|
+
var lastClickedRowIdx = self.table.rowManager.getDisplayRowIndex(self.lastClickedRow);
|
18688
|
+
var rowIdx = self.table.rowManager.getDisplayRowIndex(row);
|
18689
|
+
|
18690
|
+
var fromRowIdx = lastClickedRowIdx <= rowIdx ? lastClickedRowIdx : rowIdx;
|
18691
|
+
var toRowIdx = lastClickedRowIdx >= rowIdx ? lastClickedRowIdx : rowIdx;
|
18692
|
+
|
18693
|
+
var rows = self.table.rowManager.getDisplayRows().slice(0);
|
18694
|
+
var toggledRows = rows.splice(fromRowIdx, toRowIdx - fromRowIdx + 1);
|
18695
|
+
|
18696
|
+
if (e.ctrlKey) {
|
18697
|
+
toggledRows.forEach(function (toggledRow) {
|
18698
|
+
if (toggledRow !== self.lastClickedRow) {
|
18699
|
+
self.toggleRow(toggledRow);
|
18700
|
+
}
|
18701
|
+
});
|
18702
|
+
self.lastClickedRow = row;
|
18703
|
+
} else {
|
18704
|
+
self.deselectRows();
|
18705
|
+
self.selectRows(toggledRows);
|
18706
|
+
}
|
18707
|
+
} else if (e.ctrlKey) {
|
18708
|
+
self.toggleRow(row);
|
18709
|
+
self.lastClickedRow = row;
|
18710
|
+
} else {
|
18711
|
+
self.deselectRows();
|
18712
|
+
self.selectRows(row);
|
18713
|
+
self.lastClickedRow = row;
|
18714
|
+
}
|
18715
|
+
});
|
18716
|
+
} else {
|
18717
|
+
element.addEventListener("click", function (e) {
|
18718
|
+
if (!self.selecting) {
|
18719
|
+
self.toggleRow(row);
|
18720
|
+
}
|
18721
|
+
});
|
16643
18722
|
|
16644
|
-
|
16645
|
-
|
16646
|
-
|
18723
|
+
element.addEventListener("mousedown", function (e) {
|
18724
|
+
if (e.shiftKey) {
|
18725
|
+
self.selecting = true;
|
16647
18726
|
|
16648
|
-
|
18727
|
+
self.selectPrev = [];
|
16649
18728
|
|
16650
|
-
|
16651
|
-
|
18729
|
+
document.body.addEventListener("mouseup", endSelect);
|
18730
|
+
document.body.addEventListener("keyup", endSelect);
|
16652
18731
|
|
16653
|
-
|
18732
|
+
self.toggleRow(row);
|
16654
18733
|
|
16655
|
-
|
16656
|
-
|
16657
|
-
|
18734
|
+
return false;
|
18735
|
+
}
|
18736
|
+
});
|
16658
18737
|
|
16659
|
-
|
16660
|
-
|
16661
|
-
|
18738
|
+
element.addEventListener("mouseenter", function (e) {
|
18739
|
+
if (self.selecting) {
|
18740
|
+
self.toggleRow(row);
|
16662
18741
|
|
16663
|
-
|
16664
|
-
|
18742
|
+
if (self.selectPrev[1] == row) {
|
18743
|
+
self.toggleRow(self.selectPrev[0]);
|
18744
|
+
}
|
16665
18745
|
}
|
16666
|
-
}
|
16667
|
-
});
|
18746
|
+
});
|
16668
18747
|
|
16669
|
-
|
16670
|
-
|
16671
|
-
|
16672
|
-
|
16673
|
-
|
18748
|
+
element.addEventListener("mouseout", function (e) {
|
18749
|
+
if (self.selecting) {
|
18750
|
+
self.selectPrev.unshift(row);
|
18751
|
+
}
|
18752
|
+
});
|
18753
|
+
}
|
16674
18754
|
}
|
16675
18755
|
} else {
|
16676
18756
|
element.classList.add("tabulator-unselectable");
|
@@ -16848,6 +18928,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
16848
18928
|
};
|
16849
18929
|
|
16850
18930
|
Tabulator.prototype.registerModule("selectRow", SelectRow);
|
18931
|
+
|
16851
18932
|
var Sort = function Sort(table) {
|
16852
18933
|
this.table = table; //hold Tabulator object
|
16853
18934
|
this.sortList = []; //holder current sort
|
@@ -16901,7 +18982,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
16901
18982
|
if (column.modules.sort) {
|
16902
18983
|
dir = column.modules.sort.dir == "asc" ? "desc" : column.modules.sort.dir == "desc" ? "asc" : column.modules.sort.startingDir;
|
16903
18984
|
|
16904
|
-
if (e.shiftKey || e.ctrlKey) {
|
18985
|
+
if (self.table.options.columnHeaderSortMulti && (e.shiftKey || e.ctrlKey)) {
|
16905
18986
|
sorters = self.getSort();
|
16906
18987
|
|
16907
18988
|
match = sorters.findIndex(function (sorter) {
|
@@ -17030,7 +19111,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17030
19111
|
//work through sort list sorting data
|
17031
19112
|
Sort.prototype.sort = function () {
|
17032
19113
|
var self = this,
|
17033
|
-
lastSort
|
19114
|
+
lastSort,
|
19115
|
+
sortList;
|
19116
|
+
|
19117
|
+
sortList = this.table.options.sortOrderReverse ? self.sortList.slice().reverse() : self.sortList;
|
17034
19118
|
|
17035
19119
|
if (self.table.options.dataSorting) {
|
17036
19120
|
self.table.options.dataSorting.call(self.table, self.getSort());
|
@@ -17040,7 +19124,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17040
19124
|
|
17041
19125
|
if (!self.table.options.ajaxSorting) {
|
17042
19126
|
|
17043
|
-
|
19127
|
+
sortList.forEach(function (item, i) {
|
17044
19128
|
|
17045
19129
|
if (item.column && item.column.modules.sort) {
|
17046
19130
|
|
@@ -17049,13 +19133,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17049
19133
|
item.column.modules.sort.sorter = self.findSorter(item.column);
|
17050
19134
|
}
|
17051
19135
|
|
17052
|
-
self._sortItem(item.column, item.dir,
|
19136
|
+
self._sortItem(item.column, item.dir, sortList, i);
|
17053
19137
|
}
|
17054
19138
|
|
17055
19139
|
self.setColumnHeader(item.column, item.dir);
|
17056
19140
|
});
|
17057
19141
|
} else {
|
17058
|
-
|
19142
|
+
sortList.forEach(function (item, i) {
|
17059
19143
|
self.setColumnHeader(item.column, item.dir);
|
17060
19144
|
});
|
17061
19145
|
}
|
@@ -17194,72 +19278,27 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17194
19278
|
|
17195
19279
|
//sort date
|
17196
19280
|
date: function date(a, b, aRow, bRow, column, dir, params) {
|
17197
|
-
|
17198
|
-
|
17199
|
-
var alignEmptyValues = params.alignEmptyValues;
|
17200
|
-
var emptyAlign = 0;
|
17201
|
-
|
17202
|
-
if (typeof moment != "undefined") {
|
17203
|
-
a = moment(a, format);
|
17204
|
-
b = moment(b, format);
|
17205
|
-
|
17206
|
-
if (!a.isValid()) {
|
17207
|
-
emptyAlign = !b.isValid() ? 0 : -1;
|
17208
|
-
} else if (!b.isValid()) {
|
17209
|
-
emptyAlign = 1;
|
17210
|
-
} else {
|
17211
|
-
//compare valid values
|
17212
|
-
return a - b;
|
17213
|
-
}
|
17214
|
-
|
17215
|
-
//fix empty values in position
|
17216
|
-
if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
|
17217
|
-
emptyAlign *= -1;
|
17218
|
-
}
|
17219
|
-
|
17220
|
-
return emptyAlign;
|
17221
|
-
} else {
|
17222
|
-
console.error("Sort Error - 'date' sorter is dependant on moment.js");
|
19281
|
+
if (!params.format) {
|
19282
|
+
params.format = "DD/MM/YYYY";
|
17223
19283
|
}
|
19284
|
+
|
19285
|
+
return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
17224
19286
|
},
|
17225
19287
|
|
17226
19288
|
//sort hh:mm formatted times
|
17227
19289
|
time: function time(a, b, aRow, bRow, column, dir, params) {
|
17228
|
-
|
17229
|
-
|
17230
|
-
var alignEmptyValues = params.alignEmptyValues;
|
17231
|
-
var emptyAlign = 0;
|
17232
|
-
|
17233
|
-
if (typeof moment != "undefined") {
|
17234
|
-
a = moment(a, format);
|
17235
|
-
b = moment(b, format);
|
17236
|
-
|
17237
|
-
if (!a.isValid()) {
|
17238
|
-
emptyAlign = !b.isValid() ? 0 : -1;
|
17239
|
-
} else if (!b.isValid()) {
|
17240
|
-
emptyAlign = 1;
|
17241
|
-
} else {
|
17242
|
-
//compare valid values
|
17243
|
-
return a - b;
|
17244
|
-
}
|
17245
|
-
|
17246
|
-
//fix empty values in position
|
17247
|
-
if (alignEmptyValues === "top" && dir === "desc" || alignEmptyValues === "bottom" && dir === "asc") {
|
17248
|
-
emptyAlign *= -1;
|
17249
|
-
}
|
17250
|
-
|
17251
|
-
return emptyAlign;
|
17252
|
-
} else {
|
17253
|
-
console.error("Sort Error - 'date' sorter is dependant on moment.js");
|
19290
|
+
if (!params.format) {
|
19291
|
+
params.format = "hh:mm";
|
17254
19292
|
}
|
19293
|
+
|
19294
|
+
return this.sorters.datetime.call(this, a, b, aRow, bRow, column, dir, params);
|
17255
19295
|
},
|
17256
19296
|
|
17257
19297
|
//sort datetime
|
17258
19298
|
datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
|
17259
|
-
var
|
17260
|
-
|
17261
|
-
|
17262
|
-
var emptyAlign = 0;
|
19299
|
+
var format = params.format || "DD/MM/YYYY hh:mm:ss",
|
19300
|
+
alignEmptyValues = params.alignEmptyValues,
|
19301
|
+
emptyAlign = 0;
|
17263
19302
|
|
17264
19303
|
if (typeof moment != "undefined") {
|
17265
19304
|
a = moment(a, format);
|
@@ -17281,7 +19320,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17281
19320
|
|
17282
19321
|
return emptyAlign;
|
17283
19322
|
} else {
|
17284
|
-
console.error("Sort Error - '
|
19323
|
+
console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
|
17285
19324
|
}
|
17286
19325
|
},
|
17287
19326
|
|
@@ -17413,6 +19452,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17413
19452
|
};
|
17414
19453
|
|
17415
19454
|
Tabulator.prototype.registerModule("sort", Sort);
|
19455
|
+
|
17416
19456
|
var Validate = function Validate(table) {
|
17417
19457
|
this.table = table;
|
17418
19458
|
};
|
@@ -17450,7 +19490,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
17450
19490
|
|
17451
19491
|
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
|
17452
19492
|
case "string":
|
17453
|
-
parts = value.split(":",
|
19493
|
+
parts = value.split(":", 2);
|
17454
19494
|
type = parts.shift();
|
17455
19495
|
params = parts[0];
|
17456
19496
|
|