@ -45,9 +45,10 @@
< / template >
< / c s c - i n p u t >
< / template >
< script >
import CscInput from 'components/form/CscInput'
import PasswordGenerator from 'generate-password '
import { mapWaitingActions } from 'vue-wait '
export default {
name : 'CscInputPassword' ,
components : { CscInput } ,
@ -55,38 +56,6 @@ export default {
generate : {
type : Boolean ,
default : false
} ,
generateLength : {
type : Number ,
default : 10
} ,
generateNumbers : {
type : Boolean ,
default : true
} ,
generateLowercase : {
type : Boolean ,
default : true
} ,
generateUppercase : {
type : Boolean ,
default : true
} ,
generateSymbols : {
type : Boolean ,
default : false
} ,
generateExcludeSimilarCharacters : {
type : Boolean ,
default : false
} ,
generateExclude : {
type : String ,
default : ''
} ,
generateStrict : {
type : Boolean ,
default : true
}
} ,
emits : [ 'generated' , 'update:modelValue' ] ,
@ -97,34 +66,20 @@ export default {
} ,
computed : {
inputType ( ) {
if ( this . visible ) {
return 'text'
} else {
return 'password'
}
return this . visible ? 'text' : 'password'
} ,
visibilityIcon ( ) {
if ( ! this . visible ) {
return 'visibility_off'
} else {
return 'visibility'
}
return this . visible ? 'visibility' : 'visibility_off'
}
} ,
methods : {
generatePassword ( ) {
const pass = PasswordGenerator . generate ( {
length : this . generateLength ,
numbers : this . generateNumbers ,
lowercase : this . generateLowercase ,
uppercase : this . generateUppercase ,
symbols : this . generateSymbols ,
excludeSimilarCharacters : this . generateExcludeSimilarCharacters ,
exclude : this . generateExclude ,
strict : this . generateStrict
} )
this . $emit ( 'update:modelValue' , pass )
this . $emit ( 'generated' , pass )
... mapWaitingActions ( 'user' , {
generatePasswordUser : 'generatePasswordUser'
} ) ,
async generatePassword ( ) {
const password = await this . generatePasswordUser ( )
this . $emit ( 'update:modelValue' , password )
this . $emit ( 'generated' , password )
} ,
toggleVisibility ( ) {
this . visible = ! this . visible