フォーム日付ピッカー

<b-form-datepicker> は、BootstrapVueカスタム日付ピッカー入力フォームコントロールであり、完全なWAI-ARIA準拠と国際化サポートを提供します。

BootstrapVue v2.5.0 以降で利用可能です

概要

<b-calendar>コンポーネントのフォームコントロールラッパーコンポーネントとして、追加の検証状態の表示とコンパクトなインターフェースを提供します。ネイティブHTML5日付入力は、表示、アクセシビリティ、および場合によってはすべてのブラウザでサポートされていない場合があります。<b-form-datepicker>は、すべてのブラウザプラットフォームとデバイスで一貫性のあるアクセス可能なインターフェースを提供します。

<template>
  <div>
    <label for="example-datepicker">Choose a date</label>
    <b-form-datepicker id="example-datepicker" v-model="value" class="mb-2"></b-form-datepicker>
    <p>Value: '{{ value }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    }
  }
</script>

<!-- b-form-datepicker.vue -->

<b-form-datepicker> は、<b-calendar> で利用可能な多くのプロパティと、<b-dropdown> で利用可能なプロパティの一部をサポートしています。

v-model 戻り値

デフォルトでは、<b-form-datepicker> は日付をYYYY-MM-DD 形式の文字列として返します。これは、ネイティブブラウザの <input type="date"> コントロールによって返される形式と同じです。value-as-date プロパティを設定することにより、<b-form-datepicker>v-model 値として Date オブジェクト(時間部分はなし)を返すことができます。

日付が選択されていない場合、<b-form-datepicker> は空の文字列 '' を返し、value-as-date プロパティが設定されている場合は null を返します。

value-as-date プロパティが設定されている場合、返される Date オブジェクトはブラウザのデフォルトのタイムゾーンになることに注意してください。

<b-form-datepicker>name プロパティの値が設定されている場合、非表示の入力が作成され、その name 属性が name プロパティの値に設定され、value 属性が選択された日付に YYYY-MM-DD 文字列として設定されます。これにより、<b-form-datepicker> で選択された値をネイティブブラウザのフォーム送信で送信できます。

無効状態と読み取り専用状態

disabled プロパティを設定すると、<b-form-datepicker> コンポーネントのすべての対話機能が無効になります。

readonly プロパティを設定すると、日付の選択は無効になりますが、コンポーネントはインタラクティブなままで、日付のナビゲーションが可能です。v-model は読み取り専用状態では更新されません。

特定の日付を無効にする、または最小日と最大日の制限を設定するには、日付の制約セクションを参照してください。

<template>
  <div>
    <b-form-group
      label="Select date picker interactive state"
      v-slot="{ ariaDescribedby }"
    >
      <b-form-radio-group
        v-model="state"
        :aria-describedby="ariaDescribedby"
        aria-controls="ex-disabled-readonly"
      >
        <b-form-radio value="disabled">Disabled</b-form-radio>
        <b-form-radio value="readonly">Readonly</b-form-radio>
        <b-form-radio value="normal">Normal</b-form-radio>
      </b-form-radio-group>
    </b-form-group>

    <b-form-datepicker
      id="ex-disabled-readonly"
      :disabled="disabled"
      :readonly="readonly"
    ></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        state: 'disabled'
      }
    },
    computed: {
      disabled() {
        return this.state === 'disabled'
      },
      readonly() {
        return this.state === 'readonly'
      }
    }
  }
</script>

<!-- b-form-datepicker-disabled-readonly.vue -->

日付の制約

最小日と最大日

min および max プロパティを使用してカレンダーの範囲を制限します。これらのプロパティは、YYYY-MM-DD 形式の日付文字列または Date オブジェクトを受け入れます。

<template>
  <div>
    <b-form-datepicker v-model="value" :min="min" :max="max" locale="en"></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      const now = new Date()
      const today = new Date(now.getFullYear(), now.getMonth(), now.getDate())
      // 15th two months prior
      const minDate = new Date(today)
      minDate.setMonth(minDate.getMonth() - 2)
      minDate.setDate(15)
      // 15th in two months
      const maxDate = new Date(today)
      maxDate.setMonth(maxDate.getMonth() + 2)
      maxDate.setDate(15)

      return {
        value: '',
        min: minDate,
        max: maxDate
      }
    }
  }
</script>

<!-- b-form-datepicker-min-max.vue -->

日付の無効化

日付ピッカー内で特定の日付を無効にする必要がある場合は、date-disabled-fn プロパティに関数リファレンスを指定します。関数には2つの引数が渡されます

  • ymd YYYY-MM-DD 文字列としての日付
  • date Date オブジェクトとしての日付

関数は、日付を選択できない(無効)場合は true を、日付を選択できる(有効)場合は false を返す必要があります。関数は**非同期**にすることができず、できるだけ早く値を返す必要があることに注意してください。

<template>
  <div>
    <b-form-datepicker v-model="value" :date-disabled-fn="dateDisabled" locale="en"></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    },
    methods: {
      dateDisabled(ymd, date) {
        // Disable weekends (Sunday = `0`, Saturday = `6`) and
        // disable days that fall on the 13th of the month
        const weekday = date.getDay()
        const day = date.getDate()
        // Return `true` if the date should be disabled
        return weekday === 0 || weekday === 6 || day === 13
      }
    }
  }
</script>

<!-- b-form-datepicker-disabled-dates.vue -->

date-disabled-fn の前に、min および max 日付の制約が最初に評価されることに注意してください。

検証状態

<b-form-datepicker> は、ブール値の state プロパティを介して無効および有効なスタイリングをサポートします。state をブール値の false に設定すると、入力が無効としてスタイル設定され、ブール値の true に設定すると、有効としてスタイル設定されます。statenull に設定すると、検証状態のスタイリングは表示されません(デフォルト)。

<template>
  <div>
    <label for="datepicker-invalid">Choose a date (invalid style)</label>
    <b-form-datepicker id="datepicker-invalid" :state="false" class="mb-2"></b-form-datepicker>
    <label for="datepicker-valid">Choose a date (valid style)</label>
    <b-form-datepicker id="datepicker-valid" :state="true"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-invalid-valid.vue -->

<b-form-datepicker> では、ネイティブブラウザの検証は**利用できない**ことに注意してください。

スタイリング

バリアント

選択した日付ボタン(背景色)は、デフォルトで 'primary' テーマバリアントになります。 selected-variant プロパティを使用して、これをBootstrap v4テーマバリアントカラー('secondary''success''danger''warning''info' など)に変更できます。

デフォルトでは、今日の日付も選択した日付と同じバリアントを使用して強調表示(テキストの色)されます。今日の日付に使用する別のテーマカラーを指定するには、today-variant プロパティを使用します。

今日の日付の強調表示を完全に無効にするには、no-highlight-today プロパティを設定します。

ナビゲーションボタンは、デフォルトで 'secondary' テーマバリアントになります。nav-button-variant プロパティを使用して変更できます。

コントロールのサイズ変更

<b-form-datepicker> コントロールを小さくしたり、大きくしたりしますか?size プロパティを 'sm' に設定すると、フォームコントロールが小さくなり、'lg' に設定すると、フォームコントロールが大きくなります。これは、ポップアップカレンダーダイアログのサイズには影響しません。

<template>
  <div>
    <label for="datepicker-sm">Small date picker</label>
    <b-form-datepicker id="datepicker-sm" size="sm" locale="en" class="mb-2"></b-form-datepicker>
    <label for="datepicker-lg">Large date picker</label>
    <b-form-datepicker id="datepicker-lg" size="lg" locale="en"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-sizes.vue -->

プレースホルダー

日付が選択されていない場合、placeholder プロパティを使用して、コントロールにカスタムプレースホルダーテキストを追加します。プレースホルダーが指定されていない場合、label-no-date-selected プロパティの値が使用されます。

<template>
  <div>
    <label for="datepicker-placeholder">Date picker with placeholder</label>
    <b-form-datepicker id="datepicker-placeholder" placeholder="Choose a date" locale="en"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-placeholder.vue -->

オプションのコントロール

today-buttonreset-buttonclose-button プロパティを使用して、カレンダーポップアップの下部にオプションのコントロールボタンを追加します。

  • 今日ボタンは今日の日付を選択します
  • リセットボタンは、選択した日付をクリアするか、日付を reset-value プロパティの値(指定されている場合)に設定します
  • 閉じるボタンはカレンダーポップアップを閉じます

デフォルトでは、no-close-on-select プロパティが設定されていない限り、今日またはリセットボタンをクリックすると、カレンダーポップアップも閉じます。

<template>
  <div>
    <label for="datepicker-buttons">Date picker with optional footer buttons</label>
    <b-form-datepicker
      id="datepicker-buttons"
      today-button
      reset-button
      close-button
      locale="en"
    ></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-buttons.vue -->

オプションボタンのテキストは、label-today-buttonlabel-reset-button、および label-close-button プロパティで設定できます。フッターセクションの幅が限られているため、これらのラベルは短くすることをお勧めします。

なお、本日の日付がminまたはmaxの日付範囲制限外である場合、Set Todayボタンを押してもコントロールに本日の日付が設定されない場合があります。範囲外の場合は、minまたはmaxのいずれか(本日の日付に近い方)に設定されます。

ポップアップカレンダーの位置を制御するには、ドロップダウンのpropであるrightdropupdroprightdropleftno-flip、およびoffsetを使用します。

これらのpropの効果と使用方法の詳細については、<b-dropdown>の位置に関するセクションを参照してください。

カレンダーの初期表示日付

v2.7.0以降

デフォルトでは、日付が選択されていない場合、カレンダービューは、開いたときに現在の月(または、本日の日付がminまたはmaxの範囲外の場合はminまたはmaxの日付)に設定されます。initial-date propを使用して日付を指定することで、この動作を変更できます。初期日付propは、ユーザーに最初に表示されるカレンダーの月を決定するために使用されます。コンポーネントの値は設定されません。

ダークモード

明るい背景ではなく、暗い背景のポップアップが必要ですか? dark propをtrueに設定すると、暗い背景が有効になります。

10年単位のナビゲーションボタン(オプション)

show-decade-nav propを設定すると、日付ピッカーの日付ナビゲーションツールバーに、前と次の10年を示すボタンが表示されます。

label-prev-decade propとlabel-next-decade propを使用すると、10年ボタンのカスタムラベルテキストを指定できます。

使用例については、以下の国際化セクションを参照してください。

ボタンのみモード

v2.7.0以降

日付ピッカーダイアログを起動するだけのボタンが必要な場合、または独自のオプションのテキスト入力フィールドを提供したい場合は、button-only propを使用して、日付ピッカーをドロップダウンボタンとしてレンダリングします。フォーマットされた日付ラベルは、sr-onlyクラスでレンダリングされます(スクリーンリーダーのみが利用可能)。

次の簡単な例では、日付ピッカー(ボタンのみモード)を<b-input-group>に追加し、contextイベントを使用してフォーマットされた日付文字列と値を取得しています。

<template>
  <div>
    <label for="example-input">Choose a date</label>
    <b-input-group class="mb-3">
      <b-form-input
        id="example-input"
        v-model="value"
        type="text"
        placeholder="YYYY-MM-DD"
        autocomplete="off"
      ></b-form-input>
      <b-input-group-append>
        <b-form-datepicker
          v-model="value"
          button-only
          right
          locale="en-US"
          aria-controls="example-input"
          @context="onContext"
        ></b-form-datepicker>
      </b-input-group-append>
    </b-input-group>
    <p class="mb-1">Value: '{{ value }}'</p>
    <p class="mb-1">Selected: '{{ selected }}'</p>
    <p>Formatted: '{{ formatted }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: '',
        formatted: '',
        selected: ''
      }
    },
    methods: {
      onContext(ctx) {
        // The date formatted in the locale, or the `label-no-date-selected` string
        this.formatted = ctx.selectedFormatted
        // The following will be an empty string until a valid date is entered
        this.selected = ctx.selectedYMD
      }
    }
  }
</script>

<!-- b-form-datepicker-button-only.vue -->

ボタンのサイズはsize propで、ボタンのバリアントはbutton-variant propで制御します。

日付文字列のフォーマット

v2.6.0以降

コンポーネント内に表示される日付テキスト(ヘッダーやプレースホルダーなど)のフォーマットオプションを変更するには、date-format-options propを、Intl.DateTimeFormatオブジェクトの必要なフォーマットプロパティを含むオブジェクトに設定します(国際化も参照)。

<template>
  <div>
    <label for="datepicker-dateformat1">Custom date format</label>
    <b-form-datepicker
      id="datepicker-dateformat1"
      :date-format-options="{ year: 'numeric', month: 'short', day: '2-digit', weekday: 'short' }"
      locale="en"
    ></b-form-datepicker>

    <label class="mt-3" for="datepicker-dateformat2">Short date format</label>
    <b-form-datepicker
      id="datepicker-dateformat2"
      :date-format-options="{ year: 'numeric', month: 'numeric', day: 'numeric' }"
      locale="en"
    ></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-dateformat.vue -->

次の表は、各フォーマットプロパティの有効なオプションをまとめたものです。

プロパティ 可能な値
year 'numeric'、または'2-digit'
month 'numeric''2-digit''long''short'、または'narrow'
day 'numeric'、または'2-digit'
'numeric'、または'2-digit' 'long''short'、または'narrow'

注記

  • 特定のオプションを省略すると、フォーマットされたテキスト文字列に影響を与える場合があります(例:weekday)。
  • フォーマットされた値は、解決されたロケールによって異なります。一部のロケールでは、'narrow'フォーマットがサポートされていない場合があり、'short'またはlong''short'が使用できない場合)にフォールバックします。
  • yearmonthdayは常に表示されます。値を省略する必要がある場合は、プロパティをundefinedに設定しますが、アクセシビリティの観点からはお勧めしません。

曜日のヘッダーフォーマット

2.12.0+

カレンダーの曜日のヘッダーフォーマットのデフォルトは'short'で、通常は曜日の3文字の省略形ですが、一部のロケールではこれがオーバーライドされる場合があります。フォーマットはweekday-header-format propで制御でき、次の3つの値のいずれかを受け入れます。

  • 'long' 曜日のフルネーム(例:Tuesday)。カレンダーの幅が広い場合に便利です。デフォルトのカレンダー幅では使用しないでください。
  • 'short' 通常は、選択したロケールに応じて、曜日の名前の2文字または3文字の省略形です(例:「Tue」)。
  • 'narrow' 通常は1文字の省略形です(例:T)。一部のロケールでは、2つの曜日のnarrowスタイルが同じになる場合があります(例:火曜日と木曜日のnarrowスタイルはどちらもTです)。これは、'ar''fa'などの'short'フォーマットをサポートしていないロケールに便利です。

日付ナビゲーションボタンスロット

2.12.0+

カレンダーの日付ナビゲーションボタンの内容を変更するために、BootstrapVueは各ボタンにスコープ付きスロットを提供します。

  • 'nav-prev-decade'
  • 'nav-prev-year'
  • 'nav-prev-month'
  • 'nav-this-month' (選択/今日に移動ボタン)
  • 'nav-next-month'
  • 'nav-next-year'
  • 'nav-next-decade'

7つすべてのスロットで、同じスコープ付きプロパティを使用できます。

プロパティ タイプ 説明
isRTL ブール値 日付ナビゲーションバーが右から左にレンダリングされる場合はtrueになります。

isRTLスコープ付きプロパティを使用して、左右の方向転換を処理するために、前と次のボタンの内容を「反転」させることができます。つまり、isRTLtrueの場合、前年のボタンは左ではなく右側に配置されます。

フルワイドカレンダーのドロップダウン

フルワイドカレンダーのドロップダウン(幅が入力幅と一致する)を作成するには、menu-class propを'w-100'に設定し、calendar-width propを'100%'に設定します。

<template>
  <div>
    <label for="datepicker-full-width">Choose a date</label>
    <b-form-datepicker
      id="datepicker-full-width"
      v-model="value"
      menu-class="w-100"
      calendar-width="100%"
      class="mb-2"
    ></b-form-datepicker>
    <p>Value: '{{ value }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    }
  }
</script>

<!-- b-form-datepicker-full-width.vue -->

国際化

日付ピッカーのカレンダーの国際化は、Intl.DateTimeFormatによって提供されます。ただし、カレンダーコントロールの要素(ariaラベル、選択ステータス、ヘルプテキスト)に適用されるラベルは除きます。これらのラベルには、独自の翻訳を提供する必要があります。使用可能なロケールはブラウザによって異なります(すべてのブラウザがすべてのロケールをサポートしているわけではありません)。

デフォルトでは、<b-form-datepicker>はブラウザのデフォルトロケールを使用しますが、locale propを使用して使用するロケール(またはロケール)を指定できます。このpropは、単一のロケール文字列またはロケール文字列の配列(優先ロケールの順にリストされている)を受け入れます。

カレンダーは日曜日から週を開始します。これは、start-weekday propを0から6の範囲の数字に設定することで変更できます。ここで、0は日曜日、1は月曜日、6は土曜日を表します。

<template>
  <div>
    <label for="example-locales">Locale:</label>
    <b-form-select id="example-locales" v-model="locale" :options="locales" class="mb-2"></b-form-select>

    <label for="example-weekdays">Start weekday:</label>
    <b-form-select id="example-weekdays" v-model="weekday" :options="weekdays" class="mb-2"></b-form-select>

    <div>
      <b-form-checkbox v-model="showDecadeNav" switch inline class="my-2">
        Show decade navigation buttons
      </b-form-checkbox>

      <b-form-checkbox v-model="hideHeader" switch inline class="my-2">
        Hide calendar header
      </b-form-checkbox>
    </div>

    <label for="example-i18n-picker">Date picker:</label>
    <b-form-datepicker
      id="example-i18n-picker"
      v-model="value"
      v-bind="labels[locale] || {}"
      :locale="locale"
      :start-weekday="weekday"
      :show-decade-nav="showDecadeNav"
      :hide-header="hideHeader"
      class="mb-2"
     ></b-form-datepicker>
     <p>Value: <b>'{{ value }}'</b></p>
   </div>
</template>

<script>
  export default {
    data() {
      return {
        value: '',
        locale: 'en-US',
        showDecadeNav: false,
        hideHeader: false,
        locales: [
          { value: 'en-US', text: 'English US (en-US)' },
          { value: 'de', text: 'German (de)' },
          { value: 'ar-EG', text: 'Arabic Egyptian (ar-EG)' },
          { value: 'zh', text: 'Chinese (zh)' }
        ],
        weekday: 0,
        weekdays: [
          { value: 0, text: 'Sunday' },
          { value: 1, text: 'Monday' },
          { value: 6, text: 'Saturday' }
        ],
        labels: {
          de: {
            labelPrevDecade: 'Vorheriges Jahrzehnt',
            labelPrevYear: 'Vorheriges Jahr',
            labelPrevMonth: 'Vorheriger Monat',
            labelCurrentMonth: 'Aktueller Monat',
            labelNextMonth: 'Nächster Monat',
            labelNextYear: 'Nächstes Jahr',
            labelNextDecade: 'Nächstes Jahrzehnt',
            labelToday: 'Heute',
            labelSelected: 'Ausgewähltes Datum',
            labelNoDateSelected: 'Kein Datum gewählt',
            labelCalendar: 'Kalender',
            labelNav: 'Kalendernavigation',
            labelHelp: 'Mit den Pfeiltasten durch den Kalender navigieren'
          },
          'ar-EG': {
            weekdayHeaderFormat: 'narrow',
            labelPrevDecade: 'العقد السابق',
            labelPrevYear: 'العام السابق',
            labelPrevMonth: 'الشهر السابق',
            labelCurrentMonth: 'الشهر الحالي',
            labelNextMonth: 'الشهر المقبل',
            labelNextYear: 'العام المقبل',
            labelNextDecade: 'العقد القادم',
            labelToday: 'اليوم',
            labelSelected: 'التاريخ المحدد',
            labelNoDateSelected: 'لم يتم اختيار تاريخ',
            labelCalendar: 'التقويم',
            labelNav: 'الملاحة التقويم',
            labelHelp: 'استخدم مفاتيح المؤشر للتنقل في التواريخ'
          },
          zh: {
            weekdayHeaderFormat: 'narrow',
            labelPrevDecade: '过去十年',
            labelPrevYear: '上一年',
            labelPrevMonth: '上个月',
            labelCurrentMonth: '当前月份',
            labelNextMonth: '下个月',
            labelNextYear: '明年',
            labelNextDecade: '下一个十年',
            labelToday: '今天',
            labelSelected: '选定日期',
            labelNoDateSelected: '未选择日期',
            labelCalendar: '日历',
            labelNav: '日历导航',
            labelHelp: '使用光标键浏览日期'
          }
        }
      }
    }
  }
</script>

<!-- b-form-datepicker-i18n.vue -->

カレンダーが解決したロケールと方向を判断するために、contextイベントをリッスンできます。

詳細については、<b-calendar>のドキュメントを参照してください。

アクセシビリティ

ポップアップカレンダーは、<b-calendar>と同じキーボードコントロールに加えて、以下のコントロールをサポートしています。

  • Escキーを押すと、日付を選択せずにポップアップカレンダーが閉じます。

日付ピッカーを国際化するときは、label-* propも適切な翻訳された文字列で更新することが重要です。これにより、国際的なスクリーンリーダーユーザーに正しいプロンプトと説明が聞こえるようになります。

詳細については、<b-calendar>のドキュメントを参照してください。

実装に関する注意事項

<b-form-datepicker>は、<b-calendar>コンポーネントと<b-dropdown>コンポーネントに基づいています。

<b-form-datepicker>は、Bootstrapのborderおよびflexユーティリティクラスと、button(btn-*)クラス、dropdown(dropdown*)クラス、form-control*(およびvalidation)クラスを使用します。日付ピッカーとカレンダーを適切にスタイル設定するには、BootstrapVueのカスタムSCSS/CSSも必要です。

関連項目

コンポーネントリファレンス

<b-form-datepicker>

v2.5.0以降

コンポーネントエイリアス

<b-form-datepicker> は、以下のエイリアスを使用して使用することもできます。

  • <b-datepicker>

注:コンポーネントエイリアスは、BootstrapVue全体をインポートする場合、またはコンポーネントグループプラグインを使用する場合にのみ使用できます。

プロパティ

すべてのプロパティのデフォルト値は、グローバルに設定可能です。

プロパティ
(クリックして昇順にソート)
タイプ
(クリックして昇順にソート)
デフォルト
説明
aria-controls
文字列このコンポーネントが別のコンポーネントまたは要素を制御する場合、これを制御されるコンポーネントまたは要素のIDに設定します
boundary
HTMLElement または String'scrollParent'メニューの境界制約: `'scrollParent'`、`'window'`、`'viewport'`、または`HTMLElement`への参照
button-only
v2.7.0以降
ブール値false日付ピッカーをform-controlではなく、ドロップダウンボタンとしてレンダリングします
button-variant
v2.7.0以降
文字列'secondary'`button-only`モードの場合に使用するボタンのバリアント。 `button-only`プロパティが設定されていない場合は効果がありません
calendar-width
v2.6.0以降
文字列'270px'カレンダードロップダウンの幅を設定します(詳細は`b-calendar`プロパティ`width`を参照)
close-button
ブール値false設定されている場合、オプションの閉じるボタンを表示します
close-button-variant
文字列'outline-secondary'オプションの`close`ボタンに使用するボタンのバリアント
dark
ブール値false設定されている場合、ポップアップカレンダイアログの背景を暗くします
date-disabled-fn
関数日付が無効な場合は`true`を、日付が有効な場合は`false`を返す関数リファレンスに設定します。詳細はドキュメントを参照してください
date-format-options
v2.6.0以降
オブジェクト{ 'year': 'numeric', 'month': 'long', 'day': 'numeric', 'weekday': 'long' }`Intl.DateTimeFormat`に渡される、表示されるテキスト文字列のフォーマットオブジェクト
date-info-fn
v2.12.0以降
関数日付セルに適用するクラス(文字列)、またはクラス(文字列の配列)を返す関数リファレンスに設定します。詳細はカレンダーのドキュメントを参照してください。子カレンダーコンポーネントに渡されます
direction
文字列文字列'rtl'または'ltr'に設定して、カレンダーを右から左または左から右(それぞれ)のモードでレンダリングするように明示的に強制します。解決されたロケールの記述方向がデフォルトです
disabled
ブール値falseカレンダーを非インタラクティブな無効状態にします
dropleft
ブール値false設定されている場合、メニューをボタンの左側に配置します
dropright
ブール値false設定されている場合、メニューをボタンの右側に配置します
dropup
ブール値false設定されている場合、メニューをボタンの上部に配置します
form
文字列フォームコントロールが属するフォームのID。コントロールに`form`属性を設定します
header-tag
文字列'header'ヘッダーのデフォルトタグの代わりにレンダリングするHTMLタグを指定します
hide-header
ブール値false`true`の場合、選択した日付ヘッダーを視覚的に非表示にします
id
文字列レンダリングされたコンテンツに`id`属性を設定するために使用され、必要に応じて追加の要素IDを生成するためのベースとして使用されます
initial-date
v2.7.0以降
Date または String`value`が指定されていない場合、ユーザーに表示される初期カレンダ月の日付を設定します。 `YYYY-MM-DD`形式の値または`Date`オブジェクトを受け入れます。現在の日付がデフォルトです(現在の日付が範囲外の場合は最小または最大)
label-calendar
文字列'カレンダー'カレンダーグリッドに適用される`aria-label`および`role-description`属性の値
label-close-button
文字列'閉じる'オプションの`閉じる`ボタンのコンテンツ
label-current-month
文字列'今月'`今月`ナビゲーションボタンの`aria-label`および`title`属性の値
label-help
文字列'カーソルキーを使用してカレンダーの日付を移動します'カレンダーグリッドの下部に表示されるヘルプテキスト
label-nav
文字列'カレンダーナビゲーション'カレンダナビゲーションボタンラッパーの`aria-label`属性の値
label-next-decade
v2.11.0以降
文字列'次の10年'オプションの`次の10年`ナビゲーションボタンの`aria-label`および`title`属性の値
label-next-month
文字列'来月'`来月`ナビゲーションボタンの`aria-label`および`title`属性の値
label-next-year
文字列'来年'`来年`ナビゲーションボタンの`aria-label`および`title`属性の値
label-no-date-selected
文字列'日付が選択されていません'現在日付が選択されていない場合に使用するラベル
label-prev-decade
v2.11.0以降
文字列'前の10年'オプションの`前の10年`ナビゲーションボタンの`aria-label`および`title`属性の値
label-prev-month
文字列'先月'`先月`ナビゲーションボタンの`aria-label`および`title`属性の値
label-prev-year
文字列'昨年'`昨年`ナビゲーションボタンの`aria-label`および`title`属性の値
label-reset-button
文字列'リセット'オプションの`リセット`ボタンのコンテンツ
label-selected
文字列選択されているカレンダーグリッド日付ボタンに設定されている`aria-label`属性の値
label-today
文字列'今日'日付が今日の日付であることを示すための、カレンダグリッド日付ボタンの`aria-label`属性の値
label-today-button
文字列'今日を選択'オプションの`今日を選択`ボタンのコンテンツ
locale
Array または Stringカレンダーで使用するロケール(またはロケール)。ロケールの配列を渡す場合、ロケールの順序は最も優先されるものから最も優先されないものになります
max
Date または Stringカレンダーに表示される最大日付
menu-class
v2.6.0以降
Array または Object または Stringポップアップメニューラッパーに適用するクラス(またはクラス)
min
Date または Stringカレンダーに表示される最小日付
name
文字列フォームコントロールの`name`属性の値を設定します
nav-button-variant
v2.17.0以降
文字列'secondary'ナビゲーションボタンに使用するテーマカラーバリアント
no-close-on-select
ブール値false日付をクリック/選択したときにポップアップ日付ピッカーが閉じないようにします
no-flip
ブール値falseメニューが自動的に反転しないようにします
no-highlight-today
ブール値falseカレンダーで今日の日付の強調表示を無効にします
offset
Number または String0メニューをシフトするピクセル数を指定します。負の値もサポートされています
placeholder
文字列日付が選択されていないときにフォームコントロールに表示するテキスト。 `label-no-date-selected`プロパティ値がデフォルトです
popper-opts
オブジェクト{}Popper.jsに渡す追加の設定
readonly
ブール値falseカレンダーをインタラクティブな読み取り専用状態にします。日付ナビゲーションは許可されますが、v-modelの更新は無効になります
required
ブール値false設定されている場合、コンポーネントに`aria-required="true"`属性を追加します。必須検証はアプリケーションで処理する必要があります
reset-button
ブール値false設定されている場合、オプションの`リセット`ボタンを表示します
reset-button-variant
文字列'outline-danger'オプションの`リセット`ボタンに使用するボタンのバリアント
reset-value
Date または Stringオプションの`リセット`ボタンをクリックすると、選択した日付がこの値に設定されます。デフォルトでは、選択した値がクリアされます
right
ブール値falseメニューの右端をボタンの右側に合わせます
selected-variant
文字列'primary'選択した日付ボタンに使用するテーマカラーバリアント
show-decade-nav
v2.11.0以降
ブール値false`true`の場合、+/- 10年ナビゲーションボタンを表示します
size
文字列コンポーネントの外観のサイズを設定します。 'sm'、 'md'(デフォルト)、または 'lg'
start-weekday
Number または String0カレンダーを開始する曜日。日曜日は`0`、月曜日は`1`、土曜日は`6`など
state
ブール値nullコンポーネントの検証状態の外観を制御します。有効な場合は`true`、無効な場合は`false`、検証状態がない場合は`null`
today-button
ブール値false設定されている場合、オプションの`今日を選択`ボタンを表示します
today-button-variant
文字列'outline-primary'オプションの`今日を選択`ボタンに使用するボタンのバリアント
today-variant
文字列今日の日付ボタンの強調表示に使用するテーマカラーバリアント。 `selectedVariant`プロパティがデフォルトです
value
v-model
Date または String最初に選択された日付値。 `YYYY-MM-DD`文字列または`Date`オブジェクトを受け入れます
value-as-date
ブール値false`YYYY-MM-DD`文字列の代わりに、v-modelの`Date`オブジェクトを返します
weekday-header-format
v2.12.0以降
文字列'short'カレンダーの曜日の見出しに使用する形式。可能な値は、`long`、`short`(デフォルト)、または`narrow`です

v-model

プロパティ
イベント
valueinput

スロット

名前
スコープ
説明
button-content v2.6.0以降日付ピッカーのアイコンボタンに配置するコンテンツ
nav-next-decade v2.12.0+次の10年へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-next-month v2.12.0+次の月へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-next-year v2.12.0+次の年へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-prev-decade v2.12.0+前の10年へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-prev-month v2.12.0+前の月へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-prev-year v2.12.0+前の年へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。
nav-this-month v2.12.0+今月/今日へのナビゲーションボタンにカスタムコンテンツを配置するために使用します。

イベント

イベント
引数
説明
コンテキスト
  1. context - `b-calendar` コンテキストオブジェクトです。詳細は `b-calendar` のドキュメントを参照してください。
`b-calendar` コンテキストイベント。ユーザーが日付ナビゲーションボタンまたはカーソル制御を使用してアクティブな日付を変更すると発行されます。
hidden v2.9.0+ピッカーポップアップが非表示になったときに発行されます。
input
  1. date - `YYYY-MM-DD` 形式の文字列、または `Date` オブジェクト(`value-as-date` プロパティが `true` の場合)です。
v-model を更新するときに発行されます。
shown v2.9.0+ピッカーポップアップが表示されたときに発行されます。

個々のコンポーネントのインポート

以下の名前付きエクスポートを使用して、個々のコンポーネントをプロジェクトにインポートできます。

コンポーネント
名前付きエクスポート
インポートパス
<b-form-datepicker>BFormDatepickerbootstrap-vue

import { BFormDatepicker } from 'bootstrap-vue'
Vue.component('b-form-datepicker', BFormDatepicker)

Vue.jsプラグインとしてのインポート

このプラグインには、上記の個々のコンポーネントがすべて含まれています。。プラグインには、コンポーネントのエイリアスも含まれています。

名前付きエクスポート
インポートパス
FormDatepickerPluginbootstrap-vue

import { FormDatepickerPlugin } from 'bootstrap-vue'
Vue.use(FormDatepickerPlugin)