@atlaskit/editor-plugin-status
Version:
Status plugin for @atlaskit/editor-core
29 lines (28 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isStatusTurnIntoHidden = exports.canTurnIntoStatus = void 0;
var _state = require("@atlaskit/editor-prosemirror/state");
var MAX_STATUS_TURN_INTO_CHARS = 30;
var SUPPORTED_SOURCE_TYPES = new Set(['paragraph', 'heading']);
var getTurnIntoStatusSourceNode = function getTurnIntoStatusSourceNode(selection) {
if (!selection || !(selection instanceof _state.NodeSelection)) {
return null;
}
return selection.node;
};
var canTurnIntoStatus = exports.canTurnIntoStatus = function canTurnIntoStatus(node) {
if (!node || !SUPPORTED_SOURCE_TYPES.has(node.type.name)) {
return false;
}
for (var i = 0; i < node.childCount; i++) {
if (!node.child(i).isText) {
return false;
}
}
return node.textContent.trim().length <= MAX_STATUS_TURN_INTO_CHARS;
};
var isStatusTurnIntoHidden = exports.isStatusTurnIntoHidden = function isStatusTurnIntoHidden(selection) {
return !canTurnIntoStatus(getTurnIntoStatusSourceNode(selection));
};