プラグインの概要
Day Flow はプラグインアーキテクチャを採用しており、必要に応じて機能を拡張できます。プラグインはモジュール化されており、有効化、無効化、または詳細な設定が可能です。
なぜプラグインを使うのか?
プラグインシステムには以下のメリットがあります:
- オンデマンド読み込み - 必要な機能だけをロードできます(例:デフォルトでは英語のみを含めることでバンドルサイズを削減)。
- 動作のカスタマイズ - 特定のユースケースに合わせてプラグインの設定を調整できます。
- 機能拡張 - 独自のニーズに合わせてカスタムプラグインを作成できます。
- プラグイン API へのアクセス - 業務ロジック内でプラグインのサービスを直接利用できます。
利用可能なプラグイン
Day Flow では、以下の公式プラグインを提供しています:
i18n
多言語サポートを提供します。英語以外のロケールをプラグインに切り出すことで、英語のみを使用するアプリケーションのコアバンドルサイズを小さく保つことができます。詳細はこちら
ドラッグ&ドロップ (Drag & Drop)
イベントの移動、リサイズ、ダブルクリックによる新規作成など、インタラクティブなイベント管理を可能にします。詳細はこちら
イベントサービス (Events Service)
バリデーション、フィルタリング、日付範囲クエリなど、高度なイベント管理機能を提供します。詳細はこちら
プラグインのライフサイクル
- プラグインの作成 - 工場関数(例:
createDragPlugin())を呼び出して設定を行います。 - プラグインの登録 - カレンダーの初期化時に、インスタンスを
plugins配列に追加します。 - インストール -
install()関数が自動的に呼び出され、CalendarAppインスタンスが渡されます。 - 利用 -
app.getPlugin('plugin-name')を介してプラグイン API にアクセスします。
カスタムプラグインの作成
CalendarPlugin インターフェースを実装することで、独自のプラグインを作成できます:
import { CalendarPlugin, ICalendarApp } from '@dayflow/core';
export const myPlugin: CalendarPlugin = {
name: 'my-custom-plugin',
install(app: ICalendarApp) {
console.log('プラグインがインストールされました!');
// ここでアプリの機能を拡張します
},
};