From f711c48696b5abc07998bb12b782b600bf7d53e6 Mon Sep 17 00:00:00 2001 From: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Date: Wed, 7 Jul 2021 07:43:22 +1000 Subject: [PATCH] Transpile unicode property escape regex for backwards compatibility (#424) * Revert "Update color-password.pipe.js to handle Unicode/Emoji correctly accross platforms. (#354)" This reverts commit b6f102938fe7c17631cb1b2e356438c5e4456529. Reason: incompatible with FF <= 77 * Revert "Revert "Update color-password.pipe.js to handle Unicode/Emoji correctly accross platforms. (#354)"" This reverts commit 4a0b2641ebb0c9c797f1cd06f6b2401659c1f65d. * Transpile unicode property escape regex For compatibility with <= FF 77 and other older browsers * Fix linting --- angular/src/pipes/color-password.pipe.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/angular/src/pipes/color-password.pipe.ts b/angular/src/pipes/color-password.pipe.ts index 7ea50b81c5..d942fcadd7 100644 --- a/angular/src/pipes/color-password.pipe.ts +++ b/angular/src/pipes/color-password.pipe.ts @@ -11,7 +11,8 @@ import { export class ColorPasswordPipe implements PipeTransform { transform(password: string) { // Regex Unicode property escapes for checking if emoji in passwords. - const regexpEmojiPresentation = /\p{Emoji_Presentation}/gu; + // Transpiled version of /\p{Emoji_Presentation}/gu using https://mothereff.in/regexpu. Used for compatability in older browsers. + const regexpEmojiPresentation = /(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])/g; // Convert to an array to handle cases that stings have special characters, ie: emoji. const passwordArray = Array.from(password); let colorizedPassword = '';