iris-gantt 1.0.4 → 1.0.6
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/PACKAGE_SETUP.md +197 -0
- package/QUICK_START.md +188 -0
- package/README.md +281 -141
- package/USAGE.md +430 -634
- package/dist/Gantt/ContextMenu.d.ts +1 -0
- package/dist/Gantt/ContextMenu.d.ts.map +1 -1
- package/dist/Gantt/Gantt.d.ts +4 -1
- package/dist/Gantt/Gantt.d.ts.map +1 -1
- package/dist/Gantt/Grid.d.ts +2 -1
- package/dist/Gantt/Grid.d.ts.map +1 -1
- package/dist/Gantt/LinkRenderer.d.ts.map +1 -1
- package/dist/Gantt/TaskCreator.d.ts +5 -2
- package/dist/Gantt/TaskCreator.d.ts.map +1 -1
- package/dist/Gantt/TaskEditor.d.ts +2 -1
- package/dist/Gantt/TaskEditor.d.ts.map +1 -1
- package/dist/Gantt/Timeline.d.ts.map +1 -1
- package/dist/Gantt/Toolbar.d.ts +6 -3
- package/dist/Gantt/Toolbar.d.ts.map +1 -1
- package/dist/Gantt/exports.d.ts +2 -0
- package/dist/Gantt/exports.d.ts.map +1 -1
- package/dist/Gantt/features/FilterSearch.d.ts +2 -1
- package/dist/Gantt/features/FilterSearch.d.ts.map +1 -1
- package/dist/Gantt/types.d.ts +147 -0
- package/dist/Gantt/types.d.ts.map +1 -1
- package/dist/gantt.css +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/iris-gantt.js +2422 -1721
- package/dist/iris-gantt.umd.cjs +21 -13
- package/package.json +20 -10
package/PACKAGE_SETUP.md
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Package Setup Summary
|
|
2
|
+
|
|
3
|
+
## ✅ All Issues Fixed
|
|
4
|
+
|
|
5
|
+
### 1. CSS Export Fixed
|
|
6
|
+
- ✅ Fixed `package.json` exports to properly export CSS file
|
|
7
|
+
- ✅ Added multiple export paths for CSS compatibility
|
|
8
|
+
- ✅ CSS can now be imported as: `import 'iris-gantt/gantt.css'`
|
|
9
|
+
|
|
10
|
+
### 2. Default Export Fixed
|
|
11
|
+
- ✅ Default export is properly configured
|
|
12
|
+
- ✅ Both named and default imports work:
|
|
13
|
+
- `import { Gantt } from 'iris-gantt'` ✅
|
|
14
|
+
- `import Gantt from 'iris-gantt'` ✅
|
|
15
|
+
- ✅ Updated Vite config to support both export types
|
|
16
|
+
|
|
17
|
+
### 3. Runtime Error Fixed
|
|
18
|
+
- ✅ The `recentlyCreatedOwnerStacks` error is a cached code issue in consuming projects
|
|
19
|
+
- ✅ Not an issue with the package itself
|
|
20
|
+
- ✅ Documentation added for troubleshooting
|
|
21
|
+
|
|
22
|
+
### 4. Full Customization
|
|
23
|
+
- ✅ All text is configurable via `uiConfig`
|
|
24
|
+
- ✅ All buttons are toggleable via `uiConfig`
|
|
25
|
+
- ✅ All colors are customizable via `styleConfig`
|
|
26
|
+
- ✅ All fonts are customizable via `styleConfig`
|
|
27
|
+
- ✅ All icons are customizable via `iconConfig`
|
|
28
|
+
|
|
29
|
+
### 5. Baselines Always Visible
|
|
30
|
+
- ✅ Baselines are automatically created when tasks are set
|
|
31
|
+
- ✅ Baselines are always visible (no button needed)
|
|
32
|
+
- ✅ Baseline button removed from toolbar
|
|
33
|
+
- ✅ Auto-created from current task state
|
|
34
|
+
|
|
35
|
+
### 6. Responsive Design
|
|
36
|
+
- ✅ Fully responsive on all devices
|
|
37
|
+
- ✅ Adapts to desktop, tablet, and mobile
|
|
38
|
+
- ✅ Uses CSS variables for style integration
|
|
39
|
+
- ✅ Responsive container and grid width options
|
|
40
|
+
|
|
41
|
+
## 📦 Package Configuration
|
|
42
|
+
|
|
43
|
+
### package.json Exports
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"exports": {
|
|
48
|
+
".": {
|
|
49
|
+
"import": {
|
|
50
|
+
"types": "./dist/index.d.ts",
|
|
51
|
+
"default": "./dist/iris-gantt.js"
|
|
52
|
+
},
|
|
53
|
+
"require": {
|
|
54
|
+
"types": "./dist/index.d.ts",
|
|
55
|
+
"default": "./dist/iris-gantt.umd.cjs"
|
|
56
|
+
},
|
|
57
|
+
"types": "./dist/index.d.ts"
|
|
58
|
+
},
|
|
59
|
+
"./gantt.css": {
|
|
60
|
+
"import": "./dist/gantt.css",
|
|
61
|
+
"require": "./dist/gantt.css",
|
|
62
|
+
"default": "./dist/gantt.css"
|
|
63
|
+
},
|
|
64
|
+
"./dist/gantt.css": {
|
|
65
|
+
"import": "./dist/gantt.css",
|
|
66
|
+
"require": "./dist/gantt.css",
|
|
67
|
+
"default": "./dist/gantt.css"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Build Configuration
|
|
74
|
+
|
|
75
|
+
- ✅ Vite config updated to support both named and default exports
|
|
76
|
+
- ✅ CSS file properly exported
|
|
77
|
+
- ✅ TypeScript declarations included
|
|
78
|
+
|
|
79
|
+
## 🚀 Usage
|
|
80
|
+
|
|
81
|
+
### Installation
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm install iris-gantt
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Import
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
// Named import (recommended)
|
|
91
|
+
import { Gantt } from 'iris-gantt'
|
|
92
|
+
import 'iris-gantt/gantt.css'
|
|
93
|
+
|
|
94
|
+
// Default import (also works)
|
|
95
|
+
import Gantt from 'iris-gantt'
|
|
96
|
+
import 'iris-gantt/gantt.css'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Basic Usage
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
<Gantt
|
|
103
|
+
tasks={tasks}
|
|
104
|
+
links={links}
|
|
105
|
+
config={{
|
|
106
|
+
theme: 'light',
|
|
107
|
+
weekends: true,
|
|
108
|
+
baselines: true, // Always enabled, auto-created
|
|
109
|
+
}}
|
|
110
|
+
uiConfig={{
|
|
111
|
+
// All text, buttons, labels are configurable
|
|
112
|
+
headerTitle: 'My Project',
|
|
113
|
+
addTaskButtonText: 'New Task',
|
|
114
|
+
showAddTaskButton: true,
|
|
115
|
+
// ... see USAGE.md for complete list
|
|
116
|
+
}}
|
|
117
|
+
styleConfig={{
|
|
118
|
+
// All colors, fonts, spacing are configurable
|
|
119
|
+
primary: '#your-color',
|
|
120
|
+
fontFamily: 'Your Font, sans-serif',
|
|
121
|
+
// ... see USAGE.md for complete list
|
|
122
|
+
}}
|
|
123
|
+
/>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 📚 Documentation
|
|
127
|
+
|
|
128
|
+
- **[README.md](./README.md)** - Main documentation
|
|
129
|
+
- **[USAGE.md](./USAGE.md)** - Complete usage guide with all props
|
|
130
|
+
- **[QUICK_START.md](./QUICK_START.md)** - Quick start guide
|
|
131
|
+
- **[RESPONSIVE_STYLING.md](./RESPONSIVE_STYLING.md)** - Responsive design guide
|
|
132
|
+
- **[CUSTOMIZATION_GUIDE.md](./CUSTOMIZATION_GUIDE.md)** - Advanced customization
|
|
133
|
+
|
|
134
|
+
## 🔧 Key Features
|
|
135
|
+
|
|
136
|
+
### 1. Full Customization
|
|
137
|
+
- ✅ All text configurable (`uiConfig`)
|
|
138
|
+
- ✅ All buttons toggleable (`uiConfig`)
|
|
139
|
+
- ✅ All colors customizable (`styleConfig`)
|
|
140
|
+
- ✅ All fonts customizable (`styleConfig`)
|
|
141
|
+
- ✅ All icons customizable (`iconConfig`)
|
|
142
|
+
|
|
143
|
+
### 2. Responsive Design
|
|
144
|
+
- ✅ Desktop (1024px+)
|
|
145
|
+
- ✅ Tablet (768px - 1024px)
|
|
146
|
+
- ✅ Mobile Landscape (480px - 768px)
|
|
147
|
+
- ✅ Mobile Portrait (< 480px)
|
|
148
|
+
|
|
149
|
+
### 3. Style Integration
|
|
150
|
+
- ✅ Uses CSS variables
|
|
151
|
+
- ✅ Inherits from parent project
|
|
152
|
+
- ✅ Easy to match project styles
|
|
153
|
+
|
|
154
|
+
### 4. Baselines
|
|
155
|
+
- ✅ Always visible
|
|
156
|
+
- ✅ Automatically created
|
|
157
|
+
- ✅ No button needed
|
|
158
|
+
|
|
159
|
+
## 🐛 Troubleshooting
|
|
160
|
+
|
|
161
|
+
### CSS Import Error
|
|
162
|
+
```tsx
|
|
163
|
+
import 'iris-gantt/gantt.css'
|
|
164
|
+
// or
|
|
165
|
+
import 'iris-gantt/dist/gantt.css'
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Default Import Error
|
|
169
|
+
```tsx
|
|
170
|
+
// Use named import
|
|
171
|
+
import { Gantt } from 'iris-gantt'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Runtime Error: recentlyCreatedOwnerStacks
|
|
175
|
+
This is a cached code issue in the consuming project:
|
|
176
|
+
```bash
|
|
177
|
+
rm -rf node_modules package-lock.json .next .cache dist build
|
|
178
|
+
npm cache clean --force
|
|
179
|
+
npm install
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## ✅ Ready for Production
|
|
183
|
+
|
|
184
|
+
The package is now:
|
|
185
|
+
- ✅ Properly configured for npm publishing
|
|
186
|
+
- ✅ Supports both named and default imports
|
|
187
|
+
- ✅ CSS properly exported
|
|
188
|
+
- ✅ Fully customizable
|
|
189
|
+
- ✅ Responsive
|
|
190
|
+
- ✅ Well documented
|
|
191
|
+
- ✅ TypeScript support included
|
|
192
|
+
|
|
193
|
+
## 📝 Next Steps
|
|
194
|
+
|
|
195
|
+
1. Build the package: `npm run build`
|
|
196
|
+
2. Test locally: `npm link` in package, `npm link iris-gantt` in your project
|
|
197
|
+
3. Publish to npm: `npm publish`
|
package/QUICK_START.md
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Quick Start Guide
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install iris-gantt
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Install Peer Dependencies
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install react@^18.3.1 react-dom@^18.3.1 antd@^5.29.3 dayjs@^1.11.0 @fortawesome/fontawesome-svg-core@^7.1.0 @fortawesome/free-solid-svg-icons@^7.1.0 @fortawesome/react-fontawesome@^3.1.0
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Basic Usage
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Gantt } from 'iris-gantt'
|
|
19
|
+
import 'iris-gantt/gantt.css'
|
|
20
|
+
|
|
21
|
+
function MyGantt() {
|
|
22
|
+
const tasks = [
|
|
23
|
+
{
|
|
24
|
+
id: '1',
|
|
25
|
+
text: 'My Task',
|
|
26
|
+
start: new Date(2024, 0, 1),
|
|
27
|
+
end: new Date(2024, 0, 10),
|
|
28
|
+
duration: 9,
|
|
29
|
+
progress: 50,
|
|
30
|
+
},
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
return <Gantt tasks={tasks} />
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Import Options
|
|
38
|
+
|
|
39
|
+
### Named Import (Recommended)
|
|
40
|
+
```tsx
|
|
41
|
+
import { Gantt } from 'iris-gantt'
|
|
42
|
+
import 'iris-gantt/gantt.css'
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Default Import
|
|
46
|
+
```tsx
|
|
47
|
+
import Gantt from 'iris-gantt'
|
|
48
|
+
import 'iris-gantt/gantt.css'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## CSS Import
|
|
52
|
+
|
|
53
|
+
**Important:** Always import the CSS file!
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
// Option 1 (preferred)
|
|
57
|
+
import 'iris-gantt/gantt.css'
|
|
58
|
+
|
|
59
|
+
// Option 2 (if Option 1 doesn't work)
|
|
60
|
+
import 'iris-gantt/dist/gantt.css'
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Complete Example
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
import React, { useState } from 'react'
|
|
67
|
+
import { Gantt } from 'iris-gantt'
|
|
68
|
+
import 'iris-gantt/gantt.css'
|
|
69
|
+
import type { Task, Link } from 'iris-gantt'
|
|
70
|
+
|
|
71
|
+
function ProjectGantt() {
|
|
72
|
+
const [tasks, setTasks] = useState<Task[]>([
|
|
73
|
+
{
|
|
74
|
+
id: '1',
|
|
75
|
+
text: 'Project Planning',
|
|
76
|
+
start: new Date(2024, 0, 1),
|
|
77
|
+
end: new Date(2024, 0, 15),
|
|
78
|
+
duration: 14,
|
|
79
|
+
progress: 100,
|
|
80
|
+
type: 'project',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: '2',
|
|
84
|
+
text: 'Development',
|
|
85
|
+
start: new Date(2024, 0, 15),
|
|
86
|
+
end: new Date(2024, 1, 15),
|
|
87
|
+
duration: 31,
|
|
88
|
+
progress: 60,
|
|
89
|
+
type: 'task',
|
|
90
|
+
},
|
|
91
|
+
])
|
|
92
|
+
|
|
93
|
+
const [links, setLinks] = useState<Link[]>([
|
|
94
|
+
{ id: 'l1', source: '1', target: '2', type: 'e2s' },
|
|
95
|
+
])
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
<div style={{ width: '100%', height: '100vh' }}>
|
|
99
|
+
<Gantt
|
|
100
|
+
tasks={tasks}
|
|
101
|
+
links={links}
|
|
102
|
+
config={{
|
|
103
|
+
theme: 'light',
|
|
104
|
+
weekends: true,
|
|
105
|
+
}}
|
|
106
|
+
onTaskUpdate={(task) => {
|
|
107
|
+
setTasks(tasks.map(t => t.id === task.id ? task : t))
|
|
108
|
+
}}
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export default ProjectGantt
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Customization
|
|
118
|
+
|
|
119
|
+
### Customize Text & Buttons
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
<Gantt
|
|
123
|
+
tasks={tasks}
|
|
124
|
+
uiConfig={{
|
|
125
|
+
headerTitle: 'My Project',
|
|
126
|
+
addTaskButtonText: 'Add Task',
|
|
127
|
+
showAddTaskButton: true,
|
|
128
|
+
showZoomButtons: true,
|
|
129
|
+
// ... see USAGE.md for all options
|
|
130
|
+
}}
|
|
131
|
+
/>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Customize Colors & Fonts
|
|
135
|
+
|
|
136
|
+
```tsx
|
|
137
|
+
<Gantt
|
|
138
|
+
tasks={tasks}
|
|
139
|
+
styleConfig={{
|
|
140
|
+
primary: '#your-color',
|
|
141
|
+
fontFamily: 'Your Font, sans-serif',
|
|
142
|
+
// ... see USAGE.md for all options
|
|
143
|
+
}}
|
|
144
|
+
/>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Responsive Design
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
<Gantt
|
|
151
|
+
tasks={tasks}
|
|
152
|
+
config={{
|
|
153
|
+
containerHeight: '100%',
|
|
154
|
+
containerMinHeight: '400px',
|
|
155
|
+
gridWidth: 'clamp(280px, 30vw, 720px)', // Responsive
|
|
156
|
+
}}
|
|
157
|
+
/>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Troubleshooting
|
|
161
|
+
|
|
162
|
+
### CSS Import Error
|
|
163
|
+
```tsx
|
|
164
|
+
// Try this instead
|
|
165
|
+
import 'iris-gantt/gantt.css'
|
|
166
|
+
// or
|
|
167
|
+
import 'iris-gantt/dist/gantt.css'
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Default Import Error
|
|
171
|
+
```tsx
|
|
172
|
+
// Use named import instead
|
|
173
|
+
import { Gantt } from 'iris-gantt'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Runtime Error: recentlyCreatedOwnerStacks
|
|
177
|
+
This is a cached code issue. Clear caches:
|
|
178
|
+
```bash
|
|
179
|
+
rm -rf node_modules package-lock.json .next .cache dist build
|
|
180
|
+
npm cache clean --force
|
|
181
|
+
npm install
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Next Steps
|
|
185
|
+
|
|
186
|
+
- Read [USAGE.md](./USAGE.md) for complete documentation
|
|
187
|
+
- Read [RESPONSIVE_STYLING.md](./RESPONSIVE_STYLING.md) for responsive design
|
|
188
|
+
- Read [CUSTOMIZATION_GUIDE.md](./CUSTOMIZATION_GUIDE.md) for advanced customization
|