@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
51 lines (47 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.status = void 0;
var _uuid = require("../../utils/uuid");
var _nodeTypes = require("../../next-schema/generated/nodeTypes");
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
/**
* @name status_node
*/
var status = exports.status = (0, _nodeTypes.status)({
parseDOM: [{
tag: 'span[data-node-type="status"]',
getAttrs: function getAttrs(domNode) {
// eslint-disable-next-line @atlaskit/editor/no-as-casting
var dom = domNode;
// @ts-ignore TS1501: This regular expression flag is only available when targeting 'es6' or later.
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
var textContent = dom.textContent.replace(/\n/, '').trim();
// Prefer data-text attribute over textContent
// When NodeView DOM is copied, inner text content may not be preserved
var text = (0, _expValEquals.expValEquals)('platform_editor_copy_paste_issue_fix', 'isEnabled', true) ? dom.getAttribute('data-text') || textContent : textContent;
return {
text: text,
color: dom.getAttribute('data-color'),
localId: _uuid.uuid.generate(),
style: dom.getAttribute('data-style')
};
}
}],
toDOM: function toDOM(node) {
var _node$attrs = node.attrs,
text = _node$attrs.text,
color = _node$attrs.color,
localId = _node$attrs.localId,
style = _node$attrs.style;
var attrs = {
'data-node-type': 'status',
'data-color': color,
'data-local-id': localId,
'data-style': style,
contenteditable: 'false'
};
return ['span', attrs, text];
}
});