<commit_before><template>
  <div>
    <template v-for="(field_criteria, field) in criteria" v-if="!isAggregate(field)">
      <div v-for="(info, guid) in field_criteria" class="form-group">
        <div class="row">
          <div class="col-xs-12 col-md-4 col-lg-3">
            <label>{{ filters[field].label }}
              <template v-if="filters[field].group !== model"><i class="fa fa-info-circle" :title="filters[field].group"></i></template>
            </label>
          </div>
          <div class="col-xs-4 col-md-2 col-lg-2">
            <select v-model="filtersList[guid]" class="form-control input-sm" @change="filterUpdated(field, guid, $event.target.value)">
              <option v-for="item in getFiltersByField(field)" :value="item.value">{{ item.text }}</option>
            </select>
          </div>
          <div class="col-xs-6 col-md-5">
            <component
              :is="info.type + 'Input'"
              :guid="guid"
              :field="field"
              :value="info.value"
              :options="filters[field].options"
              :source="filters[field].source"
              :display-field="filters[field].display_field"
              :multiple="true"
              @input-value-updated="valueUpdated"
            />
          </div>
          <div class="col-sm-2 col-md-1">
            <button type="button" @click="remove(guid)" class="btn btn-default btn-xs"><i class="fa fa-trash" aria-hidden="true"></i></button>
          </div>
        </div>
      </div>
    </template>
  </div>
</template>
<script>
import Aggregate from '@/utils/aggregate'
import inputs from '@/components/fh'
import { mapGetters, mapState } from 'vuex'
import { FIELD_OPERATOR_TYPES, FIELD_TYPE_MAP } from '@/utils/search'

export default {
  name: 'FilterForm',
  components: inputs,
  computed: {
    ...mapGetters({
      filters: 'search/filtersFlat'
    }),
    ...mapState({
      criteria: state => state.search.criteria,
      model: state => state.search.model
    }),
    filtersList() {
      let result = {}<commit_msg>Force component re-rendering (task #14678)<commit_after><template>
  <div>
    <template v-for="(field_criteria, field) in criteria" v-if="!isAggregate(field)">
      <div v-for="(info, guid) in field_criteria" class="form-group">
        <div class="row">
          <div class="col-xs-12 col-md-4 col-lg-3">
            <label>{{ filters[field].label }}
              <template v-if="filters[field].group !== model"><i class="fa fa-info-circle" :title="filters[field].group"></i></template>
            </label>
          </div>
          <div class="col-xs-4 col-md-2 col-lg-2">
            <select v-model="filtersList[guid]" class="form-control input-sm" @change="filterUpdated(field, guid, $event.target.value)">
              <option v-for="item in getFiltersByField(field)" :value="item.value">{{ item.text }}</option>
            </select>
          </div>
          <div class="col-xs-6 col-md-5">
            <component
              :is="info.type + 'Input'"
              :guid="guid"
              :field="field"
              :value="info.value"
              :options="filters[field].options"
              :source="filters[field].source"
              :display-field="filters[field].display_field"
              :multiple="true"
              @input-value-updated="valueUpdated"
              :key="guid"
            />
          </div>
          <div class="col-sm-2 col-md-1">
            <button type="button" @click="remove(guid)" class="btn btn-default btn-xs"><i class="fa fa-trash" aria-hidden="true"></i></button>
          </div>
        </div>
      </div>
    </template>
  </div>
</template>
<script>
import Aggregate from '@/utils/aggregate'
import inputs from '@/components/fh'
import { mapGetters, mapState } from 'vuex'
import { FIELD_OPERATOR_TYPES, FIELD_TYPE_MAP } from '@/utils/search'

export default {
  name: 'FilterForm',
  components: inputs,
  computed: {
    ...mapGetters({
      filters: 'search/filtersFlat'
    }),
    ...mapState({
      criteria: state => state.search.criteria,
      model: state => state.search.model
    }),
    filtersList() {
      let result = {}
{'fraction_non_alphanumeric': 0.17364266921789046, 'fraction_numerical': 0.006457785218847166, 'mean_word_length': 2.259547934528449, 'pattern_counts': {'":': 0, '<': 71, '<?xml version=': 0, '>': 75, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7241642', 'n_tokens_mistral': 1298, 'n_tokens_neox': 1289, 'n_words': 249}