1
0
mirror of https://github.com/bitwarden/jslib synced 2026-01-09 12:03:23 +00:00

Revert "Update color-password.pipe.js to handle Unicode/Emoji correctly accross platforms. (#354)"

This reverts commit b6f102938f.
Reason: incompatible with FF <= 77
This commit is contained in:
Thomas Rittson
2021-07-05 16:28:50 +10:00
parent d10d40697c
commit 4a0b2641eb

View File

@@ -3,20 +3,15 @@ import {
PipeTransform,
} from '@angular/core';
/*
An updated pipe that sanitizes HTML, highlights numbers and special characters (in different colors each)
and handles Unicode / Emoji characters correctly.
*/
/**
* A pipe that sanitizes HTML and highlights numbers and special characters (in different colors each).
*/
@Pipe({ name: 'colorPassword' })
export class ColorPasswordPipe implements PipeTransform {
transform(password: string) {
// Regex Unicode property escapes for checking if emoji in passwords.
const regexpEmojiPresentation = /\p{Emoji_Presentation}/gu;
// Convert to an array to handle cases that stings have special characters, ie: emoji.
const passwordArray = Array.from(password);
let colorizedPassword = '';
for (let i = 0; i < passwordArray.length; i++) {
let character = passwordArray[i];
for (let i = 0; i < password.length; i++) {
let character = password[i];
let isSpecial = false;
// Sanitize HTML first.
switch (character) {
@@ -40,9 +35,7 @@ export class ColorPasswordPipe implements PipeTransform {
break;
}
let type = 'letter';
if (character.match(regexpEmojiPresentation)) {
type = 'emoji';
} else if (isSpecial || character.match(/[^\w ]/)) {
if (isSpecial || character.match(/[^\w ]/)) {
type = 'special';
} else if (character.match(/\d/)) {
type = 'number';