@lexical/overflow
Version:
This package contains selection overflow helpers and nodes for Lexical.
63 lines (57 loc) • 1.51 kB
JavaScript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
;
var lexical = require('lexical');
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
/** @noInheritDoc */
class OverflowNode extends lexical.ElementNode {
/** @internal */
$config() {
return this.config('overflow', {
$transform(node) {
if (node.isEmpty()) {
node.remove();
}
},
extends: lexical.ElementNode
});
}
createDOM(config) {
const div = document.createElement('span');
const className = config.theme.characterLimit;
if (typeof className === 'string') {
div.className = className;
}
return div;
}
updateDOM(prevNode, dom) {
return false;
}
insertNewAfter(selection, restoreSelection = true) {
const parent = this.getParentOrThrow();
return parent.insertNewAfter(selection, restoreSelection);
}
excludeFromCopy() {
return true;
}
}
function $createOverflowNode() {
return lexical.$applyNodeReplacement(new OverflowNode());
}
function $isOverflowNode(node) {
return node instanceof OverflowNode;
}
exports.$createOverflowNode = $createOverflowNode;
exports.$isOverflowNode = $isOverflowNode;
exports.OverflowNode = OverflowNode;