@vismaux/ngx-nordic-cool
Version:
Common Nordic-Cool components for Angular.
48 lines • 5.69 kB
JavaScript
import { Injectable } from '@angular/core';
import { NcDateAdapter } from './date-struct.adapter';
import { isInteger } from '../../utils/utils';
import * as i0 from "@angular/core";
export class NcDateNativeUtcIsoAdapter extends NcDateAdapter {
/**
* Converts a ISO 8601 date string to a `NcDateStruct`.
*/
fromModel(dateString) {
if (dateString === null) {
return null;
}
const date = new Date(dateString);
return date instanceof Date && !isNaN(date.getTime())
? this._fromNativeDate(date)
: null;
}
/**
* Converts a `NcDateStruct` to a ISO 8601 date string.
*/
toModel(dateStruct) {
return dateStruct &&
isInteger(dateStruct.year) &&
isInteger(dateStruct.month) &&
isInteger(dateStruct.day)
? this._toNativeDate(dateStruct)
: null;
}
_fromNativeDate(date) {
return {
year: date.getUTCFullYear(),
month: date.getUTCMonth() + 1,
day: date.getUTCDate(),
};
}
_toNativeDate(date) {
const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));
// avoid 30 -> 1930 conversion
jsDate.setUTCFullYear(date.year);
return jsDate.toISOString();
}
}
NcDateNativeUtcIsoAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcDateNativeUtcIsoAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
NcDateNativeUtcIsoAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcDateNativeUtcIsoAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcDateNativeUtcIsoAdapter, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1uYXRpdmUtdXRjLWlzby5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vcmRpYy1jb29sL3NyYy9saWIvZGF0ZXBpY2tlci9hZGFwdGVycy9kYXRlLW5hdGl2ZS11dGMtaXNvLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUk5QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBcUI7SUFDbEU7O09BRUc7SUFDSCxTQUFTLENBQUMsVUFBeUI7UUFDakMsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFVBQStCO1FBQ3JDLE9BQU8sVUFBVTtZQUNmLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQzFCLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVTLGVBQWUsQ0FBQyxJQUFVO1FBQ2xDLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7WUFDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFUyxhQUFhLENBQUMsSUFBa0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLDhCQUE4QjtRQUM5QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOztzSEF2Q1UseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5jRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtc3RydWN0LmFkYXB0ZXInO1xuaW1wb3J0IHsgaXNJbnRlZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgTmNEYXRlU3RydWN0IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOY0RhdGVOYXRpdmVVdGNJc29BZGFwdGVyIGV4dGVuZHMgTmNEYXRlQWRhcHRlcjxzdHJpbmc+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgSVNPIDg2MDEgZGF0ZSBzdHJpbmcgdG8gYSBgTmNEYXRlU3RydWN0YC5cbiAgICovXG4gIGZyb21Nb2RlbChkYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsKTogTmNEYXRlU3RydWN0IHwgbnVsbCB7XG4gICAgaWYgKGRhdGVTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSlcbiAgICAgID8gdGhpcy5fZnJvbU5hdGl2ZURhdGUoZGF0ZSlcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGBOY0RhdGVTdHJ1Y3RgIHRvIGEgSVNPIDg2MDEgZGF0ZSBzdHJpbmcuXG4gICAqL1xuICB0b01vZGVsKGRhdGVTdHJ1Y3Q6IE5jRGF0ZVN0cnVjdCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gZGF0ZVN0cnVjdCAmJlxuICAgICAgaXNJbnRlZ2VyKGRhdGVTdHJ1Y3QueWVhcikgJiZcbiAgICAgIGlzSW50ZWdlcihkYXRlU3RydWN0Lm1vbnRoKSAmJlxuICAgICAgaXNJbnRlZ2VyKGRhdGVTdHJ1Y3QuZGF5KVxuICAgICAgPyB0aGlzLl90b05hdGl2ZURhdGUoZGF0ZVN0cnVjdClcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZnJvbU5hdGl2ZURhdGUoZGF0ZTogRGF0ZSk6IE5jRGF0ZVN0cnVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHllYXI6IGRhdGUuZ2V0VVRDRnVsbFllYXIoKSxcbiAgICAgIG1vbnRoOiBkYXRlLmdldFVUQ01vbnRoKCkgKyAxLFxuICAgICAgZGF5OiBkYXRlLmdldFVUQ0RhdGUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIF90b05hdGl2ZURhdGUoZGF0ZTogTmNEYXRlU3RydWN0KTogc3RyaW5nIHtcbiAgICBjb25zdCBqc0RhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyhkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSkpO1xuICAgIC8vIGF2b2lkIDMwIC0+IDE5MzAgY29udmVyc2lvblxuICAgIGpzRGF0ZS5zZXRVVENGdWxsWWVhcihkYXRlLnllYXIpO1xuICAgIHJldHVybiBqc0RhdGUudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19