From d5e340d0f64d9da19343d1eededeef77e94d92e5 Mon Sep 17 00:00:00 2001
From: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date: Mon, 16 May 2022 00:29:49 -0700
Subject: [PATCH] Consolidate date adapter

---
 src-ui/src/app/app.module.ts                  |  4 +--
 src-ui/src/app/utils/ngb-iso-date-adapter.ts  | 19 +++++++++---
 .../app/utils/ngb-iso-date-time-adapter.ts    | 31 -------------------
 3 files changed, 16 insertions(+), 38 deletions(-)
 delete mode 100644 src-ui/src/app/utils/ngb-iso-date-time-adapter.ts

diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts
index e891d217d..a705c83ec 100644
--- a/src-ui/src/app/app.module.ts
+++ b/src-ui/src/app/app.module.ts
@@ -61,7 +61,7 @@ import { SafeUrlPipe } from './pipes/safeurl.pipe'
 import { SafeHtmlPipe } from './pipes/safehtml.pipe'
 import { CustomDatePipe } from './pipes/custom-date.pipe'
 import { DateComponent } from './components/common/input/date/date.component'
-import { ISODateTimeAdapter } from './utils/ngb-iso-date-time-adapter'
+import { ISODateAdapter } from './utils/ngb-iso-date-adapter'
 import { LocalizedDateParserFormatter } from './utils/ngb-date-parser-formatter'
 import { ApiVersionInterceptor } from './interceptors/api-version.interceptor'
 import { ColorSliderModule } from 'ngx-color/slider'
@@ -188,7 +188,7 @@ registerLocaleData(localeZh)
     },
     FilterPipe,
     DocumentTitlePipe,
-    { provide: NgbDateAdapter, useClass: ISODateTimeAdapter },
+    { provide: NgbDateAdapter, useClass: ISODateAdapter },
     { provide: NgbDateParserFormatter, useClass: LocalizedDateParserFormatter },
   ],
   bootstrap: [AppComponent],
diff --git a/src-ui/src/app/utils/ngb-iso-date-adapter.ts b/src-ui/src/app/utils/ngb-iso-date-adapter.ts
index 7aa2214b5..af2fff3f3 100644
--- a/src-ui/src/app/utils/ngb-iso-date-adapter.ts
+++ b/src-ui/src/app/utils/ngb-iso-date-adapter.ts
@@ -5,11 +5,20 @@ import { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'
 export class ISODateAdapter extends NgbDateAdapter<string> {
   fromModel(value: string | null): NgbDateStruct | null {
     if (value) {
-      let date = new Date(value)
-      return {
-        day: date.getDate(),
-        month: date.getMonth() + 1,
-        year: date.getFullYear(),
+      if (value.match(/\d\d\d\d\-\d\d\-\d\d/g)) {
+        const segs = value.split('-')
+        return {
+          year: parseInt(segs[0]),
+          month: parseInt(segs[1]),
+          day: parseInt(segs[2]),
+        }
+      } else {
+        let date = new Date(value)
+        return {
+          day: date.getDate(),
+          month: date.getMonth() + 1,
+          year: date.getFullYear(),
+        }
       }
     } else {
       return null
diff --git a/src-ui/src/app/utils/ngb-iso-date-time-adapter.ts b/src-ui/src/app/utils/ngb-iso-date-time-adapter.ts
deleted file mode 100644
index 9d0ea4de6..000000000
--- a/src-ui/src/app/utils/ngb-iso-date-time-adapter.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Injectable } from '@angular/core'
-import { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'
-
-@Injectable()
-export class ISODateTimeAdapter extends NgbDateAdapter<string> {
-  fromModel(value: string | null): NgbDateStruct | null {
-    if (value) {
-      if (value.match(/\d\d\d\d\-\d\d\-\d\d/g)) {
-        const segs = value.split('-')
-        return {
-          year: parseInt(segs[0]),
-          month: parseInt(segs[1]),
-          day: parseInt(segs[2]),
-        }
-      } else {
-        let date = new Date(value)
-        return {
-          day: date.getDate(),
-          month: date.getMonth() + 1,
-          year: date.getFullYear(),
-        }
-      }
-    } else {
-      return null
-    }
-  }
-
-  toModel(date: NgbDateStruct | null): string | null {
-    return date ? [date.year, date.month, date.day].join('-') : null
-  }
-}