@annalib/anna-core 38.0.0 → 38.0.2

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 (42) hide show
  1. package/README.md +28 -28
  2. package/fesm2022/annalib-anna-core.mjs +156 -156
  3. package/fesm2022/annalib-anna-core.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/src/lib/anna-common-scss/_animate.scss +27 -27
  6. package/src/lib/anna-common-scss/_application-spacing.scss +8 -8
  7. package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +29 -29
  8. package/src/lib/anna-common-scss/_button.scss +18 -18
  9. package/src/lib/anna-common-scss/_colors.scss +107 -107
  10. package/src/lib/anna-common-scss/_common-order-listing-table.scss +190 -190
  11. package/src/lib/anna-common-scss/_custom-anna-datepicker.scss +14 -14
  12. package/src/lib/anna-common-scss/_customDropdown.scss +126 -126
  13. package/src/lib/anna-common-scss/_dashboard-partials.scss +107 -107
  14. package/src/lib/anna-common-scss/_date-picker-form.scss +87 -87
  15. package/src/lib/anna-common-scss/_drag-and-drop.scss +22 -22
  16. package/src/lib/anna-common-scss/_easy-filter.scss +139 -139
  17. package/src/lib/anna-common-scss/_edit-filter-popup.scss +80 -80
  18. package/src/lib/anna-common-scss/_email-button.scss +89 -89
  19. package/src/lib/anna-common-scss/_filters.scss +728 -728
  20. package/src/lib/anna-common-scss/_font.scss +9 -9
  21. package/src/lib/anna-common-scss/_fonts.scss +86 -86
  22. package/src/lib/anna-common-scss/_generic-modal.scss +63 -63
  23. package/src/lib/anna-common-scss/_generic-table-common.scss +220 -220
  24. package/src/lib/anna-common-scss/_generic-tooltip-html.scss +69 -69
  25. package/src/lib/anna-common-scss/_gt-table.scss +586 -586
  26. package/src/lib/anna-common-scss/_icons.scss +3 -3
  27. package/src/lib/anna-common-scss/_legend.scss +11 -11
  28. package/src/lib/anna-common-scss/_mat-button-toggle.scss +68 -68
  29. package/src/lib/anna-common-scss/_mat-menu.scss +17 -17
  30. package/src/lib/anna-common-scss/_mixins.scss +187 -187
  31. package/src/lib/anna-common-scss/_modal.scss +37 -37
  32. package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +37 -37
  33. package/src/lib/anna-common-scss/_scrollbar.scss +14 -14
  34. package/src/lib/anna-common-scss/_show-hide-total-row.scss +27 -27
  35. package/src/lib/anna-common-scss/_sort.scss +30 -30
  36. package/src/lib/anna-common-scss/_toggle.scss +86 -86
  37. package/src/lib/anna-common-scss/style.scss +7 -7
  38. package/src/lib/anna-common-scss/third-party-lib/_angular-material-mat-radio.scss +26 -26
  39. package/src/lib/anna-common-scss/third-party-lib/_anna-mat-button-toggle-group-size-lg.scss +39 -39
  40. package/src/lib/anna-common-scss/third-party-lib/_mat-autocomplete.scss +31 -31
  41. package/src/lib/anna-common-scss/user-module-common-scss/_user-module.scss +65 -65
  42. package/src/lib/anna-common-scss/user-module-common-scss/_user-tag-status.scss +111 -111
@@ -1,586 +1,586 @@
1
- @use "../anna-common-scss/fonts" as *;
2
- @use "../anna-common-scss/colors" as *;
3
- @use "sass:list";
4
- @use "sass:map";
5
-
6
- @mixin sticky-left($leftOffset, $zIndex) {
7
- position: sticky !important;
8
- left: $leftOffset;
9
- z-index: $zIndex !important;
10
- }
11
-
12
- @mixin ellipsify() {
13
- text-overflow: ellipsis;
14
- overflow: hidden;
15
- white-space: nowrap;
16
- }
17
-
18
- @mixin table-container-scroll-bar($margin-left: 0, $margin-top: 0) {
19
- .table-container {
20
- &::-webkit-scrollbar-track {
21
- margin-top: $margin-top;
22
- margin-left: $margin-left;
23
- }
24
- }
25
- }
26
-
27
- @mixin table-fixed-style($width: 100%) {
28
- table {
29
- margin-bottom: 0;
30
- table-layout: fixed;
31
- width: $width;
32
- }
33
- }
34
-
35
- @mixin table-header-style($bg-color) {
36
- background: $bg-color;
37
- padding: 2px 8px;
38
- line-height: normal;
39
- position: sticky;
40
- position: -webkit-sticky;
41
- top: 0;
42
-
43
- .upper-label {
44
- @include fonts(Roboto, var(--table-header-fs), normal, 700, normal, normal, 0.3px);
45
- color: $charcoal;
46
- margin-bottom: 0;
47
- }
48
-
49
- .lower-label {
50
- @include fonts(Roboto, var(--table-header-fs), normal, 700, normal, normal, 0.3px);
51
- color: $darkGray;
52
- margin-bottom: 0;
53
- }
54
-
55
- div.row {
56
- display: flex;
57
- flex-wrap: nowrap;
58
- justify-content: space-between;
59
- align-items: center;
60
- width: max-content;
61
- }
62
-
63
- div.dummy-header {
64
- justify-content: center;
65
- margin-left: 50% !important;
66
- margin-right: 50% !important;
67
- width: -webkit-fill-available;
68
- }
69
-
70
- div.sort-filter-container {
71
- display: flex;
72
- flex-wrap: nowrap;
73
- align-items: center;
74
- margin-left: $fs-4;
75
- margin-right: auto;
76
- }
77
-
78
- span.mdi-filter-variant {
79
- font-size: 13px !important;
80
- top: -1px !important;
81
- position: relative;
82
- }
83
- }
84
-
85
- @function get-box-shadow-for-first-header($box-shadow-map) {
86
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
87
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
88
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
89
-
90
- @if ($show-right-border-box-shadow) {
91
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
92
- inset 0 -1px 0 0 $top-bottom-box-shadow-color;
93
- } @else {
94
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
95
- inset 0 -1px 0 0 $top-bottom-box-shadow-color;
96
- }
97
- }
98
-
99
- @function get-box-shadow-for-last-header($box-shadow-map) {
100
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
101
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
102
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
103
-
104
- @if ($show-right-border-box-shadow) {
105
- @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 1px 0 0 0 $left-right-box-shadow-color,
106
- inset 0 1px 0 0 $top-bottom-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
107
- } @else {
108
- @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
109
- inset 0 -1px 0 0 $top-bottom-box-shadow-color;
110
- }
111
- }
112
-
113
- @function get-box-shadow-for-middle-header($box-shadow-map) {
114
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
115
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
116
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
117
-
118
- @if ($show-right-border-box-shadow) {
119
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
120
- inset 0 -1px 0 0 $top-bottom-box-shadow-color;
121
- } @else {
122
- @return inset 0 1px 0 0 $top-bottom-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
123
- }
124
- }
125
-
126
- @mixin table-header($sticky-left-map, $box-shadow-map, $bg-color: #ededed) {
127
- $last-sticky-col: 0;
128
- @if (list.length(map.keys($sticky-left-map)) > 0) {
129
- $last-sticky-col: list.nth(map.keys($sticky-left-map), -1);
130
- }
131
-
132
- .scroll-left-shadow-effect .header-row th:nth-of-type(#{$last-sticky-col}) {
133
- border: none !important;
134
- filter: drop-shadow(2px 0 0px $lightGray-4);
135
- }
136
-
137
- .header-row {
138
- background: $bg-color;
139
-
140
- th {
141
- box-shadow: none !important;
142
- cursor: default;
143
- @include table-header-style($bg-color);
144
- }
145
-
146
- $box-shadow-start-index: map.get($box-shadow-map, "start-index");
147
- $box-shadow-end-index: map.get($box-shadow-map, "end-index");
148
-
149
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
150
- @if ($i == $box-shadow-start-index) {
151
- th:nth-of-type(#{$i}) {
152
- box-shadow: get-box-shadow-for-first-header($box-shadow-map) !important;
153
- }
154
- } @else if($i == $box-shadow-end-index) {
155
- th:nth-of-type(#{$i}) {
156
- box-shadow: get-box-shadow-for-last-header($box-shadow-map) !important;
157
- }
158
- } @else {
159
- th:nth-of-type(#{$i}) {
160
- box-shadow: get-box-shadow-for-middle-header($box-shadow-map) !important;
161
- }
162
- }
163
- }
164
-
165
- @each $columnNumber, $sticky-prop in $sticky-left-map {
166
- $left-offset: map.get($sticky-prop, "left");
167
- $z-index: map.get($sticky-prop, "z-index");
168
-
169
- th:nth-of-type(#{$columnNumber}) {
170
- @include sticky-left($left-offset, $z-index);
171
- }
172
- }
173
- }
174
- }
175
-
176
- @mixin total-row-common-styling($bg-color) {
177
- padding: 2px 8px;
178
- background: $bg-color;
179
- position: sticky;
180
- position: -webkit-sticky;
181
-
182
- .upper-label {
183
- @include fonts(Roboto, var(--table-body-fs), normal, 700, normal, normal, 0.3px);
184
- color: $charcoal;
185
- }
186
-
187
- .lower-label {
188
- @include fonts(Roboto, var(--table-body-fs), normal, 700, normal, normal, 0.3px);
189
- color: $darkGray;
190
- margin-top: -3px;
191
- }
192
-
193
- br {
194
- display: block;
195
- content: "";
196
- margin-top: -6px;
197
- }
198
- }
199
-
200
- @function get-box-shadow-for-first-total-row($box-shadow-map) {
201
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
202
- $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
203
- $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
204
- $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
205
- $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
206
-
207
- @if ($show-right-border-box-shadow) {
208
- @return inset 1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
209
- inset 0 -1px 0 0 $bottom-box-shadow-color;
210
- } @else {
211
- @return inset 1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
212
- inset 0 -1px 0 0 $bottom-box-shadow-color;
213
- }
214
- }
215
-
216
- @function get-box-shadow-for-last-total-row($box-shadow-map) {
217
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
218
- $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
219
- $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
220
- $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
221
- $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
222
-
223
- @if ($show-right-border-box-shadow) {
224
- @return inset -1px 0 0 0 $top-box-shadow-color, inset 1px 0 0 0 $left-box-shadow-color,
225
- inset 0 1px 0 0 $top-box-shadow-color, inset 0 -1px 0 0 $bottom-box-shadow-color;
226
- } @else {
227
- @return inset -1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
228
- inset 0 -1px 0 0 $bottom-box-shadow-color;
229
- }
230
- }
231
-
232
- @function get-box-shadow-for-middle-total-row($box-shadow-map) {
233
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
234
- $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
235
- $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
236
- $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
237
- $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
238
-
239
- @if ($show-right-border-box-shadow) {
240
- @return inset 1px 0 0 0 $left-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
241
- inset 0 -1px 0 0 $bottom-box-shadow-color;
242
- } @else {
243
- @return inset 0 1px 0 0 $top-box-shadow-color, inset 0 -1px 0 0 $bottom-box-shadow-color;
244
- }
245
- }
246
-
247
- @mixin total-row($sticky-top-left-map, $box-shadow-map, $bg-color: white) {
248
- $sticky-top: map.get($sticky-top-left-map, "top");
249
- $sticky-left-map: map.get($sticky-top-left-map, "sticky-left");
250
- $last-sticky-col: 0;
251
-
252
- @if (list.length(map.keys($sticky-left-map)) > 0) {
253
- $last-sticky-col: list.nth(map.keys($sticky-left-map), -1);
254
- }
255
-
256
- .scroll-left-shadow-effect:not(.no-data-table) .total-row td:nth-of-type(#{$last-sticky-col}) {
257
- filter: drop-shadow(2px 0 2px $lightGray-4);
258
- }
259
-
260
- .total-row {
261
- td {
262
- top: $sticky-top !important;
263
- @include total-row-common-styling($bg-color);
264
- }
265
-
266
- $box-shadow-start-index: map.get($box-shadow-map, "start-index");
267
- $box-shadow-end-index: map.get($box-shadow-map, "end-index");
268
-
269
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
270
- @if ($i == $box-shadow-start-index) {
271
- td:nth-of-type(#{$i}) {
272
- box-shadow: get-box-shadow-for-first-total-row($box-shadow-map) !important;
273
- }
274
- } @else if($i == $box-shadow-end-index) {
275
- td:nth-of-type(#{$i}) {
276
- box-shadow: get-box-shadow-for-last-total-row($box-shadow-map) !important;
277
- }
278
- } @else {
279
- td:nth-of-type(#{$i}) {
280
- box-shadow: get-box-shadow-for-middle-total-row($box-shadow-map) !important;
281
- }
282
- }
283
- }
284
-
285
- @each $columnNumber, $sticky-prop in $sticky-left-map {
286
- $left-offset: map.get($sticky-prop, "left");
287
- $z-index: map.get($sticky-prop, "z-index");
288
-
289
- td:nth-of-type(#{$columnNumber}) {
290
- @include sticky-left($left-offset, $z-index);
291
- }
292
- }
293
- }
294
- }
295
-
296
- @mixin table-data-common-styling($bg-color: white) {
297
- div:nth-child(1) {
298
- color: #000;
299
- @include ellipsify();
300
- @include fonts(Roboto, var(--table-body-fs), normal, 400, normal, normal, 0px);
301
- }
302
-
303
- div:nth-child(2) {
304
- color: #a7a7a7;
305
- @include ellipsify();
306
- @include fonts(Roboto, var(--table-body-fs), normal, 400, normal, normal, 0px);
307
- }
308
- }
309
-
310
- @function get-box-shadow-for-first-table-data($box-shadow-map) {
311
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
312
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
313
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
314
-
315
- @if ($show-right-border-box-shadow) {
316
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
317
- } @else {
318
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
319
- }
320
- }
321
-
322
- @function get-box-shadow-for-last-table-data($box-shadow-map) {
323
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
324
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
325
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
326
-
327
- @if ($show-right-border-box-shadow) {
328
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset -1px 0 0 0 $left-right-box-shadow-color,
329
- inset 0 -1px 0 0 $top-bottom-box-shadow-color;
330
- } @else {
331
- @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
332
- }
333
- }
334
-
335
- @function get-box-shadow-for-middle-table-data($box-shadow-map) {
336
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
337
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
338
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
339
-
340
- @if ($show-right-border-box-shadow) {
341
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
342
- } @else {
343
- @return inset 0 -1px 0 0 $top-bottom-box-shadow-color;
344
- }
345
- }
346
-
347
- @mixin table-data($sticky-left-map, $box-shadow-map, $bg-color: white) {
348
- td {
349
- cursor: pointer;
350
- background: $bg-color;
351
- box-shadow: none !important;
352
-
353
- @include table-data-common-styling($bg-color);
354
- }
355
-
356
- $box-shadow-start-index: map.get($box-shadow-map, "start-index");
357
- $box-shadow-end-index: map.get($box-shadow-map, "end-index");
358
-
359
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
360
- @if ($i == $box-shadow-start-index) {
361
- td:nth-of-type(#{$i}) {
362
- box-shadow: get-box-shadow-for-first-table-data($box-shadow-map) !important;
363
- }
364
- } @else if($i == $box-shadow-end-index) {
365
- td:nth-of-type(#{$i}) {
366
- box-shadow: get-box-shadow-for-last-table-data($box-shadow-map) !important;
367
- }
368
- } @else {
369
- td:nth-of-type(#{$i}) {
370
- box-shadow: get-box-shadow-for-middle-table-data($box-shadow-map) !important;
371
- }
372
- }
373
- }
374
-
375
- $map-length: list.length($sticky-left-map);
376
- $last-column-index: if($map-length > 0, nth(map-keys($sticky-left-map), $map-length), null);
377
-
378
- @each $columnNumber, $sticky-prop in $sticky-left-map {
379
- $left-offset: map.get($sticky-prop, "left");
380
- $z-index: map.get($sticky-prop, "z-index");
381
-
382
- td:nth-of-type(#{$columnNumber}) {
383
- @include sticky-left($left-offset, $z-index);
384
- }
385
- }
386
-
387
- // @if ($last-column-index != null) {
388
- // td:nth-child(n + #{$last-column-index}),
389
- // th:nth-child(n + #{$last-column-index}) {
390
- // position: relative;
391
- // top: -1px !important;
392
- // // background-color: lightblue !important; /* Apply styles from non-sticky column to last column **/
393
- // }
394
- // }
395
- }
396
-
397
- @mixin table-data-shadow($columnNumber) {
398
- .scroll-left-shadow-effect:not(.no-data-table) td:nth-of-type(#{$columnNumber}) {
399
- filter: drop-shadow(2px 0 1px $lightGray-4);
400
- }
401
- }
402
-
403
- @mixin no-data-table($table-container-height, $box-shadow-map, $row-height-map: ()) {
404
- .table-container.no-data-table > div {
405
- height: $table-container-height !important;
406
- tr td {
407
- filter: none !important;
408
- }
409
- }
410
-
411
- $box-shadow-start-index: map.get($box-shadow-map, "box-shadow-start-index");
412
- $box-shadow-end-index: map.get($box-shadow-map, "box-shadow-end-index");
413
- $box-shadow-color: map.get($box-shadow-map, "box-shadow-color");
414
-
415
- tbody {
416
- @if (map.has-key($row-height-map, "row-height")) {
417
- tr.no-border-tr {
418
- height: map.get($row-height-map, "row-height") !important;
419
- }
420
- }
421
-
422
- tr.no-border-tr:first-of-type {
423
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
424
- td:nth-of-type(#{$i}) {
425
- @if ($i == $box-shadow-start-index) {
426
- box-shadow: inset 1px 0 0 0 $box-shadow-color !important;
427
- } @else if($i == $box-shadow-end-index) {
428
- box-shadow: inset -1px 0 0 0 $box-shadow-color !important;
429
- } @else {
430
- box-shadow: none !important;
431
- }
432
- }
433
- }
434
- }
435
-
436
- tr.no-border-tr:last-of-type {
437
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
438
- td:nth-of-type(#{$i}) {
439
- @if ($i == $box-shadow-start-index) {
440
- box-shadow: inset 1px -1px 0 0 $box-shadow-color !important;
441
- } @else if($i == $box-shadow-end-index) {
442
- box-shadow: inset -1px -1px 0 0 $box-shadow-color !important;
443
- } @else {
444
- box-shadow: inset 0 -1px 0 0 $box-shadow-color !important;
445
- }
446
- }
447
- }
448
- }
449
- }
450
- }
451
-
452
- @function get-box-shadow-for-bottom-border-first-row($box-shadow-map) {
453
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
454
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
455
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
456
-
457
- @if ($show-right-border-box-shadow) {
458
- @return inset 1px 0 0 0 $left-right-box-shadow-color;
459
- } @else {
460
- @return inset 1px 0 0 0 $left-right-box-shadow-color;
461
- }
462
- }
463
-
464
- @function get-box-shadow-for-bottom-border-last-row($box-shadow-map) {
465
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
466
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
467
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
468
-
469
- @if ($show-right-border-box-shadow) {
470
- @return inset 1px 0 0 0 $left-right-box-shadow-color, inset -1px 0 0 0 $left-right-box-shadow-color;
471
- } @else {
472
- @return inset -1px 0 0 0 $left-right-box-shadow-color;
473
- }
474
- }
475
-
476
- @function get-box-shadow-for-bottom-border-middle-row($box-shadow-map) {
477
- $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
478
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
479
- $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
480
-
481
- @if ($show-right-border-box-shadow) {
482
- @return inset 1px 0 0 0 $top-bottom-box-shadow-color;
483
- } @else {
484
- @return none;
485
- }
486
- }
487
-
488
- @mixin table-bottom-border($box-shadow-map) {
489
- $box-shadow-start-index: map.get($box-shadow-map, "start-index");
490
- $box-shadow-end-index: map.get($box-shadow-map, "end-index");
491
- $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
492
-
493
- .bottom-border {
494
- border-bottom: 1px solid $top-bottom-box-shadow-color;
495
- }
496
-
497
- .bottom-border tbody {
498
- tr:last-of-type {
499
- @for $i from $box-shadow-start-index through $box-shadow-end-index {
500
- @if ($i == $box-shadow-start-index) {
501
- td:nth-of-type(#{$i}) {
502
- box-shadow: get-box-shadow-for-bottom-border-first-row($box-shadow-map) !important;
503
- }
504
- } @else if($i == $box-shadow-end-index) {
505
- td:nth-of-type(#{$i}) {
506
- box-shadow: get-box-shadow-for-bottom-border-last-row($box-shadow-map) !important;
507
- }
508
- } @else {
509
- td:nth-of-type(#{$i}) {
510
- box-shadow: get-box-shadow-for-bottom-border-middle-row($box-shadow-map) !important;
511
- }
512
- }
513
- }
514
- }
515
- }
516
- }
517
-
518
- $default-box-shadow-map: (
519
- "show-right-border-box-shadow": true,
520
- "top-bottom-bs-color": #d4d4d4,
521
- "left-right-bs-color": #d4d4d4,
522
- );
523
-
524
- @mixin default-table-header-without-sticky-map($box-shadow-map: $default-box-shadow-map, $bg-color: #ededed) {
525
- th {
526
- border: none;
527
- @include table-header-style($bg-color);
528
- box-shadow: get-box-shadow-for-middle-header($box-shadow-map);
529
- }
530
-
531
- th:first-of-type {
532
- box-shadow: get-box-shadow-for-first-header($box-shadow-map);
533
- }
534
-
535
- th:last-of-type {
536
- box-shadow: get-box-shadow-for-last-header($box-shadow-map);
537
- }
538
- }
539
-
540
- $default-box-shadow-map-for-table-data: (
541
- "show-right-border-box-shadow": true,
542
- "top-bottom-bs-color": #d4d4d4,
543
- "left-right-bs-color": #d4d4d4,
544
- );
545
-
546
- @mixin default-table-body-without-sticky-map(
547
- $box-shadow-map: $default-box-shadow-map-for-table-data,
548
- $bg-color: white
549
- ) {
550
- td {
551
- padding: 2px 8px;
552
- border: none;
553
- @include table-data-common-styling($bg-color);
554
- box-shadow: get-box-shadow-for-middle-table-data($box-shadow-map);
555
- }
556
-
557
- td:first-of-type {
558
- box-shadow: get-box-shadow-for-first-table-data($box-shadow-map);
559
- }
560
-
561
- td:last-of-type {
562
- box-shadow: get-box-shadow-for-last-table-data($box-shadow-map);
563
- }
564
- }
565
-
566
- $default-box-shadow-map-for-bottom-border: (
567
- "show-right-border-box-shadow": true,
568
- "top-bottom-bs-color": #d4d4d4,
569
- "left-right-bs-color": #d4d4d4,
570
- );
571
-
572
- @mixin default-bottom-border($box-shadow-map: $default-box-shadow-map-for-bottom-border) {
573
- tr:last-of-type {
574
- td {
575
- box-shadow: get-box-shadow-for-bottom-border-middle-row($box-shadow-map);
576
- }
577
-
578
- td:first-of-type {
579
- box-shadow: get-box-shadow-for-bottom-border-first-row($box-shadow-map);
580
- }
581
-
582
- td:last-of-type {
583
- box-shadow: get-box-shadow-for-bottom-border-last-row($box-shadow-map);
584
- }
585
- }
586
- }
1
+ @use "../anna-common-scss/fonts" as *;
2
+ @use "../anna-common-scss/colors" as *;
3
+ @use "sass:list";
4
+ @use "sass:map";
5
+
6
+ @mixin sticky-left($leftOffset, $zIndex) {
7
+ position: sticky !important;
8
+ left: $leftOffset;
9
+ z-index: $zIndex !important;
10
+ }
11
+
12
+ @mixin ellipsify() {
13
+ text-overflow: ellipsis;
14
+ overflow: hidden;
15
+ white-space: nowrap;
16
+ }
17
+
18
+ @mixin table-container-scroll-bar($margin-left: 0, $margin-top: 0) {
19
+ .table-container {
20
+ &::-webkit-scrollbar-track {
21
+ margin-top: $margin-top;
22
+ margin-left: $margin-left;
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin table-fixed-style($width: 100%) {
28
+ table {
29
+ margin-bottom: 0;
30
+ table-layout: fixed;
31
+ width: $width;
32
+ }
33
+ }
34
+
35
+ @mixin table-header-style($bg-color) {
36
+ background: $bg-color;
37
+ padding: 2px 8px;
38
+ line-height: normal;
39
+ position: sticky;
40
+ position: -webkit-sticky;
41
+ top: 0;
42
+
43
+ .upper-label {
44
+ @include fonts(Roboto, var(--table-header-fs), normal, 700, normal, normal, 0.3px);
45
+ color: $charcoal;
46
+ margin-bottom: 0;
47
+ }
48
+
49
+ .lower-label {
50
+ @include fonts(Roboto, var(--table-header-fs), normal, 700, normal, normal, 0.3px);
51
+ color: $darkGray;
52
+ margin-bottom: 0;
53
+ }
54
+
55
+ div.row {
56
+ display: flex;
57
+ flex-wrap: nowrap;
58
+ justify-content: space-between;
59
+ align-items: center;
60
+ width: max-content;
61
+ }
62
+
63
+ div.dummy-header {
64
+ justify-content: center;
65
+ margin-left: 50% !important;
66
+ margin-right: 50% !important;
67
+ width: -webkit-fill-available;
68
+ }
69
+
70
+ div.sort-filter-container {
71
+ display: flex;
72
+ flex-wrap: nowrap;
73
+ align-items: center;
74
+ margin-left: $fs-4;
75
+ margin-right: auto;
76
+ }
77
+
78
+ span.mdi-filter-variant {
79
+ font-size: 13px !important;
80
+ top: -1px !important;
81
+ position: relative;
82
+ }
83
+ }
84
+
85
+ @function get-box-shadow-for-first-header($box-shadow-map) {
86
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
87
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
88
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
89
+
90
+ @if ($show-right-border-box-shadow) {
91
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
92
+ inset 0 -1px 0 0 $top-bottom-box-shadow-color;
93
+ } @else {
94
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
95
+ inset 0 -1px 0 0 $top-bottom-box-shadow-color;
96
+ }
97
+ }
98
+
99
+ @function get-box-shadow-for-last-header($box-shadow-map) {
100
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
101
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
102
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
103
+
104
+ @if ($show-right-border-box-shadow) {
105
+ @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 1px 0 0 0 $left-right-box-shadow-color,
106
+ inset 0 1px 0 0 $top-bottom-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
107
+ } @else {
108
+ @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
109
+ inset 0 -1px 0 0 $top-bottom-box-shadow-color;
110
+ }
111
+ }
112
+
113
+ @function get-box-shadow-for-middle-header($box-shadow-map) {
114
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
115
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
116
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
117
+
118
+ @if ($show-right-border-box-shadow) {
119
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 1px 0 0 $top-bottom-box-shadow-color,
120
+ inset 0 -1px 0 0 $top-bottom-box-shadow-color;
121
+ } @else {
122
+ @return inset 0 1px 0 0 $top-bottom-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
123
+ }
124
+ }
125
+
126
+ @mixin table-header($sticky-left-map, $box-shadow-map, $bg-color: #ededed) {
127
+ $last-sticky-col: 0;
128
+ @if (list.length(map.keys($sticky-left-map)) > 0) {
129
+ $last-sticky-col: list.nth(map.keys($sticky-left-map), -1);
130
+ }
131
+
132
+ .scroll-left-shadow-effect .header-row th:nth-of-type(#{$last-sticky-col}) {
133
+ border: none !important;
134
+ filter: drop-shadow(2px 0 0px $lightGray-4);
135
+ }
136
+
137
+ .header-row {
138
+ background: $bg-color;
139
+
140
+ th {
141
+ box-shadow: none !important;
142
+ cursor: default;
143
+ @include table-header-style($bg-color);
144
+ }
145
+
146
+ $box-shadow-start-index: map.get($box-shadow-map, "start-index");
147
+ $box-shadow-end-index: map.get($box-shadow-map, "end-index");
148
+
149
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
150
+ @if ($i == $box-shadow-start-index) {
151
+ th:nth-of-type(#{$i}) {
152
+ box-shadow: get-box-shadow-for-first-header($box-shadow-map) !important;
153
+ }
154
+ } @else if($i == $box-shadow-end-index) {
155
+ th:nth-of-type(#{$i}) {
156
+ box-shadow: get-box-shadow-for-last-header($box-shadow-map) !important;
157
+ }
158
+ } @else {
159
+ th:nth-of-type(#{$i}) {
160
+ box-shadow: get-box-shadow-for-middle-header($box-shadow-map) !important;
161
+ }
162
+ }
163
+ }
164
+
165
+ @each $columnNumber, $sticky-prop in $sticky-left-map {
166
+ $left-offset: map.get($sticky-prop, "left");
167
+ $z-index: map.get($sticky-prop, "z-index");
168
+
169
+ th:nth-of-type(#{$columnNumber}) {
170
+ @include sticky-left($left-offset, $z-index);
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ @mixin total-row-common-styling($bg-color) {
177
+ padding: 2px 8px;
178
+ background: $bg-color;
179
+ position: sticky;
180
+ position: -webkit-sticky;
181
+
182
+ .upper-label {
183
+ @include fonts(Roboto, var(--table-body-fs), normal, 700, normal, normal, 0.3px);
184
+ color: $charcoal;
185
+ }
186
+
187
+ .lower-label {
188
+ @include fonts(Roboto, var(--table-body-fs), normal, 700, normal, normal, 0.3px);
189
+ color: $darkGray;
190
+ margin-top: -3px;
191
+ }
192
+
193
+ br {
194
+ display: block;
195
+ content: "";
196
+ margin-top: -6px;
197
+ }
198
+ }
199
+
200
+ @function get-box-shadow-for-first-total-row($box-shadow-map) {
201
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
202
+ $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
203
+ $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
204
+ $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
205
+ $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
206
+
207
+ @if ($show-right-border-box-shadow) {
208
+ @return inset 1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
209
+ inset 0 -1px 0 0 $bottom-box-shadow-color;
210
+ } @else {
211
+ @return inset 1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
212
+ inset 0 -1px 0 0 $bottom-box-shadow-color;
213
+ }
214
+ }
215
+
216
+ @function get-box-shadow-for-last-total-row($box-shadow-map) {
217
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
218
+ $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
219
+ $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
220
+ $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
221
+ $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
222
+
223
+ @if ($show-right-border-box-shadow) {
224
+ @return inset -1px 0 0 0 $top-box-shadow-color, inset 1px 0 0 0 $left-box-shadow-color,
225
+ inset 0 1px 0 0 $top-box-shadow-color, inset 0 -1px 0 0 $bottom-box-shadow-color;
226
+ } @else {
227
+ @return inset -1px 0 0 0 $top-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
228
+ inset 0 -1px 0 0 $bottom-box-shadow-color;
229
+ }
230
+ }
231
+
232
+ @function get-box-shadow-for-middle-total-row($box-shadow-map) {
233
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
234
+ $top-box-shadow-color: map.get($box-shadow-map, "top-bs-color");
235
+ $left-box-shadow-color: map.get($box-shadow-map, "left-bs-color");
236
+ $bottom-box-shadow-color: map.get($box-shadow-map, "bottom-bs-color");
237
+ $right-box-shadow-color: map.get($box-shadow-map, "right-bs-color");
238
+
239
+ @if ($show-right-border-box-shadow) {
240
+ @return inset 1px 0 0 0 $left-box-shadow-color, inset 0 1px 0 0 $top-box-shadow-color,
241
+ inset 0 -1px 0 0 $bottom-box-shadow-color;
242
+ } @else {
243
+ @return inset 0 1px 0 0 $top-box-shadow-color, inset 0 -1px 0 0 $bottom-box-shadow-color;
244
+ }
245
+ }
246
+
247
+ @mixin total-row($sticky-top-left-map, $box-shadow-map, $bg-color: white) {
248
+ $sticky-top: map.get($sticky-top-left-map, "top");
249
+ $sticky-left-map: map.get($sticky-top-left-map, "sticky-left");
250
+ $last-sticky-col: 0;
251
+
252
+ @if (list.length(map.keys($sticky-left-map)) > 0) {
253
+ $last-sticky-col: list.nth(map.keys($sticky-left-map), -1);
254
+ }
255
+
256
+ .scroll-left-shadow-effect:not(.no-data-table) .total-row td:nth-of-type(#{$last-sticky-col}) {
257
+ filter: drop-shadow(2px 0 2px $lightGray-4);
258
+ }
259
+
260
+ .total-row {
261
+ td {
262
+ top: $sticky-top !important;
263
+ @include total-row-common-styling($bg-color);
264
+ }
265
+
266
+ $box-shadow-start-index: map.get($box-shadow-map, "start-index");
267
+ $box-shadow-end-index: map.get($box-shadow-map, "end-index");
268
+
269
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
270
+ @if ($i == $box-shadow-start-index) {
271
+ td:nth-of-type(#{$i}) {
272
+ box-shadow: get-box-shadow-for-first-total-row($box-shadow-map) !important;
273
+ }
274
+ } @else if($i == $box-shadow-end-index) {
275
+ td:nth-of-type(#{$i}) {
276
+ box-shadow: get-box-shadow-for-last-total-row($box-shadow-map) !important;
277
+ }
278
+ } @else {
279
+ td:nth-of-type(#{$i}) {
280
+ box-shadow: get-box-shadow-for-middle-total-row($box-shadow-map) !important;
281
+ }
282
+ }
283
+ }
284
+
285
+ @each $columnNumber, $sticky-prop in $sticky-left-map {
286
+ $left-offset: map.get($sticky-prop, "left");
287
+ $z-index: map.get($sticky-prop, "z-index");
288
+
289
+ td:nth-of-type(#{$columnNumber}) {
290
+ @include sticky-left($left-offset, $z-index);
291
+ }
292
+ }
293
+ }
294
+ }
295
+
296
+ @mixin table-data-common-styling($bg-color: white) {
297
+ div:nth-child(1) {
298
+ color: #000;
299
+ @include ellipsify();
300
+ @include fonts(Roboto, var(--table-body-fs), normal, 400, normal, normal, 0px);
301
+ }
302
+
303
+ div:nth-child(2) {
304
+ color: #a7a7a7;
305
+ @include ellipsify();
306
+ @include fonts(Roboto, var(--table-body-fs), normal, 400, normal, normal, 0px);
307
+ }
308
+ }
309
+
310
+ @function get-box-shadow-for-first-table-data($box-shadow-map) {
311
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
312
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
313
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
314
+
315
+ @if ($show-right-border-box-shadow) {
316
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
317
+ } @else {
318
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
319
+ }
320
+ }
321
+
322
+ @function get-box-shadow-for-last-table-data($box-shadow-map) {
323
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
324
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
325
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
326
+
327
+ @if ($show-right-border-box-shadow) {
328
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset -1px 0 0 0 $left-right-box-shadow-color,
329
+ inset 0 -1px 0 0 $top-bottom-box-shadow-color;
330
+ } @else {
331
+ @return inset -1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
332
+ }
333
+ }
334
+
335
+ @function get-box-shadow-for-middle-table-data($box-shadow-map) {
336
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
337
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
338
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
339
+
340
+ @if ($show-right-border-box-shadow) {
341
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset 0 -1px 0 0 $top-bottom-box-shadow-color;
342
+ } @else {
343
+ @return inset 0 -1px 0 0 $top-bottom-box-shadow-color;
344
+ }
345
+ }
346
+
347
+ @mixin table-data($sticky-left-map, $box-shadow-map, $bg-color: white) {
348
+ td {
349
+ cursor: pointer;
350
+ background: $bg-color;
351
+ box-shadow: none !important;
352
+
353
+ @include table-data-common-styling($bg-color);
354
+ }
355
+
356
+ $box-shadow-start-index: map.get($box-shadow-map, "start-index");
357
+ $box-shadow-end-index: map.get($box-shadow-map, "end-index");
358
+
359
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
360
+ @if ($i == $box-shadow-start-index) {
361
+ td:nth-of-type(#{$i}) {
362
+ box-shadow: get-box-shadow-for-first-table-data($box-shadow-map) !important;
363
+ }
364
+ } @else if($i == $box-shadow-end-index) {
365
+ td:nth-of-type(#{$i}) {
366
+ box-shadow: get-box-shadow-for-last-table-data($box-shadow-map) !important;
367
+ }
368
+ } @else {
369
+ td:nth-of-type(#{$i}) {
370
+ box-shadow: get-box-shadow-for-middle-table-data($box-shadow-map) !important;
371
+ }
372
+ }
373
+ }
374
+
375
+ $map-length: list.length($sticky-left-map);
376
+ $last-column-index: if($map-length > 0, nth(map-keys($sticky-left-map), $map-length), null);
377
+
378
+ @each $columnNumber, $sticky-prop in $sticky-left-map {
379
+ $left-offset: map.get($sticky-prop, "left");
380
+ $z-index: map.get($sticky-prop, "z-index");
381
+
382
+ td:nth-of-type(#{$columnNumber}) {
383
+ @include sticky-left($left-offset, $z-index);
384
+ }
385
+ }
386
+
387
+ // @if ($last-column-index != null) {
388
+ // td:nth-child(n + #{$last-column-index}),
389
+ // th:nth-child(n + #{$last-column-index}) {
390
+ // position: relative;
391
+ // top: -1px !important;
392
+ // // background-color: lightblue !important; /* Apply styles from non-sticky column to last column **/
393
+ // }
394
+ // }
395
+ }
396
+
397
+ @mixin table-data-shadow($columnNumber) {
398
+ .scroll-left-shadow-effect:not(.no-data-table) td:nth-of-type(#{$columnNumber}) {
399
+ filter: drop-shadow(2px 0 1px $lightGray-4);
400
+ }
401
+ }
402
+
403
+ @mixin no-data-table($table-container-height, $box-shadow-map, $row-height-map: ()) {
404
+ .table-container.no-data-table > div {
405
+ height: $table-container-height !important;
406
+ tr td {
407
+ filter: none !important;
408
+ }
409
+ }
410
+
411
+ $box-shadow-start-index: map.get($box-shadow-map, "box-shadow-start-index");
412
+ $box-shadow-end-index: map.get($box-shadow-map, "box-shadow-end-index");
413
+ $box-shadow-color: map.get($box-shadow-map, "box-shadow-color");
414
+
415
+ tbody {
416
+ @if (map.has-key($row-height-map, "row-height")) {
417
+ tr.no-border-tr {
418
+ height: map.get($row-height-map, "row-height") !important;
419
+ }
420
+ }
421
+
422
+ tr.no-border-tr:first-of-type {
423
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
424
+ td:nth-of-type(#{$i}) {
425
+ @if ($i == $box-shadow-start-index) {
426
+ box-shadow: inset 1px 0 0 0 $box-shadow-color !important;
427
+ } @else if($i == $box-shadow-end-index) {
428
+ box-shadow: inset -1px 0 0 0 $box-shadow-color !important;
429
+ } @else {
430
+ box-shadow: none !important;
431
+ }
432
+ }
433
+ }
434
+ }
435
+
436
+ tr.no-border-tr:last-of-type {
437
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
438
+ td:nth-of-type(#{$i}) {
439
+ @if ($i == $box-shadow-start-index) {
440
+ box-shadow: inset 1px -1px 0 0 $box-shadow-color !important;
441
+ } @else if($i == $box-shadow-end-index) {
442
+ box-shadow: inset -1px -1px 0 0 $box-shadow-color !important;
443
+ } @else {
444
+ box-shadow: inset 0 -1px 0 0 $box-shadow-color !important;
445
+ }
446
+ }
447
+ }
448
+ }
449
+ }
450
+ }
451
+
452
+ @function get-box-shadow-for-bottom-border-first-row($box-shadow-map) {
453
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
454
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
455
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
456
+
457
+ @if ($show-right-border-box-shadow) {
458
+ @return inset 1px 0 0 0 $left-right-box-shadow-color;
459
+ } @else {
460
+ @return inset 1px 0 0 0 $left-right-box-shadow-color;
461
+ }
462
+ }
463
+
464
+ @function get-box-shadow-for-bottom-border-last-row($box-shadow-map) {
465
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
466
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
467
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
468
+
469
+ @if ($show-right-border-box-shadow) {
470
+ @return inset 1px 0 0 0 $left-right-box-shadow-color, inset -1px 0 0 0 $left-right-box-shadow-color;
471
+ } @else {
472
+ @return inset -1px 0 0 0 $left-right-box-shadow-color;
473
+ }
474
+ }
475
+
476
+ @function get-box-shadow-for-bottom-border-middle-row($box-shadow-map) {
477
+ $show-right-border-box-shadow: map.get($box-shadow-map, "show-right-border-box-shadow");
478
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
479
+ $left-right-box-shadow-color: map.get($box-shadow-map, "left-right-bs-color");
480
+
481
+ @if ($show-right-border-box-shadow) {
482
+ @return inset 1px 0 0 0 $top-bottom-box-shadow-color;
483
+ } @else {
484
+ @return none;
485
+ }
486
+ }
487
+
488
+ @mixin table-bottom-border($box-shadow-map) {
489
+ $box-shadow-start-index: map.get($box-shadow-map, "start-index");
490
+ $box-shadow-end-index: map.get($box-shadow-map, "end-index");
491
+ $top-bottom-box-shadow-color: map.get($box-shadow-map, "top-bottom-bs-color");
492
+
493
+ .bottom-border {
494
+ border-bottom: 1px solid $top-bottom-box-shadow-color;
495
+ }
496
+
497
+ .bottom-border tbody {
498
+ tr:last-of-type {
499
+ @for $i from $box-shadow-start-index through $box-shadow-end-index {
500
+ @if ($i == $box-shadow-start-index) {
501
+ td:nth-of-type(#{$i}) {
502
+ box-shadow: get-box-shadow-for-bottom-border-first-row($box-shadow-map) !important;
503
+ }
504
+ } @else if($i == $box-shadow-end-index) {
505
+ td:nth-of-type(#{$i}) {
506
+ box-shadow: get-box-shadow-for-bottom-border-last-row($box-shadow-map) !important;
507
+ }
508
+ } @else {
509
+ td:nth-of-type(#{$i}) {
510
+ box-shadow: get-box-shadow-for-bottom-border-middle-row($box-shadow-map) !important;
511
+ }
512
+ }
513
+ }
514
+ }
515
+ }
516
+ }
517
+
518
+ $default-box-shadow-map: (
519
+ "show-right-border-box-shadow": true,
520
+ "top-bottom-bs-color": #d4d4d4,
521
+ "left-right-bs-color": #d4d4d4,
522
+ );
523
+
524
+ @mixin default-table-header-without-sticky-map($box-shadow-map: $default-box-shadow-map, $bg-color: #ededed) {
525
+ th {
526
+ border: none;
527
+ @include table-header-style($bg-color);
528
+ box-shadow: get-box-shadow-for-middle-header($box-shadow-map);
529
+ }
530
+
531
+ th:first-of-type {
532
+ box-shadow: get-box-shadow-for-first-header($box-shadow-map);
533
+ }
534
+
535
+ th:last-of-type {
536
+ box-shadow: get-box-shadow-for-last-header($box-shadow-map);
537
+ }
538
+ }
539
+
540
+ $default-box-shadow-map-for-table-data: (
541
+ "show-right-border-box-shadow": true,
542
+ "top-bottom-bs-color": #d4d4d4,
543
+ "left-right-bs-color": #d4d4d4,
544
+ );
545
+
546
+ @mixin default-table-body-without-sticky-map(
547
+ $box-shadow-map: $default-box-shadow-map-for-table-data,
548
+ $bg-color: white
549
+ ) {
550
+ td {
551
+ padding: 2px 8px;
552
+ border: none;
553
+ @include table-data-common-styling($bg-color);
554
+ box-shadow: get-box-shadow-for-middle-table-data($box-shadow-map);
555
+ }
556
+
557
+ td:first-of-type {
558
+ box-shadow: get-box-shadow-for-first-table-data($box-shadow-map);
559
+ }
560
+
561
+ td:last-of-type {
562
+ box-shadow: get-box-shadow-for-last-table-data($box-shadow-map);
563
+ }
564
+ }
565
+
566
+ $default-box-shadow-map-for-bottom-border: (
567
+ "show-right-border-box-shadow": true,
568
+ "top-bottom-bs-color": #d4d4d4,
569
+ "left-right-bs-color": #d4d4d4,
570
+ );
571
+
572
+ @mixin default-bottom-border($box-shadow-map: $default-box-shadow-map-for-bottom-border) {
573
+ tr:last-of-type {
574
+ td {
575
+ box-shadow: get-box-shadow-for-bottom-border-middle-row($box-shadow-map);
576
+ }
577
+
578
+ td:first-of-type {
579
+ box-shadow: get-box-shadow-for-bottom-border-first-row($box-shadow-map);
580
+ }
581
+
582
+ td:last-of-type {
583
+ box-shadow: get-box-shadow-for-bottom-border-last-row($box-shadow-map);
584
+ }
585
+ }
586
+ }