@mogura/moguchart-react 1.5.0 → 1.6.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/README.ja.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  Lit 公式の `@lit/react` をベースに設計されており、Web Components の高いパフォーマンスとフレームワーク非依存の柔軟性を保ちつつ、React アプリケーションで型安全かつ直感的にガントチャートを扱うことができます。
6
6
 
7
+ [English Documentation](./README.md)
8
+
7
9
  ---
8
10
 
9
11
  ## 特徴
@@ -15,6 +17,7 @@ Lit 公式の `@lit/react` をベースに設計されており、Web Components
15
17
  - 🔌 **プラグイン連携**: `@mogura/moguchart-plugin-export` (PNG/PDF) や `@mogura/moguchart-plugin-excel` (Excel) などの公式プラグインをシームレスに利用可能
16
18
  - 📈 **予実管理 (Baseline) 対応**: `task.baseline` と `option.baseline` による計画 vs 実績の同時可視化と遅延検知に対応
17
19
  - 📋 **マルチカラムデータグリッド & インライン編集**: `option.grid` による複数列WBSテーブル表示・列幅リサイズ・セル直接編集(`onCellEdit`, `onColumnResize`)に対応
20
+ - 🔗 **自動スケジューリング & FS/SS/FF/SF 依存関係対応**: `GanttDependencyLink` による4種類の依存関係・ラグ指定と、営業日ベース(土日・祝日除外 `calendarMode`)にも対応した後続タスクの自動カスケード移動(`option.dependency.autoSchedule`, `autoSchedule()`)に対応
18
21
  - 📦 **Re-export**: `@mogura/moguchart-core` の型定義や定数をすべて再エクスポートしているため、本パッケージのみのインストールで開発可能
19
22
 
20
23
  ---
@@ -145,7 +148,7 @@ export function GanttToolbar() {
145
148
  - **スクロール・選択**: `scrollToTask(taskId)`, `scrollToPosition(pos)`, `resetScroll()`, `selectTask(taskId)`
146
149
  - **WBS・折りたたみ**: `toggleRowCollapse(rowId, collapsed?)`, `collapseAll()`, `expandAll()`, `getRowPositions()`
147
150
  - **グリッド・インラインセル編集**: `startCellEdit(rowId, columnId)`, `commitCellEdit(overrideValue?)`, `cancelCellEdit()`
148
- - **依存関係操作**: `triggerDependencyDelete(sourceTaskId, targetTaskId)`, `selectDependency(...)`, `clearDependencySelection()`
151
+ - **依存関係・自動スケジュール操作**: `triggerDependencyDelete(sourceTaskId, targetTaskId)`, `autoSchedule(changedTaskIds?, options?)`, `selectDependency(...)`, `clearDependencySelection()`
149
152
  - **画像・PDFエクスポート**: `exportImage(format, options)`(`@mogura/moguchart-plugin-export` 導入時)
150
153
  - **Excelエクスポート**: `exportExcel(options)`(`@mogura/moguchart-plugin-excel` 導入時)
151
154
 
@@ -329,7 +332,7 @@ React では標準のイベント Props としてキャメルケース(`onTask
329
332
  | `onRowSelectionChange` | 行選択状態の変更時 | `CustomEvent<RowSelectionChangeEventDetail>` |
330
333
  | `onRowToggleCollapse` | 行の開閉時(WBS) | `CustomEvent<RowToggleCollapseEventDetail>` |
331
334
  | `onDependencyCreate` | 依存関係(リンク)作成時 | `CustomEvent<DependencyCreateEventDetail>` |
332
- | `onDependencyClick` | 依存関係クリック時 | `CustomEvent<DependencyClickEventDetail>` |
335
+ | `onDependencyClick` | 依存関係クリック・ダブルクリック・右クリック時 | `CustomEvent<DependencyClickEventDetail>` |
333
336
  | `onDependencySelect` | 依存関係の選択状態変更時(ハイライト・削除ボタン表示) | `CustomEvent<DependencySelectEventDetail>` |
334
337
  | `onDependencyDelete` | 依存関係削除時 | `CustomEvent<DependencyDeleteEventDetail>` |
335
338
  | `onMarkerDblClick` | マーカーダブルクリック時 | `CustomEvent<MarkerDblClickEventDetail>` |
package/README.md CHANGED
@@ -17,6 +17,7 @@ Built on top of Lit's official `@lit/react`, it combines the high performance an
17
17
  - 🔌 **Plugin Support**: Seamless integration with `@mogura/moguchart-plugin-export` (PNG/PDF) and `@mogura/moguchart-plugin-excel` (Excel)
18
18
  - 📈 **Baseline & Delay Tracking**: Compare planned schedules (`task.baseline`) against actual timelines with automatic delay highlighting and variance tooltips
19
19
  - 📋 **Multi-Column Data Grid & Inline Editing**: WBS data table (`option.grid`) with column resizing and inline cell editing (`onCellEdit`, `onColumnResize`)
20
+ - 🔗 **Auto-Scheduling & FS/SS/FF/SF Dependencies**: Support for `FS`/`SS`/`FF`/`SF` dependency links with lag (`GanttDependencyLink`), working-day/holiday-aware (`calendarMode: 'calendar' | 'weekends' | 'weekends-holidays'`) topological cascade scheduling (`option.dependency.autoSchedule`, `autoSchedule()`)
20
21
  - 📦 **Re-exported Types**: Core types, constants, and utilities are all re-exported from this package
21
22
 
22
23
  ---
@@ -147,7 +148,7 @@ The following methods can be invoked directly on `ref.current`:
147
148
  - **Scroll & Selection**: `scrollToTask(taskId)`, `scrollToPosition(pos)`, `resetScroll()`, `selectTask(taskId)`
148
149
  - **WBS & Collapse**: `toggleRowCollapse(rowId, collapsed?)`, `collapseAll()`, `expandAll()`, `getRowPositions()`
149
150
  - **Grid & Inline Cell Editing**: `startCellEdit(rowId, columnId)`, `commitCellEdit(overrideValue?)`, `cancelCellEdit()`
150
- - **Dependency Operations**: `triggerDependencyDelete(sourceTaskId, targetTaskId)`, `selectDependency(...)`, `clearDependencySelection()`
151
+ - **Dependency & Auto-Schedule Operations**: `triggerDependencyDelete(sourceTaskId, targetTaskId)`, `autoSchedule(changedTaskIds?, options?)`, `selectDependency(...)`, `clearDependencySelection()`
151
152
  - **Image & PDF Export**: `exportImage(format, options)` (with `@mogura/moguchart-plugin-export`)
152
153
  - **Excel Export**: `exportExcel(options)` (with `@mogura/moguchart-plugin-excel`)
153
154
 
@@ -331,7 +332,7 @@ Events dispatched by `@mogura/moguchart-core` can be listened to via standard ca
331
332
  | `onRowSelectionChange` | Fired when row selection changes | `CustomEvent<RowSelectionChangeEventDetail>` |
332
333
  | `onRowToggleCollapse` | Fired when a row is expanded or collapsed (WBS) | `CustomEvent<RowToggleCollapseEventDetail>` |
333
334
  | `onDependencyCreate` | Fired when a dependency link is created | `CustomEvent<DependencyCreateEventDetail>` |
334
- | `onDependencyClick` | Fired when a dependency link is clicked | `CustomEvent<DependencyClickEventDetail>` |
335
+ | `onDependencyClick` | Fired when a dependency link is clicked, double-clicked, or right-clicked | `CustomEvent<DependencyClickEventDetail>` |
335
336
  | `onDependencySelect` | Fired when dependency selection changes (highlight / delete button shown) | `CustomEvent<DependencySelectEventDetail>` |
336
337
  | `onDependencyDelete` | Fired when a dependency link is deleted | `CustomEvent<DependencyDeleteEventDetail>` |
337
338
  | `onMarkerDblClick` | Fired when a marker is double-clicked | `CustomEvent<MarkerDblClickEventDetail>` |
@@ -2,7 +2,7 @@ import e from "react";
2
2
  import { createComponent as t } from "@lit/react";
3
3
  import { GanttChartElement as n } from "@mogura/moguchart-core";
4
4
  export * from "@mogura/moguchart-core";
5
- //#region src/index.ts
5
+ // src/index.ts
6
6
  var r = t({
7
7
  tagName: "gantt-chart",
8
8
  elementClass: n,
@@ -42,5 +42,4 @@ var r = t({
42
42
  onRowsChange: "rows-change"
43
43
  }
44
44
  });
45
- //#endregion
46
45
  export { r as GanttChart };
@@ -1 +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`,onDependencyDelete:`dependency-delete`,onDependencySelect:`dependency-select`,onMarkerDblClick:`marker-dblclick`,onMarkerContextMenu:`marker-contextmenu`,onTaskDelete:`task-delete`,onZoomChange:`zoom-change`,onTaskProgressChange:`task-progress-change`,onCommand:`command`,onHistoryChange:`history-change`,onColumnResize:`column-resize`,onCellEdit:`cell-edit`,onRowsChange:`rows-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]}})})});
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(a(n,`default`,{value:e,enumerable:!0}),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`,onDependencyDelete:`dependency-delete`,onDependencySelect:`dependency-select`,onMarkerDblClick:`marker-dblclick`,onMarkerContextMenu:`marker-contextmenu`,onTaskDelete:`task-delete`,onZoomChange:`zoom-change`,onTaskProgressChange:`task-progress-change`,onCommand:`command`,onHistoryChange:`history-change`,onColumnResize:`column-resize`,onCellEdit:`cell-edit`,onRowsChange:`rows-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mogura/moguchart-react",
3
3
  "type": "module",
4
- "version": "1.5.0",
4
+ "version": "1.6.0",
5
5
  "description": "React wrapper for @mogura/moguchart-core Gantt chart component",
6
6
  "license": "MIT",
7
7
  "author": "Murakami Hiroyuki",
@@ -39,14 +39,15 @@
39
39
  }
40
40
  },
41
41
  "peerDependencies": {
42
+ "@mogura/moguchart-core": "1.6.0",
42
43
  "react": "^18.0.0 || ^19.0.0",
43
- "react-dom": "^18.0.0 || ^19.0.0",
44
- "@mogura/moguchart-core": "1.5.0"
44
+ "react-dom": "^18.0.0 || ^19.0.0"
45
45
  },
46
46
  "dependencies": {
47
47
  "@lit/react": "^1.0.8"
48
48
  },
49
49
  "devDependencies": {
50
+ "@mogura/moguchart-core": "1.6.0",
50
51
  "@testing-library/react": "^16.2.0",
51
52
  "@types/node": "^24.12.0",
52
53
  "@types/react": "^19.0.0",
@@ -56,8 +57,7 @@
56
57
  "react-dom": "^19.0.0",
57
58
  "typescript": "^5.9.3",
58
59
  "vite": "^8.0.0",
59
- "vitest": "^3.0.0",
60
- "@mogura/moguchart-core": "1.5.0"
60
+ "vitest": "^3.0.0"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "vite build && pnpm exec tsc -p tsconfig.build.json",