UNPKG

framer-motion

Version:

A simple and powerful JavaScript animation library

43 lines (40 loc) 1.71 kB
import { measureViewportBox } from '../../projection/utils/measure.mjs'; import { DOMVisualElement } from '../dom/DOMVisualElement.mjs'; import { isCSSVariableName } from '../dom/utils/is-css-variable.mjs'; import { buildHTMLStyles } from './utils/build-styles.mjs'; import { transformProps } from './utils/keys-transform.mjs'; import { readTransformValue } from './utils/parse-transform.mjs'; import { renderHTML } from './utils/render.mjs'; import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs'; function getComputedStyle(element) { return window.getComputedStyle(element); } class HTMLVisualElement extends DOMVisualElement { constructor() { super(...arguments); this.type = "html"; this.renderInstance = renderHTML; } readValueFromInstance(instance, key) { if (transformProps.has(key)) { return readTransformValue(instance, key); } else { const computedStyle = getComputedStyle(instance); const value = (isCSSVariableName(key) ? computedStyle.getPropertyValue(key) : computedStyle[key]) || 0; return typeof value === "string" ? value.trim() : value; } } measureInstanceViewportBox(instance, { transformPagePoint }) { return measureViewportBox(instance, transformPagePoint); } build(renderState, latestValues, props) { buildHTMLStyles(renderState, latestValues, props.transformTemplate); } scrapeMotionValuesFromProps(props, prevProps, visualElement) { return scrapeMotionValuesFromProps(props, prevProps, visualElement); } } export { HTMLVisualElement, getComputedStyle };