36 lines
615 B
Vue
36 lines
615 B
Vue
<template>
|
|
<div>
|
|
<slot :isVisible="isVisible" />
|
|
<span
|
|
ref="revealButton"
|
|
type="button"
|
|
:class="[
|
|
'reveal-password tooltipped tooltipped-n tooltipped-no-delay',
|
|
{ 'reveal-password-visible': isVisible },
|
|
]"
|
|
:aria-label="isVisible ? 'Hide password' : 'Show password'"
|
|
@click="onClick"
|
|
>
|
|
<span
|
|
:aria-label="isVisible ? 'Hide password' : 'Show password'"
|
|
/>
|
|
</span>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "RevealPassword",
|
|
data() {
|
|
return {
|
|
isVisible: false,
|
|
};
|
|
},
|
|
methods: {
|
|
onClick() {
|
|
this.isVisible = !this.isVisible;
|
|
},
|
|
},
|
|
};
|
|
</script>
|