Whether an element was created by the MAIDR core, or lives inside one that
was. Only the ROOT of a cloned subtree carries the ownership stamp, so the
closest() ancestor check is required to also exclude descendants of a
cloned container.
Binders must skip owned elements whenever they read the live DOM: while a
chart is focused, the core keeps hidden cloneNode copies of marks (and
potentially whole panels) right next to the originals. Those clones match
the same user selectors but carry no D3 __data__ (cloneNode does not copy
JS expando properties), so a rebind that picks them up either doubles the
element count or throws a "no D3-bound data" error.
Whether an element was created by the MAIDR core, or lives inside one that was. Only the ROOT of a cloned subtree carries the ownership stamp, so the
closest()ancestor check is required to also exclude descendants of a cloned container.Binders must skip owned elements whenever they read the live DOM: while a chart is focused, the core keeps hidden
cloneNodecopies of marks (and potentially whole panels) right next to the originals. Those clones match the same user selectors but carry no D3__data__(cloneNode does not copy JS expando properties), so a rebind that picks them up either doubles the element count or throws a "no D3-bound data" error.