UNPKG

@js-sugar/angular

Version:

JS-Sugar core package (Angular)

57 lines 6.27 kB
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==