プラグインの概要

Day Flow はプラグインアーキテクチャを採用しており、必要に応じて機能を拡張できます。プラグインはモジュール化されており、有効化、無効化、または詳細な設定が可能です。

なぜプラグインを使うのか?

プラグインシステムには以下のメリットがあります:

  • オンデマンド読み込み - 必要な機能だけをロードできます(例:デフォルトでは英語のみを含めることでバンドルサイズを削減)。
  • 動作のカスタマイズ - 特定のユースケースに合わせてプラグインの設定を調整できます。
  • 機能拡張 - 独自のニーズに合わせてカスタムプラグインを作成できます。
  • プラグイン API へのアクセス - 業務ロジック内でプラグインのサービスを直接利用できます。

利用可能なプラグイン

Day Flow では、以下の公式プラグインを提供しています:

i18n

多言語サポートを提供します。英語以外のロケールをプラグインに切り出すことで、英語のみを使用するアプリケーションのコアバンドルサイズを小さく保つことができます。詳細はこちら

ドラッグ&ドロップ (Drag & Drop)

イベントの移動、リサイズ、ダブルクリックによる新規作成など、インタラクティブなイベント管理を可能にします。詳細はこちら

イベントサービス (Events Service)

バリデーション、フィルタリング、日付範囲クエリなど、高度なイベント管理機能を提供します。詳細はこちら


プラグインのライフサイクル

  1. プラグインの作成 - 工場関数(例:createDragPlugin())を呼び出して設定を行います。
  2. プラグインの登録 - カレンダーの初期化時に、インスタンスを plugins 配列に追加します。
  3. インストール - install() 関数が自動的に呼び出され、CalendarApp インスタンスが渡されます。
  4. 利用 - 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('プラグインがインストールされました!');
    // ここでアプリの機能を拡張します
  },
};

On this page