gantt-task-react-v 1.4.7 → 1.4.9

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.
package/dist/style.css CHANGED
@@ -122,6 +122,119 @@
122
122
  width: 20px;
123
123
  height: 20px;
124
124
  }
125
+ ._toggleWrapper_rjfhl_1 {
126
+ position: relative;
127
+ display: inline-flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ }
131
+
132
+ ._toggleButton_rjfhl_15 {
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ width: 24px;
137
+ height: 24px;
138
+ border: none;
139
+ background: transparent;
140
+ cursor: pointer;
141
+ border-radius: 4px;
142
+ color: var(--gantt-table-header-color, #555);
143
+ padding: 2px;
144
+ }
145
+
146
+ ._toggleButton_rjfhl_15:hover {
147
+ background-color: var(--gantt-table-hover-action-color, rgba(0, 0, 0, 0.08));
148
+ }
149
+
150
+ ._dropdown_rjfhl_51 {
151
+ position: absolute;
152
+ top: 100%;
153
+ right: 0;
154
+ z-index: 100;
155
+ min-width: 180px;
156
+ max-height: 300px;
157
+ overflow-y: auto;
158
+ background: var(--gantt-table-header-background-color, #fff);
159
+ border: 1px solid
160
+ var(--gantt-table-divider-color, var(--gantt-divider-color, #e0e0e0));
161
+ border-radius: 6px;
162
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
163
+ padding: 4px 0;
164
+ margin-top: 4px;
165
+ }
166
+
167
+ ._dropdownItem_rjfhl_85 {
168
+ display: flex;
169
+ align-items: center;
170
+ gap: 8px;
171
+ padding: 6px 12px;
172
+ cursor: pointer;
173
+ font-size: var(--gantt-font-size, 12px);
174
+ font-family: var(
175
+ --gantt-font-family,
176
+ Arial,
177
+ Roboto,
178
+ Oxygen,
179
+ Ubuntu,
180
+ Cantarell,
181
+ "Fira Sans",
182
+ "Droid Sans",
183
+ "Helvetica Neue",
184
+ sans-serif
185
+ );
186
+ color: var(--gantt-table-header-color, #333);
187
+ white-space: nowrap;
188
+ user-select: none;
189
+ }
190
+
191
+ ._dropdownItem_rjfhl_85:hover {
192
+ background-color: var(--gantt-table-hover-action-color, rgba(0, 0, 0, 0.04));
193
+ }
194
+
195
+ ._checkbox_rjfhl_141 {
196
+ width: 14px;
197
+ height: 14px;
198
+ accent-color: var(--gantt-bar-background-color, #4e87c4);
199
+ cursor: pointer;
200
+ margin: 0;
201
+ }
202
+
203
+ ._columnLabel_rjfhl_157 {
204
+ flex: 1;
205
+ overflow: hidden;
206
+ text-overflow: ellipsis;
207
+ }
208
+
209
+ ._dropdownTitle_rjfhl_169 {
210
+ padding: 6px 12px 4px;
211
+ font-size: 11px;
212
+ font-weight: 600;
213
+ text-transform: uppercase;
214
+ letter-spacing: 0.5px;
215
+ color: var(--gantt-table-header-color, #999);
216
+ font-family: var(
217
+ --gantt-font-family,
218
+ Arial,
219
+ Roboto,
220
+ Oxygen,
221
+ Ubuntu,
222
+ Cantarell,
223
+ "Fira Sans",
224
+ "Droid Sans",
225
+ "Helvetica Neue",
226
+ sans-serif
227
+ );
228
+ }
229
+
230
+ ._divider_rjfhl_211 {
231
+ height: 1px;
232
+ margin: 4px 0;
233
+ background: var(
234
+ --gantt-table-divider-color,
235
+ var(--gantt-divider-color, #e0e0e0)
236
+ );
237
+ }
125
238
  /*noinspection CssUnresolvedCustomProperty*/
126
239
  ._ganttTable_5goa0_3 {
127
240
  display: table;
@@ -728,7 +841,7 @@
728
841
  ._loaderHidden_covn4_49 {
729
842
  display: none;
730
843
  }
731
- ._overlay_1rnqn_1 {
844
+ ._overlay_hyem8_1 {
732
845
  position: absolute;
733
846
  top: 0;
734
847
  left: 0;
@@ -737,7 +850,7 @@
737
850
  z-index: 998;
738
851
  }
739
852
 
740
- ._drawer_1rnqn_19 {
853
+ ._drawer_hyem8_19 {
741
854
  position: absolute;
742
855
  top: 0;
743
856
  right: 0;
@@ -753,11 +866,11 @@
753
866
  transition: transform 0.25s ease;
754
867
  }
755
868
 
756
- ._drawer_open_1rnqn_51 {
869
+ ._drawer_open_hyem8_51 {
757
870
  transform: translateX(0);
758
871
  }
759
872
 
760
- ._header_1rnqn_59 {
873
+ ._header_hyem8_59 {
761
874
  display: flex;
762
875
  align-items: center;
763
876
  justify-content: space-between;
@@ -766,7 +879,7 @@
766
879
  flex-shrink: 0;
767
880
  }
768
881
 
769
- ._title_1rnqn_77 {
882
+ ._title_hyem8_77 {
770
883
  font-weight: 600;
771
884
  font-size: 14px;
772
885
  color: var(--gantt-drawer-title-color, #333);
@@ -776,7 +889,7 @@
776
889
  white-space: nowrap;
777
890
  }
778
891
 
779
- ._closeButton_1rnqn_97 {
892
+ ._closeButton_hyem8_97 {
780
893
  background: none;
781
894
  border: none;
782
895
  cursor: pointer;
@@ -789,13 +902,43 @@
789
902
  transition: background 0.15s ease;
790
903
  }
791
904
 
792
- ._closeButton_1rnqn_97:hover {
905
+ ._closeButton_hyem8_97:hover {
793
906
  background: var(--gantt-drawer-close-hover-bg, #f0f0f0);
794
907
  }
795
908
 
796
- ._body_1rnqn_131 {
909
+ ._body_hyem8_131 {
797
910
  flex: 1;
798
911
  overflow-y: auto;
799
912
  overflow-x: hidden;
800
913
  padding: 16px;
801
914
  }
915
+
916
+ ._goToTaskBar_hyem8_145 {
917
+ display: flex;
918
+ flex-wrap: wrap;
919
+ gap: 8px;
920
+ margin-bottom: 12px;
921
+ }
922
+
923
+ ._goToTaskButton_hyem8_159 {
924
+ display: inline-flex;
925
+ align-items: center;
926
+ gap: 6px;
927
+ padding: 6px 12px;
928
+ font-size: 12px;
929
+ font-weight: 500;
930
+ color: var(--gantt-drawer-go-to-color, #1976d2);
931
+ background: var(--gantt-drawer-go-to-bg, #e3f2fd);
932
+ border: 1px solid var(--gantt-drawer-go-to-border, #90caf9);
933
+ border-radius: 4px;
934
+ cursor: pointer;
935
+ white-space: nowrap;
936
+ overflow: hidden;
937
+ text-overflow: ellipsis;
938
+ max-width: 100%;
939
+ transition: background 0.15s ease;
940
+ }
941
+
942
+ ._goToTaskButton_hyem8_159:hover {
943
+ background: var(--gantt-drawer-go-to-hover-bg, #bbdefb);
944
+ }
@@ -193,9 +193,12 @@ export type TaskListTableRowProps = {
193
193
  export interface TaskListHeaderProps {
194
194
  headerHeight: number;
195
195
  columns: readonly Column[];
196
+ allColumns: readonly Column[];
196
197
  canMoveTasks: boolean;
197
198
  canResizeColumns: boolean;
199
+ canToggleColumns: boolean;
198
200
  onColumnResizeStart: (columnIndex: number, clientX: number) => void;
201
+ onColumnVisibilityChange?: (columnId: string, hidden: boolean) => void;
199
202
  }
200
203
  export type MinAndMaxChildsOfTask = [
201
204
  [
@@ -156,6 +156,10 @@ export interface GanttTaskListProps {
156
156
  * Can resize columns
157
157
  */
158
158
  canResizeColumns?: boolean;
159
+ /**
160
+ * Show column visibility toggle button in the header
161
+ */
162
+ canToggleColumns?: boolean;
159
163
  /**
160
164
  * Custom icons
161
165
  */
@@ -172,6 +176,10 @@ export interface GanttTaskListProps {
172
176
  * Can reorder tasks
173
177
  */
174
178
  onResizeColumn?: OnResizeColumn;
179
+ /**
180
+ * Callback when column visibility is toggled
181
+ */
182
+ onColumnVisibilityChange?: OnColumnVisibilityChange;
175
183
  /**
176
184
  * Render bottom table content
177
185
  */
@@ -438,8 +446,13 @@ export type Column = {
438
446
  * Pinned columns stay visible while scrolling horizontally.
439
447
  */
440
448
  pinned?: "left" | "right";
449
+ /**
450
+ * Hide this column from the table. Defaults to false.
451
+ */
452
+ hidden?: boolean;
441
453
  };
442
454
  export type OnResizeColumn = (nextColumns: readonly Column[], columnIndex: number, deltaWidth: number) => void;
455
+ export type OnColumnVisibilityChange = (columnId: string, hidden: boolean) => void;
443
456
  export type ChangeAction = {
444
457
  type: "add-childs";
445
458
  parent: Task;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gantt-task-react-v",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "description": "Interactive Gantt Chart for React with TypeScript.",
5
5
  "author": "aguilanbon",
6
6
  "homepage": "https://github.com/aguilanbon/gantt-task-react-v",