@mogura/moguchart-react 1.1.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.
- package/LICENSE +21 -0
- package/README.ja.md +171 -0
- package/README.md +171 -0
- package/dist/index.d.ts +37 -0
- package/dist/moguchart-react.mjs +39 -0
- package/dist/moguchart-react.umd.js +1 -0
- package/package.json +66 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-present Murakami Hiroyuki
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# @mogura/moguchart-react
|
|
2
|
+
|
|
3
|
+
[`@mogura/moguchart-core`](https://github.com/hiro-murakami/moguchart-core) の公式 React ラッパーコンポーネントです。
|
|
4
|
+
|
|
5
|
+
Lit 公式の `@lit/react` をベースに設計されており、Web Components の高いパフォーマンスとフレームワーク非依存の柔軟性を保ちつつ、React アプリケーションで型安全かつ直感的にガントチャートを扱うことができます。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 特徴
|
|
10
|
+
|
|
11
|
+
- ⚛️ **ネイティブな React 開発体験**: JSX で直感的にプロパティ・イベントハンドラーを記述可能
|
|
12
|
+
- 🎯 **完全な型補完**: TypeScript による強力な型推論と自動補完
|
|
13
|
+
- 🔄 **ライフサイクル同期**: React の状態変更(State / Props)と Web Components のレンダリングを自動同期
|
|
14
|
+
- ⚡ **命令的メソッドへのアクセス**: `ref` を介して `chart.use()`, `chart.exportImage()`, `chart.selectTask()` などを直接呼び出し可能
|
|
15
|
+
- 📦 **Re-export**: `@mogura/moguchart-core` の型定義や定数をすべて再エクスポートしているため、本パッケージのみのインストールで開発可能
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## インストール
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# pnpm
|
|
23
|
+
pnpm add @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
24
|
+
|
|
25
|
+
# npm
|
|
26
|
+
npm install @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
27
|
+
|
|
28
|
+
# yarn
|
|
29
|
+
yarn add @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 基本的な使い方
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import React, { useState } from 'react'
|
|
38
|
+
import {
|
|
39
|
+
GanttChart,
|
|
40
|
+
type GanttRow,
|
|
41
|
+
type GanttChartOption,
|
|
42
|
+
type TaskUpdateEventDetail,
|
|
43
|
+
} from '@mogura/moguchart-react'
|
|
44
|
+
|
|
45
|
+
export function MyGanttView() {
|
|
46
|
+
const [rows, setRows] = useState<GanttRow[]>([
|
|
47
|
+
{
|
|
48
|
+
id: 'row-1',
|
|
49
|
+
name: '機能開発フェーズ',
|
|
50
|
+
tasks: [
|
|
51
|
+
{
|
|
52
|
+
id: 'task-1',
|
|
53
|
+
name: '要件定義',
|
|
54
|
+
start: new Date('2026-04-01'),
|
|
55
|
+
end: new Date('2026-04-10'),
|
|
56
|
+
progress: 100,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'task-2',
|
|
60
|
+
name: 'UI/UX 設計',
|
|
61
|
+
start: new Date('2026-04-08'),
|
|
62
|
+
end: new Date('2026-04-20'),
|
|
63
|
+
progress: 50,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
const option: GanttChartOption = {
|
|
70
|
+
calendar: {
|
|
71
|
+
start: new Date('2026-04-01'),
|
|
72
|
+
end: new Date('2026-04-30'),
|
|
73
|
+
pxPerDay: 40,
|
|
74
|
+
},
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const handleTaskUpdate = (e: CustomEvent<TaskUpdateEventDetail>) => {
|
|
78
|
+
console.log('Task updated:', e.detail)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<div style={{ width: '100%', height: '600px' }}>
|
|
83
|
+
<GanttChart
|
|
84
|
+
rows={rows}
|
|
85
|
+
option={option}
|
|
86
|
+
theme="light"
|
|
87
|
+
onTaskUpdate={handleTaskUpdate}
|
|
88
|
+
onTaskClick={(e) => console.log('Task clicked:', e.detail)}
|
|
89
|
+
/>
|
|
90
|
+
</div>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## プラグイン(エクスポート機能)との連携
|
|
98
|
+
|
|
99
|
+
PNG や PDF のエクスポートを行う場合は、`@mogura/moguchart-plugin-export` を組み合わせます。
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import React, { useRef } from 'react'
|
|
103
|
+
import { GanttChart, type GanttChartElement, type GanttChartOption } from '@mogura/moguchart-react'
|
|
104
|
+
import { exportPlugin } from '@mogura/moguchart-plugin-export'
|
|
105
|
+
|
|
106
|
+
export function ExportableGantt() {
|
|
107
|
+
const chartRef = useRef<GanttChartElement>(null)
|
|
108
|
+
|
|
109
|
+
const option: GanttChartOption = {
|
|
110
|
+
calendar: {
|
|
111
|
+
start: new Date('2026-04-01'),
|
|
112
|
+
end: new Date('2026-04-30'),
|
|
113
|
+
},
|
|
114
|
+
plugins: [exportPlugin()],
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const handleExportPng = async () => {
|
|
118
|
+
if (chartRef.current) {
|
|
119
|
+
await chartRef.current.exportImage('png', {
|
|
120
|
+
filename: 'my-schedule',
|
|
121
|
+
download: true,
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<button onClick={handleExportPng}>PNGダウンロード</button>
|
|
129
|
+
<GanttChart ref={chartRef} rows={[]} option={option} />
|
|
130
|
+
</div>
|
|
131
|
+
)
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## サポートされているイベント
|
|
138
|
+
|
|
139
|
+
| Prop 名 | 説明 |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `onTaskUpdate` | タスクのドラッグ移動やリサイズ完了時 |
|
|
142
|
+
| `onTaskClick` | タスククリック時 |
|
|
143
|
+
| `onTaskDblClick` | タスクダブルクリック時 |
|
|
144
|
+
| `onTaskContextMenu` | タスク右クリック(コンテキストメニュー)時 |
|
|
145
|
+
| `onTaskDelete` | タスク削除時 |
|
|
146
|
+
| `onTaskDrop` | タスクを行間等にドロップした時 |
|
|
147
|
+
| `onTaskProgressChange` | 進捗率変更時 |
|
|
148
|
+
| `onBarHover` | タスクバーホバー時 |
|
|
149
|
+
| `onBarSelectionChange` | タスク選択状態の変更時 |
|
|
150
|
+
| `onRowHeaderClick` | 行ヘッダークリック時 |
|
|
151
|
+
| `onRowHeaderDblClick` | 行ヘッダーダブルクリック時 |
|
|
152
|
+
| `onRowHeaderContextMenu` | 行ヘッダー右クリック時 |
|
|
153
|
+
| `onRowHeaderResize` | 行ヘッダーリサイズ時 |
|
|
154
|
+
| `onRowReordered` | 行の並び順変更時 |
|
|
155
|
+
| `onRowSelectionChange` | 行選択状態の変更時 |
|
|
156
|
+
| `onRowToggleCollapse` | 行の開閉時(WBS) |
|
|
157
|
+
| `onDependencyCreate` | 依存関係(リンク)作成時 |
|
|
158
|
+
| `onDependencyClick` | 依存関係クリック時 |
|
|
159
|
+
| `onMarkerDblClick` | マーカーダブルクリック時 |
|
|
160
|
+
| `onMarkerContextMenu` | マーカー右クリック時 |
|
|
161
|
+
| `onZoomChange` | ズーム倍率変更時 |
|
|
162
|
+
| `onMinimapMove` | ミニマップスクロール時 |
|
|
163
|
+
| `onMinimapResize` | ミニマップリサイズ時 |
|
|
164
|
+
| `onMinimapCollapse` | ミニマップ折りたたみ時 |
|
|
165
|
+
| `onChartContextMenu` | チャート背景右クリック時 |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## ライセンス
|
|
170
|
+
|
|
171
|
+
[MIT](../../LICENSE) © Murakami Hiroyuki
|
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# @mogura/moguchart-react
|
|
2
|
+
|
|
3
|
+
Official React wrapper component for [`@mogura/moguchart-core`](https://github.com/hiro-murakami/moguchart-core).
|
|
4
|
+
|
|
5
|
+
Built on top of Lit's official `@lit/react`, it combines the high performance and framework independence of Web Components with a type-safe, idiomatic React developer experience.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- ⚛️ **Native React Experience**: Declarative JSX props and event handlers
|
|
12
|
+
- 🎯 **Full Type Safety**: Complete TypeScript auto-completion for props and events
|
|
13
|
+
- 🔄 **Lifecycle Synchronization**: Automatic synchronization between React state/props and Web Component rendering
|
|
14
|
+
- ⚡ **Imperative API Access**: Directly access methods like `chart.use()`, `chart.exportImage()`, `chart.selectTask()` via `ref`
|
|
15
|
+
- 📦 **Re-exported Types**: Core types, constants, and utilities are all re-exported from this package
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# pnpm
|
|
23
|
+
pnpm add @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
24
|
+
|
|
25
|
+
# npm
|
|
26
|
+
npm install @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
27
|
+
|
|
28
|
+
# yarn
|
|
29
|
+
yarn add @mogura/moguchart-react @mogura/moguchart-core react react-dom
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import React, { useState } from 'react'
|
|
38
|
+
import {
|
|
39
|
+
GanttChart,
|
|
40
|
+
type GanttRow,
|
|
41
|
+
type GanttChartOption,
|
|
42
|
+
type TaskUpdateEventDetail,
|
|
43
|
+
} from '@mogura/moguchart-react'
|
|
44
|
+
|
|
45
|
+
export function MyGanttView() {
|
|
46
|
+
const [rows, setRows] = useState<GanttRow[]>([
|
|
47
|
+
{
|
|
48
|
+
id: 'row-1',
|
|
49
|
+
name: 'Development Phase',
|
|
50
|
+
tasks: [
|
|
51
|
+
{
|
|
52
|
+
id: 'task-1',
|
|
53
|
+
name: 'Requirements Analysis',
|
|
54
|
+
start: new Date('2026-04-01'),
|
|
55
|
+
end: new Date('2026-04-10'),
|
|
56
|
+
progress: 100,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'task-2',
|
|
60
|
+
name: 'UI/UX Design',
|
|
61
|
+
start: new Date('2026-04-08'),
|
|
62
|
+
end: new Date('2026-04-20'),
|
|
63
|
+
progress: 50,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
const option: GanttChartOption = {
|
|
70
|
+
calendar: {
|
|
71
|
+
start: new Date('2026-04-01'),
|
|
72
|
+
end: new Date('2026-04-30'),
|
|
73
|
+
pxPerDay: 40,
|
|
74
|
+
},
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const handleTaskUpdate = (e: CustomEvent<TaskUpdateEventDetail>) => {
|
|
78
|
+
console.log('Task updated:', e.detail)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<div style={{ width: '100%', height: '600px' }}>
|
|
83
|
+
<GanttChart
|
|
84
|
+
rows={rows}
|
|
85
|
+
option={option}
|
|
86
|
+
theme="light"
|
|
87
|
+
onTaskUpdate={handleTaskUpdate}
|
|
88
|
+
onTaskClick={(e) => console.log('Task clicked:', e.detail)}
|
|
89
|
+
/>
|
|
90
|
+
</div>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Using with Plugins (e.g. Export)
|
|
98
|
+
|
|
99
|
+
To export charts as PNG or PDF, pair with `@mogura/moguchart-plugin-export`:
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import React, { useRef } from 'react'
|
|
103
|
+
import { GanttChart, type GanttChartElement, type GanttChartOption } from '@mogura/moguchart-react'
|
|
104
|
+
import { exportPlugin } from '@mogura/moguchart-plugin-export'
|
|
105
|
+
|
|
106
|
+
export function ExportableGantt() {
|
|
107
|
+
const chartRef = useRef<GanttChartElement>(null)
|
|
108
|
+
|
|
109
|
+
const option: GanttChartOption = {
|
|
110
|
+
calendar: {
|
|
111
|
+
start: new Date('2026-04-01'),
|
|
112
|
+
end: new Date('2026-04-30'),
|
|
113
|
+
},
|
|
114
|
+
plugins: [exportPlugin()],
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const handleExportPng = async () => {
|
|
118
|
+
if (chartRef.current) {
|
|
119
|
+
await chartRef.current.exportImage('png', {
|
|
120
|
+
filename: 'my-schedule',
|
|
121
|
+
download: true,
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<button onClick={handleExportPng}>Download PNG</button>
|
|
129
|
+
<GanttChart ref={chartRef} rows={[]} option={option} />
|
|
130
|
+
</div>
|
|
131
|
+
)
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Supported Events
|
|
138
|
+
|
|
139
|
+
| Prop | Description |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `onTaskUpdate` | Fired when a task is moved or resized |
|
|
142
|
+
| `onTaskClick` | Fired when a task is clicked |
|
|
143
|
+
| `onTaskDblClick` | Fired when a task is double-clicked |
|
|
144
|
+
| `onTaskContextMenu` | Fired on task right-click |
|
|
145
|
+
| `onTaskDelete` | Fired when a task is deleted |
|
|
146
|
+
| `onTaskDrop` | Fired when a task is dropped |
|
|
147
|
+
| `onTaskProgressChange` | Fired when task progress percentage changes |
|
|
148
|
+
| `onBarHover` | Fired when a task bar is hovered |
|
|
149
|
+
| `onBarSelectionChange` | Fired when task bar selection changes |
|
|
150
|
+
| `onRowHeaderClick` | Fired when a row header is clicked |
|
|
151
|
+
| `onRowHeaderDblClick` | Fired when a row header is double-clicked |
|
|
152
|
+
| `onRowHeaderContextMenu` | Fired on row header right-click |
|
|
153
|
+
| `onRowHeaderResize` | Fired when a row header is resized |
|
|
154
|
+
| `onRowReordered` | Fired when rows are reordered |
|
|
155
|
+
| `onRowSelectionChange` | Fired when row selection changes |
|
|
156
|
+
| `onRowToggleCollapse` | Fired when a row is expanded or collapsed (WBS) |
|
|
157
|
+
| `onDependencyCreate` | Fired when a dependency link is created |
|
|
158
|
+
| `onDependencyClick` | Fired when a dependency link is clicked |
|
|
159
|
+
| `onMarkerDblClick` | Fired when a marker is double-clicked |
|
|
160
|
+
| `onMarkerContextMenu` | Fired on marker right-click |
|
|
161
|
+
| `onZoomChange` | Fired when zoom scale changes |
|
|
162
|
+
| `onMinimapMove` | Fired when minimap viewport scrolls |
|
|
163
|
+
| `onMinimapResize` | Fired when minimap is resized |
|
|
164
|
+
| `onMinimapCollapse` | Fired when minimap is collapsed or expanded |
|
|
165
|
+
| `onChartContextMenu` | Fired on chart background right-click |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
[MIT](../../LICENSE) © Murakami Hiroyuki
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type EventName } from '@lit/react';
|
|
3
|
+
import { GanttChartElement, type ChartContextMenuEventDetail, type MinimapMoveEventDetail, type MinimapResizeEventDetail, type MinimapCollapseEventDetail, type TaskUpdateEventDetail, type BarHoverEventDetail, type TaskClickEventDetail, type TaskContextMenuEventDetail, type TaskDropEventDetail, type RowReorderEventDetail, type RowHeaderResizeEventDetail, type RowSelectionChangeEventDetail, type BarSelectionChangeEventDetail, type RowHeaderClickEventDetail, type RowHeaderDblClickEventDetail, type RowHeaderContextMenuEventDetail, type RowToggleCollapseEventDetail, type DependencyCreateEventDetail, type DependencyClickEventDetail, type MarkerDblClickEventDetail, type MarkerContextMenuEventDetail, type TaskDeleteEventDetail, type ZoomChangeEventDetail, type TaskProgressChangeEventDetail } from '@mogura/moguchart-core';
|
|
4
|
+
/**
|
|
5
|
+
* @mogura/moguchart-core の GanttChartElement をラップした React コンポーネント。
|
|
6
|
+
* Web Components のライフサイクルと完全同期し、React のプロパティやイベントハンドラー、ref をサポートします。
|
|
7
|
+
*/
|
|
8
|
+
export declare const GanttChart: import("@lit/react").ReactWebComponent<GanttChartElement, {
|
|
9
|
+
onChartContextMenu: EventName<CustomEvent<ChartContextMenuEventDetail>>;
|
|
10
|
+
onMinimapMove: EventName<CustomEvent<MinimapMoveEventDetail>>;
|
|
11
|
+
onMinimapResize: EventName<CustomEvent<MinimapResizeEventDetail>>;
|
|
12
|
+
onMinimapCollapse: EventName<CustomEvent<MinimapCollapseEventDetail>>;
|
|
13
|
+
onTaskUpdate: EventName<CustomEvent<TaskUpdateEventDetail>>;
|
|
14
|
+
onBarHover: EventName<CustomEvent<BarHoverEventDetail>>;
|
|
15
|
+
onTaskClick: EventName<CustomEvent<TaskClickEventDetail>>;
|
|
16
|
+
onTaskDblClick: EventName<CustomEvent<TaskClickEventDetail>>;
|
|
17
|
+
onTaskContextMenu: EventName<CustomEvent<TaskContextMenuEventDetail>>;
|
|
18
|
+
onTaskDrop: EventName<CustomEvent<TaskDropEventDetail>>;
|
|
19
|
+
onRowReordered: EventName<CustomEvent<RowReorderEventDetail>>;
|
|
20
|
+
onRowHeaderResize: EventName<CustomEvent<RowHeaderResizeEventDetail>>;
|
|
21
|
+
onRowSelectionChange: EventName<CustomEvent<RowSelectionChangeEventDetail>>;
|
|
22
|
+
onBarSelectionChange: EventName<CustomEvent<BarSelectionChangeEventDetail>>;
|
|
23
|
+
onRowHeaderClick: EventName<CustomEvent<RowHeaderClickEventDetail>>;
|
|
24
|
+
onRowHeaderDblClick: EventName<CustomEvent<RowHeaderDblClickEventDetail>>;
|
|
25
|
+
onRowHeaderContextMenu: EventName<CustomEvent<RowHeaderContextMenuEventDetail>>;
|
|
26
|
+
onRowToggleCollapse: EventName<CustomEvent<RowToggleCollapseEventDetail>>;
|
|
27
|
+
onDependencyCreate: EventName<CustomEvent<DependencyCreateEventDetail>>;
|
|
28
|
+
onDependencyClick: EventName<CustomEvent<DependencyClickEventDetail>>;
|
|
29
|
+
onMarkerDblClick: EventName<CustomEvent<MarkerDblClickEventDetail>>;
|
|
30
|
+
onMarkerContextMenu: EventName<CustomEvent<MarkerContextMenuEventDetail>>;
|
|
31
|
+
onTaskDelete: EventName<CustomEvent<TaskDeleteEventDetail>>;
|
|
32
|
+
onZoomChange: EventName<CustomEvent<ZoomChangeEventDetail>>;
|
|
33
|
+
onTaskProgressChange: EventName<CustomEvent<TaskProgressChangeEventDetail>>;
|
|
34
|
+
}>;
|
|
35
|
+
/** GanttChart コンポーネントの Props 型定義 */
|
|
36
|
+
export type GanttChartProps = React.ComponentProps<typeof GanttChart>;
|
|
37
|
+
export * from '@mogura/moguchart-core';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import e from "react";
|
|
2
|
+
import { createComponent as t } from "@lit/react";
|
|
3
|
+
import { GanttChartElement as n } from "@mogura/moguchart-core";
|
|
4
|
+
export * from "@mogura/moguchart-core";
|
|
5
|
+
//#region src/index.ts
|
|
6
|
+
var r = t({
|
|
7
|
+
tagName: "gantt-chart",
|
|
8
|
+
elementClass: n,
|
|
9
|
+
react: e,
|
|
10
|
+
events: {
|
|
11
|
+
onChartContextMenu: "chart-contextmenu",
|
|
12
|
+
onMinimapMove: "minimap-move",
|
|
13
|
+
onMinimapResize: "minimap-resize",
|
|
14
|
+
onMinimapCollapse: "minimap-collapse",
|
|
15
|
+
onTaskUpdate: "task-update",
|
|
16
|
+
onBarHover: "bar-hover",
|
|
17
|
+
onTaskClick: "task-click",
|
|
18
|
+
onTaskDblClick: "task-dblclick",
|
|
19
|
+
onTaskContextMenu: "task-contextmenu",
|
|
20
|
+
onTaskDrop: "task-drop",
|
|
21
|
+
onRowReordered: "row-reordered",
|
|
22
|
+
onRowHeaderResize: "row-header-resize",
|
|
23
|
+
onRowSelectionChange: "row-selection-change",
|
|
24
|
+
onBarSelectionChange: "bar-selection-change",
|
|
25
|
+
onRowHeaderClick: "row-header-click",
|
|
26
|
+
onRowHeaderDblClick: "row-header-dblclick",
|
|
27
|
+
onRowHeaderContextMenu: "row-header-contextmenu",
|
|
28
|
+
onRowToggleCollapse: "row-toggle-collapse",
|
|
29
|
+
onDependencyCreate: "dependency-create",
|
|
30
|
+
onDependencyClick: "dependency-click",
|
|
31
|
+
onMarkerDblClick: "marker-dblclick",
|
|
32
|
+
onMarkerContextMenu: "marker-contextmenu",
|
|
33
|
+
onTaskDelete: "task-delete",
|
|
34
|
+
onZoomChange: "zoom-change",
|
|
35
|
+
onTaskProgressChange: "task-progress-change"
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//#endregion
|
|
39
|
+
export { r as GanttChart };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("@lit/react"),require("@mogura/moguchart-core")):typeof define==`function`&&define.amd?define([`exports`,`react`,`@lit/react`,`@mogura/moguchart-core`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.MoguchartReact={},e.React,e.LitReact,e.MoguchartCore))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=s(t),c=0,u=i.length,d;c<u;c++)d=i[c],!l.call(e,d)&&d!==n&&a(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=o(t,d))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:i(c(e)),u(t||!e||!e.__esModule||!l.call(e,`default`)?a(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1),e.GanttChart=(0,n.createComponent)({tagName:`gantt-chart`,elementClass:r.GanttChartElement,react:t.default,events:{onChartContextMenu:`chart-contextmenu`,onMinimapMove:`minimap-move`,onMinimapResize:`minimap-resize`,onMinimapCollapse:`minimap-collapse`,onTaskUpdate:`task-update`,onBarHover:`bar-hover`,onTaskClick:`task-click`,onTaskDblClick:`task-dblclick`,onTaskContextMenu:`task-contextmenu`,onTaskDrop:`task-drop`,onRowReordered:`row-reordered`,onRowHeaderResize:`row-header-resize`,onRowSelectionChange:`row-selection-change`,onBarSelectionChange:`bar-selection-change`,onRowHeaderClick:`row-header-click`,onRowHeaderDblClick:`row-header-dblclick`,onRowHeaderContextMenu:`row-header-contextmenu`,onRowToggleCollapse:`row-toggle-collapse`,onDependencyCreate:`dependency-create`,onDependencyClick:`dependency-click`,onMarkerDblClick:`marker-dblclick`,onMarkerContextMenu:`marker-contextmenu`,onTaskDelete:`task-delete`,onZoomChange:`zoom-change`,onTaskProgressChange:`task-progress-change`}}),Object.keys(r).forEach(function(t){t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})})});
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mogura/moguchart-react",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"description": "React wrapper for @mogura/moguchart-core Gantt chart component",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Murakami Hiroyuki",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/hiro-murakami/moguchart-core.git",
|
|
11
|
+
"directory": "packages/react"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/hiro-murakami/moguchart-core",
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"gantt",
|
|
19
|
+
"gantt-chart",
|
|
20
|
+
"moguchart",
|
|
21
|
+
"react",
|
|
22
|
+
"react-gantt",
|
|
23
|
+
"web-components"
|
|
24
|
+
],
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"README.md",
|
|
28
|
+
"README.ja.md"
|
|
29
|
+
],
|
|
30
|
+
"main": "./dist/moguchart-react.umd.js",
|
|
31
|
+
"module": "./dist/moguchart-react.mjs",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./dist/index.d.ts",
|
|
36
|
+
"import": "./dist/moguchart-react.mjs",
|
|
37
|
+
"require": "./dist/moguchart-react.umd.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
42
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
43
|
+
"@mogura/moguchart-core": "1.1.0"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@lit/react": "^1.0.8"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@testing-library/react": "^16.2.0",
|
|
50
|
+
"@types/node": "^24.12.0",
|
|
51
|
+
"@types/react": "^19.0.0",
|
|
52
|
+
"@types/react-dom": "^19.0.0",
|
|
53
|
+
"jsdom": "^27.4.0",
|
|
54
|
+
"react": "^19.0.0",
|
|
55
|
+
"react-dom": "^19.0.0",
|
|
56
|
+
"typescript": "^5.9.3",
|
|
57
|
+
"vite": "^8.0.0",
|
|
58
|
+
"vitest": "^3.0.0",
|
|
59
|
+
"@mogura/moguchart-core": "1.1.0"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "vite build && pnpm exec tsc -p tsconfig.build.json",
|
|
63
|
+
"test": "vitest",
|
|
64
|
+
"test:run": "vitest run"
|
|
65
|
+
}
|
|
66
|
+
}
|