UNPKG

@schoolbelle/common

Version:

Demo library to showcase Angular packaging format

101 lines (94 loc) 8.8 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs/Subject')) : typeof define === 'function' && define.amd ? define('@schoolbelle/common/services/time-counter', ['exports', 'rxjs/Subject'], factory) : (factory((global.schoolbelle = global.schoolbelle || {}, global.schoolbelle.common = global.schoolbelle.common || {}, global.schoolbelle.common.services = global.schoolbelle.common.services || {}, global.schoolbelle.common.services['time-counter'] = {}),global.rxjs.Subject)); }(this, (function (exports,Subject) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ var TimeCounterService = (function () { function TimeCounterService(timer_id) { if (timer_id === void 0) { timer_id = 'no_id'; } this.willBeUnlockedAt = undefined; this.updateEvent = new Subject.Subject(); this.id = timer_id; var /** @type {?} */ willBeUnlockedAt = window.localStorage.getItem(timer_id + '.willBeUnlockedAt'); if (willBeUnlockedAt && parseInt(willBeUnlockedAt) > new Date().getTime() && parseInt(willBeUnlockedAt) < new Date().getTime() + 10 * 60 * 1000) { this.willBeUnlockedAt = parseInt(willBeUnlockedAt); this.startLockTimer((this.willBeUnlockedAt - new Date().getTime()) / 1000); } } Object.defineProperty(TimeCounterService.prototype, "onUpdate", { get: /** * @return {?} */ function () { return this.updateEvent.asObservable(); }, enumerable: true, configurable: true }); Object.defineProperty(TimeCounterService.prototype, "ticking", { get: /** * @return {?} */ function () { return typeof this.timeLeftIntervalId === 'undefined' ? false : true; }, enumerable: true, configurable: true }); /** * @param {?} seconds * @return {?} */ TimeCounterService.prototype.startLockTimer = /** * @param {?} seconds * @return {?} */ function (seconds) { var _this = this; if (typeof this.timeLeftIntervalId !== 'undefined') return; this.willBeUnlockedAt = new Date().getTime() + seconds * 1000; window.localStorage.setItem(this.id + '.willBeUnlockedAt', '' + this.willBeUnlockedAt); this.timeLeft = seconds; this.updateEvent.next(this.timeLeft); this.timeLeftIntervalId = setInterval(function () { _this.timeLeft--; _this.updateEvent.next(_this.timeLeft); if (_this.timeLeft <= 0) { _this.stopLockTimer(); } }, 1000); }; /** * @return {?} */ TimeCounterService.prototype.stopLockTimer = /** * @return {?} */ function () { if (typeof this.timeLeftIntervalId === 'undefined') return; clearInterval(this.timeLeftIntervalId); this.timeLeft = undefined; this.timeLeftIntervalId = undefined; }; return TimeCounterService; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ exports.TimeCounterService = TimeCounterService; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29sYmVsbGUtY29tbW9uLXNlcnZpY2VzLXRpbWUtY291bnRlci51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL0BzY2hvb2xiZWxsZS9jb21tb24vc2VydmljZXMvdGltZS1jb3VudGVyL3RpbWUtY291bnRlci5zZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL1N1YmplY3QnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5cbmV4cG9ydCBjbGFzcyBUaW1lQ291bnRlclNlcnZpY2Uge1xuICBwcml2YXRlIHdpbGxCZVVubG9ja2VkQXQ6IG51bWJlciA9IHVuZGVmaW5lZDtcbiAgcHVibGljIHRpbWVMZWZ0OiBudW1iZXI7XG4gIHByaXZhdGUgdGltZUxlZnRJbnRlcnZhbElkOiBhbnk7XG4gIHByaXZhdGUgdXBkYXRlRXZlbnQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyBnZXQgb25VcGRhdGUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVFdmVudC5hc09ic2VydmFibGUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRpY2tpbmcoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnRpbWVMZWZ0SW50ZXJ2YWxJZCA9PT0gJ3VuZGVmaW5lZCcgPyBmYWxzZSA6IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlkOmFueTtcbiAgY29uc3RydWN0b3IodGltZXJfaWQgPSAnbm9faWQnKSB7XG4gICAgdGhpcy5pZCA9IHRpbWVyX2lkO1xuICAgIGxldCB3aWxsQmVVbmxvY2tlZEF0ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFxuICAgICAgdGltZXJfaWQgKyAnLndpbGxCZVVubG9ja2VkQXQnXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICB3aWxsQmVVbmxvY2tlZEF0ICYmXG4gICAgICBwYXJzZUludCh3aWxsQmVVbmxvY2tlZEF0KSA+IG5ldyBEYXRlKCkuZ2V0VGltZSgpICYmXG4gICAgICBwYXJzZUludCh3aWxsQmVVbmxvY2tlZEF0KSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAgKiA2MCAqIDEwMDBcbiAgICApIHtcbiAgICAgIHRoaXMud2lsbEJlVW5sb2NrZWRBdCA9IHBhcnNlSW50KHdpbGxCZVVubG9ja2VkQXQpO1xuICAgICAgdGhpcy5zdGFydExvY2tUaW1lcihcbiAgICAgICAgKHRoaXMud2lsbEJlVW5sb2NrZWRBdCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAvIDEwMDBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBzdGFydExvY2tUaW1lcihzZWNvbmRzOiBudW1iZXIpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMudGltZUxlZnRJbnRlcnZhbElkICE9PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgdGhpcy53aWxsQmVVbmxvY2tlZEF0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBzZWNvbmRzICogMTAwMDtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICB0aGlzLmlkICsgJy53aWxsQmVVbmxvY2tlZEF0JyxcbiAgICAgICcnICsgdGhpcy53aWxsQmVVbmxvY2tlZEF0XG4gICAgKTtcblxuICAgIHRoaXMudGltZUxlZnQgPSBzZWNvbmRzO1xuICAgIHRoaXMudXBkYXRlRXZlbnQubmV4dCh0aGlzLnRpbWVMZWZ0KTtcbiAgICB0aGlzLnRpbWVMZWZ0SW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMudGltZUxlZnQtLTtcbiAgICAgIHRoaXMudXBkYXRlRXZlbnQubmV4dCh0aGlzLnRpbWVMZWZ0KTtcbiAgICAgIGlmICh0aGlzLnRpbWVMZWZ0IDw9IDApIHtcbiAgICAgICAgdGhpcy5zdG9wTG9ja1RpbWVyKCk7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH1cbiAgcHVibGljIHN0b3BMb2NrVGltZXIoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnRpbWVMZWZ0SW50ZXJ2YWxJZCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICBjbGVhckludGVydmFsKHRoaXMudGltZUxlZnRJbnRlcnZhbElkKTtcbiAgICB0aGlzLnRpbWVMZWZ0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZUxlZnRJbnRlcnZhbElkID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXSwibmFtZXMiOlsiU3ViamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLFFBR0E7UUFhRSw0QkFBWSxRQUFrQjtZQUFsQix5QkFBQTtnQkFBQSxrQkFBa0I7O29DQVpLLFNBQVM7K0JBR0wsSUFBSUEsZUFBTyxFQUFFO1lBVWxELElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1lBQ25CLHFCQUFJLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUNoRCxRQUFRLEdBQUcsbUJBQW1CLENBQy9CLENBQUM7WUFDRixJQUNFLGdCQUFnQjtnQkFDaEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUNoRSxFQUFFO2dCQUNBLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FDakIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQ3RELENBQUM7YUFDSDtTQUNGOzhCQXZCVSx3Q0FBUTs7OztnQkFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDOzs7Ozs4QkFFOUIsdUNBQU87Ozs7Z0JBQ2hCLE9BQU8sT0FBTyxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7Ozs7Ozs7OztRQW9CaEUsMkNBQWM7Ozs7c0JBQUMsT0FBZTs7Z0JBQ25DLElBQUksT0FBTyxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVztvQkFBRSxPQUFPO2dCQUUzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDekIsSUFBSSxDQUFDLEVBQUUsR0FBRyxtQkFBbUIsRUFDN0IsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FDM0IsQ0FBQztnQkFFRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO29CQUNwQyxLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2hCLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDckMsSUFBSSxLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTt3QkFDdEIsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO3FCQUN0QjtpQkFDRixFQUFFLElBQUksQ0FBQyxDQUFDOzs7OztRQUVKLDBDQUFhOzs7O2dCQUNsQixJQUFJLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixLQUFLLFdBQVc7b0JBQUUsT0FBTztnQkFDM0QsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQzs7aUNBdkR4QztRQXlEQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==