@js-sugar/angular
Version:
JS-Sugar core package (Angular)
57 lines • 6.27 kB
JavaScript
import { Inject, Optional, Pipe } from '@angular/core';
import { Calendars, DateTime } from '@js-sugar/date';
import { format } from '@js-sugar/date/plugins/format';
import { parseIso } from '@js-sugar/date/plugins/parse-iso';
import { JSS_DATE_PIPE_OPTIONS } from './types';
import * as i0 from "@angular/core";
export class JssDatePipe {
constructor(options) {
this.options = options;
}
transform(value, formatStr) {
if (typeof formatStr === 'string') {
switch (formatStr) {
case 'short':
formatStr = 'M/d/YY, HH:mm';
break;
case 'shortDate':
formatStr = 'M/d/YY';
break;
}
}
else {
formatStr = this.options?.format ?? 'M/d/YY, HH:mm';
}
let date;
if (value == null) {
return '';
}
else if (typeof value === 'string') {
date = parseIso(value);
}
else if (value instanceof DateTime) {
date = value;
}
else {
throw Error('Invalid date');
}
if (Calendars.default) {
date = date.to(Calendars.default);
}
return format(date, formatStr);
}
}
JssDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: JssDatePipe, deps: [{ token: JSS_DATE_PIPE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
JssDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: JssDatePipe, name: "jssDate" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: JssDatePipe, decorators: [{
type: Pipe,
args: [{
name: 'jssDate'
}]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [JSS_DATE_PIPE_OPTIONS]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvZGF0ZS9zcmMvbGliL2pzcy1kYXRlL2pzcy1kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUFzQixxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFLcEUsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBK0QsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFDMUYsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF3QixFQUFFLFNBQWtCO1FBS2xELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQy9CLFFBQVEsU0FBUyxFQUFFO2dCQUNmLEtBQUssT0FBTztvQkFDUixTQUFTLEdBQUcsZUFBZSxDQUFDO29CQUM1QixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixTQUFTLEdBQUcsUUFBUSxDQUFDO29CQUNyQixNQUFNO2FBQ2I7U0FDSjthQUFNO1lBQ0gsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQztTQUN2RDtRQUVELElBQUksSUFBYyxDQUFDO1FBQ25CLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ2I7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNsQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO2FBQU0sSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQ2xDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILE1BQU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDOzt3R0F0Q1EsV0FBVyxrQkFDWSxxQkFBcUI7c0dBRDVDLFdBQVc7MkZBQVgsV0FBVztrQkFIdkIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsU0FBUztpQkFDbEI7OzBCQUVnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJzLCBEYXRlVGltZSB9IGZyb20gJ0Bqcy1zdWdhci9kYXRlJztcclxuaW1wb3J0IHsgZm9ybWF0LCBGb3JtYXRzIH0gZnJvbSAnQGpzLXN1Z2FyL2RhdGUvcGx1Z2lucy9mb3JtYXQnO1xyXG5pbXBvcnQgeyBwYXJzZUlzbyB9IGZyb20gJ0Bqcy1zdWdhci9kYXRlL3BsdWdpbnMvcGFyc2UtaXNvJztcclxuaW1wb3J0IHsgSnNzRGF0ZVBpcGVPcHRpb25zLCBKU1NfREFURV9QSVBFX09QVElPTlMgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdqc3NEYXRlJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSnNzRGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoSlNTX0RBVEVfUElQRV9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IEpzc0RhdGVQaXBlT3B0aW9ucykge1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgRGF0ZVRpbWUsIGZvcm1hdFN0cj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy8gQWRqdXN0IGRhdGUgZm9ybWF0cyBhY2NvdXJkaW5nIHRvIGFuZ3VsYXIgZGF0ZSBwaXBlOlxyXG4gICAgICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29tbW9uL0RhdGVQaXBlXHJcbiAgICAgICAgLy9cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtYXRTdHIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0U3RyKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzaG9ydCc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0U3RyID0gJ00vZC9ZWSwgSEg6bW0nO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc2hvcnREYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtYXRTdHIgPSAnTS9kL1lZJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvcm1hdFN0ciA9IHRoaXMub3B0aW9ucz8uZm9ybWF0ID8/ICdNL2QvWVksIEhIOm1tJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBkYXRlOiBEYXRlVGltZTtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGRhdGUgPSBwYXJzZUlzbyh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lKSB7XHJcbiAgICAgICAgICAgIGRhdGUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcignSW52YWxpZCBkYXRlJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQ2FsZW5kYXJzLmRlZmF1bHQpIHtcclxuICAgICAgICAgICAgZGF0ZSA9IGRhdGUudG8oQ2FsZW5kYXJzLmRlZmF1bHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCBmb3JtYXRTdHIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==