Skip to content

Commit 18b20da

Browse files
authored
docs: replace third party datetime picker with native browser picker (#46)
The used third party datetime picker is not fully compatible with Angular 16 and there are no signs that support will be added. --------- Co-authored-by: Daniel Kimmich <json-derulo@users.noreply.github.com>
1 parent 1034104 commit 18b20da

File tree

8 files changed

+734
-745
lines changed

8 files changed

+734
-745
lines changed

package-lock.json

Lines changed: 714 additions & 731 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
},
1515
"private": true,
1616
"dependencies": {
17-
"@angular-material-components/datetime-picker": "^9.0.0",
1817
"@angular/animations": "^16.0.0",
1918
"@angular/cdk": "^16.0.0",
2019
"@angular/common": "^16.0.0",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const getDateString = (date?: Date): string => {
2+
const newDate = date ? new Date(date) : new Date();
3+
return new Date(newDate.getTime() - newDate.getTimezoneOffset() * 60000).toISOString().slice(0, -1).split('.')[0];
4+
};

projects/angular-intl-demo/src/app/pipes/date/date.component.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<div class="fields-container">
22
<mat-form-field>
33
<mat-label>Date</mat-label>
4-
<input [(ngModel)]="selectedDate" [ngxMatDatetimePicker]="picker" matInput placeholder="Choose a date">
5-
<mat-datepicker-toggle [for]="$any(picker)" matSuffix></mat-datepicker-toggle>
6-
<ngx-mat-datetime-picker #picker></ngx-mat-datetime-picker>
4+
<input #picker [(ngModel)]="selectedDate" matInput placeholder="Choose a date" type="datetime-local">
5+
<button (click)="picker.showPicker()" mat-icon-button matIconSuffix>
6+
<mat-icon>today</mat-icon>
7+
</button>
78
</mat-form-field>
89

910
<mat-form-field>

projects/angular-intl-demo/src/app/pipes/date/date.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {Component} from '@angular/core';
22
import {languages} from '../../languages';
3+
import {getDateString} from "../date-utils";
34

45
@Component({
56
selector: 'app-date',
@@ -8,7 +9,7 @@ import {languages} from '../../languages';
89
})
910
export class DateComponent {
1011
languages = languages;
11-
selectedDate = new Date();
12+
selectedDate = getDateString();
1213
dateStyle: Intl.DateTimeFormatOptions['dateStyle'];
1314
timeStyle: Intl.DateTimeFormatOptions['timeStyle'];
1415
hour12: Intl.DateTimeFormatOptions['hour12'];

projects/angular-intl-demo/src/app/pipes/pipes.module.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import {FormsModule} from "@angular/forms";
1313
import {MatInputModule} from "@angular/material/input";
1414
import {PipesRoutingModule} from "./pipes-routing.module";
1515
import {CountryComponent} from "./country/country.component";
16-
import {NgxMatDatetimePickerModule, NgxMatNativeDateModule} from "@angular-material-components/datetime-picker";
17-
import {MatDatepickerModule} from "@angular/material/datepicker";
1816
import {UnitComponent} from "./unit/unit.component";
1917
import {ListComponent} from "./list/list.component";
2018
import {RelativeTimeComponent} from './relative-time/relative-time.component';
19+
import {MatButtonModule} from '@angular/material/button';
20+
import {MatIconModule} from '@angular/material/icon';
2121

2222
@NgModule({
2323
declarations: [
@@ -40,9 +40,8 @@ import {RelativeTimeComponent} from './relative-time/relative-time.component';
4040
MatSelectModule,
4141
FormsModule,
4242
MatInputModule,
43-
NgxMatDatetimePickerModule,
44-
MatDatepickerModule,
45-
NgxMatNativeDateModule,
43+
MatButtonModule,
44+
MatIconModule,
4645
],
4746
})
4847
export class PipesModule {

projects/angular-intl-demo/src/app/pipes/relative-time/relative-time.component.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<div class="fields-container">
22
<mat-form-field>
33
<mat-label>Date</mat-label>
4-
<input [(ngModel)]="selectedDate" [ngxMatDatetimePicker]="picker" matInput placeholder="Choose a date">
5-
<mat-datepicker-toggle [for]="$any(picker)" matSuffix></mat-datepicker-toggle>
6-
<ngx-mat-datetime-picker #picker></ngx-mat-datetime-picker>
4+
<input #picker [(ngModel)]="selectedDate" matInput placeholder="Choose a date" type="datetime-local">
5+
<button (click)="picker.showPicker()" mat-icon-button matIconSuffix>
6+
<mat-icon>today</mat-icon>
7+
</button>
78
</mat-form-field>
89

910
<mat-form-field>

projects/angular-intl-demo/src/app/pipes/relative-time/relative-time.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import {Component} from '@angular/core';
22
import {IntlRelativeTimePipeOptions} from "projects/angular-ecmascript-intl/src/lib/relative-time/relative-time.pipe";
33
import {languages} from "../../languages";
4+
import {getDateString} from "../date-utils";
45

56
@Component({
67
selector: 'app-relative-time',
78
templateUrl: './relative-time.component.html',
89
styleUrls: ['./relative-time.component.scss'],
910
})
1011
export class RelativeTimeComponent {
11-
selectedDate = new Date(new Date().getTime() - 60000);
12+
selectedDate = getDateString(new Date(new Date().getTime() - 60000));
1213
languages = languages;
1314
numeric?: IntlRelativeTimePipeOptions['numeric'];
1415
style?: IntlRelativeTimePipeOptions['style'];

0 commit comments

Comments
 (0)