From 048a451587506bf2f651d0a68075bb0f36c55fd7 Mon Sep 17 00:00:00 2001 From: Jake Bassett Date: Wed, 12 May 2021 11:42:41 -0700 Subject: [PATCH 1/3] feat: allow user to configure default string and separator for dislayStringEnum --- .../utilities/formatters/enum/display-string-enum.pipe.ts | 4 ++-- .../src/utilities/formatters/enum/display-string-enum.ts | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts b/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts index 2afd022e0..73b4d4d2f 100644 --- a/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts +++ b/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts @@ -5,7 +5,7 @@ import { displayStringEnum } from './display-string-enum'; name: 'htDisplayStringEnum' }) export class DisplayStringEnumPipe implements PipeTransform { - public transform(value: string): string { - return displayStringEnum(value); + public transform(value?: string, unknown: string = '-', separator: string = ' '): string { + return displayStringEnum(value, unknown, separator); } } diff --git a/projects/common/src/utilities/formatters/enum/display-string-enum.ts b/projects/common/src/utilities/formatters/enum/display-string-enum.ts index 7ffdb0c81..54a048744 100644 --- a/projects/common/src/utilities/formatters/enum/display-string-enum.ts +++ b/projects/common/src/utilities/formatters/enum/display-string-enum.ts @@ -1,13 +1,15 @@ import { isNil, startCase } from 'lodash-es'; -export const displayStringEnum = (provided?: string): string => { +export const displayStringEnum = (provided?: string, unknown: string = '-', separator: string = ' '): string => { if (isNil(provided)) { - return '-'; + return unknown; } // This removes dashes and underscores and gives all words initial caps const startCased = startCase(provided); + const startCasedSeparated = startCased.replace(' ', separator); + // We only want the first word capitalized. - return `${startCased[0]}${startCased.substr(1).toLowerCase()}`; + return `${startCasedSeparated[0]}${startCasedSeparated.substr(1).toLowerCase()}`; }; From 4441e0b22c38a575fdb8db165ddfd2ea54d2ea45 Mon Sep 17 00:00:00 2001 From: Jake Bassett Date: Wed, 12 May 2021 11:51:27 -0700 Subject: [PATCH 2/3] feat: fix naming --- .../src/utilities/formatters/enum/display-string-enum.pipe.ts | 4 ++-- .../src/utilities/formatters/enum/display-string-enum.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts b/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts index 73b4d4d2f..17d27ccc9 100644 --- a/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts +++ b/projects/common/src/utilities/formatters/enum/display-string-enum.pipe.ts @@ -5,7 +5,7 @@ import { displayStringEnum } from './display-string-enum'; name: 'htDisplayStringEnum' }) export class DisplayStringEnumPipe implements PipeTransform { - public transform(value?: string, unknown: string = '-', separator: string = ' '): string { - return displayStringEnum(value, unknown, separator); + public transform(value?: string, defaultValue: string = '-', separator: string = ' '): string { + return displayStringEnum(value, defaultValue, separator); } } diff --git a/projects/common/src/utilities/formatters/enum/display-string-enum.ts b/projects/common/src/utilities/formatters/enum/display-string-enum.ts index 54a048744..fad23e3f2 100644 --- a/projects/common/src/utilities/formatters/enum/display-string-enum.ts +++ b/projects/common/src/utilities/formatters/enum/display-string-enum.ts @@ -1,8 +1,8 @@ import { isNil, startCase } from 'lodash-es'; -export const displayStringEnum = (provided?: string, unknown: string = '-', separator: string = ' '): string => { +export const displayStringEnum = (provided?: string, defaultValue: string = '-', separator: string = ' '): string => { if (isNil(provided)) { - return unknown; + return defaultValue; } // This removes dashes and underscores and gives all words initial caps From a49ff7439ad491b536f1b692172f057c8d3870e1 Mon Sep 17 00:00:00 2001 From: Jake Bassett Date: Wed, 12 May 2021 12:25:46 -0700 Subject: [PATCH 3/3] fix: simplify --- .../utilities/formatters/enum/display-string-enum.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/projects/common/src/utilities/formatters/enum/display-string-enum.ts b/projects/common/src/utilities/formatters/enum/display-string-enum.ts index fad23e3f2..76c3c051a 100644 --- a/projects/common/src/utilities/formatters/enum/display-string-enum.ts +++ b/projects/common/src/utilities/formatters/enum/display-string-enum.ts @@ -1,15 +1,9 @@ -import { isNil, startCase } from 'lodash-es'; +import { capitalize, isNil, lowerCase } from 'lodash-es'; export const displayStringEnum = (provided?: string, defaultValue: string = '-', separator: string = ' '): string => { if (isNil(provided)) { return defaultValue; } - // This removes dashes and underscores and gives all words initial caps - const startCased = startCase(provided); - - const startCasedSeparated = startCased.replace(' ', separator); - - // We only want the first word capitalized. - return `${startCasedSeparated[0]}${startCasedSeparated.substr(1).toLowerCase()}`; + return capitalize(lowerCase(provided)).replace(' ', separator); };