UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Tooltip.vue 1.92 KiB
Newer Older
luke.glasscock's avatar
luke.glasscock committed
<template>
  <v-tooltip
    :left="left"
    :right="right"
    :top="top || (!left && !right && !bottom)"
    :bottom="bottom"
  >
    <template v-slot:activator="{ on, attrs }">
      <span
        v-bind="attrs"
        v-on="on"
        v-if="text"
        :class="light ? 'text-light' : 'text'"
Luke Glasscock's avatar
Luke Glasscock committed
        >{{ spaceBefore ? " " : "" }}{{ text }}{{ spaceAfter ? " " : "" }}</span
      >
      <span v-bind="attrs" v-on="on" v-if="icon">
        <v-icon
          :x-small="iconSize === 'x-small'"
          :small="iconSize === 'small'"
          :medium="iconSize === 'medium'"
          :large="iconSize === 'large'"
          :x-large="iconSize === 'x-large'"
          :color="iconColor"
          >{{ icon }}</v-icon
        >
      </span>
luke.glasscock's avatar
luke.glasscock committed
    </template>
    <div v-if="Array.isArray(tooltip)">
      <p class="ma-0" v-for="line in tooltip" v-bind:key="line">{{ line }}</p>
    </div>
    <div v-else>
      <p class="ma-0">{{ tooltip }}</p>
    </div>
luke.glasscock's avatar
luke.glasscock committed
  </v-tooltip>
</template>
<script>
export default {
  name: "Wave",
  props: {
    text: {
      type: String,
Luke Glasscock's avatar
Luke Glasscock committed
      default: "",
luke.glasscock's avatar
luke.glasscock committed
    },
    tooltip: {
      type: [String, Array],
Luke Glasscock's avatar
Luke Glasscock committed
      default: "",
    },
    icon: {
      type: String,
Luke Glasscock's avatar
Luke Glasscock committed
      default: "",
luke.glasscock's avatar
luke.glasscock committed
      type: String,
Luke Glasscock's avatar
Luke Glasscock committed
      default: "x-small",
    },
    iconColor: {
      type: String,
Luke Glasscock's avatar
Luke Glasscock committed
      default: "white",
luke.glasscock's avatar
luke.glasscock committed
    },
    left: {
      type: Boolean,
Luke Glasscock's avatar
Luke Glasscock committed
      default: false,
luke.glasscock's avatar
luke.glasscock committed
    },
    right: {
      type: Boolean,
Luke Glasscock's avatar
Luke Glasscock committed
      default: false,
luke.glasscock's avatar
luke.glasscock committed
    },
    top: {
      type: Boolean,
Luke Glasscock's avatar
Luke Glasscock committed
      default: false,
luke.glasscock's avatar
luke.glasscock committed
    },
    bottom: {
      type: Boolean,
Luke Glasscock's avatar
Luke Glasscock committed
      default: false,
Luke Glasscock's avatar
Luke Glasscock committed
    },
    light: {
      type: Boolean,
Luke Glasscock's avatar
Luke Glasscock committed
      default: false,
    },
    spaceBefore: {
      type: Boolean,
      default: true,
    },
    spaceAfter: {
      type: Boolean,
      default: true,
    },
  },
luke.glasscock's avatar
luke.glasscock committed
};
</script>
<style lang="scss" scoped>
.text {
  border-bottom: 1px dotted #333;
}
Luke Glasscock's avatar
Luke Glasscock committed
.text-light {
  border-bottom: 1px dotted #ddd;
}
luke.glasscock's avatar
luke.glasscock committed
</style>