{"ast":null,"code":"import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = value => {\n  return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n  current: undefined\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n  /**\n   * @param init - The initiating value\n   * @param config - Optional configuration options\n   *\n   * -  `transformer`: A function to transform incoming values with.\n   *\n   * @internal\n   */\n  constructor(init) {\n    var _this = this;\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    /**\n     * This will be replaced by the build step with the latest version number.\n     * When MotionValues are provided to motion components, warn if versions are mixed.\n     */\n    this.version = \"11.0.5\";\n    /**\n     * Tracks whether this value can output a velocity. Currently this is only true\n     * if the value is numerical, but we might be able to widen the scope here and support\n     * other value types.\n     *\n     * @internal\n     */\n    this.canTrackVelocity = false;\n    /**\n     * An object containing a SubscriptionManager for each active event.\n     */\n    this.events = {};\n    this.updateAndNotify = function (v) {\n      let render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      const currentTime = time.now();\n      /**\n       * If we're updating the value during another frame or eventloop\n       * than the previous frame, then the we set the previous frame value\n       * to current.\n       */\n      if (_this.updatedAt !== currentTime) {\n        _this.setPrevFrameValue();\n      }\n      _this.prev = _this.current;\n      _this.setCurrent(v);\n      // Update update subscribers\n      if (_this.current !== _this.prev && _this.events.change) {\n        _this.events.change.notify(_this.current);\n      }\n      // Update render subscribers\n      if (render && _this.events.renderRequest) {\n        _this.events.renderRequest.notify(_this.current);\n      }\n    };\n    this.hasAnimated = false;\n    this.setCurrent(init);\n    this.canTrackVelocity = isFloat(this.current);\n    this.owner = options.owner;\n  }\n  setCurrent(current) {\n    this.current = current;\n    this.updatedAt = time.now();\n  }\n  setPrevFrameValue() {\n    let prevFrameValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.current;\n    this.prevFrameValue = prevFrameValue;\n    this.prevUpdatedAt = this.updatedAt;\n  }\n  /**\n   * Adds a function that will be notified when the `MotionValue` is updated.\n   *\n   * It returns a function that, when called, will cancel the subscription.\n   *\n   * When calling `onChange` inside a React component, it should be wrapped with the\n   * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n   * from the `useEffect` function to ensure you don't add duplicate subscribers..\n   *\n   * ```jsx\n   * export const MyComponent = () => {\n   *   const x = useMotionValue(0)\n   *   const y = useMotionValue(0)\n   *   const opacity = useMotionValue(1)\n   *\n   *   useEffect(() => {\n   *     function updateOpacity() {\n   *       const maxXY = Math.max(x.get(), y.get())\n   *       const newOpacity = transform(maxXY, [0, 100], [1, 0])\n   *       opacity.set(newOpacity)\n   *     }\n   *\n   *     const unsubscribeX = x.on(\"change\", updateOpacity)\n   *     const unsubscribeY = y.on(\"change\", updateOpacity)\n   *\n   *     return () => {\n   *       unsubscribeX()\n   *       unsubscribeY()\n   *     }\n   *   }, [])\n   *\n   *   return <motion.div style={{ x }} />\n   * }\n   * ```\n   *\n   * @param subscriber - A function that receives the latest value.\n   * @returns A function that, when called, will cancel this subscription.\n   *\n   * @deprecated\n   */\n  onChange(subscription) {\n    if (process.env.NODE_ENV !== \"production\") {\n      warnOnce(false, \"value.onChange(callback) is deprecated. Switch to value.on(\\\"change\\\", callback).\");\n    }\n    return this.on(\"change\", subscription);\n  }\n  on(eventName, callback) {\n    if (!this.events[eventName]) {\n      this.events[eventName] = new SubscriptionManager();\n    }\n    const unsubscribe = this.events[eventName].add(callback);\n    if (eventName === \"change\") {\n      return () => {\n        unsubscribe();\n        /**\n         * If we have no more change listeners by the start\n         * of the next frame, stop active animations.\n         */\n        frame.read(() => {\n          if (!this.events.change.getSize()) {\n            this.stop();\n          }\n        });\n      };\n    }\n    return unsubscribe;\n  }\n  clearListeners() {\n    for (const eventManagers in this.events) {\n      this.events[eventManagers].clear();\n    }\n  }\n  /**\n   * Attaches a passive effect to the `MotionValue`.\n   *\n   * @internal\n   */\n  attach(passiveEffect, stopPassiveEffect) {\n    this.passiveEffect = passiveEffect;\n    this.stopPassiveEffect = stopPassiveEffect;\n  }\n  /**\n   * Sets the state of the `MotionValue`.\n   *\n   * @remarks\n   *\n   * ```jsx\n   * const x = useMotionValue(0)\n   * x.set(10)\n   * ```\n   *\n   * @param latest - Latest value to set.\n   * @param render - Whether to notify render subscribers. Defaults to `true`\n   *\n   * @public\n   */\n  set(v) {\n    let render = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    if (!render || !this.passiveEffect) {\n      this.updateAndNotify(v, render);\n    } else {\n      this.passiveEffect(v, this.updateAndNotify);\n    }\n  }\n  setWithVelocity(prev, current, delta) {\n    this.set(current);\n    this.prev = undefined;\n    this.prevFrameValue = prev;\n    this.prevUpdatedAt = this.updatedAt - delta;\n  }\n  /**\n   * Set the state of the `MotionValue`, stopping any active animations,\n   * effects, and resets velocity to `0`.\n   */\n  jump(v) {\n    this.updateAndNotify(v);\n    this.prev = v;\n    this.prevUpdatedAt = this.prevFrameValue = undefined;\n    this.stop();\n    if (this.stopPassiveEffect) this.stopPassiveEffect();\n  }\n  /**\n   * Returns the latest state of `MotionValue`\n   *\n   * @returns - The latest state of `MotionValue`\n   *\n   * @public\n   */\n  get() {\n    if (collectMotionValues.current) {\n      collectMotionValues.current.push(this);\n    }\n    return this.current;\n  }\n  /**\n   * @public\n   */\n  getPrevious() {\n    return this.prev;\n  }\n  /**\n   * Returns the latest velocity of `MotionValue`\n   *\n   * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n   *\n   * @public\n   */\n  getVelocity() {\n    const currentTime = time.now();\n    if (!this.canTrackVelocity || this.prevFrameValue === undefined || currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n      return 0;\n    }\n    const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n    // Casts because of parseFloat's poor typing\n    return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);\n  }\n  /**\n   * Registers a new animation to control this `MotionValue`. Only one\n   * animation can drive a `MotionValue` at one time.\n   *\n   * ```jsx\n   * value.start()\n   * ```\n   *\n   * @param animation - A function that starts the provided animation\n   *\n   * @internal\n   */\n  start(startAnimation) {\n    this.stop();\n    return new Promise(resolve => {\n      this.hasAnimated = true;\n      this.animation = startAnimation(resolve);\n      if (this.events.animationStart) {\n        this.events.animationStart.notify();\n      }\n    }).then(() => {\n      if (this.events.animationComplete) {\n        this.events.animationComplete.notify();\n      }\n      this.clearAnimation();\n    });\n  }\n  /**\n   * Stop the currently active animation.\n   *\n   * @public\n   */\n  stop() {\n    if (this.animation) {\n      this.animation.stop();\n      if (this.events.animationCancel) {\n        this.events.animationCancel.notify();\n      }\n    }\n    this.clearAnimation();\n  }\n  /**\n   * Returns `true` if this value is currently animating.\n   *\n   * @public\n   */\n  isAnimating() {\n    return !!this.animation;\n  }\n  clearAnimation() {\n    delete this.animation;\n  }\n  /**\n   * Destroy and clean up subscribers to this `MotionValue`.\n   *\n   * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n   * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n   * created a `MotionValue` via the `motionValue` function.\n   *\n   * @public\n   */\n  destroy() {\n    this.clearListeners();\n    this.stop();\n    if (this.stopPassiveEffect) {\n      this.stopPassiveEffect();\n    }\n  }\n}\nfunction motionValue(init, options) {\n  return new MotionValue(init, options);\n}\nexport { MotionValue, collectMotionValues, motionValue };","map":{"version":3,"names":["SubscriptionManager","velocityPerSecond","warnOnce","time","frame","MAX_VELOCITY_DELTA","isFloat","value","isNaN","parseFloat","collectMotionValues","current","undefined","MotionValue","constructor","init","_this","options","arguments","length","version","canTrackVelocity","events","updateAndNotify","v","render","currentTime","now","updatedAt","setPrevFrameValue","prev","setCurrent","change","notify","renderRequest","hasAnimated","owner","prevFrameValue","prevUpdatedAt","onChange","subscription","process","env","NODE_ENV","on","eventName","callback","unsubscribe","add","read","getSize","stop","clearListeners","eventManagers","clear","attach","passiveEffect","stopPassiveEffect","set","setWithVelocity","delta","jump","get","push","getPrevious","getVelocity","Math","min","start","startAnimation","Promise","resolve","animation","animationStart","then","animationComplete","clearAnimation","animationCancel","isAnimating","destroy","motionValue"],"sources":["/opt/bitnami/minigames/frasle/node_modules/framer-motion/dist/es/value/index.mjs"],"sourcesContent":["import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n    return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n    current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n    /**\n     * @param init - The initiating value\n     * @param config - Optional configuration options\n     *\n     * -  `transformer`: A function to transform incoming values with.\n     *\n     * @internal\n     */\n    constructor(init, options = {}) {\n        /**\n         * This will be replaced by the build step with the latest version number.\n         * When MotionValues are provided to motion components, warn if versions are mixed.\n         */\n        this.version = \"11.0.5\";\n        /**\n         * Tracks whether this value can output a velocity. Currently this is only true\n         * if the value is numerical, but we might be able to widen the scope here and support\n         * other value types.\n         *\n         * @internal\n         */\n        this.canTrackVelocity = false;\n        /**\n         * An object containing a SubscriptionManager for each active event.\n         */\n        this.events = {};\n        this.updateAndNotify = (v, render = true) => {\n            const currentTime = time.now();\n            /**\n             * If we're updating the value during another frame or eventloop\n             * than the previous frame, then the we set the previous frame value\n             * to current.\n             */\n            if (this.updatedAt !== currentTime) {\n                this.setPrevFrameValue();\n            }\n            this.prev = this.current;\n            this.setCurrent(v);\n            // Update update subscribers\n            if (this.current !== this.prev && this.events.change) {\n                this.events.change.notify(this.current);\n            }\n            // Update render subscribers\n            if (render && this.events.renderRequest) {\n                this.events.renderRequest.notify(this.current);\n            }\n        };\n        this.hasAnimated = false;\n        this.setCurrent(init);\n        this.canTrackVelocity = isFloat(this.current);\n        this.owner = options.owner;\n    }\n    setCurrent(current) {\n        this.current = current;\n        this.updatedAt = time.now();\n    }\n    setPrevFrameValue(prevFrameValue = this.current) {\n        this.prevFrameValue = prevFrameValue;\n        this.prevUpdatedAt = this.updatedAt;\n    }\n    /**\n     * Adds a function that will be notified when the `MotionValue` is updated.\n     *\n     * It returns a function that, when called, will cancel the subscription.\n     *\n     * When calling `onChange` inside a React component, it should be wrapped with the\n     * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n     * from the `useEffect` function to ensure you don't add duplicate subscribers..\n     *\n     * ```jsx\n     * export const MyComponent = () => {\n     *   const x = useMotionValue(0)\n     *   const y = useMotionValue(0)\n     *   const opacity = useMotionValue(1)\n     *\n     *   useEffect(() => {\n     *     function updateOpacity() {\n     *       const maxXY = Math.max(x.get(), y.get())\n     *       const newOpacity = transform(maxXY, [0, 100], [1, 0])\n     *       opacity.set(newOpacity)\n     *     }\n     *\n     *     const unsubscribeX = x.on(\"change\", updateOpacity)\n     *     const unsubscribeY = y.on(\"change\", updateOpacity)\n     *\n     *     return () => {\n     *       unsubscribeX()\n     *       unsubscribeY()\n     *     }\n     *   }, [])\n     *\n     *   return <motion.div style={{ x }} />\n     * }\n     * ```\n     *\n     * @param subscriber - A function that receives the latest value.\n     * @returns A function that, when called, will cancel this subscription.\n     *\n     * @deprecated\n     */\n    onChange(subscription) {\n        if (process.env.NODE_ENV !== \"production\") {\n            warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n        }\n        return this.on(\"change\", subscription);\n    }\n    on(eventName, callback) {\n        if (!this.events[eventName]) {\n            this.events[eventName] = new SubscriptionManager();\n        }\n        const unsubscribe = this.events[eventName].add(callback);\n        if (eventName === \"change\") {\n            return () => {\n                unsubscribe();\n                /**\n                 * If we have no more change listeners by the start\n                 * of the next frame, stop active animations.\n                 */\n                frame.read(() => {\n                    if (!this.events.change.getSize()) {\n                        this.stop();\n                    }\n                });\n            };\n        }\n        return unsubscribe;\n    }\n    clearListeners() {\n        for (const eventManagers in this.events) {\n            this.events[eventManagers].clear();\n        }\n    }\n    /**\n     * Attaches a passive effect to the `MotionValue`.\n     *\n     * @internal\n     */\n    attach(passiveEffect, stopPassiveEffect) {\n        this.passiveEffect = passiveEffect;\n        this.stopPassiveEffect = stopPassiveEffect;\n    }\n    /**\n     * Sets the state of the `MotionValue`.\n     *\n     * @remarks\n     *\n     * ```jsx\n     * const x = useMotionValue(0)\n     * x.set(10)\n     * ```\n     *\n     * @param latest - Latest value to set.\n     * @param render - Whether to notify render subscribers. Defaults to `true`\n     *\n     * @public\n     */\n    set(v, render = true) {\n        if (!render || !this.passiveEffect) {\n            this.updateAndNotify(v, render);\n        }\n        else {\n            this.passiveEffect(v, this.updateAndNotify);\n        }\n    }\n    setWithVelocity(prev, current, delta) {\n        this.set(current);\n        this.prev = undefined;\n        this.prevFrameValue = prev;\n        this.prevUpdatedAt = this.updatedAt - delta;\n    }\n    /**\n     * Set the state of the `MotionValue`, stopping any active animations,\n     * effects, and resets velocity to `0`.\n     */\n    jump(v) {\n        this.updateAndNotify(v);\n        this.prev = v;\n        this.prevUpdatedAt = this.prevFrameValue = undefined;\n        this.stop();\n        if (this.stopPassiveEffect)\n            this.stopPassiveEffect();\n    }\n    /**\n     * Returns the latest state of `MotionValue`\n     *\n     * @returns - The latest state of `MotionValue`\n     *\n     * @public\n     */\n    get() {\n        if (collectMotionValues.current) {\n            collectMotionValues.current.push(this);\n        }\n        return this.current;\n    }\n    /**\n     * @public\n     */\n    getPrevious() {\n        return this.prev;\n    }\n    /**\n     * Returns the latest velocity of `MotionValue`\n     *\n     * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n     *\n     * @public\n     */\n    getVelocity() {\n        const currentTime = time.now();\n        if (!this.canTrackVelocity ||\n            this.prevFrameValue === undefined ||\n            currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n            return 0;\n        }\n        const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n        // Casts because of parseFloat's poor typing\n        return velocityPerSecond(parseFloat(this.current) -\n            parseFloat(this.prevFrameValue), delta);\n    }\n    /**\n     * Registers a new animation to control this `MotionValue`. Only one\n     * animation can drive a `MotionValue` at one time.\n     *\n     * ```jsx\n     * value.start()\n     * ```\n     *\n     * @param animation - A function that starts the provided animation\n     *\n     * @internal\n     */\n    start(startAnimation) {\n        this.stop();\n        return new Promise((resolve) => {\n            this.hasAnimated = true;\n            this.animation = startAnimation(resolve);\n            if (this.events.animationStart) {\n                this.events.animationStart.notify();\n            }\n        }).then(() => {\n            if (this.events.animationComplete) {\n                this.events.animationComplete.notify();\n            }\n            this.clearAnimation();\n        });\n    }\n    /**\n     * Stop the currently active animation.\n     *\n     * @public\n     */\n    stop() {\n        if (this.animation) {\n            this.animation.stop();\n            if (this.events.animationCancel) {\n                this.events.animationCancel.notify();\n            }\n        }\n        this.clearAnimation();\n    }\n    /**\n     * Returns `true` if this value is currently animating.\n     *\n     * @public\n     */\n    isAnimating() {\n        return !!this.animation;\n    }\n    clearAnimation() {\n        delete this.animation;\n    }\n    /**\n     * Destroy and clean up subscribers to this `MotionValue`.\n     *\n     * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n     * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n     * created a `MotionValue` via the `motionValue` function.\n     *\n     * @public\n     */\n    destroy() {\n        this.clearListeners();\n        this.stop();\n        if (this.stopPassiveEffect) {\n            this.stopPassiveEffect();\n        }\n    }\n}\nfunction motionValue(init, options) {\n    return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}