Trying to ‘cache’ the DOM node in the
attrs object is not going to work. Attributes should be a JSON-serializeable, plain-data representation of the node. The editor will only render the node once for each time it occurs anyway, so caching its DOM representation is completely unneccesary.
Selected nodes can always be dragged, and the
draggable config only has an effect when the node is directly dragged. So if you don’t want to make such nodes draggable, you also have to set them to have
selectable: false. However, from what I can see, I’m not sure why you’d want to prevent dragging to begin with.
I did find a bug in prosemirror-view while reproducing this, and will release an updated version in a moment.
Generally, your node definition looks like a bit of a mess (
fromDOM fails to fill in required attributes, for example), and it might help to read the docs on node specs a bit closer.
Neither are relevant for leaf nodes (nodes without child nodes) — atom is implicitly true for such nodes, and isolating only has an effect when the node contains children.