UNPKG

react-application-core

Version:

A react-based application core for the business applications.

150 lines 6.52 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserActivityManager = void 0; var R = require("ramda"); var inversify_1 = require("inversify"); var ts_smart_logger_1 = require("ts-smart-logger"); var di_1 = require("../../di"); var definition_1 = require("../../definition"); var util_1 = require("../../util"); var UserActivityManager = /** @class */ (function () { /** * @stable [19.01.2020] */ function UserActivityManager() { this.onUserActivate = this.onUserActivate.bind(this); } UserActivityManager_1 = UserActivityManager; /** * @stable [19.01.2020] * @param {IUserActivityConfigEntity} cfg */ UserActivityManager.prototype.spy = function (cfg) { if (!R.isNil(this.inactivityTask)) { this.cancel(); } var callback = cfg.callback, timeout = cfg.timeout; this.touchStartEventUnsubscriber = this.domAccessor.captureEvent({ eventName: definition_1.TouchEventsEnum.TOUCH_START, element: this.environment.document, callback: this.onUserActivate, }); this.touchMoveEventUnsubscriber = this.domAccessor.captureEvent({ eventName: definition_1.TouchEventsEnum.TOUCH_MOVE, element: this.environment.document, callback: this.onUserActivate, }); this.mouseDownEventUnsubscriber = this.domAccessor.captureEvent({ eventName: definition_1.EventsEnum.MOUSE_DOWN, element: this.environment.document, callback: this.onUserActivate, }); this.mouseMoveEventUnsubscriber = this.domAccessor.captureEvent({ eventName: definition_1.EventsEnum.MOUSE_MOVE, element: this.environment.document, callback: this.onUserActivate, }); this.keyPressEventUnsubscriber = this.domAccessor.captureEvent({ eventName: definition_1.EventsEnum.KEY_PRESS, element: this.environment.document, callback: this.onUserActivate, }); this.inactivityTask = new util_1.DelayedTask(this.onUserDeactivate.bind(this, callback), timeout * 1000); this.inactivityTask.start(); UserActivityManager_1.logger.debug('[$$UserActivityManager][spy] The config:', cfg); }; /** * @stable [19.01.2020] */ UserActivityManager.prototype.suspend = function () { var _this = this; util_1.ConditionUtils.ifNotNilThanValue(this.inactivityTask, function (inactivityTask) { _this.suspended = true; inactivityTask.stop(); UserActivityManager_1.logger.debug('[$$UserActivityManager][suspend]'); }); }; /** * @stable [19.01.2020] */ UserActivityManager.prototype.resume = function () { var _this = this; util_1.ConditionUtils.ifNotNilThanValue(this.inactivityTask, function (inactivityTask) { _this.suspended = false; inactivityTask.start(); UserActivityManager_1.logger.debug('[$$UserActivityManager][resume]'); }); }; /** * @stable [19.01.2020] */ UserActivityManager.prototype.cancel = function () { this.suspended = false; util_1.ConditionUtils.ifNotNilThanValue(this.inactivityTask, function (inactivityTask) { return inactivityTask.stop(); }); this.inactivityTask = null; if (util_1.TypeUtils.isFn(this.touchStartEventUnsubscriber)) { this.touchStartEventUnsubscriber(); this.touchStartEventUnsubscriber = null; } if (util_1.TypeUtils.isFn(this.touchMoveEventUnsubscriber)) { this.touchMoveEventUnsubscriber(); this.touchMoveEventUnsubscriber = null; } if (util_1.TypeUtils.isFn(this.mouseDownEventUnsubscriber)) { this.mouseDownEventUnsubscriber(); this.mouseDownEventUnsubscriber = null; } if (util_1.TypeUtils.isFn(this.mouseMoveEventUnsubscriber)) { this.mouseMoveEventUnsubscriber(); this.mouseMoveEventUnsubscriber = null; } if (util_1.TypeUtils.isFn(this.keyPressEventUnsubscriber)) { this.keyPressEventUnsubscriber(); this.keyPressEventUnsubscriber = null; } UserActivityManager_1.logger.debug('[$$UserActivityManager][cancel]'); }; /** * @stable [19.01.2020] * @param {() => void} callback */ UserActivityManager.prototype.onUserDeactivate = function (callback) { this.cancel(); callback(); }; /** * @stable [19.01.2020] */ UserActivityManager.prototype.onUserActivate = function () { if (this.suspended) { return; } this.inactivityTask.start(); }; var UserActivityManager_1; UserActivityManager.logger = ts_smart_logger_1.LoggerFactory.makeLogger('UserActivityManager'); __decorate([ di_1.lazyInject(di_1.DI_TYPES.DomAccessor), __metadata("design:type", Object) ], UserActivityManager.prototype, "domAccessor", void 0); __decorate([ di_1.lazyInject(di_1.DI_TYPES.Environment), __metadata("design:type", Object) ], UserActivityManager.prototype, "environment", void 0); UserActivityManager = UserActivityManager_1 = __decorate([ inversify_1.injectable(), __metadata("design:paramtypes", []) ], UserActivityManager); return UserActivityManager; }()); exports.UserActivityManager = UserActivityManager; //# sourceMappingURL=user-activity-manager.serivce.js.map