javascriptgantt 1.0.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
package/src/gantt.css CHANGED
@@ -1,1157 +1,1157 @@
1
- :root {
2
- /* -------- Background Colors Start ----------- */
3
- --body-background: #fff;
4
- --header-background: #fafafa;
5
- --header-cell-background: #fafafa;
6
- --timeline-cell-background: #f8f8f8;
7
- --timeline-scale-background: #fafafa;
8
- --resizer-background: #cecece;
9
- --grid-resize-area-background: #a2a2a24f;
10
- --row-item-background: #fff;
11
- --row-item-hover-background: #d5eaff;
12
- --weekend-cell-background: #ebebeb;
13
- --selected-background: #d5eaff;
14
- --marker-background: #4ca0ff80;
15
- --marker-hover-background: #4ca0fff2;
16
- --toastr-background: #aaaaaa;
17
- --scroll-background: #f5f7fa;
18
-
19
- /* lightbox backgrounds */
20
- --lightbox-background: #fff;
21
- --textarea-background: #fff;
22
-
23
- /* tooltip background */
24
- --tooltip-background: #fff;
25
-
26
- /* taskbar background */
27
- --taskbar-background: #7fbbfff2;
28
- --taskbar-child-background: #56a4fdf2;
29
- --task-area-background: #0094ff4d;
30
- --task-progress-background: #0094ff4d;
31
- --child-task-progress-background: #298dfff2;
32
-
33
- /* milestone content */
34
- --milestone-content-background: #e84855;
35
-
36
- /* backdrop background */
37
- --backdrop-background: #0000004d;
38
- --loder-backdrop-background: #000000cc;
39
-
40
- /* btn background */
41
- --btn-primary-background: #0094ff;
42
- --btn-normal-background: #fff;
43
- --btn-danger-background: #c11d1d;
44
-
45
- /* link backgrounds */
46
- --link-background: #ffa011;
47
- --link-control-background: #f0f0f0;
48
- --link-control-hover-background: #fff;
49
- --selected-link-control-background: #ffa011;
50
- /* -------- Background Colors End ----------- */
51
-
52
- /* -------- Text Colors Start ----------- */
53
- --primary-color: #1d273c;
54
- --marker-color: #fff;
55
- --tooltip-color: #454545;
56
- --task-content-color: #fff;
57
- --milestone-content-color: #333232;
58
-
59
- /* btn colors */
60
- --btn-primary-color: #fff;
61
- --btn-normal-color: #000;
62
- --btn-danger-color: #c11d1d;
63
-
64
- /* loader color */
65
- --loader-color: #d1ebfa;
66
- --loader-after-color: #0093ff;
67
-
68
- /* toastr color */
69
- --toastr-color: #fff;
70
- --toastr-p-color: #fff;
71
- /* -------- Text Colors End ----------- */
72
-
73
- /* -------- Border Colors Start ----------- */
74
- --primary-border: #dddddd;
75
-
76
- /* taskbar border */
77
- --taskbar-border: #4e89cdf2;
78
- --task-area-border: #0094ff;
79
- --milestone-content-border: #e84855;
80
-
81
- /* lightbox textarea */
82
- --lightbox-border: #cecece;
83
-
84
- /* link border */
85
- --link-border: #ffa011;
86
- --link-control-border: #929292;
87
- }
88
-
89
- .js-gantt-layout * {
90
- box-sizing: border-box;
91
- color: var(--primary-color);
92
- -webkit-user-select: none; /* Safari */
93
- -moz-user-select: none; /* Firefox */
94
- -ms-user-select: none; /* Internet Explorer */
95
- user-select: none;
96
- }
97
-
98
- .js-gantt-d-flex {
99
- display: flex !important;
100
- }
101
-
102
- .js-gantt-d-none {
103
- display: none !important;
104
- }
105
-
106
- .js-gantt-d-block {
107
- display: block !important;
108
- }
109
-
110
- .js-gantt-border-left-none {
111
- border-left: none !important;
112
- }
113
-
114
- .js-gantt-layout {
115
- width: 100%;
116
- height: 100%;
117
- position: relative;
118
- background-color: var(--body-background);
119
- border: 1px solid var(--primary-border);
120
- }
121
-
122
- .sidebar-head-cell-container,
123
- .right-sidebar-head-cell-container {
124
- height: 60px;
125
- border-bottom: 1px solid var(--primary-border);
126
- background-color: var(--header-background);
127
- align-items: center;
128
- position: relative;
129
- width: 100%;
130
- min-width: 100%;
131
- position: sticky;
132
- top: 0;
133
- white-space: nowrap;
134
- z-index: 1010;
135
- }
136
-
137
- .sidebar-head-cell-container .head-cell,
138
- .right-sidebar-head-cell-container .right-head-cell {
139
- text-align: center;
140
- width: 80px;
141
- padding: 0;
142
- display: inline-block;
143
- border-right: 1px solid var(--primary-border);
144
- background-color: var(--header-cell-background);
145
- height: 100%;
146
- line-height: inherit;
147
- white-space: nowrap;
148
- overflow: hidden;
149
- position: relative;
150
- }
151
-
152
- .js-gantt-calendar-cell {
153
- text-align: center;
154
- position: absolute;
155
- border-right: 1px solid var(--primary-border);
156
- }
157
-
158
- .js-gantt-scale-cell {
159
- position: absolute;
160
- border-right: 1px solid var(--primary-border);
161
- text-align: center;
162
- }
163
-
164
- .js-gantt-scale-row {
165
- position: relative;
166
- height: 29px;
167
- background-color: var(--timeline-scale-background);
168
- line-height: inherit;
169
- width: 100%;
170
- }
171
-
172
- .js-gantt-scale-row:not(:nth-child(1)) {
173
- border-top: 1px solid var(--primary-border);
174
- }
175
-
176
- .js-gantt-timeline-cell .js-gantt-scale {
177
- overflow-x: hidden;
178
- overflow-y: hidden;
179
- position: sticky;
180
- top: 0;
181
- border-bottom: 1px solid var(--primary-border);
182
- z-index: 1010;
183
- }
184
-
185
- .js-gantt-row-item {
186
- align-items: center;
187
- height: 50px;
188
- line-height: inherit;
189
- border-bottom: 1px solid var(--primary-border);
190
- }
191
-
192
- .js-gantt-cell-data {
193
- white-space: nowrap;
194
- border-right: 1px solid transparent;
195
- }
196
-
197
- .js-gantt-left-cell,
198
- .js-gantt-right-sidebar-cell {
199
- height: 100%;
200
- }
201
-
202
- .js-gantt-left-cell,
203
- .js-gantt-right-sidebar-cell {
204
- border-right: 1px solid var(--primary-border);
205
- overflow: auto;
206
- position: relative;
207
- overflow-x: hidden;
208
- }
209
-
210
- .js-gantt-left-cell,
211
- .js-gantt-right-sidebar-cell,
212
- .js-gantt-timeline-cell {
213
- scrollbar-width: thin;
214
- scrollbar-color: transparent transparent;
215
- scrollbar-width: none;
216
- /* Internet Explorer */
217
- -ms-overflow-style: none;
218
- }
219
-
220
- /* WebKit (Safari/Chrome) */
221
- .js-gantt-left-cell::-webkit-scrollbar,
222
- .js-gantt-right-sidebar-cell::-webkit-scrollbar,
223
- .js-gantt-timeline-cell::-webkit-scrollbar {
224
- width: 0;
225
- height: 0;
226
- }
227
-
228
- .js-gantt-task-row {
229
- height: 50px;
230
- position: relative;
231
- white-space: nowrap;
232
- border-bottom: 1px solid var(--primary-border);
233
- }
234
-
235
- .js-gantt-task-cell {
236
- width: 80px;
237
- height: 100%;
238
- position: absolute;
239
- background-color: var(--timeline-cell-background);
240
- border-right: 1px solid var(--primary-border);
241
- /* border-left: 1px solid #ebebeb; */
242
- }
243
-
244
- .js-gantt-weekday-cell {
245
- border-left: none;
246
- }
247
-
248
- .js-gantt-indent {
249
- width: 20px;
250
- height: inherit;
251
- flex-grow: 0;
252
- flex-shrink: 0;
253
- }
254
-
255
- .js-gantt-timeline-cell {
256
- height: 100%;
257
- overflow: auto;
258
- }
259
-
260
- .sidebar-head-cell-container .js-gantt-col-resizer-wrap,
261
- .right-sidebar-head-cell-container .js-gantt-col-resizer-wrap {
262
- cursor: col-resize;
263
- position: absolute;
264
- width: 13px;
265
- margin-left: -7px;
266
- top: 0px;
267
- height: 60px;
268
- }
269
-
270
- .js-gantt-col-resizer-wrap .js-gantt-col-resizer {
271
- background-color: var(--resizer-background);
272
- height: 100%;
273
- width: 1px;
274
- margin: 0 auto;
275
- }
276
-
277
- .js-gantt-grid-resize-area {
278
- height: 100%;
279
- background-color: var(--grid-resize-area-background);
280
- position: absolute;
281
- top: 0;
282
- left: 0;
283
- z-index: 10;
284
- border-right: 1px solid var(--primary-border);
285
- z-index: 1060;
286
- }
287
-
288
- .js-gantt-layout .js-gantt-left-layout-resizer-wrap,
289
- .js-gantt-layout .js-gantt-timeline-resizer-wrap {
290
- cursor: e-resize;
291
- position: absolute;
292
- width: 13px;
293
- margin-left: -7px;
294
- top: 0px;
295
- height: 100%;
296
- z-index: 1060;
297
- }
298
-
299
- .js-gantt-left-layout-resizer-wrap .js-gantt-left-layout-resizer,
300
- .js-gantt-timeline-resizer-wrap .js-gantt-timeline-resizer {
301
- background-color: var(--resizer-background);
302
- height: 100%;
303
- width: 1px;
304
- margin: 0 auto;
305
- }
306
-
307
- .js-gantt-left-layout-resizer-wrap .js-gantt-left-layout-resizer.resizing,
308
- .js-gantt-timeline-resizer-wrap .js-gantt-timeline-resizer.resizing {
309
- --resizer-background: #218eed;
310
- }
311
-
312
- .js-gantt-grid-data {
313
- width: 100%;
314
- min-width: 100%;
315
- }
316
-
317
- .js-gantt-grid-data .js-gantt-row-item {
318
- transition: background-color 0.2s ease-in-out;
319
- }
320
-
321
- .js-gantt-grid-data .js-gantt-row-item {
322
- background-color: var(--row-item-background);
323
- }
324
-
325
- .js-gantt-grid-data .js-gantt-row-item:hover {
326
- cursor: pointer;
327
- background-color: var(--row-item-hover-background);
328
- }
329
-
330
- .js-gantt-weekend-cell {
331
- background-color: var(--weekend-cell-background);
332
- /* border-left: 1px solid #ebebeb; */
333
- }
334
-
335
- /* .js-gantt-selected {
336
- background-color: var(--selected-background);
337
- } */
338
-
339
- .js-gantt-selected > div {
340
- background-color: var(--selected-background);
341
- }
342
-
343
- .js-gantt-timeline-data {
344
- position: relative;
345
- overflow: hidden;
346
- }
347
-
348
- .js-gantt-marker-today,
349
- .js-gantt-marker-area .js-gantt-marker {
350
- height: 100%;
351
- width: 2px;
352
- top: 0;
353
- position: absolute;
354
- text-align: center;
355
- background-color: var(--marker-background);
356
- box-sizing: border-box;
357
- z-index: 1009;
358
- transition: background-color 0.2s ease-in-out;
359
- }
360
-
361
- .js-gantt-marker-today:hover {
362
- background-color: var(--marker-hover-background);
363
- cursor: default;
364
- }
365
-
366
- .js-gantt-marker-today-text {
367
- padding: 5px;
368
- background: inherit;
369
- color: #fff;
370
- position: absolute;
371
- font-size: 12px;
372
- line-height: 12px;
373
- opacity: 0.8;
374
- }
375
-
376
- .js-gantt-tooltip {
377
- padding: 10px;
378
- position: fixed; /* previous value :- absolute */
379
- z-index: 1080;
380
- white-space: nowrap;
381
- background-color: var(--tooltip-background);
382
- font-size: 8pt;
383
- color: var(--tooltip-color);
384
- border-color: #b3b3b3;
385
- line-height: 120%;
386
- box-shadow: rgba(100, 100, 111, 0.4) 0px 7px 29px 0px;
387
- max-width: calc(100vw - 30px);
388
- overflow: hidden;
389
- text-overflow: ellipsis;
390
- }
391
-
392
- .js-gantt-tooltip * {
393
- color: var(--tooltip-color);
394
- }
395
-
396
- .js-gantt-bars-area {
397
- width: 100%;
398
- position: absolute;
399
- top: 0;
400
- left: 0;
401
- }
402
-
403
- .js-gantt-bar-task {
404
- position: absolute;
405
- z-index: 1007;
406
- height: 40px;
407
- line-height: inherit;
408
- background-color: var(--taskbar-child-background);
409
- border: 1px solid var(--taskbar-border);
410
- border-radius: 3px;
411
- text-align: center;
412
- }
413
-
414
- .js-gantt-bar-task.js-gantt-bar-parent-task {
415
- height: 40px;
416
- line-height: inherit;
417
- background-color: var(--taskbar-background);
418
- border: 1px solid var(--taskbar-border);
419
- }
420
- .js-gantt-bar-task-content {
421
- height: 100%;
422
- width: 100%;
423
- line-height: inherit;
424
- position: absolute;
425
- top: 0;
426
- white-space: nowrap;
427
- overflow: hidden;
428
- text-overflow: ellipsis;
429
- color: var(--task-content-color);
430
- cursor: pointer;
431
- }
432
-
433
- .js-gantt-bar-task:hover .js-gantt-task-drag-left,
434
- .js-gantt-bar-task:hover .js-gantt-task-drag-right {
435
- display: block;
436
- }
437
-
438
- .js-gantt-task-drag-left,
439
- .js-gantt-task-drag-right {
440
- position: absolute;
441
- height: 100%;
442
- width: 8px;
443
- z-index: 1008;
444
- cursor: w-resize;
445
- background-color: transparent;
446
- display: none;
447
- }
448
-
449
- .js-gantt-task-drag-left {
450
- left: -7px;
451
- }
452
-
453
- .js-gantt-task-drag-right {
454
- right: -7px;
455
- }
456
-
457
- .js-gantt-cell {
458
- padding: 0 6px;
459
- overflow: hidden;
460
- white-space: nowrap;
461
- flex-grow: 0;
462
- flex-shrink: 0;
463
- height: inherit;
464
- box-sizing: border-box;
465
- }
466
-
467
- .js-gantt-lightbox {
468
- background: var(--lightbox-background);
469
- color: var(--primary-color);
470
- padding: 10px;
471
- position: fixed;
472
- top: 50%;
473
- left: 50%;
474
- transform: translate(-50%, -50%);
475
- z-index: 1070;
476
- border-radius: 4px;
477
- min-width: 400px;
478
- box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
479
- }
480
-
481
- .js-gantt-lightbox-backdrop {
482
- position: fixed;
483
- top: 0;
484
- left: 0;
485
- background-color: var(--backdrop-background);
486
- width: 100vw;
487
- height: 100vh;
488
- z-index: 1060;
489
- }
490
-
491
- .js-gantt-lightbox .js-gantt-task-title {
492
- margin-bottom: 5px;
493
- }
494
-
495
- .js-gantt-lightbox span,
496
- .js-gantt-lightbox p {
497
- color: var(--primary-color);
498
- }
499
-
500
- .js-gantt-lightbox textarea {
501
- color: var(--primary-color);
502
- border: 1px solid var(--primary-border);
503
- background-color: var(--textarea-background);
504
- border-radius: 4px;
505
- margin: 5px 0;
506
- padding: 5px;
507
- resize: none;
508
- width: 100%;
509
- }
510
-
511
- .js-gantt-lightbox .lightbox-footer button {
512
- color: var(--btn-primary-color);
513
- padding: 8px 15px;
514
- border: none;
515
- cursor: pointer;
516
- border-radius: 4px;
517
- }
518
-
519
- .js-gantt-lightbox .lightbox-footer button[role="save"] {
520
- background-color: var(--btn-primary-background);
521
- margin-right: 10px;
522
- }
523
- .js-gantt-lightbox .lightbox-footer button[role="cancel"] {
524
- background-color: var(--btn-normal-background);
525
- color: var(--btn-normal-color);
526
- border: 1px solid var(--primary-border);
527
- }
528
- .js-gantt-lightbox .lightbox-footer button[role="delete"] {
529
- background-color: var(--btn-danger-background);
530
- float: right;
531
- }
532
-
533
- .js-gantt-fullScreen {
534
- height: 100vh !important;
535
- width: 100vw !important;
536
- position: absolute;
537
- top: 0;
538
- left: 0;
539
- z-index: 1;
540
- }
541
-
542
- .task-dragging {
543
- opacity: 0.5;
544
- z-index: 9999;
545
- }
546
-
547
- .js-gantt-tree-icon {
548
- cursor: pointer;
549
- width: 20px;
550
- background-repeat: no-repeat;
551
- background-position: 50%;
552
- flex-grow: 0;
553
- flex-shrink: 0;
554
- }
555
-
556
- .js-gantt-tree-close {
557
- background-image: url('data:image/svg+xml,<svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.2947 0.219725C1.07551 0.00293446 0.750024 -0.0567913 0.466392 0.0555267C0.18335 0.174359 0 0.450875 0 0.758994L0 9.24099C0 9.54731 0.182767 9.82382 0.466392 9.94093C0.750024 10.0604 1.07551 9.99523 1.2947 9.77674L5.53596 5.53548C5.82974 5.2381 5.82974 4.75856 5.53596 4.46118L1.2947 0.219725Z" fill="%23A2A4AB"/></svg>');
558
- }
559
-
560
- .js-gantt-tree-open {
561
- background-image: url('data:image/svg+xml,<svg width="11" height="6" viewBox="0 0 11 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.6584 1.41653C10.8752 1.19733 10.935 0.871851 10.8226 0.588218C10.7038 0.305177 10.4273 0.121826 10.1192 0.121826L1.63719 0.121826C1.33087 0.121826 1.05435 0.304593 0.937241 0.588218C0.817806 0.871851 0.882942 1.19734 1.10144 1.41653L5.34269 5.65779C5.64007 5.95157 6.11962 5.95157 6.417 5.65779L10.6584 1.41653Z" fill="%23A2A4AB"/></svg>');
562
- }
563
-
564
- /* custom scroller */
565
- #js-gantt-ver-scroll-cell {
566
- height: 100%;
567
- width: 19px;
568
- flex-grow: 0;
569
- flex-shrink: 0;
570
- background-color: var(--scroll-background);
571
- position: relative;
572
- left: 0;
573
- right: 0;
574
- }
575
-
576
- #js-gantt-hor-scroll-cell {
577
- width: 100%;
578
- position: absolute;
579
- top: 100%;
580
- left: 0;
581
- height: 1px;
582
- background-color: var(--scroll-background);
583
- }
584
-
585
- .js-gantt-fullScreen #js-gantt-hor-scroll-cell {
586
- margin-top: -17px;
587
- }
588
-
589
- .js-gantt-hor-scroll {
590
- width: 100%;
591
- background-color: transparent;
592
- height: 19px;
593
- overflow-x: auto;
594
- overflow-y: hidden;
595
- position: absolute;
596
- left: 0;
597
- z-index: 1;
598
- }
599
-
600
- .js-gantt-hor-scroll > div {
601
- height: 1px;
602
- }
603
-
604
- .js-gantt-ver-scroll {
605
- width: 100%;
606
- overflow-y: auto;
607
- overflow-x: hidden;
608
- position: absolute;
609
- }
610
-
611
- .js-gantt-blank {
612
- width: 20px;
613
- height: inherit;
614
- flex-grow: 0;
615
- flex-shrink: 0;
616
- }
617
-
618
- .js-gantt-marker-area {
619
- position: absolute;
620
- height: 100%;
621
- top: 0;
622
- }
623
-
624
- .js-gantt-marker-area .js-gantt-marker .js-gantt-marker-content {
625
- padding: 5px;
626
- background: inherit;
627
- color: var(--marker-color);
628
- position: absolute;
629
- font-size: 12px;
630
- line-height: 12px;
631
- opacity: 0.8;
632
- }
633
-
634
- .js-gantt-marker-area .js-gantt-marker:hover {
635
- background-color: var(--marker-hover-background);
636
- }
637
-
638
- .js-gantt-selected-task-bar {
639
- box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
640
- }
641
-
642
- .js-gantt-bar-milestone.js-gantt-selected-task-bar {
643
- box-shadow: none;
644
- }
645
-
646
- .js-gantt-bar-milestone.js-gantt-selected-task-bar .js-gantt-bar-task-content {
647
- box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
648
- }
649
-
650
- /* arrow links to connect tasks */
651
- .js-gantt-links-area {
652
- position: absolute;
653
- left: 0;
654
- top: 0;
655
- width: 100%;
656
- }
657
-
658
- .js-gantt-task-link {
659
- position: absolute;
660
- cursor: pointer;
661
- z-index: 1006;
662
- }
663
-
664
- .js-gantt-link-line {
665
- position: absolute;
666
- background-color: var(--link-background);
667
- transition: box-shadow 0.2s ease-in-out;
668
- }
669
-
670
- .js-gantt-task-link:not([link-type="2"], [link-type="3"])
671
- .js-gantt-link-line:last-child:after {
672
- content: " ";
673
- height: 0;
674
- position: absolute;
675
- width: 0;
676
- top: -6px;
677
- left: calc(100% - 6px);
678
- border: 7px solid transparent;
679
- border-left-color: var(--link-border);
680
- }
681
-
682
- .js-gantt-task-link[link-type="2"] .js-gantt-link-line:last-child:before,
683
- .js-gantt-task-link[link-type="3"] .js-gantt-link-line:last-child:before {
684
- content: " ";
685
- height: 0;
686
- position: absolute;
687
- width: 0;
688
- top: -6px;
689
- left: -7px;
690
- border: 7px solid transparent;
691
- border-right-color: var(--link-border);
692
- }
693
-
694
- .js-gantt-hor-link-line {
695
- height: 2px;
696
- }
697
-
698
- .js-gantt-ver-link-line {
699
- width: 2px;
700
- }
701
-
702
- .ver-inner-line {
703
- height: 100%;
704
- width: 10px;
705
- margin-left: -4px;
706
- }
707
-
708
- .hor-inner-line {
709
- height: 10px;
710
- width: 100%;
711
- margin-top: -4px;
712
- }
713
-
714
- .js-gantt-task-link:hover .js-gantt-link-line {
715
- box-shadow: 0 0 5px 0 #ffa011;
716
- }
717
-
718
- .js-gantt-link-control div {
719
- display: none;
720
- cursor: pointer;
721
- box-sizing: border-box;
722
- position: relative;
723
- top: 50%;
724
- margin-top: -7.5px;
725
- vertical-align: middle;
726
- border: 1px solid var(--link-control-border);
727
- border-radius: 6.5px;
728
- height: 13px;
729
- width: 13px;
730
- background-color: var(--link-control-background);
731
- }
732
-
733
- .js-gantt-link-control {
734
- width: 20px;
735
- position: absolute;
736
- top: 0;
737
- height: 100%;
738
- line-height: inherit;
739
- z-index: 1007;
740
- }
741
-
742
- .js-gantt-link-control.js-gantt-right-point div {
743
- margin-left: 7px;
744
- }
745
-
746
- .js-gantt-left-point {
747
- left: -20px;
748
- }
749
- .js-gantt-right-point {
750
- right: -20px;
751
- }
752
-
753
- .js-gantt-bar-task:hover .js-gantt-link-control div,
754
- .js-gantt-bar-milestone:hover .js-gantt-link-control div {
755
- display: block;
756
- }
757
-
758
- .js-gantt-bar-task.hovered .js-gantt-link-control div,
759
- .js-gantt-bar-milestone.hovered .js-gantt-link-control div {
760
- display: block;
761
- }
762
-
763
- .js-gantt-link-point:hover {
764
- background-color: var(--link-control-hover-background);
765
- }
766
-
767
- .js-gantt-link-direction {
768
- height: 0;
769
- border: 0 none var(--link-border);
770
- border-bottom-style: dashed;
771
- border-bottom-width: 2px;
772
- transform-origin: 0 0;
773
- -ms-transform-origin: 0 0;
774
- -webkit-transform-origin: 0 0;
775
- z-index: 1008;
776
- margin-left: 1px;
777
- position: absolute;
778
- }
779
-
780
- .selected-target {
781
- background-color: var(--selected-link-control-background) !important;
782
- }
783
-
784
- /* zt Gantt loader */
785
- .js-gantt-loader {
786
- width: 55px;
787
- height: 55px;
788
- perspective: 1000px;
789
- border-radius: 50%;
790
- color: var(--loader-color);
791
- z-index: 1100;
792
- position: fixed;
793
- top: 50%;
794
- left: 50%;
795
- transform: rotateZ(45deg) translate(-50%, -50%);
796
- }
797
- .js-gantt-loader:before,
798
- .js-gantt-loader:after {
799
- content: "";
800
- display: block;
801
- position: absolute;
802
- top: 0;
803
- left: 0;
804
- width: inherit;
805
- height: inherit;
806
- border-radius: 50%;
807
- transform: rotateX(70deg);
808
- animation: 1s spin linear infinite;
809
- }
810
- .js-gantt-loader:after {
811
- color: var(--loader-after-color);
812
- transform: rotateY(70deg);
813
- animation-delay: 0.4s;
814
- }
815
-
816
- .js-gantt-loader-drop {
817
- background-color: var(--loder-backdrop-background);
818
- position: fixed;
819
- width: 100vw;
820
- height: 100vh;
821
- top: 0;
822
- left: 0;
823
- z-index: 1099;
824
- }
825
-
826
- @keyframes rotate {
827
- 0% {
828
- transform: translate(-50%, -50%) rotateZ(0deg);
829
- }
830
- 100% {
831
- transform: translate(-50%, -50%) rotateZ(360deg);
832
- }
833
- }
834
-
835
- @keyframes rotateccw {
836
- 0% {
837
- transform: translate(-50%, -50%) rotate(0deg);
838
- }
839
- 100% {
840
- transform: translate(-50%, -50%) rotate(-360deg);
841
- }
842
- }
843
-
844
- @keyframes spin {
845
- 0%,
846
- 100% {
847
- box-shadow: 0.2em 0px 0 0px currentcolor;
848
- }
849
- 12% {
850
- box-shadow: 0.2em 0.2em 0 0 currentcolor;
851
- }
852
- 25% {
853
- box-shadow: 0 0.2em 0 0px currentcolor;
854
- }
855
- 37% {
856
- box-shadow: -0.2em 0.2em 0 0 currentcolor;
857
- }
858
- 50% {
859
- box-shadow: -0.2em 0 0 0 currentcolor;
860
- }
861
- 62% {
862
- box-shadow: -0.2em -0.2em 0 0 currentcolor;
863
- }
864
- 75% {
865
- box-shadow: 0px -0.2em 0 0 currentcolor;
866
- }
867
- 87% {
868
- box-shadow: 0.2em -0.2em 0 0 currentcolor;
869
- }
870
- }
871
-
872
- .task-area {
873
- position: absolute;
874
- border: 1px solid var(--task-area-border);
875
- background-color: var(--task-area-background);
876
- z-index: 1008;
877
- }
878
-
879
- .js-gantt-task-progress-wrapper {
880
- position: relative;
881
- width: 100%;
882
- height: 100%;
883
- line-height: inherit;
884
- overflow: hidden;
885
- border-radius: 3px;
886
- }
887
-
888
- .js-gantt-task-progress {
889
- height: 100%;
890
- }
891
-
892
- .js-gantt-task-progress-drag {
893
- position: absolute;
894
- cursor: ew-resize;
895
- display: none;
896
- background-repeat: no-repeat;
897
- background-position: 50%;
898
- width: 16px;
899
- height: 10px;
900
- bottom: -4px;
901
- margin-left: -8px;
902
- z-index: 1;
903
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=");
904
- }
905
-
906
- .js-gantt-bar-task.js-gantt-bar-parent-task .js-gantt-task-progress {
907
- background-color: var(--task-progress-background);
908
- }
909
-
910
- .js-gantt-bar-task.child-task .js-gantt-task-progress {
911
- background-color: var(--child-task-progress-background);
912
- }
913
-
914
- .js-gantt-bar-task:hover .js-gantt-task-progress-drag {
915
- display: block;
916
- }
917
-
918
- /* milestone css */
919
- .js-gantt-bar-milestone {
920
- position: absolute;
921
- z-index: 1007;
922
- height: 40px;
923
- line-height: inherit;
924
- background-color: transparent !important;
925
- border: 0px solid transparent !important;
926
- border-radius: 3px;
927
- text-align: center;
928
- margin-left: -10px;
929
- }
930
-
931
- .js-gantt-side-content {
932
- height: 100%;
933
- line-height: inherit;
934
- position: absolute;
935
- top: 0;
936
- white-space: nowrap;
937
- left: calc(100% + 22px);
938
- color: var(--milestone-content-color);
939
- cursor: pointer;
940
- }
941
-
942
- .js-gantt-bar-milestone .js-gantt-bar-task-content {
943
- background-color: var(--milestone-content-background);
944
- border: 1px solid var(--milestone-content-border);
945
- border-radius: inherit;
946
- box-sizing: border-box;
947
- -moz-box-sizing: border-box;
948
- transform: rotate(45deg);
949
- }
950
-
951
- .js-gantt-bar-milestone div {
952
- visibility: visible;
953
- }
954
-
955
- /* toastr css start */
956
- .js-gantt-toastr-area {
957
- position: fixed;
958
- z-index: 999999;
959
- right: 5px;
960
- top: 5px;
961
- }
962
-
963
- .js-gantt-toastr {
964
- visibility: hidden;
965
- min-width: 250px;
966
- max-width: 350px;
967
- background-color: #aaaaaa;
968
- color: #fff;
969
- border-radius: 3px;
970
- padding: 16px;
971
- margin: 5px;
972
- font-size: 14px;
973
- cursor: pointer;
974
- opacity: 0.9;
975
- transition: all 0.3s ease-in;
976
- }
977
-
978
- .js-gantt-toastr:hover {
979
- opacity: 1;
980
- -moz-box-shadow: 0 0 12px #000000;
981
- -webkit-box-shadow: 0 0 12px #000000;
982
- box-shadow: 0 0 12px #000000;
983
- }
984
-
985
- .js-gantt-toastr p {
986
- color: #fff;
987
- font-weight: 400;
988
- margin: 0;
989
- }
990
-
991
- .js-gantt-toastr p:first-child {
992
- font-weight: 800;
993
- }
994
-
995
- .js-gantt-toastr.js-gantt-toastr-success {
996
- background-color: #51a351;
997
- }
998
-
999
- .js-gantt-toastr.js-gantt-toastr-error {
1000
- background-color: #bd362f;
1001
- }
1002
-
1003
- .js-gantt-toastr.js-gantt-toastr-info {
1004
- background-color: #2f96b4;
1005
- }
1006
-
1007
- .js-gantt-toastr.js-gantt-toastr-warning {
1008
- background-color: #f89406;
1009
- }
1010
-
1011
- .js-gantt-toastr.js-gantt-toastr-show {
1012
- visibility: visible;
1013
- -webkit-animation: fadein 0.5s;
1014
- animation: fadein 0.5s;
1015
- }
1016
-
1017
- .js-gantt-toastr.js-gantt-toastr-hide {
1018
- visibility: visible;
1019
- -webkit-animation: fadeout 0.5s;
1020
- animation: fadeout 0.5s;
1021
- }
1022
-
1023
- @-webkit-keyframes fadein {
1024
- from {
1025
- margin-top: 0;
1026
- opacity: 0;
1027
- }
1028
- to {
1029
- margin-top: 5px;
1030
- opacity: 0.9;
1031
- }
1032
- }
1033
-
1034
- @keyframes fadein {
1035
- from {
1036
- margin-top: 0;
1037
- opacity: 0;
1038
- }
1039
- to {
1040
- margin-top: 5px;
1041
- opacity: 0.9;
1042
- }
1043
- }
1044
-
1045
- @-webkit-keyframes fadeout {
1046
- from {
1047
- margin-top: 5px;
1048
- opacity: 0.9;
1049
- }
1050
- to {
1051
- margin-top: 0;
1052
- opacity: 0;
1053
- }
1054
- }
1055
-
1056
- @keyframes fadeout {
1057
- from {
1058
- margin-top: 5px;
1059
- opacity: 0.9;
1060
- }
1061
- to {
1062
- margin-top: 0;
1063
- opacity: 0;
1064
- }
1065
- }
1066
- /* toastr css end */
1067
-
1068
- .js-gantt-task-color-picker {
1069
- visibility: hidden;
1070
- position: absolute;
1071
- right: 0;
1072
- top: 0;
1073
- height: 100%;
1074
- width: 50px;
1075
- margin-right: -50px;
1076
- }
1077
-
1078
- .js-gantt-bar-task:hover .js-gantt-task-color-picker,
1079
- .js-gantt-bar-task:hover .js-gantt-task-color-picker input {
1080
- visibility: visible;
1081
- }
1082
-
1083
- .js-gantt-task-color-picker input {
1084
- -webkit-appearance: none;
1085
- -moz-appearance: none;
1086
- appearance: none;
1087
- visibility: hidden;
1088
- width: 25px;
1089
- height: 100%;
1090
- background-color: transparent;
1091
- border: none;
1092
- cursor: pointer;
1093
- position: absolute;
1094
- top: 0;
1095
- }
1096
- .js-gantt-task-color-picker input::-webkit-color-swatch {
1097
- border-radius: 2px;
1098
- border: none;
1099
- }
1100
- .js-gantt-task-color-picker input::-moz-color-swatch {
1101
- border-radius: 2px;
1102
- border: none;
1103
- }
1104
-
1105
- .js-gantt-bar-milestone .js-gantt-task-color-picker {
1106
- left: 0;
1107
- margin-left: -50px;
1108
- margin-right: 0;
1109
- }
1110
-
1111
- .js-gantt-bar-milestone .js-gantt-task-color-picker input {
1112
- margin-left: -25px;
1113
- }
1114
-
1115
- .head-cell .js-gantt-sort {
1116
- position: absolute;
1117
- right: 5px;
1118
- top: 50%;
1119
- width: 7px;
1120
- height: 13px;
1121
- background-repeat: no-repeat;
1122
- background-position: 50%;
1123
- transform: translateY(-50%);
1124
- }
1125
-
1126
- .head-cell .js-gantt-sort.js-gantt-asc {
1127
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC);
1128
- }
1129
-
1130
- .head-cell .js-gantt-sort.js-gantt-desc {
1131
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC);
1132
- }
1133
-
1134
- .js-gantt-inline-editor-wraper {
1135
- position: absolute;
1136
- }
1137
-
1138
- .js-gantt-inline-editor-wraper > input,
1139
- .js-gantt-inline-editor-wraper > select {
1140
- height: 100%;
1141
- width: 100%;
1142
- }
1143
-
1144
- .drop-area {
1145
- position: absolute;
1146
- z-index: -1;
1147
- width: 100%;
1148
- border: 2px solid var(--task-area-border);
1149
- background: var(--task-area-background);
1150
- transition: all 0.2s ease;
1151
- opacity: 0;
1152
- }
1153
-
1154
- .js-gantt-timeline-data:has(.task-dragging) .drop-area {
1155
- z-index: 101;
1156
- opacity: 1;
1157
- }
1
+ :root {
2
+ /* -------- Background Colors Start ----------- */
3
+ --body-background: #fff;
4
+ --header-background: #fafafa;
5
+ --header-cell-background: #fafafa;
6
+ --timeline-cell-background: #f8f8f8;
7
+ --timeline-scale-background: #fafafa;
8
+ --resizer-background: #cecece;
9
+ --grid-resize-area-background: #a2a2a24f;
10
+ --row-item-background: #fff;
11
+ --row-item-hover-background: #d5eaff;
12
+ --weekend-cell-background: #ebebeb;
13
+ --selected-background: #d5eaff;
14
+ --marker-background: #4ca0ff80;
15
+ --marker-hover-background: #4ca0fff2;
16
+ --toastr-background: #aaaaaa;
17
+ --scroll-background: #f5f7fa;
18
+
19
+ /* lightbox backgrounds */
20
+ --lightbox-background: #fff;
21
+ --textarea-background: #fff;
22
+
23
+ /* tooltip background */
24
+ --tooltip-background: #fff;
25
+
26
+ /* taskbar background */
27
+ --taskbar-background: #7fbbfff2;
28
+ --taskbar-child-background: #56a4fdf2;
29
+ --task-area-background: #0094ff4d;
30
+ --task-progress-background: #0094ff4d;
31
+ --child-task-progress-background: #298dfff2;
32
+
33
+ /* milestone content */
34
+ --milestone-content-background: #e84855;
35
+
36
+ /* backdrop background */
37
+ --backdrop-background: #0000004d;
38
+ --loder-backdrop-background: #000000cc;
39
+
40
+ /* btn background */
41
+ --btn-primary-background: #0094ff;
42
+ --btn-normal-background: #fff;
43
+ --btn-danger-background: #c11d1d;
44
+
45
+ /* link backgrounds */
46
+ --link-background: #ffa011;
47
+ --link-control-background: #f0f0f0;
48
+ --link-control-hover-background: #fff;
49
+ --selected-link-control-background: #ffa011;
50
+ /* -------- Background Colors End ----------- */
51
+
52
+ /* -------- Text Colors Start ----------- */
53
+ --primary-color: #1d273c;
54
+ --marker-color: #fff;
55
+ --tooltip-color: #454545;
56
+ --task-content-color: #fff;
57
+ --milestone-content-color: #333232;
58
+
59
+ /* btn colors */
60
+ --btn-primary-color: #fff;
61
+ --btn-normal-color: #000;
62
+ --btn-danger-color: #c11d1d;
63
+
64
+ /* loader color */
65
+ --loader-color: #d1ebfa;
66
+ --loader-after-color: #0093ff;
67
+
68
+ /* toastr color */
69
+ --toastr-color: #fff;
70
+ --toastr-p-color: #fff;
71
+ /* -------- Text Colors End ----------- */
72
+
73
+ /* -------- Border Colors Start ----------- */
74
+ --primary-border: #dddddd;
75
+
76
+ /* taskbar border */
77
+ --taskbar-border: #4e89cdf2;
78
+ --task-area-border: #0094ff;
79
+ --milestone-content-border: #e84855;
80
+
81
+ /* lightbox textarea */
82
+ --lightbox-border: #cecece;
83
+
84
+ /* link border */
85
+ --link-border: #ffa011;
86
+ --link-control-border: #929292;
87
+ }
88
+
89
+ .js-gantt-layout * {
90
+ box-sizing: border-box;
91
+ color: var(--primary-color);
92
+ -webkit-user-select: none; /* Safari */
93
+ -moz-user-select: none; /* Firefox */
94
+ -ms-user-select: none; /* Internet Explorer */
95
+ user-select: none;
96
+ }
97
+
98
+ .js-gantt-d-flex {
99
+ display: flex !important;
100
+ }
101
+
102
+ .js-gantt-d-none {
103
+ display: none !important;
104
+ }
105
+
106
+ .js-gantt-d-block {
107
+ display: block !important;
108
+ }
109
+
110
+ .js-gantt-border-left-none {
111
+ border-left: none !important;
112
+ }
113
+
114
+ .js-gantt-layout {
115
+ width: 100%;
116
+ height: 100%;
117
+ position: relative;
118
+ background-color: var(--body-background);
119
+ border: 1px solid var(--primary-border);
120
+ }
121
+
122
+ .sidebar-head-cell-container,
123
+ .right-sidebar-head-cell-container {
124
+ height: 60px;
125
+ border-bottom: 1px solid var(--primary-border);
126
+ background-color: var(--header-background);
127
+ align-items: center;
128
+ position: relative;
129
+ width: 100%;
130
+ min-width: 100%;
131
+ position: sticky;
132
+ top: 0;
133
+ white-space: nowrap;
134
+ z-index: 1010;
135
+ }
136
+
137
+ .sidebar-head-cell-container .head-cell,
138
+ .right-sidebar-head-cell-container .right-head-cell {
139
+ text-align: center;
140
+ width: 80px;
141
+ padding: 0;
142
+ display: inline-block;
143
+ border-right: 1px solid var(--primary-border);
144
+ background-color: var(--header-cell-background);
145
+ height: 100%;
146
+ line-height: inherit;
147
+ white-space: nowrap;
148
+ overflow: hidden;
149
+ position: relative;
150
+ }
151
+
152
+ .js-gantt-calendar-cell {
153
+ text-align: center;
154
+ position: absolute;
155
+ border-right: 1px solid var(--primary-border);
156
+ }
157
+
158
+ .js-gantt-scale-cell {
159
+ position: absolute;
160
+ border-right: 1px solid var(--primary-border);
161
+ text-align: center;
162
+ }
163
+
164
+ .js-gantt-scale-row {
165
+ position: relative;
166
+ height: 29px;
167
+ background-color: var(--timeline-scale-background);
168
+ line-height: inherit;
169
+ width: 100%;
170
+ }
171
+
172
+ .js-gantt-scale-row:not(:nth-child(1)) {
173
+ border-top: 1px solid var(--primary-border);
174
+ }
175
+
176
+ .js-gantt-timeline-cell .js-gantt-scale {
177
+ overflow-x: hidden;
178
+ overflow-y: hidden;
179
+ position: sticky;
180
+ top: 0;
181
+ border-bottom: 1px solid var(--primary-border);
182
+ z-index: 1010;
183
+ }
184
+
185
+ .js-gantt-row-item {
186
+ align-items: center;
187
+ height: 50px;
188
+ line-height: inherit;
189
+ border-bottom: 1px solid var(--primary-border);
190
+ }
191
+
192
+ .js-gantt-cell-data {
193
+ white-space: nowrap;
194
+ border-right: 1px solid transparent;
195
+ }
196
+
197
+ .js-gantt-left-cell,
198
+ .js-gantt-right-sidebar-cell {
199
+ height: 100%;
200
+ }
201
+
202
+ .js-gantt-left-cell,
203
+ .js-gantt-right-sidebar-cell {
204
+ border-right: 1px solid var(--primary-border);
205
+ overflow: auto;
206
+ position: relative;
207
+ overflow-x: hidden;
208
+ }
209
+
210
+ .js-gantt-left-cell,
211
+ .js-gantt-right-sidebar-cell,
212
+ .js-gantt-timeline-cell {
213
+ scrollbar-width: thin;
214
+ scrollbar-color: transparent transparent;
215
+ scrollbar-width: none;
216
+ /* Internet Explorer */
217
+ -ms-overflow-style: none;
218
+ }
219
+
220
+ /* WebKit (Safari/Chrome) */
221
+ .js-gantt-left-cell::-webkit-scrollbar,
222
+ .js-gantt-right-sidebar-cell::-webkit-scrollbar,
223
+ .js-gantt-timeline-cell::-webkit-scrollbar {
224
+ width: 0;
225
+ height: 0;
226
+ }
227
+
228
+ .js-gantt-task-row {
229
+ height: 50px;
230
+ position: relative;
231
+ white-space: nowrap;
232
+ border-bottom: 1px solid var(--primary-border);
233
+ }
234
+
235
+ .js-gantt-task-cell {
236
+ width: 80px;
237
+ height: 100%;
238
+ position: absolute;
239
+ background-color: var(--timeline-cell-background);
240
+ border-right: 1px solid var(--primary-border);
241
+ /* border-left: 1px solid #ebebeb; */
242
+ }
243
+
244
+ .js-gantt-weekday-cell {
245
+ border-left: none;
246
+ }
247
+
248
+ .js-gantt-indent {
249
+ width: 20px;
250
+ height: inherit;
251
+ flex-grow: 0;
252
+ flex-shrink: 0;
253
+ }
254
+
255
+ .js-gantt-timeline-cell {
256
+ height: 100%;
257
+ overflow: auto;
258
+ }
259
+
260
+ .sidebar-head-cell-container .js-gantt-col-resizer-wrap,
261
+ .right-sidebar-head-cell-container .js-gantt-col-resizer-wrap {
262
+ cursor: col-resize;
263
+ position: absolute;
264
+ width: 13px;
265
+ margin-left: -7px;
266
+ top: 0px;
267
+ height: 60px;
268
+ }
269
+
270
+ .js-gantt-col-resizer-wrap .js-gantt-col-resizer {
271
+ background-color: var(--resizer-background);
272
+ height: 100%;
273
+ width: 1px;
274
+ margin: 0 auto;
275
+ }
276
+
277
+ .js-gantt-grid-resize-area {
278
+ height: 100%;
279
+ background-color: var(--grid-resize-area-background);
280
+ position: absolute;
281
+ top: 0;
282
+ left: 0;
283
+ z-index: 10;
284
+ border-right: 1px solid var(--primary-border);
285
+ z-index: 1060;
286
+ }
287
+
288
+ .js-gantt-layout .js-gantt-left-layout-resizer-wrap,
289
+ .js-gantt-layout .js-gantt-timeline-resizer-wrap {
290
+ cursor: e-resize;
291
+ position: absolute;
292
+ width: 13px;
293
+ margin-left: -7px;
294
+ top: 0px;
295
+ height: 100%;
296
+ z-index: 1060;
297
+ }
298
+
299
+ .js-gantt-left-layout-resizer-wrap .js-gantt-left-layout-resizer,
300
+ .js-gantt-timeline-resizer-wrap .js-gantt-timeline-resizer {
301
+ background-color: var(--resizer-background);
302
+ height: 100%;
303
+ width: 1px;
304
+ margin: 0 auto;
305
+ }
306
+
307
+ .js-gantt-left-layout-resizer-wrap .js-gantt-left-layout-resizer.resizing,
308
+ .js-gantt-timeline-resizer-wrap .js-gantt-timeline-resizer.resizing {
309
+ --resizer-background: #218eed;
310
+ }
311
+
312
+ .js-gantt-grid-data {
313
+ width: 100%;
314
+ min-width: 100%;
315
+ }
316
+
317
+ .js-gantt-grid-data .js-gantt-row-item {
318
+ transition: background-color 0.2s ease-in-out;
319
+ }
320
+
321
+ .js-gantt-grid-data .js-gantt-row-item {
322
+ background-color: var(--row-item-background);
323
+ }
324
+
325
+ .js-gantt-grid-data .js-gantt-row-item:hover {
326
+ cursor: pointer;
327
+ background-color: var(--row-item-hover-background);
328
+ }
329
+
330
+ .js-gantt-weekend-cell {
331
+ background-color: var(--weekend-cell-background);
332
+ /* border-left: 1px solid #ebebeb; */
333
+ }
334
+
335
+ /* .js-gantt-selected {
336
+ background-color: var(--selected-background);
337
+ } */
338
+
339
+ .js-gantt-selected > div {
340
+ background-color: var(--selected-background);
341
+ }
342
+
343
+ .js-gantt-timeline-data {
344
+ position: relative;
345
+ overflow: hidden;
346
+ }
347
+
348
+ .js-gantt-marker-today,
349
+ .js-gantt-marker-area .js-gantt-marker {
350
+ height: 100%;
351
+ width: 2px;
352
+ top: 0;
353
+ position: absolute;
354
+ text-align: center;
355
+ background-color: var(--marker-background);
356
+ box-sizing: border-box;
357
+ z-index: 1009;
358
+ transition: background-color 0.2s ease-in-out;
359
+ }
360
+
361
+ .js-gantt-marker-today:hover {
362
+ background-color: var(--marker-hover-background);
363
+ cursor: default;
364
+ }
365
+
366
+ .js-gantt-marker-today-text {
367
+ padding: 5px;
368
+ background: inherit;
369
+ color: #fff;
370
+ position: absolute;
371
+ font-size: 12px;
372
+ line-height: 12px;
373
+ opacity: 0.8;
374
+ }
375
+
376
+ .js-gantt-tooltip {
377
+ padding: 10px;
378
+ position: fixed; /* previous value :- absolute */
379
+ z-index: 1080;
380
+ white-space: nowrap;
381
+ background-color: var(--tooltip-background);
382
+ font-size: 8pt;
383
+ color: var(--tooltip-color);
384
+ border-color: #b3b3b3;
385
+ line-height: 120%;
386
+ box-shadow: rgba(100, 100, 111, 0.4) 0px 7px 29px 0px;
387
+ max-width: calc(100vw - 30px);
388
+ overflow: hidden;
389
+ text-overflow: ellipsis;
390
+ }
391
+
392
+ .js-gantt-tooltip * {
393
+ color: var(--tooltip-color);
394
+ }
395
+
396
+ .js-gantt-bars-area {
397
+ width: 100%;
398
+ position: absolute;
399
+ top: 0;
400
+ left: 0;
401
+ }
402
+
403
+ .js-gantt-bar-task {
404
+ position: absolute;
405
+ z-index: 1007;
406
+ height: 40px;
407
+ line-height: inherit;
408
+ background-color: var(--taskbar-child-background);
409
+ border: 1px solid var(--taskbar-border);
410
+ border-radius: 3px;
411
+ text-align: center;
412
+ }
413
+
414
+ .js-gantt-bar-task.js-gantt-bar-parent-task {
415
+ height: 40px;
416
+ line-height: inherit;
417
+ background-color: var(--taskbar-background);
418
+ border: 1px solid var(--taskbar-border);
419
+ }
420
+ .js-gantt-bar-task-content {
421
+ height: 100%;
422
+ width: 100%;
423
+ line-height: inherit;
424
+ position: absolute;
425
+ top: 0;
426
+ white-space: nowrap;
427
+ overflow: hidden;
428
+ text-overflow: ellipsis;
429
+ color: var(--task-content-color);
430
+ cursor: pointer;
431
+ }
432
+
433
+ .js-gantt-bar-task:hover .js-gantt-task-drag-left,
434
+ .js-gantt-bar-task:hover .js-gantt-task-drag-right {
435
+ display: block;
436
+ }
437
+
438
+ .js-gantt-task-drag-left,
439
+ .js-gantt-task-drag-right {
440
+ position: absolute;
441
+ height: 100%;
442
+ width: 8px;
443
+ z-index: 1008;
444
+ cursor: w-resize;
445
+ background-color: transparent;
446
+ display: none;
447
+ }
448
+
449
+ .js-gantt-task-drag-left {
450
+ left: -7px;
451
+ }
452
+
453
+ .js-gantt-task-drag-right {
454
+ right: -7px;
455
+ }
456
+
457
+ .js-gantt-cell {
458
+ padding: 0 6px;
459
+ overflow: hidden;
460
+ white-space: nowrap;
461
+ flex-grow: 0;
462
+ flex-shrink: 0;
463
+ height: inherit;
464
+ box-sizing: border-box;
465
+ }
466
+
467
+ .js-gantt-lightbox {
468
+ background: var(--lightbox-background);
469
+ color: var(--primary-color);
470
+ padding: 10px;
471
+ position: fixed;
472
+ top: 50%;
473
+ left: 50%;
474
+ transform: translate(-50%, -50%);
475
+ z-index: 1070;
476
+ border-radius: 4px;
477
+ min-width: 400px;
478
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
479
+ }
480
+
481
+ .js-gantt-lightbox-backdrop {
482
+ position: fixed;
483
+ top: 0;
484
+ left: 0;
485
+ background-color: var(--backdrop-background);
486
+ width: 100vw;
487
+ height: 100vh;
488
+ z-index: 1060;
489
+ }
490
+
491
+ .js-gantt-lightbox .js-gantt-task-title {
492
+ margin-bottom: 5px;
493
+ }
494
+
495
+ .js-gantt-lightbox span,
496
+ .js-gantt-lightbox p {
497
+ color: var(--primary-color);
498
+ }
499
+
500
+ .js-gantt-lightbox textarea {
501
+ color: var(--primary-color);
502
+ border: 1px solid var(--primary-border);
503
+ background-color: var(--textarea-background);
504
+ border-radius: 4px;
505
+ margin: 5px 0;
506
+ padding: 5px;
507
+ resize: none;
508
+ width: 100%;
509
+ }
510
+
511
+ .js-gantt-lightbox .lightbox-footer button {
512
+ color: var(--btn-primary-color);
513
+ padding: 8px 15px;
514
+ border: none;
515
+ cursor: pointer;
516
+ border-radius: 4px;
517
+ }
518
+
519
+ .js-gantt-lightbox .lightbox-footer button[role="save"] {
520
+ background-color: var(--btn-primary-background);
521
+ margin-right: 10px;
522
+ }
523
+ .js-gantt-lightbox .lightbox-footer button[role="cancel"] {
524
+ background-color: var(--btn-normal-background);
525
+ color: var(--btn-normal-color);
526
+ border: 1px solid var(--primary-border);
527
+ }
528
+ .js-gantt-lightbox .lightbox-footer button[role="delete"] {
529
+ background-color: var(--btn-danger-background);
530
+ float: right;
531
+ }
532
+
533
+ .js-gantt-fullScreen {
534
+ height: 100vh !important;
535
+ width: 100vw !important;
536
+ position: absolute;
537
+ top: 0;
538
+ left: 0;
539
+ z-index: 1;
540
+ }
541
+
542
+ .task-dragging {
543
+ opacity: 0.5;
544
+ z-index: 9999;
545
+ }
546
+
547
+ .js-gantt-tree-icon {
548
+ cursor: pointer;
549
+ width: 20px;
550
+ background-repeat: no-repeat;
551
+ background-position: 50%;
552
+ flex-grow: 0;
553
+ flex-shrink: 0;
554
+ }
555
+
556
+ .js-gantt-tree-close {
557
+ background-image: url('data:image/svg+xml,<svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.2947 0.219725C1.07551 0.00293446 0.750024 -0.0567913 0.466392 0.0555267C0.18335 0.174359 0 0.450875 0 0.758994L0 9.24099C0 9.54731 0.182767 9.82382 0.466392 9.94093C0.750024 10.0604 1.07551 9.99523 1.2947 9.77674L5.53596 5.53548C5.82974 5.2381 5.82974 4.75856 5.53596 4.46118L1.2947 0.219725Z" fill="%23A2A4AB"/></svg>');
558
+ }
559
+
560
+ .js-gantt-tree-open {
561
+ background-image: url('data:image/svg+xml,<svg width="11" height="6" viewBox="0 0 11 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.6584 1.41653C10.8752 1.19733 10.935 0.871851 10.8226 0.588218C10.7038 0.305177 10.4273 0.121826 10.1192 0.121826L1.63719 0.121826C1.33087 0.121826 1.05435 0.304593 0.937241 0.588218C0.817806 0.871851 0.882942 1.19734 1.10144 1.41653L5.34269 5.65779C5.64007 5.95157 6.11962 5.95157 6.417 5.65779L10.6584 1.41653Z" fill="%23A2A4AB"/></svg>');
562
+ }
563
+
564
+ /* custom scroller */
565
+ #js-gantt-ver-scroll-cell {
566
+ height: 100%;
567
+ width: 19px;
568
+ flex-grow: 0;
569
+ flex-shrink: 0;
570
+ background-color: var(--scroll-background);
571
+ position: relative;
572
+ left: 0;
573
+ right: 0;
574
+ }
575
+
576
+ #js-gantt-hor-scroll-cell {
577
+ width: 100%;
578
+ position: absolute;
579
+ top: 100%;
580
+ left: 0;
581
+ height: 1px;
582
+ background-color: var(--scroll-background);
583
+ }
584
+
585
+ .js-gantt-fullScreen #js-gantt-hor-scroll-cell {
586
+ margin-top: -17px;
587
+ }
588
+
589
+ .js-gantt-hor-scroll {
590
+ width: 100%;
591
+ background-color: transparent;
592
+ height: 19px;
593
+ overflow-x: auto;
594
+ overflow-y: hidden;
595
+ position: absolute;
596
+ left: 0;
597
+ z-index: 1;
598
+ }
599
+
600
+ .js-gantt-hor-scroll > div {
601
+ height: 1px;
602
+ }
603
+
604
+ .js-gantt-ver-scroll {
605
+ width: 100%;
606
+ overflow-y: auto;
607
+ overflow-x: hidden;
608
+ position: absolute;
609
+ }
610
+
611
+ .js-gantt-blank {
612
+ width: 20px;
613
+ height: inherit;
614
+ flex-grow: 0;
615
+ flex-shrink: 0;
616
+ }
617
+
618
+ .js-gantt-marker-area {
619
+ position: absolute;
620
+ height: 100%;
621
+ top: 0;
622
+ }
623
+
624
+ .js-gantt-marker-area .js-gantt-marker .js-gantt-marker-content {
625
+ padding: 5px;
626
+ background: inherit;
627
+ color: var(--marker-color);
628
+ position: absolute;
629
+ font-size: 12px;
630
+ line-height: 12px;
631
+ opacity: 0.8;
632
+ }
633
+
634
+ .js-gantt-marker-area .js-gantt-marker:hover {
635
+ background-color: var(--marker-hover-background);
636
+ }
637
+
638
+ .js-gantt-selected-task-bar {
639
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
640
+ }
641
+
642
+ .js-gantt-bar-milestone.js-gantt-selected-task-bar {
643
+ box-shadow: none;
644
+ }
645
+
646
+ .js-gantt-bar-milestone.js-gantt-selected-task-bar .js-gantt-bar-task-content {
647
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
648
+ }
649
+
650
+ /* arrow links to connect tasks */
651
+ .js-gantt-links-area {
652
+ position: absolute;
653
+ left: 0;
654
+ top: 0;
655
+ width: 100%;
656
+ }
657
+
658
+ .js-gantt-task-link {
659
+ position: absolute;
660
+ cursor: pointer;
661
+ z-index: 1006;
662
+ }
663
+
664
+ .js-gantt-link-line {
665
+ position: absolute;
666
+ background-color: var(--link-background);
667
+ transition: box-shadow 0.2s ease-in-out;
668
+ }
669
+
670
+ .js-gantt-task-link:not([link-type="2"], [link-type="3"])
671
+ .js-gantt-link-line:last-child:after {
672
+ content: " ";
673
+ height: 0;
674
+ position: absolute;
675
+ width: 0;
676
+ top: -6px;
677
+ left: calc(100% - 6px);
678
+ border: 7px solid transparent;
679
+ border-left-color: var(--link-border);
680
+ }
681
+
682
+ .js-gantt-task-link[link-type="2"] .js-gantt-link-line:last-child:before,
683
+ .js-gantt-task-link[link-type="3"] .js-gantt-link-line:last-child:before {
684
+ content: " ";
685
+ height: 0;
686
+ position: absolute;
687
+ width: 0;
688
+ top: -6px;
689
+ left: -7px;
690
+ border: 7px solid transparent;
691
+ border-right-color: var(--link-border);
692
+ }
693
+
694
+ .js-gantt-hor-link-line {
695
+ height: 2px;
696
+ }
697
+
698
+ .js-gantt-ver-link-line {
699
+ width: 2px;
700
+ }
701
+
702
+ .ver-inner-line {
703
+ height: 100%;
704
+ width: 10px;
705
+ margin-left: -4px;
706
+ }
707
+
708
+ .hor-inner-line {
709
+ height: 10px;
710
+ width: 100%;
711
+ margin-top: -4px;
712
+ }
713
+
714
+ .js-gantt-task-link:hover .js-gantt-link-line {
715
+ box-shadow: 0 0 5px 0 #ffa011;
716
+ }
717
+
718
+ .js-gantt-link-control div {
719
+ display: none;
720
+ cursor: pointer;
721
+ box-sizing: border-box;
722
+ position: relative;
723
+ top: 50%;
724
+ margin-top: -7.5px;
725
+ vertical-align: middle;
726
+ border: 1px solid var(--link-control-border);
727
+ border-radius: 6.5px;
728
+ height: 13px;
729
+ width: 13px;
730
+ background-color: var(--link-control-background);
731
+ }
732
+
733
+ .js-gantt-link-control {
734
+ width: 20px;
735
+ position: absolute;
736
+ top: 0;
737
+ height: 100%;
738
+ line-height: inherit;
739
+ z-index: 1007;
740
+ }
741
+
742
+ .js-gantt-link-control.js-gantt-right-point div {
743
+ margin-left: 7px;
744
+ }
745
+
746
+ .js-gantt-left-point {
747
+ left: -20px;
748
+ }
749
+ .js-gantt-right-point {
750
+ right: -20px;
751
+ }
752
+
753
+ .js-gantt-bar-task:hover .js-gantt-link-control div,
754
+ .js-gantt-bar-milestone:hover .js-gantt-link-control div {
755
+ display: block;
756
+ }
757
+
758
+ .js-gantt-bar-task.hovered .js-gantt-link-control div,
759
+ .js-gantt-bar-milestone.hovered .js-gantt-link-control div {
760
+ display: block;
761
+ }
762
+
763
+ .js-gantt-link-point:hover {
764
+ background-color: var(--link-control-hover-background);
765
+ }
766
+
767
+ .js-gantt-link-direction {
768
+ height: 0;
769
+ border: 0 none var(--link-border);
770
+ border-bottom-style: dashed;
771
+ border-bottom-width: 2px;
772
+ transform-origin: 0 0;
773
+ -ms-transform-origin: 0 0;
774
+ -webkit-transform-origin: 0 0;
775
+ z-index: 1008;
776
+ margin-left: 1px;
777
+ position: absolute;
778
+ }
779
+
780
+ .selected-target {
781
+ background-color: var(--selected-link-control-background) !important;
782
+ }
783
+
784
+ /* zt Gantt loader */
785
+ .js-gantt-loader {
786
+ width: 55px;
787
+ height: 55px;
788
+ perspective: 1000px;
789
+ border-radius: 50%;
790
+ color: var(--loader-color);
791
+ z-index: 1100;
792
+ position: fixed;
793
+ top: 50%;
794
+ left: 50%;
795
+ transform: rotateZ(45deg) translate(-50%, -50%);
796
+ }
797
+ .js-gantt-loader:before,
798
+ .js-gantt-loader:after {
799
+ content: "";
800
+ display: block;
801
+ position: absolute;
802
+ top: 0;
803
+ left: 0;
804
+ width: inherit;
805
+ height: inherit;
806
+ border-radius: 50%;
807
+ transform: rotateX(70deg);
808
+ animation: 1s spin linear infinite;
809
+ }
810
+ .js-gantt-loader:after {
811
+ color: var(--loader-after-color);
812
+ transform: rotateY(70deg);
813
+ animation-delay: 0.4s;
814
+ }
815
+
816
+ .js-gantt-loader-drop {
817
+ background-color: var(--loder-backdrop-background);
818
+ position: fixed;
819
+ width: 100vw;
820
+ height: 100vh;
821
+ top: 0;
822
+ left: 0;
823
+ z-index: 1099;
824
+ }
825
+
826
+ @keyframes rotate {
827
+ 0% {
828
+ transform: translate(-50%, -50%) rotateZ(0deg);
829
+ }
830
+ 100% {
831
+ transform: translate(-50%, -50%) rotateZ(360deg);
832
+ }
833
+ }
834
+
835
+ @keyframes rotateccw {
836
+ 0% {
837
+ transform: translate(-50%, -50%) rotate(0deg);
838
+ }
839
+ 100% {
840
+ transform: translate(-50%, -50%) rotate(-360deg);
841
+ }
842
+ }
843
+
844
+ @keyframes spin {
845
+ 0%,
846
+ 100% {
847
+ box-shadow: 0.2em 0px 0 0px currentcolor;
848
+ }
849
+ 12% {
850
+ box-shadow: 0.2em 0.2em 0 0 currentcolor;
851
+ }
852
+ 25% {
853
+ box-shadow: 0 0.2em 0 0px currentcolor;
854
+ }
855
+ 37% {
856
+ box-shadow: -0.2em 0.2em 0 0 currentcolor;
857
+ }
858
+ 50% {
859
+ box-shadow: -0.2em 0 0 0 currentcolor;
860
+ }
861
+ 62% {
862
+ box-shadow: -0.2em -0.2em 0 0 currentcolor;
863
+ }
864
+ 75% {
865
+ box-shadow: 0px -0.2em 0 0 currentcolor;
866
+ }
867
+ 87% {
868
+ box-shadow: 0.2em -0.2em 0 0 currentcolor;
869
+ }
870
+ }
871
+
872
+ .task-area {
873
+ position: absolute;
874
+ border: 1px solid var(--task-area-border);
875
+ background-color: var(--task-area-background);
876
+ z-index: 1008;
877
+ }
878
+
879
+ .js-gantt-task-progress-wrapper {
880
+ position: relative;
881
+ width: 100%;
882
+ height: 100%;
883
+ line-height: inherit;
884
+ overflow: hidden;
885
+ border-radius: 3px;
886
+ }
887
+
888
+ .js-gantt-task-progress {
889
+ height: 100%;
890
+ }
891
+
892
+ .js-gantt-task-progress-drag {
893
+ position: absolute;
894
+ cursor: ew-resize;
895
+ display: none;
896
+ background-repeat: no-repeat;
897
+ background-position: 50%;
898
+ width: 16px;
899
+ height: 10px;
900
+ bottom: -4px;
901
+ margin-left: -8px;
902
+ z-index: 1;
903
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=");
904
+ }
905
+
906
+ .js-gantt-bar-task.js-gantt-bar-parent-task .js-gantt-task-progress {
907
+ background-color: var(--task-progress-background);
908
+ }
909
+
910
+ .js-gantt-bar-task.child-task .js-gantt-task-progress {
911
+ background-color: var(--child-task-progress-background);
912
+ }
913
+
914
+ .js-gantt-bar-task:hover .js-gantt-task-progress-drag {
915
+ display: block;
916
+ }
917
+
918
+ /* milestone css */
919
+ .js-gantt-bar-milestone {
920
+ position: absolute;
921
+ z-index: 1007;
922
+ height: 40px;
923
+ line-height: inherit;
924
+ background-color: transparent !important;
925
+ border: 0px solid transparent !important;
926
+ border-radius: 3px;
927
+ text-align: center;
928
+ margin-left: -10px;
929
+ }
930
+
931
+ .js-gantt-side-content {
932
+ height: 100%;
933
+ line-height: inherit;
934
+ position: absolute;
935
+ top: 0;
936
+ white-space: nowrap;
937
+ left: calc(100% + 22px);
938
+ color: var(--milestone-content-color);
939
+ cursor: pointer;
940
+ }
941
+
942
+ .js-gantt-bar-milestone .js-gantt-bar-task-content {
943
+ background-color: var(--milestone-content-background);
944
+ border: 1px solid var(--milestone-content-border);
945
+ border-radius: inherit;
946
+ box-sizing: border-box;
947
+ -moz-box-sizing: border-box;
948
+ transform: rotate(45deg);
949
+ }
950
+
951
+ .js-gantt-bar-milestone div {
952
+ visibility: visible;
953
+ }
954
+
955
+ /* toastr css start */
956
+ .js-gantt-toastr-area {
957
+ position: fixed;
958
+ z-index: 999999;
959
+ right: 5px;
960
+ top: 5px;
961
+ }
962
+
963
+ .js-gantt-toastr {
964
+ visibility: hidden;
965
+ min-width: 250px;
966
+ max-width: 350px;
967
+ background-color: #aaaaaa;
968
+ color: #fff;
969
+ border-radius: 3px;
970
+ padding: 16px;
971
+ margin: 5px;
972
+ font-size: 14px;
973
+ cursor: pointer;
974
+ opacity: 0.9;
975
+ transition: all 0.3s ease-in;
976
+ }
977
+
978
+ .js-gantt-toastr:hover {
979
+ opacity: 1;
980
+ -moz-box-shadow: 0 0 12px #000000;
981
+ -webkit-box-shadow: 0 0 12px #000000;
982
+ box-shadow: 0 0 12px #000000;
983
+ }
984
+
985
+ .js-gantt-toastr p {
986
+ color: #fff;
987
+ font-weight: 400;
988
+ margin: 0;
989
+ }
990
+
991
+ .js-gantt-toastr p:first-child {
992
+ font-weight: 800;
993
+ }
994
+
995
+ .js-gantt-toastr.js-gantt-toastr-success {
996
+ background-color: #51a351;
997
+ }
998
+
999
+ .js-gantt-toastr.js-gantt-toastr-error {
1000
+ background-color: #bd362f;
1001
+ }
1002
+
1003
+ .js-gantt-toastr.js-gantt-toastr-info {
1004
+ background-color: #2f96b4;
1005
+ }
1006
+
1007
+ .js-gantt-toastr.js-gantt-toastr-warning {
1008
+ background-color: #f89406;
1009
+ }
1010
+
1011
+ .js-gantt-toastr.js-gantt-toastr-show {
1012
+ visibility: visible;
1013
+ -webkit-animation: fadein 0.5s;
1014
+ animation: fadein 0.5s;
1015
+ }
1016
+
1017
+ .js-gantt-toastr.js-gantt-toastr-hide {
1018
+ visibility: visible;
1019
+ -webkit-animation: fadeout 0.5s;
1020
+ animation: fadeout 0.5s;
1021
+ }
1022
+
1023
+ @-webkit-keyframes fadein {
1024
+ from {
1025
+ margin-top: 0;
1026
+ opacity: 0;
1027
+ }
1028
+ to {
1029
+ margin-top: 5px;
1030
+ opacity: 0.9;
1031
+ }
1032
+ }
1033
+
1034
+ @keyframes fadein {
1035
+ from {
1036
+ margin-top: 0;
1037
+ opacity: 0;
1038
+ }
1039
+ to {
1040
+ margin-top: 5px;
1041
+ opacity: 0.9;
1042
+ }
1043
+ }
1044
+
1045
+ @-webkit-keyframes fadeout {
1046
+ from {
1047
+ margin-top: 5px;
1048
+ opacity: 0.9;
1049
+ }
1050
+ to {
1051
+ margin-top: 0;
1052
+ opacity: 0;
1053
+ }
1054
+ }
1055
+
1056
+ @keyframes fadeout {
1057
+ from {
1058
+ margin-top: 5px;
1059
+ opacity: 0.9;
1060
+ }
1061
+ to {
1062
+ margin-top: 0;
1063
+ opacity: 0;
1064
+ }
1065
+ }
1066
+ /* toastr css end */
1067
+
1068
+ .js-gantt-task-color-picker {
1069
+ visibility: hidden;
1070
+ position: absolute;
1071
+ right: 0;
1072
+ top: 0;
1073
+ height: 100%;
1074
+ width: 50px;
1075
+ margin-right: -50px;
1076
+ }
1077
+
1078
+ .js-gantt-bar-task:hover .js-gantt-task-color-picker,
1079
+ .js-gantt-bar-task:hover .js-gantt-task-color-picker input {
1080
+ visibility: visible;
1081
+ }
1082
+
1083
+ .js-gantt-task-color-picker input {
1084
+ -webkit-appearance: none;
1085
+ -moz-appearance: none;
1086
+ appearance: none;
1087
+ visibility: hidden;
1088
+ width: 25px;
1089
+ height: 100%;
1090
+ background-color: transparent;
1091
+ border: none;
1092
+ cursor: pointer;
1093
+ position: absolute;
1094
+ top: 0;
1095
+ }
1096
+ .js-gantt-task-color-picker input::-webkit-color-swatch {
1097
+ border-radius: 2px;
1098
+ border: none;
1099
+ }
1100
+ .js-gantt-task-color-picker input::-moz-color-swatch {
1101
+ border-radius: 2px;
1102
+ border: none;
1103
+ }
1104
+
1105
+ .js-gantt-bar-milestone .js-gantt-task-color-picker {
1106
+ left: 0;
1107
+ margin-left: -50px;
1108
+ margin-right: 0;
1109
+ }
1110
+
1111
+ .js-gantt-bar-milestone .js-gantt-task-color-picker input {
1112
+ margin-left: -25px;
1113
+ }
1114
+
1115
+ .head-cell .js-gantt-sort {
1116
+ position: absolute;
1117
+ right: 5px;
1118
+ top: 50%;
1119
+ width: 7px;
1120
+ height: 13px;
1121
+ background-repeat: no-repeat;
1122
+ background-position: 50%;
1123
+ transform: translateY(-50%);
1124
+ }
1125
+
1126
+ .head-cell .js-gantt-sort.js-gantt-asc {
1127
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC);
1128
+ }
1129
+
1130
+ .head-cell .js-gantt-sort.js-gantt-desc {
1131
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC);
1132
+ }
1133
+
1134
+ .js-gantt-inline-editor-wraper {
1135
+ position: absolute;
1136
+ }
1137
+
1138
+ .js-gantt-inline-editor-wraper > input,
1139
+ .js-gantt-inline-editor-wraper > select {
1140
+ height: 100%;
1141
+ width: 100%;
1142
+ }
1143
+
1144
+ .drop-area {
1145
+ position: absolute;
1146
+ z-index: -1;
1147
+ width: 100%;
1148
+ border: 1px solid var(--task-area-border);
1149
+ background: var(--task-area-background);
1150
+ transition: all 0.2s ease;
1151
+ opacity: 0;
1152
+ }
1153
+
1154
+ .js-gantt-timeline-data:has(.task-dragging) .drop-area {
1155
+ z-index: 101;
1156
+ opacity: 1;
1157
+ }