tabulator-tables 6.5.0 → 6.5.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/dist/js/tabulator.js +1 -1
- package/dist/js/tabulator.min.js +1 -1
- package/dist/js/tabulator_esm.js +1 -1
- package/dist/js/tabulator_esm.min.js +1 -1
- package/dist/js/tabulator_esm.min.mjs +1 -1
- package/dist/js/tabulator_esm.mjs +1 -1
- package/package.json +2 -1
- package/src/js/builds/esm.js +16 -0
- package/src/js/builds/jquery_wrapper.js +63 -0
- package/src/js/builds/usd.js +1 -0
- package/src/js/core/ColumnManager.js +789 -0
- package/src/js/core/CoreFeature.js +140 -0
- package/src/js/core/FooterManager.js +102 -0
- package/src/js/core/Module.js +140 -0
- package/src/js/core/RowManager.js +1140 -0
- package/src/js/core/Tabulator.js +928 -0
- package/src/js/core/TabulatorFull.js +21 -0
- package/src/js/core/cell/Cell.js +299 -0
- package/src/js/core/cell/CellComponent.js +79 -0
- package/src/js/core/column/Column.js +978 -0
- package/src/js/core/column/ColumnComponent.js +151 -0
- package/src/js/core/column/defaults/options.js +18 -0
- package/src/js/core/defaults/options.js +66 -0
- package/src/js/core/modules/core.js +3 -0
- package/src/js/core/modules/optional.js +37 -0
- package/src/js/core/rendering/Renderer.js +204 -0
- package/src/js/core/rendering/renderers/BasicHorizontal.js +27 -0
- package/src/js/core/rendering/renderers/BasicVertical.js +103 -0
- package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +587 -0
- package/src/js/core/rendering/renderers/VirtualDomVertical.js +642 -0
- package/src/js/core/row/PseudoRow.js +47 -0
- package/src/js/core/row/Row.js +487 -0
- package/src/js/core/row/RowComponent.js +94 -0
- package/src/js/core/tools/Alert.js +66 -0
- package/src/js/core/tools/ComponentFunctionBinder.js +32 -0
- package/src/js/core/tools/DataLoader.js +128 -0
- package/src/js/core/tools/DependencyRegistry.js +82 -0
- package/src/js/core/tools/DeprecationAdvisor.js +51 -0
- package/src/js/core/tools/ExternalEventBus.js +105 -0
- package/src/js/core/tools/Helpers.js +66 -0
- package/src/js/core/tools/InteractionMonitor.js +329 -0
- package/src/js/core/tools/InternalEventBus.js +162 -0
- package/src/js/core/tools/ModuleBinder.js +153 -0
- package/src/js/core/tools/OptionsList.js +45 -0
- package/src/js/core/tools/Popup.js +317 -0
- package/src/js/core/tools/TableRegistry.js +65 -0
- package/src/js/modules/Accessor/Accessor.js +115 -0
- package/src/js/modules/Accessor/defaults/accessors.js +5 -0
- package/src/js/modules/Ajax/Ajax.js +142 -0
- package/src/js/modules/Ajax/defaults/config.js +3 -0
- package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +45 -0
- package/src/js/modules/Ajax/defaults/loaderPromise.js +87 -0
- package/src/js/modules/Ajax/defaults/urlGenerator.js +44 -0
- package/src/js/modules/Clipboard/Clipboard.js +282 -0
- package/src/js/modules/Clipboard/defaults/pasteActions.js +11 -0
- package/src/js/modules/Clipboard/defaults/pasteParsers.js +75 -0
- package/src/js/modules/Clipboard/extensions/extensions.js +9 -0
- package/src/js/modules/Clipboard/extensions/keybindings/actions.js +9 -0
- package/src/js/modules/Clipboard/extensions/keybindings/bindings.js +3 -0
- package/src/js/modules/ColumnCalcs/CalcComponent.js +46 -0
- package/src/js/modules/ColumnCalcs/ColumnCalcs.js +586 -0
- package/src/js/modules/ColumnCalcs/defaults/calculations.js +93 -0
- package/src/js/modules/Comms/Comms.js +49 -0
- package/src/js/modules/DataTree/DataTree.js +620 -0
- package/src/js/modules/Download/Download.js +146 -0
- package/src/js/modules/Download/defaults/downloaders/csv.js +61 -0
- package/src/js/modules/Download/defaults/downloaders/html.js +5 -0
- package/src/js/modules/Download/defaults/downloaders/json.js +34 -0
- package/src/js/modules/Download/defaults/downloaders/jsonLines.js +32 -0
- package/src/js/modules/Download/defaults/downloaders/pdf.js +113 -0
- package/src/js/modules/Download/defaults/downloaders/xlsx.js +103 -0
- package/src/js/modules/Download/defaults/downloaders.js +15 -0
- package/src/js/modules/Edit/Edit.js +845 -0
- package/src/js/modules/Edit/List.js +1060 -0
- package/src/js/modules/Edit/defaults/editors/adaptable.js +37 -0
- package/src/js/modules/Edit/defaults/editors/date.js +144 -0
- package/src/js/modules/Edit/defaults/editors/datetime.js +131 -0
- package/src/js/modules/Edit/defaults/editors/input.js +77 -0
- package/src/js/modules/Edit/defaults/editors/list.js +7 -0
- package/src/js/modules/Edit/defaults/editors/number.js +110 -0
- package/src/js/modules/Edit/defaults/editors/progress.js +127 -0
- package/src/js/modules/Edit/defaults/editors/range.js +81 -0
- package/src/js/modules/Edit/defaults/editors/star.js +146 -0
- package/src/js/modules/Edit/defaults/editors/textarea.js +123 -0
- package/src/js/modules/Edit/defaults/editors/tickCross.js +95 -0
- package/src/js/modules/Edit/defaults/editors/time.js +132 -0
- package/src/js/modules/Edit/defaults/editors.js +27 -0
- package/src/js/modules/Edit/inputMask.js +74 -0
- package/src/js/modules/Export/Export.js +654 -0
- package/src/js/modules/Export/ExportColumn.js +9 -0
- package/src/js/modules/Export/ExportRow.js +8 -0
- package/src/js/modules/Export/defaults/columnLookups.js +3 -0
- package/src/js/modules/Export/defaults/rowLookups.js +18 -0
- package/src/js/modules/Filter/Filter.js +902 -0
- package/src/js/modules/Filter/defaults/filters.js +215 -0
- package/src/js/modules/Format/Format.js +200 -0
- package/src/js/modules/Format/defaults/formatters/adaptable.js +32 -0
- package/src/js/modules/Format/defaults/formatters/array.js +30 -0
- package/src/js/modules/Format/defaults/formatters/buttonCross.js +3 -0
- package/src/js/modules/Format/defaults/formatters/buttonTick.js +3 -0
- package/src/js/modules/Format/defaults/formatters/color.js +4 -0
- package/src/js/modules/Format/defaults/formatters/datetime.js +39 -0
- package/src/js/modules/Format/defaults/formatters/datetimediff.js +43 -0
- package/src/js/modules/Format/defaults/formatters/handle.js +4 -0
- package/src/js/modules/Format/defaults/formatters/html.js +3 -0
- package/src/js/modules/Format/defaults/formatters/image.js +40 -0
- package/src/js/modules/Format/defaults/formatters/json.js +12 -0
- package/src/js/modules/Format/defaults/formatters/link.js +82 -0
- package/src/js/modules/Format/defaults/formatters/lookup.js +10 -0
- package/src/js/modules/Format/defaults/formatters/money.js +44 -0
- package/src/js/modules/Format/defaults/formatters/plaintext.js +3 -0
- package/src/js/modules/Format/defaults/formatters/progress.js +133 -0
- package/src/js/modules/Format/defaults/formatters/rownum.js +14 -0
- package/src/js/modules/Format/defaults/formatters/star.js +38 -0
- package/src/js/modules/Format/defaults/formatters/textarea.js +4 -0
- package/src/js/modules/Format/defaults/formatters/tickCross.js +22 -0
- package/src/js/modules/Format/defaults/formatters/toggle.js +48 -0
- package/src/js/modules/Format/defaults/formatters/traffic.js +47 -0
- package/src/js/modules/Format/defaults/formatters.js +47 -0
- package/src/js/modules/FrozenColumns/FrozenColumns.js +302 -0
- package/src/js/modules/FrozenRows/FrozenRows.js +175 -0
- package/src/js/modules/GroupRows/Group.js +615 -0
- package/src/js/modules/GroupRows/GroupComponent.js +69 -0
- package/src/js/modules/GroupRows/GroupRows.js +636 -0
- package/src/js/modules/History/History.js +172 -0
- package/src/js/modules/History/defaults/redoers.js +31 -0
- package/src/js/modules/History/defaults/undoers.js +33 -0
- package/src/js/modules/History/extensions/extensions.js +9 -0
- package/src/js/modules/History/extensions/keybindings/actions.js +27 -0
- package/src/js/modules/History/extensions/keybindings/bindings.js +4 -0
- package/src/js/modules/HtmlTableImport/HtmlTableImport.js +180 -0
- package/src/js/modules/Import/Import.js +303 -0
- package/src/js/modules/Import/defaults/importers/array.js +3 -0
- package/src/js/modules/Import/defaults/importers/csv.js +61 -0
- package/src/js/modules/Import/defaults/importers/json.js +8 -0
- package/src/js/modules/Import/defaults/importers/xlsx.js +7 -0
- package/src/js/modules/Import/defaults/importers.js +11 -0
- package/src/js/modules/Interaction/Interaction.js +339 -0
- package/src/js/modules/Keybindings/Keybindings.js +198 -0
- package/src/js/modules/Keybindings/defaults/actions.js +90 -0
- package/src/js/modules/Keybindings/defaults/bindings.js +12 -0
- package/src/js/modules/Layout/Layout.js +66 -0
- package/src/js/modules/Layout/defaults/modes/fitColumns.js +171 -0
- package/src/js/modules/Layout/defaults/modes/fitData.js +10 -0
- package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +10 -0
- package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +40 -0
- package/src/js/modules/Layout/defaults/modes.js +12 -0
- package/src/js/modules/Localize/Localize.js +184 -0
- package/src/js/modules/Localize/defaults/langs.js +37 -0
- package/src/js/modules/Menu/Menu.js +302 -0
- package/src/js/modules/MoveColumns/MoveColumns.js +311 -0
- package/src/js/modules/MoveRows/MoveRows.js +604 -0
- package/src/js/modules/MoveRows/defaults/receivers.js +30 -0
- package/src/js/modules/MoveRows/defaults/senders.js +5 -0
- package/src/js/modules/Mutator/Mutator.js +164 -0
- package/src/js/modules/Mutator/defaults/mutators.js +1 -0
- package/src/js/modules/Page/Page.js +891 -0
- package/src/js/modules/Page/defaults/pageCounters/pages.js +33 -0
- package/src/js/modules/Page/defaults/pageCounters/rows.js +40 -0
- package/src/js/modules/Page/defaults/pageCounters.js +8 -0
- package/src/js/modules/Persistence/Persistence.js +473 -0
- package/src/js/modules/Persistence/defaults/readers.js +29 -0
- package/src/js/modules/Persistence/defaults/writers.js +13 -0
- package/src/js/modules/Popup/Popup.js +227 -0
- package/src/js/modules/Print/Print.js +136 -0
- package/src/js/modules/ReactiveData/ReactiveData.js +416 -0
- package/src/js/modules/ResizeColumns/ResizeColumns.js +365 -0
- package/src/js/modules/ResizeRows/ResizeRows.js +145 -0
- package/src/js/modules/ResizeTable/ResizeTable.js +158 -0
- package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +354 -0
- package/src/js/modules/ResponsiveLayout/extensions/extensions.js +9 -0
- package/src/js/modules/ResponsiveLayout/extensions/formatters/responsiveCollapse.js +44 -0
- package/src/js/modules/SelectRange/Range.js +366 -0
- package/src/js/modules/SelectRange/RangeComponent.js +91 -0
- package/src/js/modules/SelectRange/SelectRange.js +993 -0
- package/src/js/modules/SelectRange/extensions/clipboard/pasteActions.js +45 -0
- package/src/js/modules/SelectRange/extensions/clipboard/pasteParsers.js +57 -0
- package/src/js/modules/SelectRange/extensions/export/columnLookups.js +11 -0
- package/src/js/modules/SelectRange/extensions/export/rowLookups.js +5 -0
- package/src/js/modules/SelectRange/extensions/extensions.js +21 -0
- package/src/js/modules/SelectRange/extensions/keybindings/actions.js +38 -0
- package/src/js/modules/SelectRange/extensions/keybindings/bindings.js +14 -0
- package/src/js/modules/SelectRow/SelectRow.js +499 -0
- package/src/js/modules/SelectRow/extensions/extensions.js +9 -0
- package/src/js/modules/SelectRow/extensions/formatters/rowSelection.js +60 -0
- package/src/js/modules/Sort/Sort.js +480 -0
- package/src/js/modules/Sort/defaults/sorters/alphanum.js +44 -0
- package/src/js/modules/Sort/defaults/sorters/array.js +82 -0
- package/src/js/modules/Sort/defaults/sorters/boolean.js +7 -0
- package/src/js/modules/Sort/defaults/sorters/date.js +10 -0
- package/src/js/modules/Sort/defaults/sorters/datetime.js +48 -0
- package/src/js/modules/Sort/defaults/sorters/exists.js +7 -0
- package/src/js/modules/Sort/defaults/sorters/number.js +40 -0
- package/src/js/modules/Sort/defaults/sorters/string.js +34 -0
- package/src/js/modules/Sort/defaults/sorters/time.js +10 -0
- package/src/js/modules/Sort/defaults/sorters.js +21 -0
- package/src/js/modules/Spreadsheet/GridCalculator.js +64 -0
- package/src/js/modules/Spreadsheet/Sheet.js +243 -0
- package/src/js/modules/Spreadsheet/SheetComponent.js +59 -0
- package/src/js/modules/Spreadsheet/Spreadsheet.js +309 -0
- package/src/js/modules/Tooltip/Tooltip.js +128 -0
- package/src/js/modules/Validate/Validate.js +303 -0
- package/src/js/modules/Validate/defaults/validators.js +150 -0
- package/src/scss/tabulator.scss +1693 -0
- package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +302 -0
- package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +589 -0
- package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +979 -0
- package/src/scss/themes/bootstrap/variables3.scss +872 -0
- package/src/scss/themes/bootstrap/variables4.scss +1059 -0
- package/src/scss/themes/bootstrap/variables5.scss +1967 -0
- package/src/scss/themes/bulma/tabulator_bulma.scss +316 -0
- package/src/scss/themes/bulma/variables.scss +198 -0
- package/src/scss/themes/materialize/tabulator_materialize.scss +318 -0
- package/src/scss/themes/materialize/variables.scss +71 -0
- package/src/scss/themes/semanticui/tabulator_semanticui.scss +623 -0
- package/src/scss/themes/semanticui/variables.scss +843 -0
- package/src/scss/themes/semanticui/variables_table.scss +248 -0
- package/src/scss/themes/tabulator_midnight.scss +235 -0
- package/src/scss/themes/tabulator_modern.scss +308 -0
- package/src/scss/themes/tabulator_simple.scss +143 -0
- package/src/scss/themes/tabulator_site.scss +267 -0
- package/src/scss/themes/tabulator_site_dark.scss +496 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
//public column object
|
|
2
|
+
export default class ColumnComponent {
|
|
3
|
+
constructor (column){
|
|
4
|
+
this._column = column;
|
|
5
|
+
this.type = "ColumnComponent";
|
|
6
|
+
|
|
7
|
+
return new Proxy(this, {
|
|
8
|
+
get: function(target, name, receiver) {
|
|
9
|
+
if (typeof target[name] !== "undefined") {
|
|
10
|
+
return target[name];
|
|
11
|
+
}else{
|
|
12
|
+
return target._column.table.componentFunctionBinder.handle("column", target._column, name);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
getElement(){
|
|
19
|
+
return this._column.getElement();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getDefinition(){
|
|
23
|
+
return this._column.getDefinition();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getField(){
|
|
27
|
+
return this._column.getField();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getTitleDownload() {
|
|
31
|
+
return this._column.getTitleDownload();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getCells(){
|
|
35
|
+
var cells = [];
|
|
36
|
+
|
|
37
|
+
this._column.cells.forEach(function(cell){
|
|
38
|
+
cells.push(cell.getComponent());
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
return cells;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
isVisible(){
|
|
45
|
+
return this._column.visible;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
show(){
|
|
49
|
+
if(this._column.isGroup){
|
|
50
|
+
this._column.columns.forEach(function(column){
|
|
51
|
+
column.show();
|
|
52
|
+
});
|
|
53
|
+
}else{
|
|
54
|
+
this._column.show();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
hide(){
|
|
59
|
+
if(this._column.isGroup){
|
|
60
|
+
this._column.columns.forEach(function(column){
|
|
61
|
+
column.hide();
|
|
62
|
+
});
|
|
63
|
+
}else{
|
|
64
|
+
this._column.hide();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
toggle(){
|
|
69
|
+
if(this._column.visible){
|
|
70
|
+
this.hide();
|
|
71
|
+
}else{
|
|
72
|
+
this.show();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
delete(){
|
|
77
|
+
return this._column.delete();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
getSubColumns(){
|
|
81
|
+
var output = [];
|
|
82
|
+
|
|
83
|
+
if(this._column.columns.length){
|
|
84
|
+
this._column.columns.forEach(function(column){
|
|
85
|
+
output.push(column.getComponent());
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return output;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
getParentColumn(){
|
|
93
|
+
return this._column.getParentComponent();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
_getSelf(){
|
|
97
|
+
return this._column;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
scrollTo(position, ifVisible){
|
|
101
|
+
return this._column.table.columnManager.scrollToColumn(this._column, position, ifVisible);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
getTable(){
|
|
105
|
+
return this._column.table;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
move(to, after){
|
|
109
|
+
var toColumn = this._column.table.columnManager.findColumn(to);
|
|
110
|
+
|
|
111
|
+
if(toColumn){
|
|
112
|
+
this._column.table.columnManager.moveColumn(this._column, toColumn, after);
|
|
113
|
+
}else{
|
|
114
|
+
console.warn("Move Error - No matching column found:", toColumn);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
getNextColumn(){
|
|
119
|
+
var nextCol = this._column.nextColumn();
|
|
120
|
+
|
|
121
|
+
return nextCol ? nextCol.getComponent() : false;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
getPrevColumn(){
|
|
125
|
+
var prevCol = this._column.prevColumn();
|
|
126
|
+
|
|
127
|
+
return prevCol ? prevCol.getComponent() : false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
updateDefinition(updates){
|
|
131
|
+
return this._column.updateDefinition(updates);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
getWidth(){
|
|
135
|
+
return this._column.getWidth();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
setWidth(width){
|
|
139
|
+
var result;
|
|
140
|
+
|
|
141
|
+
if(width === true){
|
|
142
|
+
result = this._column.reinitializeWidth(true);
|
|
143
|
+
}else{
|
|
144
|
+
result = this._column.setWidth(width);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
this._column.table.columnManager.rerenderColumns(true);
|
|
148
|
+
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"title": undefined,
|
|
3
|
+
"field": undefined,
|
|
4
|
+
"columns": undefined,
|
|
5
|
+
"visible": undefined,
|
|
6
|
+
"hozAlign": undefined,
|
|
7
|
+
"vertAlign": undefined,
|
|
8
|
+
"width": undefined,
|
|
9
|
+
"minWidth": 40,
|
|
10
|
+
"maxWidth": undefined,
|
|
11
|
+
"maxInitialWidth": undefined,
|
|
12
|
+
"cssClass": undefined,
|
|
13
|
+
"variableHeight": undefined,
|
|
14
|
+
"headerVertical": undefined,
|
|
15
|
+
"headerHozAlign": undefined,
|
|
16
|
+
"headerWordWrap": false,
|
|
17
|
+
"editableTitle": undefined,
|
|
18
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
|
|
3
|
+
debugEventsExternal:false, //flag to console log events
|
|
4
|
+
debugEventsInternal:false, //flag to console log events
|
|
5
|
+
debugInvalidOptions:true, //allow toggling of invalid option warnings
|
|
6
|
+
debugInvalidComponentFuncs:true, //allow toggling of invalid component warnings
|
|
7
|
+
debugInitialization:true, //allow toggling of pre initialization function call warnings
|
|
8
|
+
debugDeprecation:true, //allow toggling of deprecation warnings
|
|
9
|
+
|
|
10
|
+
height:false, //height of tabulator
|
|
11
|
+
minHeight:false, //minimum height of tabulator
|
|
12
|
+
maxHeight:false, //maximum height of tabulator
|
|
13
|
+
|
|
14
|
+
columnHeaderVertAlign:"top", //vertical alignment of column headers
|
|
15
|
+
|
|
16
|
+
popupContainer:false,
|
|
17
|
+
|
|
18
|
+
columns:[],//store for colum header info
|
|
19
|
+
columnDefaults:{}, //store column default props
|
|
20
|
+
rowHeader:false,
|
|
21
|
+
|
|
22
|
+
data:false, //default starting data
|
|
23
|
+
|
|
24
|
+
autoColumns:false, //build columns from data row structure
|
|
25
|
+
autoColumnsDefinitions:false,
|
|
26
|
+
|
|
27
|
+
nestedFieldSeparator:".", //separator for nested data
|
|
28
|
+
|
|
29
|
+
footerElement:false, //hold footer element
|
|
30
|
+
|
|
31
|
+
index:"id", //filed for row index
|
|
32
|
+
|
|
33
|
+
textDirection:"auto",
|
|
34
|
+
|
|
35
|
+
addRowPos:"bottom", //position to insert blank rows, top|bottom
|
|
36
|
+
|
|
37
|
+
headerVisible:true, //hide header
|
|
38
|
+
|
|
39
|
+
renderVertical:"virtual",
|
|
40
|
+
renderHorizontal:"basic",
|
|
41
|
+
renderVerticalBuffer:0, // set virtual DOM buffer size
|
|
42
|
+
|
|
43
|
+
scrollToRowPosition:"top",
|
|
44
|
+
scrollToRowIfVisible:true,
|
|
45
|
+
|
|
46
|
+
scrollToColumnPosition:"left",
|
|
47
|
+
scrollToColumnIfVisible:true,
|
|
48
|
+
|
|
49
|
+
rowFormatter:false,
|
|
50
|
+
rowFormatterPrint:null,
|
|
51
|
+
rowFormatterClipboard:null,
|
|
52
|
+
rowFormatterHtmlOutput:null,
|
|
53
|
+
|
|
54
|
+
rowHeight:null,
|
|
55
|
+
|
|
56
|
+
placeholder:false,
|
|
57
|
+
|
|
58
|
+
dataLoader:true,
|
|
59
|
+
dataLoaderLoading:false,
|
|
60
|
+
dataLoaderError:false,
|
|
61
|
+
dataLoaderErrorTimeout:3000,
|
|
62
|
+
dataSendParams:{},
|
|
63
|
+
dataReceiveParams:{},
|
|
64
|
+
|
|
65
|
+
dependencies:{},
|
|
66
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export {default as AccessorModule} from '../../modules/Accessor/Accessor.js';
|
|
2
|
+
export {default as AjaxModule} from '../../modules/Ajax/Ajax.js';
|
|
3
|
+
export {default as ClipboardModule} from '../../modules/Clipboard/Clipboard.js';
|
|
4
|
+
export {default as ColumnCalcsModule} from '../../modules/ColumnCalcs/ColumnCalcs.js';
|
|
5
|
+
export {default as DataTreeModule} from '../../modules/DataTree/DataTree.js';
|
|
6
|
+
export {default as DownloadModule} from '../../modules/Download/Download.js';
|
|
7
|
+
export {default as EditModule} from '../../modules/Edit/Edit.js';
|
|
8
|
+
export {default as ExportModule} from '../../modules/Export/Export.js';
|
|
9
|
+
export {default as FilterModule} from '../../modules/Filter/Filter.js';
|
|
10
|
+
export {default as FormatModule} from '../../modules/Format/Format.js';
|
|
11
|
+
export {default as FrozenColumnsModule} from '../../modules/FrozenColumns/FrozenColumns.js';
|
|
12
|
+
export {default as FrozenRowsModule} from '../../modules/FrozenRows/FrozenRows.js';
|
|
13
|
+
export {default as GroupRowsModule} from '../../modules/GroupRows/GroupRows.js';
|
|
14
|
+
export {default as HistoryModule} from '../../modules/History/History.js';
|
|
15
|
+
export {default as HtmlTableImportModule} from '../../modules/HtmlTableImport/HtmlTableImport.js';
|
|
16
|
+
export {default as ImportModule} from '../../modules/Import/Import.js';
|
|
17
|
+
export {default as InteractionModule} from '../../modules/Interaction/Interaction.js';
|
|
18
|
+
export {default as KeybindingsModule} from '../../modules/Keybindings/Keybindings.js';
|
|
19
|
+
export {default as MenuModule} from '../../modules/Menu/Menu.js';
|
|
20
|
+
export {default as MoveColumnsModule} from '../../modules/MoveColumns/MoveColumns.js';
|
|
21
|
+
export {default as MoveRowsModule} from '../../modules/MoveRows/MoveRows.js';
|
|
22
|
+
export {default as MutatorModule} from '../../modules/Mutator/Mutator.js';
|
|
23
|
+
export {default as PageModule} from '../../modules/Page/Page.js';
|
|
24
|
+
export {default as PersistenceModule} from '../../modules/Persistence/Persistence.js';
|
|
25
|
+
export {default as PopupModule} from '../../modules/Popup/Popup.js';
|
|
26
|
+
export {default as PrintModule} from '../../modules/Print/Print.js';
|
|
27
|
+
export {default as ReactiveDataModule} from '../../modules/ReactiveData/ReactiveData.js';
|
|
28
|
+
export {default as ResizeColumnsModule} from '../../modules/ResizeColumns/ResizeColumns.js';
|
|
29
|
+
export {default as ResizeRowsModule} from '../../modules/ResizeRows/ResizeRows.js';
|
|
30
|
+
export {default as ResizeTableModule} from '../../modules/ResizeTable/ResizeTable.js';
|
|
31
|
+
export {default as ResponsiveLayoutModule} from '../../modules/ResponsiveLayout/ResponsiveLayout.js';
|
|
32
|
+
export {default as SelectRowModule} from '../../modules/SelectRow/SelectRow.js';
|
|
33
|
+
export {default as SelectRangeModule} from '../../modules/SelectRange/SelectRange.js';
|
|
34
|
+
export {default as SortModule} from '../../modules/Sort/Sort.js';
|
|
35
|
+
export {default as SpreadsheetModule} from '../../modules/Spreadsheet/Spreadsheet.js';
|
|
36
|
+
export {default as TooltipModule} from '../../modules/Tooltip/Tooltip.js';
|
|
37
|
+
export {default as ValidateModule} from '../../modules/Validate/Validate.js';
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import CoreFeature from '../CoreFeature.js';
|
|
2
|
+
import Helpers from '../tools/Helpers.js';
|
|
3
|
+
|
|
4
|
+
export default class Renderer extends CoreFeature{
|
|
5
|
+
constructor(table){
|
|
6
|
+
super(table);
|
|
7
|
+
|
|
8
|
+
this.elementVertical = table.rowManager.element;
|
|
9
|
+
this.elementHorizontal = table.columnManager.element;
|
|
10
|
+
this.tableElement = table.rowManager.tableElement;
|
|
11
|
+
|
|
12
|
+
this.verticalFillMode = "fit"; // used by row manager to determine how to size the render area ("fit" - fits container to the contents, "fill" - fills the container without resizing it)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
///////////////////////////////////
|
|
17
|
+
/////// Internal Bindings /////////
|
|
18
|
+
///////////////////////////////////
|
|
19
|
+
|
|
20
|
+
initialize(){
|
|
21
|
+
//initialize core functionality
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
clearRows(){
|
|
25
|
+
//clear down existing rows layout
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
clearColumns(){
|
|
29
|
+
//clear down existing columns layout
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
reinitializeColumnWidths(columns){
|
|
34
|
+
//resize columns to fit data
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
renderRows(){
|
|
39
|
+
//render rows from a clean slate
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
renderColumns(){
|
|
43
|
+
//render columns from a clean slate
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
rerenderRows(callback){
|
|
47
|
+
// rerender rows and keep position
|
|
48
|
+
if(callback){
|
|
49
|
+
callback();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
rerenderColumns(update, blockRedraw){
|
|
54
|
+
//rerender columns
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
renderRowCells(row){
|
|
58
|
+
//render the cells in a row
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
rerenderRowCells(row, force){
|
|
62
|
+
//rerender the cells in a row
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
scrollColumns(left, dir){
|
|
66
|
+
//handle horizontal scrolling
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
scrollRows(top, dir){
|
|
70
|
+
//handle vertical scrolling
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
resize(){
|
|
74
|
+
//container has resized, carry out any needed recalculations (DO NOT RERENDER IN THIS FUNCTION)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
scrollToRow(row){
|
|
78
|
+
//scroll to a specific row
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
scrollToRowNearestTop(row){
|
|
82
|
+
//determine weather the row is nearest the top or bottom of the table, return true for top or false for bottom
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
visibleRows(includingBuffer){
|
|
86
|
+
//return the visible rows
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
///////////////////////////////////
|
|
91
|
+
//////// Helper Functions /////////
|
|
92
|
+
///////////////////////////////////
|
|
93
|
+
|
|
94
|
+
rows(){
|
|
95
|
+
return this.table.rowManager.getDisplayRows();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
styleRow(row, index){
|
|
99
|
+
var rowEl = row.getElement();
|
|
100
|
+
|
|
101
|
+
if(index % 2){
|
|
102
|
+
rowEl.classList.add("tabulator-row-even");
|
|
103
|
+
rowEl.classList.remove("tabulator-row-odd");
|
|
104
|
+
}else{
|
|
105
|
+
rowEl.classList.add("tabulator-row-odd");
|
|
106
|
+
rowEl.classList.remove("tabulator-row-even");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
///////////////////////////////////
|
|
111
|
+
/////// External Triggers /////////
|
|
112
|
+
/////// (DO NOT OVERRIDE) /////////
|
|
113
|
+
///////////////////////////////////
|
|
114
|
+
|
|
115
|
+
clear(){
|
|
116
|
+
//clear down existing layout
|
|
117
|
+
this.clearRows();
|
|
118
|
+
this.clearColumns();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
render(){
|
|
122
|
+
//render from a clean slate
|
|
123
|
+
this.renderRows();
|
|
124
|
+
this.renderColumns();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
rerender(callback){
|
|
128
|
+
// rerender and keep position
|
|
129
|
+
this.rerenderRows();
|
|
130
|
+
this.rerenderColumns();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
scrollToRowPosition(row, position, ifVisible){
|
|
134
|
+
var rowIndex = this.rows().indexOf(row),
|
|
135
|
+
rowEl = row.getElement(),
|
|
136
|
+
offset = 0;
|
|
137
|
+
|
|
138
|
+
return new Promise((resolve, reject) => {
|
|
139
|
+
if(rowIndex > -1){
|
|
140
|
+
|
|
141
|
+
if(typeof ifVisible === "undefined"){
|
|
142
|
+
ifVisible = this.table.options.scrollToRowIfVisible;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
//check row visibility
|
|
146
|
+
if(!ifVisible){
|
|
147
|
+
if(Helpers.elVisible(rowEl)){
|
|
148
|
+
offset = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top;
|
|
149
|
+
|
|
150
|
+
if(offset > 0 && offset < this.elementVertical.clientHeight - rowEl.offsetHeight){
|
|
151
|
+
resolve();
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if(typeof position === "undefined"){
|
|
158
|
+
position = this.table.options.scrollToRowPosition;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if(position === "nearest"){
|
|
162
|
+
position = this.scrollToRowNearestTop(row) ? "top" : "bottom";
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
//scroll to row
|
|
166
|
+
this.scrollToRow(row);
|
|
167
|
+
|
|
168
|
+
//align to correct position
|
|
169
|
+
switch(position){
|
|
170
|
+
case "middle":
|
|
171
|
+
case "center":
|
|
172
|
+
|
|
173
|
+
if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
|
|
174
|
+
this.elementVertical.scrollTop = this.elementVertical.scrollTop + (rowEl.offsetTop - this.elementVertical.scrollTop) - ((this.elementVertical.scrollHeight - rowEl.offsetTop) / 2);
|
|
175
|
+
}else{
|
|
176
|
+
this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.clientHeight / 2);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
break;
|
|
180
|
+
|
|
181
|
+
case "bottom":
|
|
182
|
+
|
|
183
|
+
if(this.elementVertical.scrollHeight - this.elementVertical.scrollTop == this.elementVertical.clientHeight){
|
|
184
|
+
this.elementVertical.scrollTop = this.elementVertical.scrollTop - (this.elementVertical.scrollHeight - rowEl.offsetTop) + rowEl.offsetHeight;
|
|
185
|
+
}else{
|
|
186
|
+
this.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
break;
|
|
190
|
+
|
|
191
|
+
case "top":
|
|
192
|
+
this.elementVertical.scrollTop = rowEl.offsetTop;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
resolve();
|
|
197
|
+
|
|
198
|
+
}else{
|
|
199
|
+
console.warn("Scroll Error - Row not visible");
|
|
200
|
+
reject("Scroll Error - Row not visible");
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import Renderer from '../Renderer.js';
|
|
2
|
+
|
|
3
|
+
export default class BasicHorizontal extends Renderer{
|
|
4
|
+
constructor(table){
|
|
5
|
+
super(table);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
renderRowCells(row, inFragment) {
|
|
9
|
+
const rowFrag = document.createDocumentFragment();
|
|
10
|
+
row.cells.forEach((cell) => {
|
|
11
|
+
rowFrag.appendChild(cell.getElement());
|
|
12
|
+
});
|
|
13
|
+
row.element.appendChild(rowFrag);
|
|
14
|
+
|
|
15
|
+
if(!inFragment){
|
|
16
|
+
row.cells.forEach((cell) => {
|
|
17
|
+
cell.cellRendered();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
reinitializeColumnWidths(columns){
|
|
23
|
+
columns.forEach(function(column){
|
|
24
|
+
column.reinitializeWidth();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import Renderer from '../Renderer.js';
|
|
2
|
+
import Helpers from '../../tools/Helpers.js';
|
|
3
|
+
|
|
4
|
+
export default class BasicVertical extends Renderer{
|
|
5
|
+
constructor(table){
|
|
6
|
+
super(table);
|
|
7
|
+
|
|
8
|
+
this.verticalFillMode = "fill";
|
|
9
|
+
|
|
10
|
+
this.scrollTop = 0;
|
|
11
|
+
this.scrollLeft = 0;
|
|
12
|
+
|
|
13
|
+
this.scrollTop = 0;
|
|
14
|
+
this.scrollLeft = 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
clearRows(){
|
|
18
|
+
var element = this.tableElement;
|
|
19
|
+
|
|
20
|
+
// element.children.detach();
|
|
21
|
+
while(element.firstChild) element.removeChild(element.firstChild);
|
|
22
|
+
|
|
23
|
+
element.scrollTop = 0;
|
|
24
|
+
element.scrollLeft = 0;
|
|
25
|
+
|
|
26
|
+
element.style.minWidth = "";
|
|
27
|
+
element.style.minHeight = "";
|
|
28
|
+
element.style.display = "";
|
|
29
|
+
element.style.visibility = "";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
renderRows() {
|
|
33
|
+
var element = this.tableElement,
|
|
34
|
+
onlyGroupHeaders = true,
|
|
35
|
+
tableFrag = document.createDocumentFragment(),
|
|
36
|
+
rows = this.rows();
|
|
37
|
+
|
|
38
|
+
rows.forEach((row, index) => {
|
|
39
|
+
this.styleRow(row, index);
|
|
40
|
+
row.initialize(false, true);
|
|
41
|
+
|
|
42
|
+
if (row.type !== "group") {
|
|
43
|
+
onlyGroupHeaders = false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
tableFrag.appendChild(row.getElement());
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
element.appendChild(tableFrag);
|
|
50
|
+
|
|
51
|
+
rows.forEach((row) => {
|
|
52
|
+
row.rendered();
|
|
53
|
+
|
|
54
|
+
if(!row.heightInitialized) {
|
|
55
|
+
row.calcHeight(true);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
rows.forEach((row) => {
|
|
60
|
+
if(!row.heightInitialized) {
|
|
61
|
+
row.setCellHeight();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if(onlyGroupHeaders){
|
|
66
|
+
element.style.minWidth = this.table.columnManager.getWidth() + "px";
|
|
67
|
+
}else{
|
|
68
|
+
element.style.minWidth = "";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
rerenderRows(callback){
|
|
74
|
+
this.clearRows();
|
|
75
|
+
|
|
76
|
+
if(callback){
|
|
77
|
+
callback();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this.renderRows();
|
|
81
|
+
|
|
82
|
+
if(!this.rows().length){
|
|
83
|
+
this.table.rowManager.tableEmpty();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
scrollToRowNearestTop(row){
|
|
88
|
+
var rowTop = Helpers.elOffset(row.getElement()).top;
|
|
89
|
+
|
|
90
|
+
return !(Math.abs(this.elementVertical.scrollTop - rowTop) > Math.abs(this.elementVertical.scrollTop + this.elementVertical.clientHeight - rowTop));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
scrollToRow(row){
|
|
94
|
+
var rowEl = row.getElement();
|
|
95
|
+
|
|
96
|
+
this.elementVertical.scrollTop = Helpers.elOffset(rowEl).top - Helpers.elOffset(this.elementVertical).top + this.elementVertical.scrollTop;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
visibleRows(includingBuffer){
|
|
100
|
+
return this.rows();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
}
|