Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 43x 43x 7x 7x 7x 14x 7x 7x 7x 7x 7x 32x 3x 3x 3x 1x 1x 32x 7x 32x 22x 10x 17x 1x 1x 1x 2x 2x 1x 24x 24x 24x 24x | import { getCurrentInstance, warn, VNode, Fragment, Static, watchPostEffect, onMounted, onUnmounted } from '@vue/runtime-core' import { ShapeFlags } from '@vue/shared' /** * Runtime helper for SFC's CSS variable injection feature. * @private */ export function useCssVars(getter: (ctx: any) => Record<string, string>) { Iif (!__BROWSER__ && !__TEST__) return const instance = getCurrentInstance() /* istanbul ignore next */ if (!instance) { __DEV__ && warn(`useCssVars is called without current active component instance.`) return } const setVars = () => setVarsOnVNode(instance.subTree, getter(instance.proxy!)) watchPostEffect(setVars) onMounted(() => { const ob = new MutationObserver(setVars) ob.observe(instance.subTree.el!.parentNode, { childList: true }) onUnmounted(() => ob.disconnect()) }) } function setVarsOnVNode(vnode: VNode, vars: Record<string, string>) { if (__FEATURE_SUSPENSE__ && vnode.shapeFlag & ShapeFlags.SUSPENSE) { const suspense = vnode.suspense! vnode = suspense.activeBranch! if (suspense.pendingBranch && !suspense.isHydrating) { suspense.effects.push(() => { setVarsOnVNode(suspense.activeBranch!, vars) }) } } // drill down HOCs until it's a non-component vnode while (vnode.component) { vnode = vnode.component.subTree } if (vnode.shapeFlag & ShapeFlags.ELEMENT && vnode.el) { setVarsOnNode(vnode.el as Node, vars) } else if (vnode.type === Fragment) { ;(vnode.children as VNode[]).forEach(c => setVarsOnVNode(c, vars)) } else if (vnode.type === Static) { let { el, anchor } = vnode while (el) { setVarsOnNode(el as Node, vars) if (el === anchor) break el = el.nextSibling } } } function setVarsOnNode(el: Node, vars: Record<string, string>) { if (el.nodeType === 1) { const style = (el as HTMLElement).style for (const key in vars) { style.setProperty(`--${key}`, vars[key]) } } } |