@omostan/ngx-idle
Version:
A module for responding to idle users in Angular applications. this is a forked version of the original @ng-Idle
89 lines • 8.66 kB
JavaScript
import { Injectable } from '@angular/core';
import { IdleExpiry } from './idleexpiry';
import * as i0 from "@angular/core";
import * as i1 from "./localstorage";
/*
* Represents a localStorage store of expiry values.
* @extends IdleExpiry
*/
export class LocalStorageExpiry extends IdleExpiry {
constructor(localStorage) {
super();
this.localStorage = localStorage;
this.idleName = 'main';
}
/*
* Gets or sets the last expiry date in localStorage.
* If localStorage doesn't work correctly (i.e. Safari in private mode), we store the expiry value in memory.
* @param value - The expiry value to set; omit to only return the value.
* @return The current expiry value.
*/
last(value) {
if (value !== void 0) {
this.setExpiry(value);
}
return this.getExpiry();
}
idling(value) {
if (value !== void 0) {
this.setIdling(value);
}
return this.getIdling();
}
/*
* Gets the idle name.
* @return The name of the idle.
*/
getIdleName() {
return this.idleName;
}
/*
* Sets the idle name.
* @param The name of the idle.
*/
setIdleName(key) {
if (key) {
this.idleName = key;
}
}
getExpiry() {
const expiry = this.localStorage.getItem(this.idleName + '.expiry');
if (expiry) {
return new Date(parseInt(expiry, 10));
}
else {
return null;
}
}
setExpiry(value) {
if (value) {
this.localStorage.setItem(this.idleName + '.expiry', value.getTime().toString());
}
else {
this.localStorage.removeItem(this.idleName + '.expiry');
}
}
getIdling() {
const idling = this.localStorage.getItem(this.idleName + '.idling');
if (idling) {
return idling === 'true';
}
else {
return false;
}
}
setIdling(value) {
if (value) {
this.localStorage.setItem(this.idleName + '.idling', value.toString());
}
else {
this.localStorage.setItem(this.idleName + '.idling', 'false');
}
}
}
LocalStorageExpiry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocalStorageExpiry, deps: [{ token: i1.LocalStorage }], target: i0.ɵɵFactoryTarget.Injectable });
LocalStorageExpiry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocalStorageExpiry });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LocalStorageExpiry, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.LocalStorage }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdG9yYWdlZXhwaXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2xvY2Fsc3RvcmFnZWV4cGlyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUcxQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQUdoRCxZQUFvQixZQUEwQjtRQUM1QyxLQUFLLEVBQUUsQ0FBQztRQURVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRnRDLGFBQVEsR0FBRyxNQUFNLENBQUM7SUFJMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFlO1FBQ3BCLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkI7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEdBQVc7UUFDckIsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFXO1FBQzNCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUN6QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQzNCLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sTUFBTSxLQUFLLE1BQU0sQ0FBQztTQUMxQjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsS0FBYztRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7OytHQWhGVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZGxlRXhwaXJ5IH0gZnJvbSAnLi9pZGxlZXhwaXJ5JztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlIH0gZnJvbSAnLi9sb2NhbHN0b3JhZ2UnO1xyXG5cclxuLypcclxuICogUmVwcmVzZW50cyBhIGxvY2FsU3RvcmFnZSBzdG9yZSBvZiBleHBpcnkgdmFsdWVzLlxyXG4gKiBAZXh0ZW5kcyBJZGxlRXhwaXJ5XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VFeHBpcnkgZXh0ZW5kcyBJZGxlRXhwaXJ5IHtcclxuICBwcml2YXRlIGlkbGVOYW1lID0gJ21haW4nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGxhc3QgZXhwaXJ5IGRhdGUgaW4gbG9jYWxTdG9yYWdlLlxyXG4gICAqIElmIGxvY2FsU3RvcmFnZSBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IChpLmUuIFNhZmFyaSBpbiBwcml2YXRlIG1vZGUpLCB3ZSBzdG9yZSB0aGUgZXhwaXJ5IHZhbHVlIGluIG1lbW9yeS5cclxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgZXhwaXJ5IHZhbHVlIHRvIHNldDsgb21pdCB0byBvbmx5IHJldHVybiB0aGUgdmFsdWUuXHJcbiAgICogQHJldHVybiBUaGUgY3VycmVudCBleHBpcnkgdmFsdWUuXHJcbiAgICovXHJcbiAgbGFzdCh2YWx1ZT86IERhdGUpOiBEYXRlIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIHRoaXMuc2V0RXhwaXJ5KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEV4cGlyeSgpO1xyXG4gIH1cclxuXHJcbiAgaWRsaW5nKHZhbHVlPzogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSB2b2lkIDApIHtcclxuICAgICAgdGhpcy5zZXRJZGxpbmcodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRsaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEdldHMgdGhlIGlkbGUgbmFtZS5cclxuICAgKiBAcmV0dXJuIFRoZSBuYW1lIG9mIHRoZSBpZGxlLlxyXG4gICAqL1xyXG4gIGdldElkbGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZGxlTmFtZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogU2V0cyB0aGUgaWRsZSBuYW1lLlxyXG4gICAqIEBwYXJhbSBUaGUgbmFtZSBvZiB0aGUgaWRsZS5cclxuICAgKi9cclxuICBzZXRJZGxlTmFtZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICB0aGlzLmlkbGVOYW1lID0ga2V5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFeHBpcnkoKTogRGF0ZSB7XHJcbiAgICBjb25zdCBleHBpcnk6IHN0cmluZyA9IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pZGxlTmFtZSArICcuZXhwaXJ5Jyk7XHJcbiAgICBpZiAoZXhwaXJ5KSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZUludChleHBpcnksIDEwKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RXhwaXJ5KHZhbHVlOiBEYXRlKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICB0aGlzLmlkbGVOYW1lICsgJy5leHBpcnknLFxyXG4gICAgICAgIHZhbHVlLmdldFRpbWUoKS50b1N0cmluZygpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuaWRsZU5hbWUgKyAnLmV4cGlyeScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJZGxpbmcoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpZGxpbmc6IHN0cmluZyA9IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pZGxlTmFtZSArICcuaWRsaW5nJyk7XHJcbiAgICBpZiAoaWRsaW5nKSB7XHJcbiAgICAgIHJldHVybiBpZGxpbmcgPT09ICd0cnVlJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SWRsaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmlkbGVOYW1lICsgJy5pZGxpbmcnLCB2YWx1ZS50b1N0cmluZygpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pZGxlTmFtZSArICcuaWRsaW5nJywgJ2ZhbHNlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==