react-pivottable-plus 1.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.
package/pivottable.css ADDED
@@ -0,0 +1,441 @@
1
+ :root {
2
+ --pvt-border-color: #BABFC7;
3
+ --pvt-header-bg: #F8F8F8;
4
+ --pvt-total-bg: #E9E9E9;
5
+ --pvt-row-hover-bg: #F5F7F7;
6
+ --pvt-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
7
+ --pvt-font-size: 14px;
8
+ --pvt-font-weight-header: 600;
9
+ --pvt-font-weight-total: 700;
10
+ --pvt-row-height: 42px;
11
+ --pvt-text-color: #181d1f;
12
+ --pvt-text-color-muted: #6f7c87;
13
+ }
14
+
15
+ .pvtUi {
16
+ color: var(--pvt-text-color);
17
+ font-family: var(--pvt-font-family);
18
+ border-collapse: collapse;
19
+ }
20
+
21
+ .pvtUi select {
22
+ user-select: none;
23
+ -webkit-user-select: none;
24
+ -moz-user-select: none;
25
+ -khtml-user-select: none;
26
+ -ms-user-select: none;
27
+ }
28
+
29
+ .pvtUi td.pvtOutput {
30
+ vertical-align: top;
31
+ padding: 0;
32
+ }
33
+
34
+ /* ag-Grid Alpine Theme Pivot Table Styles */
35
+ table.pvtTable {
36
+ width: 100%;
37
+ border-collapse: collapse;
38
+ table-layout: fixed;
39
+ font-family: var(--pvt-font-family);
40
+ font-size: var(--pvt-font-size);
41
+ color: var(--pvt-text-color);
42
+ border-top: 1px solid var(--pvt-border-color);
43
+ border-left: 1px solid var(--pvt-border-color);
44
+ margin: 0;
45
+ }
46
+
47
+ table.pvtTable * {
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ table.pvtTable th,
52
+ table.pvtTable td {
53
+ height: var(--pvt-row-height);
54
+ line-height: var(--pvt-row-height);
55
+ padding: 0 12px;
56
+ border-right: 1px solid var(--pvt-border-color);
57
+ border-bottom: 1px solid var(--pvt-border-color);
58
+ white-space: nowrap;
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ font-weight: normal;
62
+ }
63
+
64
+ /* Header Styles */
65
+ table.pvtTable thead tr th,
66
+ table.pvtTable .pvtAxisLabel,
67
+ table.pvtTable .pvtColLabel,
68
+ table.pvtTable .pvtRowLabel {
69
+ background-color: var(--pvt-header-bg);
70
+ font-weight: var(--pvt-font-weight-header);
71
+ color: var(--pvt-text-color);
72
+ text-align: left;
73
+ }
74
+
75
+ table.pvtTable thead tr:last-child th {
76
+ border-bottom: 2px solid var(--pvt-border-color);
77
+ }
78
+
79
+ table.pvtTable .pvtColLabel {
80
+ text-align: center;
81
+ }
82
+
83
+ /* Totals Styles */
84
+ table.pvtTable .pvtTotal,
85
+ table.pvtTable .pvtGrandTotal,
86
+ table.pvtTable .pvtTotalLabel {
87
+ background-color: var(--pvt-total-bg);
88
+ color: var(--pvt-text-color);
89
+ font-weight: var(--pvt-font-weight-header);
90
+ }
91
+
92
+ table.pvtTable .pvtGrandTotal,
93
+ table.pvtTable tr:last-child td.pvtTotal,
94
+ table.pvtTable tr:last-child th.pvtTotalLabel {
95
+ font-weight: var(--pvt-font-weight-total);
96
+ }
97
+
98
+ /* Thick Border Separators for Totals */
99
+ table.pvtTable tr:last-child th,
100
+ table.pvtTable tr:last-child td {
101
+ border-top: 2px solid var(--pvt-border-color);
102
+ }
103
+
104
+ table.pvtTable td.pvtTotal,
105
+ table.pvtTable td.pvtGrandTotal {
106
+ border-left: 2px solid var(--pvt-border-color);
107
+ }
108
+
109
+ /* Numeric Alignment */
110
+ .pvtVal-numeric {
111
+ text-align: right;
112
+ font-variant-numeric: tabular-nums;
113
+ }
114
+
115
+ /* Data Row Hover */
116
+ table.pvtTable tr.pvtRow-data:hover td {
117
+ background-color: var(--pvt-row-hover-bg);
118
+ }
119
+
120
+ /* Empty cells */
121
+ table.pvtTable td:empty {
122
+ background-color: #fff;
123
+ }
124
+
125
+ /* UI Components (Keep existing logic but align styles) */
126
+ .pvtRowOrder,
127
+ .pvtColOrder {
128
+ cursor: pointer;
129
+ width: 15px;
130
+ margin-left: 5px;
131
+ display: inline-block;
132
+ user-select: none;
133
+ text-decoration: none !important;
134
+ }
135
+
136
+
137
+ .pvtAxisContainer,
138
+ .pvtVals {
139
+ border: 1px solid #a2b1c6;
140
+ background: #f2f5fa;
141
+ padding: 5px;
142
+ min-width: 20px;
143
+ min-height: 20px;
144
+ }
145
+
146
+ .pvtRenderers {
147
+ padding-left: 5px;
148
+ user-select: none;
149
+ }
150
+
151
+ .pvtDropdown {
152
+ display: inline-block;
153
+ position: relative;
154
+ -webkit-user-select: none;
155
+ -moz-user-select: none;
156
+ -khtml-user-select: none;
157
+ -ms-user-select: none;
158
+ margin: 3px;
159
+ }
160
+
161
+ .pvtDropdownIcon {
162
+ float: right;
163
+ color: #a2b1c6;
164
+ }
165
+ .pvtDropdownCurrent {
166
+ text-align: left;
167
+ border: 1px solid #a2b1c6;
168
+ border-radius: 4px;
169
+ display: inline-block;
170
+ position: relative;
171
+ width: 210px;
172
+ box-sizing: border-box;
173
+ background: white;
174
+ }
175
+
176
+ .pvtDropdownCurrentOpen {
177
+ border-radius: 4px 4px 0 0;
178
+ }
179
+
180
+ .pvtDropdownMenu {
181
+ background: white;
182
+ position: absolute;
183
+ width: 100%;
184
+ margin-top: -1px;
185
+ border-radius: 0 0 4px 4px;
186
+ border: 1px solid #a2b1c6;
187
+ border-top: 1px solid #dfe8f3;
188
+ box-sizing: border-box;
189
+ }
190
+
191
+ .pvtDropdownValue {
192
+ padding: 2px 5px;
193
+ font-size: 12px;
194
+ text-align: left;
195
+ }
196
+ .pvtDropdownActiveValue {
197
+ background: #ebf0f8;
198
+ }
199
+
200
+ .pvtVals {
201
+ text-align: center;
202
+ white-space: nowrap;
203
+ vertical-align: top;
204
+ padding-bottom: 12px;
205
+ }
206
+
207
+ .pvtRows {
208
+ height: 35px;
209
+ }
210
+
211
+ .pvtAxisContainer li {
212
+ padding: 8px 6px;
213
+ list-style-type: none;
214
+ cursor: move;
215
+ }
216
+ .pvtAxisContainer li.pvtPlaceholder {
217
+ -webkit-border-radius: 5px;
218
+ padding: 3px 15px;
219
+ -moz-border-radius: 5px;
220
+ border-radius: 5px;
221
+ border: 1px dashed #a2b1c6;
222
+ }
223
+ .pvtAxisContainer li.pvtPlaceholder span.pvtAttr {
224
+ display: none;
225
+ }
226
+
227
+ .pvtAxisContainer li span.pvtAttr {
228
+ -webkit-text-size-adjust: 100%;
229
+ background: #f3f6fa;
230
+ border: 1px solid #c8d4e3;
231
+ padding: 2px 5px;
232
+ white-space: nowrap;
233
+ -webkit-border-radius: 5px;
234
+ -moz-border-radius: 5px;
235
+ border-radius: 5px;
236
+ user-select: none;
237
+ -webkit-user-select: none;
238
+ -moz-user-select: none;
239
+ -khtml-user-select: none;
240
+ -ms-user-select: none;
241
+ }
242
+
243
+ .pvtTriangle {
244
+ cursor: pointer;
245
+ color: #506784;
246
+ }
247
+
248
+ .pvtHorizList li {
249
+ display: inline-block;
250
+ }
251
+ .pvtVertList {
252
+ vertical-align: top;
253
+ }
254
+
255
+ .pvtFilteredAttribute {
256
+ font-style: italic;
257
+ }
258
+
259
+ .sortable-chosen .pvtFilterBox {
260
+ display: none !important;
261
+ }
262
+
263
+ .pvtCloseX {
264
+ position: absolute;
265
+ right: 5px;
266
+ top: 5px;
267
+ font-size: 18px;
268
+ cursor: pointer;
269
+ text-decoration: none !important;
270
+ }
271
+
272
+ .pvtDragHandle {
273
+ position: absolute;
274
+ left: 5px;
275
+ top: 5px;
276
+ font-size: 18px;
277
+ cursor: move;
278
+ color: #a2b1c6;
279
+ }
280
+
281
+ .pvtButton {
282
+ color: #506784;
283
+ border-radius: 5px;
284
+ padding: 3px 6px;
285
+ background: #f2f5fa;
286
+ border: 1px solid;
287
+ border-color: #c8d4e3;
288
+ font-size: 14px;
289
+ margin: 3px;
290
+ transition: 0.34s all cubic-bezier(0.19, 1, 0.22, 1);
291
+ text-decoration: none !important;
292
+ }
293
+
294
+ .pvtButton:hover {
295
+ background: #e2e8f0;
296
+ border-color: #a2b1c6;
297
+ }
298
+
299
+ .pvtButton:active {
300
+ background: #d1dae6;
301
+ }
302
+
303
+ .pvtFilterBox input {
304
+ border: 1px solid #c8d4e3;
305
+ border-radius: 5px;
306
+ color: #506784;
307
+ padding: 0 3px;
308
+ font-size: 14px;
309
+ }
310
+
311
+ .pvtFilterBox input:focus {
312
+ border-color: #119dff;
313
+ outline: none;
314
+ }
315
+
316
+ .pvtFilterBox {
317
+ z-index: 100;
318
+ width: 300px;
319
+ border: 1px solid #506784;
320
+ background-color: #fff;
321
+ position: absolute;
322
+ text-align: center;
323
+ user-select: none;
324
+ min-height: 100px;
325
+ -webkit-user-select: none;
326
+ -moz-user-select: none;
327
+ -khtml-user-select: none;
328
+ -ms-user-select: none;
329
+ }
330
+
331
+ .pvtFilterBox h4 {
332
+ margin: 15px;
333
+ }
334
+ .pvtFilterBox p {
335
+ margin: 10px auto;
336
+ }
337
+ .pvtFilterBox button {
338
+ color: #2a3f5f;
339
+ }
340
+ .pvtFilterBox input[type='text'] {
341
+ width: 230px;
342
+ color: #2a3f5f;
343
+ margin-bottom: 5px;
344
+ }
345
+
346
+ .pvtCheckContainer {
347
+ text-align: left;
348
+ font-size: 14px;
349
+ white-space: nowrap;
350
+ overflow-y: scroll;
351
+ width: 100%;
352
+ max-height: 30vh;
353
+ border-top: 1px solid #dfe8f3;
354
+ }
355
+
356
+ .pvtCheckContainer p {
357
+ margin: 0;
358
+ margin-bottom: 1px;
359
+ padding: 3px;
360
+ cursor: default;
361
+ }
362
+
363
+ .pvtCheckContainer p.selected {
364
+ background: #ebf0f8;
365
+ }
366
+
367
+ .pvtOnly {
368
+ display: none;
369
+ width: 35px;
370
+ float: left;
371
+ font-size: 12px;
372
+ padding-left: 5px;
373
+ cursor: pointer;
374
+ }
375
+
376
+ .pvtOnlySpacer {
377
+ display: block;
378
+ width: 35px;
379
+ float: left;
380
+ }
381
+
382
+ .pvtCheckContainer p:hover .pvtOnly {
383
+ display: block;
384
+ }
385
+ .pvtCheckContainer p:hover .pvtOnlySpacer {
386
+ display: none;
387
+ }
388
+
389
+ .pvtRendererArea {
390
+ padding: 5px;
391
+ }
392
+
393
+ .pvtFooter {
394
+ display: flex;
395
+ justify-content: space-between;
396
+ align-items: center;
397
+ padding: 10px 5px;
398
+ margin-top: 5px;
399
+ border-top: 1px solid #c8d4e3;
400
+ color: #506784;
401
+ font-size: 9pt;
402
+ font-family: Verdana;
403
+ }
404
+
405
+ .pvtFooterPagination {
406
+ display: flex;
407
+ align-items: center;
408
+ gap: 5px;
409
+ }
410
+
411
+ .pvtFooterPagination .pvtButton {
412
+ margin: 0;
413
+ cursor: pointer;
414
+ min-width: 30px;
415
+ display: flex;
416
+ justify-content: center;
417
+ align-items: center;
418
+ }
419
+
420
+ .pvtFooterPagination .pvtButton[disabled] {
421
+ opacity: 0.5;
422
+ cursor: not-allowed;
423
+ }
424
+
425
+ .pvtPageInput {
426
+ width: 40px;
427
+ border: 1px solid #c8d4e3;
428
+ border-radius: 3px;
429
+ padding: 2px;
430
+ text-align: center;
431
+ color: #2a3f5f;
432
+ }
433
+
434
+ .pvtPageSize {
435
+ margin-left: 10px;
436
+ border: 1px solid #c8d4e3;
437
+ border-radius: 3px;
438
+ padding: 2px;
439
+ color: #2a3f5f;
440
+ background: white;
441
+ }