UNPKG

ngx-gem-spaas

Version:

This library contains services, components, images and styles to provide a unified look and way-of-working throughout GEM SPaaS.

67 lines 10.3 kB
import { ReplaySubject } from 'rxjs'; import { Injectable } from '@angular/core'; import { DateTime } from 'luxon'; import { DateModel } from "../_models/date.model"; import * as i0 from "@angular/core"; import * as i1 from "ngx-gem-spaas"; export class DateService { static calcIdx(from, ts, granularity, setToStartOfDay = true) { switch (granularity) { case 15: return DateService.calcIdxQ(from, ts, setToStartOfDay); case 30: return DateService.calcIdxS(from, ts, setToStartOfDay); case 60: return DateService.calcIdxH(from, ts, setToStartOfDay); } } static calcIdxH(from, ts, setToStartOfDay = true) { const fromDt = setToStartOfDay ? DateTime.fromISO(from).startOf('day').toUTC() : DateTime.fromISO(from).toUTC(); return Math.floor(DateTime.fromISO(ts).toUTC().diff(fromDt, 'hours').toObject().hours); } static calcIdxS(from, ts, setToStartOfDay = true) { const hours = DateService.calcIdxH(from, ts, setToStartOfDay); const minutes = DateTime.fromISO(ts).toUTC().minute; return Math.floor(hours * 2 + minutes / 30); } static calcIdxQ(from, ts, setToStartOfDay = true) { const hours = DateService.calcIdxH(from, ts, setToStartOfDay); const minutes = DateTime.fromISO(ts).toUTC().minute; return hours * 4 + minutes / 15; } static calcQinH(ts) { return Math.floor(DateTime.fromISO(ts).minute / 15); } constructor(ssService) { this.ssService = ssService; this.date$ = new ReplaySubject(0); this.SS_DATE = 'date'; const date = this.ssService.getItem(this.SS_DATE); this.date = new DateModel(date.intraDay || DateTime.now().toISO()); this.newDate(this.date); } // ******************************************************************************************************** // BROADCAST DATA // ******************************************************************************************************** newDate(newDate) { newDate.calcFields(); this.ssService.setItem(this.SS_DATE, newDate); this.date$.next(newDate); this.date = newDate; } onNewDate() { return this.date$.asObservable(); } getDate() { return this.date; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, deps: [{ token: i1.SessionStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.SessionStorageService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdlbS1zcGFhcy9kYXRlL3NyYy9fc2VydmljZXMvZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBS2hELE1BQU0sT0FBTyxXQUFXO0lBT3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxXQUF5QixFQUFFLGtCQUEyQixJQUFJO1FBQ2pHLFFBQVEsV0FBVyxFQUFFLENBQUM7WUFDcEIsS0FBSyxFQUFFO2dCQUNMLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3pELEtBQUssRUFBRTtnQkFDTCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUN6RCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUVILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVksRUFBRSxFQUFVLEVBQUUsa0JBQTJCLElBQUk7UUFDdkUsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFB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bSAncnhqcyc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZVRpbWV9IGZyb20gJ2x1eG9uJztcclxuaW1wb3J0IHtTZXNzaW9uU3RvcmFnZVNlcnZpY2V9IGZyb20gJ25neC1nZW0tc3BhYXMnO1xyXG5pbXBvcnQge0RhdGVNb2RlbH0gZnJvbSBcIi4uL19tb2RlbHMvZGF0ZS5tb2RlbFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGRhdGU6IERhdGVNb2RlbDtcclxuICBwcml2YXRlIGRhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8RGF0ZU1vZGVsPigwKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBTU19EQVRFID0gJ2RhdGUnO1xyXG5cclxuICBzdGF0aWMgY2FsY0lkeChmcm9tOiBzdHJpbmcsIHRzOiBzdHJpbmcsIGdyYW51bGFyaXR5OiAxNSB8IDMwIHwgNjAsIHNldFRvU3RhcnRPZkRheTogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xyXG4gICAgc3dpdGNoIChncmFudWxhcml0eSkge1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHJldHVybiBEYXRlU2VydmljZS5jYWxjSWR4UShmcm9tLCB0cywgc2V0VG9TdGFydE9mRGF5KTtcclxuICAgICAgY2FzZSAzMDpcclxuICAgICAgICByZXR1cm4gRGF0ZVNlcnZpY2UuY2FsY0lkeFMoZnJvbSwgdHMsIHNldFRvU3RhcnRPZkRheSk7XHJcbiAgICAgIGNhc2UgNjA6XHJcbiAgICAgICAgcmV0dXJuIERhdGVTZXJ2aWNlLmNhbGNJZHhIKGZyb20sIHRzLCBzZXRUb1N0YXJ0T2ZEYXkpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHN0YXRpYyBjYWxjSWR4SChmcm9tOiBzdHJpbmcsIHRzOiBzdHJpbmcsIHNldFRvU3RhcnRPZkRheTogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZnJvbUR0ID0gc2V0VG9TdGFydE9mRGF5ID8gRGF0ZVRpbWUuZnJvbUlTTyhmcm9tKS5zdGFydE9mKCdkYXknKS50b1VUQygpIDogRGF0ZVRpbWUuZnJvbUlTTyhmcm9tKS50b1VUQygpO1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoPG51bWJlcj5EYXRlVGltZS5mcm9tSVNPKHRzKS50b1VUQygpLmRpZmYoZnJvbUR0LCAnaG91cnMnKS50b09iamVjdCgpLmhvdXJzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjYWxjSWR4Uyhmcm9tOiBzdHJpbmcsIHRzOiBzdHJpbmcsIHNldFRvU3RhcnRPZkRheTogYm9vbGVhbiA9IHRydWUpOiBudW1iZXIge1xyXG4gICAgY29uc3QgaG91cnMgPSBEYXRlU2VydmljZS5jYWxjSWR4SChmcm9tLCB0cywgc2V0VG9TdGFydE9mRGF5KTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBEYXRlVGltZS5mcm9tSVNPKHRzKS50b1VUQygpLm1pbnV0ZTtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGhvdXJzICogMiArIG1pbnV0ZXMgLyAzMCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY2FsY0lkeFEoZnJvbTogc3RyaW5nLCB0czogc3RyaW5nLCBzZXRUb1N0YXJ0T2ZEYXk6IGJvb2xlYW4gPSB0cnVlKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGhvdXJzID0gRGF0ZVNlcnZpY2UuY2FsY0lkeEgoZnJvbSwgdHMsIHNldFRvU3RhcnRPZkRheSk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gRGF0ZVRpbWUuZnJvbUlTTyh0cykudG9VVEMoKS5taW51dGU7XHJcbiAgICByZXR1cm4gaG91cnMgKiA0ICsgbWludXRlcyAvIDE1O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNhbGNRaW5IKHRzOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoRGF0ZVRpbWUuZnJvbUlTTyh0cykubWludXRlIC8gMTUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNzU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgY29uc3QgZGF0ZSA9IDxEYXRlTW9kZWw+dGhpcy5zc1NlcnZpY2UuZ2V0SXRlbSh0aGlzLlNTX0RBVEUpO1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGVNb2RlbChkYXRlLmludHJhRGF5IHx8IERhdGVUaW1lLm5vdygpLnRvSVNPKCkpO1xyXG4gICAgdGhpcy5uZXdEYXRlKHRoaXMuZGF0ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAvLyBCUk9BRENBU1QgREFUQVxyXG4gIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4gIG5ld0RhdGUobmV3RGF0ZTogRGF0ZU1vZGVsKSB7XHJcbiAgICBuZXdEYXRlLmNhbGNGaWVsZHMoKTtcclxuICAgIHRoaXMuc3NTZXJ2aWNlLnNldEl0ZW0odGhpcy5TU19EQVRFLCBuZXdEYXRlKTtcclxuICAgIHRoaXMuZGF0ZSQubmV4dChuZXdEYXRlKTtcclxuICAgIHRoaXMuZGF0ZSA9IG5ld0RhdGU7XHJcbiAgfVxyXG5cclxuICBvbk5ld0RhdGUoKTogT2JzZXJ2YWJsZTxEYXRlTW9kZWw+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGUkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZSgpOiBEYXRlTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==