heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.map

1 line
7.6 KiB
Plaintext

{"version":3,"file":"complex.mjs","sources":["../../../../src/utils/mix/complex.ts"],"sourcesContent":["import { pipe, warning } from \"motion-utils\"\nimport { AnyResolvedKeyframe } from \"../../animation/types\"\nimport { isCSSVariableToken } from \"../../animation/utils/is-css-variable\"\nimport { color } from \"../../value/types/color\"\nimport {\n analyseComplexValue,\n complex,\n ComplexValueInfo,\n ComplexValues,\n} from \"../../value/types/complex\"\nimport { HSLA, RGBA } from \"../../value/types/types\"\nimport { mixColor } from \"./color\"\nimport { mixImmediate } from \"./immediate\"\nimport { mixNumber as mixNumberImmediate } from \"./number\"\nimport { invisibleValues, mixVisibility } from \"./visibility\"\n\ntype MixableArray = Array<number | RGBA | HSLA | string>\ninterface MixableObject {\n [key: string]: AnyResolvedKeyframe | RGBA | HSLA\n}\n\nfunction mixNumber(a: number, b: number) {\n return (p: number) => mixNumberImmediate(a, b, p)\n}\n\nexport function getMixer<T>(a: T) {\n if (typeof a === \"number\") {\n return mixNumber\n } else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex\n } else if (Array.isArray(a)) {\n return mixArray\n } else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject\n }\n\n return mixImmediate\n}\n\nexport function mixArray(a: MixableArray, b: MixableArray) {\n const output = [...a]\n const numValues = output.length\n\n const blendValue = a.map((v, i) => getMixer(v)(v as any, b[i] as any))\n\n return (p: number) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p) as any\n }\n return output\n }\n}\n\nexport function mixObject(a: MixableObject, b: MixableObject) {\n const output = { ...a, ...b }\n const blendValue: { [key: string]: (v: number) => any } = {}\n\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(\n a[key] as any,\n b[key] as any\n ) as any\n }\n }\n\n return (v: number) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v)\n }\n return output\n }\n}\n\nfunction matchOrder(\n origin: ComplexValueInfo,\n target: ComplexValueInfo\n): ComplexValues {\n const orderedOrigin: ComplexValues = []\n\n const pointers = { color: 0, var: 0, number: 0 }\n\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i]\n const originIndex = origin.indexes[type][pointers[type]]\n const originValue = origin.values[originIndex] ?? 0\n\n orderedOrigin[i] = originValue\n\n pointers[type]++\n }\n\n return orderedOrigin\n}\n\nexport const mixComplex = (\n origin: AnyResolvedKeyframe,\n target: AnyResolvedKeyframe\n) => {\n const template = complex.createTransformer(target)\n const originStats = analyseComplexValue(origin)\n const targetStats = analyseComplexValue(target)\n const canInterpolate =\n originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length\n\n if (canInterpolate) {\n if (\n (invisibleValues.has(origin as string) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target as string) &&\n !originStats.values.length)\n ) {\n return mixVisibility(origin as string, target as string)\n }\n\n return pipe(\n mixArray(matchOrder(originStats, targetStats), targetStats.values),\n template\n )\n } else {\n warning(\n true,\n `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,\n \"complex-values-different\"\n )\n\n return mixImmediate(origin, target)\n }\n}\n"],"names":["mixNumberImmediate"],"mappings":"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"}