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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 47x 47x 47x 32x 32x 32x 25x 19x 19x 15x 1x 25x 34x 7x 7x 6x 5x 1x 1x 7x 2x 47x 38x 3x 37x 1x 36x 36x 2x 34x 47x 47x 36x 36x 26x 10x 10x 9x 1x 1x 1x 1x 1x | import { isString, hyphenate, capitalize, isArray } from '@vue/shared' import { camelize } from '@vue/runtime-core' type Style = string | Record<string, string | string[]> | null export function patchStyle(el: Element, prev: Style, next: Style) { const style = (el as HTMLElement).style const isCssString = isString(next) if (next && !isCssString) { if (prev) { Iif (isString(prev)) { style.cssText = '' } else { for (const key in prev) { if (next[key] == null) { setStyle(style, key, ''); } } } } for (const key in next) { setStyle(style, key, next[key]) } } else { const currentDisplay = style.display if (isCssString) { if (prev !== next) { style.cssText = next as string } } else if (prev) { el.removeAttribute('style') } // indicates that the `display` of the element is controlled by `v-show`, // so we always keep the current `display` value regardless of the `style` // value, thus handing over control to `v-show`. if ('_vod' in el) { style.display = currentDisplay } } } const importantRE = /\s*!important$/ function setStyle( style: CSSStyleDeclaration, name: string, val: string | string[] ) { if (isArray(val)) { val.forEach(v => setStyle(style, name, v)) } else { if (name.startsWith('--')) { // custom property definition style.setProperty(name, val) } else { const prefixed = autoPrefix(style, name) if (importantRE.test(val)) { // !important style.setProperty( hyphenate(prefixed), val.replace(importantRE, ''), 'important' ) } else { style[prefixed as any] = val } } } } const prefixes = ['Webkit', 'Moz', 'ms'] const prefixCache: Record<string, string> = {} function autoPrefix(style: CSSStyleDeclaration, rawName: string): string { const cached = prefixCache[rawName] if (cached) { return cached } let name = camelize(rawName) if (name !== 'filter' && name in style) { return (prefixCache[rawName] = name) } name = capitalize(name) for (let i = 0; i < prefixes.length; i++) { const prefixed = prefixes[i] + name if (prefixed in style) { return (prefixCache[rawName] = prefixed) } } return rawName } |