tabulator-rails 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +4 -4
- data/VERSIONS.md +1 -0
- data/lib/tabulator-rails/version.rb +1 -1
- data/vendor/assets/javascripts/tabulator.js +2256 -341
- data/vendor/assets/stylesheets/tabulator.css +27 -2
- 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: e09d2791c9a4a2cc558b7308f7907fe504230174
|
4
|
+
data.tar.gz: d4838f6293b296a720dd13db6ae90ed75a3d9015
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f741a1fb44fa629b7edf0a61ed99376e82b8a0e2cf0b4a609aff1e3b5a3dc02b4179157cfe61d9ea220285f0b17e1ae49fa7e1c83958834b1dd63d0bf37cd2e
|
7
|
+
data.tar.gz: ef226021e9f051c3369913ff2021f738c8b334edac1485f10352eb5e88bafbb433ccc3f468d5bf8a42a839b6abb8f32acfdb13ff70f27e6476c98073ea5d6263
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -26,22 +26,22 @@ Or install it yourself as:
|
|
26
26
|
$ gem install tabulator-rails
|
27
27
|
|
28
28
|
|
29
|
-
And then edit your app/assets/stylesheets/application.
|
29
|
+
And then edit your app/assets/stylesheets/application.js file to look something like:
|
30
30
|
``` css
|
31
31
|
/*
|
32
32
|
*= require_self
|
33
33
|
*= require jqeury
|
34
34
|
*= require jquery-ui
|
35
|
-
*= require tabulator
|
35
|
+
*= require tabulator
|
36
36
|
*= require_tree .
|
37
37
|
*/
|
38
38
|
```
|
39
39
|
|
40
|
-
tabulator-rails is dependant on jQuery, jQuery-UI, so make sure you have it in your Gemfile
|
40
|
+
**tabulator-rails is dependant on jQuery, jQuery-UI, so make sure you have it in your Gemfile.**
|
41
41
|
|
42
42
|
And to your app/assets/stylesheets/application.css
|
43
43
|
``` css
|
44
|
-
*= require tabulator
|
44
|
+
*= require tabulator
|
45
45
|
```
|
46
46
|
|
47
47
|
## Usage
|
data/VERSIONS.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
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; };
|
4
4
|
|
5
|
-
/* Tabulator v3.
|
5
|
+
/* Tabulator v3.4.0 (c) Oliver Folkerd */
|
6
6
|
|
7
7
|
/*
|
8
8
|
* This file is part of the Tabulator package.
|
@@ -570,9 +570,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
570
570
|
this.table.options.columnMoved(from.getComponent(), this.table.columnManager.getComponents());
|
571
571
|
}
|
572
572
|
|
573
|
-
if (this.table.options.persistentLayout && this.table.extExists("
|
573
|
+
if (this.table.options.persistentLayout && this.table.extExists("persistence", true)) {
|
574
574
|
|
575
|
-
this.table.extensions.
|
575
|
+
this.table.extensions.persistence.save("columns");
|
576
576
|
}
|
577
577
|
};
|
578
578
|
|
@@ -615,6 +615,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
615
615
|
}
|
616
616
|
};
|
617
617
|
|
618
|
+
ColumnManager.prototype.scrollToColumn = function (column) {
|
619
|
+
|
620
|
+
var left;
|
621
|
+
|
622
|
+
if (column.visible) {
|
623
|
+
|
624
|
+
left = column.element.position().left + this.element.scrollLeft() + column.element.innerWidth() - this.headersElement.innerWidth();
|
625
|
+
|
626
|
+
this.table.rowManager.scrollHorizontal(left);
|
627
|
+
|
628
|
+
this.scrollHorizontal(left);
|
629
|
+
} else {
|
630
|
+
|
631
|
+
console.warn("Scroll Error - Column not visible");
|
632
|
+
}
|
633
|
+
};
|
634
|
+
|
618
635
|
//////////////// Cell Management /////////////////
|
619
636
|
|
620
637
|
|
@@ -801,9 +818,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
801
818
|
|
802
819
|
if (force) {
|
803
820
|
|
804
|
-
if (this.table.options.persistentLayout && this.table.extExists("
|
821
|
+
if (this.table.options.persistentLayout && this.table.extExists("persistence", true)) {
|
805
822
|
|
806
|
-
this.table.extensions.
|
823
|
+
this.table.extensions.persistence.save("columns");
|
807
824
|
}
|
808
825
|
|
809
826
|
if (this.table.extExists("columnCalcs")) {
|
@@ -887,6 +904,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
887
904
|
return this.column;
|
888
905
|
};
|
889
906
|
|
907
|
+
ColumnComponent.prototype.scrollTo = function () {
|
908
|
+
|
909
|
+
this.column.table.columManager.scrollToColumn(this.column);
|
910
|
+
};
|
911
|
+
|
890
912
|
var Column = function Column(def, parent) {
|
891
913
|
|
892
914
|
var self = this;
|
@@ -1269,6 +1291,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1269
1291
|
|
1270
1292
|
self.cellEvents.cellTapHold = def.cellTapHold;
|
1271
1293
|
}
|
1294
|
+
|
1295
|
+
//setup column cell edit callbacks
|
1296
|
+
|
1297
|
+
if (typeof def.cellEdited == "function") {
|
1298
|
+
|
1299
|
+
self.cellEvents.cellEdited = def.cellEdited;
|
1300
|
+
}
|
1301
|
+
|
1302
|
+
if (typeof def.cellEditing == "function") {
|
1303
|
+
|
1304
|
+
self.cellEvents.cellEditing = def.cellEditing;
|
1305
|
+
}
|
1306
|
+
|
1307
|
+
if (typeof def.cellEditCancelled == "function") {
|
1308
|
+
|
1309
|
+
self.cellEvents.cellEditCancelled = def.cellEditCancelled;
|
1310
|
+
}
|
1272
1311
|
};
|
1273
1312
|
|
1274
1313
|
//build header element for header
|
@@ -1556,12 +1595,15 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1556
1595
|
|
1557
1596
|
Column.prototype.verticalAlign = function (alignment) {
|
1558
1597
|
|
1559
|
-
|
1598
|
+
//calculate height of column header and group holder element
|
1560
1599
|
|
1561
|
-
|
1562
|
-
|
1600
|
+
var parentHeight = this.parent.isGroup ? this.parent.getGroupElement().innerHeight() : this.parent.getHeadersElement().innerHeight();
|
1601
|
+
|
1602
|
+
this.element.css("height", parentHeight);
|
1603
|
+
|
1604
|
+
if (this.isGroup) {
|
1563
1605
|
|
1564
|
-
this.
|
1606
|
+
this.groupElement.css("min-height", parentHeight - this.contentElement.outerHeight());
|
1565
1607
|
}
|
1566
1608
|
|
1567
1609
|
//vertically align cell contents
|
@@ -1591,6 +1633,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1591
1633
|
|
1592
1634
|
this.element.css("height", "");
|
1593
1635
|
|
1636
|
+
this.element.css("min-height", "");
|
1637
|
+
|
1594
1638
|
this.columns.forEach(function (column) {
|
1595
1639
|
|
1596
1640
|
column.clearVerticalAlign();
|
@@ -1757,9 +1801,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1757
1801
|
cell.show();
|
1758
1802
|
});
|
1759
1803
|
|
1760
|
-
if (this.table.options.persistentLayout && this.table.extExists("
|
1804
|
+
if (this.table.options.persistentLayout && this.table.extExists("persistence", true)) {
|
1761
1805
|
|
1762
|
-
this.table.extensions.
|
1806
|
+
this.table.extensions.persistence.save("columns");
|
1763
1807
|
}
|
1764
1808
|
|
1765
1809
|
this.table.options.groupVisibilityChanged(this.getComponent(), true);
|
@@ -1792,9 +1836,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1792
1836
|
cell.hide();
|
1793
1837
|
});
|
1794
1838
|
|
1795
|
-
if (this.table.options.persistentLayout && this.table.extExists("
|
1839
|
+
if (this.table.options.persistentLayout && this.table.extExists("persistence", true)) {
|
1796
1840
|
|
1797
|
-
this.table.extensions.
|
1841
|
+
this.table.extensions.persistence.save("columns");
|
1798
1842
|
}
|
1799
1843
|
|
1800
1844
|
this.table.options.groupVisibilityChanged(this.getComponent(), false);
|
@@ -1928,18 +1972,32 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
1928
1972
|
return cell;
|
1929
1973
|
};
|
1930
1974
|
|
1931
|
-
Column.prototype.reinitializeWidth = function () {
|
1975
|
+
Column.prototype.reinitializeWidth = function (force) {
|
1932
1976
|
|
1933
1977
|
this.widthFixed = false;
|
1934
1978
|
|
1935
1979
|
//set width if present
|
1936
1980
|
|
1937
|
-
if (typeof this.definition.width !== "undefined") {
|
1981
|
+
if (typeof this.definition.width !== "undefined" && !force) {
|
1938
1982
|
|
1939
1983
|
this.setWidth(this.definition.width);
|
1940
1984
|
}
|
1941
1985
|
|
1986
|
+
//hide header filters to prevent them altering column width
|
1987
|
+
|
1988
|
+
if (this.table.extExists("filter")) {
|
1989
|
+
|
1990
|
+
this.table.extensions.filter.hideHeaderFilterElements();
|
1991
|
+
}
|
1992
|
+
|
1942
1993
|
this.fitToData();
|
1994
|
+
|
1995
|
+
//show header filters again after layout is complete
|
1996
|
+
|
1997
|
+
if (this.table.extExists("filter")) {
|
1998
|
+
|
1999
|
+
this.table.extensions.filter.showHeaderFilterElements();
|
2000
|
+
}
|
1943
2001
|
};
|
1944
2002
|
|
1945
2003
|
//set column width to maximum cell width
|
@@ -2087,6 +2145,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2087
2145
|
return this.tableElement;
|
2088
2146
|
};
|
2089
2147
|
|
2148
|
+
//return position of row in table
|
2149
|
+
|
2150
|
+
RowManager.prototype.getRowPosition = function (row, active) {
|
2151
|
+
|
2152
|
+
if (active) {
|
2153
|
+
|
2154
|
+
return this.activeRows.indexOf(row);
|
2155
|
+
} else {
|
2156
|
+
|
2157
|
+
return this.rows.indexOf(row);
|
2158
|
+
}
|
2159
|
+
};
|
2160
|
+
|
2090
2161
|
//link to column manager
|
2091
2162
|
|
2092
2163
|
RowManager.prototype.setColumnManager = function (manager) {
|
@@ -2132,7 +2203,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2132
2203
|
|
2133
2204
|
//handle virtual dom scrolling
|
2134
2205
|
|
2135
|
-
if (self.table.options.
|
2206
|
+
if (self.table.options.virtualDom) {
|
2136
2207
|
|
2137
2208
|
self.element.scroll(function () {
|
2138
2209
|
|
@@ -2203,6 +2274,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2203
2274
|
return false;
|
2204
2275
|
};
|
2205
2276
|
|
2277
|
+
RowManager.prototype.getRowFromPosition = function (position, active) {
|
2278
|
+
|
2279
|
+
if (active) {
|
2280
|
+
|
2281
|
+
return this.activeRows[position];
|
2282
|
+
} else {
|
2283
|
+
|
2284
|
+
return this.rows[position];
|
2285
|
+
}
|
2286
|
+
};
|
2287
|
+
|
2206
2288
|
RowManager.prototype.scrollToRow = function (row) {
|
2207
2289
|
|
2208
2290
|
var rowIndex;
|
@@ -2241,6 +2323,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2241
2323
|
|
2242
2324
|
self.table.options.dataLoading(data);
|
2243
2325
|
|
2326
|
+
self.rows.forEach(function (row) {
|
2327
|
+
|
2328
|
+
row.wipe();
|
2329
|
+
});
|
2330
|
+
|
2244
2331
|
self.rows = [];
|
2245
2332
|
|
2246
2333
|
if (this.table.options.history && this.table.extExists("history")) {
|
@@ -2305,13 +2392,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2305
2392
|
this.refreshActiveData();
|
2306
2393
|
} else {
|
2307
2394
|
|
2308
|
-
this.
|
2395
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
2396
|
+
|
2397
|
+
this.table.extensions.groupRows.updateGroupRows(true);
|
2398
|
+
} else {
|
2399
|
+
|
2400
|
+
this.reRenderInPosition();
|
2401
|
+
}
|
2309
2402
|
}
|
2310
2403
|
};
|
2311
2404
|
|
2312
|
-
RowManager.prototype.addRow = function (data, pos, index) {
|
2405
|
+
RowManager.prototype.addRow = function (data, pos, index, blockRedraw) {
|
2313
2406
|
|
2314
|
-
var row = this.addRowActual(data, pos, index);
|
2407
|
+
var row = this.addRowActual(data, pos, index, blockRedraw);
|
2315
2408
|
|
2316
2409
|
if (this.table.options.history && this.table.extExists("history")) {
|
2317
2410
|
|
@@ -2326,6 +2419,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2326
2419
|
RowManager.prototype.addRows = function (data, pos, index) {
|
2327
2420
|
|
2328
2421
|
var self = this,
|
2422
|
+
length = 0,
|
2329
2423
|
rows = [];
|
2330
2424
|
|
2331
2425
|
pos = this.findAddRowPos(pos);
|
@@ -2335,18 +2429,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2335
2429
|
data = [data];
|
2336
2430
|
}
|
2337
2431
|
|
2432
|
+
length = data.length - 1;
|
2433
|
+
|
2338
2434
|
if (typeof index == "undefined" && pos || typeof index !== "undefined" && !pos) {
|
2339
2435
|
|
2340
2436
|
data.reverse();
|
2341
2437
|
}
|
2342
2438
|
|
2343
|
-
data.forEach(function (item) {
|
2439
|
+
data.forEach(function (item, i) {
|
2344
2440
|
|
2345
|
-
var row = self.addRow(item, pos, index);
|
2441
|
+
var row = self.addRow(item, pos, index, true);
|
2346
2442
|
|
2347
2443
|
rows.push(row.getComponent());
|
2348
2444
|
});
|
2349
2445
|
|
2446
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
2447
|
+
|
2448
|
+
this.table.extensions.groupRows.updateGroupRows(true);
|
2449
|
+
} else {
|
2450
|
+
|
2451
|
+
this.reRenderInPosition();
|
2452
|
+
}
|
2453
|
+
|
2454
|
+
//recalc column calculations if present
|
2455
|
+
|
2456
|
+
if (this.table.extExists("columnCalcs")) {
|
2457
|
+
|
2458
|
+
this.table.extensions.columnCalcs.recalc(this.table.rowManager.displayRows);
|
2459
|
+
}
|
2460
|
+
|
2350
2461
|
return rows;
|
2351
2462
|
};
|
2352
2463
|
|
@@ -2370,10 +2481,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2370
2481
|
return pos;
|
2371
2482
|
};
|
2372
2483
|
|
2373
|
-
RowManager.prototype.addRowActual = function (data, pos, index) {
|
2484
|
+
RowManager.prototype.addRowActual = function (data, pos, index, blockRedraw) {
|
2374
2485
|
|
2375
|
-
var
|
2376
|
-
row = new Row(safeData, this),
|
2486
|
+
var row = new Row(data || {}, this),
|
2377
2487
|
top = this.findAddRowPos(pos);
|
2378
2488
|
|
2379
2489
|
if (index) {
|
@@ -2381,6 +2491,40 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2381
2491
|
index = this.findRow(index);
|
2382
2492
|
}
|
2383
2493
|
|
2494
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
2495
|
+
|
2496
|
+
this.table.extensions.groupRows.assignRowToGroup(row);
|
2497
|
+
|
2498
|
+
var groupRows = row.getGroup().rows;
|
2499
|
+
|
2500
|
+
if (groupRows.length > 1) {
|
2501
|
+
|
2502
|
+
if (!index || index && groupRows.indexOf(index) == -1) {
|
2503
|
+
|
2504
|
+
if (top) {
|
2505
|
+
|
2506
|
+
if (groupRows[0] !== row) {
|
2507
|
+
|
2508
|
+
index = groupRows[0];
|
2509
|
+
|
2510
|
+
this._moveRowInArray(row.getGroup().rows, row, index, top);
|
2511
|
+
}
|
2512
|
+
} else {
|
2513
|
+
|
2514
|
+
if (groupRows[groupRows.length - 1] !== row) {
|
2515
|
+
|
2516
|
+
index = groupRows[groupRows.length - 1];
|
2517
|
+
|
2518
|
+
this._moveRowInArray(row.getGroup().rows, row, index, top);
|
2519
|
+
}
|
2520
|
+
}
|
2521
|
+
} else {
|
2522
|
+
|
2523
|
+
this._moveRowInArray(row.getGroup().rows, row, index, top);
|
2524
|
+
}
|
2525
|
+
}
|
2526
|
+
};
|
2527
|
+
|
2384
2528
|
if (index) {
|
2385
2529
|
|
2386
2530
|
var allIndex = this.rows.indexOf(index),
|
@@ -2428,63 +2572,98 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2428
2572
|
|
2429
2573
|
this.table.options.dataEdited(this.getData());
|
2430
2574
|
|
2431
|
-
|
2575
|
+
if (!blockRedraw) {
|
2576
|
+
|
2577
|
+
this.reRenderInPosition();
|
2578
|
+
}
|
2432
2579
|
|
2433
2580
|
return row;
|
2434
2581
|
};
|
2435
2582
|
|
2436
2583
|
RowManager.prototype.moveRow = function (from, to, after) {
|
2437
2584
|
|
2585
|
+
if (this.table.options.history && this.table.extExists("history")) {
|
2586
|
+
|
2587
|
+
this.table.extensions.history.action("rowMoved", from, { pos: this.getRowPosition(from), to: to, after: after });
|
2588
|
+
};
|
2589
|
+
|
2590
|
+
this.moveRowActual(from, to, after);
|
2591
|
+
|
2592
|
+
this.table.options.rowMoved(from.getComponent());
|
2593
|
+
};
|
2594
|
+
|
2595
|
+
RowManager.prototype.moveRowActual = function (from, to, after) {
|
2596
|
+
|
2438
2597
|
this._moveRowInArray(this.rows, from, to, after);
|
2439
2598
|
|
2440
2599
|
this._moveRowInArray(this.activeRows, from, to, after);
|
2441
2600
|
|
2442
2601
|
this._moveRowInArray(this.displayRows, from, to, after);
|
2443
2602
|
|
2444
|
-
this.table.options.
|
2603
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
2604
|
+
|
2605
|
+
var toGroup = to.getGroup();
|
2606
|
+
|
2607
|
+
var fromGroup = from.getGroup();
|
2608
|
+
|
2609
|
+
if (toGroup === fromGroup) {
|
2610
|
+
|
2611
|
+
this._moveRowInArray(toGroup.rows, from, to, after);
|
2612
|
+
} else {
|
2613
|
+
|
2614
|
+
if (fromGroup) {
|
2615
|
+
|
2616
|
+
fromGroup.removeRow(from);
|
2617
|
+
}
|
2618
|
+
|
2619
|
+
toGroup.insertRow(from, to, after);
|
2620
|
+
}
|
2621
|
+
}
|
2445
2622
|
};
|
2446
2623
|
|
2447
2624
|
RowManager.prototype._moveRowInArray = function (rows, from, to, after) {
|
2448
2625
|
|
2449
|
-
var fromIndex
|
2450
|
-
toIndex,
|
2451
|
-
start,
|
2452
|
-
end;
|
2626
|
+
var fromIndex, toIndex, start, end;
|
2453
2627
|
|
2454
|
-
if (
|
2628
|
+
if (from !== to) {
|
2455
2629
|
|
2456
|
-
rows.
|
2630
|
+
fromIndex = rows.indexOf(from);
|
2457
2631
|
|
2458
|
-
|
2632
|
+
if (fromIndex > -1) {
|
2459
2633
|
|
2460
|
-
|
2634
|
+
rows.splice(fromIndex, 1);
|
2461
2635
|
|
2462
|
-
|
2636
|
+
toIndex = rows.indexOf(to);
|
2637
|
+
|
2638
|
+
if (toIndex > -1) {
|
2639
|
+
|
2640
|
+
if (after) {
|
2463
2641
|
|
2464
|
-
|
2642
|
+
rows.splice(toIndex + 1, 0, from);
|
2643
|
+
} else {
|
2644
|
+
|
2645
|
+
rows.splice(toIndex, 0, from);
|
2646
|
+
}
|
2465
2647
|
} else {
|
2466
2648
|
|
2467
|
-
rows.splice(
|
2649
|
+
rows.splice(fromIndex, 0, from);
|
2468
2650
|
}
|
2469
|
-
} else {
|
2470
|
-
|
2471
|
-
rows.splice(fromIndex, 0, from);
|
2472
2651
|
}
|
2473
|
-
}
|
2474
2652
|
|
2475
|
-
|
2653
|
+
//restyle rows
|
2476
2654
|
|
2477
|
-
|
2655
|
+
if (rows === this.displayRows) {
|
2478
2656
|
|
2479
|
-
|
2657
|
+
start = fromIndex < toIndex ? fromIndex : toIndex;
|
2480
2658
|
|
2481
|
-
|
2659
|
+
end = toIndex > fromIndex ? toIndex : fromIndex + 1;
|
2482
2660
|
|
2483
|
-
|
2661
|
+
for (var i = start; i <= end; i++) {
|
2484
2662
|
|
2485
|
-
|
2663
|
+
if (rows[i]) {
|
2486
2664
|
|
2487
|
-
|
2665
|
+
this.styleRow(rows[i], i);
|
2666
|
+
}
|
2488
2667
|
}
|
2489
2668
|
}
|
2490
2669
|
}
|
@@ -2579,7 +2758,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2579
2758
|
|
2580
2759
|
var def = column.getDefinition();
|
2581
2760
|
|
2582
|
-
if (column.getVisibility()) {
|
2761
|
+
if (column.getVisibility() && !def.hideInHtml) {
|
2583
2762
|
|
2584
2763
|
header += '<th>' + (def.title || "") + '</th>';
|
2585
2764
|
}
|
@@ -2812,6 +2991,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2812
2991
|
if (self.element.is(":visible")) {
|
2813
2992
|
|
2814
2993
|
self.renderTable();
|
2994
|
+
|
2995
|
+
if (table.options.layoutColumnsOnNewData) {
|
2996
|
+
|
2997
|
+
self.table.columnManager.redraw(true);
|
2998
|
+
}
|
2815
2999
|
}
|
2816
3000
|
|
2817
3001
|
if (table.extExists("columnCalcs")) {
|
@@ -2831,6 +3015,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2831
3015
|
|
2832
3016
|
this.displayRows = displayRows;
|
2833
3017
|
|
3018
|
+
if (this.table.extExists("frozenRows")) {
|
3019
|
+
|
3020
|
+
this.table.extensions.frozenRows.filterFrozenRows();
|
3021
|
+
}
|
3022
|
+
|
2834
3023
|
this.displayRowsCount = this.displayRows.length;
|
2835
3024
|
};
|
2836
3025
|
|
@@ -2844,6 +3033,40 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2844
3033
|
///////////////// Table Rendering /////////////////
|
2845
3034
|
|
2846
3035
|
|
3036
|
+
//trigger rerender of table in current position
|
3037
|
+
|
3038
|
+
RowManager.prototype.reRenderInPosition = function (rowCount) {
|
3039
|
+
|
3040
|
+
if (this.getRenderMode() == "virtual") {
|
3041
|
+
|
3042
|
+
var scrollTop = this.element.scrollTop();
|
3043
|
+
|
3044
|
+
var topRow = false;
|
3045
|
+
|
3046
|
+
var topOffset = false;
|
3047
|
+
|
3048
|
+
for (var i = this.vDomTop; i <= this.vDomBottom; i++) {
|
3049
|
+
|
3050
|
+
if (this.displayRows[i]) {
|
3051
|
+
|
3052
|
+
var diff = scrollTop - this.displayRows[i].getElement().position().top;
|
3053
|
+
|
3054
|
+
if (topOffset === false || Math.abs(diff) < topOffset) {
|
3055
|
+
|
3056
|
+
topOffset = diff;
|
3057
|
+
|
3058
|
+
topRow = i;
|
3059
|
+
}
|
3060
|
+
}
|
3061
|
+
}
|
3062
|
+
|
3063
|
+
this._virtualRenderFill(topRow === false ? this.displayRows.length - 1 : topRow, true, topOffset || 0);
|
3064
|
+
} else {
|
3065
|
+
|
3066
|
+
this.renderTable();
|
3067
|
+
}
|
3068
|
+
};
|
3069
|
+
|
2847
3070
|
RowManager.prototype.renderTable = function () {
|
2848
3071
|
|
2849
3072
|
var self = this;
|
@@ -2991,7 +3214,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
2991
3214
|
|
2992
3215
|
//full virtual render
|
2993
3216
|
|
2994
|
-
RowManager.prototype._virtualRenderFill = function (position, forceMove) {
|
3217
|
+
RowManager.prototype._virtualRenderFill = function (position, forceMove, offset) {
|
2995
3218
|
|
2996
3219
|
var self = this,
|
2997
3220
|
element = self.tableElement,
|
@@ -3083,7 +3306,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3083
3306
|
self.vDomScrollHeight = topPadHeight + rowsHeight + self.vDomBottomPad - self.height;
|
3084
3307
|
} else {
|
3085
3308
|
|
3086
|
-
self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop +
|
3309
|
+
self.vDomTopPad = !forceMove ? self.scrollTop - topPadHeight : self.vDomRowHeight * this.vDomTop + offset;
|
3087
3310
|
|
3088
3311
|
self.vDomBottomPad = self.vDomBottom == self.displayRowsCount - 1 ? 0 : Math.max(self.vDomScrollHeight - self.vDomTopPad - rowsHeight - topPadHeight, 0);
|
3089
3312
|
}
|
@@ -3094,7 +3317,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3094
3317
|
|
3095
3318
|
if (forceMove) {
|
3096
3319
|
|
3097
|
-
this.scrollTop = self.vDomTopPad + topPadHeight;
|
3320
|
+
this.scrollTop = self.vDomTopPad + topPadHeight + offset;
|
3098
3321
|
}
|
3099
3322
|
|
3100
3323
|
this.scrollTop = Math.min(this.scrollTop, this.element[0].scrollHeight - this.height);
|
@@ -3222,7 +3445,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3222
3445
|
|
3223
3446
|
if (this.vDomTopPad < 0) {
|
3224
3447
|
|
3225
|
-
this.vDomTopPad =
|
3448
|
+
this.vDomTopPad = index * this.vDomRowHeight;
|
3449
|
+
}
|
3450
|
+
|
3451
|
+
if (!index) {
|
3452
|
+
|
3453
|
+
this.vDomTopPad = 0;
|
3226
3454
|
}
|
3227
3455
|
|
3228
3456
|
table[0].style.paddingTop = this.vDomTopPad + "px";
|
@@ -3388,24 +3616,21 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3388
3616
|
|
3389
3617
|
var self = this;
|
3390
3618
|
|
3391
|
-
|
3392
|
-
|
3393
|
-
var otherHeigt = self.columnManager.getElement().outerHeight() + (self.table.footerManager ? self.table.footerManager.getElement().outerHeight() : 0);
|
3619
|
+
var otherHeight = self.columnManager.getElement().outerHeight() + (self.table.footerManager ? self.table.footerManager.getElement().outerHeight() : 0);
|
3394
3620
|
|
3395
|
-
|
3621
|
+
self.element.css({
|
3396
3622
|
|
3397
|
-
|
3623
|
+
"min-height": "calc(100% - " + otherHeight + "px)",
|
3398
3624
|
|
3399
|
-
|
3625
|
+
"height": "calc(100% - " + otherHeight + "px)",
|
3400
3626
|
|
3401
|
-
|
3627
|
+
"max-height": "calc(100% - " + otherHeight + "px)"
|
3402
3628
|
|
3403
|
-
|
3629
|
+
});
|
3404
3630
|
|
3405
|
-
|
3631
|
+
self.height = self.element.innerHeight();
|
3406
3632
|
|
3407
|
-
|
3408
|
-
}
|
3633
|
+
self.vDomWindowBuffer = self.table.options.virtualDomBuffer || self.height;
|
3409
3634
|
};
|
3410
3635
|
|
3411
3636
|
//renitialize all rows
|
@@ -3422,7 +3647,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3422
3647
|
|
3423
3648
|
RowManager.prototype.redraw = function (force) {
|
3424
3649
|
|
3425
|
-
var pos = 0
|
3650
|
+
var pos = 0,
|
3651
|
+
left = this.scrollLeft;
|
3426
3652
|
|
3427
3653
|
if (this.renderMode == "virtual") {
|
3428
3654
|
|
@@ -3439,6 +3665,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3439
3665
|
var pos = Math.floor(this.element.scrollTop() / this.element[0].scrollHeight * this.displayRowsCount);
|
3440
3666
|
|
3441
3667
|
this._virtualRenderFill(pos);
|
3668
|
+
|
3669
|
+
this.scrollHorizontal(left);
|
3442
3670
|
}
|
3443
3671
|
|
3444
3672
|
if (!this.displayRowsCount) {
|
@@ -3502,6 +3730,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3502
3730
|
return this.row.getData(true)[this.row.table.options.index];
|
3503
3731
|
};
|
3504
3732
|
|
3733
|
+
RowComponent.prototype.getPosition = function (active) {
|
3734
|
+
|
3735
|
+
return this.row.table.rowManager.getRowPosition(this.row, active);
|
3736
|
+
};
|
3737
|
+
|
3505
3738
|
RowComponent.prototype.delete = function () {
|
3506
3739
|
|
3507
3740
|
this.row.delete();
|
@@ -3542,6 +3775,32 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3542
3775
|
return this.row;
|
3543
3776
|
};
|
3544
3777
|
|
3778
|
+
RowComponent.prototype.freeze = function () {
|
3779
|
+
|
3780
|
+
if (this.row.table.extExists("frozenRows", true)) {
|
3781
|
+
|
3782
|
+
this.row.table.extensions.frozenRows.freezeRow(this.row);
|
3783
|
+
}
|
3784
|
+
};
|
3785
|
+
|
3786
|
+
RowComponent.prototype.unfreeze = function () {
|
3787
|
+
|
3788
|
+
if (this.row.table.extExists("frozenRows", true)) {
|
3789
|
+
|
3790
|
+
this.row.table.extensions.frozenRows.unfreezeRow(this.row);
|
3791
|
+
}
|
3792
|
+
};
|
3793
|
+
|
3794
|
+
RowComponent.prototype.reformat = function () {
|
3795
|
+
|
3796
|
+
return this.row.reinitialize();
|
3797
|
+
};
|
3798
|
+
|
3799
|
+
RowComponent.prototype.getGroup = function () {
|
3800
|
+
|
3801
|
+
return this.row.getGroup().getComponent();
|
3802
|
+
};
|
3803
|
+
|
3545
3804
|
var Row = function Row(data, parent) {
|
3546
3805
|
|
3547
3806
|
this.table = parent.table;
|
@@ -3739,6 +3998,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3739
3998
|
self.table.options.rowFormatter(self.getComponent());
|
3740
3999
|
}
|
3741
4000
|
|
4001
|
+
//set resizable handles
|
4002
|
+
|
4003
|
+
if (self.table.options.resizableRows && self.table.extExists("resizeRows")) {
|
4004
|
+
|
4005
|
+
self.table.extensions.resizeRows.initializeRow(self);
|
4006
|
+
}
|
4007
|
+
|
3742
4008
|
self.initialized = true;
|
3743
4009
|
}
|
3744
4010
|
};
|
@@ -3812,6 +4078,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3812
4078
|
this.setCellHeight();
|
3813
4079
|
};
|
3814
4080
|
|
4081
|
+
Row.prototype.setHeight = function (height) {
|
4082
|
+
|
4083
|
+
this.height = height;
|
4084
|
+
|
4085
|
+
this.setCellHeight();
|
4086
|
+
};
|
4087
|
+
|
3815
4088
|
//set height of rows
|
3816
4089
|
|
3817
4090
|
Row.prototype.setHeight = function (height, force) {
|
@@ -3877,6 +4150,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
3877
4150
|
|
3878
4151
|
var self = this;
|
3879
4152
|
|
4153
|
+
if (typeof data === "string") {
|
4154
|
+
|
4155
|
+
data = JSON.parse(data);
|
4156
|
+
}
|
4157
|
+
|
3880
4158
|
//mutate incomming data if needed
|
3881
4159
|
|
3882
4160
|
if (self.table.extExists("mutator")) {
|
@@ -4033,6 +4311,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4033
4311
|
|
4034
4312
|
var index = this.table.rowManager.getRowIndex(this);
|
4035
4313
|
|
4314
|
+
//deselect row if it is selected
|
4315
|
+
|
4316
|
+
if (this.table.extExists("selectRow")) {
|
4317
|
+
|
4318
|
+
this.table.extensions.selectRow._deselectRow(this.row, true);
|
4319
|
+
}
|
4320
|
+
|
4036
4321
|
this.deleteActual();
|
4037
4322
|
|
4038
4323
|
if (this.table.options.history && this.table.extExists("history")) {
|
@@ -4044,6 +4329,26 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4044
4329
|
|
4045
4330
|
this.table.extensions.history.action("rowDelete", this, { data: this.getData(), pos: !index, index: index });
|
4046
4331
|
};
|
4332
|
+
|
4333
|
+
//remove from group
|
4334
|
+
|
4335
|
+
if (this.extensions.group) {
|
4336
|
+
|
4337
|
+
this.extensions.group.removeRow(this);
|
4338
|
+
}
|
4339
|
+
|
4340
|
+
//recalc column calculations if present
|
4341
|
+
|
4342
|
+
if (this.table.extExists("columnCalcs")) {
|
4343
|
+
|
4344
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
4345
|
+
|
4346
|
+
this.table.extensions.columnCalcs.recalcRowGroup(this);
|
4347
|
+
} else {
|
4348
|
+
|
4349
|
+
this.table.extensions.columnCalcs.recalc(this.table.rowManager.displayRows);
|
4350
|
+
}
|
4351
|
+
}
|
4047
4352
|
};
|
4048
4353
|
|
4049
4354
|
Row.prototype.deleteActual = function () {
|
@@ -4063,6 +4368,20 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4063
4368
|
}
|
4064
4369
|
};
|
4065
4370
|
|
4371
|
+
Row.prototype.wipe = function () {
|
4372
|
+
|
4373
|
+
this.deleteCells();
|
4374
|
+
|
4375
|
+
this.element.empty();
|
4376
|
+
|
4377
|
+
this.element.remove();
|
4378
|
+
};
|
4379
|
+
|
4380
|
+
Row.prototype.getGroup = function () {
|
4381
|
+
|
4382
|
+
return this.extensions.group || false;
|
4383
|
+
};
|
4384
|
+
|
4066
4385
|
//////////////// Object Generation /////////////////
|
4067
4386
|
|
4068
4387
|
Row.prototype.getComponent = function () {
|
@@ -4127,9 +4446,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4127
4446
|
this.cell.setValueActual(this.cell.getOldValue());
|
4128
4447
|
};
|
4129
4448
|
|
4130
|
-
CellComponent.prototype.edit = function () {
|
4449
|
+
CellComponent.prototype.edit = function (force) {
|
4450
|
+
|
4451
|
+
return this.cell.edit(force);
|
4452
|
+
};
|
4453
|
+
|
4454
|
+
CellComponent.prototype.cancelEdit = function () {
|
4131
4455
|
|
4132
|
-
this.cell.
|
4456
|
+
this.cell.cancelEdit(force);
|
4133
4457
|
};
|
4134
4458
|
|
4135
4459
|
CellComponent.prototype.nav = function () {
|
@@ -4402,7 +4726,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4402
4726
|
|
4403
4727
|
Cell.prototype.setValue = function (value, mutate) {
|
4404
4728
|
|
4405
|
-
var changed = this.setValueProcessData(value, mutate)
|
4729
|
+
var changed = this.setValueProcessData(value, mutate),
|
4730
|
+
component;
|
4406
4731
|
|
4407
4732
|
if (changed) {
|
4408
4733
|
|
@@ -4411,7 +4736,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4411
4736
|
this.table.extensions.history.action("cellEdit", this, { oldValue: this.oldValue, newValue: this.value });
|
4412
4737
|
};
|
4413
4738
|
|
4414
|
-
this.
|
4739
|
+
component = this.getComponent();
|
4740
|
+
|
4741
|
+
if (this.column.cellEvents.cellEdited) {
|
4742
|
+
|
4743
|
+
this.column.cellEvents.cellEdited(component);
|
4744
|
+
}
|
4745
|
+
|
4746
|
+
this.table.options.cellEdited(component);
|
4415
4747
|
|
4416
4748
|
this.table.options.dataEdited(this.table.rowManager.getData());
|
4417
4749
|
}
|
@@ -4535,9 +4867,28 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4535
4867
|
this.element[0].style.display = "none";
|
4536
4868
|
};
|
4537
4869
|
|
4538
|
-
Cell.prototype.edit = function () {
|
4870
|
+
Cell.prototype.edit = function (force) {
|
4871
|
+
|
4872
|
+
if (this.table.extExists("edit", true)) {
|
4873
|
+
|
4874
|
+
return this.table.extensions.edit.edit(this, false, force);
|
4875
|
+
}
|
4876
|
+
};
|
4877
|
+
|
4878
|
+
Cell.prototype.cancelEdit = function () {
|
4879
|
+
|
4880
|
+
if (this.table.extExists("edit", true)) {
|
4881
|
+
|
4882
|
+
var editing = this.table.extensions.edit.getCurrentCell();
|
4539
4883
|
|
4540
|
-
|
4884
|
+
if (editing && editing._getSelf() === this) {
|
4885
|
+
|
4886
|
+
this.table.extensions.edit.cancelEdit();
|
4887
|
+
} else {
|
4888
|
+
|
4889
|
+
console.warn("Cancel Editor Error - This cell is not currently being edited ");
|
4890
|
+
}
|
4891
|
+
}
|
4541
4892
|
};
|
4542
4893
|
|
4543
4894
|
Cell.prototype.delete = function () {
|
@@ -4791,6 +5142,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4791
5142
|
|
4792
5143
|
layout: "fitData", ///layout type "fitColumns" | "fitData"
|
4793
5144
|
|
5145
|
+
layoutColumnsOnNewData: false, //update column widths on setData
|
5146
|
+
|
4794
5147
|
fitColumns: false, //DEPRICATED - fit colums to width of screen;
|
4795
5148
|
|
4796
5149
|
|
@@ -4801,6 +5154,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4801
5154
|
|
4802
5155
|
resizableColumns: true, //resizable columns
|
4803
5156
|
|
5157
|
+
resizableRows: true, //resizable rows
|
5158
|
+
|
5159
|
+
autoResize: true, //auto resize table
|
5160
|
+
|
4804
5161
|
|
4805
5162
|
columns: [], //store for colum header info
|
4806
5163
|
|
@@ -4855,9 +5212,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4855
5212
|
virtualDom: true, //enable DOM virtualization
|
4856
5213
|
|
4857
5214
|
|
4858
|
-
persistentLayout: false, //store
|
5215
|
+
persistentLayout: false, //store column layout in memory
|
4859
5216
|
|
4860
|
-
|
5217
|
+
persistentSort: false, //store sorting in memory
|
5218
|
+
|
5219
|
+
persistentFilter: false, //store filters in memory
|
5220
|
+
|
5221
|
+
persistenceID: "", //key for persistent storage
|
5222
|
+
|
5223
|
+
persistenceMode: true, //mode for storing persistence information
|
5224
|
+
|
5225
|
+
persistentLayoutID: "", //DEPRICATED - key for persistent storage;
|
4861
5226
|
|
4862
5227
|
|
4863
5228
|
responsiveLayout: false, //responsive layout flags
|
@@ -4949,6 +5314,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
4949
5314
|
|
4950
5315
|
rowDeselected: function rowDeselected() {},
|
4951
5316
|
|
5317
|
+
rowResized: function rowResized() {},
|
5318
|
+
|
4952
5319
|
//cell callbacks
|
4953
5320
|
|
4954
5321
|
cellEditing: function cellEditing() {},
|
@@ -5035,7 +5402,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5035
5402
|
|
5036
5403
|
//validation has failed
|
5037
5404
|
|
5038
|
-
validationFailed: function validationFailed() {}
|
5405
|
+
validationFailed: function validationFailed() {},
|
5406
|
+
|
5407
|
+
//history callbacks
|
5408
|
+
|
5409
|
+
historyUndo: function historyUndo() {},
|
5410
|
+
|
5411
|
+
historyRedo: function historyRedo() {}
|
5039
5412
|
|
5040
5413
|
},
|
5041
5414
|
|
@@ -5049,6 +5422,22 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5049
5422
|
|
5050
5423
|
console.warn("The%c fitColumns:true%c option has been depricated and will be removed in version 4.0, use %c layout:'fitColumns'%c instead.", "font-weight:bold;", "font-weight:regular;", "font-weight:bold;", "font-weight:regular;");
|
5051
5424
|
}
|
5425
|
+
|
5426
|
+
if (this.options.persistentLayoutID) {
|
5427
|
+
|
5428
|
+
this.options.persistenceID = this.options.persistentLayoutID;
|
5429
|
+
|
5430
|
+
console.warn("The%c persistentLayoutID%c option has been depricated and will be removed in version 4.0, use %c persistenceID%c instead.", "font-weight:bold;", "font-weight:regular;", "font-weight:bold;", "font-weight:regular;");
|
5431
|
+
}
|
5432
|
+
|
5433
|
+
if (this.options.persistentLayout === "cookie" || this.options.persistentLayout === "local") {
|
5434
|
+
|
5435
|
+
this.options.persistenceMode = this.options.persistentLayout;
|
5436
|
+
|
5437
|
+
this.options.persistentLayout = true;
|
5438
|
+
|
5439
|
+
console.warn("Setting the persistent storage mode on the%c persistentLayout%c option has been depricated and will be removed in version 4.0, use %c persistenceMode%c instead.", "font-weight:bold;", "font-weight:regular;", "font-weight:bold;", "font-weight:regular;");
|
5440
|
+
}
|
5052
5441
|
},
|
5053
5442
|
|
5054
5443
|
//constructor
|
@@ -5167,11 +5556,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5167
5556
|
this.footerManager.activate();
|
5168
5557
|
}
|
5169
5558
|
|
5170
|
-
if (options.persistentLayout && this.extExists("
|
5559
|
+
if ((options.persistentLayout || options.persistentSort || options.persistentFilter) && this.extExists("persistence", true)) {
|
5560
|
+
|
5561
|
+
ext.persistence.initialize(options.persistenceMode, options.persistenceID);
|
5562
|
+
}
|
5171
5563
|
|
5172
|
-
|
5564
|
+
if (options.persistentLayout && this.extExists("persistence", true)) {
|
5173
5565
|
|
5174
|
-
options.columns = ext.
|
5566
|
+
options.columns = ext.persistence.load("columns", options.columns);
|
5175
5567
|
}
|
5176
5568
|
|
5177
5569
|
if (this.extExists("columnCalcs")) {
|
@@ -5181,9 +5573,39 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5181
5573
|
|
5182
5574
|
this.columnManager.setColumns(options.columns);
|
5183
5575
|
|
5184
|
-
if (
|
5576
|
+
if (this.extExists("frozenRows")) {
|
5577
|
+
|
5578
|
+
this.extensions.frozenRows.initialize();
|
5579
|
+
}
|
5580
|
+
|
5581
|
+
if ((options.persistentSort || options.initialSort) && this.extExists("sort", true)) {
|
5582
|
+
|
5583
|
+
var sorters = [];
|
5584
|
+
|
5585
|
+
if (options.persistentSort && this.extExists("persistence", true)) {
|
5185
5586
|
|
5186
|
-
|
5587
|
+
sorters = ext.persistence.load("sort");
|
5588
|
+
|
5589
|
+
if (sorters === false && options.initialSort) {
|
5590
|
+
|
5591
|
+
sorters = options.initialSort;
|
5592
|
+
}
|
5593
|
+
} else if (options.initialSort) {
|
5594
|
+
|
5595
|
+
sorters = options.initialSort;
|
5596
|
+
}
|
5597
|
+
|
5598
|
+
ext.sort.setSort(sorters);
|
5599
|
+
}
|
5600
|
+
|
5601
|
+
if (options.persistentFilter && this.extExists("persistence", true)) {
|
5602
|
+
|
5603
|
+
var filters = ext.persistence.load("filter");
|
5604
|
+
|
5605
|
+
if (filters !== false) {
|
5606
|
+
|
5607
|
+
this.setFilter(filters);
|
5608
|
+
}
|
5187
5609
|
}
|
5188
5610
|
|
5189
5611
|
if (options.pagination && this.extExists("page", true)) {
|
@@ -5211,6 +5633,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5211
5633
|
ext.selectRow.clearSelectionData();
|
5212
5634
|
}
|
5213
5635
|
|
5636
|
+
if (options.autoResize && this.extExists("resizeTable")) {
|
5637
|
+
|
5638
|
+
ext.resizeTable.initialize();
|
5639
|
+
}
|
5640
|
+
|
5214
5641
|
options.tableBuilt();
|
5215
5642
|
},
|
5216
5643
|
|
@@ -5419,6 +5846,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5419
5846
|
|
5420
5847
|
var self = this;
|
5421
5848
|
|
5849
|
+
if (typeof data === "string") {
|
5850
|
+
|
5851
|
+
data = JSON.parse(data);
|
5852
|
+
}
|
5853
|
+
|
5422
5854
|
if (data) {
|
5423
5855
|
|
5424
5856
|
data.forEach(function (item) {
|
@@ -5438,6 +5870,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5438
5870
|
|
5439
5871
|
addData: function addData(data, pos, index) {
|
5440
5872
|
|
5873
|
+
if (typeof data === "string") {
|
5874
|
+
|
5875
|
+
data = JSON.parse(data);
|
5876
|
+
}
|
5877
|
+
|
5441
5878
|
if (data) {
|
5442
5879
|
|
5443
5880
|
this.rowManager.addRows(data, pos, index);
|
@@ -5453,6 +5890,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5453
5890
|
|
5454
5891
|
var self = this;
|
5455
5892
|
|
5893
|
+
if (typeof data === "string") {
|
5894
|
+
|
5895
|
+
data = JSON.parse(data);
|
5896
|
+
}
|
5897
|
+
|
5456
5898
|
if (data) {
|
5457
5899
|
|
5458
5900
|
data.forEach(function (item) {
|
@@ -5464,7 +5906,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5464
5906
|
row.updateData(item);
|
5465
5907
|
} else {
|
5466
5908
|
|
5467
|
-
self.rowManager.
|
5909
|
+
self.rowManager.addRows(item);
|
5468
5910
|
}
|
5469
5911
|
});
|
5470
5912
|
} else {
|
@@ -5490,6 +5932,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5490
5932
|
}
|
5491
5933
|
},
|
5492
5934
|
|
5935
|
+
//get row object
|
5936
|
+
|
5937
|
+
getRowFromPosition: function getRowFromPosition(position, active) {
|
5938
|
+
|
5939
|
+
var row = this.rowManager.getRowFromPosition(position, active);
|
5940
|
+
|
5941
|
+
if (row) {
|
5942
|
+
|
5943
|
+
return row.getComponent();
|
5944
|
+
} else {
|
5945
|
+
|
5946
|
+
console.warn("Find Error - No matching row found:", position);
|
5947
|
+
|
5948
|
+
return false;
|
5949
|
+
}
|
5950
|
+
},
|
5951
|
+
|
5493
5952
|
//delete row from table
|
5494
5953
|
|
5495
5954
|
deleteRow: function deleteRow(index) {
|
@@ -5513,7 +5972,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5513
5972
|
|
5514
5973
|
addRow: function addRow(data, pos, index) {
|
5515
5974
|
|
5516
|
-
|
5975
|
+
var row;
|
5976
|
+
|
5977
|
+
if (typeof data === "string") {
|
5978
|
+
|
5979
|
+
data = JSON.parse(data);
|
5980
|
+
}
|
5981
|
+
|
5982
|
+
row = this.rowManager.addRows(data, pos, index)[0];
|
5983
|
+
|
5984
|
+
//recalc column calculations if present
|
5985
|
+
|
5986
|
+
if (this.extExists("columnCalcs")) {
|
5987
|
+
|
5988
|
+
this.extensions.columnCalcs.recalc(this.rowManager.displayRows);
|
5989
|
+
}
|
5990
|
+
|
5991
|
+
return row;
|
5517
5992
|
},
|
5518
5993
|
|
5519
5994
|
//update a row if it exitsts otherwise create it
|
@@ -5522,12 +5997,24 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5522
5997
|
|
5523
5998
|
var row = this.rowManager.findRow(index);
|
5524
5999
|
|
6000
|
+
if (typeof data === "string") {
|
6001
|
+
|
6002
|
+
data = JSON.parse(data);
|
6003
|
+
}
|
6004
|
+
|
5525
6005
|
if (row) {
|
5526
6006
|
|
5527
6007
|
row.updateData(data);
|
5528
6008
|
} else {
|
5529
6009
|
|
5530
|
-
row = this.rowManager.
|
6010
|
+
row = this.rowManager.addRows(data)[0];
|
6011
|
+
|
6012
|
+
//recalc column calculations if present
|
6013
|
+
|
6014
|
+
if (this.extExists("columnCalcs")) {
|
6015
|
+
|
6016
|
+
this.extensions.columnCalcs.recalc(this.rowManager.displayRows);
|
6017
|
+
}
|
5531
6018
|
}
|
5532
6019
|
|
5533
6020
|
return row.getComponent();
|
@@ -5539,6 +6026,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5539
6026
|
|
5540
6027
|
var row = this.rowManager.findRow(index);
|
5541
6028
|
|
6029
|
+
if (typeof data === "string") {
|
6030
|
+
|
6031
|
+
data = JSON.parse(data);
|
6032
|
+
}
|
6033
|
+
|
5542
6034
|
if (row) {
|
5543
6035
|
|
5544
6036
|
row.updateData(data);
|
@@ -5574,6 +6066,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5574
6066
|
return this.rowManager.getComponents(active);
|
5575
6067
|
},
|
5576
6068
|
|
6069
|
+
//get position of row in table
|
6070
|
+
|
6071
|
+
getRowPosition: function getRowPosition(index, active) {
|
6072
|
+
|
6073
|
+
var row = this.rowManager.findRow(index);
|
6074
|
+
|
6075
|
+
if (row) {
|
6076
|
+
|
6077
|
+
return this.rowManager.getRowPosition(row, active);
|
6078
|
+
} else {
|
6079
|
+
|
6080
|
+
console.warn("Position Error - No matching row found:", index);
|
6081
|
+
|
6082
|
+
return false;
|
6083
|
+
}
|
6084
|
+
},
|
6085
|
+
|
5577
6086
|
/////////////// Column Functions ///////////////
|
5578
6087
|
|
5579
6088
|
|
@@ -5594,17 +6103,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5594
6103
|
|
5595
6104
|
getColumnLayout: function getColumnLayout() {
|
5596
6105
|
|
5597
|
-
if (this.extExists("
|
6106
|
+
if (this.extExists("persistence", true)) {
|
5598
6107
|
|
5599
|
-
return this.extensions.
|
6108
|
+
return this.extensions.persistence.parseColumns(this.columnManager.getColumns());
|
5600
6109
|
}
|
5601
6110
|
},
|
5602
6111
|
|
5603
6112
|
setColumnLayout: function setColumnLayout(layout) {
|
5604
6113
|
|
5605
|
-
if (this.extExists("
|
6114
|
+
if (this.extExists("persistence", true)) {
|
5606
6115
|
|
5607
|
-
this.columnManager.setColumns(this.extensions.
|
6116
|
+
this.columnManager.setColumns(this.extensions.persistence.mergeDefinition(this.options.columns, layout));
|
5608
6117
|
|
5609
6118
|
return true;
|
5610
6119
|
}
|
@@ -5685,6 +6194,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5685
6194
|
}
|
5686
6195
|
},
|
5687
6196
|
|
6197
|
+
//scroll to column in DOM
|
6198
|
+
|
6199
|
+
scrollToColumn: function scrollToColumn(field) {
|
6200
|
+
|
6201
|
+
var column = this.columnManager.findColumn(field);
|
6202
|
+
|
6203
|
+
if (column) {
|
6204
|
+
|
6205
|
+
return this.columnManager.scrollToColumn(column);
|
6206
|
+
} else {
|
6207
|
+
|
6208
|
+
console.warn("Scroll Error - No matching column found:", field);
|
6209
|
+
|
6210
|
+
return false;
|
6211
|
+
}
|
6212
|
+
},
|
6213
|
+
|
5688
6214
|
//////////// Localization Functions ////////////
|
5689
6215
|
|
5690
6216
|
setLocale: function setLocale(locale) {
|
@@ -5810,6 +6336,42 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
5810
6336
|
}
|
5811
6337
|
},
|
5812
6338
|
|
6339
|
+
setHeaderFilterFocus: function setHeaderFilterFocus(field) {
|
6340
|
+
|
6341
|
+
if (this.extExists("filter", true)) {
|
6342
|
+
|
6343
|
+
var column = this.columnManager.findColumn(field);
|
6344
|
+
|
6345
|
+
if (column) {
|
6346
|
+
|
6347
|
+
this.extensions.filter.setHeaderFilterFocus(column);
|
6348
|
+
} else {
|
6349
|
+
|
6350
|
+
console.warn("Column Filter Focus Error - No matching column found:", field);
|
6351
|
+
|
6352
|
+
return false;
|
6353
|
+
}
|
6354
|
+
}
|
6355
|
+
},
|
6356
|
+
|
6357
|
+
setHeaderFilterValue: function setHeaderFilterValue(field, value) {
|
6358
|
+
|
6359
|
+
if (this.extExists("filter", true)) {
|
6360
|
+
|
6361
|
+
var column = this.columnManager.findColumn(field);
|
6362
|
+
|
6363
|
+
if (column) {
|
6364
|
+
|
6365
|
+
this.extensions.filter.setHeaderFilterValue(column, value);
|
6366
|
+
} else {
|
6367
|
+
|
6368
|
+
console.warn("Column Filter Error - No matching column found:", field);
|
6369
|
+
|
6370
|
+
return false;
|
6371
|
+
}
|
6372
|
+
}
|
6373
|
+
},
|
6374
|
+
|
5813
6375
|
getHeaderFilters: function getHeaderFilters() {
|
5814
6376
|
|
5815
6377
|
if (this.extExists("filter", true)) {
|
@@ -6057,6 +6619,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
6057
6619
|
}
|
6058
6620
|
},
|
6059
6621
|
|
6622
|
+
///////////////// Column Calculation Functions ///////////////
|
6623
|
+
|
6624
|
+
getCalcResults: function getCalcResults() {
|
6625
|
+
|
6626
|
+
if (this.extExists("columnCalcs", true)) {
|
6627
|
+
|
6628
|
+
return this.extensions.columnCalcs.getResults();
|
6629
|
+
} else {
|
6630
|
+
|
6631
|
+
return false;
|
6632
|
+
}
|
6633
|
+
},
|
6634
|
+
|
6060
6635
|
/////////////// Navigation Management //////////////
|
6061
6636
|
|
6062
6637
|
|
@@ -7080,19 +7655,24 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7080
7655
|
|
7081
7656
|
Ajax.prototype.showLoader = function () {
|
7082
7657
|
|
7083
|
-
this.
|
7658
|
+
var shouldLoad = typeof this.table.options.ajaxLoader === "function" ? this.table.options.ajaxLoader() : this.table.options.ajaxLoader;
|
7084
7659
|
|
7085
|
-
|
7660
|
+
if (shouldLoad) {
|
7086
7661
|
|
7087
|
-
|
7662
|
+
this.loaderElement.detach();
|
7088
7663
|
|
7089
|
-
this.msgElement.
|
7090
|
-
} else {
|
7664
|
+
this.msgElement.empty().removeClass("tabulator-error").addClass("tabulator-loading");
|
7091
7665
|
|
7092
|
-
|
7093
|
-
}
|
7666
|
+
if (this.loadingElement) {
|
7094
7667
|
|
7095
|
-
|
7668
|
+
this.msgElement.append(this.loadingElement);
|
7669
|
+
} else {
|
7670
|
+
|
7671
|
+
this.msgElement.append(this.table.extensions.localize.getText("ajax.loading"));
|
7672
|
+
}
|
7673
|
+
|
7674
|
+
this.table.element.append(this.loaderElement);
|
7675
|
+
}
|
7096
7676
|
};
|
7097
7677
|
|
7098
7678
|
Ajax.prototype.showError = function () {
|
@@ -7294,7 +7874,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7294
7874
|
|
7295
7875
|
if (!this.topInitialized) {
|
7296
7876
|
|
7297
|
-
this.table.columnManager.
|
7877
|
+
this.table.columnManager.headersElement.after(this.topElement);
|
7298
7878
|
|
7299
7879
|
this.topInitialized = true;
|
7300
7880
|
}
|
@@ -7369,26 +7949,35 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7369
7949
|
|
7370
7950
|
ColumnCalcs.prototype.recalcRowGroup = function (row) {
|
7371
7951
|
|
7952
|
+
this.recalcGroup(this.table.extensions.groupRows.getRowGroup(row));
|
7953
|
+
};
|
7954
|
+
|
7955
|
+
ColumnCalcs.prototype.recalcGroup = function (group) {
|
7956
|
+
|
7372
7957
|
var data, rowData;
|
7373
7958
|
|
7374
|
-
|
7959
|
+
if (group) {
|
7375
7960
|
|
7376
|
-
|
7961
|
+
if (group.calcs) {
|
7377
7962
|
|
7378
|
-
|
7963
|
+
if (group.calcs.bottom) {
|
7379
7964
|
|
7380
|
-
|
7965
|
+
data = this.rowsToData(group.rows);
|
7381
7966
|
|
7382
|
-
|
7383
|
-
}
|
7967
|
+
rowData = this.generateRowData("bottom", data);
|
7384
7968
|
|
7385
|
-
|
7969
|
+
group.calcs.bottom.updateData(rowData);
|
7970
|
+
}
|
7971
|
+
|
7972
|
+
if (group.calcs.top) {
|
7386
7973
|
|
7387
|
-
|
7974
|
+
data = this.rowsToData(group.rows);
|
7388
7975
|
|
7389
|
-
|
7976
|
+
rowData = this.generateRowData("top", data);
|
7390
7977
|
|
7391
|
-
|
7978
|
+
group.calcs.top.updateData(rowData);
|
7979
|
+
}
|
7980
|
+
}
|
7392
7981
|
}
|
7393
7982
|
};
|
7394
7983
|
|
@@ -7540,6 +8129,66 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7540
8129
|
}
|
7541
8130
|
};
|
7542
8131
|
|
8132
|
+
//return the calculated
|
8133
|
+
|
8134
|
+
|
8135
|
+
ColumnCalcs.prototype.getResults = function () {
|
8136
|
+
|
8137
|
+
var self = this,
|
8138
|
+
results = {},
|
8139
|
+
groups;
|
8140
|
+
|
8141
|
+
if (this.table.options.groupBy && this.table.extExists("groupRows")) {
|
8142
|
+
|
8143
|
+
groups = this.table.extensions.groupRows.getGroups();
|
8144
|
+
|
8145
|
+
groups.forEach(function (group) {
|
8146
|
+
|
8147
|
+
results[group.getKey()] = self.getGroupResults(group);
|
8148
|
+
});
|
8149
|
+
} else {
|
8150
|
+
|
8151
|
+
results = {
|
8152
|
+
|
8153
|
+
top: this.topRow ? this.topRow.getData() : {},
|
8154
|
+
|
8155
|
+
bottom: this.botRow ? this.botRow.getData() : {}
|
8156
|
+
|
8157
|
+
};
|
8158
|
+
}
|
8159
|
+
|
8160
|
+
return results;
|
8161
|
+
};
|
8162
|
+
|
8163
|
+
//get results from a group
|
8164
|
+
|
8165
|
+
|
8166
|
+
ColumnCalcs.prototype.getGroupResults = function (group) {
|
8167
|
+
|
8168
|
+
var self = this,
|
8169
|
+
groupObj = group._getSelf(),
|
8170
|
+
subGroups = group.getSubGroups(),
|
8171
|
+
subGroupResults = {},
|
8172
|
+
results = {};
|
8173
|
+
|
8174
|
+
subGroups.forEach(function (subgroup) {
|
8175
|
+
|
8176
|
+
subGroupResults[subgroup.getKey()] = self.getGroupResults(subgroup);
|
8177
|
+
});
|
8178
|
+
|
8179
|
+
results = {
|
8180
|
+
|
8181
|
+
top: groupObj.calcs.top ? groupObj.calcs.top.getData() : {},
|
8182
|
+
|
8183
|
+
bottom: groupObj.calcs.bottom ? groupObj.calcs.bottom.getData() : {},
|
8184
|
+
|
8185
|
+
groups: subGroupResults
|
8186
|
+
|
8187
|
+
};
|
8188
|
+
|
8189
|
+
return results;
|
8190
|
+
};
|
8191
|
+
|
7543
8192
|
//default calculations
|
7544
8193
|
|
7545
8194
|
|
@@ -7569,7 +8218,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7569
8218
|
|
7570
8219
|
"max": function max(values, data, calcParams) {
|
7571
8220
|
|
7572
|
-
var output = null
|
8221
|
+
var output = null,
|
8222
|
+
precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
|
7573
8223
|
|
7574
8224
|
values.forEach(function (value) {
|
7575
8225
|
|
@@ -7581,12 +8231,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7581
8231
|
}
|
7582
8232
|
});
|
7583
8233
|
|
7584
|
-
return output !== null ? output : "";
|
8234
|
+
return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
|
7585
8235
|
},
|
7586
8236
|
|
7587
8237
|
"min": function min(values, data, calcParams) {
|
7588
8238
|
|
7589
|
-
var output = null
|
8239
|
+
var output = null,
|
8240
|
+
precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
|
7590
8241
|
|
7591
8242
|
values.forEach(function (value) {
|
7592
8243
|
|
@@ -7598,12 +8249,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7598
8249
|
}
|
7599
8250
|
});
|
7600
8251
|
|
7601
|
-
return output !== null ? output : "";
|
8252
|
+
return output !== null ? precision !== false ? output.toFixed(precision) : output : "";
|
7602
8253
|
},
|
7603
8254
|
|
7604
8255
|
"sum": function sum(values, data, calcParams) {
|
7605
8256
|
|
7606
|
-
var output = 0
|
8257
|
+
var output = 0,
|
8258
|
+
precision = typeof calcParams.precision !== "undefined" ? calcParams.precision : false;
|
7607
8259
|
|
7608
8260
|
if (values.length) {
|
7609
8261
|
|
@@ -7615,7 +8267,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
7615
8267
|
});
|
7616
8268
|
}
|
7617
8269
|
|
7618
|
-
return output;
|
8270
|
+
return precision !== false ? output.toFixed(precision) : output;
|
7619
8271
|
},
|
7620
8272
|
|
7621
8273
|
"concat": function concat(values, data, calcParams) {
|
@@ -8017,6 +8669,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8017
8669
|
|
8018
8670
|
this.currentCell = false; //hold currently editing cell
|
8019
8671
|
|
8672
|
+
|
8673
|
+
this.mouseClick = false; //hold mousedown state to prevent click binding being overriden by editor opening
|
8674
|
+
|
8020
8675
|
};
|
8021
8676
|
|
8022
8677
|
//initialize column editor
|
@@ -8094,7 +8749,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8094
8749
|
return this.currentCell ? this.currentCell.getComponent() : false;
|
8095
8750
|
};
|
8096
8751
|
|
8097
|
-
Edit.prototype.clearEditor = function (
|
8752
|
+
Edit.prototype.clearEditor = function () {
|
8753
|
+
|
8754
|
+
var cell = this.currentCell;
|
8098
8755
|
|
8099
8756
|
this.currentCell = false;
|
8100
8757
|
|
@@ -8105,15 +8762,64 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8105
8762
|
cell.row.getElement().removeClass("tabulator-row-editing");
|
8106
8763
|
};
|
8107
8764
|
|
8765
|
+
Edit.prototype.cancelEdit = function () {
|
8766
|
+
|
8767
|
+
if (this.currentCell) {
|
8768
|
+
|
8769
|
+
var cell = this.currentCell;
|
8770
|
+
|
8771
|
+
var component = this.currentCell.getComponent();
|
8772
|
+
|
8773
|
+
this.clearEditor();
|
8774
|
+
|
8775
|
+
cell.setValueActual(cell.getValue());
|
8776
|
+
|
8777
|
+
if (cell.column.cellEvents.cellEditCancelled) {
|
8778
|
+
|
8779
|
+
cell.column.cellEvents.cellEditCancelled(component);
|
8780
|
+
}
|
8781
|
+
|
8782
|
+
this.table.options.cellEditCancelled(component);
|
8783
|
+
}
|
8784
|
+
};
|
8785
|
+
|
8108
8786
|
//return a formatted value for a cell
|
8109
8787
|
|
8110
8788
|
|
8111
8789
|
Edit.prototype.bindEditor = function (cell) {
|
8112
8790
|
|
8113
8791
|
var self = this,
|
8792
|
+
element = cell.getElement();
|
8793
|
+
|
8794
|
+
element.attr("tabindex", 0);
|
8795
|
+
|
8796
|
+
element.on("click", function (e) {
|
8797
|
+
|
8798
|
+
if (!$(this).hasClass("tabulator-editing")) {
|
8799
|
+
|
8800
|
+
$(this).focus();
|
8801
|
+
}
|
8802
|
+
});
|
8803
|
+
|
8804
|
+
element.on("mousedown", function (e) {
|
8805
|
+
|
8806
|
+
self.mouseClick = true;
|
8807
|
+
});
|
8808
|
+
|
8809
|
+
element.on("focus", function (e) {
|
8810
|
+
|
8811
|
+
self.edit(cell, e);
|
8812
|
+
});
|
8813
|
+
};
|
8814
|
+
|
8815
|
+
Edit.prototype.edit = function (cell, e, forceEdit) {
|
8816
|
+
|
8817
|
+
var self = this,
|
8818
|
+
allowEdit = true,
|
8114
8819
|
rendered = function rendered() {},
|
8115
8820
|
element = cell.getElement(),
|
8116
|
-
|
8821
|
+
cellEditor,
|
8822
|
+
component;
|
8117
8823
|
|
8118
8824
|
//handle successfull value change
|
8119
8825
|
|
@@ -8129,7 +8835,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8129
8835
|
|
8130
8836
|
if (valid === true) {
|
8131
8837
|
|
8132
|
-
self.clearEditor(
|
8838
|
+
self.clearEditor();
|
8133
8839
|
|
8134
8840
|
cell.setValue(value, true);
|
8135
8841
|
} else {
|
@@ -8147,103 +8853,113 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8147
8853
|
|
8148
8854
|
function cancel() {
|
8149
8855
|
|
8150
|
-
self.
|
8151
|
-
|
8152
|
-
cell.setValueActual(cell.getValue());
|
8153
|
-
|
8154
|
-
self.table.options.cellEditCancelled(cell.getComponent());
|
8856
|
+
self.cancelEdit();
|
8155
8857
|
};
|
8156
8858
|
|
8157
|
-
|
8859
|
+
function onRendered(callback) {
|
8158
8860
|
|
8159
|
-
|
8861
|
+
rendered = callback;
|
8862
|
+
}
|
8160
8863
|
|
8161
|
-
|
8864
|
+
if (!cell.column.extensions.edit.blocked) {
|
8162
8865
|
|
8163
|
-
|
8866
|
+
if (e) {
|
8867
|
+
|
8868
|
+
e.stopPropagation();
|
8164
8869
|
}
|
8165
|
-
});
|
8166
8870
|
|
8167
|
-
|
8871
|
+
switch (_typeof(cell.column.extensions.edit.check)) {
|
8168
8872
|
|
8169
|
-
|
8170
|
-
});
|
8873
|
+
case "function":
|
8171
8874
|
|
8172
|
-
|
8875
|
+
allowEdit = cell.column.extensions.edit.check(cell.getComponent());
|
8173
8876
|
|
8174
|
-
|
8175
|
-
|
8877
|
+
break;
|
8878
|
+
|
8879
|
+
case "boolean":
|
8176
8880
|
|
8177
|
-
|
8881
|
+
allowEdit = cell.column.extensions.edit.check;
|
8178
8882
|
|
8179
|
-
|
8883
|
+
break;
|
8180
8884
|
|
8181
|
-
rendered = callback;
|
8182
8885
|
}
|
8183
8886
|
|
8184
|
-
if (
|
8887
|
+
if (allowEdit || forceEdit) {
|
8185
8888
|
|
8186
|
-
|
8187
|
-
|
8188
|
-
if (typeof cell.column.extensions.edit.check == "function") {
|
8889
|
+
self.cancelEdit();
|
8189
8890
|
|
8190
|
-
|
8191
|
-
}
|
8891
|
+
self.currentCell = cell;
|
8192
8892
|
|
8193
|
-
|
8893
|
+
component = cell.getComponent();
|
8194
8894
|
|
8195
|
-
|
8895
|
+
if (this.mouseClick) {
|
8196
8896
|
|
8197
|
-
|
8897
|
+
this.mouseClick = false;
|
8198
8898
|
|
8199
|
-
|
8899
|
+
if (cell.column.cellEvents.cellClick) {
|
8200
8900
|
|
8201
|
-
|
8202
|
-
}
|
8901
|
+
cell.column.cellEvents.cellClick(component);
|
8203
8902
|
}
|
8903
|
+
}
|
8204
8904
|
|
8205
|
-
|
8905
|
+
if (cell.column.cellEvents.cellEditing) {
|
8206
8906
|
|
8207
|
-
|
8907
|
+
cell.column.cellEvents.cellEditing(component);
|
8908
|
+
}
|
8208
8909
|
|
8209
|
-
|
8910
|
+
self.table.options.cellEditing(component);
|
8210
8911
|
|
8912
|
+
cellEditor = cell.column.extensions.edit.editor.call(self, component, onRendered, success, cancel, cell.column.extensions.edit.params);
|
8211
8913
|
|
8212
|
-
|
8914
|
+
//if editor returned, add to DOM, if false, abort edit
|
8213
8915
|
|
8214
|
-
element.addClass("tabulator-editing");
|
8215
8916
|
|
8216
|
-
|
8917
|
+
if (cellEditor !== false) {
|
8217
8918
|
|
8218
|
-
|
8919
|
+
element.addClass("tabulator-editing");
|
8219
8920
|
|
8220
|
-
|
8921
|
+
cell.row.getElement().addClass("tabulator-row-editing");
|
8221
8922
|
|
8222
|
-
|
8923
|
+
element.empty();
|
8223
8924
|
|
8925
|
+
element.append(cellEditor);
|
8224
8926
|
|
8225
|
-
|
8927
|
+
//trigger onRendered Callback
|
8226
8928
|
|
8227
|
-
//prevent editing from triggering rowClick event
|
8228
8929
|
|
8930
|
+
rendered();
|
8229
8931
|
|
8230
|
-
|
8932
|
+
//prevent editing from triggering rowClick event
|
8231
8933
|
|
8232
|
-
e.stopPropagation();
|
8233
|
-
});
|
8234
|
-
} else {
|
8235
8934
|
|
8236
|
-
|
8237
|
-
|
8935
|
+
element.children().click(function (e) {
|
8936
|
+
|
8937
|
+
e.stopPropagation();
|
8938
|
+
});
|
8238
8939
|
} else {
|
8239
8940
|
|
8240
8941
|
element.blur();
|
8942
|
+
|
8943
|
+
return false;
|
8241
8944
|
}
|
8945
|
+
|
8946
|
+
return true;
|
8242
8947
|
} else {
|
8243
8948
|
|
8949
|
+
this.mouseClick = false;
|
8950
|
+
|
8244
8951
|
element.blur();
|
8952
|
+
|
8953
|
+
return false;
|
8245
8954
|
}
|
8246
|
-
}
|
8955
|
+
} else {
|
8956
|
+
|
8957
|
+
this.mouseClick = false;
|
8958
|
+
|
8959
|
+
element.blur();
|
8960
|
+
|
8961
|
+
return false;
|
8962
|
+
}
|
8247
8963
|
};
|
8248
8964
|
|
8249
8965
|
//default data editors
|
@@ -8402,7 +9118,98 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8402
9118
|
|
8403
9119
|
number: function number(cell, onRendered, success, cancel, editorParams) {
|
8404
9120
|
|
8405
|
-
var
|
9121
|
+
var max = typeof editorParams.max != "undefined" ? "max='" + editorParams.max + "'" : "";
|
9122
|
+
|
9123
|
+
var min = typeof editorParams.min != "undefined" ? "min='" + editorParams.min + "'" : "";
|
9124
|
+
|
9125
|
+
var step = "step='" + (typeof editorParams.step != "undefined" ? editorParams.step : 1) + "'";
|
9126
|
+
|
9127
|
+
var input = $("<input type='number' " + max + " " + min + " " + step + "/>");
|
9128
|
+
|
9129
|
+
//create and style input
|
9130
|
+
|
9131
|
+
|
9132
|
+
input.css({
|
9133
|
+
|
9134
|
+
"padding": "4px",
|
9135
|
+
|
9136
|
+
"width": "100%",
|
9137
|
+
|
9138
|
+
"box-sizing": "border-box"
|
9139
|
+
|
9140
|
+
}).val(cell.getValue());
|
9141
|
+
|
9142
|
+
onRendered(function () {
|
9143
|
+
|
9144
|
+
input.css("height", "100%");
|
9145
|
+
|
9146
|
+
setTimeout(function () {
|
9147
|
+
|
9148
|
+
input.focus();
|
9149
|
+
}, 10);
|
9150
|
+
});
|
9151
|
+
|
9152
|
+
//submit new value on blur
|
9153
|
+
|
9154
|
+
|
9155
|
+
input.on("blur", function (e) {
|
9156
|
+
|
9157
|
+
var value = input.val();
|
9158
|
+
|
9159
|
+
if (!isNaN(value)) {
|
9160
|
+
|
9161
|
+
value = Number(value);
|
9162
|
+
}
|
9163
|
+
|
9164
|
+
if (value != cell.getValue()) {
|
9165
|
+
|
9166
|
+
success(value);
|
9167
|
+
} else {
|
9168
|
+
|
9169
|
+
cancel();
|
9170
|
+
}
|
9171
|
+
});
|
9172
|
+
|
9173
|
+
//submit new value on enter
|
9174
|
+
|
9175
|
+
|
9176
|
+
input.on("keydown", function (e) {
|
9177
|
+
|
9178
|
+
var value;
|
9179
|
+
|
9180
|
+
if (e.keyCode == 13) {
|
9181
|
+
|
9182
|
+
value = input.val();
|
9183
|
+
|
9184
|
+
if (!isNaN(value)) {
|
9185
|
+
|
9186
|
+
value = Number(value);
|
9187
|
+
}
|
9188
|
+
|
9189
|
+
success(value);
|
9190
|
+
}
|
9191
|
+
|
9192
|
+
if (e.keyCode == 27) {
|
9193
|
+
|
9194
|
+
cancel();
|
9195
|
+
}
|
9196
|
+
});
|
9197
|
+
|
9198
|
+
return input;
|
9199
|
+
},
|
9200
|
+
|
9201
|
+
//input element with type of number
|
9202
|
+
|
9203
|
+
|
9204
|
+
range: function range(cell, onRendered, success, cancel, editorParams) {
|
9205
|
+
|
9206
|
+
var max = "max='" + (typeof editorParams.max != "undefined" ? editorParams.max : 10) + "'";
|
9207
|
+
|
9208
|
+
var min = "min='" + (typeof editorParams.min != "undefined" ? editorParams.min : 0) + "'";
|
9209
|
+
|
9210
|
+
var step = "step='" + (typeof editorParams.step != "undefined" ? editorParams.step : 1) + "'";
|
9211
|
+
|
9212
|
+
var input = $("<input type='range' " + max + " " + min + " " + step + "/>");
|
8406
9213
|
|
8407
9214
|
//create and style input
|
8408
9215
|
|
@@ -8476,6 +9283,110 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8476
9283
|
return input;
|
8477
9284
|
},
|
8478
9285
|
|
9286
|
+
//select
|
9287
|
+
|
9288
|
+
|
9289
|
+
select: function select(cell, onRendered, success, cancel, editorParams) {
|
9290
|
+
|
9291
|
+
//create and style select
|
9292
|
+
|
9293
|
+
|
9294
|
+
var select = $("<select><select/>");
|
9295
|
+
|
9296
|
+
var isArray = Array.isArray(editorParams);
|
9297
|
+
|
9298
|
+
if (typeof editorParams == "function") {
|
9299
|
+
|
9300
|
+
editorParams = editorParams(cell);
|
9301
|
+
|
9302
|
+
isArray = Array.isArray(editorParams);
|
9303
|
+
}
|
9304
|
+
|
9305
|
+
function optionAppend(element, label, value, disabled) {
|
9306
|
+
|
9307
|
+
var option = $("<option></option>").attr("value", value).text(label);
|
9308
|
+
|
9309
|
+
if (disabled) {
|
9310
|
+
|
9311
|
+
option.prop("disabled", true);
|
9312
|
+
}
|
9313
|
+
|
9314
|
+
element.append(option);
|
9315
|
+
}
|
9316
|
+
|
9317
|
+
function processOption(element, option) {
|
9318
|
+
|
9319
|
+
var groupEl;
|
9320
|
+
|
9321
|
+
if (option.options) {
|
9322
|
+
|
9323
|
+
groupEl = $("<optgroup></optgroup>").attr("label", option.label);
|
9324
|
+
|
9325
|
+
option.options.forEach(function (item) {
|
9326
|
+
|
9327
|
+
processOption(groupEl, item);
|
9328
|
+
});
|
9329
|
+
|
9330
|
+
element.append(groupEl);
|
9331
|
+
} else {
|
9332
|
+
|
9333
|
+
optionAppend(element, typeof option.label == "undefined" ? option.value : option.label, typeof option.value == "undefined" ? option.label : option.value, option.disabled);
|
9334
|
+
}
|
9335
|
+
}
|
9336
|
+
|
9337
|
+
if (!isArray && (typeof editorParams === 'undefined' ? 'undefined' : _typeof(editorParams)) === "object") {
|
9338
|
+
|
9339
|
+
for (var key in editorParams) {
|
9340
|
+
|
9341
|
+
optionAppend(select, editorParams[key], key);
|
9342
|
+
}
|
9343
|
+
} else if (isArray) {
|
9344
|
+
|
9345
|
+
editorParams.forEach(function (item) {
|
9346
|
+
|
9347
|
+
processOption(select, item);
|
9348
|
+
});
|
9349
|
+
}
|
9350
|
+
|
9351
|
+
select.css({
|
9352
|
+
|
9353
|
+
"padding": "4px",
|
9354
|
+
|
9355
|
+
"width": "100%",
|
9356
|
+
|
9357
|
+
"box-sizing": "border-box",
|
9358
|
+
|
9359
|
+
"font-family": ""
|
9360
|
+
|
9361
|
+
}).val(cell.getValue());
|
9362
|
+
|
9363
|
+
onRendered(function () {
|
9364
|
+
|
9365
|
+
select.focus().click();
|
9366
|
+
});
|
9367
|
+
|
9368
|
+
//submit new value on blur
|
9369
|
+
|
9370
|
+
|
9371
|
+
select.on("change blur", function (e) {
|
9372
|
+
|
9373
|
+
success(select.val());
|
9374
|
+
});
|
9375
|
+
|
9376
|
+
//submit new value on enter
|
9377
|
+
|
9378
|
+
|
9379
|
+
select.on("keydown", function (e) {
|
9380
|
+
|
9381
|
+
if (e.keyCode === 13) {
|
9382
|
+
|
9383
|
+
success(select.val());
|
9384
|
+
}
|
9385
|
+
});
|
9386
|
+
|
9387
|
+
return select;
|
9388
|
+
},
|
9389
|
+
|
8479
9390
|
//start rating
|
8480
9391
|
|
8481
9392
|
|
@@ -8972,6 +9883,12 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
8972
9883
|
self.table.rowManager.filterRefresh();
|
8973
9884
|
};
|
8974
9885
|
|
9886
|
+
column.extensions.filter = {
|
9887
|
+
|
9888
|
+
success: success
|
9889
|
+
|
9890
|
+
};
|
9891
|
+
|
8975
9892
|
//handle aborted edit
|
8976
9893
|
|
8977
9894
|
|
@@ -9103,6 +10020,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9103
10020
|
}, 300);
|
9104
10021
|
});
|
9105
10022
|
|
10023
|
+
column.extensions.filter.headerElement = editorElement;
|
10024
|
+
|
9106
10025
|
//update number filtered columns on change
|
9107
10026
|
|
9108
10027
|
|
@@ -9152,6 +10071,61 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9152
10071
|
}
|
9153
10072
|
};
|
9154
10073
|
|
10074
|
+
//hide all header filter elements (used to ensure correct column widths in "fitData" layout mode)
|
10075
|
+
|
10076
|
+
|
10077
|
+
Filter.prototype.hideHeaderFilterElements = function () {
|
10078
|
+
|
10079
|
+
this.headerFilterElements.forEach(function (element) {
|
10080
|
+
|
10081
|
+
element.hide();
|
10082
|
+
});
|
10083
|
+
};
|
10084
|
+
|
10085
|
+
//show all header filter elements (used to ensure correct column widths in "fitData" layout mode)
|
10086
|
+
|
10087
|
+
|
10088
|
+
Filter.prototype.showHeaderFilterElements = function () {
|
10089
|
+
|
10090
|
+
this.headerFilterElements.forEach(function (element) {
|
10091
|
+
|
10092
|
+
element.show();
|
10093
|
+
});
|
10094
|
+
};
|
10095
|
+
|
10096
|
+
//programatically set value of header filter
|
10097
|
+
|
10098
|
+
|
10099
|
+
Filter.prototype.setHeaderFilterFocus = function (column) {
|
10100
|
+
|
10101
|
+
if (column.extensions.filter && column.extensions.filter.headerElement) {
|
10102
|
+
|
10103
|
+
column.extensions.filter.headerElement.focus();
|
10104
|
+
} else {
|
10105
|
+
|
10106
|
+
console.warn("Column Filter Focus Error - No header filter set on column:", column.getField());
|
10107
|
+
}
|
10108
|
+
};
|
10109
|
+
|
10110
|
+
//programatically set value of header filter
|
10111
|
+
|
10112
|
+
|
10113
|
+
Filter.prototype.setHeaderFilterValue = function (column, value) {
|
10114
|
+
|
10115
|
+
if (column) {
|
10116
|
+
|
10117
|
+
if (column.extensions.filter && column.extensions.filter.headerElement) {
|
10118
|
+
|
10119
|
+
column.extensions.filter.headerElement.val(value);
|
10120
|
+
|
10121
|
+
column.extensions.filter.success(value);
|
10122
|
+
} else {
|
10123
|
+
|
10124
|
+
console.warn("Column Filter Error - No header filter set on column:", column.getField());
|
10125
|
+
}
|
10126
|
+
}
|
10127
|
+
};
|
10128
|
+
|
9155
10129
|
//check if the filters has changed since last use
|
9156
10130
|
|
9157
10131
|
|
@@ -9240,6 +10214,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9240
10214
|
self.changed = true;
|
9241
10215
|
}
|
9242
10216
|
});
|
10217
|
+
|
10218
|
+
if (this.table.options.persistentFilter && this.table.extExists("persistence", true)) {
|
10219
|
+
|
10220
|
+
this.table.extensions.persistence.save("filter");
|
10221
|
+
}
|
9243
10222
|
};
|
9244
10223
|
|
9245
10224
|
//get all filters
|
@@ -9330,6 +10309,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9330
10309
|
console.warn("Filter Error - No matching filter type found, ignoring: ", filter.type);
|
9331
10310
|
}
|
9332
10311
|
});
|
10312
|
+
|
10313
|
+
if (this.table.options.persistentFilter && this.table.extExists("persistence", true)) {
|
10314
|
+
|
10315
|
+
this.table.extensions.persistence.save("filter");
|
10316
|
+
}
|
9333
10317
|
};
|
9334
10318
|
|
9335
10319
|
//clear filters
|
@@ -9345,6 +10329,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9345
10329
|
}
|
9346
10330
|
|
9347
10331
|
this.changed = true;
|
10332
|
+
|
10333
|
+
if (this.table.options.persistentFilter && this.table.extExists("persistence", true)) {
|
10334
|
+
|
10335
|
+
this.table.extensions.persistence.save("filter");
|
10336
|
+
}
|
9348
10337
|
};
|
9349
10338
|
|
9350
10339
|
//clear header filters
|
@@ -9498,6 +10487,22 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9498
10487
|
|
9499
10488
|
return rowVal.toLowerCase().indexOf(filterVal.toLowerCase()) > -1 ? true : false;
|
9500
10489
|
}
|
10490
|
+
},
|
10491
|
+
|
10492
|
+
//in array
|
10493
|
+
|
10494
|
+
|
10495
|
+
"in": function _in(filterVal, rowVal) {
|
10496
|
+
|
10497
|
+
if (Array.isArray(filterVal)) {
|
10498
|
+
|
10499
|
+
return filterVal.indexOf(rowVal) > -1;
|
10500
|
+
} else {
|
10501
|
+
|
10502
|
+
console.warn("Filter Error - filter value is not an array:", filterVal);
|
10503
|
+
|
10504
|
+
return false;
|
10505
|
+
}
|
9501
10506
|
}
|
9502
10507
|
|
9503
10508
|
};
|
@@ -9528,6 +10533,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9528
10533
|
if (self.formatters[column.definition.formatter]) {
|
9529
10534
|
|
9530
10535
|
config.formatter = self.formatters[column.definition.formatter];
|
10536
|
+
|
10537
|
+
if (column.definition.formatter === "email") {
|
10538
|
+
|
10539
|
+
console.warn("The%c email%c formatter has been depricated and will be removed in version 4.0, use the %clink %cformatter with %cformatterParams:{urlPrefix:'mailto:'} %cinstead.", "font-weight:bold;", "font-weight:regular;", "font-weight:bold;", "font-weight:regular;", "font-weight:bold;", "font-weight:regular;");
|
10540
|
+
}
|
9531
10541
|
} else {
|
9532
10542
|
|
9533
10543
|
console.warn("Formatter Error - No such formatter found: ", column.definition.formatter);
|
@@ -9731,27 +10741,89 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9731
10741
|
|
9732
10742
|
link: function link(cell, formatterParams) {
|
9733
10743
|
|
9734
|
-
var value = this.sanitizeHTML(cell.getValue())
|
10744
|
+
var value = this.sanitizeHTML(cell.getValue()),
|
10745
|
+
urlPrefix = formatterParams.urlPrefix || "",
|
10746
|
+
label = this.emptyToSpace(value),
|
10747
|
+
data;
|
9735
10748
|
|
9736
|
-
|
9737
|
-
},
|
10749
|
+
if (formatterParams.labelField) {
|
9738
10750
|
|
9739
|
-
|
10751
|
+
data = cell.getData();
|
9740
10752
|
|
10753
|
+
label = data[formatterParams.labelField];
|
10754
|
+
}
|
9741
10755
|
|
9742
|
-
|
10756
|
+
if (formatterParams.label) {
|
9743
10757
|
|
9744
|
-
|
10758
|
+
switch (_typeof(formatterParams.label)) {
|
9745
10759
|
|
9746
|
-
|
9747
|
-
},
|
10760
|
+
case "string":
|
9748
10761
|
|
9749
|
-
|
10762
|
+
label = formatterParams.label;
|
9750
10763
|
|
10764
|
+
break;
|
9751
10765
|
|
9752
|
-
|
10766
|
+
case "function":
|
9753
10767
|
|
9754
|
-
|
10768
|
+
label = formatterParams.label(cell);
|
10769
|
+
|
10770
|
+
break;
|
10771
|
+
|
10772
|
+
}
|
10773
|
+
}
|
10774
|
+
|
10775
|
+
if (formatterParams.urlField) {
|
10776
|
+
|
10777
|
+
data = cell.getData();
|
10778
|
+
|
10779
|
+
value = data[formatterParams.urlField];
|
10780
|
+
}
|
10781
|
+
|
10782
|
+
if (formatterParams.url) {
|
10783
|
+
|
10784
|
+
switch (_typeof(formatterParams.url)) {
|
10785
|
+
|
10786
|
+
case "string":
|
10787
|
+
|
10788
|
+
value = formatterParams.url;
|
10789
|
+
|
10790
|
+
break;
|
10791
|
+
|
10792
|
+
case "function":
|
10793
|
+
|
10794
|
+
value = formatterParams.url(cell);
|
10795
|
+
|
10796
|
+
break;
|
10797
|
+
|
10798
|
+
}
|
10799
|
+
}
|
10800
|
+
|
10801
|
+
return "<a href='" + urlPrefix + value + "'>" + label + "</a>";
|
10802
|
+
},
|
10803
|
+
|
10804
|
+
//image element
|
10805
|
+
|
10806
|
+
|
10807
|
+
image: function image(cell, formatterParams) {
|
10808
|
+
|
10809
|
+
var value = this.sanitizeHTML(cell.getValue());
|
10810
|
+
|
10811
|
+
var el = $("<img src='" + value + "'/>");
|
10812
|
+
|
10813
|
+
el.on("load", function () {
|
10814
|
+
|
10815
|
+
cell.getRow().normalizeHeight();
|
10816
|
+
});
|
10817
|
+
|
10818
|
+
return el;
|
10819
|
+
},
|
10820
|
+
|
10821
|
+
//tick or empty cell
|
10822
|
+
|
10823
|
+
|
10824
|
+
tick: function tick(cell, formatterParams) {
|
10825
|
+
|
10826
|
+
var value = cell.getValue(),
|
9755
10827
|
element = cell.getElement();
|
9756
10828
|
|
9757
10829
|
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>';
|
@@ -9792,6 +10864,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9792
10864
|
}
|
9793
10865
|
},
|
9794
10866
|
|
10867
|
+
//select
|
10868
|
+
|
10869
|
+
|
10870
|
+
lookup: function lookup(cell, formatterParams) {
|
10871
|
+
|
10872
|
+
var value = cell.getValue();
|
10873
|
+
|
10874
|
+
if (typeof formatterParams[value] === "undefined") {
|
10875
|
+
|
10876
|
+
console.warn('Missing display value for ' + value);
|
10877
|
+
|
10878
|
+
return value;
|
10879
|
+
}
|
10880
|
+
|
10881
|
+
return formatterParams[value];
|
10882
|
+
},
|
10883
|
+
|
9795
10884
|
//star rating
|
9796
10885
|
|
9797
10886
|
|
@@ -9839,22 +10928,130 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9839
10928
|
element = cell.getElement(),
|
9840
10929
|
max = formatterParams && formatterParams.max ? formatterParams.max : 100,
|
9841
10930
|
min = formatterParams && formatterParams.min ? formatterParams.min : 0,
|
9842
|
-
|
9843
|
-
|
10931
|
+
percent,
|
10932
|
+
percentValue,
|
10933
|
+
color,
|
10934
|
+
legend,
|
10935
|
+
legendColor;
|
9844
10936
|
|
9845
10937
|
//make sure value is in range
|
9846
10938
|
|
9847
10939
|
|
9848
|
-
|
10940
|
+
percentValue = parseFloat(value) <= max ? parseFloat(value) : max;
|
9849
10941
|
|
9850
|
-
|
10942
|
+
percentValue = parseFloat(percentValue) >= min ? parseFloat(percentValue) : min;
|
9851
10943
|
|
9852
10944
|
//workout percentage
|
9853
10945
|
|
9854
10946
|
|
9855
10947
|
percent = (max - min) / 100;
|
9856
10948
|
|
9857
|
-
|
10949
|
+
percentValue = 100 - Math.round((percentValue - min) / percent);
|
10950
|
+
|
10951
|
+
//set bar color
|
10952
|
+
|
10953
|
+
|
10954
|
+
switch (_typeof(formatterParams.color)) {
|
10955
|
+
|
10956
|
+
case "string":
|
10957
|
+
|
10958
|
+
color = formatterParams.color;
|
10959
|
+
|
10960
|
+
break;
|
10961
|
+
|
10962
|
+
case "function":
|
10963
|
+
|
10964
|
+
color = formatterParams.color(value);
|
10965
|
+
|
10966
|
+
break;
|
10967
|
+
|
10968
|
+
case "object":
|
10969
|
+
|
10970
|
+
if (Array.isArray(formatterParams.color)) {
|
10971
|
+
|
10972
|
+
var unit = 100 / formatterParams.color.length;
|
10973
|
+
|
10974
|
+
var index = Math.floor(percentValue / unit);
|
10975
|
+
|
10976
|
+
index = Math.min(index, formatterParams.color.length - 1);
|
10977
|
+
|
10978
|
+
color = formatterParams.color[formatterParams.color.length - 1 - index];
|
10979
|
+
|
10980
|
+
break;
|
10981
|
+
}
|
10982
|
+
|
10983
|
+
default:
|
10984
|
+
|
10985
|
+
color = "#2DC214";
|
10986
|
+
|
10987
|
+
}
|
10988
|
+
|
10989
|
+
//generate legend
|
10990
|
+
|
10991
|
+
|
10992
|
+
switch (_typeof(formatterParams.legend)) {
|
10993
|
+
|
10994
|
+
case "string":
|
10995
|
+
|
10996
|
+
legend = formatterParams.legend;
|
10997
|
+
|
10998
|
+
break;
|
10999
|
+
|
11000
|
+
case "function":
|
11001
|
+
|
11002
|
+
legend = formatterParams.legend(value);
|
11003
|
+
|
11004
|
+
break;
|
11005
|
+
|
11006
|
+
case "boolean":
|
11007
|
+
|
11008
|
+
legend = value;
|
11009
|
+
|
11010
|
+
break;
|
11011
|
+
|
11012
|
+
default:
|
11013
|
+
|
11014
|
+
legend = false;
|
11015
|
+
|
11016
|
+
}
|
11017
|
+
|
11018
|
+
//set legend color
|
11019
|
+
|
11020
|
+
|
11021
|
+
switch (_typeof(formatterParams.legendColor)) {
|
11022
|
+
|
11023
|
+
case "string":
|
11024
|
+
|
11025
|
+
legendColor = formatterParams.legendColor;
|
11026
|
+
|
11027
|
+
break;
|
11028
|
+
|
11029
|
+
case "function":
|
11030
|
+
|
11031
|
+
legendColor = formatterParams.legendColor(value);
|
11032
|
+
|
11033
|
+
break;
|
11034
|
+
|
11035
|
+
case "object":
|
11036
|
+
|
11037
|
+
if (Array.isArray(formatterParams.legendColor)) {
|
11038
|
+
|
11039
|
+
var unit = 100 / formatterParams.legendColor.length;
|
11040
|
+
|
11041
|
+
var index = Math.floor(percentValue / unit);
|
11042
|
+
|
11043
|
+
index = Math.min(index, formatterParams.legendColor.length - 1);
|
11044
|
+
|
11045
|
+
legendColor = formatterParams.legendColor[formatterParams.legendColor.length - 1 - index];
|
11046
|
+
|
11047
|
+
break;
|
11048
|
+
}
|
11049
|
+
|
11050
|
+
default:
|
11051
|
+
|
11052
|
+
legendColor = "#000";
|
11053
|
+
|
11054
|
+
}
|
9858
11055
|
|
9859
11056
|
element.css({
|
9860
11057
|
|
@@ -9864,9 +11061,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
9864
11061
|
|
9865
11062
|
});
|
9866
11063
|
|
9867
|
-
element.attr("aria-label",
|
11064
|
+
element.attr("aria-label", percentValue);
|
9868
11065
|
|
9869
|
-
return "<div style='position:absolute; top:8px; bottom:8px; left:4px; right:" +
|
11066
|
+
return "<div style='position:absolute; top:8px; bottom:8px; left:4px; right:" + percentValue + "%; margin-right:4px; background-color:" + color + "; display:inline-block;' data-max='" + max + "' data-min='" + min + "'></div>" + (legend ? "<div style='position:absolute; top:4px; left:0; text-align:center; width:100%; color:" + legendColor + ";'>" + legend + "</div>" : "");
|
9870
11067
|
},
|
9871
11068
|
|
9872
11069
|
//background color
|
@@ -10137,6 +11334,101 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10137
11334
|
|
10138
11335
|
Tabulator.registerExtension("frozenColumns", FrozenColumns);
|
10139
11336
|
|
11337
|
+
var FrozenRows = function FrozenRows(table) {
|
11338
|
+
|
11339
|
+
this.table = table; //hold Tabulator object
|
11340
|
+
|
11341
|
+
|
11342
|
+
this.topElement = $("<div class='tabulator-frozen-rows-holder'></div>");
|
11343
|
+
|
11344
|
+
this.rows = [];
|
11345
|
+
};
|
11346
|
+
|
11347
|
+
FrozenRows.prototype.initialize = function () {
|
11348
|
+
|
11349
|
+
this.rows = [];
|
11350
|
+
|
11351
|
+
this.table.columnManager.element.append(this.topElement);
|
11352
|
+
};
|
11353
|
+
|
11354
|
+
FrozenRows.prototype.filterFrozenRows = function () {
|
11355
|
+
|
11356
|
+
var self = this,
|
11357
|
+
frozen = [];
|
11358
|
+
|
11359
|
+
self.table.rowManager.displayRows.forEach(function (row, i) {
|
11360
|
+
|
11361
|
+
if (row.extensions.frozen == true) {
|
11362
|
+
|
11363
|
+
frozen.unshift(i);
|
11364
|
+
}
|
11365
|
+
});
|
11366
|
+
|
11367
|
+
frozen.forEach(function (index) {
|
11368
|
+
|
11369
|
+
self.table.rowManager.displayRows.splice(index, 1);
|
11370
|
+
});
|
11371
|
+
};
|
11372
|
+
|
11373
|
+
FrozenRows.prototype.freezeRow = function (row) {
|
11374
|
+
|
11375
|
+
if (!row.extensions.frozen) {
|
11376
|
+
|
11377
|
+
row.extensions.frozen = true;
|
11378
|
+
|
11379
|
+
this.topElement.append(row.getElement());
|
11380
|
+
|
11381
|
+
this.table.rowManager.adjustTableSize();
|
11382
|
+
|
11383
|
+
this.table.rowManager.refreshActiveData();
|
11384
|
+
|
11385
|
+
this.rows.push(row);
|
11386
|
+
|
11387
|
+
this.styleRows();
|
11388
|
+
} else {
|
11389
|
+
|
11390
|
+
console.warn("Freeze Error - Row is already frozen");
|
11391
|
+
}
|
11392
|
+
};
|
11393
|
+
|
11394
|
+
FrozenRows.prototype.unfreezeRow = function (row) {
|
11395
|
+
|
11396
|
+
var index = this.rows.indexOf(row);
|
11397
|
+
|
11398
|
+
if (row.extensions.frozen) {
|
11399
|
+
|
11400
|
+
row.extensions.frozen = false;
|
11401
|
+
|
11402
|
+
row.getElement().detach();
|
11403
|
+
|
11404
|
+
this.table.rowManager.adjustTableSize();
|
11405
|
+
|
11406
|
+
this.table.rowManager.refreshActiveData();
|
11407
|
+
|
11408
|
+
this.rows.splice(index, 1);
|
11409
|
+
|
11410
|
+
if (this.rows.length) {
|
11411
|
+
|
11412
|
+
this.styleRows();
|
11413
|
+
}
|
11414
|
+
} else {
|
11415
|
+
|
11416
|
+
console.warn("Freeze Error - Row is already unfrozen");
|
11417
|
+
}
|
11418
|
+
};
|
11419
|
+
|
11420
|
+
FrozenRows.prototype.styleRows = function (row) {
|
11421
|
+
|
11422
|
+
var self = this;
|
11423
|
+
|
11424
|
+
this.rows.forEach(function (row, i) {
|
11425
|
+
|
11426
|
+
self.table.rowManager.styleRow(row, i);
|
11427
|
+
});
|
11428
|
+
};
|
11429
|
+
|
11430
|
+
Tabulator.registerExtension("frozenRows", FrozenRows);
|
11431
|
+
|
10140
11432
|
//public group object
|
10141
11433
|
|
10142
11434
|
|
@@ -10220,7 +11512,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10220
11512
|
//////////////////////////////////////////////////
|
10221
11513
|
|
10222
11514
|
|
10223
|
-
var Group = function Group(groupManager, parent, level, key, generator, oldGroup) {
|
11515
|
+
var Group = function Group(groupManager, parent, level, key, field, generator, oldGroup) {
|
10224
11516
|
|
10225
11517
|
this.groupManager = groupManager;
|
10226
11518
|
|
@@ -10230,6 +11522,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10230
11522
|
|
10231
11523
|
this.level = level;
|
10232
11524
|
|
11525
|
+
this.field = field;
|
11526
|
+
|
10233
11527
|
this.hasSubGroups = level < groupManager.groupIDLookups.length - 1;
|
10234
11528
|
|
10235
11529
|
this.addRow = this.hasSubGroups ? this._addRowToGroup : this._addRow;
|
@@ -10249,7 +11543,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10249
11543
|
|
10250
11544
|
this.element = $("<div class='tabulator-row tabulator-group tabulator-group-level-" + level + "' role='rowgroup'></div>");
|
10251
11545
|
|
10252
|
-
this.arrowElement = $("<div class='tabulator-arrow'></div>");
|
11546
|
+
this.elementContents = $(""), this.arrowElement = $("<div class='tabulator-arrow'></div>");
|
10253
11547
|
|
10254
11548
|
this.height = 0;
|
10255
11549
|
|
@@ -10261,6 +11555,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10261
11555
|
|
10262
11556
|
this.initialized = false;
|
10263
11557
|
|
11558
|
+
this.extensions = {};
|
11559
|
+
|
10264
11560
|
this.visible = oldGroup ? oldGroup.visible : typeof groupManager.startOpen[level] !== "undefined" ? groupManager.startOpen[level] : groupManager.startOpen[0];
|
10265
11561
|
|
10266
11562
|
this.addBindings();
|
@@ -10274,20 +11570,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10274
11570
|
tap,
|
10275
11571
|
toggleElement;
|
10276
11572
|
|
10277
|
-
if (self.groupManager.table.options.groupToggleElement) {
|
10278
|
-
|
10279
|
-
toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
|
10280
|
-
|
10281
|
-
toggleElement.on("click", function (e) {
|
10282
|
-
|
10283
|
-
e.stopPropagation();
|
10284
|
-
|
10285
|
-
e.stopImmediatePropagation();
|
10286
|
-
|
10287
|
-
self.toggleVisibility();
|
10288
|
-
});
|
10289
|
-
}
|
10290
|
-
|
10291
11573
|
//handle group click events
|
10292
11574
|
|
10293
11575
|
|
@@ -10387,6 +11669,20 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10387
11669
|
tapHold = null;
|
10388
11670
|
});
|
10389
11671
|
}
|
11672
|
+
|
11673
|
+
if (self.groupManager.table.options.groupToggleElement) {
|
11674
|
+
|
11675
|
+
toggleElement = self.groupManager.table.options.groupToggleElement == "arrow" ? self.arrowElement : self.element;
|
11676
|
+
|
11677
|
+
toggleElement.on("click", function (e) {
|
11678
|
+
|
11679
|
+
e.stopPropagation();
|
11680
|
+
|
11681
|
+
e.stopImmediatePropagation();
|
11682
|
+
|
11683
|
+
self.toggleVisibility();
|
11684
|
+
});
|
11685
|
+
}
|
10390
11686
|
};
|
10391
11687
|
|
10392
11688
|
Group.prototype._addRowToGroup = function (row) {
|
@@ -10395,11 +11691,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10395
11691
|
|
10396
11692
|
if (this.hasSubGroups) {
|
10397
11693
|
|
10398
|
-
var groupID = this.groupManager.groupIDLookups[level](row.getData());
|
11694
|
+
var groupID = this.groupManager.groupIDLookups[level].func(row.getData());
|
10399
11695
|
|
10400
11696
|
if (!this.groups[groupID]) {
|
10401
11697
|
|
10402
|
-
var group = new Group(this.groupManager, this, level, groupID, this.groupManager.headerGenerator[level] || this.groupManager.headerGenerator[0], this.old ? this.old.groups[groupID] : false);
|
11698
|
+
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[groupID] : false);
|
10403
11699
|
|
10404
11700
|
this.groups[groupID] = group;
|
10405
11701
|
|
@@ -10413,6 +11709,122 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10413
11709
|
Group.prototype._addRow = function (row) {
|
10414
11710
|
|
10415
11711
|
this.rows.push(row);
|
11712
|
+
|
11713
|
+
row.extensions.group = this;
|
11714
|
+
};
|
11715
|
+
|
11716
|
+
Group.prototype.insertRow = function (row, to, after) {
|
11717
|
+
|
11718
|
+
var data = this.conformRowData({});
|
11719
|
+
|
11720
|
+
row.updateData(data);
|
11721
|
+
|
11722
|
+
var toIndex = this.rows.indexOf(to);
|
11723
|
+
|
11724
|
+
if (toIndex > -1) {
|
11725
|
+
|
11726
|
+
if (after) {
|
11727
|
+
|
11728
|
+
this.rows.splice(toIndex + 1, 0, row);
|
11729
|
+
} else {
|
11730
|
+
|
11731
|
+
this.rows.splice(toIndex, 0, row);
|
11732
|
+
}
|
11733
|
+
} else {
|
11734
|
+
|
11735
|
+
if (after) {
|
11736
|
+
|
11737
|
+
this.rows.push(row);
|
11738
|
+
} else {
|
11739
|
+
|
11740
|
+
this.rows.unshift(row);
|
11741
|
+
}
|
11742
|
+
}
|
11743
|
+
|
11744
|
+
row.extensions.group = this;
|
11745
|
+
|
11746
|
+
this.generateGroupHeaderContents();
|
11747
|
+
|
11748
|
+
if (this.groupManager.table.extExists("columnCalcs")) {
|
11749
|
+
|
11750
|
+
this.groupManager.table.extensions.columnCalcs.recalcGroup(this);
|
11751
|
+
}
|
11752
|
+
};
|
11753
|
+
|
11754
|
+
Group.prototype.getRowIndex = function (row) {};
|
11755
|
+
|
11756
|
+
//update row data to match grouping contraints
|
11757
|
+
|
11758
|
+
|
11759
|
+
Group.prototype.conformRowData = function (data) {
|
11760
|
+
|
11761
|
+
if (this.field) {
|
11762
|
+
|
11763
|
+
data[this.field] = this.key;
|
11764
|
+
} else {
|
11765
|
+
|
11766
|
+
console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function");
|
11767
|
+
}
|
11768
|
+
|
11769
|
+
if (this.parent) {
|
11770
|
+
|
11771
|
+
data = this.parent.conformRowData(data);
|
11772
|
+
}
|
11773
|
+
|
11774
|
+
return data;
|
11775
|
+
};
|
11776
|
+
|
11777
|
+
Group.prototype.removeRow = function (row) {
|
11778
|
+
|
11779
|
+
var index = this.rows.indexOf(row);
|
11780
|
+
|
11781
|
+
if (index > -1) {
|
11782
|
+
|
11783
|
+
this.rows.splice(index, 1);
|
11784
|
+
}
|
11785
|
+
|
11786
|
+
if (!this.rows.length) {
|
11787
|
+
|
11788
|
+
if (this.parent) {
|
11789
|
+
|
11790
|
+
this.parent.removeGroup(this);
|
11791
|
+
} else {
|
11792
|
+
|
11793
|
+
this.groupManager.removeGroup(this);
|
11794
|
+
}
|
11795
|
+
|
11796
|
+
this.groupManager.updateGroupRows(true);
|
11797
|
+
} else {
|
11798
|
+
|
11799
|
+
this.generateGroupHeaderContents();
|
11800
|
+
|
11801
|
+
if (this.groupManager.table.extExists("columnCalcs")) {
|
11802
|
+
|
11803
|
+
this.groupManager.table.extensions.columnCalcs.recalcGroup(this);
|
11804
|
+
}
|
11805
|
+
}
|
11806
|
+
};
|
11807
|
+
|
11808
|
+
Group.prototype.removeGroup = function (group) {
|
11809
|
+
|
11810
|
+
var index;
|
11811
|
+
|
11812
|
+
if (this.groups[group.key]) {
|
11813
|
+
|
11814
|
+
delete this.groups[group.key];
|
11815
|
+
|
11816
|
+
index = this.groupList.indexOf(group);
|
11817
|
+
|
11818
|
+
if (index > -1) {
|
11819
|
+
|
11820
|
+
this.groupList.splice(index, 1);
|
11821
|
+
}
|
11822
|
+
|
11823
|
+
if (!this.groupList.length) {
|
11824
|
+
|
11825
|
+
this.parent.removeGroup();
|
11826
|
+
}
|
11827
|
+
}
|
10416
11828
|
};
|
10417
11829
|
|
10418
11830
|
Group.prototype.getHeadersAndRows = function () {
|
@@ -10599,21 +12011,28 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10599
12011
|
return match;
|
10600
12012
|
};
|
10601
12013
|
|
10602
|
-
|
12014
|
+
Group.prototype.generateGroupHeaderContents = function () {
|
10603
12015
|
|
12016
|
+
var data = [];
|
10604
12017
|
|
10605
|
-
|
12018
|
+
this.rows.forEach(function (row) {
|
10606
12019
|
|
10607
|
-
|
12020
|
+
data.push(row.getData());
|
12021
|
+
});
|
10608
12022
|
|
10609
|
-
this.
|
12023
|
+
this.elementContents = this.generator(this.key, this.getRowCount(), data, this.getComponent());
|
10610
12024
|
|
10611
|
-
|
12025
|
+
this.element.empty().append(this.elementContents).prepend(this.arrowElement);
|
12026
|
+
};
|
10612
12027
|
|
10613
|
-
|
12028
|
+
////////////// Standard Row Functions //////////////
|
12029
|
+
|
12030
|
+
|
12031
|
+
Group.prototype.getElement = function () {
|
12032
|
+
|
12033
|
+
this.addBindingsd = false;
|
10614
12034
|
|
10615
|
-
|
10616
|
-
});
|
12035
|
+
this._visSet();
|
10617
12036
|
|
10618
12037
|
if (this.visible) {
|
10619
12038
|
|
@@ -10625,7 +12044,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10625
12044
|
|
10626
12045
|
this.element.children().detach();
|
10627
12046
|
|
10628
|
-
this.
|
12047
|
+
this.generateGroupHeaderContents();
|
10629
12048
|
|
10630
12049
|
// this.addBindings();
|
10631
12050
|
|
@@ -10681,6 +12100,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10681
12100
|
return this.outerHeight;
|
10682
12101
|
};
|
10683
12102
|
|
12103
|
+
Group.prototype.getGroup = function () {
|
12104
|
+
|
12105
|
+
return this;
|
12106
|
+
};
|
12107
|
+
|
10684
12108
|
Group.prototype.reinitializeHeight = function () {};
|
10685
12109
|
|
10686
12110
|
Group.prototype.calcHeight = function () {};
|
@@ -10755,7 +12179,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10755
12179
|
//header layout function
|
10756
12180
|
|
10757
12181
|
|
10758
|
-
return value + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
|
12182
|
+
return (typeof value === "undefined" ? "" : value) + "<span>(" + count + " " + (count === 1 ? langValue : lang.groups.items) + ")</span>";
|
10759
12183
|
};
|
10760
12184
|
});
|
10761
12185
|
|
@@ -10819,7 +12243,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10819
12243
|
}
|
10820
12244
|
}
|
10821
12245
|
|
10822
|
-
self.groupIDLookups.push(
|
12246
|
+
self.groupIDLookups.push({
|
12247
|
+
|
12248
|
+
field: typeof group === "function" ? false : group,
|
12249
|
+
|
12250
|
+
func: lookupFunc
|
12251
|
+
|
12252
|
+
});
|
10823
12253
|
});
|
10824
12254
|
|
10825
12255
|
if (startOpen) {
|
@@ -10874,13 +12304,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10874
12304
|
|
10875
12305
|
var groupComponents = [];
|
10876
12306
|
|
10877
|
-
|
10878
|
-
|
10879
|
-
this.groupList.forEach(function (group) {
|
12307
|
+
this.groupList.forEach(function (group) {
|
10880
12308
|
|
10881
|
-
|
10882
|
-
|
10883
|
-
}
|
12309
|
+
groupComponents.push(group.getComponent());
|
12310
|
+
});
|
10884
12311
|
|
10885
12312
|
return groupComponents;
|
10886
12313
|
};
|
@@ -10918,19 +12345,28 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10918
12345
|
|
10919
12346
|
rows.forEach(function (row) {
|
10920
12347
|
|
10921
|
-
|
12348
|
+
self.assignRowToGroup(row, oldGroups);
|
12349
|
+
});
|
12350
|
+
};
|
10922
12351
|
|
10923
|
-
|
12352
|
+
GroupRows.prototype.assignRowToGroup = function (row, oldGroups) {
|
10924
12353
|
|
10925
|
-
|
12354
|
+
var groupID = this.groupIDLookups[0].func(row.getData()),
|
12355
|
+
oldGroups = oldGroups || [],
|
12356
|
+
newGroupNeeded = !this.groups[groupID];
|
10926
12357
|
|
10927
|
-
|
12358
|
+
if (newGroupNeeded) {
|
10928
12359
|
|
10929
|
-
|
10930
|
-
}
|
12360
|
+
var group = new Group(this, false, 0, groupID, this.groupIDLookups[0].field, this.headerGenerator[0], oldGroups[groupID]);
|
10931
12361
|
|
10932
|
-
|
10933
|
-
|
12362
|
+
this.groups[groupID] = group;
|
12363
|
+
|
12364
|
+
this.groupList.push(group);
|
12365
|
+
}
|
12366
|
+
|
12367
|
+
this.groups[groupID].addRow(row);
|
12368
|
+
|
12369
|
+
return !newGroupNeeded;
|
10934
12370
|
};
|
10935
12371
|
|
10936
12372
|
GroupRows.prototype.updateGroupRows = function (force) {
|
@@ -10949,11 +12385,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10949
12385
|
|
10950
12386
|
if (force) {
|
10951
12387
|
|
10952
|
-
oldRowCount = self.table.rowManager.displayRowsCount;
|
10953
|
-
|
10954
12388
|
self.table.rowManager.setDisplayRows(output);
|
10955
12389
|
|
10956
|
-
self.table.rowManager.
|
12390
|
+
self.table.rowManager.reRenderInPosition();
|
10957
12391
|
}
|
10958
12392
|
|
10959
12393
|
return output;
|
@@ -10967,6 +12401,23 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10967
12401
|
});
|
10968
12402
|
};
|
10969
12403
|
|
12404
|
+
GroupRows.prototype.removeGroup = function (group) {
|
12405
|
+
|
12406
|
+
var index;
|
12407
|
+
|
12408
|
+
if (this.groups[group.key]) {
|
12409
|
+
|
12410
|
+
delete this.groups[group.key];
|
12411
|
+
|
12412
|
+
index = this.groupList.indexOf(group);
|
12413
|
+
|
12414
|
+
if (index > -1) {
|
12415
|
+
|
12416
|
+
this.groupList.splice(index, 1);
|
12417
|
+
}
|
12418
|
+
}
|
12419
|
+
};
|
12420
|
+
|
10970
12421
|
Tabulator.registerExtension("groupRows", GroupRows);
|
10971
12422
|
|
10972
12423
|
var History = function History(table) {
|
@@ -10988,10 +12439,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
10988
12439
|
|
10989
12440
|
History.prototype.action = function (type, component, data) {
|
10990
12441
|
|
10991
|
-
|
10992
|
-
|
10993
|
-
this.history = this.history.slice(0, this.index + 1);
|
10994
|
-
}
|
12442
|
+
this.history = this.history.slice(0, this.index + 1);
|
10995
12443
|
|
10996
12444
|
this.history.push({
|
10997
12445
|
|
@@ -11016,6 +12464,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11016
12464
|
|
11017
12465
|
this.index--;
|
11018
12466
|
|
12467
|
+
this.table.options.historyUndo(action.type, action.component, action.data);
|
12468
|
+
|
11019
12469
|
return true;
|
11020
12470
|
} else {
|
11021
12471
|
|
@@ -11035,6 +12485,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11035
12485
|
|
11036
12486
|
this.redoers[action.type].call(this, action);
|
11037
12487
|
|
12488
|
+
this.table.options.historyRedo(action.type, action.component, action.data);
|
12489
|
+
|
11038
12490
|
return true;
|
11039
12491
|
} else {
|
11040
12492
|
|
@@ -11061,6 +12513,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11061
12513
|
var newRow = this.table.rowManager.addRowActual(action.data.data, action.data.pos, action.data.index);
|
11062
12514
|
|
11063
12515
|
this._rebindRow(action.component, newRow);
|
12516
|
+
},
|
12517
|
+
|
12518
|
+
rowMoved: function rowMoved(action) {
|
12519
|
+
|
12520
|
+
this.table.rowManager.moveRowActual(action.component, this.table.rowManager.rows[action.data.pos], false);
|
12521
|
+
|
12522
|
+
this.table.rowManager.redraw();
|
11064
12523
|
}
|
11065
12524
|
|
11066
12525
|
};
|
@@ -11082,6 +12541,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
11082
12541
|
rowDelete: function rowDelete(action) {
|
11083
12542
|
|
11084
12543
|
action.component.delete();
|
12544
|
+
},
|
12545
|
+
|
12546
|
+
rowMoved: function rowMoved(action) {
|
12547
|
+
|
12548
|
+
this.table.rowManager.moveRowActual(action.component, action.data.to, action.data.after);
|
12549
|
+
|
12550
|
+
this.table.rowManager.redraw();
|
11085
12551
|
}
|
11086
12552
|
|
11087
12553
|
};
|
@@ -12430,13 +13896,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
12430
13896
|
|
12431
13897
|
this.pagesElement = $("<span class='tabulator-pages'></span>");
|
12432
13898
|
|
12433
|
-
this.firstBut = $("<button class='tabulator-page' data-page='first' role='button' aria-label='' title=''></button>");
|
13899
|
+
this.firstBut = $("<button class='tabulator-page' data-page='first' role='button' aria-label='' title='' type='button'></button>");
|
12434
13900
|
|
12435
|
-
this.prevBut = $("<button class='tabulator-page' data-page='prev' role='button' aria-label='' title=''></button>");
|
13901
|
+
this.prevBut = $("<button class='tabulator-page' data-page='prev' role='button' aria-label='' title='' type='button'></button>");
|
12436
13902
|
|
12437
|
-
this.nextBut = $("<button class='tabulator-page' data-page='next' role='button' aria-label='' title=''></button>");
|
13903
|
+
this.nextBut = $("<button class='tabulator-page' data-page='next' role='button' aria-label='' title='' type='button'></button>");
|
12438
13904
|
|
12439
|
-
this.lastBut = $("<button class='tabulator-page' data-page='last' role='button' aria-label='' title=''></button>");
|
13905
|
+
this.lastBut = $("<button class='tabulator-page' data-page='last' role='button' aria-label='' title='' type='button'></button>");
|
12440
13906
|
|
12441
13907
|
this.mode = "local";
|
12442
13908
|
|
@@ -13003,7 +14469,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13003
14469
|
|
13004
14470
|
Tabulator.registerExtension("page", Page);
|
13005
14471
|
|
13006
|
-
var
|
14472
|
+
var Persistence = function Persistence(table) {
|
13007
14473
|
|
13008
14474
|
this.table = table; //hold Tabulator object
|
13009
14475
|
|
@@ -13018,7 +14484,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13018
14484
|
//setup parameters
|
13019
14485
|
|
13020
14486
|
|
13021
|
-
|
14487
|
+
Persistence.prototype.initialize = function (mode, id) {
|
13022
14488
|
|
13023
14489
|
//determine persistent layout storage type
|
13024
14490
|
|
@@ -13034,15 +14500,31 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13034
14500
|
//load saved definitions
|
13035
14501
|
|
13036
14502
|
|
13037
|
-
|
14503
|
+
Persistence.prototype.load = function (type, current) {
|
14504
|
+
|
14505
|
+
var data = this.retreiveData(type);
|
14506
|
+
|
14507
|
+
if (current) {
|
14508
|
+
|
14509
|
+
data = data ? this.mergeDefinition(current, data) : current;
|
14510
|
+
}
|
14511
|
+
|
14512
|
+
return data;
|
14513
|
+
};
|
14514
|
+
|
14515
|
+
//retreive data from memory
|
14516
|
+
|
13038
14517
|
|
13039
|
-
|
14518
|
+
Persistence.prototype.retreiveData = function (type) {
|
14519
|
+
|
14520
|
+
var data = "",
|
14521
|
+
id = this.id + (type === "columns" ? "" : "-" + type);
|
13040
14522
|
|
13041
14523
|
switch (this.mode) {
|
13042
14524
|
|
13043
14525
|
case "local":
|
13044
14526
|
|
13045
|
-
|
14527
|
+
data = localStorage.getItem(id);
|
13046
14528
|
|
13047
14529
|
break;
|
13048
14530
|
|
@@ -13052,7 +14534,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13052
14534
|
|
13053
14535
|
|
13054
14536
|
var cookie = document.cookie,
|
13055
|
-
cookiePos = cookie.indexOf(
|
14537
|
+
cookiePos = cookie.indexOf(id + "="),
|
13056
14538
|
end = void 0;
|
13057
14539
|
|
13058
14540
|
//if cookie exists, decode and load column data into tabulator
|
@@ -13069,7 +14551,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13069
14551
|
cookie = cookie.substr(0, end);
|
13070
14552
|
}
|
13071
14553
|
|
13072
|
-
|
14554
|
+
data = cookie.replace(id + "=", "");
|
13073
14555
|
}
|
13074
14556
|
|
13075
14557
|
break;
|
@@ -13080,24 +14562,22 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13080
14562
|
|
13081
14563
|
}
|
13082
14564
|
|
13083
|
-
|
13084
|
-
|
13085
|
-
newDefinition = JSON.parse(newDefinition);
|
13086
|
-
|
13087
|
-
definition = this.mergeDefinition(definition, newDefinition);
|
13088
|
-
}
|
13089
|
-
|
13090
|
-
return definition;
|
14565
|
+
return data ? JSON.parse(data) : false;
|
13091
14566
|
};
|
13092
14567
|
|
13093
14568
|
//merge old and new column defintions
|
13094
14569
|
|
13095
14570
|
|
13096
|
-
|
14571
|
+
Persistence.prototype.mergeDefinition = function (oldCols, newCols) {
|
13097
14572
|
|
13098
14573
|
var self = this,
|
13099
14574
|
output = [];
|
13100
14575
|
|
14576
|
+
// oldCols = oldCols || [];
|
14577
|
+
|
14578
|
+
|
14579
|
+
newCols = newCols || [];
|
14580
|
+
|
13101
14581
|
newCols.forEach(function (column, to) {
|
13102
14582
|
|
13103
14583
|
var from = self._findColumn(oldCols, column);
|
@@ -13123,7 +14603,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13123
14603
|
//find matching columns
|
13124
14604
|
|
13125
14605
|
|
13126
|
-
|
14606
|
+
Persistence.prototype._findColumn = function (columns, subject) {
|
13127
14607
|
|
13128
14608
|
var type = subject.columns ? "group" : subject.field ? "field" : "object";
|
13129
14609
|
|
@@ -13153,19 +14633,67 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13153
14633
|
});
|
13154
14634
|
};
|
13155
14635
|
|
13156
|
-
//save
|
14636
|
+
//save data
|
14637
|
+
|
14638
|
+
|
14639
|
+
Persistence.prototype.save = function (type) {
|
14640
|
+
|
14641
|
+
var data = {};
|
14642
|
+
|
14643
|
+
switch (type) {
|
14644
|
+
|
14645
|
+
case "columns":
|
14646
|
+
|
14647
|
+
data = this.parseColumns(this.table.columnManager.getColumns());
|
14648
|
+
|
14649
|
+
break;
|
14650
|
+
|
14651
|
+
case "filter":
|
14652
|
+
|
14653
|
+
data = this.table.extensions.filter.getFilters();
|
14654
|
+
|
14655
|
+
break;
|
14656
|
+
|
14657
|
+
case "sort":
|
14658
|
+
|
14659
|
+
data = this.validateSorters(this.table.extensions.sort.getSort());
|
14660
|
+
|
14661
|
+
break;
|
14662
|
+
|
14663
|
+
}
|
14664
|
+
|
14665
|
+
var id = this.id + (type === "columns" ? "" : "-" + type);
|
14666
|
+
|
14667
|
+
this.saveData(id, data);
|
14668
|
+
};
|
14669
|
+
|
14670
|
+
//ensure sorters contain no function data
|
14671
|
+
|
14672
|
+
|
14673
|
+
Persistence.prototype.validateSorters = function (data) {
|
14674
|
+
|
14675
|
+
data.forEach(function (item) {
|
14676
|
+
|
14677
|
+
item.column = item.field;
|
14678
|
+
|
14679
|
+
delete item.field;
|
14680
|
+
});
|
14681
|
+
|
14682
|
+
return data;
|
14683
|
+
};
|
14684
|
+
|
14685
|
+
//save data to chosed medium
|
13157
14686
|
|
13158
14687
|
|
13159
|
-
|
14688
|
+
Persistence.prototype.saveData = function (id, data) {
|
13160
14689
|
|
13161
|
-
|
13162
|
-
data = JSON.stringify(definition);
|
14690
|
+
data = JSON.stringify(data);
|
13163
14691
|
|
13164
14692
|
switch (this.mode) {
|
13165
14693
|
|
13166
14694
|
case "local":
|
13167
14695
|
|
13168
|
-
localStorage.setItem(
|
14696
|
+
localStorage.setItem(id, data);
|
13169
14697
|
|
13170
14698
|
break;
|
13171
14699
|
|
@@ -13178,7 +14706,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13178
14706
|
//save cookie
|
13179
14707
|
|
13180
14708
|
|
13181
|
-
document.cookie =
|
14709
|
+
document.cookie = id + "=" + data + "; expires=" + expireDate.toUTCString();
|
13182
14710
|
|
13183
14711
|
break;
|
13184
14712
|
|
@@ -13192,7 +14720,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13192
14720
|
//build premission list
|
13193
14721
|
|
13194
14722
|
|
13195
|
-
|
14723
|
+
Persistence.prototype.parseColumns = function (columns) {
|
13196
14724
|
|
13197
14725
|
var self = this,
|
13198
14726
|
definitions = [];
|
@@ -13223,7 +14751,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13223
14751
|
return definitions;
|
13224
14752
|
};
|
13225
14753
|
|
13226
|
-
Tabulator.registerExtension("
|
14754
|
+
Tabulator.registerExtension("persistence", Persistence);
|
13227
14755
|
|
13228
14756
|
var ResizeColumns = function ResizeColumns(table) {
|
13229
14757
|
|
@@ -13276,45 +14804,214 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13276
14804
|
|
13277
14805
|
var nearestColumn = column.getLastColumn();
|
13278
14806
|
|
13279
|
-
if (nearestColumn) {
|
14807
|
+
if (nearestColumn) {
|
14808
|
+
|
14809
|
+
self.startColumn = column;
|
14810
|
+
|
14811
|
+
self._mouseDown(e, nearestColumn);
|
14812
|
+
}
|
14813
|
+
});
|
14814
|
+
|
14815
|
+
handle.addEventListener("mousedown", function (e) {
|
14816
|
+
|
14817
|
+
var nearestColumn = column.getLastColumn();
|
14818
|
+
|
14819
|
+
if (nearestColumn) {
|
14820
|
+
|
14821
|
+
self.startColumn = column;
|
14822
|
+
|
14823
|
+
self._mouseDown(e, nearestColumn);
|
14824
|
+
}
|
14825
|
+
});
|
14826
|
+
|
14827
|
+
//reszie column on double click
|
14828
|
+
|
14829
|
+
|
14830
|
+
handle.addEventListener("dblclick", function (e) {
|
14831
|
+
|
14832
|
+
column.reinitializeWidth(true);
|
14833
|
+
});
|
14834
|
+
|
14835
|
+
prevHandle.addEventListener("click", function (e) {
|
14836
|
+
|
14837
|
+
e.stopPropagation();
|
14838
|
+
});
|
14839
|
+
|
14840
|
+
prevHandle.addEventListener("mousedown", function (e) {
|
14841
|
+
|
14842
|
+
var nearestColumn, colIndex, prevColumn;
|
14843
|
+
|
14844
|
+
nearestColumn = column.getFirstColumn();
|
14845
|
+
|
14846
|
+
if (nearestColumn) {
|
14847
|
+
|
14848
|
+
colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
|
14849
|
+
|
14850
|
+
prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
|
14851
|
+
|
14852
|
+
if (prevColumn) {
|
14853
|
+
|
14854
|
+
self.startColumn = column;
|
14855
|
+
|
14856
|
+
self._mouseDown(e, prevColumn);
|
14857
|
+
}
|
14858
|
+
}
|
14859
|
+
});
|
14860
|
+
|
14861
|
+
//resize column on double click
|
14862
|
+
|
14863
|
+
|
14864
|
+
prevHandle.addEventListener("dblclick", function (e) {
|
14865
|
+
|
14866
|
+
var nearestColumn, colIndex, prevColumn;
|
14867
|
+
|
14868
|
+
nearestColumn = column.getFirstColumn();
|
14869
|
+
|
14870
|
+
if (nearestColumn) {
|
14871
|
+
|
14872
|
+
colIndex = self.table.columnManager.findColumnIndex(nearestColumn);
|
14873
|
+
|
14874
|
+
prevColumn = colIndex > 0 ? self.table.columnManager.getColumnByIndex(colIndex - 1) : false;
|
14875
|
+
|
14876
|
+
if (prevColumn) {
|
14877
|
+
|
14878
|
+
prevColumn.reinitializeWidth(true);
|
14879
|
+
}
|
14880
|
+
}
|
14881
|
+
});
|
14882
|
+
|
14883
|
+
element.append(handle).append(prevHandle);
|
14884
|
+
}
|
14885
|
+
};
|
14886
|
+
|
14887
|
+
ResizeColumns.prototype._mouseDown = function (e, column) {
|
14888
|
+
|
14889
|
+
var self = this;
|
14890
|
+
|
14891
|
+
self.table.element.addClass("tabulator-block-select");
|
14892
|
+
|
14893
|
+
function mouseMove(e) {
|
14894
|
+
|
14895
|
+
column.setWidth(self.startWidth + (e.screenX - self.startX));
|
14896
|
+
|
14897
|
+
if (!self.table.browserSlow && column.extensions.resize && column.extensions.resize.variableHeight) {
|
14898
|
+
|
14899
|
+
column.checkCellHeights();
|
14900
|
+
}
|
14901
|
+
}
|
14902
|
+
|
14903
|
+
function mouseUp(e) {
|
14904
|
+
|
14905
|
+
//block editor from taking action while resizing is taking place
|
14906
|
+
|
14907
|
+
|
14908
|
+
if (self.startColumn.extensions.edit) {
|
14909
|
+
|
14910
|
+
self.startColumn.extensions.edit.blocked = false;
|
14911
|
+
}
|
14912
|
+
|
14913
|
+
if (self.table.browserSlow && column.extensions.resize && column.extensions.resize.variableHeight) {
|
14914
|
+
|
14915
|
+
column.checkCellHeights();
|
14916
|
+
}
|
14917
|
+
|
14918
|
+
$("body").off("mouseup", mouseMove);
|
14919
|
+
|
14920
|
+
$("body").off("mousemove", mouseMove);
|
14921
|
+
|
14922
|
+
self.table.element.removeClass("tabulator-block-select");
|
14923
|
+
|
14924
|
+
if (self.table.options.persistentLayout && self.table.extExists("persistence", true)) {
|
14925
|
+
|
14926
|
+
self.table.extensions.persistence.save("columns");
|
14927
|
+
}
|
14928
|
+
|
14929
|
+
self.table.options.columnResized(self.startColumn.getComponent());
|
14930
|
+
}
|
14931
|
+
|
14932
|
+
e.stopPropagation(); //prevent resize from interfereing with movable columns
|
14933
|
+
|
14934
|
+
|
14935
|
+
//block editor from taking action while resizing is taking place
|
14936
|
+
|
14937
|
+
|
14938
|
+
if (self.startColumn.extensions.edit) {
|
14939
|
+
|
14940
|
+
self.startColumn.extensions.edit.blocked = true;
|
14941
|
+
}
|
14942
|
+
|
14943
|
+
self.startX = e.screenX;
|
14944
|
+
|
14945
|
+
self.startWidth = column.getWidth();
|
14946
|
+
|
14947
|
+
$("body").on("mousemove", mouseMove);
|
14948
|
+
|
14949
|
+
$("body").on("mouseup", mouseUp);
|
14950
|
+
};
|
14951
|
+
|
14952
|
+
Tabulator.registerExtension("resizeColumns", ResizeColumns);
|
14953
|
+
|
14954
|
+
var ResizeRows = function ResizeRows(table) {
|
14955
|
+
|
14956
|
+
this.table = table; //hold Tabulator object
|
14957
|
+
|
14958
|
+
|
14959
|
+
this.startColumn = false;
|
14960
|
+
|
14961
|
+
this.startY = false;
|
14962
|
+
|
14963
|
+
this.startHeight = false;
|
14964
|
+
|
14965
|
+
this.handle = null;
|
14966
|
+
|
14967
|
+
this.prevHandle = null;
|
14968
|
+
};
|
14969
|
+
|
14970
|
+
ResizeRows.prototype.initializeRow = function (row) {
|
14971
|
+
|
14972
|
+
var self = this;
|
14973
|
+
|
14974
|
+
var handle = document.createElement('div');
|
14975
|
+
|
14976
|
+
handle.className = "tabulator-row-resize-handle";
|
14977
|
+
|
14978
|
+
var prevHandle = document.createElement('div');
|
13280
14979
|
|
13281
|
-
|
14980
|
+
prevHandle.className = "tabulator-row-resize-handle prev";
|
13282
14981
|
|
13283
|
-
|
13284
|
-
}
|
13285
|
-
});
|
14982
|
+
handle.addEventListener("click", function (e) {
|
13286
14983
|
|
13287
|
-
|
14984
|
+
e.stopPropagation();
|
14985
|
+
});
|
13288
14986
|
|
13289
|
-
|
13290
|
-
});
|
14987
|
+
handle.addEventListener("mousedown", function (e) {
|
13291
14988
|
|
13292
|
-
|
14989
|
+
self.startRow = row;
|
13293
14990
|
|
13294
|
-
|
14991
|
+
self._mouseDown(e, row);
|
14992
|
+
});
|
13295
14993
|
|
13296
|
-
|
14994
|
+
prevHandle.addEventListener("click", function (e) {
|
13297
14995
|
|
13298
|
-
|
14996
|
+
e.stopPropagation();
|
14997
|
+
});
|
13299
14998
|
|
13300
|
-
|
14999
|
+
prevHandle.addEventListener("mousedown", function (e) {
|
13301
15000
|
|
13302
|
-
|
15001
|
+
var prevRow = self.table.rowManager.prevDisplayRow(row);
|
13303
15002
|
|
13304
|
-
|
15003
|
+
if (prevRow) {
|
13305
15004
|
|
13306
|
-
|
15005
|
+
self.startRow = prevRow;
|
13307
15006
|
|
13308
|
-
|
13309
|
-
|
13310
|
-
|
13311
|
-
});
|
15007
|
+
self._mouseDown(e, prevRow);
|
15008
|
+
}
|
15009
|
+
});
|
13312
15010
|
|
13313
|
-
|
13314
|
-
}
|
15011
|
+
row.getElement().append(handle).append(prevHandle);
|
13315
15012
|
};
|
13316
15013
|
|
13317
|
-
|
15014
|
+
ResizeRows.prototype._mouseDown = function (e, row) {
|
13318
15015
|
|
13319
15016
|
var self = this;
|
13320
15017
|
|
@@ -13322,28 +15019,22 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13322
15019
|
|
13323
15020
|
function mouseMove(e) {
|
13324
15021
|
|
13325
|
-
|
13326
|
-
|
13327
|
-
if (!self.table.browserSlow && column.extensions.resize && column.extensions.resize.variableHeight) {
|
13328
|
-
|
13329
|
-
column.checkCellHeights();
|
13330
|
-
}
|
15022
|
+
row.setHeight(self.startHeight + (e.screenY - self.startY));
|
13331
15023
|
}
|
13332
15024
|
|
13333
15025
|
function mouseUp(e) {
|
13334
15026
|
|
13335
|
-
//block editor from taking action while resizing is taking place
|
15027
|
+
// //block editor from taking action while resizing is taking place
|
13336
15028
|
|
13337
15029
|
|
13338
|
-
if
|
15030
|
+
// if(self.startColumn.extensions.edit){
|
13339
15031
|
|
13340
|
-
self.startColumn.extensions.edit.blocked = false;
|
13341
|
-
}
|
13342
15032
|
|
13343
|
-
|
15033
|
+
// self.startColumn.extensions.edit.blocked = false;
|
15034
|
+
|
15035
|
+
|
15036
|
+
// }
|
13344
15037
|
|
13345
|
-
column.checkCellHeights();
|
13346
|
-
}
|
13347
15038
|
|
13348
15039
|
$("body").off("mouseup", mouseMove);
|
13349
15040
|
|
@@ -13351,12 +15042,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13351
15042
|
|
13352
15043
|
self.table.element.removeClass("tabulator-block-select");
|
13353
15044
|
|
13354
|
-
|
13355
|
-
|
13356
|
-
self.table.extensions.persistentLayout.save();
|
13357
|
-
}
|
13358
|
-
|
13359
|
-
self.table.options.columnResized(self.startColumn.getComponent());
|
15045
|
+
self.table.options.rowResized(row.getComponent());
|
13360
15046
|
}
|
13361
15047
|
|
13362
15048
|
e.stopPropagation(); //prevent resize from interfereing with movable columns
|
@@ -13365,21 +15051,55 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13365
15051
|
//block editor from taking action while resizing is taking place
|
13366
15052
|
|
13367
15053
|
|
13368
|
-
if
|
15054
|
+
// if(self.startColumn.extensions.edit){
|
13369
15055
|
|
13370
|
-
self.startColumn.extensions.edit.blocked = true;
|
13371
|
-
}
|
13372
15056
|
|
13373
|
-
self.
|
15057
|
+
// self.startColumn.extensions.edit.blocked = true;
|
13374
15058
|
|
13375
|
-
|
15059
|
+
|
15060
|
+
// }
|
15061
|
+
|
15062
|
+
|
15063
|
+
self.startY = e.screenY;
|
15064
|
+
|
15065
|
+
self.startHeight = row.getHeight();
|
13376
15066
|
|
13377
15067
|
$("body").on("mousemove", mouseMove);
|
13378
15068
|
|
13379
15069
|
$("body").on("mouseup", mouseUp);
|
13380
15070
|
};
|
13381
15071
|
|
13382
|
-
Tabulator.registerExtension("
|
15072
|
+
Tabulator.registerExtension("resizeRows", ResizeRows);
|
15073
|
+
|
15074
|
+
var ResizeTable = function ResizeTable(table) {
|
15075
|
+
|
15076
|
+
this.table = table; //hold Tabulator object
|
15077
|
+
|
15078
|
+
};
|
15079
|
+
|
15080
|
+
ResizeTable.prototype.initialize = function (row) {
|
15081
|
+
|
15082
|
+
var table = this.table,
|
15083
|
+
observer;
|
15084
|
+
|
15085
|
+
if (typeof ResizeObserver !== "undefined") {
|
15086
|
+
|
15087
|
+
observer = new ResizeObserver(function (entry) {
|
15088
|
+
|
15089
|
+
table.redraw();
|
15090
|
+
});
|
15091
|
+
|
15092
|
+
observer.observe(table.element[0]);
|
15093
|
+
} else {
|
15094
|
+
|
15095
|
+
$(window).resize(function () {
|
15096
|
+
|
15097
|
+
$(".tabulator").tabulator("redraw");
|
15098
|
+
});
|
15099
|
+
}
|
15100
|
+
};
|
15101
|
+
|
15102
|
+
Tabulator.registerExtension("resizeTable", ResizeTable);
|
13383
15103
|
|
13384
15104
|
var ResponsiveLayout = function ResponsiveLayout(table) {
|
13385
15105
|
|
@@ -13633,7 +15353,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13633
15353
|
|
13634
15354
|
self.table.rowManager.rows.forEach(function (row) {
|
13635
15355
|
|
13636
|
-
self._selectRow(row,
|
15356
|
+
self._selectRow(row, false, true);
|
13637
15357
|
});
|
13638
15358
|
|
13639
15359
|
self._rowSelectionChanged();
|
@@ -13646,7 +15366,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13646
15366
|
|
13647
15367
|
self.table.rowManager.activeRows.forEach(function (row) {
|
13648
15368
|
|
13649
|
-
self._selectRow(row,
|
15369
|
+
self._selectRow(row, false, true);
|
13650
15370
|
});
|
13651
15371
|
|
13652
15372
|
self._rowSelectionChanged();
|
@@ -13660,7 +15380,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13660
15380
|
|
13661
15381
|
rows.forEach(function (row) {
|
13662
15382
|
|
13663
|
-
self._selectRow(row
|
15383
|
+
self._selectRow(row);
|
13664
15384
|
});
|
13665
15385
|
|
13666
15386
|
self._rowSelectionChanged();
|
@@ -13691,7 +15411,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13691
15411
|
|
13692
15412
|
if (self.table.options.selectableRollingSelection) {
|
13693
15413
|
|
13694
|
-
self._deselectRow(self.selectedRows[0]
|
15414
|
+
self._deselectRow(self.selectedRows[0]);
|
13695
15415
|
} else {
|
13696
15416
|
|
13697
15417
|
return false;
|
@@ -13719,7 +15439,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13719
15439
|
}
|
13720
15440
|
} else {
|
13721
15441
|
|
13722
|
-
|
15442
|
+
if (!silent) {
|
15443
|
+
|
15444
|
+
console.warn("Selection Error - No such row found, ignoring selection:" + rowInfo);
|
15445
|
+
}
|
13723
15446
|
}
|
13724
15447
|
};
|
13725
15448
|
|
@@ -13746,7 +15469,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13746
15469
|
|
13747
15470
|
rows.forEach(function (row) {
|
13748
15471
|
|
13749
|
-
self._deselectRow(row
|
15472
|
+
self._deselectRow(row);
|
13750
15473
|
});
|
13751
15474
|
|
13752
15475
|
self._rowSelectionChanged();
|
@@ -13790,7 +15513,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13790
15513
|
}
|
13791
15514
|
} else {
|
13792
15515
|
|
13793
|
-
|
15516
|
+
if (!silent) {
|
15517
|
+
|
15518
|
+
console.warn("Deselection Error - No such row found, ignoring selection:" + rowInfo);
|
15519
|
+
}
|
13794
15520
|
}
|
13795
15521
|
};
|
13796
15522
|
|
@@ -13995,6 +15721,11 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
13995
15721
|
});
|
13996
15722
|
|
13997
15723
|
self.sortList = newSortList;
|
15724
|
+
|
15725
|
+
if (this.table.options.persistentSort && this.table.extExists("persistence", true)) {
|
15726
|
+
|
15727
|
+
this.table.extensions.persistence.save("sort");
|
15728
|
+
}
|
13998
15729
|
};
|
13999
15730
|
|
14000
15731
|
//clear sorters
|
@@ -14203,7 +15934,27 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14203
15934
|
|
14204
15935
|
number: function number(a, b, aRow, bRow, column, dir, params) {
|
14205
15936
|
|
14206
|
-
|
15937
|
+
var a = parseFloat(String(a).replace(",", ""));
|
15938
|
+
|
15939
|
+
var b = parseFloat(String(b).replace(",", ""));
|
15940
|
+
|
15941
|
+
//handle non numeric values
|
15942
|
+
|
15943
|
+
|
15944
|
+
if (isNaN(a)) {
|
15945
|
+
|
15946
|
+
return -1;
|
15947
|
+
|
15948
|
+
if (isNaN(b)) {
|
15949
|
+
|
15950
|
+
return 0;
|
15951
|
+
}
|
15952
|
+
} else if (isNaN(b)) {
|
15953
|
+
|
15954
|
+
return 1;
|
15955
|
+
}
|
15956
|
+
|
15957
|
+
return a - b;
|
14207
15958
|
},
|
14208
15959
|
|
14209
15960
|
//sort strings
|
@@ -14211,7 +15962,28 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14211
15962
|
|
14212
15963
|
string: function string(a, b, aRow, bRow, column, dir, params) {
|
14213
15964
|
|
14214
|
-
|
15965
|
+
var locale;
|
15966
|
+
|
15967
|
+
switch (_typeof(params.locale)) {
|
15968
|
+
|
15969
|
+
case "boolean":
|
15970
|
+
|
15971
|
+
if (params.locale) {
|
15972
|
+
|
15973
|
+
local = this.table.extensions.localize.getLocale();
|
15974
|
+
}
|
15975
|
+
|
15976
|
+
break;
|
15977
|
+
|
15978
|
+
case "string":
|
15979
|
+
|
15980
|
+
locale = params.locale;
|
15981
|
+
|
15982
|
+
break;
|
15983
|
+
|
15984
|
+
}
|
15985
|
+
|
15986
|
+
return String(a).toLowerCase().localeCompare(String(b).toLowerCase(), locale);
|
14215
15987
|
},
|
14216
15988
|
|
14217
15989
|
//sort date
|
@@ -14228,6 +16000,48 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14228
16000
|
a = moment(a, format);
|
14229
16001
|
|
14230
16002
|
b = moment(b, format);
|
16003
|
+
|
16004
|
+
if (!a.isValid()) {
|
16005
|
+
|
16006
|
+
a = -1000000000000000;
|
16007
|
+
}
|
16008
|
+
|
16009
|
+
if (!b.isValid()) {
|
16010
|
+
|
16011
|
+
b = -1000000000000000;
|
16012
|
+
}
|
16013
|
+
} else {
|
16014
|
+
|
16015
|
+
console.error("Sort Error - 'date' sorter is dependant on moment.js");
|
16016
|
+
}
|
16017
|
+
|
16018
|
+
return a - b;
|
16019
|
+
},
|
16020
|
+
|
16021
|
+
//sort hh:mm formatted times
|
16022
|
+
|
16023
|
+
|
16024
|
+
time: function time(a, b, aRow, bRow, column, dir, params) {
|
16025
|
+
|
16026
|
+
var self = this;
|
16027
|
+
|
16028
|
+
var format = params.format || "hh:mm";
|
16029
|
+
|
16030
|
+
if (typeof moment != "undefined") {
|
16031
|
+
|
16032
|
+
a = moment(a, format);
|
16033
|
+
|
16034
|
+
b = moment(b, format);
|
16035
|
+
|
16036
|
+
if (!a.isValid()) {
|
16037
|
+
|
16038
|
+
a = -1000000000000000;
|
16039
|
+
}
|
16040
|
+
|
16041
|
+
if (!b.isValid()) {
|
16042
|
+
|
16043
|
+
b = -1000000000000000;
|
16044
|
+
}
|
14231
16045
|
} else {
|
14232
16046
|
|
14233
16047
|
console.error("Sort Error - 'date' sorter is dependant on moment.js");
|
@@ -14236,6 +16050,38 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14236
16050
|
return a - b;
|
14237
16051
|
},
|
14238
16052
|
|
16053
|
+
//sort datetime
|
16054
|
+
|
16055
|
+
|
16056
|
+
datetime: function datetime(a, b, aRow, bRow, column, dir, params) {
|
16057
|
+
|
16058
|
+
var self = this;
|
16059
|
+
|
16060
|
+
var format = params.format || "DD/MM/YYYY hh:mm:ss";
|
16061
|
+
|
16062
|
+
if (typeof moment != "undefined") {
|
16063
|
+
|
16064
|
+
a = moment(a, format);
|
16065
|
+
|
16066
|
+
b = moment(b, format);
|
16067
|
+
|
16068
|
+
if (!a.isValid()) {
|
16069
|
+
|
16070
|
+
a = -1000000000000000;
|
16071
|
+
}
|
16072
|
+
|
16073
|
+
if (!b.isValid()) {
|
16074
|
+
|
16075
|
+
b = -1000000000000000;
|
16076
|
+
}
|
16077
|
+
} else {
|
16078
|
+
|
16079
|
+
console.error("Sort Error - 'datetime' sorter is dependant on moment.js");
|
16080
|
+
}
|
16081
|
+
|
16082
|
+
return a - b;
|
16083
|
+
},
|
16084
|
+
|
14239
16085
|
//sort booleans
|
14240
16086
|
|
14241
16087
|
|
@@ -14248,6 +16094,95 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14248
16094
|
return el1 - el2;
|
14249
16095
|
},
|
14250
16096
|
|
16097
|
+
//sort if element contains any data
|
16098
|
+
|
16099
|
+
|
16100
|
+
array: function array(a, b, aRow, bRow, column, dir, params) {
|
16101
|
+
|
16102
|
+
var el1 = 0;
|
16103
|
+
|
16104
|
+
var el2 = 0;
|
16105
|
+
|
16106
|
+
var type = params.type || "length";
|
16107
|
+
|
16108
|
+
//handle non array values
|
16109
|
+
|
16110
|
+
|
16111
|
+
if (!Array.isArray(a)) {
|
16112
|
+
|
16113
|
+
return -1;
|
16114
|
+
|
16115
|
+
if (!Array.isArray(b)) {
|
16116
|
+
|
16117
|
+
return 0;
|
16118
|
+
}
|
16119
|
+
} else if (!Array.isArray(b)) {
|
16120
|
+
|
16121
|
+
return 1;
|
16122
|
+
}
|
16123
|
+
|
16124
|
+
function calc(value) {
|
16125
|
+
|
16126
|
+
switch (type) {
|
16127
|
+
|
16128
|
+
case "length":
|
16129
|
+
|
16130
|
+
return value.length;
|
16131
|
+
|
16132
|
+
break;
|
16133
|
+
|
16134
|
+
case "sum":
|
16135
|
+
|
16136
|
+
return value.reduce(function (c, d) {
|
16137
|
+
|
16138
|
+
return c + d;
|
16139
|
+
});
|
16140
|
+
|
16141
|
+
break;
|
16142
|
+
|
16143
|
+
case "max":
|
16144
|
+
|
16145
|
+
return Math.max.apply(null, value);
|
16146
|
+
|
16147
|
+
break;
|
16148
|
+
|
16149
|
+
case "min":
|
16150
|
+
|
16151
|
+
return Math.min.apply(null, value);
|
16152
|
+
|
16153
|
+
break;
|
16154
|
+
|
16155
|
+
case "avg":
|
16156
|
+
|
16157
|
+
return value.reduce(function (c, d) {
|
16158
|
+
|
16159
|
+
return c + d;
|
16160
|
+
}) / value.length;
|
16161
|
+
|
16162
|
+
break;
|
16163
|
+
|
16164
|
+
}
|
16165
|
+
}
|
16166
|
+
|
16167
|
+
el1 = a ? calc(a) : 0;
|
16168
|
+
|
16169
|
+
el2 = b ? calc(b) : 0;
|
16170
|
+
|
16171
|
+
return el1 - el2;
|
16172
|
+
},
|
16173
|
+
|
16174
|
+
//sort if element contains any data
|
16175
|
+
|
16176
|
+
|
16177
|
+
exists: function exists(a, b, aRow, bRow, column, dir, params) {
|
16178
|
+
|
16179
|
+
var el1 = typeof a == "undefined" ? 0 : 1;
|
16180
|
+
|
16181
|
+
var el2 = typeof b == "undefined" ? 0 : 1;
|
16182
|
+
|
16183
|
+
return el1 - el2;
|
16184
|
+
},
|
16185
|
+
|
14251
16186
|
//sort alpha numeric strings
|
14252
16187
|
|
14253
16188
|
|
@@ -14298,28 +16233,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14298
16233
|
}
|
14299
16234
|
|
14300
16235
|
return a.length > b.length;
|
14301
|
-
},
|
14302
|
-
|
14303
|
-
//sort hh:mm formatted times
|
14304
|
-
|
14305
|
-
|
14306
|
-
time: function time(a, b, aRow, bRow, column, dir, params) {
|
14307
|
-
|
14308
|
-
var self = this;
|
14309
|
-
|
14310
|
-
var format = params.format || "hh:mm";
|
14311
|
-
|
14312
|
-
if (typeof moment != "undefined") {
|
14313
|
-
|
14314
|
-
a = moment(a, format);
|
14315
|
-
|
14316
|
-
b = moment(b, format);
|
14317
|
-
} else {
|
14318
|
-
|
14319
|
-
console.error("Sort Error - 'date' sorter is dependant on moment.js");
|
14320
|
-
}
|
14321
|
-
|
14322
|
-
return a - b;
|
14323
16236
|
}
|
14324
16237
|
|
14325
16238
|
};
|
@@ -14548,13 +16461,15 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|
14548
16461
|
|
14549
16462
|
var cellData = cell.getData();
|
14550
16463
|
|
16464
|
+
var column = cell.getColumn()._getSelf();
|
16465
|
+
|
14551
16466
|
this.table.rowManager.rows.forEach(function (row) {
|
14552
16467
|
|
14553
16468
|
var data = row.getData();
|
14554
16469
|
|
14555
16470
|
if (data !== cellData) {
|
14556
16471
|
|
14557
|
-
if (value ==
|
16472
|
+
if (value == column.getFieldValue(data)) {
|
14558
16473
|
|
14559
16474
|
unique = false;
|
14560
16475
|
}
|