ms-data-grid 0.0.46 → 0.0.47

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 (61) hide show
  1. package/ng-package.json +18 -0
  2. package/package.json +38 -45
  3. package/src/lib/css/bootstrap.css +12043 -0
  4. package/src/lib/data-grid/animations.ts +228 -0
  5. package/src/lib/data-grid/data-grid.component.html +5353 -0
  6. package/src/lib/data-grid/data-grid.component.scss +2005 -0
  7. package/src/lib/data-grid/data-grid.component.spec.ts +28 -0
  8. package/src/lib/data-grid/data-grid.component.ts +5368 -0
  9. package/src/lib/data-grid/statuses.ts +49 -0
  10. package/src/lib/data-grid.module.ts +19 -0
  11. package/src/lib/data-grid.service.spec.ts +16 -0
  12. package/src/lib/data-grid.service.ts +9 -0
  13. package/src/lib/directives/draggable-header.directive.spec.ts +11 -0
  14. package/src/lib/directives/draggable-header.directive.ts +172 -0
  15. package/src/lib/pipes/filter.pipe.spec.ts +11 -0
  16. package/src/lib/pipes/filter.pipe.ts +22 -0
  17. package/src/lib/services/cell-selection.service.spec.ts +16 -0
  18. package/src/lib/services/cell-selection.service.ts +205 -0
  19. package/src/lib/services/common.service.spec.ts +16 -0
  20. package/src/lib/services/common.service.ts +278 -0
  21. package/src/lib/services/copy-service.service.spec.ts +16 -0
  22. package/src/lib/services/copy-service.service.ts +252 -0
  23. package/src/lib/services/drag-drp.service.spec.ts +16 -0
  24. package/src/lib/services/drag-drp.service.ts +58 -0
  25. package/src/lib/services/export.service.spec.ts +16 -0
  26. package/src/lib/services/export.service.ts +189 -0
  27. package/src/lib/services/split-columns.service.spec.ts +16 -0
  28. package/src/lib/services/split-columns.service.ts +148 -0
  29. package/src/lib/services/swap-columns.service.spec.ts +16 -0
  30. package/src/lib/services/swap-columns.service.ts +162 -0
  31. package/src/public-api.ts +6 -0
  32. package/src/typings.d.ts +4 -0
  33. package/tsconfig.lib.json +19 -0
  34. package/tsconfig.lib.prod.json +10 -0
  35. package/tsconfig.spec.json +14 -0
  36. package/esm2022/lib/data-grid/data-grid.component.mjs +0 -3786
  37. package/esm2022/lib/data-grid/statuses.mjs +0 -44
  38. package/esm2022/lib/data-grid.module.mjs +0 -25
  39. package/esm2022/lib/data-grid.service.mjs +0 -14
  40. package/esm2022/lib/directives/draggable-header.directive.mjs +0 -145
  41. package/esm2022/lib/pipes/filter.pipe.mjs +0 -28
  42. package/esm2022/lib/services/common.service.mjs +0 -210
  43. package/esm2022/lib/services/copy-service.service.mjs +0 -222
  44. package/esm2022/lib/services/split-columns.service.mjs +0 -143
  45. package/esm2022/lib/services/swap-columns.service.mjs +0 -118
  46. package/esm2022/ms-data-grid.mjs +0 -5
  47. package/esm2022/public-api.mjs +0 -8
  48. package/fesm2022/ms-data-grid.mjs +0 -4720
  49. package/fesm2022/ms-data-grid.mjs.map +0 -1
  50. package/index.d.ts +0 -5
  51. package/lib/data-grid/data-grid.component.d.ts +0 -477
  52. package/lib/data-grid/statuses.d.ts +0 -3
  53. package/lib/data-grid.module.d.ts +0 -14
  54. package/lib/data-grid.service.d.ts +0 -6
  55. package/lib/directives/draggable-header.directive.d.ts +0 -31
  56. package/lib/pipes/filter.pipe.d.ts +0 -7
  57. package/lib/services/common.service.d.ts +0 -17
  58. package/lib/services/copy-service.service.d.ts +0 -14
  59. package/lib/services/split-columns.service.d.ts +0 -9
  60. package/lib/services/swap-columns.service.d.ts +0 -19
  61. package/public-api.d.ts +0 -4
@@ -0,0 +1,2005 @@
1
+ @import "bootstrap/dist/css/bootstrap.min.css";
2
+
3
+ $border-color: #d9d9db;
4
+ $header-background-color: #efe1e1;
5
+
6
+ .data-grid-table-wrapper {
7
+ height: 100%;
8
+ width: 100%;
9
+ border: 1px solid $border-color;
10
+ border-radius: 12px;
11
+ // overflow: hidden;
12
+ position: relative;
13
+ }
14
+
15
+ // .transition{
16
+ // transition: min-width 0.3s ease;
17
+ // }
18
+
19
+ .data-grid-header {
20
+ position: sticky;
21
+ top: 0;
22
+ // z-index: 2;
23
+ }
24
+
25
+ .data-grid-header {
26
+ display: flex;
27
+ }
28
+
29
+ .header-row {
30
+ display: grid;
31
+ width: 100%;
32
+ }
33
+
34
+ .header-cell {
35
+ display: flex;
36
+ align-items: center;
37
+ position: relative;
38
+ width: 100%;
39
+ padding: 8px 0px 8px 8px;
40
+ font-weight: bold;
41
+ border-bottom: 1px solid $border-color;
42
+ white-space: nowrap;
43
+ min-width: 80px;
44
+ font-weight: 600;
45
+
46
+ // font-size: 16px;
47
+ .filter-applied-on-text {
48
+ color: #5d9cff !important
49
+ }
50
+
51
+ // .filter-applied-on-text::after {
52
+ // content: '';
53
+ // position: absolute;
54
+ // top: 2px;
55
+ // right: 4px;
56
+ // width: 6px;
57
+ // height: 6px;
58
+ // background-color: rgb(100, 131, 255);
59
+ // border-radius: 50%;
60
+ // }
61
+ }
62
+
63
+ .filter-cell {
64
+ padding: 4px !important;
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 8px;
68
+ width: 100%;
69
+
70
+ .filter-applied {
71
+ background-color: #bddef9;
72
+ }
73
+ }
74
+
75
+ .border-right {
76
+ border-right: 1px solid $border-color;
77
+ }
78
+
79
+ .merged-grid {
80
+ display: grid;
81
+ grid-auto-rows: 40px;
82
+ border-bottom: 1px solid #ccc;
83
+ }
84
+
85
+ .span-two-rows {
86
+ grid-row: span 2;
87
+ display: flex;
88
+ justify-content: space-between;
89
+ align-items: center;
90
+ }
91
+
92
+ .group-header {
93
+ display: flex;
94
+ justify-content: space-between;
95
+ position: relative;
96
+ }
97
+
98
+ .group-header-content {
99
+ position: sticky;
100
+ left: 10px;
101
+ overflow: hidden;
102
+ text-overflow: ellipsis;
103
+ }
104
+
105
+ .resize-handle {
106
+ width: 6px;
107
+ cursor: e-resize;
108
+ top: 0;
109
+ right: 0;
110
+ // z-index: 20;
111
+ top: 0;
112
+ color: rgba(0, 0, 0, 0.15);
113
+ margin-right: 4px;
114
+ }
115
+
116
+ .group-header {
117
+ .resize-handle {
118
+ top: 25%;
119
+ }
120
+ }
121
+
122
+ .group-column-wrapper {
123
+ // display: grid;
124
+ // padding: 0px 0px 1px 0px;
125
+ // gap: 0px;
126
+ // margin: 0px;
127
+ }
128
+
129
+ .h-100 {
130
+ height: 100%;
131
+ }
132
+
133
+ .data-grid-body {
134
+ // width: 100%;
135
+ position: relative;
136
+ overflow-y: auto;
137
+ overflow-x: hidden;
138
+ // top: 31px;
139
+ }
140
+
141
+ .cell {
142
+ padding: 8px;
143
+ // border: 1px solid #ddd;
144
+ white-space: nowrap;
145
+ overflow: hidden;
146
+ text-overflow: ellipsis;
147
+ height: 100%;
148
+ display: flex;
149
+ align-items: center;
150
+ }
151
+
152
+ .data-grid-row {
153
+ display: flex;
154
+ width: 100%;
155
+ min-width: max-content;
156
+ align-items: center;
157
+ border-bottom: 1px solid $border-color;
158
+ // transition: background-color 0.4s ease;
159
+ }
160
+
161
+ .hovered-row {
162
+ background-color: #ccc;
163
+ }
164
+
165
+ .checkbox-row {
166
+ border-bottom: $border-color;
167
+ }
168
+
169
+ .w-100 {
170
+ width: 100%;
171
+ }
172
+
173
+ // New Layout Css
174
+
175
+ .data-grid-header-wrapper {
176
+ display: flex;
177
+ position: relative;
178
+ overflow: hidden;
179
+ user-select: none;
180
+ }
181
+
182
+ .data-grid-header {
183
+ display: flex;
184
+ position: relative;
185
+ // grid-auto-rows: minmax(40px, auto);
186
+ z-index: 1;
187
+ }
188
+
189
+ .left-pinned,
190
+ .right-pinned {
191
+ position: sticky;
192
+ top: 0;
193
+ // z-index: 2;
194
+ // background: white; /* Or your header bg */
195
+ }
196
+
197
+ .right-pinned-header {
198
+ position: absolute;
199
+ right: 0;
200
+ border-left: 1px solid $border-color;
201
+ z-index: unset;
202
+ }
203
+
204
+ .left-pinned {
205
+ left: 0;
206
+ // box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15); /* Optional shadow */
207
+ // border-right: 1px solid $border-color;
208
+ }
209
+
210
+ .right-pinned {
211
+ right: 0;
212
+ // box-shadow: -2px 0 4px rgba(0, 0, 0, 0.1); /* Optional shadow */'
213
+ border-left: 1px solid $border-color;
214
+ }
215
+
216
+
217
+ .center-scrollable {
218
+ z-index: unset !important;
219
+ overflow-x: auto;
220
+ overflow-y: visible;
221
+ white-space: nowrap;
222
+ // min-width: 100%;
223
+
224
+ /* Hide scrollbar for Webkit (Chrome, Safari) */
225
+ &::-webkit-scrollbar {
226
+ display: none;
227
+ }
228
+
229
+ /* Hide scrollbar for Firefox */
230
+ scrollbar-width: none;
231
+
232
+ /* Hide scrollbar for IE/Edge */
233
+ -ms-overflow-style: none;
234
+ }
235
+
236
+ // Table Body CSS
237
+
238
+ .fake-scrollbar-vertical {
239
+ // will-change: transform;
240
+ // transform: translateZ(0);
241
+ // scroll-behavior: auto;
242
+ }
243
+
244
+ .data-grid-body-wrapper {
245
+ // will-change: transform;
246
+ // transform: translateZ(0);
247
+ // scroll-behavior: auto;
248
+ user-select: none;
249
+ display: flex;
250
+ // & {
251
+ // &::-webkit-scrollbar {
252
+ // display: none;
253
+ // }
254
+
255
+ // /* Hide scrollbar for Firefox */
256
+ // scrollbar-width: none;
257
+
258
+ // /* Hide scrollbar for IE/Edge */
259
+ // -ms-overflow-style: none;
260
+ // }
261
+ }
262
+
263
+ .center-scrollable-body {
264
+ overflow-x: auto;
265
+
266
+ // overflow: hidden;
267
+ &::-webkit-scrollbar {
268
+ display: none;
269
+ }
270
+
271
+ /* Hide scrollbar for Firefox */
272
+ scrollbar-width: none;
273
+
274
+ /* Hide scrollbar for IE/Edge */
275
+ -ms-overflow-style: none;
276
+ }
277
+
278
+ .left-pinned-body,
279
+ .right-pinned-body {
280
+ position: sticky;
281
+ top: 0;
282
+ z-index: unset;
283
+ background: white;
284
+
285
+ /* Or your header bg */
286
+ &::-webkit-scrollbar {
287
+ display: none;
288
+ }
289
+
290
+ /* Hide scrollbar for Firefox */
291
+ scrollbar-width: none;
292
+
293
+ /* Hide scrollbar for IE/Edge */
294
+ -ms-overflow-style: none;
295
+ }
296
+
297
+ .left-pinned-body {
298
+ left: 0;
299
+ // box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15); /* Optional shadow */
300
+ // border-right: 1px solid $border-color;
301
+ }
302
+
303
+ .border-end {
304
+ border-right: 1px solid $border-color !important;
305
+ }
306
+
307
+ .right-pinned-body {
308
+ right: 0;
309
+ // box-shadow: -2px 0 4px rgba(0, 0, 0, 0.1); /* Optional shadow */
310
+ border-left: 1px solid $border-color;
311
+ }
312
+
313
+ .fake-scroll-bar {
314
+ height: 14px;
315
+ overflow: scroll;
316
+ margin-bottom: 10px;
317
+ }
318
+
319
+ .text-ellipsis {
320
+ overflow: hidden;
321
+ text-overflow: ellipsis;
322
+ }
323
+
324
+ .select-all-checkbox-cell {
325
+ width: 50px;
326
+ display: flex;
327
+ justify-content: center;
328
+ align-items: center;
329
+ height: 100%;
330
+ border-right: 1px solid $border-color;
331
+
332
+ input {
333
+ width: 16px;
334
+ height: 14px;
335
+ }
336
+ }
337
+
338
+ .border-below {
339
+ border-bottom: 1px solid $border-color !important;
340
+ }
341
+
342
+ .three-dots {
343
+ width: 22px;
344
+ height: 22px;
345
+ display: flex;
346
+ justify-content: center;
347
+ align-items: center;
348
+ border-radius: 3px;
349
+ margin-right: 8px;
350
+ cursor: pointer;
351
+
352
+ &:hover {
353
+ background-color: #ccc !important;
354
+ }
355
+ }
356
+
357
+ // .odd-row{
358
+ // background-color: #f9ecec !important;
359
+ // }
360
+
361
+ .filter-icon-wrapper {
362
+ min-height: 22px;
363
+ max-height: 22px;
364
+ min-width: 22px;
365
+ max-width: 22px;
366
+ display: flex;
367
+ justify-content: center;
368
+ align-items: center;
369
+ border-radius: 3px;
370
+ cursor: pointer;
371
+ transition: background-color 0.3s ease;
372
+
373
+ &:hover {
374
+ background-color: #ccc;
375
+ }
376
+ }
377
+
378
+ .column-menu,
379
+ .filter-menu {
380
+ box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15);
381
+
382
+ border-radius: 4px;
383
+ }
384
+
385
+ .column-menu {
386
+ background: white;
387
+ width: 100%;
388
+ width: 240px;
389
+ border: 1px solid #ddd;
390
+ box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15);
391
+ border: 1px solid $border-color;
392
+ padding: 4px 0;
393
+ font-size: 14px;
394
+ position: fixed;
395
+ }
396
+
397
+ .column-menu-item {
398
+ padding: 8px 12px;
399
+ cursor: pointer;
400
+ display: flex;
401
+ align-items: center;
402
+ transition: background-color 0.2s ease;
403
+ }
404
+
405
+ .column-menu-item:hover {
406
+ background-color: rgb(222, 235, 247);
407
+ }
408
+
409
+ /* Submenu */
410
+ .pin-parent {
411
+ position: relative;
412
+ width: 100% !important;
413
+ }
414
+
415
+ .column-submenu {
416
+ position: absolute;
417
+ top: 0;
418
+ left: 100%;
419
+ background: white;
420
+ border: 1px solid #ddd;
421
+ width: 130px;
422
+ box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15);
423
+ border: 1px solid $border-color;
424
+ display: none;
425
+ padding: 4px 0;
426
+ z-index: 10;
427
+ border-radius: 4px;
428
+ }
429
+
430
+ .pin-parent:hover .column-submenu {
431
+ display: block;
432
+ }
433
+
434
+ // Filter Menue Container
435
+
436
+ .filter-menu-container {
437
+ position: fixed;
438
+ width: 210px;
439
+ background: white;
440
+ border: 1px solid #ddd;
441
+ border-radius: 4px;
442
+ padding: 12px;
443
+ box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15);
444
+ border: 1px solid $border-color;
445
+ z-index: 1000;
446
+ font-size: 14px;
447
+ }
448
+
449
+ .filter-menu-header {
450
+ font-weight: 600;
451
+ margin-bottom: 10px;
452
+ }
453
+
454
+ .filter-dropdown-section {
455
+ max-height: 350px;
456
+ overflow-y: auto;
457
+ }
458
+
459
+ .dropdown-options {
460
+ // max-height: 140px;
461
+ overflow-y: auto;
462
+ scrollbar-width: thin;
463
+ height: 100%;
464
+ }
465
+
466
+ .filter-text-section select,
467
+ .filter-text-section input {
468
+ width: 100%;
469
+ }
470
+
471
+ // .filter-menu-actions {
472
+ // padding-top: 10px;
473
+ // }
474
+ .filter-radio-inputs {
475
+ width: 14px !important;
476
+ height: 14px !important;
477
+ }
478
+
479
+ .right-menu {
480
+ border-left: 1px solid $border-color;
481
+ font-size: 14px;
482
+ // transition: width 0.3s ease;
483
+ }
484
+
485
+ .border-start {
486
+ border-left: 1px solid $border-color !important;
487
+ }
488
+
489
+ // Side Menu
490
+
491
+ .column-panel-item {
492
+ font-size: 0.875rem;
493
+ color: #333;
494
+ }
495
+
496
+ .toggle-icon {
497
+ cursor: pointer;
498
+ transition: transform 0.2s ease;
499
+ }
500
+
501
+ .toggle-icon.rotate {
502
+ transform: rotate(90deg);
503
+ }
504
+
505
+ .grab-icon {
506
+ cursor: grab;
507
+ color: #6c757d;
508
+ }
509
+
510
+ .text-truncate {
511
+ overflow: hidden;
512
+ text-overflow: ellipsis;
513
+ white-space: nowrap;
514
+ }
515
+
516
+ .cursor-pointer {
517
+ cursor: pointer;
518
+ }
519
+
520
+ .pivot-mode {
521
+ height: 48px;
522
+ }
523
+
524
+ .chevron-wrapper {
525
+ width: 30px;
526
+ height: 20px;
527
+ cursor: pointer;
528
+ border-radius: 3px;
529
+ display: flex;
530
+ justify-content: center;
531
+ align-items: center;
532
+ transition: background-color 0.3s ease;
533
+ margin-right: 8px;
534
+
535
+ &:hover {
536
+ background-color: #cac7c7;
537
+ }
538
+
539
+ i {
540
+ font-size: 14px;
541
+ }
542
+ }
543
+
544
+ .column-panel-body {
545
+ height: 70%;
546
+ overflow: auto;
547
+ scrollbar-width: thin;
548
+ }
549
+
550
+ .side-menue-text {
551
+ transform: rotate(90deg);
552
+ position: relative;
553
+ font-weight: bold;
554
+ margin-top: 40px;
555
+ }
556
+
557
+ .columns-button {
558
+ padding-top: 20px;
559
+ padding-bottom: 35px;
560
+ width: 29px;
561
+ }
562
+
563
+ .fake-scroll-content {
564
+ height: 12px;
565
+ }
566
+
567
+ .fake-scrollbar {
568
+ width: 25px;
569
+
570
+ div {
571
+ min-width: 1px;
572
+ }
573
+ }
574
+
575
+ .fake-horizintal-scrollbar {
576
+ div {
577
+ min-height: 1px;
578
+ }
579
+ }
580
+
581
+ .side-filter-columns-wrapper {
582
+ height: calc(100% - 25px);
583
+ }
584
+
585
+ // Center Overaly for showing the chose columns menu
586
+
587
+ .custom-modal-overlay {
588
+ position: fixed;
589
+ top: 0;
590
+ left: 0;
591
+ width: 100%;
592
+ height: 100%;
593
+ overflow: hidden;
594
+ display: flex;
595
+ justify-content: center;
596
+ align-items: center;
597
+ z-index: 1050;
598
+
599
+ .moda-header {
600
+ background-color: #f8f8f8;
601
+ }
602
+ }
603
+
604
+ .custom-modal-content {
605
+ background-color: #fff;
606
+ border-radius: 8px;
607
+ min-width: 300px;
608
+ max-width: 400px;
609
+ box-shadow: 0 5px 20px #0000004d;
610
+ }
611
+
612
+ .overlay-scrollable {
613
+ height: 250px;
614
+ overflow: auto;
615
+ }
616
+
617
+ .footer-row {
618
+ border-top: 1px solid $border-color;
619
+ padding-left: 32px;
620
+ }
621
+
622
+ .fw-500 {
623
+ font-weight: 500 !important;
624
+ }
625
+
626
+ // ::ng-deep cdk-virtual-scroll-viewport.d-none-scrollbar {
627
+ // scrollbar-width: none; /* Firefox */
628
+ // }
629
+
630
+ // ::ng-deep cdk-virtual-scroll-viewport.d-none-scrollbar::-webkit-scrollbar {
631
+ // display: none; /* Chrome, Safari */
632
+ // }
633
+
634
+ .fake-horizintal-scrollbar {
635
+ position: relative;
636
+ bottom: 17px;
637
+ overflow-x: auto;
638
+ overflow-y: hidden;
639
+ height: 17px;
640
+ }
641
+
642
+ .border-dashed {
643
+ border: 1px dashed $border-color;
644
+ }
645
+
646
+ .cdk-drag-preview {
647
+ box-sizing: border-box !important;
648
+ border-radius: 4px !important;
649
+ box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
650
+ 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important;
651
+ z-index: 9999 !important;
652
+ background-color: #f3f4f5 !important;
653
+ border: 1px solid $border-color !important;
654
+ z-index: 9999 !important;
655
+ }
656
+
657
+ .data-grid-header-wrapper ::ng-deep .cdk-drag-placeholder {
658
+ display: block !important;
659
+ background: #fff !important;
660
+ opacity: 1 !important;
661
+ }
662
+
663
+ .cdk-drag-animating {
664
+ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1) !important;
665
+ }
666
+
667
+ .top-row-grouping-placeholder {
668
+ display: flex;
669
+ align-items: center;
670
+ border-radius: 12px;
671
+ font-size: 14px;
672
+ padding-inline: 6px;
673
+ // opacity: 0.6;
674
+ // background-color: #eaeaeb;
675
+ border: 1px solid $border-color;
676
+
677
+ .bi-x {
678
+ cursor: pointer;
679
+ color: #7a7a7a;
680
+
681
+ &:hover {
682
+ color: #111;
683
+ }
684
+ }
685
+ }
686
+
687
+ .right-pinned-body-wrapper {
688
+ position: absolute;
689
+ right: 0;
690
+ }
691
+
692
+ .actions-dropdown {
693
+ position: fixed;
694
+ right: 200px;
695
+ z-index: 1050;
696
+ background-color: #fff;
697
+ border-radius: 8px !important;
698
+ cursor: default;
699
+ }
700
+
701
+ .bg-fff {
702
+ background-color: #fff;
703
+ }
704
+
705
+ .actions-dropdown-setting {
706
+ right: 250px;
707
+ }
708
+
709
+ .action-button {
710
+ background-color: #007cf5 !important;
711
+ border-radius: 8px !important;
712
+ padding: 8px 16px !important;
713
+ font-size: 14px;
714
+ height: 32px;
715
+ align-items: center;
716
+ }
717
+
718
+ .global-search {
719
+ max-width: 380px !important;
720
+
721
+ span {
722
+ margin-top: 2px;
723
+ }
724
+
725
+ input {
726
+ padding-left: 28px;
727
+ border-radius: 8px !important;
728
+
729
+ &:focus {
730
+ outline: none !important;
731
+ box-shadow: none !important;
732
+ }
733
+ }
734
+ }
735
+
736
+ .active .top-icon {
737
+ ::ng-deep svg path {
738
+ stroke: #007cf5 !important;
739
+ }
740
+ }
741
+
742
+ .dropdown-menu {
743
+ background-color: #fff !important;
744
+ border: 1px solid $border-color !important;
745
+ border-radius: 8px !important;
746
+ }
747
+
748
+ .custom-menu {
749
+ width: 220px;
750
+ border-radius: 8px;
751
+ padding: 4px 0;
752
+ background-color: #fff;
753
+ }
754
+
755
+ .custom-menu .dropdown-item {
756
+ font-size: 14px;
757
+ padding: 8px 14px;
758
+ }
759
+
760
+ .custom-menu .dropdown-item:hover {
761
+ background-color: #f5f5f5;
762
+ border-radius: 6px;
763
+ }
764
+
765
+ .table-layout {
766
+ right: 0;
767
+ background: #fff;
768
+ border-radius: 8px !important;
769
+ }
770
+
771
+ .actions-dropdown,
772
+ .table-layout,
773
+ .custom-menu,
774
+ .dropdown-menu {
775
+ background: white;
776
+ border-radius: 8px !important;
777
+ border: 1px solid #ccc !important;
778
+ background-color: #fff;
779
+ }
780
+
781
+ .preview-box {
782
+ width: 40px;
783
+ height: 10px;
784
+ border-radius: 3px;
785
+ background-color: transparent;
786
+ transition: background-color 0.2s ease-in-out;
787
+ }
788
+
789
+ .btn-check:checked+label .preview-box {
790
+ background-color: var(--bs-primary);
791
+ }
792
+
793
+ .preview-box {
794
+ width: 40px;
795
+ height: 10px;
796
+ border-radius: 3px;
797
+ border: 2px solid transparent;
798
+ transition: border-color 0.2s ease-in-out;
799
+ }
800
+
801
+ #small:checked+label .preview-box {
802
+ border-color: #007cf5 !important;
803
+ background-color: transparent !important;
804
+ }
805
+
806
+ #medium:checked+label .preview-box {
807
+ border-color: #007cf5 !important;
808
+ background-color: transparent !important;
809
+ }
810
+
811
+ #large:checked+label .preview-box {
812
+ border-color: #007cf5 !important;
813
+ background-color: transparent !important;
814
+ }
815
+
816
+ .btn-check:checked+.btn {
817
+ background-color: transparent !important;
818
+ border-color: #007cf5 !important;
819
+ }
820
+
821
+ .layout-button {
822
+ padding: 8px 28px !important;
823
+ width: 82px;
824
+ border-radius: 8px !important;
825
+ // color: #727272 !important;
826
+ }
827
+
828
+ .show-hide-table-label {
829
+ position: sticky;
830
+ top: 0px;
831
+ z-index: 99;
832
+ background: #fff;
833
+ }
834
+
835
+ .cursor-grap {
836
+ cursor: grabbing;
837
+ }
838
+
839
+ // Pagination Css
840
+
841
+ .pagination-container {
842
+ display: flex;
843
+ align-items: center;
844
+ gap: 12px;
845
+ font-size: 13px;
846
+ color: #333;
847
+ }
848
+
849
+ .page-size select {
850
+ padding: 3px 6px;
851
+ border: 1px solid #ccc;
852
+ border-radius: 6px;
853
+ background: #fff;
854
+ font-size: 13px;
855
+ }
856
+
857
+ .page-info {
858
+ margin-left: 10px;
859
+ }
860
+
861
+ .page-buttons {
862
+ display: flex;
863
+ gap: 4px;
864
+ margin-left: auto;
865
+ align-items: center;
866
+ }
867
+
868
+ .page-buttons button {
869
+ padding: 3px 8px;
870
+ border: 1px solid #ccc;
871
+ background: #fff;
872
+ border-radius: 4px;
873
+ cursor: pointer;
874
+ font-size: 13px;
875
+ line-height: 1.2;
876
+ }
877
+
878
+ .page-buttons button.active {
879
+ background: #eee;
880
+ font-weight: 600;
881
+ }
882
+
883
+ .page-buttons button:disabled {
884
+ opacity: 0.5;
885
+ cursor: not-allowed;
886
+ }
887
+
888
+ .page-buttons span {
889
+ padding: 0 6px;
890
+ color: #666;
891
+ }
892
+
893
+ .page-size .separator {
894
+ padding: 0 8px;
895
+ border-right: 1px solid #ccc;
896
+ /* vertical line */
897
+ margin-right: 8px;
898
+
899
+ /* space after line */
900
+ .actions-dropdown {
901
+ position: fixed;
902
+ right: 200px;
903
+ z-index: 1050;
904
+ background-color: #fff;
905
+ }
906
+ }
907
+
908
+ .fs-14px {
909
+ font-size: 14px;
910
+ }
911
+
912
+ .fs-12px {
913
+ font-size: 12px !important;
914
+ }
915
+
916
+ .save-preset-dropdown {
917
+ background: #fff;
918
+ color: #111 !important;
919
+ right: 0;
920
+ font-weight: 400 !important;
921
+ text-align: left !important;
922
+ max-width: 250px !important;
923
+ text-wrap: auto !important;
924
+ top: 14px;
925
+ font-size: 14px !important;
926
+ }
927
+
928
+ .add-filter-button {
929
+ // box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px 0px inset;
930
+ height: 28px;
931
+ cursor: pointer;
932
+ border-radius: 4px;
933
+
934
+ &:hover {
935
+ color: #000 !important;
936
+ // ::ng-deep svg path {
937
+ // stroke: black !important;
938
+ // }
939
+ }
940
+
941
+ // span {
942
+ // margin-top: -4px;
943
+ // }
944
+ }
945
+
946
+ .button-filter {
947
+ &:hover {
948
+ color: #000 !important;
949
+
950
+ ::ng-deep svg path {
951
+ stroke: black !important;
952
+ }
953
+ }
954
+ }
955
+
956
+ .table-layout {
957
+ .dropdown-item {
958
+ border-radius: 0 !important;
959
+ padding-inline: 16px !important;
960
+ font-size: 14px;
961
+ padding-block: 6px !important;
962
+
963
+ &:hover {
964
+ background-color: transparent !important;
965
+ }
966
+ }
967
+ }
968
+
969
+ .filter-serach-inpt {
970
+ max-height: 230px !important;
971
+ overflow: auto;
972
+ scrollbar-width: thin;
973
+ padding-top: 4px;
974
+ background-color: #f7f7f7;
975
+ border-color: #dedede;
976
+ border-radius: 8px;
977
+
978
+ .badge {
979
+ color: #007cf5 !important;
980
+ background-color: #e6f2ff !important;
981
+ border-radius: 8px !important;
982
+ padding: 8px !important;
983
+ font-weight: 500 !important;
984
+ font-size: 12px !important;
985
+ height: 24px !important;
986
+
987
+ ::ng-deep svg {
988
+ cursor: pointer;
989
+ }
990
+
991
+ ::ng-deep svg:hover path {
992
+ stroke: #040081 !important;
993
+ }
994
+ }
995
+
996
+ input {
997
+ background-color: #f7f7f7;
998
+ padding: 0;
999
+ height: 26px;
1000
+ margin-top: -5px;
1001
+ }
1002
+ }
1003
+
1004
+ .text-filter {
1005
+ select {
1006
+ border: 0;
1007
+
1008
+ option {
1009
+ font-size: 14px;
1010
+ font-weight: 500;
1011
+ }
1012
+
1013
+ &:focus {
1014
+ border: 0;
1015
+ }
1016
+ }
1017
+
1018
+ input:focus,
1019
+ select:focus {
1020
+ box-shadow: none !important;
1021
+ }
1022
+ }
1023
+
1024
+ .active-filters {
1025
+ background-color: #f7f7f7;
1026
+ white-space: nowrap;
1027
+ background: #f7f7f7;
1028
+ padding-inline: 8px;
1029
+ height: 28px;
1030
+ font-size: 14px;
1031
+ font-weight: 500;
1032
+ border-radius: 8px;
1033
+ box-shadow: none;
1034
+
1035
+ .header-tag {
1036
+ white-space: nowrap;
1037
+ }
1038
+ }
1039
+
1040
+ .filter-tags {
1041
+ .active {
1042
+ background-color: #e6f2ff;
1043
+
1044
+ .header-tag {
1045
+ color: #007cf5 !important;
1046
+ }
1047
+ }
1048
+ }
1049
+
1050
+ .table-cell {
1051
+ cursor: pointer;
1052
+ width: 100%;
1053
+
1054
+ input:focus {
1055
+ outline: 0 !important;
1056
+ border: 0 !important;
1057
+ width: 100% !important;
1058
+ box-shadow: none !important;
1059
+ }
1060
+ }
1061
+
1062
+ .active-for-editing {
1063
+ // border: 4px solid #007cf5 !important;
1064
+ outline: 2.5px solid #007cf5 !important;
1065
+ border-radius: 4px;
1066
+ border: 0 !important;
1067
+ width: 100% !important;
1068
+ }
1069
+
1070
+ .active-cell {
1071
+ outline: none !important;
1072
+ box-shadow: inset 0 0 0 1.5px #007cf5;
1073
+ }
1074
+
1075
+ span[inlineSVG] {
1076
+ width: 16px;
1077
+ height: 16px;
1078
+ display: inline-block;
1079
+ }
1080
+
1081
+ .cell {
1082
+ .dropdown-menu {
1083
+ min-width: unset !important;
1084
+
1085
+ .item {
1086
+ transition: background-color 0.3s ease;
1087
+ display: flex;
1088
+ align-items: center;
1089
+ user-select: none;
1090
+
1091
+ &:hover {
1092
+ background-color: aliceblue;
1093
+ }
1094
+ }
1095
+ }
1096
+
1097
+ .cell-editin-dropdown {
1098
+ scrollbar-width: thin !important;
1099
+ user-select: none;
1100
+ }
1101
+ }
1102
+
1103
+ .fw-semibold {
1104
+ font-weight: 500 !important;
1105
+ }
1106
+
1107
+ :host ::ng-deep .three-dots-col-menu svg,
1108
+ :host ::ng-deep .three-dots-col-menu svg path {
1109
+ // fill: #000 !important;
1110
+ stroke: #000 !important;
1111
+ // stroke-width: 2px !important;
1112
+ }
1113
+
1114
+ .fs-7 {
1115
+ font-size: 12px !important;
1116
+ }
1117
+
1118
+ .fs-8 {
1119
+ font-size: 10px !important;
1120
+ }
1121
+
1122
+ .all-filters-reset-button:hover {
1123
+ opacity: 0.7;
1124
+ }
1125
+
1126
+ // Full text template
1127
+
1128
+ .full-text-box {
1129
+ background: #fff;
1130
+ position: relative;
1131
+ display: flex;
1132
+ align-items: center;
1133
+ justify-content: center;
1134
+ z-index: 1050;
1135
+ border: 1px solid #dedede;
1136
+ border-radius: 8px;
1137
+ padding: 12px 14px;
1138
+ box-shadow: 0px 2px 8px 0px #00000026;
1139
+ }
1140
+
1141
+ .full-text-content {
1142
+ border-radius: 8px;
1143
+ max-width: 600px;
1144
+ max-height: 70vh;
1145
+ overflow: auto;
1146
+ white-space: pre-wrap;
1147
+ }
1148
+
1149
+ .pic {
1150
+ border-radius: 50%;
1151
+ display: flex;
1152
+ align-items: center;
1153
+ justify-content: center;
1154
+ font-size: 22px;
1155
+ }
1156
+
1157
+ .pic-comb2 {
1158
+ background-color: #fbe7bf;
1159
+ color: #fd7f31;
1160
+ }
1161
+
1162
+ .pic-comb1 {
1163
+ background-color: #d9ecbf;
1164
+ color: #65b500;
1165
+ }
1166
+
1167
+ .pic-comb4 {
1168
+ background-color: #fdd3d7;
1169
+ color: #f64e60;
1170
+ }
1171
+
1172
+ .w-40px {
1173
+ width: 40px;
1174
+ }
1175
+
1176
+ .h-40px {
1177
+ height: 40px;
1178
+ }
1179
+
1180
+ .pic {
1181
+ border-radius: 50%;
1182
+ overflow: hidden;
1183
+ }
1184
+
1185
+ .image-placeholder {
1186
+ .pic {
1187
+ font-size: 14px;
1188
+ font-weight: 600;
1189
+ letter-spacing: 0.5px;
1190
+ }
1191
+ }
1192
+
1193
+ .header-cell {
1194
+ font-weight: 600;
1195
+ }
1196
+
1197
+ .header-cell,
1198
+ .cell {
1199
+ box-sizing: border-box;
1200
+ }
1201
+
1202
+ .transparent-border-right {
1203
+ border-right: 1px solid transparent !important;
1204
+ }
1205
+
1206
+ .resizing-highlight {
1207
+ position: relative;
1208
+ }
1209
+
1210
+ .resizing-highlight::before {
1211
+ content: "";
1212
+ position: absolute;
1213
+ top: -1px;
1214
+ right: -1px;
1215
+ width: 2px;
1216
+ height: calc(100% + 2px);
1217
+ background: #7cb9f6;
1218
+ z-index: 1000;
1219
+ pointer-events: none;
1220
+ }
1221
+
1222
+ .resizing-highlight-right {
1223
+ position: relative;
1224
+ }
1225
+
1226
+ .resizing-highlight-right::before {
1227
+ content: "";
1228
+ position: absolute;
1229
+ top: -1px;
1230
+ left: -1px;
1231
+ width: 2px;
1232
+ height: calc(100% + 2px);
1233
+ background: #7cb9f6;
1234
+ z-index: 1000;
1235
+ pointer-events: none;
1236
+ }
1237
+
1238
+ .resizing-highlight-right:first-child {
1239
+ width: 1px;
1240
+ }
1241
+
1242
+ .editable-header {
1243
+ border-bottom: 1px dashed #666;
1244
+ }
1245
+
1246
+ .muted-text {
1247
+ color: #727272 !important;
1248
+ }
1249
+
1250
+ .context-menu {
1251
+ position: fixed;
1252
+ display: none;
1253
+ background: white;
1254
+ border: 1px solid #dcdcdc;
1255
+ box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
1256
+ z-index: 1000;
1257
+ width: 150px;
1258
+ border-radius: 8px;
1259
+ font-weight: 600;
1260
+ }
1261
+
1262
+ .context-menu.show {
1263
+ display: block;
1264
+ }
1265
+
1266
+ .context-menu ul {
1267
+ list-style: none;
1268
+ margin: 0;
1269
+ padding: 0;
1270
+ }
1271
+
1272
+ .context-menu li {
1273
+ padding: 10px;
1274
+ cursor: pointer;
1275
+ color: #99a1b7;
1276
+
1277
+ ::ng-deep svg {
1278
+ width: 16px;
1279
+ height: 16px;
1280
+ display: inline-block;
1281
+ color: #727272;
1282
+ }
1283
+
1284
+ ::ng-deep svg path {
1285
+ stroke: #727272;
1286
+ }
1287
+ }
1288
+
1289
+ .context-menu li:hover {
1290
+ background-color: #f0f0f5 !important;
1291
+ }
1292
+
1293
+ .invisible {
1294
+ visibility: hidden !important;
1295
+ }
1296
+
1297
+ .fw-500 {
1298
+ font-weight: 500 !important;
1299
+ }
1300
+
1301
+ .taskbar {
1302
+ position: fixed;
1303
+ // bottom: 0;
1304
+ // left: 45%;
1305
+ // right: 50%;
1306
+ display: flex;
1307
+ justify-content: center;
1308
+ z-index: 1000;
1309
+ // padding: 36px;
1310
+
1311
+ .action-btn {
1312
+ transition: opacity text-decoration 0.3s ease;
1313
+
1314
+ &:hover {
1315
+ text-decoration: underline;
1316
+ opacity: 0.8;
1317
+ }
1318
+ }
1319
+
1320
+ .delete {
1321
+ color: rgb(234, 0, 0);
1322
+ }
1323
+ }
1324
+
1325
+ .selected-count,
1326
+ .action-btn,
1327
+ .dropdown-content a {
1328
+ font-weight: 500;
1329
+ font-size: 14px;
1330
+ }
1331
+
1332
+ .selected-rows-action-bar {
1333
+ background-color: #1a1a1a;
1334
+ color: white;
1335
+ padding: 4px 24px;
1336
+ border-radius: 8px;
1337
+ display: flex;
1338
+ align-items: center;
1339
+ justify-content: space-between;
1340
+ gap: 24px;
1341
+ box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
1342
+
1343
+ .btn:active,
1344
+ .btn:focus {
1345
+ outline: 0 !important;
1346
+ border: 0 !important;
1347
+ border-color: transparent !important;
1348
+ }
1349
+
1350
+ .action-btn {
1351
+ color: #fff !important;
1352
+ }
1353
+ }
1354
+
1355
+ .cell {
1356
+
1357
+ .dropdown-menu,
1358
+ .form-select {
1359
+ color: #000 !important;
1360
+ }
1361
+
1362
+ input {
1363
+ color: #000 !important;
1364
+ }
1365
+
1366
+ input::placeholder {
1367
+ color: #727272 !important;
1368
+ }
1369
+
1370
+ .badge {
1371
+ border-radius: 50px !important;
1372
+ height: 26px;
1373
+ align-items: center;
1374
+ }
1375
+
1376
+ .badge-danger {
1377
+ color: #ea5353 !important;
1378
+ border: 1px solid #ea5353 !important;
1379
+ background-color: #ff00000d !important;
1380
+ }
1381
+
1382
+ .badge-success {
1383
+ background-color: #84ca8130 !important;
1384
+ border: 1.5px solid rgb(70, 227, 114) !important;
1385
+ color: rgb(70, 227, 114) !important;
1386
+ }
1387
+
1388
+ .badge-warning {
1389
+ background-color: #fff3dc !important;
1390
+ color: orange !important;
1391
+ border: 1px solid #ffa000 !important;
1392
+ }
1393
+
1394
+ .badge-info {
1395
+ color: #00bad1;
1396
+ background-color: #e8fbfd;
1397
+ border: 1px solid #00bad1;
1398
+ }
1399
+
1400
+ .badge-secondary {
1401
+ color: #6c757d;
1402
+ background-color: #f1f3f5;
1403
+ border: 1px solid #6c757d;
1404
+ }
1405
+
1406
+
1407
+ }
1408
+
1409
+ .header-tag ::ng-deep svg path {
1410
+ stroke: #727272 !important;
1411
+ }
1412
+
1413
+ .cross-secondary:hover {
1414
+ ::ng-deep svg path {
1415
+ stroke: #000 !important;
1416
+ }
1417
+ }
1418
+
1419
+ .disable-sorting {
1420
+ pointer-events: none;
1421
+ opacity: 0.5;
1422
+ }
1423
+
1424
+ .rows-grouping-top-container ::ng-deep .cdk-drag-placeholder {
1425
+ background-color: transparent !important;
1426
+ }
1427
+
1428
+ input.is-invalid:focus {
1429
+ border: 2.5px solid red !important;
1430
+ outline: none;
1431
+ }
1432
+
1433
+ .table-cell input.is-invalid:focus {
1434
+ border: 2.5px solid red !important;
1435
+ outline-color: red !important;
1436
+ outline: none !important;
1437
+ box-shadow: none !important;
1438
+ }
1439
+
1440
+ .active-for-editing:has(input.is-invalid:focus) {
1441
+ outline: none !important;
1442
+ box-shadow: none !important;
1443
+ border: 0 !important;
1444
+ }
1445
+
1446
+ .selected-cell,
1447
+ .row-selected {
1448
+ background-color: #c2e0fe;
1449
+ }
1450
+
1451
+ // .row-selected{
1452
+ // background-color: #8ac5ff !important;
1453
+ // // border-right: 1px solid blue !important;
1454
+ // }
1455
+
1456
+ .first-row-selected {
1457
+ border-top: 2px solid #2196f3 !important;
1458
+ }
1459
+
1460
+ .last-row-selected {
1461
+ border-bottom: 2px solid #2196f3 !important;
1462
+ }
1463
+
1464
+ .left-selection-border {
1465
+ border-left: 2px solid #2196f3 !important;
1466
+ }
1467
+
1468
+ .s-no {
1469
+ font-size: 14px;
1470
+ font-weight: 500;
1471
+ }
1472
+
1473
+ .top-border {
1474
+ border-top: 2px solid #2196f3 !important;
1475
+ }
1476
+
1477
+ .bottom-border {
1478
+ border-bottom: 2px solid #2196f3 !important;
1479
+ }
1480
+
1481
+ .left-border {
1482
+ border-left: 2px solid #2196f3 !important;
1483
+ }
1484
+
1485
+ .border-left {
1486
+ border-left: 1px solid $border-color;
1487
+ }
1488
+
1489
+ .right-border {
1490
+ border-right: 2px solid #2196f3 !important;
1491
+ }
1492
+
1493
+ /* Optional: Corner styling */
1494
+ .top-left-corner {
1495
+ border-top-left-radius: 4px;
1496
+ }
1497
+
1498
+ .top-right-corner {
1499
+ border-top-right-radius: 4px;
1500
+ }
1501
+
1502
+ .bottom-left-corner {
1503
+ border-bottom-left-radius: 4px;
1504
+ }
1505
+
1506
+ .bottom-right-corner {
1507
+ border-bottom-right-radius: 4px;
1508
+ }
1509
+
1510
+ .flash-bg {
1511
+ animation: flashAnim 1000s ease;
1512
+ }
1513
+
1514
+ @keyframes flashAnim {
1515
+ 0% {
1516
+ background-color: #48a2fc;
1517
+ }
1518
+
1519
+ 50% {
1520
+ background-color: #c2e0fe;
1521
+ }
1522
+
1523
+ 100% {
1524
+ background-color: #c2e0fe;
1525
+ }
1526
+ }
1527
+
1528
+ .cut-flash-bg {
1529
+ animation: cut-flash 0.8s ease;
1530
+ }
1531
+
1532
+ @keyframes cut-flash {
1533
+ 0% {
1534
+ background-color: rgba(255, 0, 0, 0.4);
1535
+ }
1536
+
1537
+ 50% {
1538
+ background-color: rgba(255, 0, 0, 0.8);
1539
+ }
1540
+
1541
+ 100% {
1542
+ background-color: #c2e0fe;
1543
+ }
1544
+ }
1545
+
1546
+ .accordion-details .center-section .table .tbody .tr:hover .td {
1547
+ background-color: aliceblue !important;
1548
+ }
1549
+
1550
+ .editing-dropdown-search-input input:focus {
1551
+ border: 1px solid #86b7fe !important;
1552
+ }
1553
+
1554
+ .nested-table {
1555
+ .thead {
1556
+ position: sticky;
1557
+ top: 0;
1558
+ }
1559
+ }
1560
+
1561
+
1562
+ .dropdown-wrapper {
1563
+ position: relative;
1564
+ display: inline-block;
1565
+ }
1566
+
1567
+ .btn-icon {
1568
+ background: transparent;
1569
+ border: 0;
1570
+ padding: .25rem .5rem;
1571
+ cursor: pointer;
1572
+ }
1573
+
1574
+ .custom-dropdown-menu {
1575
+ position: absolute;
1576
+ right: 0;
1577
+ top: calc(100% + 6px);
1578
+ min-width: 200px;
1579
+ list-style: none;
1580
+ margin: 0;
1581
+ padding: .25rem 0;
1582
+ background: #fff !important;
1583
+ border: 1px solid rgba(0, 0, 0, 0.08);
1584
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
1585
+ border-radius: .35rem;
1586
+ z-index: 1200;
1587
+ }
1588
+
1589
+ .custom-dropdown-menu .dropdown-item {
1590
+ display: block;
1591
+ width: 100%;
1592
+ padding: .5rem 1rem;
1593
+ text-align: left;
1594
+ background: transparent;
1595
+ border: none;
1596
+ }
1597
+
1598
+ .custom-dropdown-menu .dropdown-item:hover {
1599
+ background: rgba(0, 0, 0, 0.03);
1600
+ }
1601
+
1602
+ .confirm-block {
1603
+ padding: 0;
1604
+ }
1605
+
1606
+ .center-nested-table {
1607
+ .tr:hover {
1608
+ .td {
1609
+ background-color: aliceblue;
1610
+ }
1611
+ }
1612
+ }
1613
+
1614
+ .table ::ng-deep .cdk-drag-placeholder {
1615
+ background-color: #fff !important;
1616
+ }
1617
+
1618
+ .assets-pic {
1619
+ border-radius: 8px !important;
1620
+ }
1621
+
1622
+ .fullscreen-overlay {
1623
+ position: fixed;
1624
+ top: 0;
1625
+ left: 0;
1626
+ width: 100vw;
1627
+ height: 100vh;
1628
+ background: rgba(0, 0, 0, 0.8);
1629
+ display: flex;
1630
+ align-items: center;
1631
+ justify-content: center;
1632
+ z-index: 1000;
1633
+ cursor: zoom-out;
1634
+ }
1635
+
1636
+ .fullscreen-img {
1637
+ max-width: 90%;
1638
+ max-height: 90%;
1639
+ border-radius: 8px;
1640
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
1641
+ }
1642
+
1643
+ .position-sticky {
1644
+ z-index: 2;
1645
+ }
1646
+
1647
+ .viewport {
1648
+ display: block !important;
1649
+ overflow: visible !important;
1650
+ // width: 100% !important;
1651
+ }
1652
+
1653
+ .nested-table ::ng-deep .cdk-virtual-scroll-content-wrapper {
1654
+ padding: 0 !important;
1655
+ }
1656
+
1657
+ .nested-table ::ng-deep .cdk-virtual-scroll-viewport {
1658
+ overflow-x: hidden !important;
1659
+ }
1660
+
1661
+ .disabled-search-input {
1662
+ background-color: #f5f5f5;
1663
+ cursor: pointer !important;
1664
+ }
1665
+
1666
+ .right-click-menu-icons ::ng-deep svg {
1667
+ path {
1668
+ stroke-width: 2 !important;
1669
+ }
1670
+ }
1671
+
1672
+
1673
+ .loader {
1674
+ animation: rotate 1s infinite;
1675
+ height: 50px;
1676
+ width: 50px;
1677
+ }
1678
+
1679
+ .loader:before,
1680
+ .loader:after {
1681
+ border-radius: 50%;
1682
+ content: "";
1683
+ display: block;
1684
+ height: 20px;
1685
+ width: 20px;
1686
+ }
1687
+
1688
+ .loader:before {
1689
+ animation: ball1 1s infinite;
1690
+ background-color: #fff;
1691
+ box-shadow: 30px 0 0 #ff3d00;
1692
+ margin-bottom: 10px;
1693
+ }
1694
+
1695
+ .loader:after {
1696
+ animation: ball2 1s infinite;
1697
+ background-color: #ff3d00;
1698
+ box-shadow: 30px 0 0 #fff;
1699
+ }
1700
+
1701
+ @keyframes rotate {
1702
+ 0% {
1703
+ transform: rotate(0deg) scale(0.8)
1704
+ }
1705
+
1706
+ 50% {
1707
+ transform: rotate(360deg) scale(1.2)
1708
+ }
1709
+
1710
+ 100% {
1711
+ transform: rotate(720deg) scale(0.8)
1712
+ }
1713
+ }
1714
+
1715
+ @keyframes ball1 {
1716
+ 0% {
1717
+ box-shadow: 30px 0 0 #ff3d00;
1718
+ }
1719
+
1720
+ 50% {
1721
+ box-shadow: 0 0 0 #ff3d00;
1722
+ margin-bottom: 0;
1723
+ transform: translate(15px, 15px);
1724
+ }
1725
+
1726
+ 100% {
1727
+ box-shadow: 30px 0 0 #ff3d00;
1728
+ margin-bottom: 10px;
1729
+ }
1730
+ }
1731
+
1732
+ @keyframes ball2 {
1733
+ 0% {
1734
+ box-shadow: 30px 0 0 #fff;
1735
+ }
1736
+
1737
+ 50% {
1738
+ box-shadow: 0 0 0 #fff;
1739
+ margin-top: -20px;
1740
+ transform: translate(15px, 15px);
1741
+ }
1742
+
1743
+ 100% {
1744
+ box-shadow: 30px 0 0 #fff;
1745
+ margin-top: 0;
1746
+ }
1747
+ }
1748
+
1749
+ .rows-grouping-top-container ::ng-deep .cdk-drag-placeholder {
1750
+ opacity: 0.7 !important;
1751
+ }
1752
+
1753
+ .action-button {
1754
+ background-color: #6F61CF !important;
1755
+ color: white !important;
1756
+ border-radius: 6px !important;
1757
+ font-weight: 500 !important;
1758
+ margin-top: -4px;
1759
+
1760
+ &:hover {
1761
+ background-color: #6a5fb3 !important;
1762
+ }
1763
+
1764
+ // :host ::ng-deep .data-grid-svg-icon {
1765
+ // width: 16px;
1766
+ // height: 16px;
1767
+ // display: inline-block;
1768
+ // vertical-align: middle;
1769
+ // }
1770
+
1771
+ // :host ::ng-deep .data-grid-svg-icon svg {
1772
+ // width: 100%;
1773
+ // height: 100%;
1774
+ // fill: white !important;
1775
+ // color: white !important;
1776
+ // }
1777
+
1778
+ }
1779
+
1780
+ .action-buttons-row {
1781
+ .button {
1782
+ display: inline-flex;
1783
+ align-items: center;
1784
+ justify-content: center;
1785
+ overflow: hidden;
1786
+ color: white;
1787
+ border-radius: 6px;
1788
+ height: 34px;
1789
+ padding: 0 10px;
1790
+ white-space: nowrap;
1791
+ transition: max-width 0.4s ease, background-color 0.3s ease;
1792
+ max-width: 40px;
1793
+ background-color: transparent;
1794
+ border: 1px solid #6F61CF;
1795
+
1796
+ &:Active,
1797
+ &:focus {
1798
+
1799
+ // background-color: transparent !important;
1800
+ ::ng-deep .svg-icon svg path {
1801
+ // fill: #ffffff;
1802
+ stroke: #ffffff;
1803
+ }
1804
+ }
1805
+ }
1806
+
1807
+ .button .label-hidden {
1808
+ opacity: 0;
1809
+ margin-left: 8px;
1810
+ transition: opacity 0.3s ease;
1811
+ pointer-events: none;
1812
+ }
1813
+
1814
+ .button:hover {
1815
+ max-width: 200px;
1816
+ background-color: #6F61CF;
1817
+ }
1818
+
1819
+ .button:hover .label-hidden {
1820
+ opacity: 1;
1821
+ pointer-events: auto;
1822
+ margin-left: 8px !important;
1823
+ }
1824
+
1825
+ ::ng-deep .button .svg-icon svg path {
1826
+ // fill: #6F61CF;
1827
+ stroke: #6F61CF;
1828
+ transition: fill 0.3s ease, stroke 0.3s ease;
1829
+ }
1830
+
1831
+ ::ng-deep .button:hover .svg-icon svg path {
1832
+ // fill: #ffffff !important;
1833
+ stroke: #ffffff !important;
1834
+ }
1835
+
1836
+ }
1837
+
1838
+ ::ng-deep .nav-tabs .nav-link {
1839
+ border: none !important;
1840
+ border-bottom: 2px solid transparent !important;
1841
+ border-radius: 0 !important;
1842
+ background: transparent !important;
1843
+ }
1844
+
1845
+ ::ng-deep .nav-tabs .nav-link:hover,
1846
+ ::ng-deep .nav-tabs .nav-link:focus {
1847
+ border: none !important;
1848
+ border-bottom: 2px solid transparent !important;
1849
+ outline: none !important;
1850
+ background: transparent !important;
1851
+ }
1852
+
1853
+ ::ng-deep .nav-tabs .nav-link.active {
1854
+ border: none !important;
1855
+ border-bottom: 2px solid var(--bs-primary) !important;
1856
+ /* customize color */
1857
+ background: transparent !important;
1858
+ color: var(--bs-primary) !important;
1859
+ }
1860
+
1861
+ .open-top {
1862
+ top: -150% !important;
1863
+ }
1864
+
1865
+ .muted {
1866
+ color: #7a7a7a !important;
1867
+ }
1868
+
1869
+ .item-title {
1870
+ font-size: 1.2em;
1871
+ font-weight: bold;
1872
+ margin-bottom: 10px;
1873
+ }
1874
+
1875
+
1876
+ .item-image {
1877
+ width: 100%;
1878
+ border-radius: 10px;
1879
+ }
1880
+
1881
+ .comment {
1882
+ display: flex;
1883
+ align-items: center;
1884
+ margin-bottom: 10px;
1885
+ }
1886
+
1887
+ .comment-avatar {
1888
+ width: 40px;
1889
+ height: 40px;
1890
+ border-radius: 50%;
1891
+ margin-right: 10px;
1892
+ }
1893
+
1894
+ .comment-author {
1895
+ font-weight: bold;
1896
+ }
1897
+
1898
+ .comment-content {
1899
+ font-size: 0.9em;
1900
+ line-height: 1.4;
1901
+ }
1902
+
1903
+ .comment-timestamp {
1904
+ font-size: 0.8em;
1905
+ color: #888;
1906
+ margin-left: auto;
1907
+ }
1908
+
1909
+ .des_low{
1910
+ text-overflow: ellipsis;
1911
+ white-space: nowrap;
1912
+ overflow: hidden;
1913
+ width: 242px;
1914
+ display: block;
1915
+ text-transform: capitalize !important;
1916
+ }
1917
+
1918
+ .firstDiv{
1919
+ word-break: break-word;
1920
+ overflow-wrap: break-word;
1921
+ white-space: normal;
1922
+ }
1923
+
1924
+ .container {
1925
+ display: flex;
1926
+ flex-wrap: wrap;
1927
+ margin: 20px;
1928
+ gap: 20px;
1929
+ background-color: #fff;
1930
+ padding: 20px;
1931
+ border-radius: 10px;
1932
+ }
1933
+
1934
+ .item {
1935
+ width: calc(33.33% - 20px);
1936
+ background-color: #fff;
1937
+ padding: 20px;
1938
+ border-radius: 10px;
1939
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
1940
+ }
1941
+ .forCommentImg {
1942
+ width: 70px;
1943
+ border-radius: 16px;
1944
+ margin: 8px 0;
1945
+ cursor: pointer;
1946
+ }
1947
+ .image-modal img {
1948
+ max-width: 90%;
1949
+ max-height: 90%;
1950
+ border-radius: 8px;
1951
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
1952
+ }
1953
+ .full-image-modal {
1954
+ position: fixed;
1955
+ // top: 0;
1956
+ // left: 0;
1957
+ // width: 100%;
1958
+ // height: 100%;
1959
+ background: rgba(0, 0, 0, 0.8);
1960
+ display: flex;
1961
+ justify-content: center;
1962
+ align-items: center;
1963
+ z-index: 1000;
1964
+ .full-image {
1965
+ max-width: 90%;
1966
+ max-height: 90%;
1967
+ border-radius: 8px;
1968
+ box-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
1969
+ }
1970
+ }
1971
+
1972
+ .item-content {
1973
+ font-size: 14px;
1974
+ line-height: 1.5;
1975
+ max-height: 220px;
1976
+ overflow-y: auto;
1977
+ }
1978
+
1979
+ .image-modal.full-image-modal {
1980
+ position: fixed;
1981
+ // top: 0;
1982
+ // left: 0;
1983
+ width: 100vw;
1984
+ height: 100vh;
1985
+ background-color: rgba(0, 0, 0, 0.8); /* semi-transparent dark overlay */
1986
+ display: flex;
1987
+ justify-content: center;
1988
+ align-items: center;
1989
+ z-index: 9999; /* ensure it’s on top of everything */
1990
+ overflow: hidden; /* disable scroll inside */
1991
+ cursor: zoom-out; /* indicate you can click to close */
1992
+ }
1993
+
1994
+ .image-modal.full-image-modal img {
1995
+ // max-width: 90vw;
1996
+ // max-height: 90vh;
1997
+ border-radius: 8px;
1998
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
1999
+ object-fit: contain;
2000
+ transition: transform 0.3s ease;
2001
+ }
2002
+
2003
+ .image-modal.full-image-modal img:hover {
2004
+ transform: scale(1.02);
2005
+ }