locize
Version:
This package adds the incontext editor to your i18next setup.
45 lines (40 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var store = require('../store.js');
var uninstrumentedStore = require('../uninstrumentedStore.js');
var utils$1 = require('./utils.js');
var utils = require('../utils.js');
var highlightNode = require('./highlightNode.js');
var debouncedUpdateDistance = utils.debounce(function (e, observer) {
Object.values(store.store.data).forEach(function (item) {
if (!utils$1.isInViewport(item.node)) return;
var distance = utils$1.mouseDistanceFromElement(e, item.node);
if (distance < 5) {
highlightNode.highlight(item, item.node, item.keys);
} else if (distance > 5) {
var boxDistance = item.ribbonBox ? utils$1.mouseDistanceFromElement(e, item.ribbonBox) : 1000;
if (boxDistance > 10) highlightNode.resetHighlight(item, item.node, item.keys);
}
});
Object.values(uninstrumentedStore.uninstrumentedStore.data).forEach(function (item) {
if (!utils$1.isInViewport(item.node)) return;
var distance = utils$1.mouseDistanceFromElement(e, item.node);
if (distance < 10) {
highlightNode.highlightUninstrumented(item, item.node, item.keys);
} else if (distance > 10) {
highlightNode.resetHighlight(item, item.node, item.keys);
}
});
}, 50);
var currentFC;
function startMouseTracking(observer) {
currentFC = function handle(e) {
debouncedUpdateDistance(e, observer);
};
document.addEventListener('mousemove', currentFC);
}
function stopMouseTracking() {
document.removeEventListener('mousemove', currentFC);
}
exports.startMouseTracking = startMouseTracking;
exports.stopMouseTracking = stopMouseTracking;