@hrforte/react-pivottable 2.2.2 → 3.0.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.
@@ -1,468 +1,476 @@
1
1
  .pvtUi {
2
- color: #2a3f5f;
3
- font-family: Verdana;
4
- border-collapse: collapse;
2
+ color: #2a3f5f;
3
+ font-family: Verdana;
4
+ border-collapse: collapse;
5
5
  }
6
6
  .pvtUi select {
7
- user-select: none;
8
- -webkit-user-select: none;
9
- -moz-user-select: none;
10
- -khtml-user-select: none;
11
- -ms-user-select: none;
7
+ user-select: none;
8
+ -webkit-user-select: none;
9
+ -moz-user-select: none;
10
+ -khtml-user-select: none;
11
+ -ms-user-select: none;
12
12
  }
13
13
 
14
14
  .pvtUi td.pvtOutput {
15
- vertical-align: top;
15
+ vertical-align: top;
16
16
  }
17
17
 
18
18
  table.pvtTable {
19
- font-size: 8pt;
20
- text-align: left;
21
- border-collapse: collapse;
22
- margin-top: 3px;
23
- margin-left: 3px;
24
- font-family: Verdana;
19
+ font-size: 8pt;
20
+ text-align: left;
21
+ border-collapse: collapse;
22
+ margin-top: 3px;
23
+ margin-left: 3px;
24
+ font-family: Verdana;
25
25
  }
26
26
  table.pvtTable thead tr th,
27
27
  table.pvtTable tbody tr th {
28
- background-color: #ebf0f8;
29
- border: 1px solid #c8d4e3;
30
- font-size: 8pt;
31
- padding: 5px;
28
+ background-color: #ebf0f8;
29
+ border: 1px solid #c8d4e3;
30
+ font-size: 8pt;
31
+ padding: 5px;
32
32
  }
33
33
 
34
34
  table.pvtTable .pvtColLabel {
35
- text-align: center;
35
+ text-align: center;
36
36
  }
37
37
  table.pvtTable .pvtRowNumber {
38
- text-align: center;
38
+ text-align: center;
39
39
  }
40
40
  table.pvtTable .pvtTotalLabel {
41
- text-align: right;
41
+ text-align: right;
42
42
  }
43
43
 
44
44
  table.pvtTable tbody tr td {
45
- color: #2a3f5f;
46
- padding: 5px;
47
- background-color: #fff;
48
- border: 1px solid #c8d4e3;
49
- vertical-align: top;
50
- text-align: right;
45
+ color: #2a3f5f;
46
+ padding: 5px;
47
+ background-color: #fff;
48
+ border: 1px solid #c8d4e3;
49
+ vertical-align: top;
50
+ text-align: right;
51
51
  }
52
52
 
53
53
  .pvtTotal,
54
54
  .pvtGrandTotal {
55
- font-weight: bold;
55
+ font-weight: bold;
56
+ }
57
+
58
+ table.pvtVirtualized tbody tr.pvtDataRow > th,
59
+ table.pvtVirtualized tbody tr.pvtDataRow > td {
60
+ height: 32px;
61
+ box-sizing: border-box;
62
+ white-space: nowrap;
63
+ overflow: hidden;
64
+ }
65
+
66
+ table.pvtVirtualized tbody tr.pvtVirtualSpacer > td {
67
+ padding: 0;
68
+ border: 0;
69
+ line-height: 0;
70
+ background: transparent;
71
+ }
72
+
73
+ table.pvtVirtualized tbody tr.pvtVirtualLoading > td {
74
+ padding: 0;
75
+ background: rgba(0, 0, 0, 0.06);
76
+ }
77
+
78
+ table.pvtVirtualized tbody tr.pvtVirtualOverlayRow > td {
79
+ height: 0;
80
+ padding: 0;
81
+ border: 0;
82
+ line-height: 0;
83
+ background: transparent;
84
+ }
85
+
86
+ table.pvtVirtualColumns .pvtVirtualColumnSpacer {
87
+ box-sizing: border-box;
88
+ padding: 0;
89
+ border: 0;
90
+ background: transparent;
56
91
  }
57
92
 
58
93
  .pvtRowOrder,
59
94
  .pvtColOrder {
60
- cursor: pointer;
61
- width: 15px;
62
- margin-left: 5px;
63
- display: inline-block;
64
- user-select: none;
65
- text-decoration: none !important;
66
- -webkit-user-select: none;
67
- -moz-user-select: none;
68
- -khtml-user-select: none;
69
- -ms-user-select: none;
95
+ cursor: pointer;
96
+ width: 15px;
97
+ margin-left: 5px;
98
+ display: inline-block;
99
+ user-select: none;
100
+ text-decoration: none !important;
101
+ -webkit-user-select: none;
102
+ -moz-user-select: none;
103
+ -khtml-user-select: none;
104
+ -ms-user-select: none;
70
105
  }
71
106
 
72
107
  .pvtAxisContainer,
73
108
  .pvtVals {
74
- border: 1px solid #a2b1c6;
75
- background: #f2f5fa;
76
- padding: 5px;
77
- min-width: 20px;
78
- min-height: 20px;
109
+ border: 1px solid #a2b1c6;
110
+ background: #f2f5fa;
111
+ padding: 5px;
112
+ min-width: 20px;
113
+ min-height: 20px;
79
114
  }
80
115
 
81
116
  .pvtRenderers {
82
- padding-left: 5px;
83
- user-select: none;
117
+ padding-left: 5px;
118
+ user-select: none;
84
119
  }
85
120
 
86
121
  .pvtDropdown {
87
- display: inline-block;
88
- position: relative;
89
- -webkit-user-select: none;
90
- -moz-user-select: none;
91
- -khtml-user-select: none;
92
- -ms-user-select: none;
93
- margin: 3px;
122
+ display: inline-block;
123
+ position: relative;
124
+ -webkit-user-select: none;
125
+ -moz-user-select: none;
126
+ -khtml-user-select: none;
127
+ -ms-user-select: none;
128
+ margin: 3px;
94
129
  }
95
130
 
96
131
  .pvtDropdownIcon {
97
- float: right;
98
- color: #a2b1c6;
132
+ float: right;
133
+ color: #a2b1c6;
99
134
  }
100
135
  .pvtDropdownCurrent {
101
- text-align: left;
102
- border: 1px solid #a2b1c6;
103
- border-radius: 4px;
104
- display: inline-block;
105
- position: relative;
106
- width: 210px;
107
- box-sizing: border-box;
108
- background: white;
136
+ text-align: left;
137
+ border: 1px solid #a2b1c6;
138
+ border-radius: 4px;
139
+ display: inline-block;
140
+ position: relative;
141
+ width: 210px;
142
+ box-sizing: border-box;
143
+ background: white;
109
144
  }
110
145
 
111
146
  .pvtDropdownCurrentOpen {
112
- border-radius: 4px 4px 0 0;
147
+ border-radius: 4px 4px 0 0;
113
148
  }
114
149
 
115
150
  .pvtDropdownMenu {
116
- background: white;
117
- position: absolute;
118
- width: 100%;
119
- margin-top: -1px;
120
- border-radius: 0 0 4px 4px;
121
- border: 1px solid #a2b1c6;
122
- border-top: 1px solid #dfe8f3;
123
- box-sizing: border-box;
151
+ background: white;
152
+ position: absolute;
153
+ width: 100%;
154
+ margin-top: -1px;
155
+ border-radius: 0 0 4px 4px;
156
+ border: 1px solid #a2b1c6;
157
+ border-top: 1px solid #dfe8f3;
158
+ box-sizing: border-box;
124
159
  }
125
160
 
126
161
  .pvtDropdownChecklist {
127
- max-height: 240px;
128
- overflow-y: auto;
162
+ max-height: 240px;
163
+ overflow-y: auto;
129
164
  }
130
165
 
131
166
  .pvtDropdownChecklistItem {
132
- display: flex;
133
- align-items: center;
134
- gap: 6px;
167
+ display: flex;
168
+ align-items: center;
169
+ gap: 6px;
135
170
  }
136
171
 
137
172
  .pvtDropdownChecklistItem input {
138
- margin: 0;
173
+ margin: 0;
139
174
  }
140
175
 
141
176
  .pvtAggregatorRow {
142
- display: flex;
143
- flex-wrap: wrap;
144
- align-items: center;
145
- gap: 6px;
146
- margin-bottom: 6px;
177
+ display: flex;
178
+ flex-wrap: wrap;
179
+ align-items: center;
180
+ gap: 6px;
181
+ margin-bottom: 6px;
147
182
  }
148
183
 
149
184
  .pvtAggregatorVals .pvtDropdown {
150
- margin: 3px 3px 0 0;
185
+ margin: 3px 3px 0 0;
151
186
  }
152
187
 
153
188
  .pvtAddAggregator {
154
- width: 100%;
155
- margin-top: 4px;
189
+ width: 100%;
190
+ margin-top: 4px;
156
191
  }
157
192
 
158
193
  .pvtRemoveAggregator {
159
- margin-left: auto;
194
+ margin-left: auto;
160
195
  }
161
196
 
162
197
  .pvtDropdownValue {
163
- padding: 2px 5px;
164
- font-size: 12px;
165
- text-align: left;
198
+ padding: 2px 5px;
199
+ font-size: 12px;
200
+ text-align: left;
166
201
  }
167
202
  .pvtDropdownActiveValue {
168
- background: #ebf0f8;
203
+ background: #ebf0f8;
169
204
  }
170
205
 
171
206
  .pvtVals {
172
- text-align: center;
173
- white-space: nowrap;
174
- vertical-align: top;
175
- padding-bottom: 12px;
207
+ text-align: center;
208
+ white-space: nowrap;
209
+ vertical-align: top;
210
+ padding-bottom: 12px;
176
211
  }
177
212
 
178
213
  .pvtRows {
179
- height: 35px;
214
+ height: 35px;
180
215
  }
181
216
 
182
217
  .pvtAxisContainer li {
183
- padding: 8px 6px;
184
- list-style-type: none;
185
- cursor: move;
218
+ padding: 8px 6px;
219
+ list-style-type: none;
220
+ cursor: move;
186
221
  }
187
222
  .pvtAxisContainer li.pvtPlaceholder {
188
- -webkit-border-radius: 5px;
189
- padding: 3px 15px;
190
- -moz-border-radius: 5px;
191
- border-radius: 5px;
192
- border: 1px dashed #a2b1c6;
223
+ -webkit-border-radius: 5px;
224
+ padding: 3px 15px;
225
+ -moz-border-radius: 5px;
226
+ border-radius: 5px;
227
+ border: 1px dashed #a2b1c6;
193
228
  }
194
229
  .pvtAxisContainer li.pvtPlaceholder span.pvtAttr {
195
- display: none;
230
+ display: none;
196
231
  }
197
232
 
198
233
  .pvtAxisContainer li span.pvtAttr {
199
- -webkit-text-size-adjust: 100%;
200
- background: #f3f6fa;
201
- border: 1px solid #c8d4e3;
202
- padding: 2px 5px;
203
- white-space: nowrap;
204
- -webkit-border-radius: 5px;
205
- -moz-border-radius: 5px;
206
- border-radius: 5px;
207
- user-select: none;
208
- -webkit-user-select: none;
209
- -moz-user-select: none;
210
- -khtml-user-select: none;
211
- -ms-user-select: none;
234
+ -webkit-text-size-adjust: 100%;
235
+ background: #f3f6fa;
236
+ border: 1px solid #c8d4e3;
237
+ padding: 2px 5px;
238
+ white-space: nowrap;
239
+ -webkit-border-radius: 5px;
240
+ -moz-border-radius: 5px;
241
+ border-radius: 5px;
242
+ user-select: none;
243
+ -webkit-user-select: none;
244
+ -moz-user-select: none;
245
+ -khtml-user-select: none;
246
+ -ms-user-select: none;
212
247
  }
213
248
 
214
249
  .pvtTriangle {
215
- cursor: pointer;
216
- color: #506784;
250
+ cursor: pointer;
251
+ color: #506784;
217
252
  }
218
253
 
219
254
  .pvtHorizList li {
220
- display: inline-block;
255
+ display: inline-block;
221
256
  }
222
257
  .pvtVertList {
223
- vertical-align: top;
258
+ vertical-align: top;
224
259
  }
225
260
 
226
261
  .pvtFilteredAttribute {
227
- font-style: italic;
262
+ font-style: italic;
228
263
  }
229
264
 
230
265
  .sortable-chosen .pvtFilterBox {
231
- display: none !important;
266
+ display: none !important;
232
267
  }
233
268
 
234
269
  .pvtCloseX {
235
- position: absolute;
236
- right: 5px;
237
- top: 5px;
238
- font-size: 18px;
239
- cursor: pointer;
240
- text-decoration: none !important;
270
+ position: absolute;
271
+ right: 5px;
272
+ top: 5px;
273
+ font-size: 18px;
274
+ cursor: pointer;
275
+ text-decoration: none !important;
241
276
  }
242
277
 
243
278
  .pvtDragHandle {
244
- position: absolute;
245
- left: 5px;
246
- top: 5px;
247
- font-size: 18px;
248
- cursor: move;
249
- color: #a2b1c6;
279
+ position: absolute;
280
+ left: 5px;
281
+ top: 5px;
282
+ font-size: 18px;
283
+ cursor: move;
284
+ color: #a2b1c6;
250
285
  }
251
286
 
252
287
  .pvtButton {
253
- color: #506784;
254
- border-radius: 5px;
255
- padding: 3px 6px;
256
- background: #f2f5fa;
257
- border: 1px solid;
258
- border-color: #c8d4e3;
259
- font-size: 14px;
260
- margin: 3px;
261
- transition: 0.34s all cubic-bezier(0.19, 1, 0.22, 1);
262
- text-decoration: none !important;
288
+ color: #506784;
289
+ border-radius: 5px;
290
+ padding: 3px 6px;
291
+ background: #f2f5fa;
292
+ border: 1px solid;
293
+ border-color: #c8d4e3;
294
+ font-size: 14px;
295
+ margin: 3px;
296
+ transition: 0.34s all cubic-bezier(0.19, 1, 0.22, 1);
297
+ text-decoration: none !important;
263
298
  }
264
299
 
265
300
  .pvtButton:hover {
266
- background: #e2e8f0;
267
- border-color: #a2b1c6;
301
+ background: #e2e8f0;
302
+ border-color: #a2b1c6;
268
303
  }
269
304
 
270
305
  .pvtButton:active {
271
- background: #d1dae6;
306
+ background: #d1dae6;
272
307
  }
273
308
 
274
309
  .pvtFilterBox input {
275
- border: 1px solid #c8d4e3;
276
- border-radius: 5px;
277
- color: #506784;
278
- padding: 0 3px;
279
- font-size: 14px;
310
+ border: 1px solid #c8d4e3;
311
+ border-radius: 5px;
312
+ color: #506784;
313
+ padding: 0 3px;
314
+ font-size: 14px;
280
315
  }
281
316
 
282
317
  .pvtFilterBox input:focus {
283
- border-color: #119dff;
284
- outline: none;
318
+ border-color: #119dff;
319
+ outline: none;
285
320
  }
286
321
 
287
322
  .pvtFilterBox {
288
- z-index: 100;
289
- width: 300px;
290
- border: 1px solid #506784;
291
- background-color: #fff;
292
- position: absolute;
293
- text-align: center;
294
- user-select: none;
295
- min-height: 100px;
296
- -webkit-user-select: none;
297
- -moz-user-select: none;
298
- -khtml-user-select: none;
299
- -ms-user-select: none;
323
+ z-index: 100;
324
+ width: 300px;
325
+ border: 1px solid #506784;
326
+ background-color: #fff;
327
+ position: absolute;
328
+ text-align: center;
329
+ user-select: none;
330
+ min-height: 100px;
331
+ -webkit-user-select: none;
332
+ -moz-user-select: none;
333
+ -khtml-user-select: none;
334
+ -ms-user-select: none;
300
335
  }
301
336
 
302
337
  .pvtFilterBox h4 {
303
- margin: 15px;
338
+ margin: 15px;
304
339
  }
305
340
  .pvtFilterBox p {
306
- margin: 10px auto;
341
+ margin: 10px auto;
307
342
  }
308
343
  .pvtFilterBox button {
309
- color: #2a3f5f;
344
+ color: #2a3f5f;
310
345
  }
311
346
  .pvtFilterBox input[type='text'] {
312
- width: 230px;
313
- color: #2a3f5f;
314
- margin-bottom: 5px;
347
+ width: 230px;
348
+ color: #2a3f5f;
349
+ margin-bottom: 5px;
315
350
  }
316
351
 
317
352
  .pvtCheckContainer {
318
- text-align: left;
319
- font-size: 14px;
320
- white-space: nowrap;
321
- overflow-y: scroll;
322
- width: 100%;
323
- max-height: 30vh;
324
- border-top: 1px solid #dfe8f3;
353
+ text-align: left;
354
+ font-size: 14px;
355
+ white-space: nowrap;
356
+ overflow-y: scroll;
357
+ width: 100%;
358
+ max-height: 30vh;
359
+ border-top: 1px solid #dfe8f3;
325
360
  }
326
361
 
327
362
  .pvtCheckContainer p {
328
- margin: 0;
329
- margin-bottom: 1px;
330
- padding: 3px;
331
- cursor: default;
363
+ margin: 0;
364
+ margin-bottom: 1px;
365
+ padding: 3px;
366
+ cursor: default;
332
367
  }
333
368
 
334
369
  .pvtCheckContainer p.selected {
335
- background: #ebf0f8;
370
+ background: #ebf0f8;
336
371
  }
337
372
 
338
373
  .pvtOnly {
339
- display: none;
340
- width: 35px;
341
- float: left;
342
- font-size: 12px;
343
- padding-left: 5px;
344
- cursor: pointer;
374
+ display: none;
375
+ width: 35px;
376
+ float: left;
377
+ font-size: 12px;
378
+ padding-left: 5px;
379
+ cursor: pointer;
345
380
  }
346
381
 
347
382
  .pvtOnlySpacer {
348
- display: block;
349
- width: 35px;
350
- float: left;
383
+ display: block;
384
+ width: 35px;
385
+ float: left;
351
386
  }
352
387
 
353
388
  .pvtCheckContainer p:hover .pvtOnly {
354
- display: block;
389
+ display: block;
355
390
  }
356
391
  .pvtCheckContainer p:hover .pvtOnlySpacer {
357
- display: none;
392
+ display: none;
358
393
  }
359
394
 
360
395
  .pvtRendererArea {
361
- padding: 5px;
396
+ padding: 5px;
362
397
  }
363
398
 
364
399
  .pvtSortButton {
365
- all: unset;
366
- cursor: pointer;
400
+ all: unset;
401
+ cursor: pointer;
367
402
  }
368
403
 
369
-
370
404
  .pvtAxisLabel {
371
- position: relative;
405
+ position: relative;
372
406
  }
373
407
 
374
408
  .pvtAxisLabel .pvtSortButton {
375
- opacity: 0.6;
409
+ opacity: 0.6;
376
410
  }
377
411
 
378
412
  .pvtAxisLabel:hover .pvtSortButton {
379
- opacity: 1;
413
+ opacity: 1;
380
414
  }
381
415
 
382
416
  /* ===== Web Worker loading overlay ===== */
383
417
 
384
418
  .pvtOutput {
385
- position: relative;
386
- min-height: 220px;
419
+ position: relative;
420
+ min-height: 220px;
387
421
  }
388
422
 
389
423
  .pvtLoadingOverlay {
390
- position: absolute;
391
- top: 0;
392
- left: 0;
393
- right: 0;
394
- bottom: 0;
395
- display: flex;
396
- flex-direction: column;
397
- align-items: center;
398
- justify-content: center;
399
- gap: 15px;
400
- background: rgba(0, 0, 0, 0.1);
401
- backdrop-filter: blur(3px);
402
- z-index: 20;
403
- cursor: wait;
404
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
424
+ position: absolute;
425
+ top: 0;
426
+ left: 0;
427
+ right: 0;
428
+ bottom: 0;
429
+ display: flex;
430
+ flex-direction: column;
431
+ align-items: center;
432
+ justify-content: center;
433
+ gap: 15px;
434
+ background: rgba(0, 0, 0, 0.1);
435
+ backdrop-filter: blur(3px);
436
+ pointer-events: none;
437
+ z-index: 20;
438
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
439
+ }
440
+
441
+ .pvtVirtualScrollOverlay {
442
+ position: fixed;
443
+ line-height: normal;
405
444
  }
406
445
 
407
446
  .pvtOutputPlaceholder {
408
- min-height: 220px;
447
+ min-height: 220px;
409
448
  }
410
449
 
411
450
  .pvtLoadingSpinner {
412
- width: 36px;
413
- height: 36px;
414
- border: 4px solid #ffeeee;
415
- border-top-color: #ff6600;
416
- border-radius: 50%;
417
- animation: pvtLoadingSpin 0.9s linear infinite;
451
+ width: 36px;
452
+ height: 36px;
453
+ border: 4px solid #ffeeee;
454
+ border-top-color: #ff6600;
455
+ border-radius: 50%;
456
+ animation: pvtLoadingSpin 0.9s linear infinite;
418
457
  }
419
458
 
420
459
  @keyframes pvtLoadingSpin {
421
- to {
422
- transform: rotate(360deg);
423
- }
460
+ to {
461
+ transform: rotate(360deg);
462
+ }
424
463
  }
425
464
 
426
465
  .pvtLoadingText {
427
466
  font-size: 14px;
428
- /* color: #333; */
429
467
  display: inline-flex;
430
468
  color: #ff6600;
431
- gap: 2px;
432
- }
433
-
434
- .pvtLoadingText span {
435
- font-weight: 600;
436
- display: inline-block;
437
- animation: wave 1.2s ease-in-out infinite;
438
- }
439
-
440
- .pvtLoadingText span:nth-child(1) { animation-delay: 0s; }
441
- .pvtLoadingText span:nth-child(2) { animation-delay: 0.08s; }
442
- .pvtLoadingText span:nth-child(3) { animation-delay: 0.16s; }
443
- .pvtLoadingText span:nth-child(4) { animation-delay: 0.24s; }
444
- .pvtLoadingText span:nth-child(5) { animation-delay: 0.32s; }
445
- .pvtLoadingText span:nth-child(6) { animation-delay: 0.40s; }
446
- .pvtLoadingText span:nth-child(7) { animation-delay: 0.48s; }
447
- .pvtLoadingText span:nth-child(8) { animation-delay: 0.56s; }
448
- .pvtLoadingText span:nth-child(9) { animation-delay: 0.64s; }
449
- .pvtLoadingText span:nth-child(10) { animation-delay: 0.72s; }
450
- .pvtLoadingText span:nth-child(11) { animation-delay: 0.80s; }
451
-
452
- @keyframes wave {
453
- 0%,
454
- 60%,
455
- 100% {
456
- transform: translateY(0);
457
- }
458
-
459
- 30% {
460
- transform: translateY(-4px);
461
- }
469
+ font-weight: 500;
462
470
  }
463
471
 
464
472
  .pvtComputeError {
465
- padding: 20px;
466
- color: #8b0000;
467
- text-align: center;
473
+ padding: 20px;
474
+ color: #8b0000;
475
+ text-align: center;
468
476
  }