UNPKG

draft-js-modifiers

Version:
42 lines (31 loc) 1.69 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _draftJs = require('draft-js'); var _getCurrentBlock = require('./utils/getCurrentBlock'); var _getCurrentBlock2 = _interopRequireDefault(_getCurrentBlock); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var removeInlineStyles = function removeInlineStyles(editorState) { var inlineStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var selection = editorState.getSelection(); var content = editorState.getCurrentContent(); var newContent = void 0; if (selection.isCollapsed()) { var block = (0, _getCurrentBlock2.default)(editorState); var updatedCharacterList = block.getCharacterList().map(function (c) { return inlineStyles.reduce(function (characterMetadata, style) { return _draftJs.CharacterMetadata.removeStyle(characterMetadata, style); }, c); }); var updatedBlock = block.set('characterList', updatedCharacterList); newContent = content.merge({ blockMap: content.getBlockMap().merge(_defineProperty({}, block.getKey(), updatedBlock)) }); } else { newContent = inlineStyles.reduce(function (contentState, style) { return _draftJs.Modifier.removeInlineStyle(contentState, selection, style); }, content); } return _draftJs.EditorState.push(editorState, newContent, 'change-inline-style'); }; exports.default = removeInlineStyles;