Samuel Philipp
e9599373ec
added uptime statistics (closes #56) added german translations (closes #57)
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { Pipe, PipeTransform } from '@angular/core';
|
|
import * as dayjs from 'dayjs';
|
|
import * as utc from 'dayjs/plugin/utc';
|
|
import * as relativeTime from 'dayjs/plugin/relativeTime';
|
|
import * as localizedFormat from 'dayjs/plugin/localizedFormat';
|
|
import {TranslateService} from '@ngx-translate/core';
|
|
import 'dayjs/locale/de';
|
|
|
|
dayjs.extend(utc);
|
|
dayjs.extend(relativeTime);
|
|
dayjs.extend(localizedFormat);
|
|
|
|
@Pipe({
|
|
name: 'dayjs',
|
|
pure: false
|
|
})
|
|
export class DayjsPipe implements PipeTransform {
|
|
constructor(private translate: TranslateService) {
|
|
}
|
|
|
|
transform(value: string | Date, method: string, ...args: any[]): string {
|
|
const date = dayjs.utc(value);
|
|
switch (method) {
|
|
case 'to':
|
|
const to = args[0] ? dayjs.utc(args[0]) : dayjs.utc();
|
|
const suffix = args.length > 1 && args[1] === true;
|
|
return date.locale(this.translate.currentLang).to(to, !suffix);
|
|
case 'from':
|
|
const from = args[0] ? dayjs.utc(args[0]) : dayjs.utc();
|
|
return date.locale(this.translate.currentLang).from(from);
|
|
case 'format':
|
|
return date.local().locale(this.translate.currentLang).format(args[0]);
|
|
}
|
|
throw new Error('please pass a method to use!');
|
|
}
|
|
}
|