@worktile/gantt 12.2.3 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/components/bar/bar.component.scss +201 -0
  2. package/components/calendar/calendar.component.scss +79 -0
  3. package/components/drag-backdrop/drag-backdrop.component.scss +50 -0
  4. package/components/icon/icon.component.scss +13 -0
  5. package/components/links/links.component.scss +29 -0
  6. package/components/range/range.component.scss +35 -0
  7. package/components/table/gantt-table.component.scss +153 -0
  8. package/{esm2015/class/date-point.js → esm2020/class/date-point.mjs} +0 -0
  9. package/{esm2015/class/event.js → esm2020/class/event.mjs} +0 -0
  10. package/{esm2015/class/group.js → esm2020/class/group.mjs} +0 -0
  11. package/{esm2015/class/index.js → esm2020/class/index.mjs} +0 -0
  12. package/{esm2015/class/item.js → esm2020/class/item.mjs} +0 -0
  13. package/{esm2015/class/link.js → esm2020/class/link.mjs} +0 -0
  14. package/{esm2015/class/view-type.js → esm2020/class/view-type.mjs} +0 -0
  15. package/esm2020/components/bar/bar-drag.mjs +308 -0
  16. package/{esm2015/components/bar/bar.component.js → esm2020/components/bar/bar.component.mjs} +5 -9
  17. package/{esm2015/components/calendar/calendar.component.js → esm2020/components/calendar/calendar.component.mjs} +5 -8
  18. package/{esm2015/components/drag-backdrop/drag-backdrop.component.js → esm2020/components/drag-backdrop/drag-backdrop.component.mjs} +6 -10
  19. package/{esm2015/components/icon/icon.component.js → esm2020/components/icon/icon.component.mjs} +3 -3
  20. package/{esm2015/components/icon/icons.js → esm2020/components/icon/icons.mjs} +0 -0
  21. package/esm2020/components/links/lines/curve.mjs +95 -0
  22. package/{esm2015/components/links/lines/factory.js → esm2020/components/links/lines/factory.mjs} +0 -0
  23. package/{esm2015/components/links/lines/line.js → esm2020/components/links/lines/line.mjs} +0 -0
  24. package/{esm2015/components/links/lines/straight.js → esm2020/components/links/lines/straight.mjs} +0 -0
  25. package/esm2020/components/links/links.component.mjs +178 -0
  26. package/{esm2015/components/main/gantt-main.component.js → esm2020/components/main/gantt-main.component.mjs} +5 -8
  27. package/{esm2015/components/range/range.component.js → esm2020/components/range/range.component.mjs} +5 -8
  28. package/esm2020/components/table/gantt-table.component.mjs +161 -0
  29. package/{esm2015/gantt-abstract.js → esm2020/gantt-abstract.mjs} +0 -0
  30. package/{esm2015/gantt-dom.service.js → esm2020/gantt-dom.service.mjs} +3 -3
  31. package/{esm2015/gantt-drag-container.js → esm2020/gantt-drag-container.mjs} +5 -6
  32. package/{esm2015/gantt-item-upper.js → esm2020/gantt-item-upper.mjs} +4 -4
  33. package/esm2020/gantt-print.service.mjs +94 -0
  34. package/esm2020/gantt-upper.mjs +339 -0
  35. package/{esm2015/gantt.component.js → esm2020/gantt.component.mjs} +7 -13
  36. package/{esm2015/gantt.config.js → esm2020/gantt.config.mjs} +0 -0
  37. package/{esm2015/gantt.module.js → esm2020/gantt.module.mjs} +4 -4
  38. package/{esm2015/gantt.pipe.js → esm2020/gantt.pipe.mjs} +9 -9
  39. package/{esm2015/gantt.styles.js → esm2020/gantt.styles.mjs} +0 -0
  40. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  41. package/{esm2015/root.component.js → esm2020/root.component.mjs} +6 -11
  42. package/{esm2015/table/gantt-column.component.js → esm2020/table/gantt-column.component.mjs} +3 -3
  43. package/{esm2015/table/gantt-table.component.js → esm2020/table/gantt-table.component.mjs} +3 -3
  44. package/{esm2015/utils/date.js → esm2020/utils/date.mjs} +0 -0
  45. package/{esm2015/utils/helpers.js → esm2020/utils/helpers.mjs} +0 -0
  46. package/{esm2015/utils/passive-listeners.js → esm2020/utils/passive-listeners.mjs} +0 -0
  47. package/{esm2015/utils/set-style-with-vendor-prefix.js → esm2020/utils/set-style-with-vendor-prefix.mjs} +0 -0
  48. package/{esm2015/views/day.js → esm2020/views/day.mjs} +0 -0
  49. package/{esm2015/views/factory.js → esm2020/views/factory.mjs} +0 -0
  50. package/{esm2015/views/month.js → esm2020/views/month.mjs} +0 -0
  51. package/{esm2015/views/quarter.js → esm2020/views/quarter.mjs} +0 -0
  52. package/{esm2015/views/view.js → esm2020/views/view.mjs} +5 -5
  53. package/{esm2015/views/week.js → esm2020/views/week.mjs} +0 -0
  54. package/{esm2015/views/year.js → esm2020/views/year.mjs} +0 -0
  55. package/{esm2015/worktile-gantt.js → esm2020/worktile-gantt.mjs} +0 -0
  56. package/fesm2015/worktile-gantt.mjs +3078 -0
  57. package/fesm2015/worktile-gantt.mjs.map +1 -0
  58. package/{fesm2015/worktile-gantt.js → fesm2020/worktile-gantt.mjs} +159 -191
  59. package/fesm2020/worktile-gantt.mjs.map +1 -0
  60. package/gantt-item-upper.d.ts +1 -1
  61. package/gantt-upper.d.ts +1 -1
  62. package/gantt.component.scss +83 -0
  63. package/package.json +35 -9
  64. package/styles/index.scss +9 -0
  65. package/styles/variables.scss +46 -0
  66. package/bundles/worktile-gantt.umd.js +0 -3723
  67. package/bundles/worktile-gantt.umd.js.map +0 -1
  68. package/esm2015/components/bar/bar-drag.js +0 -306
  69. package/esm2015/components/links/lines/curve.js +0 -96
  70. package/esm2015/components/links/links.component.js +0 -173
  71. package/esm2015/components/table/gantt-table.component.js +0 -167
  72. package/esm2015/gantt-print.service.js +0 -97
  73. package/esm2015/gantt-upper.js +0 -340
  74. package/fesm2015/worktile-gantt.js.map +0 -1
  75. package/main.bundle.scss +0 -688
@@ -0,0 +1,201 @@
1
+ @use 'sass:math';
2
+ @use '../../styles/variables';
3
+
4
+ $gantt-bar-layer-append-width: 32px;
5
+ $gantt-bar-layer-append-height: 42px;
6
+ $gantt-bar-link-height: 16px;
7
+ $gantt-bar-link-handle-size: 16px;
8
+ $gantt-bar-link-drop-border: 5px;
9
+
10
+ @mixin link-handles {
11
+ .link-handles {
12
+ .handle {
13
+ position: absolute;
14
+ display: inline-block;
15
+ cursor: pointer;
16
+ width: $gantt-bar-link-height;
17
+ height: $gantt-bar-link-height;
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ z-index: 1001;
22
+
23
+ &:first-child {
24
+ left: 0;
25
+ top: 0;
26
+ }
27
+
28
+ &:last-child {
29
+ right: 0;
30
+ bottom: 0;
31
+ }
32
+
33
+ .point {
34
+ color: #348fe4;
35
+ width: 10px;
36
+ height: 10px;
37
+ border-radius: 50%;
38
+ background: #348fe4;
39
+ transition: 0.3 ease;
40
+
41
+ &:hover {
42
+ width: 12px;
43
+ height: 12px;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ @mixin drag-handles {
51
+ .drag-handles {
52
+ background: variables.$gantt-bar-layer-bg;
53
+ width: 100%;
54
+ height: calc(100% - #{$gantt-bar-link-height} * 2);
55
+ position: absolute;
56
+ border-radius: 4px;
57
+ top: $gantt-bar-link-height;
58
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.15);
59
+
60
+ .handle {
61
+ width: 15px;
62
+ height: 100%;
63
+ position: absolute;
64
+ cursor: col-resize;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+
69
+ &:before,
70
+ &:after {
71
+ content: '';
72
+ display: inline-block;
73
+ width: 1px;
74
+ height: variables.$gantt-bar-handle-height;
75
+ background: variables.$gantt-bar-handle-color;
76
+ }
77
+
78
+ &::before {
79
+ margin-right: 2px;
80
+ }
81
+
82
+ &:first-child {
83
+ left: 0;
84
+ }
85
+
86
+ &:last-child {
87
+ right: 0;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ @mixin active-bar {
94
+ z-index: 1000;
95
+
96
+ .gantt-bar-layer {
97
+ display: block;
98
+ z-index: 1;
99
+ }
100
+
101
+ .gantt-bar-content {
102
+ z-index: 1;
103
+ box-shadow: none;
104
+ }
105
+
106
+ .cdk-drag {
107
+ transition: none;
108
+ }
109
+ }
110
+
111
+ .gantt-bar {
112
+ position: absolute;
113
+ border-radius: 4px;
114
+ z-index: 2;
115
+ background: variables.$gantt-bar-bg;
116
+
117
+ .gantt-bar-layer {
118
+ width: calc(100% + #{$gantt-bar-layer-append-width});
119
+ height: calc(100% + #{$gantt-bar-layer-append-height});
120
+ position: absolute;
121
+ border-radius: 4px;
122
+ left: math.div($gantt-bar-layer-append-width, 2) * -1;
123
+ top: math.div($gantt-bar-layer-append-height, 2) * -1;
124
+ display: none;
125
+ @include drag-handles();
126
+ @include link-handles();
127
+ }
128
+
129
+ .gantt-bar-border {
130
+ width: calc(100% + #{$gantt-bar-link-drop-border} * 2);
131
+ height: calc(100% + #{$gantt-bar-link-drop-border} * 2);
132
+ position: absolute;
133
+ border-radius: 4px;
134
+ left: $gantt-bar-link-drop-border * -1;
135
+ top: $gantt-bar-link-drop-border * -1;
136
+ display: none;
137
+ background: #fff;
138
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
139
+ }
140
+
141
+ .gantt-bar-content {
142
+ width: 100%;
143
+ height: 100%;
144
+ position: absolute;
145
+ cursor: pointer;
146
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
147
+ border-radius: 4px;
148
+ background: variables.$gantt-bar-background-color;
149
+ overflow: hidden;
150
+ box-sizing: border-box;
151
+
152
+ .gantt-bar-content-progress {
153
+ position: absolute;
154
+ left: 0;
155
+ top: 0;
156
+ height: 100%;
157
+ }
158
+ }
159
+
160
+ &-active {
161
+ @include active-bar();
162
+ }
163
+
164
+ &-single-drop-active {
165
+ .gantt-bar-border {
166
+ display: block;
167
+ }
168
+
169
+ .gantt-bar-content {
170
+ box-shadow: none;
171
+ }
172
+ }
173
+
174
+ &-drop-active {
175
+ @include active-bar();
176
+
177
+ .gantt-bar-layer {
178
+ .link-handles {
179
+ .handle {
180
+ width: $gantt-bar-link-handle-size + 10px;
181
+ height: 100%;
182
+
183
+ &:first-child {
184
+ left: -$gantt-bar-link-handle-size - 5px;
185
+ }
186
+
187
+ &:last-child {
188
+ right: -$gantt-bar-link-handle-size - 5px;
189
+ }
190
+
191
+ &:hover {
192
+ .point {
193
+ width: 12px;
194
+ height: 12px;
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
@@ -0,0 +1,79 @@
1
+ @use '../../styles/variables';
2
+
3
+ .gantt-calendar-overlay {
4
+ display: block;
5
+ height: 100%;
6
+ overflow: hidden;
7
+
8
+ .gantt-calendar-today-overlay {
9
+ position: relative;
10
+ z-index: 2;
11
+ .today-rect {
12
+ width: 35px;
13
+ height: 24px;
14
+ position: absolute;
15
+ background: variables.$gantt-date-today-color;
16
+ color: variables.$gantt-date-today-text-color;
17
+ text-align: center;
18
+ border-radius: 4px;
19
+ }
20
+ .today-line {
21
+ position: absolute;
22
+ width: 3px;
23
+ background: variables.$gantt-date-today-color;
24
+ transform: scaleX(0.5);
25
+ transform-origin: 100% 0;
26
+ margin-left: -2px;
27
+ }
28
+ }
29
+
30
+ .gantt-calendar-overlay-main {
31
+ position: relative;
32
+ z-index: 1;
33
+ background-color: variables.$gantt-bg-color;
34
+ }
35
+
36
+ svg {
37
+ overflow: visible;
38
+ }
39
+
40
+ line {
41
+ shape-rendering: crispEdges;
42
+ }
43
+
44
+ .primary-text {
45
+ fill: variables.$gantt-date-primary-color;
46
+ font-size: variables.$gantt-date-primary-font-size;
47
+ }
48
+
49
+ .secondary-text {
50
+ fill: variables.$gantt-date-secondary-color;
51
+ font-size: variables.$gantt-date-secondary-font-size;
52
+
53
+ &-weekend {
54
+ fill: variables.$gantt-date-secondary-weekend-color;
55
+ }
56
+ }
57
+
58
+ .primary-text,
59
+ .secondary-text {
60
+ text-anchor: middle;
61
+ }
62
+
63
+ .primary-line {
64
+ stroke: variables.$gantt-date-primary-border;
65
+ }
66
+
67
+ .secondary-line {
68
+ stroke-dasharray: 2px 5px;
69
+ stroke: #cacaca;
70
+ }
71
+
72
+ .header-line {
73
+ stroke: variables.$gantt-border-color;
74
+ }
75
+
76
+ .secondary-backdrop {
77
+ fill: variables.$gantt-date-week-backdrop-bg;
78
+ }
79
+ }
@@ -0,0 +1,50 @@
1
+ @use '../../styles/variables';
2
+
3
+ .gantt-drag-backdrop {
4
+ position: absolute;
5
+ top: 0;
6
+ right: 0;
7
+ bottom: 0;
8
+ left: 0;
9
+ z-index: 2;
10
+ display: none;
11
+ }
12
+
13
+ .gantt-drag-mask {
14
+ position: absolute;
15
+ top: variables.$gantt-header-height;
16
+ z-index: 1;
17
+ height: 100%;
18
+ display: none;
19
+ background: rgba($color: variables.$gantt-item-drag-mask-color, $alpha: 0.05);
20
+
21
+ .date-range {
22
+ width: 100%;
23
+ min-width: 120px;
24
+ top: -23px;
25
+ background: variables.$gantt-item-drag-mask-color;
26
+ line-height: 23px;
27
+ border-radius: 4px;
28
+ color: #fff;
29
+ position: absolute;
30
+ display: flex;
31
+ justify-content: space-between;
32
+ padding: 0 10px;
33
+ box-sizing: border-box;
34
+ }
35
+ }
36
+
37
+ .gantt-link-drag-container {
38
+ width: 100%;
39
+ height: 1px;
40
+ overflow: visible !important;
41
+ position: absolute;
42
+ top: 0;
43
+ left: 0;
44
+ z-index: 2000;
45
+
46
+ .link-dragging-line {
47
+ stroke: variables.$gantt-link-dragging-line-color;
48
+ stroke-width: 2px;
49
+ }
50
+ }
@@ -0,0 +1,13 @@
1
+ .gantt-icon {
2
+ font-size: 1rem;
3
+ line-height: 0;
4
+
5
+ svg {
6
+ width: 1em;
7
+ height: 1em;
8
+ fill: currentColor;
9
+ vertical-align: -0.125em;
10
+ background-repeat: no-repeat;
11
+ }
12
+
13
+ }
@@ -0,0 +1,29 @@
1
+ @use '../../styles/variables';
2
+
3
+ .gantt-links-overlay {
4
+ position: absolute;
5
+ top: 0px;
6
+ left: 0px;
7
+ width: 100%;
8
+ height: 100%;
9
+ svg {
10
+ overflow: visible;
11
+ z-index: 2;
12
+ position: absolute;
13
+ }
14
+ }
15
+
16
+ .link-dragging-container {
17
+ width: 100%;
18
+ height: 1px;
19
+ overflow: visible !important;
20
+ position: absolute;
21
+ top: variables.$gantt-header-height;
22
+ left: 0;
23
+ z-index: 2000;
24
+
25
+ .link-dragging-line {
26
+ stroke: variables.$gantt-link-line-color;
27
+ stroke-width: 2px;
28
+ }
29
+ }
@@ -0,0 +1,35 @@
1
+ .gantt-range {
2
+ position: absolute;
3
+ z-index: 2;
4
+ .gantt-range-main {
5
+ height: 10px;
6
+ background: #dfdfdf;
7
+ border: 1px solid #888;
8
+ border-radius: 4px 4px 0 0;
9
+ box-sizing: border-box;
10
+ position: relative;
11
+ .gantt-range-main-progress {
12
+ position: absolute;
13
+ left: 0;
14
+ top: 0;
15
+ height: 100%;
16
+ background: #888;
17
+ }
18
+ }
19
+ .gantt-range-triangle {
20
+ width: 0;
21
+ height: 0;
22
+ border-top: 7px solid #888;
23
+ position: absolute;
24
+ top: 10px;
25
+
26
+ &.left {
27
+ border-right: 6px solid transparent;
28
+ left: 0;
29
+ }
30
+ &.right {
31
+ border-left: 6px solid transparent;
32
+ right: 0;
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,153 @@
1
+ @use '../../styles/variables';
2
+
3
+ .gantt-table {
4
+ display: block;
5
+ &-empty {
6
+ height: 100%;
7
+ position: relative;
8
+ .gantt-table-body {
9
+ position: absolute;
10
+ text-align: center;
11
+ top: 50%;
12
+ left: 50%;
13
+ transform: translate(-50%, -50%);
14
+ margin-top: 22px;
15
+ .empty-icon {
16
+ svg {
17
+ height: 78px;
18
+ width: 78px;
19
+ }
20
+ }
21
+ .empty-text {
22
+ color: #cacaca;
23
+ }
24
+ }
25
+ }
26
+
27
+ &-drag-trigger {
28
+ width: variables.$gantt-table-header-drag-line-width;
29
+ position: absolute;
30
+ top: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ cursor: ew-resize;
34
+ z-index: 1;
35
+
36
+ &:hover {
37
+ background: variables.$gantt-table-header-drag-line-color;
38
+ z-index: 2;
39
+ }
40
+ }
41
+
42
+ &-drag-auxiliary-line {
43
+ width: variables.$gantt-table-header-drag-line-width;
44
+ background: variables.$gantt-table-header-drag-line-color;
45
+ position: absolute;
46
+ top: 0;
47
+ bottom: 0;
48
+ z-index: 100;
49
+ display: none;
50
+ }
51
+
52
+ .gantt-table-row {
53
+ display: flex;
54
+ box-sizing: border-box;
55
+ border-bottom: 1px solid variables.$gantt-border-color;
56
+
57
+ .gantt-table-column {
58
+ overflow: hidden;
59
+ border-right: 1px solid variables.$gantt-border-color;
60
+ box-sizing: border-box;
61
+ position: relative;
62
+
63
+ &:last-child {
64
+ border-right: none;
65
+ }
66
+ }
67
+ }
68
+
69
+ .gantt-table-header {
70
+ text-align: center;
71
+ position: sticky;
72
+ top: 0;
73
+ background: #fff;
74
+ z-index: 2;
75
+ height: variables.$gantt-header-height;
76
+ line-height: variables.$gantt-header-height;
77
+
78
+ .gantt-table-column {
79
+ font-weight: 400;
80
+ }
81
+ }
82
+
83
+ .gantt-table-body {
84
+ .gantt-table-group {
85
+ display: flex;
86
+ height: variables.$gantt-group-height;
87
+ background: variables.$gantt-group-background-color;
88
+ padding: 0 10px;
89
+ align-items: center;
90
+ border-bottom: 1px solid variables.$gantt-border-color;
91
+ box-sizing: border-box;
92
+ position: relative;
93
+
94
+ .gantt-table-group-title {
95
+ cursor: pointer;
96
+
97
+ .expand-icon {
98
+ color: #aaa;
99
+ margin-right: 6px;
100
+ }
101
+ }
102
+ }
103
+
104
+ .gantt-table-item {
105
+ cursor: pointer;
106
+ &-first-level-group {
107
+ background: variables.$gantt-group-background-color;
108
+ }
109
+
110
+ &-with-group {
111
+ .gantt-table-column {
112
+ &:first-child {
113
+ padding: 0 15px 0 32px;
114
+ }
115
+ }
116
+ }
117
+
118
+ .gantt-table-column {
119
+ display: flex;
120
+ padding: variables.$gantt-table-td-padding;
121
+
122
+ &:last-child {
123
+ border-right: none;
124
+ }
125
+ }
126
+
127
+ .gantt-table-column-content {
128
+ flex: 1;
129
+ position: relative;
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ white-space: nowrap;
133
+ }
134
+
135
+ &:hover {
136
+ background-color: variables.$gantt-container-background-color;
137
+ }
138
+
139
+ &-active {
140
+ background-color: rgba($color: variables.$gantt-table-header-drag-line-color, $alpha: 0.1);
141
+ &:hover {
142
+ background-color: rgba($color: variables.$gantt-table-header-drag-line-color, $alpha: 0.1);
143
+ }
144
+ }
145
+ }
146
+
147
+ .gantt-expand-icon {
148
+ display: inline-block;
149
+ width: 20px;
150
+ color: #aaa;
151
+ }
152
+ }
153
+ }