ms-data-grid 0.0.57 → 0.0.59

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 (64) hide show
  1. package/ng-package.json +18 -0
  2. package/package.json +38 -51
  3. package/src/lib/css/bootstrap.css +12043 -0
  4. package/src/lib/data-grid/animations.ts +267 -0
  5. package/src/lib/data-grid/data-grid.component.html +5724 -0
  6. package/src/lib/data-grid/data-grid.component.scss +2126 -0
  7. package/src/lib/data-grid/data-grid.component.spec.ts +28 -0
  8. package/src/lib/data-grid/data-grid.component.ts +5780 -0
  9. package/src/lib/data-grid/statuses.ts +49 -0
  10. package/src/lib/data-grid.module.ts +21 -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/cell-render-init.directive.spec.ts +11 -0
  14. package/src/lib/directives/cell-render-init.directive.ts +65 -0
  15. package/src/lib/directives/cellHost.directive.spec.ts +11 -0
  16. package/src/lib/directives/cellHost.directive.ts +10 -0
  17. package/src/lib/directives/draggable-header.directive.spec.ts +11 -0
  18. package/src/lib/directives/draggable-header.directive.ts +172 -0
  19. package/src/lib/pipes/filter.pipe.spec.ts +11 -0
  20. package/src/lib/pipes/filter.pipe.ts +22 -0
  21. package/src/lib/services/cell-selection.service.spec.ts +16 -0
  22. package/src/lib/services/cell-selection.service.ts +205 -0
  23. package/src/lib/services/common.service.spec.ts +16 -0
  24. package/src/lib/services/common.service.ts +306 -0
  25. package/src/lib/services/copy-service.service.spec.ts +16 -0
  26. package/src/lib/services/copy-service.service.ts +252 -0
  27. package/src/lib/services/drag-drp.service.spec.ts +16 -0
  28. package/src/lib/services/drag-drp.service.ts +58 -0
  29. package/src/lib/services/export.service.spec.ts +16 -0
  30. package/src/lib/services/export.service.ts +189 -0
  31. package/src/lib/services/split-columns.service.spec.ts +16 -0
  32. package/src/lib/services/split-columns.service.ts +148 -0
  33. package/src/lib/services/swap-columns.service.spec.ts +16 -0
  34. package/src/lib/services/swap-columns.service.ts +162 -0
  35. package/{public-api.d.ts → src/public-api.ts} +6 -2
  36. package/src/typings.d.ts +4 -0
  37. package/tsconfig.lib.json +19 -0
  38. package/tsconfig.lib.prod.json +10 -0
  39. package/tsconfig.spec.json +14 -0
  40. package/esm2022/lib/data-grid/data-grid.component.mjs +0 -5068
  41. package/esm2022/lib/data-grid/statuses.mjs +0 -45
  42. package/esm2022/lib/data-grid.module.mjs +0 -27
  43. package/esm2022/lib/directives/cell-render-init.directive.mjs +0 -67
  44. package/esm2022/lib/directives/cellHost.directive.mjs +0 -16
  45. package/esm2022/lib/pipes/filter.pipe.mjs +0 -28
  46. package/esm2022/lib/services/common.service.mjs +0 -259
  47. package/esm2022/lib/services/copy-service.service.mjs +0 -222
  48. package/esm2022/lib/services/export.service.mjs +0 -149
  49. package/esm2022/lib/services/split-columns.service.mjs +0 -143
  50. package/esm2022/ms-data-grid.mjs +0 -5
  51. package/esm2022/public-api.mjs +0 -6
  52. package/fesm2022/ms-data-grid.mjs +0 -6005
  53. package/fesm2022/ms-data-grid.mjs.map +0 -1
  54. package/index.d.ts +0 -5
  55. package/lib/data-grid/data-grid.component.d.ts +0 -564
  56. package/lib/data-grid/statuses.d.ts +0 -3
  57. package/lib/data-grid.module.d.ts +0 -15
  58. package/lib/directives/cell-render-init.directive.d.ts +0 -18
  59. package/lib/directives/cellHost.directive.d.ts +0 -8
  60. package/lib/pipes/filter.pipe.d.ts +0 -7
  61. package/lib/services/common.service.d.ts +0 -18
  62. package/lib/services/copy-service.service.d.ts +0 -14
  63. package/lib/services/export.service.d.ts +0 -24
  64. package/lib/services/split-columns.service.d.ts +0 -9
@@ -0,0 +1,2126 @@
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: absolute;
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
+ display: flex !important;
721
+ align-items: center !important;
722
+
723
+ span {
724
+ margin-top: -4px !important;
725
+ }
726
+
727
+ input {
728
+ padding-left: 28px;
729
+ border-radius: 8px !important;
730
+
731
+ &:focus {
732
+ outline: none !important;
733
+ box-shadow: none !important;
734
+ }
735
+ }
736
+ }
737
+
738
+ .active .top-icon {
739
+ ::ng-deep svg path {
740
+ stroke: #007cf5 !important;
741
+ }
742
+ }
743
+
744
+ .dropdown-menu {
745
+ background-color: #fff !important;
746
+ border: 1px solid $border-color !important;
747
+ border-radius: 8px !important;
748
+ }
749
+
750
+ .custom-menu {
751
+ width: 220px;
752
+ border-radius: 8px;
753
+ padding: 4px 0;
754
+ background-color: #fff;
755
+ }
756
+
757
+ .custom-menu .dropdown-item {
758
+ font-size: 14px;
759
+ padding: 8px 14px;
760
+ }
761
+
762
+ .custom-menu .dropdown-item:hover {
763
+ background-color: #f5f5f5;
764
+ border-radius: 6px;
765
+ }
766
+
767
+ .table-layout {
768
+ right: 0;
769
+ background: #fff;
770
+ border-radius: 8px !important;
771
+ }
772
+
773
+ .actions-dropdown,
774
+ .table-layout,
775
+ .custom-menu,
776
+ .dropdown-menu {
777
+ background: white;
778
+ border-radius: 8px !important;
779
+ border: 1px solid #ccc !important;
780
+ background-color: #fff;
781
+ }
782
+
783
+ .preview-box {
784
+ width: 40px;
785
+ height: 10px;
786
+ border-radius: 3px;
787
+ background-color: transparent;
788
+ transition: background-color 0.2s ease-in-out;
789
+ }
790
+
791
+ .btn-check:checked+label .preview-box {
792
+ background-color: var(--bs-primary);
793
+ }
794
+
795
+ .preview-box {
796
+ width: 40px;
797
+ height: 10px;
798
+ border-radius: 3px;
799
+ border: 2px solid transparent;
800
+ transition: border-color 0.2s ease-in-out;
801
+ }
802
+
803
+ #small:checked+label .preview-box {
804
+ border-color: #007cf5 !important;
805
+ background-color: transparent !important;
806
+ }
807
+
808
+ #medium:checked+label .preview-box {
809
+ border-color: #007cf5 !important;
810
+ background-color: transparent !important;
811
+ }
812
+
813
+ #large:checked+label .preview-box {
814
+ border-color: #007cf5 !important;
815
+ background-color: transparent !important;
816
+ }
817
+
818
+ .btn-check:checked+.btn {
819
+ background-color: transparent !important;
820
+ border-color: #007cf5 !important;
821
+ }
822
+
823
+ .layout-button {
824
+ padding: 8px 28px !important;
825
+ width: 82px;
826
+ border-radius: 8px !important;
827
+ // color: #727272 !important;
828
+ }
829
+
830
+ .show-hide-table-label {
831
+ position: sticky;
832
+ top: 0px;
833
+ z-index: 99;
834
+ background: #fff;
835
+ }
836
+
837
+ .cursor-grap {
838
+ cursor: grabbing;
839
+ }
840
+
841
+ // Pagination Css
842
+
843
+ .pagination-container {
844
+ display: flex;
845
+ align-items: center;
846
+ gap: 12px;
847
+ font-size: 13px;
848
+ color: #333;
849
+ }
850
+
851
+ .page-size select {
852
+ padding: 3px 6px;
853
+ border: 1px solid #ccc;
854
+ border-radius: 6px;
855
+ background: #fff;
856
+ font-size: 13px;
857
+ }
858
+
859
+ .page-info {
860
+ margin-left: 10px;
861
+ }
862
+
863
+ .page-buttons {
864
+ display: flex;
865
+ gap: 4px;
866
+ margin-left: auto;
867
+ align-items: center;
868
+ }
869
+
870
+ .page-buttons button {
871
+ padding: 3px 8px;
872
+ border: 1px solid #ccc;
873
+ background: #fff;
874
+ border-radius: 4px;
875
+ cursor: pointer;
876
+ font-size: 13px;
877
+ line-height: 1.2;
878
+ }
879
+
880
+ .page-buttons button.active {
881
+ background: #eee;
882
+ font-weight: 600;
883
+ }
884
+
885
+ .page-buttons button:disabled {
886
+ opacity: 0.5;
887
+ cursor: not-allowed;
888
+ }
889
+
890
+ .page-buttons span {
891
+ padding: 0 6px;
892
+ color: #666;
893
+ }
894
+
895
+ .page-size .separator {
896
+ padding: 0 8px;
897
+ border-right: 1px solid #ccc;
898
+ /* vertical line */
899
+ margin-right: 8px;
900
+
901
+ /* space after line */
902
+ .actions-dropdown {
903
+ position: fixed;
904
+ right: 200px;
905
+ z-index: 1050;
906
+ background-color: #fff;
907
+ }
908
+ }
909
+
910
+ .fs-14px {
911
+ font-size: 14px;
912
+ }
913
+
914
+ .fs-12px {
915
+ font-size: 12px !important;
916
+ }
917
+
918
+ .save-preset-dropdown {
919
+ background: #fff;
920
+ color: #111 !important;
921
+ right: 0;
922
+ font-weight: 400 !important;
923
+ text-align: left !important;
924
+ max-width: 250px !important;
925
+ text-wrap: auto !important;
926
+ top: 14px;
927
+ font-size: 14px !important;
928
+ }
929
+
930
+ .add-filter-button {
931
+ // box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px 0px inset;
932
+ height: 28px;
933
+ cursor: pointer;
934
+ border-radius: 4px;
935
+
936
+ &:hover {
937
+ color: #000 !important;
938
+ // ::ng-deep svg path {
939
+ // stroke: black !important;
940
+ // }
941
+ }
942
+
943
+ // span {
944
+ // margin-top: -4px;
945
+ // }
946
+ }
947
+
948
+ .button-filter {
949
+ &:hover {
950
+ color: #000 !important;
951
+
952
+ ::ng-deep svg path {
953
+ stroke: black !important;
954
+ }
955
+ }
956
+ }
957
+
958
+ .table-layout {
959
+ .dropdown-item {
960
+ border-radius: 0 !important;
961
+ padding-inline: 16px !important;
962
+ font-size: 14px;
963
+ padding-block: 6px !important;
964
+
965
+ &:hover {
966
+ background-color: transparent !important;
967
+ }
968
+ }
969
+ }
970
+
971
+ .filter-serach-inpt {
972
+ max-height: 230px !important;
973
+ overflow: auto;
974
+ scrollbar-width: thin;
975
+ padding-top: 4px;
976
+ background-color: #f7f7f7;
977
+ border-color: #dedede;
978
+ border-radius: 8px;
979
+
980
+ .badge {
981
+ color: #007cf5 !important;
982
+ background-color: #e6f2ff !important;
983
+ border-radius: 8px !important;
984
+ padding: 8px !important;
985
+ font-weight: 500 !important;
986
+ font-size: 12px !important;
987
+ height: 24px !important;
988
+
989
+ ::ng-deep svg {
990
+ cursor: pointer;
991
+ }
992
+
993
+ ::ng-deep svg:hover path {
994
+ stroke: #040081 !important;
995
+ }
996
+ }
997
+
998
+ input {
999
+ background-color: #f7f7f7;
1000
+ padding: 0;
1001
+ height: 26px;
1002
+ margin-top: -5px;
1003
+ }
1004
+ }
1005
+
1006
+ .text-filter {
1007
+ select {
1008
+ border: 0;
1009
+
1010
+ option {
1011
+ font-size: 14px;
1012
+ font-weight: 500;
1013
+ }
1014
+
1015
+ &:focus {
1016
+ border: 0;
1017
+ }
1018
+ }
1019
+
1020
+ input:focus,
1021
+ select:focus {
1022
+ box-shadow: none !important;
1023
+ }
1024
+ }
1025
+
1026
+ .active-filters {
1027
+ background-color: #f7f7f7;
1028
+ white-space: nowrap;
1029
+ background: #f7f7f7;
1030
+ padding-inline: 8px;
1031
+ height: 28px;
1032
+ font-size: 14px;
1033
+ font-weight: 500;
1034
+ border-radius: 8px;
1035
+ box-shadow: none;
1036
+
1037
+ .header-tag {
1038
+ white-space: nowrap;
1039
+ }
1040
+ }
1041
+
1042
+ .filter-tags {
1043
+ .active {
1044
+ background-color: #e6f2ff;
1045
+
1046
+ .header-tag {
1047
+ color: #007cf5 !important;
1048
+ }
1049
+ }
1050
+ }
1051
+
1052
+ .table-cell {
1053
+ cursor: pointer;
1054
+ width: 100%;
1055
+
1056
+ input:focus {
1057
+ outline: 0 !important;
1058
+ border: 0 !important;
1059
+ width: 100% !important;
1060
+ box-shadow: none !important;
1061
+ }
1062
+ }
1063
+
1064
+ .active-for-editing {
1065
+ // border: 4px solid #007cf5 !important;
1066
+ outline: 2.5px solid #007cf5 !important;
1067
+ border-radius: 4px;
1068
+ border: 0 !important;
1069
+ width: 100% !important;
1070
+ }
1071
+
1072
+ .active-cell {
1073
+ outline: none !important;
1074
+ box-shadow: inset 0 0 0 1.5px #007cf5;
1075
+ }
1076
+
1077
+ span[inlineSVG] {
1078
+ width: 16px;
1079
+ height: 16px;
1080
+ display: inline-block;
1081
+ }
1082
+
1083
+ .cell {
1084
+ .dropdown-menu {
1085
+ min-width: unset !important;
1086
+
1087
+ .item {
1088
+ transition: background-color 0.3s ease;
1089
+ display: flex;
1090
+ align-items: center;
1091
+ user-select: none;
1092
+
1093
+ &:hover {
1094
+ background-color: aliceblue;
1095
+ }
1096
+ }
1097
+ }
1098
+
1099
+ .cell-editin-dropdown {
1100
+ scrollbar-width: thin !important;
1101
+ user-select: none;
1102
+ }
1103
+ }
1104
+
1105
+ .fw-semibold {
1106
+ font-weight: 500 !important;
1107
+ }
1108
+
1109
+ :host ::ng-deep .three-dots-col-menu svg,
1110
+ :host ::ng-deep .three-dots-col-menu svg path {
1111
+ // fill: #000 !important;
1112
+ stroke: #000 !important;
1113
+ // stroke-width: 2px !important;
1114
+ }
1115
+
1116
+ .fs-7 {
1117
+ font-size: 12px !important;
1118
+ }
1119
+
1120
+ .fs-8 {
1121
+ font-size: 10px !important;
1122
+ }
1123
+
1124
+ .all-filters-reset-button:hover {
1125
+ opacity: 0.7;
1126
+ }
1127
+
1128
+ // Full text template
1129
+
1130
+ .full-text-box {
1131
+ background: #fff;
1132
+ position: relative;
1133
+ display: flex;
1134
+ align-items: center;
1135
+ justify-content: center;
1136
+ z-index: 1050;
1137
+ border: 1px solid #dedede;
1138
+ border-radius: 8px;
1139
+ padding: 12px 14px;
1140
+ box-shadow: 0px 2px 8px 0px #00000026;
1141
+ }
1142
+
1143
+ .full-text-content {
1144
+ border-radius: 8px;
1145
+ // max-width: 600px;
1146
+ max-height: 70vh;
1147
+ overflow: auto;
1148
+ white-space: pre-wrap;
1149
+ }
1150
+
1151
+ .pic {
1152
+ border-radius: 50%;
1153
+ display: flex;
1154
+ align-items: center;
1155
+ justify-content: center;
1156
+ font-size: 22px;
1157
+ }
1158
+
1159
+ .pic-comb2 {
1160
+ background-color: #fbe7bf;
1161
+ color: #fd7f31;
1162
+ }
1163
+
1164
+ .pic-comb1 {
1165
+ background-color: #d9ecbf;
1166
+ color: #65b500;
1167
+ }
1168
+
1169
+ .pic-comb4 {
1170
+ background-color: #fdd3d7;
1171
+ color: #f64e60;
1172
+ }
1173
+
1174
+ .w-40px {
1175
+ width: 40px;
1176
+ }
1177
+
1178
+ .h-40px {
1179
+ height: 40px;
1180
+ }
1181
+
1182
+ .pic {
1183
+ border-radius: 50%;
1184
+ overflow: hidden;
1185
+ }
1186
+
1187
+ .image-placeholder {
1188
+ .pic {
1189
+ font-size: 14px;
1190
+ font-weight: 600;
1191
+ letter-spacing: 0.5px;
1192
+ }
1193
+ }
1194
+
1195
+ .header-cell {
1196
+ font-weight: 600;
1197
+ }
1198
+
1199
+ .header-cell,
1200
+ .cell {
1201
+ box-sizing: border-box;
1202
+ }
1203
+
1204
+ .transparent-border-right {
1205
+ border-right: 1px solid transparent !important;
1206
+ }
1207
+
1208
+ .resizing-highlight {
1209
+ position: relative;
1210
+ }
1211
+
1212
+ .resizing-highlight::before {
1213
+ content: "";
1214
+ position: absolute;
1215
+ top: -1px;
1216
+ right: -1px;
1217
+ width: 2px;
1218
+ height: calc(100% + 2px);
1219
+ background: #7cb9f6;
1220
+ z-index: 1000;
1221
+ pointer-events: none;
1222
+ }
1223
+
1224
+ .resizing-highlight-right {
1225
+ position: relative;
1226
+ }
1227
+
1228
+ .resizing-highlight-right::before {
1229
+ content: "";
1230
+ position: absolute;
1231
+ top: -1px;
1232
+ left: -1px;
1233
+ width: 2px;
1234
+ height: calc(100% + 2px);
1235
+ background: #7cb9f6;
1236
+ z-index: 1000;
1237
+ pointer-events: none;
1238
+ }
1239
+
1240
+ .resizing-highlight-right:first-child {
1241
+ width: 1px;
1242
+ }
1243
+
1244
+ .editable-header {
1245
+ border-bottom: 1px dashed #666;
1246
+ }
1247
+
1248
+ .muted-text {
1249
+ color: #727272 !important;
1250
+ }
1251
+
1252
+ .context-menu {
1253
+ position: fixed;
1254
+ display: none;
1255
+ background: white;
1256
+ border: 1px solid #dcdcdc;
1257
+ box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
1258
+ z-index: 1000;
1259
+ width: 150px;
1260
+ border-radius: 8px;
1261
+ font-weight: 600;
1262
+ }
1263
+
1264
+ .context-menu.show {
1265
+ display: block;
1266
+ }
1267
+
1268
+ .context-menu ul {
1269
+ list-style: none;
1270
+ margin: 0;
1271
+ padding: 0;
1272
+ }
1273
+
1274
+ .context-menu li {
1275
+ padding: 10px;
1276
+ cursor: pointer;
1277
+ color: #99a1b7;
1278
+
1279
+ ::ng-deep svg {
1280
+ width: 16px;
1281
+ height: 16px;
1282
+ display: inline-block;
1283
+ color: #727272;
1284
+ }
1285
+
1286
+ ::ng-deep svg path {
1287
+ stroke: #727272;
1288
+ }
1289
+ }
1290
+
1291
+ .context-menu li:hover {
1292
+ background-color: #f0f0f5 !important;
1293
+ }
1294
+
1295
+ .invisible {
1296
+ visibility: hidden !important;
1297
+ }
1298
+
1299
+ .fw-500 {
1300
+ font-weight: 500 !important;
1301
+ }
1302
+
1303
+ .taskbar {
1304
+ position: fixed;
1305
+ // bottom: 0;
1306
+ // left: 45%;
1307
+ // right: 50%;
1308
+ display: flex;
1309
+ justify-content: center;
1310
+ z-index: 1000;
1311
+ // padding: 36px;
1312
+
1313
+ .action-btn {
1314
+ transition: opacity text-decoration 0.3s ease;
1315
+
1316
+ &:hover {
1317
+ text-decoration: underline;
1318
+ opacity: 0.8;
1319
+ }
1320
+ }
1321
+
1322
+ .delete {
1323
+ color: rgb(234, 0, 0);
1324
+ }
1325
+ }
1326
+
1327
+ .selected-count,
1328
+ .action-btn,
1329
+ .dropdown-content a {
1330
+ font-weight: 500;
1331
+ font-size: 14px;
1332
+ }
1333
+
1334
+ .selected-rows-action-bar {
1335
+ background-color: #1a1a1a;
1336
+ color: white;
1337
+ padding: 4px 24px;
1338
+ border-radius: 8px;
1339
+ display: flex;
1340
+ align-items: center;
1341
+ justify-content: space-between;
1342
+ gap: 24px;
1343
+ box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
1344
+
1345
+ .btn:active,
1346
+ .btn:focus {
1347
+ outline: 0 !important;
1348
+ border: 0 !important;
1349
+ border-color: transparent !important;
1350
+ }
1351
+
1352
+ .action-btn {
1353
+ color: #fff !important;
1354
+ }
1355
+ }
1356
+
1357
+ .cell {
1358
+
1359
+ .dropdown-menu,
1360
+ .form-select {
1361
+ color: #000 !important;
1362
+ }
1363
+
1364
+ input {
1365
+ color: #000 !important;
1366
+ }
1367
+
1368
+ input::placeholder {
1369
+ color: #727272 !important;
1370
+ }
1371
+
1372
+ .badge {
1373
+ border-radius: 50px !important;
1374
+ height: 26px;
1375
+ align-items: center;
1376
+ }
1377
+
1378
+ .badge-danger {
1379
+ color: #ea5353 !important;
1380
+ border: 1px solid #ea5353 !important;
1381
+ background-color: #ff00000d !important;
1382
+ }
1383
+
1384
+ .badge-success {
1385
+ background-color: #84ca8130 !important;
1386
+ border: 1.5px solid rgb(70, 227, 114) !important;
1387
+ color: rgb(70, 227, 114) !important;
1388
+ }
1389
+
1390
+ .badge-warning {
1391
+ background-color: #fff3dc !important;
1392
+ color: orange !important;
1393
+ border: 1px solid #ffa000 !important;
1394
+ }
1395
+
1396
+ .badge-info {
1397
+ color: #00bad1;
1398
+ background-color: #e8fbfd;
1399
+ border: 1px solid #00bad1;
1400
+ }
1401
+
1402
+ .badge-secondary {
1403
+ color: #6c757d;
1404
+ background-color: #f1f3f5;
1405
+ border: 1px solid #6c757d;
1406
+ }
1407
+
1408
+
1409
+ }
1410
+
1411
+ .header-tag ::ng-deep svg path {
1412
+ stroke: #727272 !important;
1413
+ }
1414
+
1415
+ .cross-secondary:hover {
1416
+ ::ng-deep svg path {
1417
+ stroke: #000 !important;
1418
+ }
1419
+ }
1420
+
1421
+ .disable-sorting {
1422
+ pointer-events: none;
1423
+ opacity: 0.5;
1424
+ }
1425
+
1426
+ .rows-grouping-top-container ::ng-deep .cdk-drag-placeholder {
1427
+ background-color: transparent !important;
1428
+ }
1429
+
1430
+ input.is-invalid:focus {
1431
+ border: 2.5px solid red !important;
1432
+ outline: none;
1433
+ }
1434
+
1435
+ .table-cell input.is-invalid:focus {
1436
+ border: 2.5px solid red !important;
1437
+ outline-color: red !important;
1438
+ outline: none !important;
1439
+ box-shadow: none !important;
1440
+ }
1441
+
1442
+ .active-for-editing:has(input.is-invalid:focus) {
1443
+ outline: none !important;
1444
+ box-shadow: none !important;
1445
+ border: 0 !important;
1446
+ }
1447
+
1448
+ .selected-cell,
1449
+ .row-selected {
1450
+ background-color: #c2e0fe;
1451
+ }
1452
+
1453
+ // .row-selected{
1454
+ // background-color: #8ac5ff !important;
1455
+ // // border-right: 1px solid blue !important;
1456
+ // }
1457
+
1458
+ .first-row-selected {
1459
+ border-top: 2px solid #2196f3 !important;
1460
+ }
1461
+
1462
+ .last-row-selected {
1463
+ border-bottom: 2px solid #2196f3 !important;
1464
+ }
1465
+
1466
+ .left-selection-border {
1467
+ border-left: 2px solid #2196f3 !important;
1468
+ }
1469
+
1470
+ .s-no {
1471
+ font-size: 14px;
1472
+ font-weight: 500;
1473
+ }
1474
+
1475
+ .top-border {
1476
+ border-top: 2px solid #2196f3 !important;
1477
+ }
1478
+
1479
+ .bottom-border {
1480
+ border-bottom: 2px solid #2196f3 !important;
1481
+ }
1482
+
1483
+ .left-border {
1484
+ border-left: 2px solid #2196f3 !important;
1485
+ }
1486
+
1487
+ .border-left {
1488
+ border-left: 1px solid $border-color;
1489
+ }
1490
+
1491
+ .right-border {
1492
+ border-right: 2px solid #2196f3 !important;
1493
+ }
1494
+
1495
+ /* Optional: Corner styling */
1496
+ .top-left-corner {
1497
+ border-top-left-radius: 4px;
1498
+ }
1499
+
1500
+ .top-right-corner {
1501
+ border-top-right-radius: 4px;
1502
+ }
1503
+
1504
+ .bottom-left-corner {
1505
+ border-bottom-left-radius: 4px;
1506
+ }
1507
+
1508
+ .bottom-right-corner {
1509
+ border-bottom-right-radius: 4px;
1510
+ }
1511
+
1512
+ .flash-bg {
1513
+ animation: flashAnim 1000s ease;
1514
+ }
1515
+
1516
+ @keyframes flashAnim {
1517
+ 0% {
1518
+ background-color: #48a2fc;
1519
+ }
1520
+
1521
+ 50% {
1522
+ background-color: #c2e0fe;
1523
+ }
1524
+
1525
+ 100% {
1526
+ background-color: #c2e0fe;
1527
+ }
1528
+ }
1529
+
1530
+ .cut-flash-bg {
1531
+ animation: cut-flash 0.8s ease;
1532
+ }
1533
+
1534
+ @keyframes cut-flash {
1535
+ 0% {
1536
+ background-color: rgba(255, 0, 0, 0.4);
1537
+ }
1538
+
1539
+ 50% {
1540
+ background-color: rgba(255, 0, 0, 0.8);
1541
+ }
1542
+
1543
+ 100% {
1544
+ background-color: #c2e0fe;
1545
+ }
1546
+ }
1547
+
1548
+ .accordion-details .center-section .table .tbody .tr:hover .td {
1549
+ background-color: aliceblue !important;
1550
+ }
1551
+
1552
+ .editing-dropdown-search-input input:focus {
1553
+ border: 1px solid #86b7fe !important;
1554
+ }
1555
+
1556
+ .nested-table {
1557
+ .thead {
1558
+ position: sticky;
1559
+ top: 0;
1560
+ }
1561
+ }
1562
+
1563
+
1564
+ .dropdown-wrapper {
1565
+ position: relative;
1566
+ display: inline-block;
1567
+ }
1568
+
1569
+ .btn-icon {
1570
+ background: transparent;
1571
+ border: 0;
1572
+ padding: .25rem .5rem;
1573
+ cursor: pointer;
1574
+ }
1575
+
1576
+ .custom-dropdown-menu {
1577
+ position: absolute;
1578
+ right: 0;
1579
+ top: calc(100% + 6px);
1580
+ min-width: 200px;
1581
+ list-style: none;
1582
+ margin: 0;
1583
+ padding: .25rem 0;
1584
+ background: #fff !important;
1585
+ border: 1px solid rgba(0, 0, 0, 0.08);
1586
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
1587
+ border-radius: .35rem;
1588
+ z-index: 1200;
1589
+ }
1590
+
1591
+ .custom-dropdown-menu .dropdown-item {
1592
+ display: block;
1593
+ width: 100%;
1594
+ padding: .5rem 1rem;
1595
+ text-align: left;
1596
+ background: transparent;
1597
+ border: none;
1598
+ }
1599
+
1600
+ .custom-dropdown-menu .dropdown-item:hover {
1601
+ background: rgba(0, 0, 0, 0.03);
1602
+ }
1603
+
1604
+ .confirm-block {
1605
+ padding: 0;
1606
+ }
1607
+
1608
+ .center-nested-table {
1609
+ .tr:hover {
1610
+ .td {
1611
+ background-color: aliceblue;
1612
+ }
1613
+ }
1614
+ }
1615
+
1616
+ .table ::ng-deep .cdk-drag-placeholder {
1617
+ background-color: #fff !important;
1618
+ }
1619
+
1620
+ .assets-pic {
1621
+ border-radius: 8px !important;
1622
+ }
1623
+
1624
+ .fullscreen-overlay {
1625
+ position: fixed;
1626
+ top: 0;
1627
+ left: 0;
1628
+ width: 100vw;
1629
+ height: 100vh;
1630
+ background: rgba(0, 0, 0, 0.8);
1631
+ display: flex;
1632
+ align-items: center;
1633
+ justify-content: center;
1634
+ z-index: 1000;
1635
+ cursor: zoom-out;
1636
+ }
1637
+
1638
+ .fullscreen-img {
1639
+ max-width: 90%;
1640
+ max-height: 90%;
1641
+ border-radius: 8px;
1642
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
1643
+ }
1644
+
1645
+ .position-sticky {
1646
+ z-index: 2;
1647
+ }
1648
+
1649
+ .viewport {
1650
+ display: block !important;
1651
+ overflow: visible !important;
1652
+ // width: 100% !important;
1653
+ }
1654
+
1655
+ .nested-table ::ng-deep .cdk-virtual-scroll-content-wrapper {
1656
+ padding: 0 !important;
1657
+ }
1658
+
1659
+ .nested-table ::ng-deep .cdk-virtual-scroll-viewport {
1660
+ overflow-x: hidden !important;
1661
+ }
1662
+
1663
+ .disabled-search-input {
1664
+ background-color: #f5f5f5;
1665
+ cursor: pointer !important;
1666
+ }
1667
+
1668
+ .right-click-menu-icons ::ng-deep svg {
1669
+ path {
1670
+ stroke-width: 2 !important;
1671
+ }
1672
+ }
1673
+
1674
+
1675
+ .loader {
1676
+ animation: rotate 1s infinite;
1677
+ height: 50px;
1678
+ width: 50px;
1679
+ }
1680
+
1681
+ .loader:before,
1682
+ .loader:after {
1683
+ border-radius: 50%;
1684
+ content: "";
1685
+ display: block;
1686
+ height: 20px;
1687
+ width: 20px;
1688
+ }
1689
+
1690
+ .loader:before {
1691
+ animation: ball1 1s infinite;
1692
+ background-color: #fff;
1693
+ box-shadow: 30px 0 0 #ff3d00;
1694
+ margin-bottom: 10px;
1695
+ }
1696
+
1697
+ .loader:after {
1698
+ animation: ball2 1s infinite;
1699
+ background-color: #ff3d00;
1700
+ box-shadow: 30px 0 0 #fff;
1701
+ }
1702
+
1703
+ @keyframes rotate {
1704
+ 0% {
1705
+ transform: rotate(0deg) scale(0.8)
1706
+ }
1707
+
1708
+ 50% {
1709
+ transform: rotate(360deg) scale(1.2)
1710
+ }
1711
+
1712
+ 100% {
1713
+ transform: rotate(720deg) scale(0.8)
1714
+ }
1715
+ }
1716
+
1717
+ @keyframes ball1 {
1718
+ 0% {
1719
+ box-shadow: 30px 0 0 #ff3d00;
1720
+ }
1721
+
1722
+ 50% {
1723
+ box-shadow: 0 0 0 #ff3d00;
1724
+ margin-bottom: 0;
1725
+ transform: translate(15px, 15px);
1726
+ }
1727
+
1728
+ 100% {
1729
+ box-shadow: 30px 0 0 #ff3d00;
1730
+ margin-bottom: 10px;
1731
+ }
1732
+ }
1733
+
1734
+ @keyframes ball2 {
1735
+ 0% {
1736
+ box-shadow: 30px 0 0 #fff;
1737
+ }
1738
+
1739
+ 50% {
1740
+ box-shadow: 0 0 0 #fff;
1741
+ margin-top: -20px;
1742
+ transform: translate(15px, 15px);
1743
+ }
1744
+
1745
+ 100% {
1746
+ box-shadow: 30px 0 0 #fff;
1747
+ margin-top: 0;
1748
+ }
1749
+ }
1750
+
1751
+ .rows-grouping-top-container ::ng-deep .cdk-drag-placeholder {
1752
+ opacity: 0.7 !important;
1753
+ }
1754
+
1755
+ .action-button {
1756
+ background-color: #6F61CF !important;
1757
+ color: white !important;
1758
+ border-radius: 6px !important;
1759
+ font-weight: 500 !important;
1760
+ margin-top: -4px;
1761
+
1762
+ &:hover {
1763
+ background-color: #6a5fb3 !important;
1764
+ }
1765
+
1766
+ // :host ::ng-deep .data-grid-svg-icon {
1767
+ // width: 16px;
1768
+ // height: 16px;
1769
+ // display: inline-block;
1770
+ // vertical-align: middle;
1771
+ // }
1772
+
1773
+ // :host ::ng-deep .data-grid-svg-icon svg {
1774
+ // width: 100%;
1775
+ // height: 100%;
1776
+ // fill: white !important;
1777
+ // color: white !important;
1778
+ // }
1779
+
1780
+ }
1781
+
1782
+ .action-buttons-row {
1783
+ .button {
1784
+ display: inline-flex;
1785
+ align-items: center;
1786
+ justify-content: center;
1787
+ overflow: hidden;
1788
+ color: white;
1789
+ border-radius: 6px;
1790
+ height: 34px;
1791
+ padding: 0 10px;
1792
+ white-space: nowrap;
1793
+ transition: max-width 0.4s ease, background-color 0.3s ease;
1794
+ max-width: 40px;
1795
+ background-color: transparent;
1796
+ border: 1px solid #6F61CF;
1797
+
1798
+ // &:Active,
1799
+ // &:focus {
1800
+
1801
+ // // background-color: transparent !important;
1802
+ // ::ng-deep .svg-icon svg path {
1803
+ // // fill: #ffffff;
1804
+ // stroke: #ffffff;
1805
+ // }
1806
+ // }
1807
+ }
1808
+
1809
+ .button .label-hidden {
1810
+ opacity: 0;
1811
+ margin-left: 8px;
1812
+ transition: opacity 0.3s ease;
1813
+ pointer-events: none;
1814
+ display: none;
1815
+ }
1816
+
1817
+ .button:hover {
1818
+ max-width: 200px;
1819
+ background-color: #6F61CF;
1820
+ }
1821
+
1822
+ .button:hover .label-hidden {
1823
+ opacity: 1;
1824
+ pointer-events: auto;
1825
+ margin-left: 8px !important;
1826
+ display: block;
1827
+ }
1828
+
1829
+ ::ng-deep .button .svg-icon svg path {
1830
+ // fill: #6F61CF;
1831
+ stroke: #6F61CF;
1832
+ transition: fill 0.3s ease, stroke 0.3s ease;
1833
+ }
1834
+
1835
+ ::ng-deep .button:hover .svg-icon svg path {
1836
+ // fill: #ffffff !important;
1837
+ stroke: #ffffff !important;
1838
+ }
1839
+
1840
+ }
1841
+
1842
+ ::ng-deep .nav-tabs .nav-link {
1843
+ border: none !important;
1844
+ border-bottom: 2px solid transparent !important;
1845
+ border-radius: 0 !important;
1846
+ background: transparent !important;
1847
+ }
1848
+
1849
+ ::ng-deep .nav-tabs .nav-link:hover,
1850
+ ::ng-deep .nav-tabs .nav-link:focus {
1851
+ border: none !important;
1852
+ border-bottom: 2px solid transparent !important;
1853
+ outline: none !important;
1854
+ background: transparent !important;
1855
+ }
1856
+
1857
+ ::ng-deep .nav-tabs .nav-link.active {
1858
+ border: none !important;
1859
+ border-bottom: 2px solid var(--bs-primary) !important;
1860
+ /* customize color */
1861
+ background: transparent !important;
1862
+ color: var(--bs-primary) !important;
1863
+ }
1864
+
1865
+ .open-top {
1866
+ top: -150% !important;
1867
+ }
1868
+
1869
+ .muted {
1870
+ color: #7a7a7a !important;
1871
+ }
1872
+
1873
+ .item-title {
1874
+ font-size: 1.2em;
1875
+ font-weight: bold;
1876
+ margin-bottom: 10px;
1877
+ }
1878
+
1879
+
1880
+ .item-image {
1881
+ width: 100%;
1882
+ border-radius: 10px;
1883
+ }
1884
+
1885
+ .comment {
1886
+ display: flex;
1887
+ align-items: center;
1888
+ margin-bottom: 10px;
1889
+ }
1890
+
1891
+ .comment-avatar {
1892
+ width: 40px;
1893
+ height: 40px;
1894
+ border-radius: 50%;
1895
+ margin-right: 10px;
1896
+ }
1897
+
1898
+ .comment-author {
1899
+ font-weight: bold;
1900
+ }
1901
+
1902
+ .comment-content {
1903
+ font-size: 0.9em;
1904
+ line-height: 1.4;
1905
+ }
1906
+
1907
+ .comment-timestamp {
1908
+ font-size: 0.8em;
1909
+ color: #888;
1910
+ margin-left: auto;
1911
+ }
1912
+
1913
+ .des_low{
1914
+ text-overflow: ellipsis;
1915
+ white-space: nowrap;
1916
+ overflow: hidden;
1917
+ width: 242px;
1918
+ display: block;
1919
+ text-transform: capitalize !important;
1920
+ }
1921
+
1922
+ .firstDiv{
1923
+ word-break: break-word;
1924
+ overflow-wrap: break-word;
1925
+ white-space: normal;
1926
+ }
1927
+
1928
+ .container {
1929
+ display: flex;
1930
+ flex-wrap: wrap;
1931
+ margin: 20px;
1932
+ gap: 20px;
1933
+ background-color: #fff;
1934
+ padding: 20px;
1935
+ border-radius: 10px;
1936
+ }
1937
+
1938
+ .item {
1939
+ width: calc(33.33% - 20px);
1940
+ background-color: #fff;
1941
+ padding: 20px;
1942
+ border-radius: 10px;
1943
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
1944
+ }
1945
+ .forCommentImg {
1946
+ width: 70px;
1947
+ border-radius: 16px;
1948
+ margin: 8px 0;
1949
+ cursor: pointer;
1950
+ }
1951
+ .image-modal img {
1952
+ max-width: 90%;
1953
+ max-height: 90%;
1954
+ border-radius: 8px;
1955
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
1956
+ }
1957
+ .full-image-modal {
1958
+ position: fixed;
1959
+ // top: 0;
1960
+ // left: 0;
1961
+ // width: 100%;
1962
+ // height: 100%;
1963
+ background: rgba(0, 0, 0, 0.8);
1964
+ display: flex;
1965
+ justify-content: center;
1966
+ align-items: center;
1967
+ z-index: 1000;
1968
+ .full-image {
1969
+ max-width: 90%;
1970
+ max-height: 90%;
1971
+ border-radius: 8px;
1972
+ box-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
1973
+ }
1974
+ }
1975
+
1976
+ .item-content {
1977
+ font-size: 14px;
1978
+ line-height: 1.5;
1979
+ max-height: 220px;
1980
+ overflow-y: auto;
1981
+ }
1982
+
1983
+ .image-modal.full-image-modal {
1984
+ position: fixed;
1985
+ // top: 0;
1986
+ // left: 0;
1987
+ width: 100vw;
1988
+ height: 100vh;
1989
+ background-color: rgba(0, 0, 0, 0.8); /* semi-transparent dark overlay */
1990
+ display: flex;
1991
+ justify-content: center;
1992
+ align-items: center;
1993
+ z-index: 9999; /* ensure it’s on top of everything */
1994
+ overflow: hidden; /* disable scroll inside */
1995
+ cursor: zoom-out; /* indicate you can click to close */
1996
+ }
1997
+
1998
+ .image-modal.full-image-modal img {
1999
+ // max-width: 90vw;
2000
+ // max-height: 90vh;
2001
+ border-radius: 8px;
2002
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
2003
+ object-fit: contain;
2004
+ transition: transform 0.3s ease;
2005
+ }
2006
+
2007
+ .image-modal.full-image-modal img:hover {
2008
+ transform: scale(1.02);
2009
+ }
2010
+
2011
+ ::ng-deep .custom-overlay-wrapper {
2012
+ .custom-overlay {
2013
+ position: fixed;
2014
+ top: 0;
2015
+ left: 0;
2016
+ width: 100vw;
2017
+ height: 100vh;
2018
+ background: rgb(0 0 0 / 85%);
2019
+ display: flex;
2020
+ align-items: center;
2021
+ justify-content: center;
2022
+ z-index: 9999;
2023
+ }
2024
+
2025
+ .custom-modal {
2026
+ background: #fff;
2027
+ border-radius: 12px;
2028
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
2029
+ width: 360px;
2030
+ max-width: 90%;
2031
+ padding: 24px;
2032
+ text-align: center;
2033
+ animation: fadeInScale 0.25s ease;
2034
+ }
2035
+
2036
+ .custom-modal-body .modal-message {
2037
+ font-size: 16px;
2038
+ margin-bottom: 20px;
2039
+ color: #333;
2040
+ }
2041
+
2042
+ .modal-actions {
2043
+ display: flex;
2044
+ justify-content: center;
2045
+ gap: 12px;
2046
+ }
2047
+
2048
+ .modal-actions button {
2049
+ min-width: 90px;
2050
+ padding: 8px 14px;
2051
+ border-radius: 6px;
2052
+ border: none;
2053
+ font-weight: 500;
2054
+ cursor: pointer;
2055
+ transition: background-color 0.2s ease;
2056
+ }
2057
+
2058
+ .btn-confirm {
2059
+ background-color: #007bff;
2060
+ color: white;
2061
+
2062
+ &:hover {
2063
+ background-color: #0069d9;
2064
+ }
2065
+ }
2066
+
2067
+ .btn-cancel {
2068
+ background-color: #e4e4e4;
2069
+ color: #333;
2070
+
2071
+ &:hover {
2072
+ background-color: #d6d6d6;
2073
+ }
2074
+ }
2075
+
2076
+ @keyframes fadeInScale {
2077
+ from {
2078
+ opacity: 0;
2079
+ transform: scale(0.95);
2080
+ }
2081
+ to {
2082
+ opacity: 1;
2083
+ transform: scale(1);
2084
+ }
2085
+ }
2086
+ }
2087
+
2088
+
2089
+ .clear-btn {
2090
+ background: linear-gradient(135deg, #f53545, #f53545);
2091
+ border: none;
2092
+ color: white;
2093
+ font-size: 13px;
2094
+ padding: 3px 6px;
2095
+ border-radius: 20px;
2096
+ font-weight: 500;
2097
+ display: inline-flex;
2098
+ align-items: center;
2099
+ gap: 6px;
2100
+ cursor: pointer;
2101
+ transition: all 0.3s ease;
2102
+ box-shadow: 0 2px 6px rgba(255, 95, 109, 0.4);
2103
+ position: relative;
2104
+ bottom: 4px;
2105
+ }
2106
+
2107
+ .clear-btn:hover {
2108
+ transform: translateY(-2px);
2109
+ box-shadow: 0 4px 10px rgba(255, 95, 109, 0.6);
2110
+ background: linear-gradient(135deg, #f53545, #f53545);
2111
+ }
2112
+
2113
+ .clear-btn i {
2114
+ font-size: 16px;
2115
+ vertical-align: middle;
2116
+ }
2117
+ .cell-editin-dropdown .deopdown-item{
2118
+ width: 100% !important;
2119
+ box-shadow: none !important;
2120
+ border-radius: 4px;
2121
+ cursor: pointer;
2122
+ padding-block: 8px !important;
2123
+ &:hover{
2124
+ background-color: #f1f1f1;
2125
+ }
2126
+ }