UNPKG

framer-motion

Version:

A simple and powerful JavaScript animation library

1 lines 2.23 kB
{"version":3,"file":"get-variant-context.mjs","sources":["../../../../src/render/utils/get-variant-context.ts"],"sourcesContent":["import { VisualElement } from \"../VisualElement\"\nimport { isVariantLabel } from \"./is-variant-label\"\nimport { variantProps } from \"./variant-props\"\n\nconst numVariantProps = variantProps.length\n\ntype VariantStateContext = {\n initial?: string | string[]\n animate?: string | string[]\n exit?: string | string[]\n whileHover?: string | string[]\n whileDrag?: string | string[]\n whileFocus?: string | string[]\n whileTap?: string | string[]\n}\n\nexport function getVariantContext(\n visualElement?: VisualElement\n): undefined | VariantStateContext {\n if (!visualElement) return undefined\n\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {}\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial as any\n }\n return context\n }\n\n const context = {}\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i] as keyof typeof context\n const prop = visualElement.props[name]\n\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop\n }\n }\n\n return context\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAA;AAYrC,SAAU,iBAAiB,CAC7B,aAA6B,EAAA;AAE7B,IAAA,IAAI,CAAC,aAAa;AAAE,QAAA,OAAO,SAAS,CAAA;AAEpC,IAAA,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM;cAC9B,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;cAC7C,EAAE,CAAA;QACR,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;YAC3C,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAc,CAAA;SACvD;AACD,QAAA,OAAO,OAAO,CAAA;KACjB;IAED,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACtC,QAAA,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAyB,CAAA;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE;AACxC,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;SACvB;KACJ;AAED,IAAA,OAAO,OAAO,CAAA;AAClB;;;;"}