<template>
  <div class="row form-group mt-3" :key="$attrs.key">
    <label :for="localFormElement.key" :class="'col-md-12'"
      >{{ getLabel() }}:</label
    >
    <div class="mt-2" :class="'col-md-12'">
      <textarea
        :ref="localFormElement.key"
        class="form-control"
        @focus="clearErrors"
        @blur="validate"
        @change="validate"
        @paste="validate"
        :placeholder="localFormElement.placeholder"
        :id="localFormElement.key"
        :name="localFormElement.key"
        v-model="textValue"
        cols="40"
        :rows="getRows()"
      >
      </textarea>
    </div>
  </div>
</template>

<script>
import formBuilderMixin from "@mixins/formBuilderMixin";
// import HttpService from "@services/httpService";
// import VueTribute from "vue-tribute";
// import borhanApi from "@apis/borhanApi.js";

export default {
  props: {
    enableSuggestion: {
      default: false,
    },
    contextMenu: {
      default() {
        return [];
      },
    },
  },
  mixins: [formBuilderMixin],

  data() {
    return {
      // httpService: undefined,
    };
  },
  mounted() {
    // this.httpService = new HttpService();
  },
  methods: {
    getRows() {
      if (this.localFormElement?.rows) return this.localFormElement?.rows;
      return "5";
    },
    // noMatchFound(args) {
    //   console.info(args);
    // },
    // textReplaced(args) {
    //   console.info(args);
    // },
    // methodName(action, index = 0) {
    //   try {
    //     this[action](index);
    //   } catch (err) {
    //     this.$emit(action, index);
    //   }
    // },
    // remoteSearch(input, callback) {
    //   console.info(input);

    //   return this.httpService
    //     .getRequest(borhanApi.concept.annotations.read + "?ontology_id=" + input)
    //     .then((res) => {
    //       callback(res.data);
    //     })
    //     .catch((e) => {
    //       callback([]);
    //     })
    //     .finally(() => {
    //       this.fetchingData = false;
    //     });
    // },
  },
  components: {
    // VueTribute: () =>
    //   import( "vue-tribute"),
  },
};
</script>

<style scoped>
.form-control {
  height: auto !important;
}
</style>

<style>
.tribute-container {
  position: absolute;
  top: 0;
  left: 0;
  height: auto;
  overflow: auto;
  max-height: 25em;
  overflow: auto;
  display: block;
  z-index: 999999;

  transform: translate(-80px, 7px);
  box-shadow: 0 9px 8px -3px rgba(64, 60, 67, 0.24),
    8px 0 8px -7px rgba(64, 60, 67, 0.24),
    -8px 0 8px -7px rgba(64, 60, 67, 0.24);

  box-shadow: 0px 0px 14px 0px #eee;

  border-radius: 0.3em;
  background: #ededed;
}

.tribute-container ul {
  margin: 0;
  margin-top: 2px;
  padding: 0;
  list-style: none;
  /* background: #efefef; */
}
.tribute-container li {
  padding: 0.5em 1em;
  cursor: pointer;
}
.tribute-container li.highlight {
  /* background: #ddd; */
}
.tribute-container li span {
  font-weight: bold;
}
.tribute-container li.no-match {
  cursor: default;
}
.tribute-container .menu-highlighted {
  font-weight: bold;
}
</style>