tabulator-tables 5.0.7 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +6 -0
- package/LICENSE +1 -1
- package/bower.json +1 -1
- package/build/rollup.js +1 -1
- package/dist/css/tabulator.css +15 -2
- package/dist/css/tabulator.css.map +1 -1
- package/dist/css/tabulator.min.css +1 -1
- package/dist/css/tabulator.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.css +15 -2
- package/dist/css/tabulator_bootstrap3.css.map +1 -1
- package/dist/css/tabulator_bootstrap3.min.css +1 -1
- package/dist/css/tabulator_bootstrap3.min.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.css +15 -2
- package/dist/css/tabulator_bootstrap4.css.map +1 -1
- package/dist/css/tabulator_bootstrap4.min.css +1 -1
- package/dist/css/tabulator_bootstrap4.min.css.map +1 -1
- package/dist/css/tabulator_bulma.css +15 -2
- package/dist/css/tabulator_bulma.css.map +1 -1
- package/dist/css/tabulator_bulma.min.css +1 -1
- package/dist/css/tabulator_bulma.min.css.map +1 -1
- package/dist/css/tabulator_materialize.css +22 -6
- package/dist/css/tabulator_materialize.css.map +1 -1
- package/dist/css/tabulator_materialize.min.css +1 -1
- package/dist/css/tabulator_materialize.min.css.map +1 -1
- package/dist/css/tabulator_midnight.css +19 -2
- package/dist/css/tabulator_midnight.css.map +1 -1
- package/dist/css/tabulator_midnight.min.css +1 -1
- package/dist/css/tabulator_midnight.min.css.map +1 -1
- package/dist/css/tabulator_modern.css +15 -2
- package/dist/css/tabulator_modern.css.map +1 -1
- package/dist/css/tabulator_modern.min.css +1 -1
- package/dist/css/tabulator_modern.min.css.map +1 -1
- package/dist/css/tabulator_semanticui.css +15 -2
- package/dist/css/tabulator_semanticui.css.map +1 -1
- package/dist/css/tabulator_semanticui.min.css +1 -1
- package/dist/css/tabulator_semanticui.min.css.map +1 -1
- package/dist/css/tabulator_simple.css +15 -2
- package/dist/css/tabulator_simple.css.map +1 -1
- package/dist/css/tabulator_simple.min.css +1 -1
- package/dist/css/tabulator_simple.min.css.map +1 -1
- package/dist/css/tabulator_site.css +19 -2
- package/dist/css/tabulator_site.css.map +1 -1
- package/dist/css/tabulator_site.min.css +1 -1
- package/dist/css/tabulator_site.min.css.map +1 -1
- package/dist/js/tabulator.js +1121 -533
- package/dist/js/tabulator.js.map +1 -1
- package/dist/js/tabulator.min.js +2 -2
- package/dist/js/tabulator.min.js.map +1 -1
- package/dist/js/tabulator_esm.js +1566 -991
- package/dist/js/tabulator_esm.js.map +1 -1
- package/dist/js/tabulator_esm.min.js +2 -2
- package/dist/js/tabulator_esm.min.js.map +1 -1
- package/package.json +1 -1
- package/src/js/core/ColumnManager.js +4 -2
- package/src/js/core/CoreFeature.js +1 -5
- package/src/js/core/RowManager.js +15 -9
- package/src/js/core/Tabulator.js +14 -59
- package/src/js/core/cell/Cell.js +5 -1
- package/src/js/core/column/Column.js +21 -6
- package/src/js/core/column/ColumnComponent.js +4 -0
- package/src/js/core/column/defaults/options.js +1 -0
- package/src/js/core/defaults/options.js +3 -3
- package/src/js/core/modules/optional.js +1 -0
- package/src/js/core/rendering/Renderer.js +3 -2
- package/src/js/core/rendering/renderers/BasicVertical.js +2 -1
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +165 -151
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +1 -1
- package/src/js/core/row/Row.js +2 -2
- package/src/js/core/tools/{ComponentFuctionBinder.js → ComponentFunctionBinder.js} +1 -1
- package/src/js/core/tools/DataLoader.js +6 -6
- package/src/js/core/tools/InteractionMonitor.js +149 -49
- package/src/js/core/tools/OptionsList.js +2 -2
- package/src/js/modules/Ajax/Ajax.js +62 -82
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +15 -2
- package/src/js/modules/DataTree/DataTree.js +23 -9
- package/src/js/modules/Download/defaults/downloaders/json.js +1 -1
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +32 -0
- package/src/js/modules/Download/defaults/downloaders/pdf.js +0 -2
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +3 -2
- package/src/js/modules/Download/defaults/downloaders.js +2 -0
- package/src/js/modules/Edit/Edit.js +27 -39
- package/src/js/modules/Edit/defaults/editors/progress.js +2 -2
- package/src/js/modules/Export/Export.js +1 -1
- package/src/js/modules/Filter/Filter.js +2 -2
- package/src/js/modules/Format/defaults/formatters/datetime.js +2 -2
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +2 -1
- package/src/js/modules/FrozenColumns/FrozenColumns.js +1 -1
- package/src/js/modules/FrozenRows/FrozenRows.js +9 -0
- package/src/js/modules/GroupRows/Group.js +18 -67
- package/src/js/modules/GroupRows/GroupRows.js +8 -3
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +4 -7
- package/src/js/modules/Import/Import.js +197 -0
- package/src/js/modules/Import/defaults/importers/csv.js +63 -0
- package/src/js/modules/Import/defaults/importers/json.js +8 -0
- package/src/js/modules/Import/defaults/importers.js +7 -0
- package/src/js/modules/Interaction/Interaction.js +5 -0
- package/src/js/modules/Keybindings/Keybindings.js +9 -14
- package/src/js/modules/Keybindings/defaults/bindings.js +3 -3
- package/src/js/modules/Localize/defaults/langs.js +6 -0
- package/src/js/modules/Menu/Menu.js +200 -155
- package/src/js/modules/MoveColumns/MoveColumns.js +58 -57
- package/src/js/modules/MoveRows/MoveRows.js +4 -0
- package/src/js/modules/Page/Page.js +279 -183
- package/src/js/modules/Page/defaults/pageCounters/pages.js +33 -0
- package/src/js/modules/Page/defaults/pageCounters/rows.js +32 -0
- package/src/js/modules/Page/defaults/pageCounters.js +8 -0
- package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -5
- package/src/js/modules/SelectRow/SelectRow.js +4 -8
- package/src/js/modules/Sort/Sort.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/datetime.js +3 -2
- package/src/js/modules/Validate/Validate.js +7 -5
- package/src/scss/tabulator.scss +20 -2
- package/src/scss/themes/materialize/tabulator_materialize.scss +5 -4
- package/src/scss/themes/tabulator_midnight.scss +4 -0
- package/src/scss/themes/tabulator_site.scss +4 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default function(pageSize, currentRow, currentPage, totalRows, totalPages){
|
|
2
|
+
|
|
3
|
+
var el = document.createElement("span"),
|
|
4
|
+
showingEl = document.createElement("span"),
|
|
5
|
+
valueEl = document.createElement("span"),
|
|
6
|
+
ofEl = document.createElement("span"),
|
|
7
|
+
totalEl = document.createElement("span"),
|
|
8
|
+
rowsEl = document.createElement("span");
|
|
9
|
+
|
|
10
|
+
this.table.modules.localize.langBind("pagination|counter|showing", (value) => {
|
|
11
|
+
showingEl.innerHTML = value;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
valueEl.innerHTML = " " + currentPage + " ";
|
|
15
|
+
|
|
16
|
+
this.table.modules.localize.langBind("pagination|counter|of", (value) => {
|
|
17
|
+
ofEl.innerHTML = value;
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
totalEl.innerHTML = " " + totalPages + " ";
|
|
21
|
+
|
|
22
|
+
this.table.modules.localize.langBind("pagination|counter|pages", (value) => {
|
|
23
|
+
rowsEl.innerHTML = value;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
el.appendChild(showingEl);
|
|
27
|
+
el.appendChild(valueEl);
|
|
28
|
+
el.appendChild(ofEl);
|
|
29
|
+
el.appendChild(totalEl);
|
|
30
|
+
el.appendChild(rowsEl);
|
|
31
|
+
|
|
32
|
+
return el;
|
|
33
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export default function(pageSize, currentRow, currentPage, totalRows, totalPages){
|
|
2
|
+
var el = document.createElement("span"),
|
|
3
|
+
showingEl = document.createElement("span"),
|
|
4
|
+
valueEl = document.createElement("span"),
|
|
5
|
+
ofEl = document.createElement("span"),
|
|
6
|
+
totalEl = document.createElement("span"),
|
|
7
|
+
rowsEl = document.createElement("span");
|
|
8
|
+
|
|
9
|
+
this.table.modules.localize.langBind("pagination|counter|showing", (value) => {
|
|
10
|
+
showingEl.innerHTML = value;
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
valueEl.innerHTML = " " + currentRow + "-" + Math.min((currentRow + pageSize - 1), totalRows) + " ";
|
|
14
|
+
|
|
15
|
+
this.table.modules.localize.langBind("pagination|counter|of", (value) => {
|
|
16
|
+
ofEl.innerHTML = value;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
totalEl.innerHTML = " " + totalRows + " ";
|
|
20
|
+
|
|
21
|
+
this.table.modules.localize.langBind("pagination|counter|rows", (value) => {
|
|
22
|
+
rowsEl.innerHTML = value;
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
el.appendChild(showingEl);
|
|
26
|
+
el.appendChild(valueEl);
|
|
27
|
+
el.appendChild(ofEl);
|
|
28
|
+
el.appendChild(totalEl);
|
|
29
|
+
el.appendChild(rowsEl);
|
|
30
|
+
|
|
31
|
+
return el;
|
|
32
|
+
};
|
|
@@ -86,7 +86,7 @@ class ResizeRows extends Module{
|
|
|
86
86
|
|
|
87
87
|
self.table.element.classList.remove("tabulator-block-select");
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
self.dispatchExternal("rowResized", row.getComponent());
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
e.stopPropagation(); //prevent resize from interfereing with movable columns
|
|
@@ -21,7 +21,7 @@ class ResponsiveLayout extends Module{
|
|
|
21
21
|
this.registerColumnOption("responsive");
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
//generate
|
|
24
|
+
//generate responsive columns list
|
|
25
25
|
initialize(){
|
|
26
26
|
var self = this,
|
|
27
27
|
columns = [];
|
|
@@ -60,7 +60,7 @@ class ResponsiveLayout extends Module{
|
|
|
60
60
|
this.collapseStartOpen = this.table.options.responsiveLayoutCollapseStartOpen;
|
|
61
61
|
this.hiddenColumns = [];
|
|
62
62
|
|
|
63
|
-
//
|
|
63
|
+
//determine level of responsivity for each column
|
|
64
64
|
this.table.columnManager.columnsByIndex.forEach(function(column, i){
|
|
65
65
|
if(column.modules.responsive){
|
|
66
66
|
if(column.modules.responsive.order && column.modules.responsive.visible){
|
|
@@ -142,10 +142,8 @@ class ResponsiveLayout extends Module{
|
|
|
142
142
|
updateColumnVisibility(column, responsiveToggle){
|
|
143
143
|
if(!responsiveToggle && column.modules.responsive){
|
|
144
144
|
column.modules.responsive.visible = column.visible;
|
|
145
|
-
this.
|
|
145
|
+
this.initializeResponsivity();
|
|
146
146
|
}
|
|
147
|
-
|
|
148
|
-
//this.update();
|
|
149
147
|
}
|
|
150
148
|
|
|
151
149
|
hideColumn(column){
|
|
@@ -37,7 +37,7 @@ class SelectRow extends Module{
|
|
|
37
37
|
this.subscribe("rows-wipe", this.clearSelectionData.bind(this));
|
|
38
38
|
this.subscribe("rows-retrieve", this.rowRetrieve.bind(this));
|
|
39
39
|
|
|
40
|
-
if(this.table.options.selectable && this.table.options.selectablePersistence){
|
|
40
|
+
if(this.table.options.selectable && !this.table.options.selectablePersistence){
|
|
41
41
|
this.subscribe("data-refeshing", this.deselectRows.bind(this));
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -277,9 +277,7 @@ class SelectRow extends Module{
|
|
|
277
277
|
this.childRowSelection(row, true);
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
this.dispatchExternal("rowSelected", row.getComponent());
|
|
282
|
-
}
|
|
280
|
+
this.dispatchExternal("rowSelected", row.getComponent());
|
|
283
281
|
|
|
284
282
|
this._rowSelectionChanged(silent);
|
|
285
283
|
}
|
|
@@ -298,7 +296,7 @@ class SelectRow extends Module{
|
|
|
298
296
|
deselectRows(rows, silent){
|
|
299
297
|
var self = this,
|
|
300
298
|
rowCount;
|
|
301
|
-
|
|
299
|
+
|
|
302
300
|
if(typeof rows == "undefined"){
|
|
303
301
|
|
|
304
302
|
rowCount = self.selectedRows.length;
|
|
@@ -350,9 +348,7 @@ class SelectRow extends Module{
|
|
|
350
348
|
this.childRowSelection(row, false);
|
|
351
349
|
}
|
|
352
350
|
|
|
353
|
-
|
|
354
|
-
this.dispatchExternal("rowDeselected", row.getComponent());
|
|
355
|
-
}
|
|
351
|
+
this.dispatchExternal("rowDeselected", row.getComponent());
|
|
356
352
|
|
|
357
353
|
self._rowSelectionChanged(silent);
|
|
358
354
|
}
|
|
@@ -6,8 +6,9 @@ export default function(a, b, aRow, bRow, column, dir, params){
|
|
|
6
6
|
emptyAlign = 0;
|
|
7
7
|
|
|
8
8
|
if(typeof DT != "undefined"){
|
|
9
|
-
a = DT.fromFormat(a, format);
|
|
10
|
-
b = DT.fromFormat(b, format);
|
|
9
|
+
a = format === "iso" ? DT.fromISO(String(a)) : DT.fromFormat(String(a), format);
|
|
10
|
+
b = format === "iso" ? DT.fromISO(String(b)) : DT.fromFormat(String(b), format);
|
|
11
|
+
|
|
11
12
|
if(!a.isValid){
|
|
12
13
|
emptyAlign = !b.isValid ? 0 : -1;
|
|
13
14
|
}else if(!b.isValid){
|
|
@@ -50,7 +50,7 @@ class Validate extends Module{
|
|
|
50
50
|
columnValidate(column){
|
|
51
51
|
var invalid = [];
|
|
52
52
|
|
|
53
|
-
column.cells.forEach(
|
|
53
|
+
column.cells.forEach((cell) => {
|
|
54
54
|
if(!this.cellValidate(cell)){
|
|
55
55
|
invalid.push(cell.getComponent());
|
|
56
56
|
}
|
|
@@ -66,7 +66,7 @@ class Validate extends Module{
|
|
|
66
66
|
rowValidate(row){
|
|
67
67
|
var invalid = [];
|
|
68
68
|
|
|
69
|
-
row.cells.forEach(
|
|
69
|
+
row.cells.forEach((cell) => {
|
|
70
70
|
if(!this.cellValidate(cell)){
|
|
71
71
|
invalid.push(cell.getComponent());
|
|
72
72
|
}
|
|
@@ -98,7 +98,9 @@ class Validate extends Module{
|
|
|
98
98
|
var output = [];
|
|
99
99
|
|
|
100
100
|
//clear row data
|
|
101
|
-
this.table.rowManager.rows.forEach(
|
|
101
|
+
this.table.rowManager.rows.forEach((row) => {
|
|
102
|
+
row = row.getComponent();
|
|
103
|
+
|
|
102
104
|
var valid = row.validate();
|
|
103
105
|
|
|
104
106
|
if(valid !== true){
|
|
@@ -128,7 +130,7 @@ class Validate extends Module{
|
|
|
128
130
|
if(column.definition.validator){
|
|
129
131
|
|
|
130
132
|
if(Array.isArray(column.definition.validator)){
|
|
131
|
-
column.definition.validator.forEach(
|
|
133
|
+
column.definition.validator.forEach((item) => {
|
|
132
134
|
validator = self._extractValidator(item);
|
|
133
135
|
|
|
134
136
|
if(validator){
|
|
@@ -197,7 +199,7 @@ class Validate extends Module{
|
|
|
197
199
|
invalidIndex = this.invalidCells.indexOf(cell);
|
|
198
200
|
|
|
199
201
|
if(validators){
|
|
200
|
-
validators.forEach(
|
|
202
|
+
validators.forEach((item) => {
|
|
201
203
|
if(!item.func.call(self, cell.getComponent(), value, item.params)){
|
|
202
204
|
valid.push({
|
|
203
205
|
type:item.type,
|
package/src/scss/tabulator.scss
CHANGED
|
@@ -436,10 +436,16 @@ $footerActiveColor:#d00 !default; //footer bottom active text color
|
|
|
436
436
|
|
|
437
437
|
//footer element
|
|
438
438
|
.tabulator-footer{
|
|
439
|
+
display: flex;
|
|
440
|
+
flex-direction: row;
|
|
441
|
+
align-items: center;
|
|
442
|
+
justify-content: space-between;
|
|
443
|
+
|
|
439
444
|
padding:5px 10px;
|
|
445
|
+
|
|
440
446
|
border-top:1px solid $footerSeperatorColor;
|
|
441
447
|
background-color: $footerBackgroundColor;
|
|
442
|
-
|
|
448
|
+
|
|
443
449
|
color: $footerTextColor;
|
|
444
450
|
font-weight:bold;
|
|
445
451
|
white-space:nowrap;
|
|
@@ -478,7 +484,19 @@ $footerActiveColor:#d00 !default; //footer bottom active text color
|
|
|
478
484
|
}
|
|
479
485
|
}
|
|
480
486
|
|
|
487
|
+
&>*+.tabulator-page-counter{
|
|
488
|
+
margin-left:10px;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.tabulator-page-counter {
|
|
492
|
+
font-weight: normal;
|
|
493
|
+
}
|
|
494
|
+
|
|
481
495
|
.tabulator-paginator{
|
|
496
|
+
flex:1;
|
|
497
|
+
|
|
498
|
+
text-align: right;
|
|
499
|
+
|
|
482
500
|
color: $footerTextColor;
|
|
483
501
|
font-family:inherit;
|
|
484
502
|
font-weight:inherit;
|
|
@@ -1125,7 +1143,7 @@ $footerActiveColor:#d00 !default; //footer bottom active text color
|
|
|
1125
1143
|
}
|
|
1126
1144
|
|
|
1127
1145
|
.tabulator-col-content{
|
|
1128
|
-
.tabulator-
|
|
1146
|
+
.tabulator-col-sorter{
|
|
1129
1147
|
left:8px;
|
|
1130
1148
|
right:initial;
|
|
1131
1149
|
}
|
|
@@ -105,16 +105,17 @@ $footerActiveColor:$primary-color !default; //footer bottom active text color
|
|
|
105
105
|
margin-top:5px;
|
|
106
106
|
padding:8px 12px;
|
|
107
107
|
|
|
108
|
+
border-radius:0;
|
|
108
109
|
border-right:none;
|
|
109
110
|
|
|
110
111
|
background:rgba(255,255,255,.2);
|
|
111
112
|
|
|
112
|
-
&[data-page="
|
|
113
|
+
&[data-page="next"], &:first-of-type {
|
|
113
114
|
border-top-left-radius:4px;
|
|
114
115
|
border-bottom-left-radius:4px;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
&[data-page="
|
|
118
|
+
&[data-page="prev"], &:last-of-type {
|
|
118
119
|
border:1px solid $footerBorderColor;
|
|
119
120
|
border-top-right-radius:4px;
|
|
120
121
|
border-bottom-right-radius:4px;
|
|
@@ -133,7 +134,7 @@ $footerActiveColor:$primary-color !default; //footer bottom active text color
|
|
|
133
134
|
background-color: $rowAltBackgroundColor;
|
|
134
135
|
|
|
135
136
|
&.tabulator-selected{
|
|
136
|
-
background-color:$rowSelectedBackground;
|
|
137
|
+
background-color:$rowSelectedBackground !important;
|
|
137
138
|
}
|
|
138
139
|
|
|
139
140
|
&.tabulator-selectable:hover{
|
|
@@ -142,7 +143,7 @@ $footerActiveColor:$primary-color !default; //footer bottom active text color
|
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
&.tabulator-selected:hover{
|
|
145
|
-
background-color:$rowSelectedBackgroundHover;
|
|
146
|
+
background-color:$rowSelectedBackgroundHover !important;
|
|
146
147
|
cursor: pointer;
|
|
147
148
|
}
|
|
148
149
|
}
|