UNPKG

@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
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==