UNPKG

@atlaskit/editor-plugin-analytics

Version:

Analytics plugin for @atlaskit/editor-core

49 lines (46 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAttachPayloadIntoTransaction = void 0; var _steps = require("@atlaskit/adf-schema/steps"); var _analytics = require("@atlaskit/editor-common/analytics"); var _editorStateContext = require("./editor-state-context"); var _mapAttributes = require("./map-attributes"); var actionsToIgnore = [_analytics.ACTION.INVOKED, _analytics.ACTION.OPENED]; var createAttachPayloadIntoTransaction = exports.createAttachPayloadIntoTransaction = function createAttachPayloadIntoTransaction(selection) { return function (_ref) { var payload = _ref.payload, tr = _ref.tr, channel = _ref.channel; return attachPayloadIntoTransaction({ payload: payload, selection: selection, tr: tr, channel: channel }); }; }; // This utils was taken as reference in packages/editor/editor-plugin-ai/src/analytics/utils.ts // to create new util attachPayloadIntoTransaction in above file. // If you make a change here, please review attachPayloadIntoTransaction in above // file and update it as well if needed. var attachPayloadIntoTransaction = function attachPayloadIntoTransaction(_ref2) { var payload = _ref2.payload, selection = _ref2.selection, tr = _ref2.tr, channel = _ref2.channel; payload = (0, _editorStateContext.getStateContext)(selection, payload, tr); payload = (0, _mapAttributes.mapActionSubjectIdToAttributes)(payload); var storedMarks = tr.storedMarks; var pos = tr.mapping.map(selection.$from.pos, -1); tr.step(new _steps.AnalyticsStep([{ payload: payload, channel: channel }], actionsToIgnore, pos) // We need to create the step based on a position, this prevent split history for relative changes. ); // When you add a new step all the storedMarks are removed it if (storedMarks) { tr.setStoredMarks(storedMarks); } };