UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

37 lines 1.66 kB
import { userActionDataAttributeParsed as userActionDataAttribute } from './const'; import { UserActionController } from './userActionController'; import { convertDataAttributeName } from './util'; export 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 : userActionDataAttribute); // 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(internalUserAction).attach(); } return { processUserEvent, processUserActionStarted }; } export function getUserActionNameFromElement(element, dataAttributeName) { const parsedDataAttributeName = convertDataAttributeName(dataAttributeName); const dataset = element.dataset; for (const key in dataset) { if (key === parsedDataAttributeName) { return dataset[key]; } } return undefined; } export function unsubscribeAllMonitors(allMonitorsSub) { allMonitorsSub === null || allMonitorsSub === void 0 ? void 0 : allMonitorsSub.unsubscribe(); } //# sourceMappingURL=processUserActionEventHandler.js.map