Files
flights_web_raw/apps/angular/node_modules/ngx-moment/esm5/calendar.pipe.js
T

97 lines
12 KiB
JavaScript

/* ngx-moment (c) 2015, 2016 Uri Shaked / MIT Licence */
import { __decorate } from "tslib";
import { Pipe, ChangeDetectorRef, PipeTransform, EventEmitter, OnDestroy, NgZone, } from '@angular/core';
import * as moment from 'moment';
var momentConstructor = moment;
var CalendarPipe = /** @class */ (function () {
function CalendarPipe(cdRef, ngZone) {
var _this = this;
this.cdRef = cdRef;
this.ngZone = ngZone;
// using a single static timer for all instances of this pipe for performance reasons
CalendarPipe_1.initTimer(ngZone);
CalendarPipe_1.refs++;
// values such as Today will need to be replaced with Yesterday after midnight,
// so make sure we subscribe to an EventEmitter that we set up to emit at midnight
this.midnightSub = CalendarPipe_1.midnight.subscribe(function () {
_this.ngZone.run(function () { return _this.cdRef.markForCheck(); });
});
}
CalendarPipe_1 = CalendarPipe;
CalendarPipe.prototype.transform = function (value) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var formats = null;
var referenceTime = null;
for (var i = 0, len = args.length; i < len; i++) {
if (args[i] !== null) {
if (typeof args[i] === 'object' && !moment.isMoment(args[i])) {
formats = args[i];
}
else {
referenceTime = momentConstructor(args[i]);
}
}
}
return momentConstructor(value).calendar(referenceTime, formats);
};
CalendarPipe.prototype.ngOnDestroy = function () {
if (CalendarPipe_1.refs > 0) {
CalendarPipe_1.refs--;
}
if (CalendarPipe_1.refs === 0) {
CalendarPipe_1.removeTimer();
}
this.midnightSub.unsubscribe();
};
CalendarPipe.initTimer = function (ngZone) {
// initialize the timer
if (!CalendarPipe_1.midnight) {
CalendarPipe_1.midnight = new EventEmitter();
if (typeof window !== 'undefined') {
var timeToUpdate_1 = CalendarPipe_1._getMillisecondsUntilUpdate();
CalendarPipe_1.timer = ngZone.runOutsideAngular(function () {
return window.setTimeout(function () {
// emit the current date
CalendarPipe_1.midnight.emit(new Date());
// refresh the timer
CalendarPipe_1.removeTimer();
CalendarPipe_1.initTimer(ngZone);
}, timeToUpdate_1);
});
}
}
};
CalendarPipe.removeTimer = function () {
if (CalendarPipe_1.timer) {
window.clearTimeout(CalendarPipe_1.timer);
CalendarPipe_1.timer = null;
CalendarPipe_1.midnight = null;
}
};
CalendarPipe._getMillisecondsUntilUpdate = function () {
var now = momentConstructor();
var tomorrow = momentConstructor().startOf('day').add(1, 'days');
var timeToMidnight = tomorrow.valueOf() - now.valueOf();
return timeToMidnight + 1000; // 1 second after midnight
};
var CalendarPipe_1;
/**
* Internal reference counter, so we can clean up when no instances are in use
*/
CalendarPipe.refs = 0;
CalendarPipe.timer = null;
CalendarPipe.midnight = null;
CalendarPipe.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: NgZone }
]; };
CalendarPipe = CalendarPipe_1 = __decorate([
Pipe({ name: 'amCalendar', pure: false })
], CalendarPipe);
return CalendarPipe;
}());
export { CalendarPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tb21lbnQvIiwic291cmNlcyI6WyJjYWxlbmRhci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDs7QUFFeEQsT0FBTyxFQUNMLElBQUksRUFDSixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLElBQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBR2pDO0lBV0Usc0JBQW9CLEtBQXdCLEVBQVUsTUFBYztRQUFwRSxpQkFXQztRQVhtQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDbEUscUZBQXFGO1FBQ3JGLGNBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0IsY0FBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXBCLCtFQUErRTtRQUMvRSxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUNqRCxLQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBekIsQ0FBeUIsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztxQkF0QlUsWUFBWTtJQXdCdkIsZ0NBQVMsR0FBVCxVQUFVLEtBQXlCO1FBQUUsY0FBYzthQUFkLFVBQWMsRUFBZCxxQkFBYyxFQUFkLElBQWM7WUFBZCw2QkFBYzs7UUFDakQsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLElBQUksYUFBYSxHQUFRLElBQUksQ0FBQztRQUU5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFB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QUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztPQUM3QixZQUFZLENBdUZ4QjtJQUFELG1CQUFDO0NBQUEsQUF2RkQsSUF1RkM7U0F2RlksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qIG5neC1tb21lbnQgKGMpIDIwMTUsIDIwMTYgVXJpIFNoYWtlZCAvIE1JVCBMaWNlbmNlICovXG5cbmltcG9ydCB7XG4gIFBpcGUsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBQaXBlVHJhbnNmb3JtLFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uRGVzdHJveSxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IG1vbWVudENvbnN0cnVjdG9yID0gbW9tZW50O1xuXG5AUGlwZSh7IG5hbWU6ICdhbUNhbGVuZGFyJywgcHVyZTogZmFsc2UgfSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogSW50ZXJuYWwgcmVmZXJlbmNlIGNvdW50ZXIsIHNvIHdlIGNhbiBjbGVhbiB1cCB3aGVuIG5vIGluc3RhbmNlcyBhcmUgaW4gdXNlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWZzID0gMDtcblxuICBwcml2YXRlIHN0YXRpYyB0aW1lcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIG1pZG5pZ2h0OiBFdmVudEVtaXR0ZXI8RGF0ZT4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG1pZG5pZ2h0U3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAvLyB1c2luZyBhIHNpbmdsZSBzdGF0aWMgdGltZXIgZm9yIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBwaXBlIGZvciBwZXJmb3JtYW5jZSByZWFzb25zXG4gICAgQ2FsZW5kYXJQaXBlLmluaXRUaW1lcihuZ1pvbmUpO1xuXG4gICAgQ2FsZW5kYXJQaXBlLnJlZnMrKztcblxuICAgIC8vIHZhbHVlcyBzdWNoIGFzIFRvZGF5IHdpbGwgbmVlZCB0byBiZSByZXBsYWNlZCB3aXRoIFllc3RlcmRheSBhZnRlciBtaWRuaWdodCxcbiAgICAvLyBzbyBtYWtlIHN1cmUgd2Ugc3Vic2NyaWJlIHRvIGFuIEV2ZW50RW1pdHRlciB0aGF0IHdlIHNldCB1cCB0byBlbWl0IGF0IG1pZG5pZ2h0XG4gICAgdGhpcy5taWRuaWdodFN1YiA9IENhbGVuZGFyUGlwZS5taWRuaWdodC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBtb21lbnQuTW9tZW50SW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBsZXQgZm9ybWF0czogYW55ID0gbnVsbDtcbiAgICBsZXQgcmVmZXJlbmNlVGltZTogYW55ID0gbnVsbDtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcmdzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBpZiAoYXJnc1tpXSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3NbaV0gPT09ICdvYmplY3QnICYmICFtb21lbnQuaXNNb21lbnQoYXJnc1tpXSkpIHtcbiAgICAgICAgICBmb3JtYXRzID0gYXJnc1tpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWZlcmVuY2VUaW1lID0gbW9tZW50Q29uc3RydWN0b3IoYXJnc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50Q29uc3RydWN0b3IodmFsdWUpLmNhbGVuZGFyKHJlZmVyZW5jZVRpbWUsIGZvcm1hdHMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKENhbGVuZGFyUGlwZS5yZWZzID4gMCkge1xuICAgICAgQ2FsZW5kYXJQaXBlLnJlZnMtLTtcbiAgICB9XG5cbiAgICBpZiAoQ2FsZW5kYXJQaXBlLnJlZnMgPT09IDApIHtcbiAgICAgIENhbGVuZGFyUGlwZS5yZW1vdmVUaW1lcigpO1xuICAgIH1cblxuICAgIHRoaXMubWlkbmlnaHRTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRUaW1lcihuZ1pvbmU6IE5nWm9uZSkge1xuICAgIC8vIGluaXRpYWxpemUgdGhlIHRpbWVyXG4gICAgaWYgKCFDYWxlbmRhclBpcGUubWlkbmlnaHQpIHtcbiAgICAgIENhbGVuZGFyUGlwZS5taWRuaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCB0aW1lVG9VcGRhdGUgPSBDYWxlbmRhclBpcGUuX2dldE1pbGxpc2Vjb25kc1VudGlsVXBkYXRlKCk7XG4gICAgICAgIENhbGVuZGFyUGlwZS50aW1lciA9IG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGVtaXQgdGhlIGN1cnJlbnQgZGF0ZVxuICAgICAgICAgICAgQ2FsZW5kYXJQaXBlLm1pZG5pZ2h0LmVtaXQobmV3IERhdGUoKSk7XG5cbiAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIHRpbWVyXG4gICAgICAgICAgICBDYWxlbmRhclBpcGUucmVtb3ZlVGltZXIoKTtcbiAgICAgICAgICAgIENhbGVuZGFyUGlwZS5pbml0VGltZXIobmdab25lKTtcbiAgICAgICAgICB9LCB0aW1lVG9VcGRhdGUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZW1vdmVUaW1lcigpIHtcbiAgICBpZiAoQ2FsZW5kYXJQaXBlLnRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KENhbGVuZGFyUGlwZS50aW1lcik7XG4gICAgICBDYWxlbmRhclBpcGUudGltZXIgPSBudWxsO1xuICAgICAgQ2FsZW5kYXJQaXBlLm1pZG5pZ2h0ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfZ2V0TWlsbGlzZWNvbmRzVW50aWxVcGRhdGUoKSB7XG4gICAgY29uc3Qgbm93ID0gbW9tZW50Q29uc3RydWN0b3IoKTtcbiAgICBjb25zdCB0b21vcnJvdyA9IG1vbWVudENvbnN0cnVjdG9yKCkuc3RhcnRPZignZGF5JykuYWRkKDEsICdkYXlzJyk7XG4gICAgY29uc3QgdGltZVRvTWlkbmlnaHQgPSB0b21vcnJvdy52YWx1ZU9mKCkgLSBub3cudmFsdWVPZigpO1xuICAgIHJldHVybiB0aW1lVG9NaWRuaWdodCArIDEwMDA7IC8vIDEgc2Vjb25kIGFmdGVyIG1pZG5pZ2h0XG4gIH1cbn1cbiJdfQ==