PasswordText.vue 663 Bytes
<template>
  <div class="text-container">
    <span class="text">
      {{ formatPassword }}
    </span>
    <SvgIcon
      :icon-class="hide ? 'eye' : 'eye-open'"
      class="icon"
      @click.native="hide = !hide"
    />
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      hide: true
    }
  },
  computed: {
    formatPassword() {
      return this.hide ? '******' : this.value
    }
  }
}
</script>

<style scoped lang="scss">
.text-container {
  display: flex;
  align-items: center;

  .text {
    min-width: 6em;
    margin-right: 10px;
  }
}
</style>