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
|
@@ -10,10 +10,10 @@ import RendererVirtualDomHorizontal from './rendering/renderers/VirtualDomHorizo
|
|
|
10
10
|
import defaultColumnOptions from './column/defaults/options.js';
|
|
11
11
|
|
|
12
12
|
export default class ColumnManager extends CoreFeature {
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
constructor (table){
|
|
15
15
|
super(table);
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
this.blockHozScrollEvent = false;
|
|
18
18
|
this.headersElement = null;
|
|
19
19
|
this.element = null ; //containing element
|
|
@@ -22,86 +22,89 @@ export default class ColumnManager extends CoreFeature {
|
|
|
22
22
|
this.columnsByField = {}; //columns by field
|
|
23
23
|
this.scrollLeft = 0;
|
|
24
24
|
this.optionsList = new OptionsList(this.table, "column definition", defaultColumnOptions);
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
this.redrawBlock = false; //prevent redraws to allow multiple data manipulations before continuing
|
|
27
|
+
this.redrawBlockUpdate = null; //store latest redraw update only status
|
|
28
|
+
|
|
26
29
|
this.renderer = null;
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
|
|
29
32
|
////////////// Setup Functions /////////////////
|
|
30
|
-
|
|
33
|
+
|
|
31
34
|
initialize(){
|
|
32
35
|
this.initializeRenderer();
|
|
33
|
-
|
|
36
|
+
|
|
34
37
|
this.headersElement = this.createHeadersElement();
|
|
35
38
|
this.element = this.createHeaderElement();
|
|
36
|
-
|
|
39
|
+
|
|
37
40
|
this.element.insertBefore(this.headersElement, this.element.firstChild);
|
|
38
|
-
|
|
41
|
+
|
|
39
42
|
this.subscribe("scroll-horizontal", this.scrollHorizontal.bind(this));
|
|
40
43
|
}
|
|
41
|
-
|
|
44
|
+
|
|
42
45
|
initializeRenderer(){
|
|
43
46
|
var renderClass;
|
|
44
|
-
|
|
47
|
+
|
|
45
48
|
var renderers = {
|
|
46
49
|
"virtual": RendererVirtualDomHorizontal,
|
|
47
50
|
"basic": RendererBasicHorizontal,
|
|
48
51
|
};
|
|
49
|
-
|
|
52
|
+
|
|
50
53
|
if(typeof this.table.options.renderHorizontal === "string"){
|
|
51
54
|
renderClass = renderers[this.table.options.renderHorizontal];
|
|
52
55
|
}else{
|
|
53
56
|
renderClass = this.table.options.renderHorizontal;
|
|
54
57
|
}
|
|
55
|
-
|
|
58
|
+
|
|
56
59
|
if(renderClass){
|
|
57
60
|
this.renderer = new renderClass(this.table, this.element, this.tableElement);
|
|
58
61
|
this.renderer.initialize();
|
|
59
62
|
}else{
|
|
60
|
-
console.error("Unable to find matching renderer:", table.options.renderHorizontal);
|
|
63
|
+
console.error("Unable to find matching renderer:", this.table.options.renderHorizontal);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
|
|
67
|
+
|
|
65
68
|
createHeadersElement (){
|
|
66
69
|
var el = document.createElement("div");
|
|
67
|
-
|
|
70
|
+
|
|
68
71
|
el.classList.add("tabulator-headers");
|
|
69
72
|
el.setAttribute("role", "row");
|
|
70
|
-
|
|
73
|
+
|
|
71
74
|
return el;
|
|
72
75
|
}
|
|
73
|
-
|
|
76
|
+
|
|
74
77
|
createHeaderElement (){
|
|
75
78
|
var el = document.createElement("div");
|
|
76
|
-
|
|
79
|
+
|
|
77
80
|
el.classList.add("tabulator-header");
|
|
78
81
|
el.setAttribute("role", "rowgroup");
|
|
79
|
-
|
|
82
|
+
|
|
80
83
|
if(!this.table.options.headerVisible){
|
|
81
84
|
el.classList.add("tabulator-header-hidden");
|
|
82
85
|
}
|
|
83
|
-
|
|
86
|
+
|
|
84
87
|
return el;
|
|
85
88
|
}
|
|
86
|
-
|
|
89
|
+
|
|
87
90
|
//return containing element
|
|
88
91
|
getElement(){
|
|
89
92
|
return this.element;
|
|
90
93
|
}
|
|
91
|
-
|
|
94
|
+
|
|
92
95
|
//return header containing element
|
|
93
96
|
getHeadersElement(){
|
|
94
97
|
return this.headersElement;
|
|
95
98
|
}
|
|
96
|
-
|
|
99
|
+
|
|
97
100
|
//scroll horizontally to match table body
|
|
98
101
|
scrollHorizontal(left){
|
|
99
102
|
var hozAdjust = 0,
|
|
100
103
|
scrollWidth = this.element.scrollWidth - this.table.element.clientWidth;
|
|
101
|
-
|
|
104
|
+
|
|
102
105
|
// this.tempScrollBlock();
|
|
103
106
|
this.element.scrollLeft = left;
|
|
104
|
-
|
|
107
|
+
|
|
105
108
|
//adjust for vertical scrollbar moving table when present
|
|
106
109
|
if(left > scrollWidth){
|
|
107
110
|
hozAdjust = left - scrollWidth;
|
|
@@ -109,135 +112,135 @@ export default class ColumnManager extends CoreFeature {
|
|
|
109
112
|
}else{
|
|
110
113
|
this.element.style.marginLeft = 0;
|
|
111
114
|
}
|
|
112
|
-
|
|
115
|
+
|
|
113
116
|
this.scrollLeft = left;
|
|
114
|
-
|
|
117
|
+
|
|
115
118
|
this.renderer.scrollColumns(left);
|
|
116
119
|
}
|
|
117
|
-
|
|
120
|
+
|
|
118
121
|
///////////// Column Setup Functions /////////////
|
|
119
122
|
generateColumnsFromRowData(data){
|
|
120
123
|
var cols = [],
|
|
121
124
|
definitions = this.table.options.autoColumnsDefinitions,
|
|
122
125
|
row, sorter;
|
|
123
|
-
|
|
126
|
+
|
|
124
127
|
if(data && data.length){
|
|
125
|
-
|
|
128
|
+
|
|
126
129
|
row = data[0];
|
|
127
|
-
|
|
130
|
+
|
|
128
131
|
for(var key in row){
|
|
129
132
|
let col = {
|
|
130
133
|
field:key,
|
|
131
134
|
title:key,
|
|
132
135
|
};
|
|
133
|
-
|
|
136
|
+
|
|
134
137
|
let value = row[key];
|
|
135
|
-
|
|
138
|
+
|
|
136
139
|
switch(typeof value){
|
|
137
140
|
case "undefined":
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
+
sorter = "string";
|
|
142
|
+
break;
|
|
143
|
+
|
|
141
144
|
case "boolean":
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
sorter = "boolean";
|
|
146
|
+
break;
|
|
147
|
+
|
|
145
148
|
case "object":
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}else{
|
|
149
|
-
sorter = "string";
|
|
150
|
-
}
|
|
151
|
-
break;
|
|
152
|
-
|
|
153
|
-
default:
|
|
154
|
-
if(!isNaN(value) && value !== ""){
|
|
155
|
-
sorter = "number";
|
|
156
|
-
}else{
|
|
157
|
-
if(value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)){
|
|
158
|
-
sorter = "alphanum";
|
|
149
|
+
if(Array.isArray(value)){
|
|
150
|
+
sorter = "array";
|
|
159
151
|
}else{
|
|
160
152
|
sorter = "string";
|
|
161
153
|
}
|
|
162
|
-
|
|
163
|
-
|
|
154
|
+
break;
|
|
155
|
+
|
|
156
|
+
default:
|
|
157
|
+
if(!isNaN(value) && value !== ""){
|
|
158
|
+
sorter = "number";
|
|
159
|
+
}else{
|
|
160
|
+
if(value.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)){
|
|
161
|
+
sorter = "alphanum";
|
|
162
|
+
}else{
|
|
163
|
+
sorter = "string";
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
164
167
|
}
|
|
165
|
-
|
|
168
|
+
|
|
166
169
|
col.sorter = sorter;
|
|
167
|
-
|
|
170
|
+
|
|
168
171
|
cols.push(col);
|
|
169
172
|
}
|
|
170
|
-
|
|
173
|
+
|
|
171
174
|
if(definitions){
|
|
172
|
-
|
|
175
|
+
|
|
173
176
|
switch(typeof definitions){
|
|
174
177
|
case "function":
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
+
this.table.options.columns = definitions.call(this.table, cols);
|
|
179
|
+
break;
|
|
180
|
+
|
|
178
181
|
case "object":
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
182
|
+
if(Array.isArray(definitions)){
|
|
183
|
+
cols.forEach((col) => {
|
|
184
|
+
var match = definitions.find((def) => {
|
|
185
|
+
return def.field === col.field;
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
if(match){
|
|
189
|
+
Object.assign(col, match);
|
|
190
|
+
}
|
|
183
191
|
});
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
this.table.options.columns = cols;
|
|
199
|
-
break;
|
|
192
|
+
|
|
193
|
+
}else{
|
|
194
|
+
cols.forEach((col) => {
|
|
195
|
+
if(definitions[col.field]){
|
|
196
|
+
Object.assign(col, definitions[col.field]);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
this.table.options.columns = cols;
|
|
202
|
+
break;
|
|
200
203
|
}
|
|
201
204
|
}else{
|
|
202
205
|
this.table.options.columns = cols;
|
|
203
206
|
}
|
|
204
|
-
|
|
207
|
+
|
|
205
208
|
this.setColumns(this.table.options.columns);
|
|
206
209
|
}
|
|
207
210
|
}
|
|
208
|
-
|
|
211
|
+
|
|
209
212
|
setColumns(cols, row){
|
|
210
213
|
while(this.headersElement.firstChild) this.headersElement.removeChild(this.headersElement.firstChild);
|
|
211
|
-
|
|
214
|
+
|
|
212
215
|
this.columns = [];
|
|
213
216
|
this.columnsByIndex = [];
|
|
214
217
|
this.columnsByField = {};
|
|
215
|
-
|
|
218
|
+
|
|
216
219
|
this.dispatch("columns-loading");
|
|
217
|
-
|
|
220
|
+
|
|
218
221
|
cols.forEach((def, i) => {
|
|
219
222
|
this._addColumn(def);
|
|
220
223
|
});
|
|
221
|
-
|
|
224
|
+
|
|
222
225
|
this._reIndexColumns();
|
|
223
|
-
|
|
226
|
+
|
|
224
227
|
this.dispatch("columns-loaded");
|
|
225
|
-
|
|
226
|
-
this.
|
|
227
|
-
|
|
228
|
+
|
|
229
|
+
this.rerenderColumns(false, true);
|
|
230
|
+
|
|
228
231
|
this.redraw(true);
|
|
229
232
|
}
|
|
230
|
-
|
|
233
|
+
|
|
231
234
|
_addColumn(definition, before, nextToColumn){
|
|
232
235
|
var column = new Column(definition, this),
|
|
233
236
|
colEl = column.getElement(),
|
|
234
237
|
index = nextToColumn ? this.findColumnIndex(nextToColumn) : nextToColumn;
|
|
235
|
-
|
|
238
|
+
|
|
236
239
|
if(nextToColumn && index > -1){
|
|
237
|
-
var topColumn = nextToColumn.getTopColumn()
|
|
240
|
+
var topColumn = nextToColumn.getTopColumn();
|
|
238
241
|
var parentIndex = this.columns.indexOf(topColumn);
|
|
239
242
|
var nextEl = topColumn.getElement();
|
|
240
|
-
|
|
243
|
+
|
|
241
244
|
if(before){
|
|
242
245
|
this.columns.splice(parentIndex, 0, column);
|
|
243
246
|
nextEl.parentNode.insertBefore(colEl, nextEl);
|
|
@@ -254,57 +257,60 @@ export default class ColumnManager extends CoreFeature {
|
|
|
254
257
|
this.headersElement.appendChild(column.getElement());
|
|
255
258
|
}
|
|
256
259
|
}
|
|
257
|
-
|
|
260
|
+
|
|
258
261
|
column.columnRendered();
|
|
259
|
-
|
|
262
|
+
|
|
260
263
|
return column;
|
|
261
264
|
}
|
|
262
|
-
|
|
265
|
+
|
|
263
266
|
registerColumnField(col){
|
|
264
267
|
if(col.definition.field){
|
|
265
268
|
this.columnsByField[col.definition.field] = col;
|
|
266
269
|
}
|
|
267
270
|
}
|
|
268
|
-
|
|
271
|
+
|
|
269
272
|
registerColumnPosition(col){
|
|
270
273
|
this.columnsByIndex.push(col);
|
|
271
274
|
}
|
|
272
|
-
|
|
275
|
+
|
|
273
276
|
_reIndexColumns(){
|
|
274
277
|
this.columnsByIndex = [];
|
|
275
|
-
|
|
278
|
+
|
|
276
279
|
this.columns.forEach(function(column){
|
|
277
280
|
column.reRegisterPosition();
|
|
278
281
|
});
|
|
279
282
|
}
|
|
280
|
-
|
|
283
|
+
|
|
281
284
|
//ensure column headers take up the correct amount of space in column groups
|
|
282
285
|
verticalAlignHeaders(){
|
|
283
286
|
var minHeight = 0;
|
|
284
|
-
|
|
285
|
-
this.
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
287
|
+
|
|
288
|
+
if(!this.redrawBlock){
|
|
289
|
+
|
|
290
|
+
this.columns.forEach((column) => {
|
|
291
|
+
column.clearVerticalAlign();
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
this.columns.forEach((column) => {
|
|
295
|
+
var height = column.getHeight();
|
|
296
|
+
|
|
297
|
+
if(height > minHeight){
|
|
298
|
+
minHeight = height;
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
this.columns.forEach((column) => {
|
|
303
|
+
column.verticalAlign(this.table.options.columnHeaderVertAlign, minHeight);
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
this.table.rowManager.adjustTableSize();
|
|
307
|
+
}
|
|
302
308
|
}
|
|
303
|
-
|
|
309
|
+
|
|
304
310
|
//////////////// Column Details /////////////////
|
|
305
311
|
findColumn(subject){
|
|
306
312
|
if(typeof subject == "object"){
|
|
307
|
-
|
|
313
|
+
|
|
308
314
|
if(subject instanceof Column){
|
|
309
315
|
//subject is column element
|
|
310
316
|
return subject;
|
|
@@ -316,275 +322,275 @@ export default class ColumnManager extends CoreFeature {
|
|
|
316
322
|
let match = this.columns.find((column) => {
|
|
317
323
|
return column.element === subject;
|
|
318
324
|
});
|
|
319
|
-
|
|
325
|
+
|
|
320
326
|
return match || false;
|
|
321
327
|
}
|
|
322
|
-
|
|
328
|
+
|
|
323
329
|
}else{
|
|
324
330
|
//subject should be treated as the field name of the column
|
|
325
331
|
return this.columnsByField[subject] || false;
|
|
326
332
|
}
|
|
327
|
-
|
|
333
|
+
|
|
328
334
|
//catch all for any other type of input
|
|
329
335
|
return false;
|
|
330
336
|
}
|
|
331
|
-
|
|
337
|
+
|
|
332
338
|
getColumnByField(field){
|
|
333
339
|
return this.columnsByField[field];
|
|
334
340
|
}
|
|
335
|
-
|
|
341
|
+
|
|
336
342
|
getColumnsByFieldRoot(root){
|
|
337
343
|
var matches = [];
|
|
338
|
-
|
|
344
|
+
|
|
339
345
|
Object.keys(this.columnsByField).forEach((field) => {
|
|
340
346
|
var fieldRoot = field.split(".")[0];
|
|
341
347
|
if(fieldRoot === root){
|
|
342
348
|
matches.push(this.columnsByField[field]);
|
|
343
349
|
}
|
|
344
350
|
});
|
|
345
|
-
|
|
351
|
+
|
|
346
352
|
return matches;
|
|
347
353
|
}
|
|
348
|
-
|
|
354
|
+
|
|
349
355
|
getColumnByIndex(index){
|
|
350
356
|
return this.columnsByIndex[index];
|
|
351
357
|
}
|
|
352
|
-
|
|
353
|
-
getFirstVisibleColumn(
|
|
358
|
+
|
|
359
|
+
getFirstVisibleColumn(){
|
|
354
360
|
var index = this.columnsByIndex.findIndex((col) => {
|
|
355
361
|
return col.visible;
|
|
356
362
|
});
|
|
357
|
-
|
|
363
|
+
|
|
358
364
|
return index > -1 ? this.columnsByIndex[index] : false;
|
|
359
365
|
}
|
|
360
|
-
|
|
366
|
+
|
|
361
367
|
getColumns(){
|
|
362
368
|
return this.columns;
|
|
363
369
|
}
|
|
364
|
-
|
|
370
|
+
|
|
365
371
|
findColumnIndex(column){
|
|
366
372
|
return this.columnsByIndex.findIndex((col) => {
|
|
367
373
|
return column === col;
|
|
368
374
|
});
|
|
369
375
|
}
|
|
370
|
-
|
|
376
|
+
|
|
371
377
|
//return all columns that are not groups
|
|
372
378
|
getRealColumns(){
|
|
373
379
|
return this.columnsByIndex;
|
|
374
380
|
}
|
|
375
|
-
|
|
376
|
-
//
|
|
381
|
+
|
|
382
|
+
//traverse across columns and call action
|
|
377
383
|
traverse(callback){
|
|
378
384
|
this.columnsByIndex.forEach((column,i) =>{
|
|
379
385
|
callback(column, i);
|
|
380
386
|
});
|
|
381
387
|
}
|
|
382
|
-
|
|
383
|
-
//get
|
|
388
|
+
|
|
389
|
+
//get definitions of actual columns
|
|
384
390
|
getDefinitions(active){
|
|
385
391
|
var output = [];
|
|
386
|
-
|
|
392
|
+
|
|
387
393
|
this.columnsByIndex.forEach((column) => {
|
|
388
394
|
if(!active || (active && column.visible)){
|
|
389
395
|
output.push(column.getDefinition());
|
|
390
396
|
}
|
|
391
397
|
});
|
|
392
|
-
|
|
398
|
+
|
|
393
399
|
return output;
|
|
394
400
|
}
|
|
395
|
-
|
|
401
|
+
|
|
396
402
|
//get full nested definition tree
|
|
397
403
|
getDefinitionTree(){
|
|
398
404
|
var output = [];
|
|
399
|
-
|
|
405
|
+
|
|
400
406
|
this.columns.forEach((column) => {
|
|
401
407
|
output.push(column.getDefinition(true));
|
|
402
408
|
});
|
|
403
|
-
|
|
409
|
+
|
|
404
410
|
return output;
|
|
405
411
|
}
|
|
406
|
-
|
|
412
|
+
|
|
407
413
|
getComponents(structured){
|
|
408
414
|
var output = [],
|
|
409
415
|
columns = structured ? this.columns : this.columnsByIndex;
|
|
410
|
-
|
|
416
|
+
|
|
411
417
|
columns.forEach((column) => {
|
|
412
418
|
output.push(column.getComponent());
|
|
413
419
|
});
|
|
414
|
-
|
|
420
|
+
|
|
415
421
|
return output;
|
|
416
422
|
}
|
|
417
|
-
|
|
423
|
+
|
|
418
424
|
getWidth(){
|
|
419
425
|
var width = 0;
|
|
420
|
-
|
|
426
|
+
|
|
421
427
|
this.columnsByIndex.forEach((column) => {
|
|
422
428
|
if(column.visible){
|
|
423
429
|
width += column.getWidth();
|
|
424
430
|
}
|
|
425
431
|
});
|
|
426
|
-
|
|
432
|
+
|
|
427
433
|
return width;
|
|
428
434
|
}
|
|
429
|
-
|
|
435
|
+
|
|
430
436
|
moveColumn(from, to, after){
|
|
431
437
|
this.moveColumnActual(from, to, after);
|
|
432
|
-
|
|
438
|
+
|
|
433
439
|
to.element.parentNode.insertBefore(from.element, to.element);
|
|
434
|
-
|
|
440
|
+
|
|
435
441
|
if(after){
|
|
436
442
|
to.element.parentNode.insertBefore(to.element, from.element);
|
|
437
443
|
}
|
|
438
|
-
|
|
444
|
+
|
|
439
445
|
this.verticalAlignHeaders();
|
|
440
|
-
|
|
446
|
+
|
|
441
447
|
this.table.rowManager.reinitialize();
|
|
442
448
|
}
|
|
443
|
-
|
|
449
|
+
|
|
444
450
|
moveColumnActual(from, to, after){
|
|
445
451
|
if(from.parent.isGroup){
|
|
446
452
|
this._moveColumnInArray(from.parent.columns, from, to, after);
|
|
447
453
|
}else{
|
|
448
454
|
this._moveColumnInArray(this.columns, from, to, after);
|
|
449
455
|
}
|
|
450
|
-
|
|
456
|
+
|
|
451
457
|
this._moveColumnInArray(this.columnsByIndex, from, to, after, true);
|
|
452
|
-
|
|
453
|
-
this.
|
|
454
|
-
|
|
458
|
+
|
|
459
|
+
this.rerenderColumns(true);
|
|
460
|
+
|
|
455
461
|
this.dispatch("column-moved", from, to, after);
|
|
456
|
-
|
|
462
|
+
|
|
457
463
|
if(this.subscribedExternal("columnMoved")){
|
|
458
464
|
this.dispatchExternal("columnMoved", from.getComponent(), this.table.columnManager.getComponents());
|
|
459
465
|
}
|
|
460
466
|
}
|
|
461
|
-
|
|
467
|
+
|
|
462
468
|
_moveColumnInArray(columns, from, to, after, updateRows){
|
|
463
469
|
var fromIndex = columns.indexOf(from),
|
|
464
470
|
toIndex, rows = [];
|
|
465
|
-
|
|
471
|
+
|
|
466
472
|
if (fromIndex > -1) {
|
|
467
|
-
|
|
473
|
+
|
|
468
474
|
columns.splice(fromIndex, 1);
|
|
469
|
-
|
|
475
|
+
|
|
470
476
|
toIndex = columns.indexOf(to);
|
|
471
|
-
|
|
477
|
+
|
|
472
478
|
if (toIndex > -1) {
|
|
473
|
-
|
|
479
|
+
|
|
474
480
|
if(after){
|
|
475
481
|
toIndex = toIndex+1;
|
|
476
482
|
}
|
|
477
|
-
|
|
483
|
+
|
|
478
484
|
}else{
|
|
479
485
|
toIndex = fromIndex;
|
|
480
486
|
}
|
|
481
|
-
|
|
487
|
+
|
|
482
488
|
columns.splice(toIndex, 0, from);
|
|
483
|
-
|
|
489
|
+
|
|
484
490
|
if(updateRows){
|
|
485
|
-
|
|
491
|
+
|
|
486
492
|
rows = this.chain("column-moving-rows", [from, to, after], null, []) || [];
|
|
487
|
-
|
|
493
|
+
|
|
488
494
|
rows = rows.concat(this.table.rowManager.rows);
|
|
489
|
-
|
|
495
|
+
|
|
490
496
|
rows.forEach(function(row){
|
|
491
497
|
if(row.cells.length){
|
|
492
498
|
var cell = row.cells.splice(fromIndex, 1)[0];
|
|
493
499
|
row.cells.splice(toIndex, 0, cell);
|
|
494
500
|
}
|
|
495
501
|
});
|
|
496
|
-
|
|
502
|
+
|
|
497
503
|
}
|
|
498
504
|
}
|
|
499
505
|
}
|
|
500
|
-
|
|
506
|
+
|
|
501
507
|
scrollToColumn(column, position, ifVisible){
|
|
502
508
|
var left = 0,
|
|
503
509
|
offset = 0,
|
|
504
510
|
adjust = 0,
|
|
505
511
|
colEl = column.getElement();
|
|
506
|
-
|
|
512
|
+
|
|
507
513
|
return new Promise((resolve, reject) => {
|
|
508
|
-
|
|
514
|
+
|
|
509
515
|
if(typeof position === "undefined"){
|
|
510
516
|
position = this.table.options.scrollToColumnPosition;
|
|
511
517
|
}
|
|
512
|
-
|
|
518
|
+
|
|
513
519
|
if(typeof ifVisible === "undefined"){
|
|
514
520
|
ifVisible = this.table.options.scrollToColumnIfVisible;
|
|
515
521
|
}
|
|
516
|
-
|
|
522
|
+
|
|
517
523
|
if(column.visible){
|
|
518
|
-
|
|
524
|
+
|
|
519
525
|
//align to correct position
|
|
520
526
|
switch(position){
|
|
521
527
|
case "middle":
|
|
522
528
|
case "center":
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
529
|
+
adjust = -this.element.clientWidth / 2;
|
|
530
|
+
break;
|
|
531
|
+
|
|
526
532
|
case "right":
|
|
527
|
-
|
|
528
|
-
|
|
533
|
+
adjust = colEl.clientWidth - this.headersElement.clientWidth;
|
|
534
|
+
break;
|
|
529
535
|
}
|
|
530
|
-
|
|
536
|
+
|
|
531
537
|
//check column visibility
|
|
532
538
|
if(!ifVisible){
|
|
533
|
-
|
|
539
|
+
|
|
534
540
|
offset = colEl.offsetLeft;
|
|
535
|
-
|
|
541
|
+
|
|
536
542
|
if(offset > 0 && offset + colEl.offsetWidth < this.element.clientWidth){
|
|
537
543
|
return false;
|
|
538
544
|
}
|
|
539
545
|
}
|
|
540
|
-
|
|
546
|
+
|
|
541
547
|
//calculate scroll position
|
|
542
548
|
left = colEl.offsetLeft + adjust;
|
|
543
|
-
|
|
549
|
+
|
|
544
550
|
left = Math.max(Math.min(left, this.table.rowManager.element.scrollWidth - this.table.rowManager.element.clientWidth),0);
|
|
545
|
-
|
|
551
|
+
|
|
546
552
|
this.table.rowManager.scrollHorizontal(left);
|
|
547
553
|
this.scrollHorizontal(left);
|
|
548
|
-
|
|
554
|
+
|
|
549
555
|
resolve();
|
|
550
556
|
}else{
|
|
551
557
|
console.warn("Scroll Error - Column not visible");
|
|
552
558
|
reject("Scroll Error - Column not visible");
|
|
553
559
|
}
|
|
554
|
-
|
|
560
|
+
|
|
555
561
|
});
|
|
556
562
|
}
|
|
557
|
-
|
|
563
|
+
|
|
558
564
|
//////////////// Cell Management /////////////////
|
|
559
565
|
generateCells(row){
|
|
560
566
|
var cells = [];
|
|
561
|
-
|
|
567
|
+
|
|
562
568
|
this.columnsByIndex.forEach((column) => {
|
|
563
569
|
cells.push(column.generateCell(row));
|
|
564
570
|
});
|
|
565
|
-
|
|
571
|
+
|
|
566
572
|
return cells;
|
|
567
573
|
}
|
|
568
|
-
|
|
574
|
+
|
|
569
575
|
//////////////// Column Management /////////////////
|
|
570
576
|
getFlexBaseWidth(){
|
|
571
577
|
var totalWidth = this.table.element.clientWidth, //table element width
|
|
572
578
|
fixedWidth = 0;
|
|
573
|
-
|
|
579
|
+
|
|
574
580
|
//adjust for vertical scrollbar if present
|
|
575
581
|
if(this.table.rowManager.element.scrollHeight > this.table.rowManager.element.clientHeight){
|
|
576
582
|
totalWidth -= this.table.rowManager.element.offsetWidth - this.table.rowManager.element.clientWidth;
|
|
577
583
|
}
|
|
578
|
-
|
|
584
|
+
|
|
579
585
|
this.columnsByIndex.forEach(function(column){
|
|
580
586
|
var width, minWidth, colWidth;
|
|
581
|
-
|
|
587
|
+
|
|
582
588
|
if(column.visible){
|
|
583
|
-
|
|
589
|
+
|
|
584
590
|
width = column.definition.width || 0;
|
|
585
|
-
|
|
591
|
+
|
|
586
592
|
minWidth = parseInt(column.minWidth);
|
|
587
|
-
|
|
593
|
+
|
|
588
594
|
if(typeof(width) == "string"){
|
|
589
595
|
if(width.indexOf("%") > -1){
|
|
590
596
|
colWidth = (totalWidth / 100) * parseInt(width) ;
|
|
@@ -594,83 +600,105 @@ export default class ColumnManager extends CoreFeature {
|
|
|
594
600
|
}else{
|
|
595
601
|
colWidth = width;
|
|
596
602
|
}
|
|
597
|
-
|
|
603
|
+
|
|
598
604
|
fixedWidth += colWidth > minWidth ? colWidth : minWidth;
|
|
599
|
-
|
|
605
|
+
|
|
600
606
|
}
|
|
601
607
|
});
|
|
602
|
-
|
|
608
|
+
|
|
603
609
|
return fixedWidth;
|
|
604
610
|
}
|
|
605
|
-
|
|
611
|
+
|
|
606
612
|
addColumn(definition, before, nextToColumn){
|
|
607
613
|
return new Promise((resolve, reject) => {
|
|
608
614
|
var column = this._addColumn(definition, before, nextToColumn);
|
|
609
|
-
|
|
615
|
+
|
|
610
616
|
this._reIndexColumns();
|
|
611
|
-
|
|
617
|
+
|
|
612
618
|
this.dispatch("column-add", definition, before, nextToColumn);
|
|
613
|
-
|
|
619
|
+
|
|
614
620
|
if(this.layoutMode() != "fitColumns"){
|
|
615
621
|
column.reinitializeWidth();
|
|
616
622
|
}
|
|
617
|
-
|
|
623
|
+
|
|
618
624
|
this.redraw(true);
|
|
619
|
-
|
|
625
|
+
|
|
620
626
|
this.table.rowManager.reinitialize();
|
|
621
|
-
|
|
622
|
-
this.
|
|
623
|
-
|
|
627
|
+
|
|
628
|
+
this.rerenderColumns();
|
|
629
|
+
|
|
624
630
|
resolve(column);
|
|
625
631
|
});
|
|
626
632
|
}
|
|
627
|
-
|
|
633
|
+
|
|
628
634
|
//remove column from system
|
|
629
635
|
deregisterColumn(column){
|
|
630
636
|
var field = column.getField(),
|
|
631
637
|
index;
|
|
632
|
-
|
|
638
|
+
|
|
633
639
|
//remove from field list
|
|
634
640
|
if(field){
|
|
635
641
|
delete this.columnsByField[field];
|
|
636
642
|
}
|
|
637
|
-
|
|
643
|
+
|
|
638
644
|
//remove from index list
|
|
639
645
|
index = this.columnsByIndex.indexOf(column);
|
|
640
|
-
|
|
646
|
+
|
|
641
647
|
if(index > -1){
|
|
642
648
|
this.columnsByIndex.splice(index, 1);
|
|
643
649
|
}
|
|
644
|
-
|
|
650
|
+
|
|
645
651
|
//remove from column list
|
|
646
652
|
index = this.columns.indexOf(column);
|
|
647
|
-
|
|
653
|
+
|
|
648
654
|
if(index > -1){
|
|
649
655
|
this.columns.splice(index, 1);
|
|
650
656
|
}
|
|
651
|
-
|
|
657
|
+
|
|
652
658
|
this.verticalAlignHeaders();
|
|
653
|
-
|
|
659
|
+
|
|
654
660
|
this.redraw();
|
|
655
661
|
}
|
|
656
|
-
|
|
662
|
+
|
|
663
|
+
rerenderColumns(update, silent){
|
|
664
|
+
if(!this.redrawBlock){
|
|
665
|
+
this.renderer.rerenderColumns(update, silent);
|
|
666
|
+
}else{
|
|
667
|
+
if(update === false || (update === true && this.redrawBlockUpdate === null)){
|
|
668
|
+
this.redrawBlockUpdate = update;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
blockRedraw(){
|
|
674
|
+
this.redrawBlock = true;
|
|
675
|
+
this.redrawBlockUpdate = null;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
restoreRedraw(){
|
|
679
|
+
this.redrawBlock = false;
|
|
680
|
+
this.verticalAlignHeaders();
|
|
681
|
+
this.renderer.rerenderColumns(this.redrawBlockUpdate);
|
|
682
|
+
|
|
683
|
+
}
|
|
684
|
+
|
|
657
685
|
//redraw columns
|
|
658
686
|
redraw(force){
|
|
659
687
|
if(Helpers.elVisible(this.element)){
|
|
660
688
|
this.verticalAlignHeaders();
|
|
661
689
|
}
|
|
662
|
-
|
|
690
|
+
|
|
663
691
|
if(force){
|
|
664
692
|
this.table.rowManager.resetScroll();
|
|
665
693
|
this.table.rowManager.reinitialize();
|
|
666
694
|
}
|
|
667
|
-
|
|
695
|
+
|
|
668
696
|
if(!this.confirm("table-redrawing", force)){
|
|
669
|
-
this.layoutRefresh();
|
|
697
|
+
this.layoutRefresh(force);
|
|
670
698
|
}
|
|
671
|
-
|
|
699
|
+
|
|
672
700
|
this.dispatch("table-redraw", force);
|
|
673
|
-
|
|
701
|
+
|
|
674
702
|
this.table.footerManager.redraw();
|
|
675
703
|
}
|
|
676
704
|
}
|