| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- function pre(vnode, newVnode) {
- const attachData = vnode.data.attachData;
- // Copy created placeholder and real element from old vnode
- newVnode.data.attachData.placeholder = attachData.placeholder;
- newVnode.data.attachData.real = attachData.real;
- // Mount real element in vnode so the patch process operates on it
- vnode.elm = vnode.data.attachData.real;
- }
- function post(_, vnode) {
- // Mount dummy placeholder in vnode so potential reorders use it
- vnode.elm = vnode.data.attachData.placeholder;
- }
- function destroy(vnode) {
- // Remove placeholder
- if (vnode.elm !== undefined) {
- vnode.elm.parentNode.removeChild(vnode.elm);
- }
- // Remove real element from where it was inserted
- vnode.elm = vnode.data.attachData.real;
- }
- function create(_, vnode) {
- const real = vnode.elm;
- const attachData = vnode.data.attachData;
- const placeholder = document.createElement("span");
- // Replace actual element with dummy placeholder
- // Snabbdom will then insert placeholder instead
- vnode.elm = placeholder;
- attachData.target.appendChild(real);
- attachData.real = real;
- attachData.placeholder = placeholder;
- }
- export function attachTo(target, vnode) {
- if (vnode.data === undefined)
- vnode.data = {};
- if (vnode.data.hook === undefined)
- vnode.data.hook = {};
- const data = vnode.data;
- const hook = vnode.data.hook;
- data.attachData = { target: target, placeholder: undefined, real: undefined };
- hook.create = create;
- hook.prepatch = pre;
- hook.postpatch = post;
- hook.destroy = destroy;
- return vnode;
- }
- //# sourceMappingURL=attachto.js.map
|