====== Vue.js 3.x LabeledComboForm コンポーネント ======
===== 要求 =====
* input の以下のタイプを実装するラベル付きコンポーネント
* text
* password
* email
* url
* number
* date
* time
* v-model 対応
* 再利用可能なコンポーネントとする。
* 指定可能な属性が異なるため、$attr をバインドするが、対応できない場合は別のコンポーネントとしてで作成する。
===== コード =====
import LabeledForm from '/_export/code/vuejs/vue3/labeled_form?codeblock=0';
import ComboForm from '/_export/code/vuejs/vue3/combo_form?codeblock=0';
const LabeledComboForm = {
template: `
※ ComboButton のカスタムイベントはここでリッスンして再発行しなくても、バブリングで親コンポーネントに届く。
===== Props =====
^ Property ^ Type ^ Default ^ Description ^
| **type** | String | 'text' | input タグの type 指定 (text, password, email, url, date, time) |
| **value** | String | | v-model プロパティとして value を持つ |
| **buttonEvent** | String | | コンボボタンをクリックした際の、イベント名を指定する |
| **controlWrapperClasses** | Array | [] | select を囲う div タグに反映するクラス |
| **controlWrapperStyles** | Object | {} | select を囲う div タグに反映するスタイル |
| **controlClasses** | Array | [] | 入力コントロールに反映するクラス |
| **controlStyles** | Object | {} | 入力コントロールに反映するスタイル |
| **messageWrapperClasses** | Array | [] | エラーメッセージを囲う div タグに反映するクラス |
| **errors** | Array | [] | エラーメッセージの配列 |
| **controlErrorClass** | String | 'has-error' | コントロールに反映するエラークラス |
| **messageErrorClass** | String | 'text-danger' | エラーメッセージに反映するエラークラス |
**※ ここで記述されていない number や date, time などに指定可能なプロパティ min, max, step などは $attrs で input タグに自動的にバインドする.**
===== Events =====
^ Event ^ Value ^
| **update:value** | 選択された値 |
===== Demo =====
==== テーブルライクなレイアウト ====