UNPKG

@atlaskit/editor-plugin-block-controls

Version:

Block controls plugin for @atlaskit/editor-core

67 lines (64 loc) 3.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getMultiSelectAnalyticsAttributes = exports.fireInsertLayoutAnalytics = exports.attachMoveNodeAnalytics = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _analytics = require("@atlaskit/editor-common/analytics"); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var attachMoveNodeAnalytics = exports.attachMoveNodeAnalytics = function attachMoveNodeAnalytics(tr, inputMethod, fromDepth, fromNodeType, toDepth, toNodeType, isSameParent, api, fromNodeTypes, hasSelectedMultipleNodes) { var _api$analytics; return api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 ? void 0 : _api$analytics.attachAnalyticsEvent({ eventType: _analytics.EVENT_TYPE.TRACK, action: _analytics.ACTION.MOVED, actionSubject: _analytics.ACTION_SUBJECT.ELEMENT, actionSubjectId: _analytics.ACTION_SUBJECT_ID.ELEMENT_DRAG_HANDLE, attributes: { nodeDepth: fromDepth, nodeType: fromNodeType, nodeTypes: fromNodeTypes, hasSelectedMultipleNodes: hasSelectedMultipleNodes, destinationNodeDepth: toDepth, destinationNodeType: toNodeType, isSameParent: isSameParent, inputMethod: inputMethod } })(tr); }; var fireInsertLayoutAnalytics = exports.fireInsertLayoutAnalytics = function fireInsertLayoutAnalytics(tr, api, nodeTypes, hasSelectedMultipleNodes, columnCount) { var _api$analytics2; api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || (_api$analytics2 = _api$analytics2.actions) === null || _api$analytics2 === void 0 || _api$analytics2.attachAnalyticsEvent({ action: _analytics.ACTION.INSERTED, actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT, actionSubjectId: _analytics.ACTION_SUBJECT_ID.LAYOUT, attributes: { inputMethod: _analytics.INPUT_METHOD.DRAG_AND_DROP, nodeTypes: nodeTypes, hasSelectedMultipleNodes: hasSelectedMultipleNodes, columnCount: columnCount }, eventType: _analytics.EVENT_TYPE.TRACK })(tr); }; /** * Given a range, return distinctive types of node and whether there are multiple nodes in the range */ var getMultiSelectAnalyticsAttributes = exports.getMultiSelectAnalyticsAttributes = function getMultiSelectAnalyticsAttributes(tr, anchor, head) { var nodeTypes = []; var from = Math.min(anchor, head); var to = Math.max(anchor, head); tr.doc.nodesBetween(from, to, function (node, pos) { if (pos < from) { // ignore parent node return true; } nodeTypes.push(node.type.name); // only care about the top level (relatively in the range) nodes return false; }); return { nodeTypes: (0, _platformFeatureFlags.fg)('platform_editor_track_node_types') ? (0, _toConsumableArray2.default)(new Set(nodeTypes)).sort().join(',') : undefined, hasSelectedMultipleNodes: nodeTypes.length > 1 }; };