UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

42 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUserEventHandler = getUserEventHandler; exports.getUserActionNameFromElement = getUserActionNameFromElement; exports.unsubscribeAllMonitors = unsubscribeAllMonitors; const const_1 = require("./const"); const userActionController_1 = require("./userActionController"); const util_1 = require("./util"); function getUserEventHandler(faro) { const { api, config } = faro; function processUserEvent(event) { var _a, _b; const 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; } const userAction = api.startUserAction(userActionName, {}, { triggerName: event.type }); if (userAction) { processUserActionStarted(userAction); } } function processUserActionStarted(userAction) { const internalUserAction = userAction; new userActionController_1.UserActionController(internalUserAction).attach(); } return { processUserEvent, processUserActionStarted }; } function getUserActionNameFromElement(element, dataAttributeName) { const parsedDataAttributeName = (0, util_1.convertDataAttributeName)(dataAttributeName); const dataset = element.dataset; for (const key in dataset) { if (key === parsedDataAttributeName) { return dataset[key]; } } return undefined; } function unsubscribeAllMonitors(allMonitorsSub) { allMonitorsSub === null || allMonitorsSub === void 0 ? void 0 : allMonitorsSub.unsubscribe(); } //# sourceMappingURL=processUserActionEventHandler.js.map