/
githubmirror
/
gutenberg
Обзор
Документация
Войти
/
githubmirror
/
gutenberg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
trunk
packages/dom/src/test/utils/create-element.js
55 строк
1 KB
Ella van Durpe
Make global dependencies relative when relevant to DOM (#25332)
21 сен 2020, 16:39
Не верифицирован
21 сен 2020, 16:39
9b49a5f
Код
Авторство
О чём код?
/** * Given an element type, returns an HTMLElement with an emulated layout, * since JSDOM does have its own internal layout engine. * * @param {string} type Element type. * * @return {HTMLElement} Layout-emulated element. */ export default function createElement( type ) { const element = document.createElement( type ); const ifNotHidden = ( value, elseValue ) => function () { let isHidden = false; let node = this; do { isHidden = node.style.display === 'none' || node.style.visibility === 'hidden'; node = node.parentNode; } while ( ! isHidden && node && node.nodeType === node.ELEMENT_NODE ); return isHidden ? elseValue : value; }; Object.defineProperties( element, { offsetHeight: { get: ifNotHidden( 10, 0 ), }, offsetWidth: { get: ifNotHidden( 10, 0 ), }, } ); element.getClientRects = ifNotHidden( [ { width: 10, height: 10, top: 0, right: 10, bottom: 10, left: 0, }, ], [] ); return element; }