FarmMapsLib/projects/common-map/src/fm-map/services/temporal.service.ts

65 lines
3.2 KiB
TypeScript

import { Injectable} from '@angular/core';
import {DatePipe} from '@angular/common';
import {TimespanService} from '@farmmaps/common';
import { IItemLayer, ITemporalItemLayer,TemporalItemLayer} from '../models/item.layer';
@Injectable()
export class TemporalService {
constructor(private timespanService$:TimespanService,private datePipe$: DatePipe) {}
hasNext(itemLayer:IItemLayer):boolean {
const temporalItemLayer = itemLayer as ITemporalItemLayer;
return temporalItemLayer && temporalItemLayer.nextItemLayer != null;
}
selectedDate(itemLayer:IItemLayer):string {
const temporalItemLayer = itemLayer as ITemporalItemLayer;
if(temporalItemLayer && temporalItemLayer.selectedItemLayer) {
if(temporalItemLayer && temporalItemLayer.selectedItemLayer.item.dataDate && temporalItemLayer.selectedItemLayer.item.dataEndDate) {
const sd = new Date(Date.parse(temporalItemLayer.selectedItemLayer.item.dataDate));
const ed = new Date(Date.parse(temporalItemLayer.selectedItemLayer.item.dataEndDate));
return this.timespanService$.getCaption(sd,ed);
} else {
const d = new Date(Date.parse(temporalItemLayer.selectedItemLayer.item.dataDate));
return this.datePipe$.transform(d, "shortDate");
}
}
return "";
}
nextDate(itemLayer:IItemLayer):string {
const temporalItemLayer = itemLayer as ITemporalItemLayer;
if(temporalItemLayer && temporalItemLayer.nextItemLayer && temporalItemLayer.nextItemLayer.item) {
if(temporalItemLayer.nextItemLayer.item.dataDate && temporalItemLayer.nextItemLayer.item.dataEndDate) {
const sd = new Date(Date.parse(temporalItemLayer.nextItemLayer.item.dataDate));
const ed = new Date(Date.parse(temporalItemLayer.nextItemLayer.item.dataEndDate));
return this.timespanService$.getCaption(sd,ed);
} else {
const d = new Date(Date.parse(temporalItemLayer.nextItemLayer.item.dataDate));
return this.datePipe$.transform(d, "shortDate");
}
}
return "";
}
hasPrevious(itemLayer:IItemLayer):boolean {
const temporalItemLayer = itemLayer as ITemporalItemLayer;
return temporalItemLayer && temporalItemLayer.previousItemLayer != null;
}
previousDate(itemLayer:IItemLayer):string {
const temporalItemLayer = itemLayer as ITemporalItemLayer;
if(temporalItemLayer && temporalItemLayer.previousItemLayer && temporalItemLayer.previousItemLayer.item) {
if(temporalItemLayer.previousItemLayer.item.dataDate && temporalItemLayer.previousItemLayer.item.dataEndDate) {
const sd = new Date(Date.parse(temporalItemLayer.previousItemLayer.item.dataDate));
const ed = new Date(Date.parse(temporalItemLayer.previousItemLayer.item.dataEndDate));
return this.timespanService$.getCaption(sd,ed);
} else {
const d = new Date(Date.parse(temporalItemLayer.previousItemLayer.item.dataDate));
return this.datePipe$.transform(d, "shortDate");
}
}
return "";
}
}