UNPKG

locize

Version:

This package adds the incontext editor to your i18next setup.

45 lines (40 loc) 1.66 kB
'use strict'; 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;