UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

64 lines 2.13 kB
import { UIAnalyticsEvent } from '@atlaskit/analytics-next'; import { ACTION, INPUT_METHOD } from '@atlaskit/editor-common/analytics'; /** * If the metadata is for a history event, * returns undo/redo instead of instead of what fn(metadata) would have otherwise * returned */ var withHistoryMethod = function withHistoryMethod(fn) { return function (metadata) { var isUndo = metadata.isUndo, isRedo = metadata.isRedo; if (isUndo) { return 'undo'; } if (isRedo) { return 'redo'; } return fn(metadata); }; }; export var getMethod = withHistoryMethod(function (_ref) { var _payload; var inputMethod = _ref.inputMethod, sourceEvent = _ref.sourceEvent; inputMethod = inputMethod !== null && inputMethod !== void 0 ? inputMethod : sourceEvent === null || sourceEvent === void 0 || (_payload = sourceEvent.payload) === null || _payload === void 0 || (_payload = _payload.attributes) === null || _payload === void 0 ? void 0 : _payload.inputMethod; switch (inputMethod) { case INPUT_METHOD.CLIPBOARD: return 'editor_paste'; case INPUT_METHOD.FLOATING_TB: return 'editor_floatingToolbar'; case INPUT_METHOD.AUTO_DETECT: case INPUT_METHOD.FORMATTING: return 'editor_type'; case INPUT_METHOD.TYPEAHEAD: return 'linkpicker_searchResult'; case INPUT_METHOD.MANUAL: return 'linkpicker_manual'; case INPUT_METHOD.DATASOURCE: return 'datasource_config'; default: return 'unknown'; } }); export var getUpdateType = withHistoryMethod(function (_ref2) { var action = _ref2.action; switch (action) { case ACTION.CHANGED_TYPE: return 'display_update'; case ACTION.UPDATED: return 'link_update'; default: return 'unknown'; } }); export var getDeleteType = withHistoryMethod(function (_ref3) { var action = _ref3.action; if (action === ACTION.UNLINK) { return 'unlink'; } return 'delete'; }); export var getSourceEventFromMetadata = function getSourceEventFromMetadata(metadata) { return metadata.sourceEvent instanceof UIAnalyticsEvent ? metadata.sourceEvent : null; };