<template> <a v-if="linkToFull && imageUrl" :href="imageUrl" target="_blank" class="h-full w-full object-contain" > <div v-html="generateIdenticon()" class="h-full w-full object-contain" /> </a> <div v-else v-html="generateIdenticon()" class="h-full w-full object-contain" /> </template> <script lang="ts"> import { toSvg } from "jdenticon"; import { Vue, Component, Prop } from "vue-facing-decorator"; const BLANK_CONFIG = { lightness: { color: [1.0, 1.0], grayscale: [1.0, 1.0], }, saturation: { color: 0.0, grayscale: 0.0, }, backColor: "#0000", }; @Component export default class ProjectIcon extends Vue { @Prop entityId = ""; @Prop iconSize = 0; @Prop imageUrl = ""; @Prop linkToFull = false; generateIdenticon() { if (this.imageUrl) { return `<img src="${this.imageUrl}" class="w-full h-full object-contain" />`; } else { const config = this.entityId ? undefined : BLANK_CONFIG; const svgString = toSvg(this.entityId, this.iconSize, config); return svgString; } } } </script> <style scoped></style>