From 0f886be109670c59c504dca543785dabde97bbcb Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:27:45 -0800 Subject: [PATCH 01/13] semicolon --- src-ui/src/app/utils/ngb-date-parser-formatter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-ui/src/app/utils/ngb-date-parser-formatter.ts b/src-ui/src/app/utils/ngb-date-parser-formatter.ts index ceb773f9f..ae3ce0e5d 100644 --- a/src-ui/src/app/utils/ngb-date-parser-formatter.ts +++ b/src-ui/src/app/utils/ngb-date-parser-formatter.ts @@ -87,7 +87,7 @@ export class LocalizedDateParserFormatter extends NgbDateParserFormatter { } parse(value: string): NgbDateStruct | null { - value = this.preformatDateInput(value); + value = this.preformatDateInput(value) let match = this.getDateParseRegex().exec(value) if (match) { let dateStruct = { From ef4dc1b49ef177d538b5a3c0b3effb6f3fc639da Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:27:54 -0800 Subject: [PATCH 02/13] strip all delimiters --- src-ui/src/app/utils/ngb-date-parser-formatter.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src-ui/src/app/utils/ngb-date-parser-formatter.ts b/src-ui/src/app/utils/ngb-date-parser-formatter.ts index ae3ce0e5d..b78dbd190 100644 --- a/src-ui/src/app/utils/ngb-date-parser-formatter.ts +++ b/src-ui/src/app/utils/ngb-date-parser-formatter.ts @@ -35,16 +35,14 @@ export class LocalizedDateParserFormatter extends NgbDateParserFormatter { * have it expanded to 10.03.2022, in the case of the German format. * (All other formats are also supported) * - * It also replaces commas with the date separator. - * This allows quick entry of the date on the numpad. + * It also strips commas or periods before running formatting, + * which allows quick entry of the date on the numpad. */ private preformatDateInput(value: string): string { let inputFormat = this.getDateInputFormat() let dateSeparator = inputFormat.replace(/[dmy]/gi, '').charAt(0) - value = value.replace(/,/g, dateSeparator) - - if (value.includes(dateSeparator)) { return value } + value = value.replace(/[\/,\.-]/g, '') if (value.length == 4 && inputFormat.substring(0, 4) != 'yyyy') { return value.substring(0, 2) From a33dce194828641d1380d117a12e8987927ab894 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:41:26 -0800 Subject: [PATCH 03/13] Code formatting --- .../app/utils/ngb-date-parser-formatter.ts | 45 +++++-------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/src-ui/src/app/utils/ngb-date-parser-formatter.ts b/src-ui/src/app/utils/ngb-date-parser-formatter.ts index b78dbd190..da5740f00 100644 --- a/src-ui/src/app/utils/ngb-date-parser-formatter.ts +++ b/src-ui/src/app/utils/ngb-date-parser-formatter.ts @@ -45,41 +45,16 @@ export class LocalizedDateParserFormatter extends NgbDateParserFormatter { value = value.replace(/[\/,\.-]/g, '') if (value.length == 4 && inputFormat.substring(0, 4) != 'yyyy') { - return value.substring(0, 2) - + dateSeparator - + value.substring(2, 4) - + dateSeparator - + new Date().getFullYear() - } - else if (value.length == 4 && inputFormat.substring(0, 4) == 'yyyy') { - return new Date().getFullYear() - + dateSeparator - + value.substring(0, 2) - + dateSeparator - + value.substring(2, 4) - } - else if (value.length == 6) { - return value.substring(0, 2) - + dateSeparator - + value.substring(2, 4) - + dateSeparator - + value.substring(4, 6) - } - else if (value.length == 8 && inputFormat.substring(0, 4) != 'yyyy') { - return value.substring(0, 2) - + dateSeparator - + value.substring(2, 4) - + dateSeparator - + value.substring(4, 8) - } - else if (value.length == 8 && inputFormat.substring(0, 4) == 'yyyy') { - return value.substring(0, 4) - + dateSeparator - + value.substring(4, 6) - + dateSeparator - + value.substring(6, 8) - } - else { + return [value.substring(0, 2), value.substring(2, 4), new Date().getFullYear()].join(dateSeparator) + } else if (value.length == 4 && inputFormat.substring(0, 4) == 'yyyy') { + return [new Date().getFullYear(), value.substring(0, 2), value.substring(2, 4)].join(dateSeparator) + } else if (value.length == 6) { + return [value.substring(0, 2), value.substring(2, 4), value.substring(4, 6)].join(dateSeparator) + } else if (value.length == 8 && inputFormat.substring(0, 4) != 'yyyy') { + return [value.substring(0, 2), value.substring(2, 4), value.substring(4, 8)].join(dateSeparator) + } else if (value.length == 8 && inputFormat.substring(0, 4) == 'yyyy') { + return [value.substring(0, 4), value.substring(4, 6), value.substring(6, 8)].join(dateSeparator) + } else { return value } } From 18078119039df986bb349277dad668c058b42ab0 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 10 Mar 2022 15:11:08 -0800 Subject: [PATCH 04/13] Allow formatting non-padded dates --- .../components/common/input/date/date.component.html | 2 +- .../components/common/input/date/date.component.ts | 11 +++++++++++ src-ui/src/app/utils/ngb-date-parser-formatter.ts | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src-ui/src/app/components/common/input/date/date.component.html b/src-ui/src/app/components/common/input/date/date.component.html index 135bae411..b49993b20 100644 --- a/src-ui/src/app/components/common/input/date/date.component.html +++ b/src-ui/src/app/components/common/input/date/date.component.html @@ -1,7 +1,7 @@
-
-
-
- +
- +
-
-