reactronic-dom
Version:
Reactronic DOM - Transactional Reactive Front-End Development Framework
54 lines (53 loc) • 2.21 kB
JavaScript
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);
};
import { isnonreactive } from 'reactronic';
import { SymDataForSensor } from './DataForSensor';
import { Sensor } from './Sensor';
import { WindowSensor } from './WindowSensor';
export class HtmlElementSensor extends Sensor {
constructor(focusSensor, windowSensor) {
super();
this.sourceElement = undefined;
this.focusSensor = focusSensor;
this.windowSensor = windowSensor;
this.preventDefault = false;
this.stopPropagation = false;
}
getDefaultSensorData() {
const sourceElement = this.sourceElement;
return sourceElement ? sourceElement[SymDataForSensor] : undefined;
}
setPreventDefaultAndStopPropagation(e) {
if (this.preventDefault) {
e.preventDefault();
this.preventDefault = false;
}
if (this.stopPropagation) {
e.stopPropagation();
this.stopPropagation = false;
}
}
}
__decorate([
isnonreactive,
__metadata("design:type", Object)
], HtmlElementSensor.prototype, "focusSensor", void 0);
__decorate([
isnonreactive,
__metadata("design:type", WindowSensor)
], HtmlElementSensor.prototype, "windowSensor", void 0);
__decorate([
isnonreactive,
__metadata("design:type", Boolean)
], HtmlElementSensor.prototype, "preventDefault", void 0);
__decorate([
isnonreactive,
__metadata("design:type", Boolean)
], HtmlElementSensor.prototype, "stopPropagation", void 0);