Files

43 lines
5.5 KiB
JavaScript

import { __decorate, __param } from "tslib";
import * as moment from 'moment';
import { Inject, Optional, Pipe } from '@angular/core';
import { NGX_MOMENT_OPTIONS } from './moment-options';
var DurationPipe = /** @class */ (function () {
function DurationPipe(momentOptions) {
this.allowedUnits = ['ss', 's', 'm', 'h', 'd', 'M'];
this._applyOptions(momentOptions);
}
DurationPipe.prototype.transform = function (value) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
if (typeof args === 'undefined' || args.length !== 1) {
throw new Error('DurationPipe: missing required time unit argument');
}
return moment.duration(value, args[0]).humanize();
};
DurationPipe.prototype._applyOptions = function (momentOptions) {
var _this = this;
if (!momentOptions) {
return;
}
if (!!momentOptions.relativeTimeThresholdOptions) {
var units = Object.keys(momentOptions.relativeTimeThresholdOptions);
var filteredUnits = units.filter(function (unit) { return _this.allowedUnits.indexOf(unit) !== -1; });
filteredUnits.forEach(function (unit) {
moment.relativeTimeThreshold(unit, momentOptions.relativeTimeThresholdOptions[unit]);
});
}
};
DurationPipe.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NGX_MOMENT_OPTIONS,] }] }
]; };
DurationPipe = __decorate([
Pipe({ name: 'amDuration' }),
__param(0, Optional()), __param(0, Inject(NGX_MOMENT_OPTIONS))
], DurationPipe);
return DurationPipe;
}());
export { DurationPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tb21lbnQvIiwic291cmNlcyI6WyJkdXJhdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUd4RTtJQUdFLHNCQUFvRCxhQUFnQztRQUZwRixpQkFBWSxHQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFHNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0NBQVMsR0FBVCxVQUFVLEtBQStCO1FBQUUsY0FBaUI7YUFBakIsVUFBaUIsRUFBakIscUJBQWlCLEVBQWpCLElBQWlCO1lBQWpCLDZCQUFpQjs7UUFDMUQsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUEwQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0YsQ0FBQztJQUVPLG9DQUFhLEdBQXJCLFVBQXNCLGFBQStCO1FBQXJELGlCQWNDO1FBYkMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLEVBQUU7WUFDaEQsSUFBTSxLQUFLLEdBQWtCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDckYsSUFBTSxhQUFhLEdBQWtCLEtBQUssQ0FBQyxNQUFNLENBQy9DLFVBQUMsSUFBSSxJQUFLLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQXRDLENBQXNDLENBQ2pELENBQUM7WUFDRixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN2RixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Z0RBekJZLFFBQVEsWUFBSSxNQUFNLFNBQUMsa0JBQWtCOztJQUh2QyxZQUFZO1FBRHhCLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUlkLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO09BSHhDLFlBQVksQ0E2QnhCO0lBQUQsbUJBQUM7Q0FBQSxBQTdCRCxJQTZCQztTQTdCWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWF9NT01FTlRfT1BUSU9OUywgTmd4TW9tZW50T3B0aW9ucyB9IGZyb20gJy4vbW9tZW50LW9wdGlvbnMnO1xuXG5AUGlwZSh7IG5hbWU6ICdhbUR1cmF0aW9uJyB9KVxuZXhwb3J0IGNsYXNzIER1cmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBhbGxvd2VkVW5pdHM6IEFycmF5PHN0cmluZz4gPSBbJ3NzJywgJ3MnLCAnbScsICdoJywgJ2QnLCAnTSddO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX01PTUVOVF9PUFRJT05TKSBtb21lbnRPcHRpb25zPzogTmd4TW9tZW50T3B0aW9ucykge1xuICAgIHRoaXMuX2FwcGx5T3B0aW9ucyhtb21lbnRPcHRpb25zKTtcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogbW9tZW50LkR1cmF0aW9uSW5wdXRBcmcxLCAuLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBhcmdzID09PSAndW5kZWZpbmVkJyB8fCBhcmdzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEdXJhdGlvblBpcGU6IG1pc3NpbmcgcmVxdWlyZWQgdGltZSB1bml0IGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24odmFsdWUsIGFyZ3NbMF0gYXMgbW9tZW50LnVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3RvcikuaHVtYW5pemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5T3B0aW9ucyhtb21lbnRPcHRpb25zOiBOZ3hNb21lbnRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCFtb21lbnRPcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEhbW9tZW50T3B0aW9ucy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGRPcHRpb25zKSB7XG4gICAgICBjb25zdCB1bml0czogQXJyYXk8c3RyaW5nPiA9IE9iamVjdC5rZXlzKG1vbWVudE9wdGlvbnMucmVsYXRpdmVUaW1lVGhyZXNob2xkT3B0aW9ucyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFVuaXRzOiBBcnJheTxzdHJpbmc+ID0gdW5pdHMuZmlsdGVyKFxuICAgICAgICAodW5pdCkgPT4gdGhpcy5hbGxvd2VkVW5pdHMuaW5kZXhPZih1bml0KSAhPT0gLTEsXG4gICAgICApO1xuICAgICAgZmlsdGVyZWRVbml0cy5mb3JFYWNoKCh1bml0KSA9PiB7XG4gICAgICAgIG1vbWVudC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQodW5pdCwgbW9tZW50T3B0aW9ucy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGRPcHRpb25zW3VuaXRdKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19