@atlaskit/adf-schema
Version:
Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs
36 lines (34 loc) • 946 B
JavaScript
import { syncBlock as syncBlockFactory } from '../../next-schema/generated/nodeTypes';
import { uuid } from '../../utils';
/**
* Represents a block node that is designed to be synchronized
* with an external resource across different products.
* @name syncBlock_node
*/
export const syncBlock = syncBlockFactory({
parseDOM: [{
tag: 'div[data-sync-block]',
getAttrs: domNode => {
// eslint-disable-next-line @atlaskit/editor/no-as-casting
const dom = domNode;
const attrs = {
localId: dom.getAttribute('data-local-id') || uuid.generate(),
resourceId: dom.getAttribute('data-resource-id') || ''
};
return attrs;
}
}],
toDOM(node) {
const {
localId,
resourceId
} = node.attrs;
const name = 'div';
const attrs = {
'data-sync-block': '',
'data-local-id': localId,
'data-resource-id': resourceId
};
return [name, attrs];
}
});