tabulator-tables 5.2.5 → 5.3.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/.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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +55 -50
- 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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +16 -11
- 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 +1423 -686
- 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 +4140 -3440
- 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 +259 -231
- 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 +79 -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 +55 -66
- 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 +31 -32
- 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 +54 -50
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +1 -1
- package/src/js/modules/DataTree/DataTree.js +19 -14
- 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 +85 -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 +3 -3
- package/src/js/modules/GroupRows/GroupComponent.js +2 -2
- package/src/js/modules/GroupRows/GroupRows.js +12 -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 +39 -40
- 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 +9 -10
- 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 +0 -3
- 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 +30 -19
- 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
|
@@ -49,8 +49,8 @@ export default class CoreFeature{
|
|
|
49
49
|
return this.table.modules.layout.getMode();
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
layoutRefresh(){
|
|
53
|
-
return this.table.modules.layout.layout();
|
|
52
|
+
layoutRefresh(force){
|
|
53
|
+
return this.table.modules.layout.layout(force);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
|
|
@@ -114,7 +114,21 @@ export default class CoreFeature{
|
|
|
114
114
|
return this.table.options[key];
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
//////////////////////////////////////////
|
|
118
|
+
/////////// Deprecation Checks ///////////
|
|
119
|
+
//////////////////////////////////////////
|
|
120
|
+
|
|
121
|
+
deprecationCheck(oldOption, newOption){
|
|
122
|
+
return this.table.deprecationAdvisor.check(oldOption, newOption);
|
|
123
|
+
}
|
|
117
124
|
|
|
125
|
+
deprecationCheckMsg(oldOption, msg){
|
|
126
|
+
return this.table.deprecationAdvisor.checkMsg(oldOption, msg);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
deprecationMsg(msg){
|
|
130
|
+
return this.table.deprecationAdvisor.msg(msg);
|
|
131
|
+
}
|
|
118
132
|
//////////////////////////////////////////
|
|
119
133
|
//////////////// Modules /////////////////
|
|
120
134
|
//////////////////////////////////////////
|
|
@@ -39,17 +39,17 @@ export default class FooterManager extends CoreFeature{
|
|
|
39
39
|
|
|
40
40
|
switch(typeof this.table.options.footerElement){
|
|
41
41
|
case "string":
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
if(this.table.options.footerElement[0] === "<"){
|
|
43
|
+
this.containerElement.innerHTML = this.table.options.footerElement;
|
|
44
|
+
}else{
|
|
45
|
+
this.external = true;
|
|
46
|
+
this.containerElement = document.querySelector(this.table.options.footerElement);
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
49
|
|
|
50
50
|
default:
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
this.element = this.table.options.footerElement;
|
|
52
|
+
break;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -97,6 +97,6 @@ export default class FooterManager extends CoreFeature{
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
redraw(){
|
|
100
|
-
this.dispatch("footer-redraw")
|
|
100
|
+
this.dispatch("footer-redraw");
|
|
101
101
|
}
|
|
102
102
|
}
|
package/src/js/core/Module.js
CHANGED
|
@@ -10,7 +10,7 @@ class Module extends CoreFeature{
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
initialize(){
|
|
13
|
-
// setup module when table is initialized, to be
|
|
13
|
+
// setup module when table is initialized, to be overridden in module
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
|
|
@@ -36,9 +36,9 @@ class Module extends CoreFeature{
|
|
|
36
36
|
this.table.initGuard(name);
|
|
37
37
|
|
|
38
38
|
return func(...args);
|
|
39
|
-
}
|
|
39
|
+
};
|
|
40
40
|
}else{
|
|
41
|
-
console.warn("Unable to bind table function, name already in use", name)
|
|
41
|
+
console.warn("Unable to bind table function, name already in use", name);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -51,12 +51,12 @@ class Module extends CoreFeature{
|
|
|
51
51
|
///////////////////////////////////
|
|
52
52
|
|
|
53
53
|
registerDataHandler(handler, priority){
|
|
54
|
-
this.table.rowManager.registerDataPipelineHandler(handler, priority)
|
|
54
|
+
this.table.rowManager.registerDataPipelineHandler(handler, priority);
|
|
55
55
|
this._handler = handler;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
registerDisplayHandler(handler, priority){
|
|
59
|
-
this.table.rowManager.registerDisplayPipelineHandler(handler, priority)
|
|
59
|
+
this.table.rowManager.registerDisplayPipelineHandler(handler, priority);
|
|
60
60
|
this._handler = handler;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -75,15 +75,15 @@ class Module extends CoreFeature{
|
|
|
75
75
|
///////////////////////////////////
|
|
76
76
|
|
|
77
77
|
footerAppend(element){
|
|
78
|
-
return this.table.footerManager.append(element)
|
|
78
|
+
return this.table.footerManager.append(element);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
footerPrepend(element){
|
|
82
|
-
return this.table.footerManager.prepend(element)
|
|
82
|
+
return this.table.footerManager.prepend(element);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
footerRemove(element){
|
|
86
|
-
return this.table.footerManager.remove(element)
|
|
86
|
+
return this.table.footerManager.remove(element);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
///////////////////////////////////
|
|
@@ -32,8 +32,6 @@ export default class RowManager extends CoreFeature{
|
|
|
32
32
|
this.scrollTop = 0;
|
|
33
33
|
this.scrollLeft = 0;
|
|
34
34
|
|
|
35
|
-
this.rowNumColumn = false; //hold column component for row number column
|
|
36
|
-
|
|
37
35
|
this.redrawBlock = false; //prevent redraws to allow multiple data manipulations before continuing
|
|
38
36
|
this.redrawBlockRestoreConfig = false; //store latest redraw function calls for when redraw is needed
|
|
39
37
|
this.redrawBlockRenderInPosition = false; //store latest redraw function calls for when redraw is needed
|
|
@@ -92,17 +90,8 @@ export default class RowManager extends CoreFeature{
|
|
|
92
90
|
return this.tableElement;
|
|
93
91
|
}
|
|
94
92
|
|
|
95
|
-
//return position of row in table
|
|
96
|
-
getRowPosition(row, active){
|
|
97
|
-
if(active){
|
|
98
|
-
return this.activeRows.indexOf(row);
|
|
99
|
-
}else{
|
|
100
|
-
return this.rows.indexOf(row);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
93
|
initialize(){
|
|
105
|
-
this.initializePlaceholder()
|
|
94
|
+
this.initializePlaceholder();
|
|
106
95
|
this.initializeRenderer();
|
|
107
96
|
|
|
108
97
|
//initialize manager
|
|
@@ -123,7 +112,7 @@ export default class RowManager extends CoreFeature{
|
|
|
123
112
|
|
|
124
113
|
this.dispatch("scroll-horizontal", left, leftDir);
|
|
125
114
|
this.dispatchExternal("scrollHorizontal", left, leftDir);
|
|
126
|
-
|
|
115
|
+
|
|
127
116
|
this._positionPlaceholder();
|
|
128
117
|
}
|
|
129
118
|
|
|
@@ -155,8 +144,10 @@ export default class RowManager extends CoreFeature{
|
|
|
155
144
|
});
|
|
156
145
|
|
|
157
146
|
return match || false;
|
|
147
|
+
}else if(subject === null){
|
|
148
|
+
return false;
|
|
158
149
|
}
|
|
159
|
-
}else if(typeof subject == "undefined"
|
|
150
|
+
}else if(typeof subject == "undefined"){
|
|
160
151
|
return false;
|
|
161
152
|
}else{
|
|
162
153
|
//subject should be treated as the index of the row
|
|
@@ -179,12 +170,10 @@ export default class RowManager extends CoreFeature{
|
|
|
179
170
|
return match || false;
|
|
180
171
|
}
|
|
181
172
|
|
|
182
|
-
getRowFromPosition(position
|
|
183
|
-
|
|
184
|
-
return
|
|
185
|
-
}
|
|
186
|
-
return this.rows[position];
|
|
187
|
-
}
|
|
173
|
+
getRowFromPosition(position){
|
|
174
|
+
return this.getDisplayRows().find((row) => {
|
|
175
|
+
return row.getPosition() === position && row.isDisplayed();
|
|
176
|
+
});
|
|
188
177
|
}
|
|
189
178
|
|
|
190
179
|
scrollToRow(row, position, ifVisible){
|
|
@@ -284,7 +273,7 @@ export default class RowManager extends CoreFeature{
|
|
|
284
273
|
this.reRenderInPosition();
|
|
285
274
|
}
|
|
286
275
|
|
|
287
|
-
this.
|
|
276
|
+
this.regenerateRowPositions();
|
|
288
277
|
|
|
289
278
|
this.dispatchExternal("rowDeleted", row.getComponent());
|
|
290
279
|
|
|
@@ -304,8 +293,7 @@ export default class RowManager extends CoreFeature{
|
|
|
304
293
|
|
|
305
294
|
//add multiple rows
|
|
306
295
|
addRows(data, pos, index){
|
|
307
|
-
var
|
|
308
|
-
rows = [];
|
|
296
|
+
var rows = [];
|
|
309
297
|
|
|
310
298
|
return new Promise((resolve, reject) => {
|
|
311
299
|
pos = this.findAddRowPos(pos);
|
|
@@ -314,8 +302,6 @@ export default class RowManager extends CoreFeature{
|
|
|
314
302
|
data = [data];
|
|
315
303
|
}
|
|
316
304
|
|
|
317
|
-
length = data.length - 1;
|
|
318
|
-
|
|
319
305
|
if((typeof index == "undefined" && pos) || (typeof index !== "undefined" && !pos)){
|
|
320
306
|
data.reverse();
|
|
321
307
|
}
|
|
@@ -328,7 +314,7 @@ export default class RowManager extends CoreFeature{
|
|
|
328
314
|
|
|
329
315
|
this.refreshActiveData(false, false, true);
|
|
330
316
|
|
|
331
|
-
this.
|
|
317
|
+
this.regenerateRowPositions();
|
|
332
318
|
|
|
333
319
|
if(rows.length){
|
|
334
320
|
this._clearPlaceholder();
|
|
@@ -434,7 +420,7 @@ export default class RowManager extends CoreFeature{
|
|
|
434
420
|
|
|
435
421
|
this.moveRowActual(from, to, after);
|
|
436
422
|
|
|
437
|
-
this.
|
|
423
|
+
this.regenerateRowPositions();
|
|
438
424
|
|
|
439
425
|
this.dispatch("row-moved", from, to, after);
|
|
440
426
|
this.dispatchExternal("rowMoved", from.getComponent());
|
|
@@ -591,23 +577,23 @@ export default class RowManager extends CoreFeature{
|
|
|
591
577
|
|
|
592
578
|
registerDataPipelineHandler(handler, priority){
|
|
593
579
|
if(typeof priority !== "undefined"){
|
|
594
|
-
this.dataPipeline.push({handler, priority})
|
|
580
|
+
this.dataPipeline.push({handler, priority});
|
|
595
581
|
this.dataPipeline.sort((a, b) => {
|
|
596
582
|
return a.priority - b.priority;
|
|
597
583
|
});
|
|
598
584
|
}else{
|
|
599
|
-
console.error("Data pipeline handlers must have a priority in order to be registered")
|
|
585
|
+
console.error("Data pipeline handlers must have a priority in order to be registered");
|
|
600
586
|
}
|
|
601
587
|
}
|
|
602
588
|
|
|
603
589
|
registerDisplayPipelineHandler(handler, priority){
|
|
604
590
|
if(typeof priority !== "undefined"){
|
|
605
|
-
this.displayPipeline.push({handler, priority})
|
|
591
|
+
this.displayPipeline.push({handler, priority});
|
|
606
592
|
this.displayPipeline.sort((a, b) => {
|
|
607
593
|
return a.priority - b.priority;
|
|
608
594
|
});
|
|
609
595
|
}else{
|
|
610
|
-
console.error("Display pipeline handlers must have a priority in order to be registered")
|
|
596
|
+
console.error("Display pipeline handlers must have a priority in order to be registered");
|
|
611
597
|
}
|
|
612
598
|
}
|
|
613
599
|
|
|
@@ -616,8 +602,7 @@ export default class RowManager extends CoreFeature{
|
|
|
616
602
|
var table = this.table,
|
|
617
603
|
stage = "",
|
|
618
604
|
index = 0,
|
|
619
|
-
cascadeOrder = ["all", "dataPipeline", "display", "displayPipeline", "end"]
|
|
620
|
-
displayIndex;
|
|
605
|
+
cascadeOrder = ["all", "dataPipeline", "display", "displayPipeline", "end"];
|
|
621
606
|
|
|
622
607
|
|
|
623
608
|
if(typeof handler === "function"){
|
|
@@ -651,7 +636,7 @@ export default class RowManager extends CoreFeature{
|
|
|
651
636
|
}
|
|
652
637
|
}
|
|
653
638
|
}else{
|
|
654
|
-
console.error("Unable to refresh data, invalid handler provided", handler)
|
|
639
|
+
console.error("Unable to refresh data, invalid handler provided", handler);
|
|
655
640
|
return;
|
|
656
641
|
}
|
|
657
642
|
}
|
|
@@ -707,47 +692,46 @@ export default class RowManager extends CoreFeature{
|
|
|
707
692
|
//cascade through data refresh stages
|
|
708
693
|
switch(stage){
|
|
709
694
|
case "all":
|
|
710
|
-
//handle case where
|
|
695
|
+
//handle case where all data needs refreshing
|
|
711
696
|
|
|
712
697
|
case "dataPipeline":
|
|
713
698
|
|
|
714
|
-
|
|
715
|
-
|
|
699
|
+
for(let i = index; i < this.dataPipeline.length; i++){
|
|
700
|
+
let result = this.dataPipeline[i].handler(this.activeRowsPipeline[i].slice(0));
|
|
701
|
+
|
|
702
|
+
this.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);
|
|
716
706
|
|
|
717
|
-
this.activeRowsPipeline[i + 1] = result || this.activeRowsPipeline[i].slice(0);
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);
|
|
721
|
-
|
|
722
|
-
this.regenerateRowNumbers();
|
|
723
|
-
|
|
724
707
|
case "display":
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
case "displayPipeline":
|
|
729
|
-
for(let i = index; i < this.displayPipeline.length; i++){
|
|
730
|
-
let result = this.displayPipeline[i].handler((i ? this.getDisplayRows(i - 1) : this.activeRows).slice(0), renderInPosition);
|
|
708
|
+
index = 0;
|
|
709
|
+
this.resetDisplayRows();
|
|
731
710
|
|
|
732
|
-
|
|
733
|
-
|
|
711
|
+
case "displayPipeline":
|
|
712
|
+
for(let i = index; i < this.displayPipeline.length; i++){
|
|
713
|
+
let result = this.displayPipeline[i].handler((i ? this.getDisplayRows(i - 1) : this.activeRows).slice(0), renderInPosition);
|
|
714
|
+
|
|
715
|
+
this.setDisplayRows(result || this.getDisplayRows(i - 1).slice(0), i);
|
|
716
|
+
}
|
|
734
717
|
|
|
735
718
|
case "end":
|
|
736
|
-
|
|
719
|
+
//case to handle scenario when trying to skip past end stage
|
|
720
|
+
this.regenerateRowPositions();
|
|
737
721
|
}
|
|
738
722
|
}
|
|
739
723
|
|
|
740
|
-
//regenerate row
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
}
|
|
750
|
-
}
|
|
724
|
+
//regenerate row positions
|
|
725
|
+
regenerateRowPositions(){
|
|
726
|
+
var rows = this.getDisplayRows();
|
|
727
|
+
var index = 1;
|
|
728
|
+
|
|
729
|
+
rows.forEach((row) => {
|
|
730
|
+
if (row.type === "row"){
|
|
731
|
+
row.setPosition(index);
|
|
732
|
+
index++;
|
|
733
|
+
}
|
|
734
|
+
});
|
|
751
735
|
}
|
|
752
736
|
|
|
753
737
|
setActiveRows(activeRows){
|
|
@@ -777,7 +761,7 @@ export default class RowManager extends CoreFeature{
|
|
|
777
761
|
this.displayRows[index] = displayRows;
|
|
778
762
|
output = true;
|
|
779
763
|
}else{
|
|
780
|
-
this.displayRows.push(displayRows)
|
|
764
|
+
this.displayRows.push(displayRows);
|
|
781
765
|
output = index = this.displayRows.length -1;
|
|
782
766
|
}
|
|
783
767
|
|
|
@@ -806,7 +790,7 @@ export default class RowManager extends CoreFeature{
|
|
|
806
790
|
return rows;
|
|
807
791
|
}
|
|
808
792
|
|
|
809
|
-
//repeat action
|
|
793
|
+
//repeat action across display rows
|
|
810
794
|
displayRowIterator(callback){
|
|
811
795
|
this.activeRowsPipeline.forEach(callback);
|
|
812
796
|
this.displayRows.forEach(callback);
|
|
@@ -820,19 +804,19 @@ export default class RowManager extends CoreFeature{
|
|
|
820
804
|
|
|
821
805
|
switch(type){
|
|
822
806
|
case "active":
|
|
823
|
-
|
|
824
|
-
|
|
807
|
+
rows = this.activeRows;
|
|
808
|
+
break;
|
|
825
809
|
|
|
826
810
|
case "display":
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
811
|
+
rows = this.table.rowManager.getDisplayRows();
|
|
812
|
+
break;
|
|
813
|
+
|
|
830
814
|
case "visible":
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
815
|
+
rows = this.getVisibleRows(false, true);
|
|
816
|
+
break;
|
|
817
|
+
|
|
834
818
|
default:
|
|
835
|
-
|
|
819
|
+
rows = this.chain("rows-retrieve", type, null, this.rows) || this.rows;
|
|
836
820
|
}
|
|
837
821
|
|
|
838
822
|
return rows;
|
|
@@ -849,7 +833,13 @@ export default class RowManager extends CoreFeature{
|
|
|
849
833
|
}
|
|
850
834
|
}else{
|
|
851
835
|
this.dispatchExternal("renderStarted");
|
|
836
|
+
|
|
852
837
|
this.renderer.rerenderRows(callback);
|
|
838
|
+
|
|
839
|
+
if(!this.fixedHeight){
|
|
840
|
+
this.adjustTableSize();
|
|
841
|
+
}
|
|
842
|
+
|
|
853
843
|
this.dispatchExternal("renderComplete");
|
|
854
844
|
}
|
|
855
845
|
}
|
|
@@ -878,7 +868,7 @@ export default class RowManager extends CoreFeature{
|
|
|
878
868
|
this.fixedHeight = false;
|
|
879
869
|
}
|
|
880
870
|
}else{
|
|
881
|
-
console.error("Unable to find matching renderer:", table.options.renderVertical);
|
|
871
|
+
console.error("Unable to find matching renderer:", this.table.options.renderVertical);
|
|
882
872
|
}
|
|
883
873
|
}
|
|
884
874
|
|
|
@@ -898,7 +888,7 @@ export default class RowManager extends CoreFeature{
|
|
|
898
888
|
|
|
899
889
|
if(this.firstRender){
|
|
900
890
|
this.firstRender = false;
|
|
901
|
-
this.layoutRefresh();
|
|
891
|
+
this.layoutRefresh(true);
|
|
902
892
|
}
|
|
903
893
|
}else{
|
|
904
894
|
this.renderEmptyScroll();
|
|
@@ -928,13 +918,14 @@ export default class RowManager extends CoreFeature{
|
|
|
928
918
|
}
|
|
929
919
|
}
|
|
930
920
|
|
|
931
|
-
_clearTable(){
|
|
932
|
-
var element = this.tableElement;
|
|
933
|
-
|
|
921
|
+
_clearTable(){
|
|
934
922
|
this._clearPlaceholder();
|
|
935
923
|
|
|
936
924
|
this.scrollTop = 0;
|
|
937
925
|
this.scrollLeft = 0;
|
|
926
|
+
|
|
927
|
+
// clear empty table placeholder min
|
|
928
|
+
this.tableElement.style.minWidth = "";
|
|
938
929
|
|
|
939
930
|
this.renderer.clearRows();
|
|
940
931
|
}
|
|
@@ -983,14 +974,15 @@ export default class RowManager extends CoreFeature{
|
|
|
983
974
|
|
|
984
975
|
//adjust the height of the table holder to fit in the Tabulator element
|
|
985
976
|
adjustTableSize(){
|
|
986
|
-
var initialHeight = this.element.clientHeight,
|
|
987
|
-
modExists;
|
|
977
|
+
var initialHeight = this.element.clientHeight, minHeight;
|
|
988
978
|
|
|
989
979
|
if(this.renderer.verticalFillMode === "fill"){
|
|
990
980
|
let otherHeight = Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height + (this.table.footerManager && this.table.footerManager.active && !this.table.footerManager.external ? this.table.footerManager.getElement().getBoundingClientRect().height : 0));
|
|
991
981
|
|
|
992
982
|
if(this.fixedHeight){
|
|
993
|
-
this.
|
|
983
|
+
minHeight = isNaN(this.table.options.minHeight) ? this.table.options.minHeight : this.table.options.minHeight + "px";
|
|
984
|
+
|
|
985
|
+
this.element.style.minHeight = minHeight || "calc(100% - " + otherHeight + "px)";
|
|
994
986
|
this.element.style.height = "calc(100% - " + otherHeight + "px)";
|
|
995
987
|
this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
|
|
996
988
|
}else{
|
|
@@ -1010,11 +1002,11 @@ export default class RowManager extends CoreFeature{
|
|
|
1010
1002
|
}
|
|
1011
1003
|
}
|
|
1012
1004
|
}
|
|
1013
|
-
|
|
1005
|
+
|
|
1014
1006
|
this._positionPlaceholder();
|
|
1015
1007
|
}
|
|
1016
1008
|
|
|
1017
|
-
//
|
|
1009
|
+
//reinitialize all rows
|
|
1018
1010
|
reinitialize(){
|
|
1019
1011
|
this.rows.forEach(function(row){
|
|
1020
1012
|
row.reinitialize(true);
|
|
@@ -1032,7 +1024,7 @@ export default class RowManager extends CoreFeature{
|
|
|
1032
1024
|
this.redrawBlock = false;
|
|
1033
1025
|
|
|
1034
1026
|
if(this.redrawBlockRestoreConfig){
|
|
1035
|
-
this.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition)
|
|
1027
|
+
this.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
|
|
1036
1028
|
|
|
1037
1029
|
this.redrawBlockRestoreConfig = false;
|
|
1038
1030
|
}else{
|
|
@@ -1046,8 +1038,7 @@ export default class RowManager extends CoreFeature{
|
|
|
1046
1038
|
|
|
1047
1039
|
//redraw table
|
|
1048
1040
|
redraw (force){
|
|
1049
|
-
var
|
|
1050
|
-
left = this.scrollLeft;
|
|
1041
|
+
var left = this.scrollLeft;
|
|
1051
1042
|
|
|
1052
1043
|
this.adjustTableSize();
|
|
1053
1044
|
|