@obliczeniowo/elementary
Version:
Library made in Angular version 20
1 lines • 7.69 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-password.mjs","sources":["../../../../projects/components/password/components/password-strength/password-strength.component.ts","../../../../projects/components/password/components/password-strength/password-strength.component.html","../../../../projects/components/password/password.module.ts","../../../../projects/components/password/obliczeniowo-elementary-password.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { PasswordType } from '../../types/types';\n\n@Component({\n selector: 'obl-password-strength',\n templateUrl: './password-strength.component.html',\n styleUrls: ['./password-strength.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PasswordStrengthComponent {\n @Input() password = '';\n\n readonly height = 1;\n\n readonly weryWeak = Math.pow(26, 10);\n readonly weak = Math.pow(26 + 26, 10);\n readonly strong = Math.pow(26 + 26 + 10, 10);\n readonly weryStrong = Math.pow(26 + 26 + 10 + 30, 10);\n\n translations: {\n weryWeak: string,\n weak: string,\n strong: string,\n weryStrong: string\n } = {\n weryWeak: 'wery weak',\n weak: 'weak',\n strong: 'strong',\n weryStrong: 'wery strong'\n };\n\n id!: string;\n strengthType: PasswordType = 'weryWeak';\n\n constructor(protected change: ChangeDetectorRef) {\n const generate = () => `Password_${Math.floor(Math.random() * 100000000)}`;\n this.id = generate();\n while (document.querySelector('#' + this.id)) {\n this.id = generate();\n }\n }\n\n getK(): number {\n const strength = this.getStrength();\n if (strength < this.weryWeak) {\n this.strengthType = 'weryWeak';\n return 0.4 * strength / this.weryWeak;\n } else if (strength < this.weak) {\n this.strengthType = 'weak';\n return 0.4 + 0.4 * strength / this.weak;\n } else if (strength < this.strong) {\n this.strengthType = 'strong';\n return 0.8 + 0.1 * strength / this.strong;\n } else if (strength < this.weryStrong) {\n this.strengthType = 'weryStrong';\n return 0.9 + 0.1 * strength / this.weryStrong;\n }\n this.strengthType = 'weryStrong';\n return 1;\n }\n\n getStrength(): number {\n const hasLowerCase = /[a-z]/.test(this.password);\n const hasUpperCase = /[A-Z]/.test(this.password);\n const hasNumbers = /[0-9]/.test(this.password);\n const hasSpecialChars = /[^a-zA-Z0-9\\s]/.test(this.password);\n const hasWhiteSpace = /[ \\t]/.test(this.password);\n\n return Math.pow((hasLowerCase && 26 || 0) +\n (hasUpperCase && 26 || 0) +\n (hasNumbers && 10 || 0) +\n (hasSpecialChars && 30 || 0) +\n (hasWhiteSpace && 2 || 0),\n this.password.length\n );\n }\n}\n","<svg height=\"5\" viewBox=\"0 0 52.916665 1.3229167\">\n <defs id=\"defs2\">\n <clipPath [attr.id]=\"id\">\n <rect [attr.width]=\"100 * getK() + '%'\" height=\"1.3229166\" x=\"0\" y=\"0\" />\n </clipPath>\n </defs>\n <path\n class=\"background\"\n d=\"M 0,0 V 1.3229166 H 11.90625 V 0 Z M 13.229167,0 V 1.3229166 H 25.135416 V 0 Z m 13.229166,0 v 1.3229166 h 11.90625 V 0 Z M 39.6875,0 v 1.3229166 h 6.614583 V 0 Z m 7.937499,0 v 1.3229166 h 5.291667 V 0 Z\"\n />\n <g [attr.clip-path]=\"'url(#' + id + ')'\">\n <path class=\"weak\" d=\"M -1.666668e-8,0 V 1.3229167 H 11.90625 V 0 Z\" />\n <path class=\"weak\" d=\"m 13.229167,0 v 1.3229167 h 11.90625 V 0 Z\" />\n <path class=\"weak\" d=\"m 26.458333,0 v 1.3229167 h 11.90625 V 0 Z\" />\n <path class=\"strong\" d=\"m 39.6875,0 v 1.3229167 h 6.614583 V 0 Z\" />\n <path class=\"wery-strong\" d=\"m 47.625,0 v 1.3229167 h 5.291666 V 0 Z\" />\n </g>\n</svg>\n{{ translations[strengthType] }}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PasswordStrengthComponent } from './components/password-strength/password-strength.component';\n\n@NgModule({\n declarations: [\n PasswordStrengthComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n PasswordStrengthComponent\n ]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,yBAAyB,CAAA;AAyBd,IAAA,MAAA;IAxBb,QAAQ,GAAG,EAAE;IAEb,MAAM,GAAG,CAAC;IAEV,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC5B,IAAA,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACnC,IAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAErD,IAAA,YAAY,GAKR;AACA,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,UAAU,EAAE;KACb;AAEH,IAAA,EAAE;IACF,YAAY,GAAiB,UAAU;AAEvC,IAAA,WAAA,CAAsB,MAAyB,EAAA;QAAzB,IAAM,CAAA,MAAA,GAAN,MAAM;AAC1B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAA,SAAA,EAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;AAC1E,QAAA,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE;QACpB,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE;;;IAIxB,IAAI,GAAA;AACF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC9B,YAAA,OAAO,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ;;AAChC,aAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM;YAC1B,OAAO,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI;;AAClC,aAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;YAC5B,OAAO,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM;;AACpC,aAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;YAChC,OAAO,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU;;AAE/C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,OAAO,CAAC;;IAGV,WAAW,GAAA;QACT,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,IAAI,CAAC;AACtC,aAAC,YAAY,IAAI,EAAE,IAAI,CAAC,CAAC;AACzB,aAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC;AACvB,aAAC,eAAe,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5B,aAAC,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,EACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB;;uGAjEQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,oHCVtC,o9BAkBgC,EAAA,MAAA,EAAA,CAAA,kMAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDRnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,o9BAAA,EAAA,MAAA,EAAA,CAAA,kMAAA,CAAA,EAAA;sFAGV,QAAQ,EAAA,CAAA;sBAAhB;;;MEIU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EATvB,YAAA,EAAA,CAAA,yBAAyB,CAGzB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,yBAAyB,CAAA,EAAA,CAAA;AAGhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YANvB,YAAY,CAAA,EAAA,CAAA;;2FAMH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD;AACF,iBAAA;;;ACdD;;AAEG;;;;"}