# InlineForm **コントロール機能**:行内に送信可能なフォームを埋め込むためのもので、フィールド入力、検証、ツールバー操作(送信、リセット、キャンセル)をサポートしています。軽量なフォームを埋め込みたいシーンに適しています。 **タイプ**:通常コントロール **親クラスコントロール**:`bricks.FormBase` ## 初期化パラメータ | パラメータ名 | 型 | 説明 | |--------|------|------| | `fields` | 配列 | フォームフィールド設定配列。各フィールドオブジェクトには name、label、uitype などの情報が含まれます。 | | `height` | 文字列 | 任意。デフォルトは `"100%"`。コントロールの高さを設定します。 | | `width` | 文字列 | 任意。デフォルトは `"100%"`。コントロールの幅を設定します。 | | `overflow` | 文字列 | 任意。デフォルトは `"auto"`。コンテンツがオーバーフローした際の表示方法を制御します。 | > 注意:すべてのオプションはコンストラクタに `opts` 経由で渡されます。 ## 主要イベント | イベント名 | 発火条件 | コールバック引数 | |--------|----------|---------| | `submit(data)` | ユーザーが「送信」ボタンをクリックし、データが検証を通過した後に発火します。 | `data`: FormData オブジェクトまたは通常のオブジェクト。フォームデータを含みます。 | | `submited(resp)` | 送信リクエスト完了後(成功・失敗問わず)に発火します。 | `resp`: レスポンスオブジェクト。`await resp.json()` で戻り値を取得できます。 | | `cancel` | ユーザーが「キャンセル」ボタンをクリックしたときに発火します。 | 引数なし。 | | `reset` | ユーザーが「リセット」ボタンをクリックしたときに発火します。 | 引数なし。 | | カスタムコマンドイベント | ツールバーにカスタムボタンが追加され、`action` または名前が設定されている場合にクリック時に発火します。 | `event.params` にボタン情報が含まれます。 | --- # Form **コントロール機能**:完全なフォームコンテナーコントロールで、タイトル、説明文、複数フィールドのレイアウト、テキスト/非テキストフィールドの分離、ツールバーの自動生成、送信URLおよびメソッドの設定が可能です。独立したページやポップアップ内のフル機能フォームに適しています。 **タイプ**:コンテナーコントロール **親クラスコントロール**:`bricks.FormBase` ## 初期化パラメータ | パラメータ名 | 型 | 説明 | |--------|------|------| | `title` | 文字列 | 任意。フォームのタイトル。大きな文字で表示されます。 | | `description` | 文字列 | 任意。フォームの説明文。タイトルの下に表示されます。 | | `fields` | 配列 | 必須。フィールド設定リスト。構造は InlineForm と同じです。 | | `submit_url` | 文字列 | 任意。フォーム送信先の URL。設定すると自動的に HTTP リクエストが送信されます。 | | `method` | 文字列 | 任意。HTTP メソッド。デフォルトは `'POST'`。 | | `notoolbar` | 真偽値 | 任意。デフォルトは `false`。デフォルトのツールバー(送信/リセット/キャンセル)を非表示にするかどうか。 | | `toolbar` | オブジェクト | 任意。デフォルトツールバーの拡張または置き換え設定。構造は `{ tools: [...] }`。 | | `input_layout` | 文字列 | 任意。入力フィールドのレイアウト方式。`"VBox"`(垂直)または `"HBox"`(水平)をサポート。デフォルトは `"VBox"`。 | | `dataurl` | 文字列 | (予約)初期データ読み込み用のインターフェースアドレス(現時点では直接使用されていません)。 | ## 主要イベント | イベント名 | 発火条件 | コールバック引数 | |--------|----------|---------| | `submit(data)` | フォーム送信前に検証通過後に発火。データの中断や前処理に利用可能。 | `data`: 送信されるデータオブジェクトまたは FormData。 | | `submited(resp)` | `submit_url` へのリクエスト送信完了後に発火。 | `resp`: Response オブジェクト。レスポンス結果の処理に利用可能。 | | `cancel` | ユーザーが「キャンセル」ボタンをクリックしたときに発火。 | 引数なし。 | | `reset` | ユーザーが「リセット」ボタンをクリックしたときに発火。 | 引数なし。 | | カスタムイベント | ツールバー内のカスタムボタンがクリックされ、`action` またはイベント名が定義されている場合に発火。 | `event.params` にボタンのメタデータが含まれます。 | --- # FormBody **コントロール機能**:`Form` 内部で使用される本体コンテンツ領域。すべての非テキストフィールド(`FieldGroup` 経由)とテキストフィールド(読み取り専用表示)をレンダリングし、実際の入力エリアを保持するコンテナです。 **タイプ**:コンテナーコントロール **親クラスコントロール**:`bricks.VScrollPanel` ## 初期化パラメータ | パラメータ名 | 型 | 説明 | |--------|------|------| | `form` | オブジェクト | 所属するフォームインスタンス。フィールド定義や name_inputs などの状態にアクセスするために使用。 | | `opts` | オブジェクト | 設定項目。自動的に `width: '100%'`、`height: '100%'` が設定されます。 | > 注:このコントロールは通常、開発者が直接作成するものではなく、`Form` の構築過程で内部的にインスタンス化されます。 ## 主要イベント このコントロール自体は外部へイベントを発行しませんが、コンテナーとして `VScrollPanel` のスクロール関連機能を継承しており、主に視覚的な表示に使用されます。 - 業務イベントを主動的に発火させません。 - 子コントロール(例:入力フィールド)の変更は上位の `Form` の状態に影響を与えます。 --- # FieldGroup **コントロール機能**:補助クラス。フォーム内のフィールドグループ(入れ子の group 構造も可)を再帰的に構築するためのもので、フィールドをレイアウトルールに従って動的列(DynamicColumn)や入力コンテナ(VBox/HBox)に組織化します。 **タイプ**:通常コントロール(ロジックコンポーネント) **親クラスコントロール**:なし(基本クラス) ## 初期化パラメータ | パラメータ名 | 型 | 説明 | |--------|------|------| | `opts` | オブジェクト | 現在は実際には使用されていません。将来の拡張性のために保持されています。 | > 注:このクラスは UI コントロールではなく、DOM を直接レンダリングしません。構築ロジックモジュールとしてのみ存在します。 ## 主要イベント このクラスにはイベント機構はなく、同期メソッド呼び出しにのみサービスを提供します: - `build_fields(form, parent, fields)`:核心メソッド。再帰的にフィールドUIを生成し、指定された親コンテナにマウントします。 --- > ✅ **説明まとめ**: > > - `InlineForm` と `Form` はユーザーが直接使用できるフォームコントロールです。 > - `FormBody` と `FieldGroup` は内部実装コンポーネントであり、通常は個別にドキュメント化して使用する必要はありません。 > - すべてのフォームコントロールは、統一されたデータ収集、検証、送信プロセスを共有しています。 > - ファイル型フィールド(file/audio/video)は、`FormData` を使用することで自動認識されます。 > - ツールバーは高度なカスタマイズ拡張をサポートしています。