<template>
  <div>
    <div class="control">
      <label class="control-label control-label-small">Number type</label>
      <div class="control-elements">
        <Dropdown
          v-model="values.number_type"
          :class="{ 'dropdown-error': $v.values.number_type.$error }"
          @hide="$v.values.number_type.$touch()"
        >
          <DropdownItem name="Integer (1)" value="INTEGER"></DropdownItem>
          <DropdownItem name="Decimal (1.0)" value="DECIMAL"></DropdownItem>
        </Dropdown>
      </div>
    </div>
    <div v-show="values.number_type === 'DECIMAL'" class="control">
      <label class="control-label control-label-small">Decimal places</label>
      <div class="control-elements">
        <Dropdown
          v-model="values.number_decimal_places"
          :class="{ 'dropdown-error': $v.values.number_decimal_places.$error }"
          @hide="$v.values.number_decimal_places.$touch()"
        >
          <DropdownItem name="1.0" :value="1"></DropdownItem>
          <DropdownItem name="1.00" :value="2"></DropdownItem>
          <DropdownItem name="1.000" :value="3"></DropdownItem>
          <DropdownItem name="1.0000" :value="4"></DropdownItem>
          <DropdownItem name="1.0000" :value="5"></DropdownItem>
        </Dropdown>
      </div>
    </div>
    <div class="control">
      <div class="control-elements">
        <Checkbox v-model="values.number_negative">Allow negative</Checkbox>
      </div>
    </div>
  </div>
</template>

<script>
import { required } from 'vuelidate/lib/validators'
import form from '@baserow/modules/core/mixins/form'

export default {
  name: 'FieldNumberSubForm',
  mixins: [form],
  data() {
    return {
      allowedValues: [
        'number_type',
        'number_decimal_places',
        'number_negative',
      ],
      values: {
        number_type: 'INTEGER',
        number_decimal_places: 1,
        number_negative: false,
      },
    }
  },
  validations: {
    values: {
      number_type: { required },
      number_decimal_places: { required },
    },
  },
}
</script>