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
|
@@ -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
|
}
|
|
@@ -869,6 +859,8 @@ export default class RowManager extends CoreFeature{
|
|
|
869
859
|
}
|
|
870
860
|
|
|
871
861
|
if(renderClass){
|
|
862
|
+
this.renderMode = this.table.options.renderVertical;
|
|
863
|
+
|
|
872
864
|
this.renderer = new renderClass(this.table, this.element, this.tableElement);
|
|
873
865
|
this.renderer.initialize();
|
|
874
866
|
|
|
@@ -878,7 +870,7 @@ export default class RowManager extends CoreFeature{
|
|
|
878
870
|
this.fixedHeight = false;
|
|
879
871
|
}
|
|
880
872
|
}else{
|
|
881
|
-
console.error("Unable to find matching renderer:", table.options.renderVertical);
|
|
873
|
+
console.error("Unable to find matching renderer:", this.table.options.renderVertical);
|
|
882
874
|
}
|
|
883
875
|
}
|
|
884
876
|
|
|
@@ -898,7 +890,7 @@ export default class RowManager extends CoreFeature{
|
|
|
898
890
|
|
|
899
891
|
if(this.firstRender){
|
|
900
892
|
this.firstRender = false;
|
|
901
|
-
this.layoutRefresh();
|
|
893
|
+
this.layoutRefresh(true);
|
|
902
894
|
}
|
|
903
895
|
}else{
|
|
904
896
|
this.renderEmptyScroll();
|
|
@@ -928,13 +920,14 @@ export default class RowManager extends CoreFeature{
|
|
|
928
920
|
}
|
|
929
921
|
}
|
|
930
922
|
|
|
931
|
-
_clearTable(){
|
|
932
|
-
var element = this.tableElement;
|
|
933
|
-
|
|
923
|
+
_clearTable(){
|
|
934
924
|
this._clearPlaceholder();
|
|
935
925
|
|
|
936
926
|
this.scrollTop = 0;
|
|
937
927
|
this.scrollLeft = 0;
|
|
928
|
+
|
|
929
|
+
// clear empty table placeholder min
|
|
930
|
+
this.tableElement.style.minWidth = "";
|
|
938
931
|
|
|
939
932
|
this.renderer.clearRows();
|
|
940
933
|
}
|
|
@@ -983,14 +976,15 @@ export default class RowManager extends CoreFeature{
|
|
|
983
976
|
|
|
984
977
|
//adjust the height of the table holder to fit in the Tabulator element
|
|
985
978
|
adjustTableSize(){
|
|
986
|
-
var initialHeight = this.element.clientHeight,
|
|
987
|
-
modExists;
|
|
979
|
+
var initialHeight = this.element.clientHeight, minHeight;
|
|
988
980
|
|
|
989
981
|
if(this.renderer.verticalFillMode === "fill"){
|
|
990
982
|
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
983
|
|
|
992
984
|
if(this.fixedHeight){
|
|
993
|
-
this.
|
|
985
|
+
minHeight = isNaN(this.table.options.minHeight) ? this.table.options.minHeight : this.table.options.minHeight + "px";
|
|
986
|
+
|
|
987
|
+
this.element.style.minHeight = minHeight || "calc(100% - " + otherHeight + "px)";
|
|
994
988
|
this.element.style.height = "calc(100% - " + otherHeight + "px)";
|
|
995
989
|
this.element.style.maxHeight = "calc(100% - " + otherHeight + "px)";
|
|
996
990
|
}else{
|
|
@@ -1010,11 +1004,11 @@ export default class RowManager extends CoreFeature{
|
|
|
1010
1004
|
}
|
|
1011
1005
|
}
|
|
1012
1006
|
}
|
|
1013
|
-
|
|
1007
|
+
|
|
1014
1008
|
this._positionPlaceholder();
|
|
1015
1009
|
}
|
|
1016
1010
|
|
|
1017
|
-
//
|
|
1011
|
+
//reinitialize all rows
|
|
1018
1012
|
reinitialize(){
|
|
1019
1013
|
this.rows.forEach(function(row){
|
|
1020
1014
|
row.reinitialize(true);
|
|
@@ -1032,7 +1026,7 @@ export default class RowManager extends CoreFeature{
|
|
|
1032
1026
|
this.redrawBlock = false;
|
|
1033
1027
|
|
|
1034
1028
|
if(this.redrawBlockRestoreConfig){
|
|
1035
|
-
this.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition)
|
|
1029
|
+
this.refreshActiveData(this.redrawBlockRestoreConfig.handler, this.redrawBlockRestoreConfig.skipStage, this.redrawBlockRestoreConfig.renderInPosition);
|
|
1036
1030
|
|
|
1037
1031
|
this.redrawBlockRestoreConfig = false;
|
|
1038
1032
|
}else{
|
|
@@ -1046,8 +1040,7 @@ export default class RowManager extends CoreFeature{
|
|
|
1046
1040
|
|
|
1047
1041
|
//redraw table
|
|
1048
1042
|
redraw (force){
|
|
1049
|
-
var
|
|
1050
|
-
left = this.scrollLeft;
|
|
1043
|
+
var left = this.scrollLeft;
|
|
1051
1044
|
|
|
1052
1045
|
this.adjustTableSize();
|
|
1053
1046
|
|