UNPKG

vue-password-strength-meter

Version:
2 lines (1 loc) 5.48 kB
(function(l,e){typeof exports=="object"&&typeof module<"u"?module.exports=e(require("zxcvbn"),require("vue")):typeof define=="function"&&define.amd?define(["zxcvbn","vue"],e):(l=typeof globalThis<"u"?globalThis:l||self,l.VuePasswordStrengthMeter=e(l.zxcvbn,l.Vue))})(this,function(l,e){"use strict";const i=(r,t)=>{const s=r.__vccOpts||r;for(const[d,n]of t)s[d]=n;return s},h={name:"VuePasswordStrengthMeter",inheritAttrs:!1,props:{modelValue:{type:String},secureLength:{type:Number,default:7},badge:{type:Boolean,default:!0},toggle:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},referenceValue:{type:String,default:"input"},showStrengthMeter:{type:Boolean,default:!0},strengthMeterOnly:{type:Boolean,default:!1},defaultClass:{type:String,default:"Password__field"},disabledClass:{type:String,default:"Password__field--disabled"},errorClass:{type:String,default:"Password__badge--error"},successClass:{type:String,default:"Password__badge--success"},strengthMeterClass:{type:String,default:"Password__strength-meter"},strengthMeterFillClass:{type:String,default:"Password__strength-meter--fill"},labelShow:{type:String,default:"Show Password"},labelHide:{type:String,default:"Hide Password"},userInputs:{type:Array,default:()=>[]}},emits:["update:modelValue","score","feedback","blur","focus","show","hide"],data(){return{password:null,_showPassword:!1}},methods:{togglePassword(){this.$data._showPassword?(this.$emit("hide"),this.$data._showPassword=!1):(this.$emit("show"),this.$data._showPassword=!0)},emitValue(r,t){this.$emit(r,t),this.password=t}},computed:{passwordStrength(){return this.password?l(this.password,this.userInputs.length>=1?this.userInputs:null).score:null},isSecure(){return this.password?this.password.length>=this.secureLength:null},isActive(){return this.password&&this.password.length>0},passwordCount(){return this.password&&(this.password.length>this.secureLength?`${this.secureLength}+`:this.password.length)},inputType(){return this.$data._showPassword||this.showPassword?"text":"password"},showPasswordLabel(){return this.$data._showPassword||this.showPassword?this.labelHide:this.labelShow}},watch:{modelValue(r){this.strengthMeterOnly&&this.emitValue("update:modelValue",r),this.$emit("feedback",l(r).feedback)},passwordStrength(r){this.$emit("score",r)}}},c={class:"Password"},w={key:0,class:"Password__group"},u=["type","value"],g={class:"Password__icons"},m={key:1,class:"Password__toggle"},f=["aria-label"],p={key:0,version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},_={key:1,version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},y=["data-score"];function P(r,t,s,d,n,a){return e.openBlock(),e.createElementBlock("div",c,[s.strengthMeterOnly?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",w,[e.createElementVNode("input",e.mergeProps(r.$attrs,{type:a.inputType,ref:s.referenceValue,class:[s.defaultClass,r.$attrs.disabled?s.disabledClass:""],value:s.modelValue,onInput:t[0]||(t[0]=o=>a.emitValue("update:modelValue",o.target.value)),onBlur:t[1]||(t[1]=o=>a.emitValue("blur",o.target.value)),onFocus:t[2]||(t[2]=o=>a.emitValue("focus",o.target.value))}),null,16,u),e.createElementVNode("div",g,[s.badge?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([[a.isSecure?s.successClass:"",!a.isSecure&&a.isActive?s.errorClass:""],"Password__badge"])},e.toDisplayString(a.passwordCount),3)):e.createCommentVNode("",!0),s.toggle?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("button",{type:"button",class:"btn-clean","aria-label":a.showPasswordLabel,tabindex:"-1",onClick:t[3]||(t[3]=e.withModifiers(o=>a.togglePassword(),["prevent"]))},[r.$data._showPassword?(e.openBlock(),e.createElementBlock("svg",p,[e.createElementVNode("title",null,e.toDisplayString(a.showPasswordLabel),1),t[4]||(t[4]=e.createElementVNode("path",{d:"M12 9c1.641 0 3 1.359 3 3s-1.359 3-3 3-3-1.359-3-3 1.359-3 3-3zM12 17.016c2.766 0 5.016-2.25 5.016-5.016s-2.25-5.016-5.016-5.016-5.016 2.25-5.016 5.016 2.25 5.016 5.016 5.016zM12 4.5c5.016 0 9.281 3.094 11.016 7.5-1.734 4.406-6 7.5-11.016 7.5s-9.281-3.094-11.016-7.5c1.734-4.406 6-7.5 11.016-7.5z"},null,-1))])):(e.openBlock(),e.createElementBlock("svg",_,[e.createElementVNode("title",null,e.toDisplayString(a.showPasswordLabel),1),t[5]||(t[5]=e.createElementVNode("path",{d:"M11.859 9h0.141c1.641 0 3 1.359 3 3v0.188zM7.547 9.797c-0.328 0.656-0.563 1.406-0.563 2.203 0 2.766 2.25 5.016 5.016 5.016 0.797 0 1.547-0.234 2.203-0.563l-1.547-1.547c-0.188 0.047-0.422 0.094-0.656 0.094-1.641 0-3-1.359-3-3 0-0.234 0.047-0.469 0.094-0.656zM2.016 4.266l1.266-1.266 17.719 17.719-1.266 1.266c-1.124-1.11-2.256-2.213-3.375-3.328-1.359 0.563-2.813 0.844-4.359 0.844-5.016 0-9.281-3.094-11.016-7.5 0.797-1.969 2.109-3.656 3.75-4.969-0.914-0.914-1.812-1.844-2.719-2.766zM12 6.984c-0.656 0-1.266 0.141-1.828 0.375l-2.156-2.156c1.219-0.469 2.578-0.703 3.984-0.703 5.016 0 9.234 3.094 10.969 7.5-0.75 1.875-1.922 3.469-3.422 4.734l-2.906-2.906c0.234-0.563 0.375-1.172 0.375-1.828 0-2.766-2.25-5.016-5.016-5.016z"},null,-1))]))],8,f)])):e.createCommentVNode("",!0)])])),s.showStrengthMeter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([s.strengthMeterClass])},[e.createElementVNode("div",{class:e.normalizeClass([s.strengthMeterFillClass]),"data-score":a.passwordStrength},null,10,y)],2)):e.createCommentVNode("",!0)])}return i(h,[["render",P]])});