UNPKG

ngx-moment

Version:

Moment.JS pipes for Angular (timeago and more)

40 lines 5.55 kB
import moment from 'moment'; import { Inject, Optional, Pipe } from '@angular/core'; import { NGX_MOMENT_OPTIONS } from './moment-options'; import * as i0 from "@angular/core"; export class DurationPipe { constructor(momentOptions) { this.allowedUnits = ['ss', 's', 'm', 'h', 'd', 'M']; this._applyOptions(momentOptions); } transform(value, ...args) { if (typeof args === 'undefined' || args.length !== 1) { throw new Error('DurationPipe: missing required time unit argument'); } return moment.duration(value, args[0]).humanize(); } _applyOptions(momentOptions) { if (!momentOptions) { return; } if (!!momentOptions.relativeTimeThresholdOptions) { const units = Object.keys(momentOptions.relativeTimeThresholdOptions); const filteredUnits = units.filter((unit) => this.allowedUnits.indexOf(unit) !== -1); filteredUnits.forEach((unit) => { moment.relativeTimeThreshold(unit, momentOptions.relativeTimeThresholdOptions[unit]); }); } } } DurationPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DurationPipe, deps: [{ token: NGX_MOMENT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); DurationPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DurationPipe, name: "amDuration" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: DurationPipe, decorators: [{ type: Pipe, args: [{ name: 'amDuration' }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NGX_MOMENT_OPTIONS] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kdXJhdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHeEUsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBb0QsYUFBZ0M7UUFGcEYsaUJBQVksR0FBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRzVELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUErQixFQUFFLEdBQUcsSUFBYztRQUMxRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDdEU7UUFDRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQTBDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3RixDQUFDO0lBRU8sYUFBYSxDQUFDLGFBQStCO1FBQ25ELElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLDRCQUE0QixFQUFFO1lBQ2hELE1BQU0sS0FBSyxHQUFrQixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3JGLE1BQU0sYUFBYSxHQUFrQixLQUFLLENBQUMsTUFBTSxDQUMvQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2pELENBQUM7WUFDRixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkYsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3lHQTVCVSxZQUFZLGtCQUdTLGtCQUFrQjt1R0FIdkMsWUFBWTsyRkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTs7MEJBSWIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9NT01FTlRfT1BUSU9OUywgTmd4TW9tZW50T3B0aW9ucyB9IGZyb20gJy4vbW9tZW50LW9wdGlvbnMnO1xuXG5AUGlwZSh7IG5hbWU6ICdhbUR1cmF0aW9uJyB9KVxuZXhwb3J0IGNsYXNzIER1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBhbGxvd2VkVW5pdHM6IEFycmF5PHN0cmluZz4gPSBbJ3NzJywgJ3MnLCAnbScsICdoJywgJ2QnLCAnTSddO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX01PTUVOVF9PUFRJT05TKSBtb21lbnRPcHRpb25zPzogTmd4TW9tZW50T3B0aW9ucykge1xuICAgIHRoaXMuX2FwcGx5T3B0aW9ucyhtb21lbnRPcHRpb25zKTtcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogbW9tZW50LkR1cmF0aW9uSW5wdXRBcmcxLCAuLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBhcmdzID09PSAndW5kZWZpbmVkJyB8fCBhcmdzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEdXJhdGlvblBpcGU6IG1pc3NpbmcgcmVxdWlyZWQgdGltZSB1bml0IGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24odmFsdWUsIGFyZ3NbMF0gYXMgbW9tZW50LnVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3RvcikuaHVtYW5pemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5T3B0aW9ucyhtb21lbnRPcHRpb25zOiBOZ3hNb21lbnRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCFtb21lbnRPcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEhbW9tZW50T3B0aW9ucy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGRPcHRpb25zKSB7XG4gICAgICBjb25zdCB1bml0czogQXJyYXk8c3RyaW5nPiA9IE9iamVjdC5rZXlzKG1vbWVudE9wdGlvbnMucmVsYXRpdmVUaW1lVGhyZXNob2xkT3B0aW9ucyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFVuaXRzOiBBcnJheTxzdHJpbmc+ID0gdW5pdHMuZmlsdGVyKFxuICAgICAgICAodW5pdCkgPT4gdGhpcy5hbGxvd2VkVW5pdHMuaW5kZXhPZih1bml0KSAhPT0gLTEsXG4gICAgICApO1xuICAgICAgZmlsdGVyZWRVbml0cy5mb3JFYWNoKCh1bml0KSA9PiB7XG4gICAgICAgIG1vbWVudC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQodW5pdCwgbW9tZW50T3B0aW9ucy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGRPcHRpb25zW3VuaXRdKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19