tabulator-tables 5.2.6 → 5.3.1
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/.eslintignore +3 -0
- package/.eslintrc.js +28 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -0
- package/.github/workflows/bad-files-check.yml +39 -0
- package/.github/workflows/lint-and-test.yml +31 -0
- package/README.md +18 -6
- package/bower.json +1 -1
- package/build/Bundler.js +77 -77
- package/dist/css/tabulator.css +12 -7
- 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 +12 -7
- 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 +12 -7
- 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_bootstrap5.css +51 -46
- package/dist/css/tabulator_bootstrap5.css.map +1 -1
- package/dist/css/tabulator_bootstrap5.min.css +1 -1
- package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
- package/dist/css/tabulator_bulma.css +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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 +12 -7
- 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/jquery_wrapper.js +37 -37
- package/dist/js/tabulator.js +1506 -706
- 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 +4226 -3460
- 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 +4 -1
- package/src/js/builds/jquery_wrapper.js +37 -37
- package/src/js/core/ColumnManager.js +270 -232
- package/src/js/core/CoreFeature.js +16 -2
- package/src/js/core/FooterManager.js +10 -10
- package/src/js/core/Module.js +8 -8
- package/src/js/core/RowManager.js +81 -88
- package/src/js/core/Tabulator.js +89 -72
- package/src/js/core/TabulatorFull.js +1 -1
- package/src/js/core/cell/Cell.js +15 -16
- package/src/js/core/cell/CellComponent.js +2 -2
- package/src/js/core/column/Column.js +81 -68
- package/src/js/core/column/ColumnComponent.js +4 -4
- package/src/js/core/column/defaults/options.js +1 -1
- package/src/js/core/defaults/options.js +4 -2
- package/src/js/core/rendering/Renderer.js +19 -19
- package/src/js/core/rendering/renderers/BasicHorizontal.js +1 -2
- package/src/js/core/rendering/renderers/BasicVertical.js +1 -1
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +42 -58
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +31 -22
- package/src/js/core/row/Row.js +32 -8
- package/src/js/core/row/RowComponent.js +8 -4
- package/src/js/core/tools/Alert.js +44 -45
- package/src/js/core/tools/ComponentFunctionBinder.js +4 -2
- package/src/js/core/tools/DataLoader.js +3 -3
- package/src/js/core/tools/DeprecationAdvisor.js +47 -0
- package/src/js/core/tools/ExternalEventBus.js +5 -5
- package/src/js/core/tools/InteractionMonitor.js +34 -33
- package/src/js/core/tools/InternalEventBus.js +5 -5
- package/src/js/core/tools/ModuleBinder.js +6 -6
- package/src/js/core/tools/OptionsList.js +4 -4
- package/src/js/core/tools/Popup.js +215 -189
- package/src/js/modules/Accessor/Accessor.js +16 -16
- package/src/js/modules/Accessor/defaults/accessors.js +1 -1
- package/src/js/modules/Ajax/Ajax.js +7 -7
- package/src/js/modules/Ajax/defaults/loaderPromise.js +19 -19
- package/src/js/modules/Ajax/defaults/urlGenerator.js +1 -1
- package/src/js/modules/Clipboard/Clipboard.js +23 -23
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +0 -2
- package/src/js/modules/ColumnCalcs/CalcComponent.js +2 -2
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +55 -51
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
- package/src/js/modules/DataTree/DataTree.js +24 -15
- package/src/js/modules/Download/Download.js +15 -8
- package/src/js/modules/Download/defaults/downloaders/csv.js +28 -28
- package/src/js/modules/Download/defaults/downloaders/html.js +2 -2
- package/src/js/modules/Download/defaults/downloaders/json.js +14 -14
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +1 -1
- package/src/js/modules/Download/defaults/downloaders/pdf.js +17 -19
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +2 -2
- package/src/js/modules/Edit/Edit.js +219 -201
- package/src/js/modules/Edit/List.js +1026 -991
- package/src/js/modules/Edit/defaults/editors/autocomplete.js +3 -3
- package/src/js/modules/Edit/defaults/editors/date.js +110 -0
- package/src/js/modules/Edit/defaults/editors/datetime.js +97 -0
- package/src/js/modules/Edit/defaults/editors/input.js +7 -7
- package/src/js/modules/Edit/defaults/editors/list.js +2 -2
- package/src/js/modules/Edit/defaults/editors/number.js +12 -12
- package/src/js/modules/Edit/defaults/editors/progress.js +11 -11
- package/src/js/modules/Edit/defaults/editors/range.js +5 -5
- package/src/js/modules/Edit/defaults/editors/select.js +3 -3
- package/src/js/modules/Edit/defaults/editors/star.js +9 -9
- package/src/js/modules/Edit/defaults/editors/textarea.js +97 -92
- package/src/js/modules/Edit/defaults/editors/tickCross.js +1 -3
- package/src/js/modules/Edit/defaults/editors/time.js +98 -0
- package/src/js/modules/Edit/defaults/editors.js +8 -2
- package/src/js/modules/Edit/inputMask.js +19 -26
- package/src/js/modules/Export/Export.js +69 -65
- package/src/js/modules/Filter/Filter.js +88 -95
- package/src/js/modules/Format/Format.js +24 -26
- package/src/js/modules/Format/defaults/formatters/buttonCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/buttonTick.js +1 -1
- package/src/js/modules/Format/defaults/formatters/color.js +1 -1
- package/src/js/modules/Format/defaults/formatters/datetime.js +7 -7
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +7 -7
- package/src/js/modules/Format/defaults/formatters/handle.js +1 -1
- package/src/js/modules/Format/defaults/formatters/html.js +1 -1
- package/src/js/modules/Format/defaults/formatters/image.js +9 -9
- package/src/js/modules/Format/defaults/formatters/link.js +10 -10
- package/src/js/modules/Format/defaults/formatters/lookup.js +1 -1
- package/src/js/modules/Format/defaults/formatters/money.js +1 -1
- package/src/js/modules/Format/defaults/formatters/plaintext.js +1 -1
- package/src/js/modules/Format/defaults/formatters/progress.js +41 -42
- package/src/js/modules/Format/defaults/formatters/responsiveCollapse.js +3 -3
- package/src/js/modules/Format/defaults/formatters/rowSelection.js +1 -1
- package/src/js/modules/Format/defaults/formatters/rownum.js +9 -2
- package/src/js/modules/Format/defaults/formatters/star.js +1 -1
- package/src/js/modules/Format/defaults/formatters/textarea.js +1 -1
- package/src/js/modules/Format/defaults/formatters/tickCross.js +1 -1
- package/src/js/modules/Format/defaults/formatters/traffic.js +14 -14
- package/src/js/modules/FrozenColumns/FrozenColumns.js +6 -8
- package/src/js/modules/FrozenRows/FrozenRows.js +37 -7
- package/src/js/modules/GroupRows/Group.js +7 -7
- package/src/js/modules/GroupRows/GroupComponent.js +2 -2
- package/src/js/modules/GroupRows/GroupRows.js +34 -11
- package/src/js/modules/History/History.js +2 -2
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +3 -6
- package/src/js/modules/Import/Import.js +158 -159
- package/src/js/modules/Import/defaults/importers/array.js +5 -0
- package/src/js/modules/Import/defaults/importers/csv.js +49 -49
- package/src/js/modules/Import/defaults/importers/json.js +6 -6
- package/src/js/modules/Import/defaults/importers.js +2 -0
- package/src/js/modules/Interaction/Interaction.js +41 -42
- package/src/js/modules/Keybindings/Keybindings.js +14 -14
- package/src/js/modules/Keybindings/defaults/actions.js +1 -2
- package/src/js/modules/Layout/Layout.js +4 -5
- package/src/js/modules/Layout/defaults/modes/fitColumns.js +13 -16
- package/src/js/modules/Layout/defaults/modes/fitData.js +6 -4
- package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +2 -2
- package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +2 -2
- package/src/js/modules/Localize/Localize.js +7 -7
- package/src/js/modules/Menu/Menu.js +8 -11
- package/src/js/modules/MoveColumns/MoveColumns.js +3 -6
- package/src/js/modules/MoveRows/MoveRows.js +30 -36
- package/src/js/modules/Mutator/Mutator.js +9 -9
- package/src/js/modules/Page/Page.js +73 -80
- package/src/js/modules/Page/defaults/pageCounters/pages.js +2 -2
- package/src/js/modules/Page/defaults/pageCounters/rows.js +1 -1
- package/src/js/modules/Persistence/Persistence.js +40 -44
- package/src/js/modules/Persistence/defaults/readers.js +1 -1
- package/src/js/modules/Popup/Popup.js +4 -5
- package/src/js/modules/Print/Print.js +2 -2
- package/src/js/modules/ReactiveData/ReactiveData.js +178 -115
- package/src/js/modules/ResizeColumns/ResizeColumns.js +3 -3
- package/src/js/modules/ResizeRows/ResizeRows.js +1 -1
- package/src/js/modules/ResizeTable/ResizeTable.js +77 -46
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +3 -5
- package/src/js/modules/SelectRow/SelectRow.js +26 -28
- package/src/js/modules/Sort/Sort.js +110 -79
- package/src/js/modules/Sort/defaults/sorters/alphanum.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/array.js +24 -28
- package/src/js/modules/Sort/defaults/sorters/boolean.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/date.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/datetime.js +13 -13
- package/src/js/modules/Sort/defaults/sorters/exists.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/number.js +1 -1
- package/src/js/modules/Sort/defaults/sorters/string.js +7 -7
- package/src/js/modules/Sort/defaults/sorters/time.js +1 -1
- package/src/js/modules/Tooltip/Tooltip.js +5 -7
- package/src/js/modules/Validate/Validate.js +10 -13
- package/src/js/modules/Validate/defaults/validators.js +8 -3
- package/src/scss/tabulator.scss +28 -17
- package/src/scss/themes/bootstrap/functions4.scss +1 -1
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +8 -8
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +25 -25
- package/src/scss/themes/bootstrap/variables5.scss +4 -4
- package/src/scss/themes/bulma/tabulator_bulma.scss +7 -7
- package/src/scss/themes/materialize/tabulator_materialize.scss +6 -6
- package/src/scss/themes/materialize/variables.scss +1 -1
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +7 -7
- package/src/scss/themes/tabulator_midnight.scss +7 -7
- package/src/scss/themes/tabulator_modern.scss +14 -14
- package/src/scss/themes/tabulator_simple.scss +8 -8
- package/src/scss/themes/tabulator_site.scss +15 -15
|
@@ -92,7 +92,7 @@ class Page extends Module{
|
|
|
92
92
|
this.subscribe("table-built", this.calculatePageSizes.bind(this));
|
|
93
93
|
this.subscribe("data-processed", this.initialLoadComplete.bind(this));
|
|
94
94
|
|
|
95
|
-
this.initializeProgressive(this.table.options.progressiveLoad)
|
|
95
|
+
this.initializeProgressive(this.table.options.progressiveLoad);
|
|
96
96
|
|
|
97
97
|
if(this.table.options.progressiveLoad === "scroll"){
|
|
98
98
|
this.subscribe("scroll-vertical", this.scrollVertical.bind(this));
|
|
@@ -102,12 +102,12 @@ class Page extends Module{
|
|
|
102
102
|
|
|
103
103
|
rowAddingPosition(row, top){
|
|
104
104
|
var rowManager = this.table.rowManager,
|
|
105
|
-
|
|
105
|
+
displayRows = rowManager.getDisplayRows(),
|
|
106
106
|
index;
|
|
107
107
|
|
|
108
108
|
if(top){
|
|
109
|
-
if(
|
|
110
|
-
index =
|
|
109
|
+
if(displayRows.length){
|
|
110
|
+
index = displayRows[0];
|
|
111
111
|
}else{
|
|
112
112
|
if(rowManager.activeRows.length){
|
|
113
113
|
index = rowManager.activeRows[rowManager.activeRows.length-1];
|
|
@@ -115,13 +115,13 @@ class Page extends Module{
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
}else{
|
|
118
|
-
if(
|
|
119
|
-
index =
|
|
120
|
-
top =
|
|
118
|
+
if(displayRows.length){
|
|
119
|
+
index = displayRows[displayRows.length - 1];
|
|
120
|
+
top = displayRows.length < this.size ? false : true;
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
return {index, top}
|
|
124
|
+
return {index, top};
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
calculatePageSizes(){
|
|
@@ -183,7 +183,7 @@ class Page extends Module{
|
|
|
183
183
|
row = this.rowManager.findRow(row);
|
|
184
184
|
|
|
185
185
|
if(row){
|
|
186
|
-
return this.setPageToRow(row)
|
|
186
|
+
return this.setPageToRow(row);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
@@ -211,7 +211,7 @@ class Page extends Module{
|
|
|
211
211
|
|
|
212
212
|
if(diff < margin){
|
|
213
213
|
this.nextPage()
|
|
214
|
-
|
|
214
|
+
.catch(() => {}); //consume the exception thrown when on the last page
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
}
|
|
@@ -382,19 +382,19 @@ class Page extends Module{
|
|
|
382
382
|
|
|
383
383
|
//click bindings
|
|
384
384
|
this.firstBut.addEventListener("click", () => {
|
|
385
|
-
this.setPage(1)
|
|
385
|
+
this.setPage(1);
|
|
386
386
|
});
|
|
387
387
|
|
|
388
388
|
this.prevBut.addEventListener("click", () => {
|
|
389
|
-
this.previousPage()
|
|
389
|
+
this.previousPage();
|
|
390
390
|
});
|
|
391
391
|
|
|
392
392
|
this.nextBut.addEventListener("click", () => {
|
|
393
|
-
this.nextPage()
|
|
393
|
+
this.nextPage();
|
|
394
394
|
});
|
|
395
395
|
|
|
396
396
|
this.lastBut.addEventListener("click", () => {
|
|
397
|
-
this.setPage(this.max)
|
|
397
|
+
this.setPage(this.max);
|
|
398
398
|
});
|
|
399
399
|
|
|
400
400
|
if(this.table.options.paginationElement){
|
|
@@ -415,7 +415,7 @@ class Page extends Module{
|
|
|
415
415
|
|
|
416
416
|
this.pageSizeSelect.addEventListener("change", (e) => {
|
|
417
417
|
this.setPageSize(this.pageSizeSelect.value == "true" ? true : this.pageSizeSelect.value);
|
|
418
|
-
this.setPage(1)
|
|
418
|
+
this.setPage(1);
|
|
419
419
|
});
|
|
420
420
|
}
|
|
421
421
|
|
|
@@ -426,10 +426,10 @@ class Page extends Module{
|
|
|
426
426
|
this.element.appendChild(this.nextBut);
|
|
427
427
|
this.element.appendChild(this.lastBut);
|
|
428
428
|
|
|
429
|
-
if(!this.table.options.paginationElement
|
|
429
|
+
if(!this.table.options.paginationElement){
|
|
430
430
|
if(this.table.options.paginationCounter){
|
|
431
431
|
|
|
432
|
-
paginationCounterHolder
|
|
432
|
+
paginationCounterHolder;
|
|
433
433
|
|
|
434
434
|
if(this.table.options.paginationCounterElement){
|
|
435
435
|
if(this.table.options.paginationCounterElement instanceof HTMLElement){
|
|
@@ -517,20 +517,16 @@ class Page extends Module{
|
|
|
517
517
|
setPage(page){
|
|
518
518
|
switch(page){
|
|
519
519
|
case "first":
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
520
|
+
return this.setPage(1);
|
|
521
|
+
|
|
523
522
|
case "prev":
|
|
524
|
-
|
|
525
|
-
break;
|
|
523
|
+
return this.previousPage();
|
|
526
524
|
|
|
527
525
|
case "next":
|
|
528
|
-
|
|
529
|
-
break;
|
|
526
|
+
return this.nextPage();
|
|
530
527
|
|
|
531
528
|
case "last":
|
|
532
|
-
|
|
533
|
-
break;
|
|
529
|
+
return this.setPage(this.max);
|
|
534
530
|
}
|
|
535
531
|
|
|
536
532
|
page = parseInt(page);
|
|
@@ -554,7 +550,7 @@ class Page extends Module{
|
|
|
554
550
|
if(index > -1){
|
|
555
551
|
var page = this.size === true ? 1 : Math.ceil((index + 1) / this.size);
|
|
556
552
|
|
|
557
|
-
return this.setPage(page)
|
|
553
|
+
return this.setPage(page);
|
|
558
554
|
}else{
|
|
559
555
|
console.warn("Pagination Error - Requested row is not visible");
|
|
560
556
|
return Promise.reject();
|
|
@@ -594,25 +590,25 @@ class Page extends Module{
|
|
|
594
590
|
|
|
595
591
|
switch(typeof content){
|
|
596
592
|
case "object":
|
|
597
|
-
|
|
593
|
+
if(content instanceof Node){
|
|
598
594
|
|
|
599
|
-
|
|
600
|
-
|
|
595
|
+
//clear previous cell contents
|
|
596
|
+
while(this.pageCounterElement.firstChild) this.pageCounterElement.removeChild(this.pageCounterElement.firstChild);
|
|
601
597
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
598
|
+
this.pageCounterElement.appendChild(content);
|
|
599
|
+
}else{
|
|
600
|
+
this.pageCounterElement.innerHTML = "";
|
|
605
601
|
|
|
606
|
-
|
|
607
|
-
|
|
602
|
+
if(content != null){
|
|
603
|
+
console.warn("Page Counter Error - Page Counter has returned a type of object, the only valid page counter object return is an instance of Node, the page counter returned:", content);
|
|
604
|
+
}
|
|
608
605
|
}
|
|
609
|
-
|
|
610
|
-
break;
|
|
606
|
+
break;
|
|
611
607
|
case "undefined":
|
|
612
|
-
|
|
613
|
-
|
|
608
|
+
this.pageCounterElement.innerHTML = "";
|
|
609
|
+
break;
|
|
614
610
|
default:
|
|
615
|
-
|
|
611
|
+
this.pageCounterElement.innerHTML = content;
|
|
616
612
|
}
|
|
617
613
|
}
|
|
618
614
|
}
|
|
@@ -671,7 +667,7 @@ class Page extends Module{
|
|
|
671
667
|
button.textContent = page;
|
|
672
668
|
|
|
673
669
|
button.addEventListener("click", (e) => {
|
|
674
|
-
this.setPage(page)
|
|
670
|
+
this.setPage(page);
|
|
675
671
|
});
|
|
676
672
|
|
|
677
673
|
return button;
|
|
@@ -684,7 +680,7 @@ class Page extends Module{
|
|
|
684
680
|
|
|
685
681
|
this.trackChanges();
|
|
686
682
|
|
|
687
|
-
return this.trigger()
|
|
683
|
+
return this.trigger();
|
|
688
684
|
|
|
689
685
|
}else{
|
|
690
686
|
console.warn("Pagination Error - Previous page would be less than page 1:", 0);
|
|
@@ -783,37 +779,34 @@ class Page extends Module{
|
|
|
783
779
|
|
|
784
780
|
switch(this.mode){
|
|
785
781
|
case "local":
|
|
786
|
-
|
|
782
|
+
left = this.table.rowManager.scrollLeft;
|
|
787
783
|
|
|
788
|
-
|
|
789
|
-
|
|
784
|
+
this.refreshData();
|
|
785
|
+
this.table.rowManager.scrollHorizontal(left);
|
|
790
786
|
|
|
791
|
-
|
|
787
|
+
this.dispatchExternal("pageLoaded", this.getPage());
|
|
792
788
|
|
|
793
|
-
|
|
794
|
-
break;
|
|
789
|
+
return Promise.resolve();
|
|
795
790
|
|
|
796
791
|
case "remote":
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
break;
|
|
792
|
+
this.dataChanging = true;
|
|
793
|
+
return this.reloadData(null)
|
|
794
|
+
.finally(() => {
|
|
795
|
+
this.dataChanging = false;
|
|
796
|
+
});
|
|
803
797
|
|
|
804
798
|
case "progressive_load":
|
|
805
799
|
case "progressive_scroll":
|
|
806
|
-
|
|
807
|
-
break;
|
|
800
|
+
return this.reloadData(null, true);
|
|
808
801
|
|
|
809
802
|
default:
|
|
810
|
-
|
|
811
|
-
|
|
803
|
+
console.warn("Pagination Error - no such pagination mode:", this.mode);
|
|
804
|
+
return Promise.reject();
|
|
812
805
|
}
|
|
813
806
|
}
|
|
814
807
|
|
|
815
808
|
_parseRemoteData(data){
|
|
816
|
-
var
|
|
809
|
+
var margin;
|
|
817
810
|
|
|
818
811
|
if(typeof data.last_page === "undefined"){
|
|
819
812
|
console.warn("Remote Pagination Error - Server response missing '" + (this.options("dataReceiveParams").last_page || "last_page") + "' property");
|
|
@@ -828,34 +821,34 @@ class Page extends Module{
|
|
|
828
821
|
switch(this.mode){
|
|
829
822
|
case "progressive_load":
|
|
830
823
|
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
824
|
+
if(this.page == 1){
|
|
825
|
+
this.table.rowManager.setData(data.data, false, this.page == 1);
|
|
826
|
+
}else{
|
|
827
|
+
this.table.rowManager.addRows(data.data);
|
|
828
|
+
}
|
|
836
829
|
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
830
|
+
if(this.page < this.max){
|
|
831
|
+
setTimeout(() => {
|
|
832
|
+
this.nextPage();
|
|
833
|
+
}, this.table.options.progressiveLoadDelay);
|
|
834
|
+
}
|
|
835
|
+
break;
|
|
843
836
|
|
|
844
837
|
case "progressive_scroll":
|
|
845
|
-
|
|
838
|
+
data = this.page === 1 ? data.data : this.table.rowManager.getData().concat(data.data);
|
|
846
839
|
|
|
847
|
-
|
|
840
|
+
this.table.rowManager.setData(data, this.page !== 1, this.page == 1);
|
|
848
841
|
|
|
849
|
-
|
|
842
|
+
margin = this.table.options.progressiveLoadScrollMargin || (this.table.rowManager.element.clientHeight * 2);
|
|
850
843
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
844
|
+
if(this.table.rowManager.element.scrollHeight <= (this.table.rowManager.element.clientHeight + margin)){
|
|
845
|
+
if(this.page < this.max){
|
|
846
|
+
setTimeout(() => {
|
|
847
|
+
this.nextPage();
|
|
848
|
+
});
|
|
849
|
+
}
|
|
856
850
|
}
|
|
857
|
-
|
|
858
|
-
break;
|
|
851
|
+
break;
|
|
859
852
|
}
|
|
860
853
|
|
|
861
854
|
return false;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default function(pageSize, currentRow, currentPage, totalRows, totalPages){
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var el = document.createElement("span"),
|
|
4
4
|
showingEl = document.createElement("span"),
|
|
5
5
|
valueEl = document.createElement("span"),
|
|
6
6
|
ofEl = document.createElement("span"),
|
|
@@ -30,4 +30,4 @@ export default function(pageSize, currentRow, currentPage, totalRows, totalPages
|
|
|
30
30
|
el.appendChild(rowsEl);
|
|
31
31
|
|
|
32
32
|
return el;
|
|
33
|
-
}
|
|
33
|
+
}
|
|
@@ -42,7 +42,7 @@ class Persistence extends Module{
|
|
|
42
42
|
//determine persistent layout storage type
|
|
43
43
|
var mode = this.table.options.persistenceMode,
|
|
44
44
|
id = this.table.options.persistenceID,
|
|
45
|
-
|
|
45
|
+
retrievedData;
|
|
46
46
|
|
|
47
47
|
this.mode = mode !== true ? mode : (this.localStorageTest() ? "local" : "cookie");
|
|
48
48
|
|
|
@@ -95,32 +95,32 @@ class Persistence extends Module{
|
|
|
95
95
|
|
|
96
96
|
//load pagination data if needed
|
|
97
97
|
if(this.config.page){
|
|
98
|
-
|
|
98
|
+
retrievedData = this.retrieveData("page");
|
|
99
99
|
|
|
100
|
-
if(
|
|
101
|
-
if(typeof
|
|
102
|
-
this.table.options.paginationSize =
|
|
100
|
+
if(retrievedData){
|
|
101
|
+
if(typeof retrievedData.paginationSize !== "undefined" && (this.config.page === true || this.config.page.size)){
|
|
102
|
+
this.table.options.paginationSize = retrievedData.paginationSize;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
if(typeof
|
|
106
|
-
this.table.options.paginationInitialPage =
|
|
105
|
+
if(typeof retrievedData.paginationInitialPage !== "undefined" && (this.config.page === true || this.config.page.page)){
|
|
106
|
+
this.table.options.paginationInitialPage = retrievedData.paginationInitialPage;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
//load group data if needed
|
|
112
112
|
if(this.config.group){
|
|
113
|
-
|
|
113
|
+
retrievedData = this.retrieveData("group");
|
|
114
114
|
|
|
115
|
-
if(
|
|
116
|
-
if(typeof
|
|
117
|
-
this.table.options.groupBy =
|
|
115
|
+
if(retrievedData){
|
|
116
|
+
if(typeof retrievedData.groupBy !== "undefined" && (this.config.group === true || this.config.group.groupBy)){
|
|
117
|
+
this.table.options.groupBy = retrievedData.groupBy;
|
|
118
118
|
}
|
|
119
|
-
if(typeof
|
|
120
|
-
this.table.options.groupStartOpen =
|
|
119
|
+
if(typeof retrievedData.groupStartOpen !== "undefined" && (this.config.group === true || this.config.group.groupStartOpen)){
|
|
120
|
+
this.table.options.groupStartOpen = retrievedData.groupStartOpen;
|
|
121
121
|
}
|
|
122
|
-
if(typeof
|
|
123
|
-
this.table.options.groupHeader =
|
|
122
|
+
if(typeof retrievedData.groupHeader !== "undefined" && (this.config.group === true || this.config.group.groupHeader)){
|
|
123
|
+
this.table.options.groupHeader = retrievedData.groupHeader;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -156,8 +156,7 @@ class Persistence extends Module{
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
tableBuilt(){
|
|
159
|
-
var
|
|
160
|
-
sorters, filters;
|
|
159
|
+
var sorters, filters;
|
|
161
160
|
|
|
162
161
|
if(this.config.sort){
|
|
163
162
|
sorters = this.load("sort");
|
|
@@ -191,7 +190,7 @@ class Persistence extends Module{
|
|
|
191
190
|
}
|
|
192
191
|
|
|
193
192
|
setColumnLayout(layout){
|
|
194
|
-
this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout))
|
|
193
|
+
this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns, layout));
|
|
195
194
|
return true;
|
|
196
195
|
}
|
|
197
196
|
|
|
@@ -241,7 +240,7 @@ class Persistence extends Module{
|
|
|
241
240
|
|
|
242
241
|
//load saved definitions
|
|
243
242
|
load(type, current){
|
|
244
|
-
var data = this.
|
|
243
|
+
var data = this.retrieveData(type);
|
|
245
244
|
|
|
246
245
|
if(current){
|
|
247
246
|
data = data ? this.mergeDefinition(current, data) : current;
|
|
@@ -250,8 +249,8 @@ class Persistence extends Module{
|
|
|
250
249
|
return data;
|
|
251
250
|
}
|
|
252
251
|
|
|
253
|
-
//
|
|
254
|
-
|
|
252
|
+
//retrieve data from memory
|
|
253
|
+
retrieveData(type){
|
|
255
254
|
return this.readFunc ? this.readFunc(this.id, type) : false;
|
|
256
255
|
}
|
|
257
256
|
|
|
@@ -309,16 +308,13 @@ class Persistence extends Module{
|
|
|
309
308
|
return columns.find(function(col){
|
|
310
309
|
switch(type){
|
|
311
310
|
case "group":
|
|
312
|
-
|
|
313
|
-
break;
|
|
311
|
+
return col.title === subject.title && col.columns.length === subject.columns.length;
|
|
314
312
|
|
|
315
313
|
case "field":
|
|
316
|
-
|
|
317
|
-
break;
|
|
314
|
+
return col.field === subject.field;
|
|
318
315
|
|
|
319
316
|
case "object":
|
|
320
|
-
|
|
321
|
-
break;
|
|
317
|
+
return col === subject;
|
|
322
318
|
}
|
|
323
319
|
});
|
|
324
320
|
}
|
|
@@ -329,24 +325,24 @@ class Persistence extends Module{
|
|
|
329
325
|
|
|
330
326
|
switch(type){
|
|
331
327
|
case "columns":
|
|
332
|
-
|
|
333
|
-
|
|
328
|
+
data = this.parseColumns(this.table.columnManager.getColumns());
|
|
329
|
+
break;
|
|
334
330
|
|
|
335
331
|
case "filter":
|
|
336
|
-
|
|
337
|
-
|
|
332
|
+
data = this.table.modules.filter.getFilters();
|
|
333
|
+
break;
|
|
338
334
|
|
|
339
335
|
case "sort":
|
|
340
|
-
|
|
341
|
-
|
|
336
|
+
data = this.validateSorters(this.table.modules.sort.getSort());
|
|
337
|
+
break;
|
|
342
338
|
|
|
343
339
|
case "group":
|
|
344
|
-
|
|
345
|
-
|
|
340
|
+
data = this.getGroupConfig();
|
|
341
|
+
break;
|
|
346
342
|
|
|
347
343
|
case "page":
|
|
348
|
-
|
|
349
|
-
|
|
344
|
+
data = this.getPageConfig();
|
|
345
|
+
break;
|
|
350
346
|
}
|
|
351
347
|
|
|
352
348
|
if(this.writeFunc){
|
|
@@ -429,16 +425,16 @@ class Persistence extends Module{
|
|
|
429
425
|
keys.forEach((key)=>{
|
|
430
426
|
switch(key){
|
|
431
427
|
case "width":
|
|
432
|
-
|
|
433
|
-
|
|
428
|
+
defStore.width = column.getWidth();
|
|
429
|
+
break;
|
|
434
430
|
case "visible":
|
|
435
|
-
|
|
436
|
-
|
|
431
|
+
defStore.visible = column.visible;
|
|
432
|
+
break;
|
|
437
433
|
|
|
438
434
|
default:
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
435
|
+
if(typeof colDef[key] !== "function" && excludedKeys.indexOf(key) === -1){
|
|
436
|
+
defStore[key] = colDef[key];
|
|
437
|
+
}
|
|
442
438
|
}
|
|
443
439
|
});
|
|
444
440
|
}
|
|
@@ -51,14 +51,13 @@ class Popup extends Module{
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
initializeColumn(column){
|
|
54
|
-
var
|
|
55
|
-
def = column.definition;
|
|
54
|
+
var def = column.definition;
|
|
56
55
|
|
|
57
56
|
//handle column events
|
|
58
57
|
if(def.headerContextPopup && !this.columnSubscribers.headerContextPopup){
|
|
59
58
|
this.columnSubscribers.headerContextPopup = this.loadPopupTableColumnEvent.bind(this, "headerContextPopup");
|
|
60
59
|
this.subscribe("column-contextmenu", this.columnSubscribers.headerContextPopup);
|
|
61
|
-
this.table.on("headerTapHold", this.loadPopupTableColumnEvent.bind(this, "headerContextPopup"))
|
|
60
|
+
this.table.on("headerTapHold", this.loadPopupTableColumnEvent.bind(this, "headerContextPopup"));
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
if(def.headerClickPopup && !this.columnSubscribers.headerClickPopup){
|
|
@@ -74,7 +73,7 @@ class Popup extends Module{
|
|
|
74
73
|
if(def.contextPopup && !this.columnSubscribers.contextPopup){
|
|
75
74
|
this.columnSubscribers.contextPopup = this.loadPopupTableCellEvent.bind(this, "contextPopup");
|
|
76
75
|
this.subscribe("cell-contextmenu", this.columnSubscribers.contextPopup);
|
|
77
|
-
this.table.on("cellTapHold", this.loadPopupTableCellEvent.bind(this, "contextPopup"))
|
|
76
|
+
this.table.on("cellTapHold", this.loadPopupTableCellEvent.bind(this, "contextPopup"));
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
if(def.clickPopup && !this.columnSubscribers.clickPopup){
|
|
@@ -185,7 +184,7 @@ class Popup extends Module{
|
|
|
185
184
|
|
|
186
185
|
|
|
187
186
|
|
|
188
|
-
this.dispatchExternal("popupOpened", component.getComponent())
|
|
187
|
+
this.dispatchExternal("popupOpened", component.getComponent());
|
|
189
188
|
}
|
|
190
189
|
}
|
|
191
190
|
|
|
@@ -42,7 +42,7 @@ class Print extends Module{
|
|
|
42
42
|
this.element = document.createElement("div");
|
|
43
43
|
this.element.classList.add("tabulator-print-table");
|
|
44
44
|
|
|
45
|
-
this.element.appendChild(this.table.modules.export.
|
|
45
|
+
this.element.appendChild(this.table.modules.export.generateTable(this.table.options.printConfig, this.table.options.printStyled, this.table.options.printRowRange, "print"));
|
|
46
46
|
|
|
47
47
|
this.table.element.style.display = "none";
|
|
48
48
|
|
|
@@ -64,7 +64,7 @@ class Print extends Module{
|
|
|
64
64
|
scrollY = window.scrollY,
|
|
65
65
|
headerEl = document.createElement("div"),
|
|
66
66
|
footerEl = document.createElement("div"),
|
|
67
|
-
tableEl = this.table.modules.export.
|
|
67
|
+
tableEl = this.table.modules.export.generateTable(typeof config != "undefined" ? config : this.table.options.printConfig, typeof style != "undefined" ? style : this.table.options.printStyled, visible || this.table.options.printRowRange, "print"),
|
|
68
68
|
headerContent, footerContent;
|
|
69
69
|
|
|
70
70
|
this.manualBlock = true;
|