@thepocman/gantt-task-react 1.0.31 → 1.0.35

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.
@@ -1,11 +1,14 @@
1
1
  import type { MouseEvent } from "react";
2
2
  import React from "react";
3
3
  import { GanttRelationEvent } from "../../types/gantt-task-actions";
4
- import { BarMoveAction, ChildOutOfParentWarnings, ColorStyles, DateExtremity, Distances, FixPosition, RelationKind, Task, TaskOrEmpty } from "../../types/public-types";
4
+ import { BarMoveAction, ChildOutOfParentWarnings, ColorStyles, DateExtremity, Distances, FixPosition, RelationKind, RowIndexToTasksMap, Task, TaskOrEmpty, TaskToRowIndexMap } from "../../types/public-types";
5
5
  export type TaskItemProps = {
6
6
  children?: React.ReactNode;
7
7
  getTaskGlobalIndexByRef: (task: Task) => number;
8
8
  hasChildren: boolean;
9
+ isInCollapsedGroup: boolean;
10
+ rowIndexToTasksMap: RowIndexToTasksMap;
11
+ taskToRowIndexMap: TaskToRowIndexMap;
9
12
  hasDependencyWarning: boolean;
10
13
  progressWidth: number;
11
14
  progressX: number;
@@ -4814,7 +4814,6 @@ const Calendar = ({
4814
4814
  );
4815
4815
  const dayOfMonth = date.getDate();
4816
4816
  const prevDate = getDate(i2 - 1);
4817
- console.log("testing center :>> ", additionalLeftSpace + columnWidth * i2 + ticks * columnWidth * 0.5);
4818
4817
  if (!isUnknownDates && dayOfMonth !== prevDate.getDate()) {
4819
4818
  const topValue = renderTopHeaderByDate(date);
4820
4819
  topValues2.push(
@@ -5013,7 +5012,6 @@ const GridBodyInner = ({
5013
5012
  startColumnIndex
5014
5013
  )) {
5015
5014
  const x3 = additionalLeftSpace + columnWidth * i2;
5016
- console.log("drawing divider at x:", x3, "for index:", i2, "date:", currentDate);
5017
5015
  dividers.push(
5018
5016
  /* @__PURE__ */ jsx(
5019
5017
  "line",
@@ -5578,10 +5576,10 @@ const RelationLine = ({
5578
5576
  }
5579
5577
  );
5580
5578
  };
5581
- const hoverVisibleWrapper = "_hoverVisibleWrapper_11ld1_1";
5582
- const wrapper = "_wrapper_11ld1_1";
5583
- const mainPath = "_mainPath_11ld1_17";
5584
- const clickZone = "_clickZone_11ld1_35";
5579
+ const hoverVisibleWrapper = "_hoverVisibleWrapper_8hbnp_1";
5580
+ const wrapper = "_wrapper_8hbnp_1";
5581
+ const mainPath = "_mainPath_8hbnp_17";
5582
+ const clickZone = "_clickZone_8hbnp_35";
5585
5583
  const styles$4 = {
5586
5584
  hoverVisibleWrapper,
5587
5585
  wrapper,
@@ -6273,11 +6271,13 @@ const Milestone = ({
6273
6271
  }
6274
6272
  );
6275
6273
  };
6276
- const barLabel = "_barLabel_y0tyg_1";
6277
- const barLabelOutside = "_barLabelOutside_y0tyg_25";
6274
+ const barLabel = "_barLabel_y55xa_1";
6275
+ const barLabelOutside = "_barLabelOutside_y55xa_25";
6276
+ const barLabelTruncated = "_barLabelTruncated_y55xa_45";
6278
6277
  const style = {
6279
6278
  barLabel,
6280
- barLabelOutside
6279
+ barLabelOutside,
6280
+ barLabelTruncated
6281
6281
  };
6282
6282
  const TaskWarningInner = ({
6283
6283
  rtl,
@@ -6377,9 +6377,10 @@ const TaskItemInner = (props) => {
6377
6377
  isRelationChangeable,
6378
6378
  ganttRelationEvent,
6379
6379
  rtl,
6380
+ enableTaskGrouping,
6381
+ isInCollapsedGroup,
6380
6382
  selectTaskOnMouseDown,
6381
6383
  setTooltipTask,
6382
- enableTaskGrouping,
6383
6384
  task,
6384
6385
  task: { styles: taskStyles },
6385
6386
  taskHalfHeight,
@@ -6546,6 +6547,7 @@ const TaskItemInner = (props) => {
6546
6547
  task,
6547
6548
  width
6548
6549
  ]);
6550
+ const isGrouped = enableTaskGrouping && isInCollapsedGroup;
6549
6551
  useEffect(() => {
6550
6552
  if (textRef.current) {
6551
6553
  setIsTextInside(textRef.current.getBBox().width < width);
@@ -6560,6 +6562,7 @@ const TaskItemInner = (props) => {
6560
6562
  }
6561
6563
  return x1 + width + arrowIndent * 1.2;
6562
6564
  }, [x1, width, isTextInside, rtl, arrowIndent]);
6565
+ const textForRender = isGrouped ? "" : task.name;
6563
6566
  const onMouseDown = useCallback(
6564
6567
  (event) => {
6565
6568
  selectTaskOnMouseDown(task.id, event);
@@ -6576,6 +6579,7 @@ const TaskItemInner = (props) => {
6576
6579
  setTooltipTask(null, null);
6577
6580
  }, [setTooltipTask]);
6578
6581
  let barLabelFill = isTextInside || task.type == "milestone" ? styles2.barLabelColor : styles2.barLabelWhenOutsideColor;
6582
+ let defaultBehavior = isTextInside ? style.barLabel : style.barLabel && style.barLabelOutside;
6579
6583
  return /* @__PURE__ */ jsxs(
6580
6584
  "g",
6581
6585
  {
@@ -6605,9 +6609,9 @@ const TaskItemInner = (props) => {
6605
6609
  fill: barLabelFill,
6606
6610
  x: x3,
6607
6611
  y: taskYOffset + taskHeight * 0.5,
6608
- className: isTextInside ? style.barLabel : style.barLabel && style.barLabelOutside,
6612
+ className: defaultBehavior,
6609
6613
  ref: textRef,
6610
- children: enableTaskGrouping ? isTextInside ? task.name : "" : task.name
6614
+ children: textForRender
6611
6615
  }
6612
6616
  ),
6613
6617
  (outOfParentWarnings || hasDependencyWarning) && /* @__PURE__ */ jsx(
@@ -6726,6 +6730,8 @@ const TaskGanttContent = ({
6726
6730
  for (const task of tasksAtRow) {
6727
6731
  const comparisonLevel = task.comparisonLevel ?? 1;
6728
6732
  const { id: taskId } = task;
6733
+ const isInCollapsedGroup = enableTaskGrouping && task.parent && tasksAtRow.length > 1;
6734
+ console.log("isInCollapsedGroup :>> ", isInCollapsedGroup);
6729
6735
  if (selectedIdsMirror[taskId] && !addedSelectedTasks[taskId]) {
6730
6736
  addedSelectedTasks[taskId] = true;
6731
6737
  const rowIndex = (_a = taskToRowIndexMap.get(comparisonLevel)) == null ? void 0 : _a.get(taskId);
@@ -6776,6 +6782,10 @@ const TaskGanttContent = ({
6776
6782
  children: /* @__PURE__ */ jsx(
6777
6783
  TaskItem,
6778
6784
  {
6785
+ isInCollapsedGroup,
6786
+ enableTaskGrouping,
6787
+ taskToRowIndexMap,
6788
+ rowIndexToTasksMap,
6779
6789
  getTaskGlobalIndexByRef,
6780
6790
  hasChildren: checkHasChildren(task, childTasksMap),
6781
6791
  hasDependencyWarning: taskToHasDependencyWarningMap ? checkTaskHasDependencyWarning(task, taskToHasDependencyWarningMap) : false,
@@ -6808,8 +6818,7 @@ const TaskGanttContent = ({
6808
6818
  fixStartPosition,
6809
6819
  fixEndPosition,
6810
6820
  handleDeleteTasks,
6811
- colorStyles,
6812
- enableTaskGrouping
6821
+ colorStyles
6813
6822
  }
6814
6823
  )
6815
6824
  },
@@ -13149,6 +13158,7 @@ const Gantt = ({
13149
13158
  const barProps = useMemo(
13150
13159
  () => ({
13151
13160
  enableTaskGrouping,
13161
+ taskMap: tasksMap,
13152
13162
  rowIndexToTasksMap,
13153
13163
  authorizedRelations,
13154
13164
  additionalLeftSpace,
@@ -13200,6 +13210,7 @@ const Gantt = ({
13200
13210
  additionalLeftSpace,
13201
13211
  additionalRightSpace,
13202
13212
  enableTaskGrouping,
13213
+ tasksMap,
13203
13214
  rowIndexToTasksMap,
13204
13215
  checkIsHoliday,
13205
13216
  childOutOfParentWarnings,
@@ -4827,7 +4827,6 @@
4827
4827
  );
4828
4828
  const dayOfMonth = date.getDate();
4829
4829
  const prevDate = getDate(i - 1);
4830
- console.log("testing center :>> ", additionalLeftSpace + columnWidth * i + ticks * columnWidth * 0.5);
4831
4830
  if (!isUnknownDates && dayOfMonth !== prevDate.getDate()) {
4832
4831
  const topValue = renderTopHeaderByDate(date);
4833
4832
  topValues2.push(
@@ -5026,7 +5025,6 @@
5026
5025
  startColumnIndex
5027
5026
  )) {
5028
5027
  const x2 = additionalLeftSpace + columnWidth * i;
5029
- console.log("drawing divider at x:", x2, "for index:", i, "date:", currentDate);
5030
5028
  dividers.push(
5031
5029
  /* @__PURE__ */ jsxRuntime.jsx(
5032
5030
  "line",
@@ -5591,10 +5589,10 @@
5591
5589
  }
5592
5590
  );
5593
5591
  };
5594
- const hoverVisibleWrapper = "_hoverVisibleWrapper_11ld1_1";
5595
- const wrapper = "_wrapper_11ld1_1";
5596
- const mainPath = "_mainPath_11ld1_17";
5597
- const clickZone = "_clickZone_11ld1_35";
5592
+ const hoverVisibleWrapper = "_hoverVisibleWrapper_8hbnp_1";
5593
+ const wrapper = "_wrapper_8hbnp_1";
5594
+ const mainPath = "_mainPath_8hbnp_17";
5595
+ const clickZone = "_clickZone_8hbnp_35";
5598
5596
  const styles$4 = {
5599
5597
  hoverVisibleWrapper,
5600
5598
  wrapper,
@@ -6286,11 +6284,13 @@
6286
6284
  }
6287
6285
  );
6288
6286
  };
6289
- const barLabel = "_barLabel_y0tyg_1";
6290
- const barLabelOutside = "_barLabelOutside_y0tyg_25";
6287
+ const barLabel = "_barLabel_y55xa_1";
6288
+ const barLabelOutside = "_barLabelOutside_y55xa_25";
6289
+ const barLabelTruncated = "_barLabelTruncated_y55xa_45";
6291
6290
  const style = {
6292
6291
  barLabel,
6293
- barLabelOutside
6292
+ barLabelOutside,
6293
+ barLabelTruncated
6294
6294
  };
6295
6295
  const TaskWarningInner = ({
6296
6296
  rtl,
@@ -6390,9 +6390,10 @@
6390
6390
  isRelationChangeable,
6391
6391
  ganttRelationEvent,
6392
6392
  rtl,
6393
+ enableTaskGrouping,
6394
+ isInCollapsedGroup,
6393
6395
  selectTaskOnMouseDown,
6394
6396
  setTooltipTask,
6395
- enableTaskGrouping,
6396
6397
  task,
6397
6398
  task: { styles: taskStyles },
6398
6399
  taskHalfHeight,
@@ -6559,6 +6560,7 @@
6559
6560
  task,
6560
6561
  width
6561
6562
  ]);
6563
+ const isGrouped = enableTaskGrouping && isInCollapsedGroup;
6562
6564
  React.useEffect(() => {
6563
6565
  if (textRef.current) {
6564
6566
  setIsTextInside(textRef.current.getBBox().width < width);
@@ -6573,6 +6575,7 @@
6573
6575
  }
6574
6576
  return x1 + width + arrowIndent * 1.2;
6575
6577
  }, [x1, width, isTextInside, rtl, arrowIndent]);
6578
+ const textForRender = isGrouped ? "" : task.name;
6576
6579
  const onMouseDown = React.useCallback(
6577
6580
  (event) => {
6578
6581
  selectTaskOnMouseDown(task.id, event);
@@ -6589,6 +6592,7 @@
6589
6592
  setTooltipTask(null, null);
6590
6593
  }, [setTooltipTask]);
6591
6594
  let barLabelFill = isTextInside || task.type == "milestone" ? styles2.barLabelColor : styles2.barLabelWhenOutsideColor;
6595
+ let defaultBehavior = isTextInside ? style.barLabel : style.barLabel && style.barLabelOutside;
6592
6596
  return /* @__PURE__ */ jsxRuntime.jsxs(
6593
6597
  "g",
6594
6598
  {
@@ -6618,9 +6622,9 @@
6618
6622
  fill: barLabelFill,
6619
6623
  x: x3,
6620
6624
  y: taskYOffset + taskHeight * 0.5,
6621
- className: isTextInside ? style.barLabel : style.barLabel && style.barLabelOutside,
6625
+ className: defaultBehavior,
6622
6626
  ref: textRef,
6623
- children: enableTaskGrouping ? isTextInside ? task.name : "" : task.name
6627
+ children: textForRender
6624
6628
  }
6625
6629
  ),
6626
6630
  (outOfParentWarnings || hasDependencyWarning) && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6739,6 +6743,8 @@
6739
6743
  for (const task of tasksAtRow) {
6740
6744
  const comparisonLevel = task.comparisonLevel ?? 1;
6741
6745
  const { id: taskId } = task;
6746
+ const isInCollapsedGroup = enableTaskGrouping && task.parent && tasksAtRow.length > 1;
6747
+ console.log("isInCollapsedGroup :>> ", isInCollapsedGroup);
6742
6748
  if (selectedIdsMirror[taskId] && !addedSelectedTasks[taskId]) {
6743
6749
  addedSelectedTasks[taskId] = true;
6744
6750
  const rowIndex = (_a = taskToRowIndexMap.get(comparisonLevel)) == null ? void 0 : _a.get(taskId);
@@ -6789,6 +6795,10 @@
6789
6795
  children: /* @__PURE__ */ jsxRuntime.jsx(
6790
6796
  TaskItem,
6791
6797
  {
6798
+ isInCollapsedGroup,
6799
+ enableTaskGrouping,
6800
+ taskToRowIndexMap,
6801
+ rowIndexToTasksMap,
6792
6802
  getTaskGlobalIndexByRef,
6793
6803
  hasChildren: checkHasChildren(task, childTasksMap),
6794
6804
  hasDependencyWarning: taskToHasDependencyWarningMap ? checkTaskHasDependencyWarning(task, taskToHasDependencyWarningMap) : false,
@@ -6821,8 +6831,7 @@
6821
6831
  fixStartPosition,
6822
6832
  fixEndPosition,
6823
6833
  handleDeleteTasks,
6824
- colorStyles,
6825
- enableTaskGrouping
6834
+ colorStyles
6826
6835
  }
6827
6836
  )
6828
6837
  },
@@ -13162,6 +13171,7 @@
13162
13171
  const barProps = React.useMemo(
13163
13172
  () => ({
13164
13173
  enableTaskGrouping,
13174
+ taskMap: tasksMap,
13165
13175
  rowIndexToTasksMap,
13166
13176
  authorizedRelations,
13167
13177
  additionalLeftSpace,
@@ -13213,6 +13223,7 @@
13213
13223
  additionalLeftSpace,
13214
13224
  additionalRightSpace,
13215
13225
  enableTaskGrouping,
13226
+ tasksMap,
13216
13227
  rowIndexToTasksMap,
13217
13228
  checkIsHoliday,
13218
13229
  childOutOfParentWarnings,
@@ -0,0 +1 @@
1
+ export declare const truncateText: (text: string, maxWidth: number, textElement: SVGTextElement | null) => string;
package/dist/style.css CHANGED
@@ -440,28 +440,27 @@
440
440
  stroke-width: 2;
441
441
  stroke-dasharray: 4;
442
442
  }
443
- ._hoverVisibleWrapper_11ld1_1:hover ._wrapper_11ld1_1 {
443
+ ._hoverVisibleWrapper_8hbnp_1:hover ._wrapper_8hbnp_1 {
444
444
  display: initial;
445
445
  }
446
446
 
447
- ._wrapper_11ld1_1 {
447
+ ._wrapper_8hbnp_1 {
448
448
  cursor: pointer;
449
449
  }
450
450
 
451
- ._wrapper_11ld1_1:hover ._mainPath_11ld1_17 {
451
+ ._wrapper_8hbnp_1:hover ._mainPath_8hbnp_17 {
452
452
  filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, .7));
453
453
  }
454
454
 
455
- ._mainPath_11ld1_17 {
455
+ ._mainPath_8hbnp_17 {
456
456
  fill: none;
457
457
  stroke-width: 1.5px;
458
458
  }
459
459
 
460
- ._clickZone_11ld1_35 {
460
+ ._clickZone_8hbnp_35 {
461
461
  fill: transparent;
462
462
  stroke: transparent;
463
- }
464
- ._barWrapper_1kg71_1 {
463
+ }._barWrapper_1kg71_1 {
465
464
  cursor: pointer;
466
465
  outline: none;
467
466
  }
@@ -521,7 +520,7 @@
521
520
  ._milestoneBackground_vcirf_11 {
522
521
  user-select: none;
523
522
  }
524
- ._barLabel_y0tyg_1 {
523
+ ._barLabel_y55xa_1 {
525
524
  text-anchor: middle;
526
525
  font-weight: lighter;
527
526
  dominant-baseline: central;
@@ -533,7 +532,7 @@
533
532
  pointer-events: none;
534
533
  }
535
534
 
536
- ._barLabelOutside_y0tyg_25 {
535
+ ._barLabelOutside_y55xa_25 {
537
536
  text-anchor: start;
538
537
  -webkit-touch-callout: none;
539
538
  -webkit-user-select: none;
@@ -542,7 +541,11 @@
542
541
  user-select: none;
543
542
  pointer-events: none;
544
543
  }
545
- ._menuOption_z7pb4_1 {
544
+
545
+ ._barLabelTruncated_y55xa_45 {
546
+ text-anchor: middle;
547
+ dominant-baseline: middle;
548
+ }._menuOption_z7pb4_1 {
546
549
  display: flex;
547
550
  align-items: center;
548
551
  gap: 5px;
package/package.json CHANGED
@@ -1,133 +1,138 @@
1
- {
2
- "name": "@thepocman/gantt-task-react",
3
- "version": "1.0.31",
4
- "description": "Fork of gantt-task-react with support for grouped tasks on a single row when collapsed",
5
- "author": "Adrian Bueno <adrianlbueno@users.noreply.github.com>",
6
- "homepage": "https://github.com/adrianlbueno/gantt-task-react#readme",
7
- "license": "MIT",
8
- "contributors": [
9
- {
10
- "name": "MaTeMaTuK",
11
- "url": "https://github.com/MaTeMaTuK"
12
- },
13
- {
14
- "name": "Janlaywss",
15
- "url": "https://github.com/Janlaywss"
16
- },
17
- {
18
- "name": "Adrian Bueno",
19
- "url": "https://github.com/adrianlbueno"
20
- }
21
- ],
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/adrianlbueno/gantt-task-react.git"
25
- },
26
- "publishConfig": {
27
- "access": "public"
28
- },
29
- "main": "./dist/gantt-task-react.umd.js",
30
- "module": "./dist/gantt-task-react.es.js",
31
- "types": "./dist/index.d.ts",
32
- "source": "src/index.tsx",
33
- "keywords": [
34
- "react",
35
- "gantt",
36
- "typescript",
37
- "chart",
38
- "svg",
39
- "gantt-chart",
40
- "gantt chart",
41
- "react-gantt",
42
- "task"
43
- ],
44
- "scripts": {
45
- "storybook": "storybook dev",
46
- "build": "vite build && tsc",
47
- "start": "vite --host",
48
- "prepare": "run-s build",
49
- "test": "run-s test:unit test:lint test:build",
50
- "test:build": "run-s build",
51
- "test:lint": "eslint --ext .tsx src/**/*",
52
- "test:unit": "cross-env CI=1 react-scripts test --env=jsdom",
53
- "test:watch": "react-scripts test --env=jsdom",
54
- "predeploy": "yarn storybook build",
55
- "deploy-storybook": "gh-pages -d storybook-static",
56
- "build-storybook": "storybook build"
57
- },
58
- "dependencies": {
59
- "@floating-ui/dom": "1.1.1",
60
- "@floating-ui/react": "0.19.2",
61
- "date-fns": "2.29.3"
62
- },
63
- "overrides": {
64
- "typescript": "~5.1.6"
65
- },
66
- "peerDependencies": {
67
- "@mui/icons-material": "^6.1.0",
68
- "@mui/material": "^6.1.0",
69
- "react": ">=18.0.0",
70
- "react-dom": ">=18.0.0"
71
- },
72
- "devDependencies": {
73
- "@babel/plugin-transform-regenerator": "~7.20.5",
74
- "@babel/types": "~7.20.7",
75
- "@emotion/react": "11.13.5",
76
- "@emotion/styled": "11.13.5",
77
- "@mdx-js/react": "~2.2.1",
78
- "@mui/icons-material": "^6.1.9",
79
- "@mui/material": "^6.1.9",
80
- "@rollup/plugin-image": "2.1.1",
81
- "@storybook/addon-controls": "~7.6.20",
82
- "@storybook/addon-docs": "~7.6.20",
83
- "@storybook/addons": "~7.6.20",
84
- "@storybook/channel-postmessage": "~7.6.20",
85
- "@storybook/channel-websocket": "~7.6.20",
86
- "@storybook/client-api": "~7.6.20",
87
- "@storybook/mdx2-csf": "~1.1.0",
88
- "@storybook/node-logger": "~7.6.20",
89
- "@storybook/preview-web": "~7.6.20",
90
- "@storybook/react": "~7.6.20",
91
- "@storybook/react-vite": "~7.6.20",
92
- "@testing-library/jest-dom": "~5.16.5",
93
- "@testing-library/react": "~16.0.1",
94
- "@testing-library/user-event": "~14.2.6",
95
- "@types/jest": "~27.5.2",
96
- "@types/node": "~15.0.3",
97
- "@types/react": "~18.3.12",
98
- "@types/react-dom": "~18.3.1",
99
- "@vitejs/plugin-react": "4.0.4",
100
- "cross-env": "~7.0.3",
101
- "doctrine": "~3.0.0",
102
- "eslint": "^8.50.0",
103
- "eslint-config-react-app": "^7.0.1",
104
- "gh-pages": "~5.0.0",
105
- "identity-obj-proxy": "~3.0.0",
106
- "jsdom": "^25.0.1",
107
- "mini-css-extract-plugin": "~2.7.7",
108
- "npm-run-all": "~4.1.5",
109
- "postcss-flexbugs-fixes": "~5.0.2",
110
- "postcss-normalize": "~10.0.1",
111
- "postcss-preset-env": "~8.0.1",
112
- "prettier": "~2.8.8",
113
- "react": "~18.3.1",
114
- "react-dom": "~18.3.1",
115
- "react-scripts": "^5.0.1",
116
- "rollup-plugin-peer-deps-external": "2.2.4",
117
- "storybook": "7.6.20",
118
- "typescript": "~5.1.6",
119
- "vite": "^4.5.5",
120
- "vitest": "0.34.6"
121
- },
122
- "files": [
123
- "dist"
124
- ],
125
- "jest": {
126
- "transformIgnorePatterns": [
127
- "/node_modules/(?!react-dnd|core-dnd|@react-dnd|dnd-core|react-dnd-html5-backend)"
128
- ],
129
- "moduleNameMapper": {
130
- "/~.+\\.module\\.(css|sass|scss)$/": "identity-obj-proxy"
131
- }
132
- }
133
- }
1
+ {
2
+ "name": "@thepocman/gantt-task-react",
3
+ "version": "1.0.35",
4
+ "description": "Fork of gantt-task-react with support for grouped tasks on a single row when collapsed",
5
+ "author": "Adrian Bueno <adrianlbueno@users.noreply.github.com>",
6
+ "homepage": "https://github.com/adrianlbueno/gantt-task-react#readme",
7
+ "license": "MIT",
8
+ "contributors": [
9
+ {
10
+ "name": "MaTeMaTuK",
11
+ "url": "https://github.com/MaTeMaTuK"
12
+ },
13
+ {
14
+ "name": "Janlaywss",
15
+ "url": "https://github.com/Janlaywss"
16
+ },
17
+ {
18
+ "name": "Adrian Bueno",
19
+ "url": "https://github.com/adrianlbueno"
20
+ }
21
+ ],
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/adrianlbueno/gantt-task-react.git"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "main": "./dist/gantt-task-react.umd.js",
30
+ "module": "./dist/gantt-task-react.es.js",
31
+ "types": "./dist/index.d.ts",
32
+ "source": "src/index.tsx",
33
+ "keywords": [
34
+ "react",
35
+ "gantt",
36
+ "typescript",
37
+ "chart",
38
+ "svg",
39
+ "gantt-chart",
40
+ "gantt chart",
41
+ "react-gantt",
42
+ "task"
43
+ ],
44
+ "scripts": {
45
+ "storybook": "storybook dev",
46
+ "build": "vite build && tsc",
47
+ "start": "vite --host",
48
+ "prepare": "run-s build",
49
+ "test": "run-s test:unit test:lint test:build",
50
+ "test:build": "run-s build",
51
+ "test:lint": "eslint --ext .tsx src/**/*",
52
+ "test:unit": "cross-env CI=1 react-scripts test --env=jsdom",
53
+ "test:watch": "react-scripts test --env=jsdom",
54
+ "predeploy": "yarn storybook build",
55
+ "deploy-storybook": "gh-pages -d storybook-static",
56
+ "build-storybook": "storybook build"
57
+ },
58
+ "dependencies": {
59
+ "@floating-ui/dom": "1.1.1",
60
+ "@floating-ui/react": "0.19.2",
61
+ "date-fns": "2.29.3"
62
+ },
63
+ "overrides": {
64
+ "typescript": "~5.1.6"
65
+ },
66
+ "peerDependencies": {
67
+ "@mui/icons-material": "^6.1.0",
68
+ "@mui/material": "^6.1.0",
69
+ "react": ">=18.0.0",
70
+ "react-dom": ">=18.0.0"
71
+ },
72
+ "devDependencies": {
73
+ "@babel/plugin-transform-regenerator": "~7.20.5",
74
+ "@babel/types": "~7.20.7",
75
+ "@emotion/react": "11.13.5",
76
+ "@emotion/styled": "11.13.5",
77
+ "@mdx-js/react": "~2.2.1",
78
+ "@mui/icons-material": "^6.1.9",
79
+ "@mui/material": "^6.1.9",
80
+ "@rollup/plugin-image": "2.1.1",
81
+ "@storybook/addon-controls": "~7.6.20",
82
+ "@storybook/addon-docs": "~7.6.20",
83
+ "@storybook/addons": "~7.6.20",
84
+ "@storybook/channel-postmessage": "~7.6.20",
85
+ "@storybook/channel-websocket": "~7.6.20",
86
+ "@storybook/client-api": "~7.6.20",
87
+ "@storybook/mdx2-csf": "~1.1.0",
88
+ "@storybook/node-logger": "~7.6.20",
89
+ "@storybook/preview-web": "~7.6.20",
90
+ "@storybook/react": "~7.6.20",
91
+ "@storybook/react-vite": "~7.6.20",
92
+ "@testing-library/jest-dom": "~5.16.5",
93
+ "@testing-library/react": "~16.0.1",
94
+ "@testing-library/user-event": "~14.2.6",
95
+ "@types/jest": "~27.5.2",
96
+ "@types/node": "~15.0.3",
97
+ "@types/react": "~18.3.12",
98
+ "@types/react-dom": "~18.3.1",
99
+ "@vitejs/plugin-react": "4.0.4",
100
+ "cross-env": "~7.0.3",
101
+ "doctrine": "~3.0.0",
102
+ "eslint": "^8.50.0",
103
+ "eslint-config-react-app": "^7.0.1",
104
+ "gh-pages": "~5.0.0",
105
+ "identity-obj-proxy": "~3.0.0",
106
+ "jsdom": "^25.0.1",
107
+ "mini-css-extract-plugin": "~2.7.7",
108
+ "npm-run-all": "~4.1.5",
109
+ "postcss-flexbugs-fixes": "~5.0.2",
110
+ "postcss-normalize": "~10.0.1",
111
+ "postcss-preset-env": "~8.0.1",
112
+ "prettier": "~2.8.8",
113
+ "react": "~18.3.1",
114
+ "react-dom": "~18.3.1",
115
+ "react-scripts": "^5.0.1",
116
+ "rollup-plugin-peer-deps-external": "2.2.4",
117
+ "storybook": "7.6.20",
118
+ "typescript": "~5.1.6",
119
+ "vite": "^4.5.5",
120
+ "vitest": "0.34.6"
121
+ },
122
+ "files": [
123
+ "dist"
124
+ ],
125
+ "jest": {
126
+ "transformIgnorePatterns": [
127
+ "/node_modules/(?!react-dnd|core-dnd|@react-dnd|dnd-core|react-dnd-html5-backend)"
128
+ ],
129
+ "moduleNameMapper": {
130
+ "/~.+\\.module\\.(css|sass|scss)$/": "identity-obj-proxy"
131
+ }
132
+ },
133
+ "eslintConfig": {
134
+ "extends": [
135
+ "plugin:storybook/recommended"
136
+ ]
137
+ }
138
+ }