<template>
  <div>
    <div class="row">
      <div class="col col-4">
        <div class="control">
          <label class="control__label">{{
            $t('tableCSVExporter.columnSeparatorLabel')
          }}</label>
          <div class="control__elements">
            <Dropdown v-model="values.csv_column_separator" :disabled="loading">
              <DropdownItem name="," value=","></DropdownItem>
              <DropdownItem name=";" value=";"></DropdownItem>
              <DropdownItem name="|" value="|"></DropdownItem>
              <DropdownItem name="<tab>" value="tab"></DropdownItem>
              <DropdownItem
                :name="$t('tableCSVExporter.recordSeparator') + ' (30)'"
                value="record_separator"
              ></DropdownItem>
              <DropdownItem
                :name="$t('tableCSVExporter.unitSeparator') + ' (31)'"
                value="unit_separator"
              ></DropdownItem>
            </Dropdown>
          </div>
        </div>
      </div>
      <div class="col col-8">
        <div class="control">
          <label class="control__label">{{
            $t('tableCSVExporter.encodingLabel')
          }}</label>
          <div class="control__elements">
            <CharsetDropdown
              v-model="values.export_charset"
              :disabled="loading"
            >
            </CharsetDropdown>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col col-6">
        <div class="control">
          <label class="control__label">{{
            $t('tableCSVExporter.firstRowIsHeaderLabel')
          }}</label>
          <div class="control__elements">
            <Checkbox
              v-model="values.csv_first_row_header"
              :disabled="loading"
              >{{ $t('common.yes') }}</Checkbox
            >
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
// Please keep csvColumnSeparator values in sync with
// src/baserow/contrib/database/api/export/serializers.py:SUPPORTED_CSV_COLUMN_SEPARATORS
import CharsetDropdown from '@baserow/modules/core/components/helpers/CharsetDropdown'
import form from '@baserow/modules/core/mixins/form'

export default {
  name: 'TableCSVExporter',
  components: { CharsetDropdown },
  mixins: [form],
  props: {
    loading: {
      type: Boolean,
      required: true,
    },
  },
  data() {
    return {
      values: {
        csv_first_row_header: true,
        export_charset: 'utf-8',
        csv_column_separator: ',',
      },
    }
  },
}
</script>

<i18n>
{
  "en": {
    "tableCSVExporter": {
      "columnSeparatorLabel": "Column separator",
      "recordSeparator": "record separator",
      "unitSeparator": "unit separator",
      "encodingLabel": "Encoding",
      "firstRowIsHeaderLabel": "First row is header"
    }
  },
  "fr": {
    "tableCSVExporter": {
      "columnSeparatorLabel": "Séparateur de colonne",
      "recordSeparator": "Sép. d'enregistrement",
      "unitSeparator": "Sép. d'unité",
      "encodingLabel": "Encodage",
      "firstRowIsHeaderLabel": "La première ligne contient l'entête"
    }
  }
}
</i18n>