<template>
  <label
    v-if="matchesExpertLevel"
    class="TupleSetting"
  >
    <label
      v-if="!hideLabel"
      :for="path"
      class="setting-label"
      :class="{ 'faint': shouldBeDisabled }"
    >
      <template v-if="backendDescriptionLabel">
        {{ backendDescriptionLabel + ' ' }}
      </template>
      <template v-else-if="source === 'admin'">
        MISSING LABEL FOR {{ path }}
      </template>
      <slot v-else />
    </label>
    {{ ' ' }}
    <input
      :id="path"
      class="input string-input"
      :class="{ disabled: shouldBeDisabled }"
      :disabled="shouldBeDisabled"
      :placeholder="backendDescriptionSuggestions?.[0]?.[0]"
      :value="visibleState?.tuple?.[0]"
      @change="e => update({ e, side: 0 })"
    >
    {{ ' ' }}
    <input
      :id="path"
      class="input string-input"
      :class="{ disabled: shouldBeDisabled }"
      :disabled="shouldBeDisabled"
      :placeholder="backendDescriptionSuggestions?.[0]?.[1]"
      :value="visibleState?.tuple?.[1]"
      @change="e => update({ e, side: 1 })"
    >
    {{ ' ' }}
    <input
      :id="path"
      class="input string-input"
      :class="{ disabled: shouldBeDisabled }"
      :disabled="shouldBeDisabled"
      :placeholder="backendDescriptionSuggestions?.[0]?.[1]"
      :value="visibleState?.tuple?.[2]"
      @change="e => update({ e, side: 2 })"
    >
    {{ ' ' }}
    <ModifiedIndicator
      :changed="isChanged"
      :onclick="reset"
    />
    <ProfileSettingIndicator :is-profile="isProfileSetting" />
    <DraftButtons v-if="!hideDraftButtons" />
    <p
      v-if="backendDescriptionDescription"
      class="setting-description"
      :class="{ 'faint': shouldBeDisabled }"
    >
      {{ backendDescriptionDescription + ' ' }}
    </p>
  </label>
</template>

<script src="./tuple_setting.js"></script>
