tabulator-tables 5.2.4 → 5.2.5

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.
Files changed (33) hide show
  1. package/bower.json +1 -1
  2. package/dist/css/tabulator_bootstrap5.css +41 -32
  3. package/dist/css/tabulator_bootstrap5.css.map +1 -1
  4. package/dist/css/tabulator_bootstrap5.min.css +1 -1
  5. package/dist/css/tabulator_bootstrap5.min.css.map +1 -1
  6. package/dist/css/tabulator_bulma.css +12 -0
  7. package/dist/css/tabulator_bulma.css.map +1 -1
  8. package/dist/css/tabulator_bulma.min.css +1 -1
  9. package/dist/css/tabulator_bulma.min.css.map +1 -1
  10. package/dist/js/tabulator.js +42 -123
  11. package/dist/js/tabulator.js.map +1 -1
  12. package/dist/js/tabulator.min.js +2 -2
  13. package/dist/js/tabulator.min.js.map +1 -1
  14. package/dist/js/tabulator_esm.js +16 -93
  15. package/dist/js/tabulator_esm.js.map +1 -1
  16. package/dist/js/tabulator_esm.min.js +2 -2
  17. package/dist/js/tabulator_esm.min.js.map +1 -1
  18. package/package.json +1 -1
  19. package/src/js/core/RowManager.js +1 -1
  20. package/src/js/core/cell/Cell.js +1 -2
  21. package/src/js/core/column/Column.js +1 -81
  22. package/src/js/core/rendering/Renderer.js +2 -0
  23. package/src/js/core/tools/Popup.js +6 -0
  24. package/src/js/modules/Download/defaults/downloaders/csv.js +2 -3
  25. package/src/js/modules/Download/defaults/downloaders/pdf.js +2 -3
  26. package/src/js/modules/Edit/List.js +1 -1
  27. package/src/js/modules/Export/Export.js +1 -2
  28. package/src/js/modules/Interaction/Interaction.js +3 -3
  29. package/src/js/modules/Page/Page.js +1 -2
  30. package/src/js/modules/ResizeColumns/ResizeColumns.js +1 -1
  31. package/src/js/modules/Sort/Sort.js +1 -1
  32. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +41 -32
  33. package/src/scss/themes/bulma/tabulator_bulma.scss +47 -32
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabulator-tables",
3
- "version": "5.2.4",
3
+ "version": "5.2.5",
4
4
  "description": "Interactive table generation JavaScript library",
5
5
  "style": "dist/css/tabulator.css",
6
6
  "main": "dist/js/tabulator.js",
@@ -51,7 +51,7 @@ export default class RowManager extends CoreFeature{
51
51
 
52
52
  el.classList.add("tabulator-tableholder");
53
53
  el.setAttribute("tabindex", 0);
54
- el.setAttribute("role", "rowgroup");
54
+ // el.setAttribute("role", "rowgroup");
55
55
 
56
56
  return el;
57
57
  }
@@ -118,7 +118,6 @@ export default class Cell extends CoreFeature{
118
118
  }
119
119
  break;
120
120
  case "undefined":
121
- case "null":
122
121
  this.element.innerHTML = "";
123
122
  break;
124
123
  default:
@@ -294,4 +293,4 @@ export default class Cell extends CoreFeature{
294
293
 
295
294
  return this.component;
296
295
  }
297
- }
296
+ }
@@ -158,8 +158,6 @@ class Column extends CoreFeature{
158
158
  }
159
159
  }
160
160
 
161
- this.contentElement = this._bindEvents();
162
-
163
161
  this.contentElement = this._buildColumnHeaderContent();
164
162
 
165
163
  this.element.appendChild(this.contentElement);
@@ -173,83 +171,6 @@ class Column extends CoreFeature{
173
171
  this.dispatch("column-init", this);
174
172
  }
175
173
 
176
- _bindEvents(){
177
- var def = this.definition,
178
- dblTap, tapHold, tap;
179
-
180
- //setup header click event bindings
181
- if(typeof(def.headerClick) == "function"){
182
- this.element.addEventListener("click", (e) => {def.headerClick(e, this.getComponent());});
183
- }
184
-
185
- if(typeof(def.headerDblClick) == "function"){
186
- this.element.addEventListener("dblclick", (e) => {def.headerDblClick(e, this.getComponent());});
187
- }
188
-
189
- if(typeof(def.headerContext) == "function"){
190
- this.element.addEventListener("contextmenu", (e) => {def.headerContext(e, this.getComponent());});
191
- }
192
-
193
- //setup header tap event bindings
194
- if(typeof(def.headerTap) == "function"){
195
- tap = false;
196
-
197
- this.element.addEventListener("touchstart", (e) => {
198
- tap = true;
199
- }, {passive: true});
200
-
201
- this.element.addEventListener("touchend", (e) => {
202
- if(tap){
203
- def.headerTap(e, this.getComponent());
204
- }
205
-
206
- tap = false;
207
- });
208
- }
209
-
210
- if(typeof(def.headerDblTap) == "function"){
211
- dblTap = null;
212
-
213
- this.element.addEventListener("touchend", (e) => {
214
-
215
- if(dblTap){
216
- clearTimeout(dblTap);
217
- dblTap = null;
218
-
219
- def.headerDblTap(e, this.getComponent());
220
- }else{
221
-
222
- dblTap = setTimeout(() => {
223
- clearTimeout(dblTap);
224
- dblTap = null;
225
- }, 300);
226
- }
227
-
228
- });
229
- }
230
-
231
- if(typeof(def.headerTapHold) == "function"){
232
- tapHold = null;
233
-
234
- this.element.addEventListener("touchstart", (e) => {
235
- clearTimeout(tapHold);
236
-
237
- tapHold = setTimeout(function(){
238
- clearTimeout(tapHold);
239
- tapHold = null;
240
- tap = false;
241
- def.headerTapHold(e, this.getComponent());
242
- }, 1000);
243
-
244
- }, {passive: true});
245
-
246
- this.element.addEventListener("touchend", (e) => {
247
- clearTimeout(tapHold);
248
- tapHold = null;
249
- });
250
- }
251
- }
252
-
253
174
  //build header element for header
254
175
  _buildColumnHeader(){
255
176
  var def = this.definition,
@@ -377,7 +298,6 @@ class Column extends CoreFeature{
377
298
  }
378
299
  break;
379
300
  case "undefined":
380
- case "null":
381
301
  el.innerHTML = "";
382
302
  break;
383
303
  default:
@@ -999,4 +919,4 @@ class Column extends CoreFeature{
999
919
 
1000
920
  Column.defaultOptionList = defaultOptions;
1001
921
 
1002
- export default Column;
922
+ export default Column;
@@ -186,6 +186,8 @@ export default class Renderer extends CoreFeature{
186
186
  this.elementVertical.scrollTop = this.elementVertical.scrollTop - this.elementVertical.clientHeight + rowEl.offsetHeight;
187
187
  }
188
188
 
189
+ break;
190
+
189
191
  case "top":
190
192
  this.elementVertical.scrollTop = rowEl.offsetTop;
191
193
  break;
@@ -22,6 +22,8 @@ export default class Popup extends CoreFeature{
22
22
 
23
23
  this.blurEvent = this.hide.bind(this, false);
24
24
  this.escEvent = this._escapeCheck.bind(this);
25
+
26
+ this.destroyBinding = this.hide.bind(this, true);
25
27
  }
26
28
 
27
29
  _lookupContainer(){
@@ -139,6 +141,8 @@ export default class Popup extends CoreFeature{
139
141
  this._fitToScreen(x, y, parentEl, parentOffset, position);
140
142
 
141
143
  this.visible = true;
144
+
145
+ this.subscribe("table-destroy", this.destroyBinding);
142
146
 
143
147
  return this;
144
148
  }
@@ -234,6 +238,8 @@ export default class Popup extends CoreFeature{
234
238
  if(this.blurCallback && !silent){
235
239
  this.blurCallback();
236
240
  }
241
+
242
+ this.unsubscribe("table-destroy", this.destroyBinding);
237
243
  }
238
244
 
239
245
  return this;
@@ -30,11 +30,10 @@ export default function(list, options, setFileContents){
30
30
 
31
31
  switch(typeof col.value){
32
32
  case "object":
33
- col.value = JSON.stringify(col.value);
33
+ col.value = col.value !== null ? JSON.stringify(col.value) : "";
34
34
  break;
35
35
 
36
36
  case "undefined":
37
- case "null":
38
37
  col.value = "";
39
38
  break;
40
39
  }
@@ -59,4 +58,4 @@ export default function(list, options, setFileContents){
59
58
  }
60
59
 
61
60
  setFileContents(fileContents, "text/csv");
62
- };
61
+ };
@@ -57,11 +57,10 @@ export default function(list, options, setFileContents){
57
57
  if(col){
58
58
  switch(typeof col.value){
59
59
  case "object":
60
- col.value = JSON.stringify(col.value);
60
+ col.value = col.value !== null ? JSON.stringify(col.value) : "";
61
61
  break;
62
62
 
63
63
  case "undefined":
64
- case "null":
65
64
  col.value = "";
66
65
  break;
67
66
  }
@@ -111,4 +110,4 @@ export default function(list, options, setFileContents){
111
110
  }
112
111
 
113
112
  setFileContents(doc.output("arraybuffer"), "application/pdf");
114
- };
113
+ };
@@ -70,7 +70,7 @@ export default class Edit{
70
70
  this.initialValues = this.params.multiselect ? initialValue : [initialValue];
71
71
 
72
72
  if(this.isFilter){
73
- this.input.value = this.initialValues.join(",");
73
+ this.input.value = this.initialValues ? this.initialValues.join(",") : "";
74
74
  this.headerFilterInitialListGen();
75
75
  }
76
76
  }
@@ -510,11 +510,10 @@ class Export extends Module{
510
510
  }else{
511
511
  switch(typeof value){
512
512
  case "object":
513
- value = JSON.stringify(value);
513
+ value = value !== null ? JSON.stringify(value) : "";
514
514
  break;
515
515
 
516
516
  case "undefined":
517
- case "null":
518
517
  value = "";
519
518
  break;
520
519
 
@@ -1,8 +1,8 @@
1
1
  import Module from '../../core/Module.js';
2
2
  import Helpers from '../../core/tools/Helpers.js';
3
3
 
4
- import Cell from '../../core/cell/Cell';
5
- import Column from '../../core/column/Column';
4
+ import Cell from '../../core/cell/Cell.js';
5
+ import Column from '../../core/column/Column.js';
6
6
 
7
7
  class Interaction extends Module{
8
8
 
@@ -311,4 +311,4 @@ class Interaction extends Module{
311
311
 
312
312
  Interaction.moduleName = "interaction";
313
313
 
314
- export default Interaction;
314
+ export default Interaction;
@@ -609,7 +609,6 @@ class Page extends Module{
609
609
  }
610
610
  break;
611
611
  case "undefined":
612
- case "null":
613
612
  this.pageCounterElement.innerHTML = "";
614
613
  break;
615
614
  default:
@@ -895,4 +894,4 @@ Page.moduleName = "page";
895
894
  //load defaults
896
895
  Page.pageCounters = defaultPageCounters;
897
896
 
898
- export default Page;
897
+ export default Page;
@@ -156,7 +156,7 @@ class ResizeColumns extends Module{
156
156
 
157
157
  config.handleEl = handle;
158
158
 
159
- if(element.parentNode){
159
+ if(element.parentNode && column.visible){
160
160
  element.after(handle);
161
161
  }
162
162
  }
@@ -378,7 +378,7 @@ class Sort extends Module{
378
378
  //set the column header sort direction
379
379
  setColumnHeader(column, dir){
380
380
  column.modules.sort.dir = dir;
381
- column.getElement().setAttribute("aria-sort", dir);
381
+ column.getElement().setAttribute("aria-sort", dir === "asc" ? "ascending" : "descending");
382
382
  }
383
383
 
384
384
  //sort each item in sort list
@@ -317,6 +317,15 @@ $table-cell-padding-sm: 5px;
317
317
  }
318
318
  }
319
319
  }
320
+
321
+ .tabulator-row{
322
+ padding-top: 0;
323
+ padding-bottom: 0;
324
+ }
325
+
326
+ .tabulator-col-resize-handle{
327
+ padding:0;
328
+ }
320
329
  }
321
330
 
322
331
 
@@ -325,56 +334,56 @@ $table-cell-padding-sm: 5px;
325
334
  .tabulator-table{
326
335
  .tabulator-row{
327
336
  &.table-primary{
328
- background:theme-color-level("primary", -9) !important;
337
+ background:map-get($table-variants, "primary") !important;
329
338
  }
330
339
  &.table-secondary{
331
- background:theme-color-level("secondary", -9) !important;
340
+ background:map-get($table-variants, "secondary") !important;
332
341
  }
333
342
  &.table-success{
334
- background:theme-color-level("success", -9) !important;
343
+ background:map-get($table-variants, "success") !important;
335
344
  }
336
345
  &.table-info{
337
- background:theme-color-level("info", -9) !important;
346
+ background:map-get($table-variants, "info") !important;
338
347
  }
339
348
  &.table-warning{
340
- background:theme-color-level("warning", -9) !important;
349
+ background:map-get($table-variants, "warning") !important;
341
350
  }
342
351
  &.table-danger{
343
- background:theme-color-level("danger", -9) !important;
352
+ background:map-get($table-variants, "danger") !important;
344
353
  }
345
354
  &.table-light{
346
- background:theme-color-level("light", -9) !important;
355
+ background:map-get($table-variants, "light") !important;
347
356
  }
348
357
  &.table{
349
- background:theme-color-level("dark", -9) !important;
358
+ background:map-get($table-variants, "dark") !important;
350
359
  }
351
360
  &.table-active{
352
361
  background:$table-active-bg !important;
353
362
  }
354
363
 
355
364
  &.bg-primary{
356
- background:theme-color-level("primary", 0) !important;
365
+ background:map-get($table-variants, "primary") !important;
357
366
  }
358
367
  &.bg-secondary{
359
- background:theme-color-level("secondary", 0) !important;
368
+ background:map-get($table-variants, "secondary") !important;
360
369
  }
361
370
  &.bg-success{
362
- background:theme-color-level("success", 0) !important;
371
+ background:map-get($table-variants, "success") !important;
363
372
  }
364
373
  &.bg-info{
365
- background:theme-color-level("info", 0) !important;
374
+ background:map-get($table-variants, "info") !important;
366
375
  }
367
376
  &.bg-warning{
368
- background:theme-color-level("warning", 0) !important;
377
+ background:map-get($table-variants, "warning") !important;
369
378
  }
370
379
  &.bg-danger{
371
- background:theme-color-level("danger", 0) !important;
380
+ background:map-get($table-variants, "danger") !important;
372
381
  }
373
382
  &.bg-light{
374
- background:theme-color-level("light", 0) !important;
383
+ background:map-get($table-variants, "light") !important;
375
384
  }
376
385
  &.bg-dark{
377
- background:theme-color-level("dark", 0) !important;
386
+ background:map-get($table-variants, "dark") !important;
378
387
  }
379
388
  &.bg-active{
380
389
  background:$table-active-bg !important;
@@ -382,56 +391,56 @@ $table-cell-padding-sm: 5px;
382
391
 
383
392
  .tabulator-cell{
384
393
  &.table-primary{
385
- background:theme-color-level("primary", -9) !important;
394
+ background:map-get($table-variants, "primary") !important;
386
395
  }
387
396
  &.table-secondary{
388
- background:theme-color-level("secondary", -9) !important;
397
+ background:map-get($table-variants, "secondary") !important;
389
398
  }
390
399
  &.table-success{
391
- background:theme-color-level("success", -9) !important;
400
+ background:map-get($table-variants, "success") !important;
392
401
  }
393
402
  &.table-info{
394
- background:theme-color-level("info", -9) !important;
403
+ background:map-get($table-variants, "info") !important;
395
404
  }
396
405
  &.table-warning{
397
- background:theme-color-level("warning", -9) !important;
406
+ background:map-get($table-variants, "warning") !important;
398
407
  }
399
408
  &.table-danger{
400
- background:theme-color-level("danger", -9) !important;
409
+ background:map-get($table-variants, "danger") !important;
401
410
  }
402
411
  &.table-light{
403
- background:theme-color-level("light", -9) !important;
412
+ background:map-get($table-variants, "light") !important;
404
413
  }
405
414
  &.table{
406
- background:theme-color-level("dark", -9) !important;
415
+ background:map-get($table-variants, "dark") !important;
407
416
  }
408
417
  &.table-active{
409
418
  background:$table-active-bg !important;
410
419
  }
411
420
 
412
421
  &.bg-primary{
413
- background:theme-color-level("primary", 0) !important;
422
+ background:map-get($table-variants, "primary") !important;
414
423
  }
415
424
  &.bg-secondary{
416
- background:theme-color-level("secondary", 0) !important;
425
+ background:map-get($table-variants, "secondary") !important;
417
426
  }
418
427
  &.bg-success{
419
- background:theme-color-level("success", 0) !important;
428
+ background:map-get($table-variants, "success") !important;
420
429
  }
421
430
  &.bg-info{
422
- background:theme-color-level("info", 0) !important;
431
+ background:map-get($table-variants, "info") !important;
423
432
  }
424
433
  &.bg-warning{
425
- background:theme-color-level("warning", 0) !important;
434
+ background:map-get($table-variants, "warning") !important;
426
435
  }
427
436
  &.bg-danger{
428
- background:theme-color-level("danger", 0) !important;
437
+ background:map-get($table-variants, "danger") !important;
429
438
  }
430
439
  &.bg-light{
431
- background:theme-color-level("light", 0) !important;
440
+ background:map-get($table-variants, "light") !important;
432
441
  }
433
442
  &.bg-dark{
434
- background:theme-color-level("dark", 0) !important;
443
+ background:map-get($table-variants, "dark") !important;
435
444
  }
436
445
  &.bg-active{
437
446
  background:$table-active-bg !important;
@@ -42,45 +42,45 @@ $footerBorderColor:$grey-lighter !default; //footer border color
42
42
 
43
43
  .tabulator{
44
44
  border:none;
45
-
45
+
46
46
  .tabulator-header{
47
47
  border:$table-cell-border;
48
48
  border-width:$table-head-cell-border-width;
49
-
49
+
50
50
  .tabulator-col{
51
51
  border-right:none;
52
-
52
+
53
53
  &.tabulator-moving{
54
54
  border:none;
55
55
  }
56
-
56
+
57
57
  .tabulator-col-content{
58
58
  padding:$table-cell-padding;
59
-
59
+
60
60
  .tabulator-col-sorter{
61
61
  right:0px;
62
62
  }
63
63
  }
64
-
64
+
65
65
  .tabulator-header-filter{
66
66
  input{
67
67
  border:$button-border-width solid $button-border-color;
68
68
  }
69
69
  }
70
70
  }
71
-
71
+
72
72
  .tabulator-calcs-holder{
73
73
  .tabulator-row{
74
74
  .tabulator-cell{
75
75
  border-bottom-width:0;
76
76
  }
77
77
  }
78
-
78
+
79
79
  border:$table-cell-border;
80
80
  border-width:$table-foot-cell-border-width;
81
81
  }
82
82
  }
83
-
83
+
84
84
  .tabulator-tableholder{
85
85
  .tabulator-table{
86
86
  .tabulator-row{
@@ -89,12 +89,12 @@ $footerBorderColor:$grey-lighter !default; //footer border color
89
89
  border:$table-cell-border;
90
90
  border-width:$table-head-cell-border-width;
91
91
  }
92
-
92
+
93
93
  &.tabulator-calcs-bottom{
94
94
  border:$table-cell-border;
95
95
  border-width:$table-foot-cell-border-width;
96
96
  }
97
-
97
+
98
98
  .tabulator-cell{
99
99
  border-bottom-width:0;
100
100
  }
@@ -102,39 +102,39 @@ $footerBorderColor:$grey-lighter !default; //footer border color
102
102
  }
103
103
  }
104
104
  }
105
-
105
+
106
106
  .tabulator-footer{
107
107
  padding:$table-cell-padding;
108
108
  border:$table-cell-border;
109
109
  border-width:$table-foot-cell-border-width;
110
-
110
+
111
111
  .tabulator-calcs-holder{
112
112
  margin:-5px -10px 10px -10px;
113
-
113
+
114
114
  border:$table-cell-border;
115
115
  border-width:$table-head-cell-border-width;
116
-
116
+
117
117
  .tabulator-row{
118
118
  .tabulator-cell{
119
119
  border-bottom-width:0;
120
120
  }
121
121
  }
122
122
  }
123
-
123
+
124
124
  .tabulator-page{
125
125
  margin:0 0.1875em;
126
126
  padding:$button-padding-vertical $button-padding-horizontal;
127
-
127
+
128
128
  border:$button-border-width solid $button-border-color;
129
-
129
+
130
130
  font-size: $textSize;
131
-
131
+
132
132
  &.active{
133
133
  border-color:$button-active-border-color;
134
134
  color:$button-active-color;
135
135
  font-weight:bold;
136
136
  }
137
-
137
+
138
138
  &:not(.disabled){
139
139
  &:hover{
140
140
  cursor:pointer;
@@ -145,9 +145,9 @@ $footerBorderColor:$grey-lighter !default; //footer border color
145
145
  }
146
146
  }
147
147
  }
148
-
148
+
149
149
  //Bulma theming classes
150
-
150
+
151
151
  &.is-striped{
152
152
  .tabulator-row{
153
153
  &:nth-child(even){
@@ -155,16 +155,16 @@ $footerBorderColor:$grey-lighter !default; //footer border color
155
155
  }
156
156
  }
157
157
  }
158
-
158
+
159
159
  &.is-bordered{
160
160
  border:$table-cell-border;
161
-
161
+
162
162
  .tabulator-header{
163
163
  .tabulator-col{
164
164
  border-right:$table-cell-border;
165
165
  }
166
166
  }
167
-
167
+
168
168
  .tabulator-tableholder{
169
169
  .tabulator-table{
170
170
  .tabulator-row{
@@ -175,7 +175,7 @@ $footerBorderColor:$grey-lighter !default; //footer border color
175
175
  }
176
176
  }
177
177
  }
178
-
178
+
179
179
  &.is-narrow{
180
180
  .tabulator-header{
181
181
  .tabulator-col{
@@ -184,7 +184,7 @@ $footerBorderColor:$grey-lighter !default; //footer border color
184
184
  }
185
185
  }
186
186
  }
187
-
187
+
188
188
  .tabulator-tableholder{
189
189
  .tabulator-table{
190
190
  .tabulator-row{
@@ -199,25 +199,25 @@ $footerBorderColor:$grey-lighter !default; //footer border color
199
199
 
200
200
  .tabulator-row{
201
201
  min-height:14px + ($headerMargin * 2);
202
-
202
+
203
203
  &.tabulator-row-even{
204
204
  background-color: inherit;
205
205
  }
206
-
206
+
207
207
  &.tabulator-selected{
208
208
  background-color:$rowSelectedBackground !important;
209
209
  }
210
-
210
+
211
211
  &.tabulator-selected:hover{
212
212
  background-color:darken($rowSelectedBackground, 10%) !important;
213
213
  }
214
-
214
+
215
215
  .tabulator-cell{
216
216
  padding:$table-cell-padding;
217
217
  border:$table-cell-border;
218
218
  border-width:$table-cell-border-width;
219
219
  }
220
-
220
+
221
221
  &.tabulator-group{
222
222
  border-bottom:1px solid #999;
223
223
  border-right:none;
@@ -236,3 +236,18 @@ $footerBorderColor:$grey-lighter !default; //footer border color
236
236
  }
237
237
  }
238
238
 
239
+ .tabulator-popup-container{
240
+ background: $backgroundColor,
241
+ }
242
+
243
+ .tabulator-edit-list{
244
+ .tabulator-edit-list-item{
245
+ &.active{
246
+ color:$backgroundColor;
247
+ }
248
+
249
+ &:hover{
250
+ color:$backgroundColor;
251
+ }
252
+ }
253
+ }