UNPKG

@atlaskit/editor-plugin-rule

Version:

Rule plugin for @atlaskit/editor-core

144 lines (143 loc) • 6.54 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.updateHorizontalRuleWeight = exports.updateHorizontalRuleStyle = exports.updateHorizontalRuleColor = exports.removeHorizontalRule = exports.insertHorizontalRule = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _enums = require("@atlaskit/editor-common/analytics/types/enums"); var _utils = require("@atlaskit/editor-prosemirror/utils"); var _constants = require("../ui/constants"); var _inputRule = require("./input-rule"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var insertHorizontalRule = exports.insertHorizontalRule = function insertHorizontalRule(editorAnalyticsAPI) { return function (inputMethod) { return function (state, dispatch) { var tr = (0, _inputRule.createHorizontalRule)(state, state.selection.from, state.selection.to, inputMethod, editorAnalyticsAPI); if (tr) { if (dispatch) { dispatch(tr); } return true; } return false; }; }; }; var removeHorizontalRule = exports.removeHorizontalRule = function removeHorizontalRule(editorAnalyticsAPI) { return function (state, dispatch) { var rule = state.schema.nodes.rule; if (!(0, _utils.findSelectedNodeOfType)(rule)(state.selection)) { return false; } if (dispatch) { var deleteTr = (0, _utils.removeSelectedNode)(state.tr); var payload = { action: _enums.ACTION.DELETED, actionSubject: _enums.ACTION_SUBJECT.DIVIDER, attributes: { inputMethod: _enums.INPUT_METHOD.FLOATING_TB }, eventType: _enums.EVENT_TYPE.TRACK }; editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(deleteTr); dispatch(deleteTr); } return true; }; }; var updateHorizontalRuleWeight = exports.updateHorizontalRuleWeight = function updateHorizontalRuleWeight(weight, editorAnalyticsAPI) { return function (state, dispatch) { var _selectedRule$node$at; var rule = state.schema.nodes.rule; var selectedRule = (0, _utils.findSelectedNodeOfType)(rule)(state.selection); if (!selectedRule) { return false; } var previousWeight = (_selectedRule$node$at = selectedRule.node.attrs.weight) !== null && _selectedRule$node$at !== void 0 ? _selectedRule$node$at : _constants.DEFAULT_DIVIDER_WEIGHT; if (previousWeight === weight) { return true; } if (dispatch) { var updateTr = state.tr.setNodeMarkup(selectedRule.pos, undefined, _objectSpread(_objectSpread({}, selectedRule.node.attrs), {}, { weight: weight })); editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({ action: _enums.ACTION.UPDATED, actionSubject: _enums.ACTION_SUBJECT.DIVIDER, attributes: { inputMethod: _enums.INPUT_METHOD.FLOATING_TB, previousWeight: previousWeight, weight: weight }, eventType: _enums.EVENT_TYPE.TRACK })(updateTr); dispatch(updateTr); } return true; }; }; var updateHorizontalRuleStyle = exports.updateHorizontalRuleStyle = function updateHorizontalRuleStyle(style, editorAnalyticsAPI) { return function (state, dispatch) { var _selectedRule$node$at2; var rule = state.schema.nodes.rule; var selectedRule = (0, _utils.findSelectedNodeOfType)(rule)(state.selection); if (!selectedRule) { return false; } var previousStyle = (_selectedRule$node$at2 = selectedRule.node.attrs.style) !== null && _selectedRule$node$at2 !== void 0 ? _selectedRule$node$at2 : _constants.DEFAULT_DIVIDER_STYLE; if (previousStyle === style) { return true; } if (dispatch) { var updateTr = state.tr.setNodeMarkup(selectedRule.pos, undefined, _objectSpread(_objectSpread({}, selectedRule.node.attrs), {}, { style: style })); editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({ action: _enums.ACTION.UPDATED, actionSubject: _enums.ACTION_SUBJECT.DIVIDER, attributes: { inputMethod: _enums.INPUT_METHOD.FLOATING_TB, previousStyle: previousStyle, style: style }, eventType: _enums.EVENT_TYPE.TRACK })(updateTr); dispatch(updateTr); } return true; }; }; var updateHorizontalRuleColor = exports.updateHorizontalRuleColor = function updateHorizontalRuleColor(color, editorAnalyticsAPI) { return function (state, dispatch) { var rule = state.schema.nodes.rule; var selectedRule = (0, _utils.findSelectedNodeOfType)(rule)(state.selection); if (!selectedRule) { return false; } var defaultColor = "var(--ds-border, #0B120E24)"; var previousColor = typeof selectedRule.node.attrs.color === 'string' ? selectedRule.node.attrs.color : null; var updatedColor = color === defaultColor ? null : color; if (previousColor === updatedColor) { return true; } if (dispatch) { var updateTr = state.tr.setNodeMarkup(selectedRule.pos, undefined, _objectSpread(_objectSpread({}, selectedRule.node.attrs), {}, { color: updatedColor })); editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({ action: _enums.ACTION.UPDATED, actionSubject: _enums.ACTION_SUBJECT.DIVIDER, attributes: { inputMethod: _enums.INPUT_METHOD.FLOATING_TB, previousColor: previousColor, color: updatedColor }, eventType: _enums.EVENT_TYPE.TRACK })(updateTr); dispatch(updateTr); } return true; }; };