@grafana/faro-web-sdk
Version:
Faro instrumentations, metas, transports for web.
43 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUserEventHandler = getUserEventHandler;
exports.getUserActionNameFromElement = getUserActionNameFromElement;
exports.unsubscribeAllMonitors = unsubscribeAllMonitors;
var const_1 = require("./const");
var userActionController_1 = require("./userActionController");
var util_1 = require("./util");
function getUserEventHandler(faro) {
var api = faro.api, config = faro.config;
function processUserEvent(event) {
var _a, _b;
var userActionName = getUserActionNameFromElement(event.target, (_b = (_a = config.userActionsInstrumentation) === null || _a === void 0 ? void 0 : _a.dataAttributeName) !== null && _b !== void 0 ? _b : const_1.userActionDataAttributeParsed);
// We don't have a data attribute
if (!userActionName) {
return;
}
var userAction = api.startUserAction(userActionName, {}, { triggerName: event.type });
if (userAction) {
processUserActionStarted(userAction);
}
}
function processUserActionStarted(userAction) {
var internalUserAction = userAction;
new userActionController_1.UserActionController(internalUserAction).attach();
}
return { processUserEvent: processUserEvent, processUserActionStarted: processUserActionStarted };
}
function getUserActionNameFromElement(element, dataAttributeName) {
var parsedDataAttributeName = (0, util_1.convertDataAttributeName)(dataAttributeName);
var dataset = element.dataset;
for (var key in dataset) {
if (key === parsedDataAttributeName) {
return dataset[key];
}
}
return undefined;
}
function unsubscribeAllMonitors(allMonitorsSub) {
allMonitorsSub === null || allMonitorsSub === void 0 ? void 0 : allMonitorsSub.unsubscribe();
allMonitorsSub = undefined;
}
//# sourceMappingURL=processUserActionEventHandler.js.map