@nethesis/phone-island 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CallView/DeviceIcon.js +1 -1
- package/dist/components/CallView/DeviceIcon.js.map +1 -1
- package/dist/components/CallView/NumberPopover.js +1 -1
- package/dist/components/CallView/NumberPopover.js.map +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/lib/phone/counterpartDevice.js +1 -1
- package/dist/lib/phone/counterpartDevice.js.map +1 -1
- package/dist/lib/phone/screenShare.js +2 -0
- package/dist/lib/phone/screenShare.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/notify-inspector.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/notify-inspector.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-start-time.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-start-time.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/TransformAnimation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/TransformAnimation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/groups.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/groups.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-pointer-event.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-pointer-event.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/events/event-info.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/events/event-info.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame-data.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame-data.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/utils/constraints.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/utils/constraints.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/pan/PanSession.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/pan/PanSession.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/root.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/root.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/default-scale-correctors.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/default-scale-correctors.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/scope/active.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/scope/active.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/distance.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/utils/as-number.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/as-number.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/package.json +3 -3
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js.map +0 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js +0 -2
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js.map +0 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js +0 -2
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js.map +0 -1
- /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/utils/distance.mjs.js +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./add-dom-event.mjs.js"),r=require("./event-info.mjs.js");exports.addPointerEvent=function(t,n,d,o){return e.addDomEvent(t,n,r.addPointerInfo(d),o)};
|
|
2
|
+
//# sourceMappingURL=add-pointer-event.mjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-pointer-event.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/events/add-pointer-event.mjs"],"sourcesContent":["import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n//# sourceMappingURL=add-pointer-event.mjs.map\n"],"names":["target","eventName","handler","options","addDomEvent","addPointerInfo"],"mappings":"qKAGM,SACFA,EACAC,EACAC,EACAC,GAEA,OAAOC,EAAAA,YAAYJ,EAAQC,EAAWI,EAAcA,eAACH,GAAUC,EACnE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../gestures/utils/is-primary-pointer.mjs.js");function r(e){return{point:{x:e.pageX,y:e.pageY}}}exports.addPointerInfo=t=>i=>e.isPrimaryPointer(i)&&t(i,r(i)),exports.extractEventInfo=r;
|
|
2
|
+
//# sourceMappingURL=event-info.mjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-info.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/events/event-info.mjs"],"sourcesContent":["import { isPrimaryPointer } from '../gestures/utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n\nexport { addPointerInfo, extractEventInfo };\n//# sourceMappingURL=event-info.mjs.map\n"],"names":["extractEventInfo","event","point","x","pageX","y","pageY","handler","isPrimaryPointer"],"mappings":"iIAQM,SAAUA,EAAiBC,GAC7B,MAAO,CACHC,MAAO,CACHC,EAAGF,EAAMG,MACTC,EAAGJ,EAAMK,OAGrB,wBAGKC,GACAN,GACGO,mBAAiBP,IAAUM,EAAQN,EAAOD,EAAiBC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./order.mjs.js"),s=require("./render-step.mjs.js"),r=require("../../../../motion-utils/dist/es/global-config.mjs.js");exports.createRenderBatcher=function(t,o
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./order.mjs.js"),s=require("./render-step.mjs.js"),r=require("../../../../motion-utils/dist/es/global-config.mjs.js");exports.createRenderBatcher=function(t,o,c={delta:0,timestamp:0,isProcessing:!1}){let n=!1,p=!0;const i=()=>n=!0,a=e.stepsOrder.reduce((e,r)=>(e[r]=s.createRenderStep(i),e),{}),{setup:d,read:l,resolveKeyframes:u,preUpdate:m,update:g,preRender:f,render:j,postRender:h}=a,M=()=>{const e=r.MotionGlobalConfig.useManualTiming,s=e?c.timestamp:performance.now();n=!1,e||(c.delta=p?1e3/60:Math.max(Math.min(s-c.timestamp,40),1)),c.timestamp=s,c.isProcessing=!0,d.process(c),l.process(c),u.process(c),m.process(c),g.process(c),f.process(c),j.process(c),h.process(c),c.isProcessing=!1,n&&o&&(p=!1,t(M))};return{schedule:e.stepsOrder.reduce((e,s)=>{const r=a[s];return e[s]=(e,s=!1,o=!1)=>(n||(n=!0,p=!0,c.isProcessing||t(M)),r.schedule(e,s,o)),e},{}),cancel:s=>{for(let r=0;r<e.stepsOrder.length;r++)a[e.stepsOrder[r]].cancel(s)},state:c,steps:a}};
|
|
2
2
|
//# sourceMappingURL=batcher.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batcher.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/batcher.mjs"],"sourcesContent":["import { MotionGlobalConfig } from 'motion-utils';\nimport { stepsOrder } from './order.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive
|
|
1
|
+
{"version":3,"file":"batcher.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/batcher.mjs"],"sourcesContent":["import { MotionGlobalConfig } from 'motion-utils';\nimport { stepsOrder } from './order.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive, state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n}) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const useManualTiming = MotionGlobalConfig.useManualTiming;\n const timestamp = useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher };\n//# sourceMappingURL=batcher.mjs.map\n"],"names":["createRenderBatcher","scheduleNextBatch","allowKeepAlive","state","delta","timestamp","isProcessing","runNextFrame","useDefaultElapsed","flagRunNextFrame","steps","stepsOrder","reduce","acc","key","createRenderStep","setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender","processBatch","useManualTiming","MotionGlobalConfig","performance","now","Math","max","min","process","schedule","step","keepAlive","immediate","cancel","i","length"],"mappings":"qOAOgBA,SACZC,EACAC,EACAC,EAAmB,CACfC,MAAO,EACPC,UAAW,EACXC,cAAc,IAGlB,IAAIC,GAAe,EACfC,GAAoB,EAExB,MAAMC,EAAmBA,IAAOF,GAAe,EAEzCG,EAAQC,EAAUA,WAACC,OAAO,CAACC,EAAKC,KAClCD,EAAIC,GAAOC,EAAgBA,iBAACN,GACrBI,GACR,CAAW,IAERG,MACFA,EAAKC,KACLA,EAAIC,iBACJA,EAAgBC,UAChBA,EAASC,OACTA,EAAMC,UACNA,EAASC,OACTA,EAAMC,WACNA,GACAb,EAEEc,EAAeA,KACjB,MAAMC,EAAkBC,EAAkBA,mBAACD,gBACrCpB,EAAYoB,EACZtB,EAAME,UACNsB,YAAYC,MAClBrB,GAAe,EAEVkB,IACDtB,EAAMC,MAAQI,EACR,IAAO,GACPqB,KAAKC,IAAID,KAAKE,IAAI1B,EAAYF,EAAME,UA1CnC,IA0C2D,IAGtEF,EAAME,UAAYA,EAClBF,EAAMG,cAAe,EAGrBU,EAAMgB,QAAQ7B,GACdc,EAAKe,QAAQ7B,GACbe,EAAiBc,QAAQ7B,GACzBgB,EAAUa,QAAQ7B,GAClBiB,EAAOY,QAAQ7B,GACfkB,EAAUW,QAAQ7B,GAClBmB,EAAOU,QAAQ7B,GACfoB,EAAWS,QAAQ7B,GAEnBA,EAAMG,cAAe,EAEjBC,GAAgBL,IAChBM,GAAoB,EACpBP,EAAkBuB,KA6B1B,MAAO,CAAES,SAhBQtB,EAAUA,WAACC,OAAO,CAACC,EAAKC,KACrC,MAAMoB,EAAOxB,EAAMI,GAMnB,OALAD,EAAIC,GAAO,CAACkB,EAAkBG,GAAY,EAAOC,GAAY,KACpD7B,IAXTA,GAAe,EACfC,GAAoB,EAEfL,EAAMG,cACPL,EAAkBuB,IASXU,EAAKD,SAASD,EAASG,EAAWC,IAEtCvB,GACR,CAAa,GAQGwB,OANHL,IACZ,IAAK,IAAIM,EAAI,EAAGA,EAAI3B,EAAAA,WAAW4B,OAAQD,IACnC5B,EAAMC,EAAUA,WAAC2B,IAAID,OAAOL,IAIT7B,QAAOO,QACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-data.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/frame-data.mjs"],"sourcesContent":["/**\n * The frameloop's state, kept apart from the frameloop itself so that\n * reading it doesn't bundle the scheduler.\n */\nconst frameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n};\n\nexport { frameData };\n//# sourceMappingURL=frame-data.mjs.map\n"],"names":["delta","timestamp","isProcessing"],"mappings":"sFAMoC,CAChCA,MAAO,EACPC,UAAW,EACXC,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./batcher.mjs.js"),t=require("../../../../motion-utils/dist/es/noop.mjs.js");const{schedule:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./batcher.mjs.js"),r=require("./frame-data.mjs.js"),t=require("../../../../motion-utils/dist/es/noop.mjs.js");const{schedule:s,cancel:a,steps:o}=e.createRenderBatcher("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:t.noop,!0,r.frameData);exports.cancelFrame=a,exports.frame=s,exports.frameSteps=o;
|
|
2
2
|
//# sourceMappingURL=frame.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/frame.mjs"],"sourcesContent":["import { noop } from 'motion-utils';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame,
|
|
1
|
+
{"version":3,"file":"frame.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/frame.mjs"],"sourcesContent":["import { noop } from 'motion-utils';\nimport { createRenderBatcher } from './batcher.mjs';\nimport { frameData } from './frame-data.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, steps: frameSteps, } = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true, frameData);\n\nexport { cancelFrame, frame, frameSteps };\n//# sourceMappingURL=frame.mjs.map\n"],"names":["schedule","frame","cancel","cancelFrame","steps","frameSteps","createRenderBatcher","requestAnimationFrame","noop","frameData"],"mappings":"iMAIa,MACTA,SAAUC,EACVC,OAAQC,EACRC,MAAOC,GACSC,EAAAA,oBACiB,oBAA1BC,sBAAwCA,sBAAwBC,EAAAA,MACvE,EACAC,EAASA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createRenderStep=function(e){let t=new Set,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createRenderStep=function(e){let t,s=new Set,n=new Set,r=!1,c=!1;const d=new Set;let o={delta:0,timestamp:0,isProcessing:!1};function a(s){d.has(s)&&(n.add(s),e()),(t=s)(o)}const l={schedule:(e,c=!1,o=!1)=>{const a=o&&r,l=a?s:n;return c&&d.add(e),a&&e!==t&&l.delete(e),l.add(e),e},cancel:e=>{n.delete(e),d.delete(e)},process:e=>{if(o=e,r)return void(c=!0);r=!0;const d=s;s=n,n=d,s.forEach(a),s.clear(),t=void 0,r=!1,c&&(c=!1,l.process(e))}};return l};
|
|
2
2
|
//# sourceMappingURL=render-step.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-step.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/render-step.mjs"],"sourcesContent":["function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new
|
|
1
|
+
{"version":3,"file":"render-step.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/render-step.mjs"],"sourcesContent":["function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * The callback currently running. If it schedules itself with `immediate`\n * it's left in place, so as before it doesn't run again this step.\n */\n let running;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n * A keepAlive process is always also held by a frame queue until\n * it's cancelled, so a Set has the same lifetime semantics as a\n * WeakSet here while being considerably faster to query every frame.\n */\n const toKeepAlive = new Set();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n nextFrame.add(callback);\n runNextFrame();\n }\n (running = callback)(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n /**\n * A callback scheduled with `immediate` during processing may\n * already have run this step (for instance, a value it reads was\n * changed by a later callback). Re-adding moves it to the end of\n * the queue, so it runs again. The running callback is excluded,\n * so one that re-schedules itself can't loop forever.\n */\n addToCurrentFrame && callback !== running && queue.delete(callback);\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n // Swap this frame and the next to avoid GC\n const prevFrame = thisFrame;\n thisFrame = nextFrame;\n nextFrame = prevFrame;\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n running = undefined;\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n//# sourceMappingURL=render-step.mjs.map\n"],"names":["runNextFrame","running","thisFrame","Set","nextFrame","isProcessing","flushNextFrame","toKeepAlive","latestFrameData","delta","timestamp","triggerCallback","callback","has","add","step","schedule","keepAlive","immediate","addToCurrentFrame","queue","delete","cancel","process","frameData","prevFrame","forEach","clear","undefined"],"mappings":"6FAEM,SAA2BA,GAK7B,IAeIC,EAfAC,EAAY,IAAIC,IAChBC,EAAY,IAAID,IAMhBE,GAAe,EAEfC,GAAiB,EAcrB,MAAMC,EAAc,IAAIJ,IAExB,IAAIK,EAA6B,CAC7BC,MAAO,EACPC,UAAW,EACXL,cAAc,GAGlB,SAASM,EAAgBC,GACjBL,EAAYM,IAAID,KAChBR,EAAUU,IAAIF,GACdZ,MAGFC,EAAUW,GAAUJ,EAC1B,CAEA,MAAMO,EAAa,CAIfC,SAAUA,CAACJ,EAAUK,GAAY,EAAOC,GAAY,KAChD,MAAMC,EAAoBD,GAAab,EACjCe,EAAQD,EAAoBjB,EAAYE,EAe9C,OAbIa,GAAWV,EAAYO,IAAIF,GAS/BO,GAAqBP,IAAaX,GAAWmB,EAAMC,OAAOT,GAE1DQ,EAAMN,IAAIF,GAEHA,GAMXU,OAASV,IACLR,EAAUiB,OAAOT,GACjBL,EAAYc,OAAOT,IAMvBW,QAAUC,IAQN,GAPAhB,EAAkBgB,EAOdnB,EAEA,YADAC,GAAiB,GAIrBD,GAAe,EAGf,MAAMoB,EAAYvB,EAClBA,EAAYE,EACZA,EAAYqB,EAGZvB,EAAUwB,QAAQf,GAIlBT,EAAUyB,QACV1B,OAAU2B,EAEVvB,GAAe,EAEXC,IACAA,GAAiB,EACjBS,EAAKQ,QAAQC,MAKzB,OAAOT,CACX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./frame.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./frame-data.mjs.js"),t=require("../../../../motion-utils/dist/es/global-config.mjs.js");let o;function s(){o=void 0}const i={now:()=>(void 0===o&&i.set(e.frameData.isProcessing||t.MotionGlobalConfig.useManualTiming?e.frameData.timestamp:performance.now()),o),set:e=>{o=e,queueMicrotask(s)}};exports.time=i;
|
|
2
2
|
//# sourceMappingURL=sync-time.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-time.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/sync-time.mjs"],"sourcesContent":["import { MotionGlobalConfig } from 'motion-utils';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n//# sourceMappingURL=sync-time.mjs.map\n"],"names":["now","clearTime","undefined","time","set","frameData","isProcessing","MotionGlobalConfig","useManualTiming","timestamp","performance","newTime","queueMicrotask"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-time.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/frameloop/sync-time.mjs"],"sourcesContent":["import { MotionGlobalConfig } from 'motion-utils';\nimport { frameData } from './frame-data.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n//# sourceMappingURL=sync-time.mjs.map\n"],"names":["now","clearTime","undefined","time","set","frameData","isProcessing","MotionGlobalConfig","useManualTiming","timestamp","performance","newTime","queueMicrotask"],"mappings":"4KAGA,IAAIA,EAEJ,SAASC,IACLD,OAAME,CACV,CAUO,MAAMC,EAAO,CAChBH,IAAKA,UACWE,IAARF,GACAG,EAAKC,IACDC,YAAUC,cAAgBC,EAAkBA,mBAACC,gBACvCH,EAAAA,UAAUI,UACVC,YAAYV,OAInBA,GAEXI,IAAMO,IACFX,EAAMW,EACNC,eAAeX"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../animation/interfaces/motion-value.mjs.js"),s=require("../../animation/utils/css-variables-conversion.mjs.js"),e=require("../../animation/utils/is-css-variable.mjs.js"),i=require("../../events/add-dom-event.mjs.js"),n=require("../../events/add-pointer-event.mjs.js"),r=require("../../frameloop/frame.mjs.js"),o=require("../../projection/geometry/conversion.mjs.js"),a=require("../../projection/geometry/delta-calc.mjs.js"),l=require("../../projection/geometry/models.mjs.js"),c=require("../../projection/utils/each-axis.mjs.js"),u=require("../../projection/utils/measure.mjs.js"),h=require("../../resize/index.mjs.js"),g=require("../../utils/mix/number.mjs.js"),m=require("../../value/types/numbers/units.mjs.js"),d=require("../../value/will-change/add-will-change.mjs.js"),p=require("../pan/PanSession.mjs.js"),v=require("../press/utils/is-keyboard-accessible.mjs.js"),f=require("./state/set-active.mjs.js"),P=require("./utils/constraints.mjs.js"),j=require("../../../../../motion-utils/dist/es/errors.mjs.js");const x=new WeakMap;function E(t){return!!t&&"object"==typeof t&&("current"in t||"nodeType"in t)}const D=t=>"current"in t?t.current:t;function A(t){let s=!0;return()=>{s?s=!1:t()}}function C(t,s,e){return!(!0!==s&&s!==t||null!==e&&e!==t)}exports.VisualElementDragControls=class{constructor(t,s=()=>t.getProps()){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=l.createBox(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t,this.readProps=s}start(t,{snapToCursor:i=!1,distanceThreshold:n}={}){const{presenceContext:o}=this.visualElement;if(o&&!1===o.isPresent)return;const{dragSnapToOrigin:l}=this.getProps();this.panSession=new p.PanSession(t,{onSessionStart:t=>{i&&this.snapToCursor(t),this.stopAnimation()},onStart:(t,i)=>{const{drag:n,dragPropagation:o,onDragStart:l}=this.getProps();if(n&&!o&&(this.openDragLock&&this.openDragLock(),this.openDragLock=f.setDragLock(n),!this.openDragLock))return;this.latestPointerEvent=t,this.latestPanInfo=i,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),c.eachAxis(t=>{let i=this.getAxisMotionValue(t).get()||0;if(e.isCSSVariableToken(i)&&(i=s.getVariableValue(i,this.visualElement.current)||0),m.px.test(i))i=parseFloat(i);else if(m.percent.test(i)){const{projection:s}=this.visualElement;if(s&&s.layout){const e=s.layout.layoutBox[t];if(e){i=a.calcLength(e)*(parseFloat(i)/100)}}}this.originPoint[t]=i}),l&&r.frame.update(()=>l(t,i),!1,!0),d.addValueToWillChange(this.visualElement,"transform");const{animationState:u}=this.visualElement;u&&u.setActive("whileDrag",!0)},onMove:(t,s)=>{this.latestPointerEvent=t,this.latestPanInfo=s;const{dragPropagation:e,dragDirectionLock:i,onDirectionLock:n,onDrag:o}=this.getProps();if(!e&&!this.openDragLock)return;const{offset:a}=s;if(i&&null===this.currentDirection){if(this.currentDirection=function(t,s=10){let e=null;Math.abs(t.y)>s?e="y":Math.abs(t.x)>s&&(e="x");return e}(a),null===this.currentDirection)return;n&&n(this.currentDirection)}this.updateAxis("x",s.point,a),this.updateAxis("y",s.point,a),this.visualElement.render(),o&&r.frame.update(()=>o(t,s),!1,!0)},onSessionEnd:(t,s)=>{this.latestPointerEvent=t,this.latestPanInfo=s,this.stop(t,s),this.latestPointerEvent=null,this.latestPanInfo=null},resumeAnimation:()=>{const{dragSnapToOrigin:t}=this.getProps();(t||this.constraints)&&this.startAnimation({x:0,y:0})}},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:this.visualElement.current?.ownerDocument.defaultView,element:this.visualElement.current})}stop(t,s,e){const i=t||this.latestPointerEvent,n=s||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!n||!i)return;const{velocity:a}=n;this.startAnimation(a,e);const{onDragEnd:l}=this.getProps();l&&r.frame.postRender(()=>l(i,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:s}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:e}=this.getProps();!e&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,s,e){const{drag:i}=this.getProps();if(!e||!C(t,i,this.currentDirection))return;const n=this.getAxisMotionValue(t);let r=this.originPoint[t]+e[t];this.constraints&&this.constraints[t]&&(r=P.applyConstraints(r,this.constraints[t],this.elastic[t])),n.set(r)}resolveConstraints(){const{dragConstraints:t,dragElastic:s}=this.getProps(),e=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;E(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):this.constraints=!(!t||!e)&&P.calcRelativeConstraints(e.layoutBox,t),this.elastic=P.resolveDragElastic(s),i!==this.constraints&&!E(t)&&e&&this.constraints&&!this.hasMutatedConstraints&&c.eachAxis(t=>{!1!==this.constraints&&this.getAxisMotionValue(t)&&(this.constraints[t]=P.rebaseAxisConstraints(e.layoutBox[t],this.constraints[t]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:s}=this.getProps();if(!E(t))return!1;const e=D(t);j.invariant(!!e,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");const{projection:i}=this.visualElement;if(!i||!i.layout)return!1;i.root&&(i.root.scroll=void 0,i.root.updateScroll());const n=u.measurePageBox(e,i.root,this.visualElement.getTransformPagePoint());let r=P.calcViewportConstraints(i.layout.layoutBox,n);if(s){const t=s(o.convertBoxToBoundingBox(r));this.hasMutatedConstraints=!!t,t&&(r=o.convertBoundingBoxToBox(t))}return r}startAnimation(t,s){const{drag:e,dragMomentum:i,dragElastic:n,dragTransition:r,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=c.eachAxis(a=>{if(!C(a,s||e,this.currentDirection))return;let c=l&&l[a]||{};!0!==o&&o!==a||(c={min:0,max:0});const u=n?200:1e6,h=n?40:1e7,g={type:"inertia",velocity:i?t[a]:0,bounceStiffness:u,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...r,...c};return this.startAxisValueAnimation(a,g)});return Promise.all(u).then(a)}startAxisValueAnimation(s,e){const i=this.getAxisMotionValue(s);return d.addValueToWillChange(this.visualElement,s),i.start(t.animateMotionValue(s,i,0,e,this.visualElement,!1))}stopAnimation(){c.eachAxis(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const s=`_drag${t.toUpperCase()}`,e=this.readProps()[s];return e||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor({clientX:t,clientY:s}){const{drag:e}=this.getProps(),i={x:t,y:s},n=this.visualElement.getTransformPagePoint()?.(i)||i,r=this.visualElement.measureViewportBox();c.eachAxis(t=>{if(!C(t,e,this.currentDirection))return;const s=this.getAxisMotionValue(t),{min:i,max:o}=r[t];s.set((s.get()||0)+n[t]-g.mixNumber(i,o,.5))})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:s}=this.getProps(),{projection:e}=this.visualElement;if(!E(s)||!e||!this.constraints)return;this.stopAnimation();const i=this.constraints,n={x:0,y:0};c.eachAxis(t=>{const s=this.getAxisMotionValue(t).get();n[t]=P.calcOrigin({min:s,max:s},i[t])});const{transformTemplate:r}=this.visualElement.getProps();this.visualElement.current.style.transform=r?r({},""):"none",e.root&&e.root.updateScroll(),e.updateLayout(),this.constraints=!1,this.resolveConstraints(),c.eachAxis(s=>{const e=this.getAxisMotionValue(s);if(!C(s,t,null)||!e.get())return;const{min:i,max:r}=this.constraints[s];e.set(g.mixNumber(i,r,n[s]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;x.set(this.visualElement,this);const t=this.visualElement.current,s=n.addPointerEvent(t,"pointerdown",s=>{const{drag:e,dragListener:i=!0}=this.getProps(),n=s.target,r=n!==t&&v.isElementTextInput(n);e&&i&&!r&&this.start(s)});let e;const o=()=>{const{dragConstraints:s}=this.getProps(),i=E(s)&&D(s);i&&(this.constraints=this.resolveRefConstraints(),e||(e=function(t,s,e){const i=h.resize(t,A(e)),n=h.resize(s,A(e));return()=>{i(),n()}}(t,i,()=>this.scalePositionWithinConstraints())))},{projection:a}=this.visualElement,l=a.addEventListener("measure",o);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),r.frame.read(o);const u=i.addDomEvent(window,"resize",()=>this.scalePositionWithinConstraints()),g=a.addEventListener("didUpdate",({delta:t,hasLayoutChanged:s})=>{this.isDragging&&s&&(c.eachAxis(s=>{if(!C(s,this.getProps().drag,this.currentDirection))return;const e=this.getAxisMotionValue(s);this.originPoint[s]+=t[s].translate,e.set(e.get()+t[s].translate)}),this.visualElement.render())});return()=>{u(),s(),l(),g&&g(),e&&e()}}getProps(){const t=this.readProps(),{drag:s=!1,dragDirectionLock:e=!1,dragPropagation:i=!1,dragConstraints:n=!1,dragElastic:r=P.defaultElastic,dragMomentum:o=!0}=t;return{...t,drag:s,dragDirectionLock:e,dragPropagation:i,dragConstraints:n,dragElastic:r,dragMomentum:o}}},exports.elementDragControls=x;
|
|
2
|
+
//# sourceMappingURL=VisualElementDragControls.mjs.js.map
|
package/dist/node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VisualElementDragControls.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs"],"sourcesContent":["import { invariant } from 'motion-utils';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getVariableValue } from '../../animation/utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from '../../animation/utils/is-css-variable.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { resize } from '../../resize/index.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { px, percent } from '../../value/types/numbers/units.mjs';\nimport { addValueToWillChange } from '../../value/will-change/add-will-change.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { isElementTextInput } from '../press/utils/is-keyboard-accessible.mjs';\nimport { setDragLock } from './state/set-active.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, calcOrigin } from './utils/constraints.mjs';\n\nconst elementDragControls = new WeakMap();\nclass VisualElementDragControls {\n constructor(visualElement, readProps = () => visualElement.getProps()) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n /**\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPointerEvent = null;\n /**\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPanInfo = null;\n this.visualElement = visualElement;\n this.readProps = readProps;\n }\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n if (snapToCursor)\n this.snapToCursor(event);\n this.stopAnimation();\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = setDragLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin and pointer offset\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a CSS variable, like \"var(--y)\",\n * resolve it so it can be converted to px below.\n */\n if (isCSSVariableToken(current)) {\n current =\n getVariableValue(current, this.visualElement.current) || 0;\n }\n /**\n * If the MotionValue is a px or percentage value convert to px\n */\n if (px.test(current)) {\n current = parseFloat(current);\n }\n else if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.update(() => onDragStart(event, info), false, true);\n }\n addValueToWillChange(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n /**\n * Wait for more movement until a direction is set. Once\n * it is, apply this move too: it can be the last before\n * release when the browser coalesces a fast gesture.\n */\n if (this.currentDirection === null)\n return;\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n if (onDrag) {\n frame.update(() => onDrag(event, info), false, true);\n }\n };\n const onSessionEnd = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.stop(event, info);\n this.latestPointerEvent = null;\n this.latestPanInfo = null;\n };\n const resumeAnimation = () => {\n const { dragSnapToOrigin: snap } = this.getProps();\n if (snap || this.constraints) {\n this.startAnimation({ x: 0, y: 0 });\n }\n };\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n distanceThreshold,\n contextWindow: this.visualElement.current?.ownerDocument.defaultView,\n element: this.visualElement.current,\n });\n }\n /**\n * @param dragAxes - The axes to animate on release, if not the `drag`\n * prop's, e.g. when drag was disabled mid-gesture.\n */\n stop(event, panInfo, dragAxes) {\n const finalEvent = event || this.latestPointerEvent;\n const finalPanInfo = panInfo || this.latestPanInfo;\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging || !finalPanInfo || !finalEvent)\n return;\n const { velocity } = finalPanInfo;\n this.startAnimation(velocity, dragAxes);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.endPanSession();\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n /**\n * Clean up the pan session without modifying other drag state.\n * This is used during unmount to ensure event listeners are removed\n * without affecting projection animations or drag locks.\n */\n endPanSession() {\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : this.visualElement.projection?.layout;\n const prevConstraints = this.constraints;\n if (isElementConstraints(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative. This only applies to relative (non-ref)\n * constraints, as ref-based constraints from calcViewportConstraints are already in the\n * correct coordinate space for the motion value transform offset.\n */\n if (prevConstraints !== this.constraints &&\n !isElementConstraints(dragConstraints) &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!isElementConstraints(constraints))\n return false;\n const constraintsElement = resolveConstraintsElement(constraints);\n invariant(!!constraintsElement, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n /**\n * Refresh the root scroll offset so the constraint's viewport box\n * translates to correct page coordinates. The scroll captured at\n * drag mount can be stale if the document was scrolled afterwards —\n * e.g. via the browser restoring scroll on refresh, or an ancestor\n * layout effect running after this element's mount (#2829).\n *\n * Clear the cached scroll first so `updateScroll` bypasses its\n * per-animationId cache and re-reads the live value.\n */\n if (projection.root) {\n projection.root.scroll = undefined;\n projection.root.updateScroll();\n }\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity, dragAxes) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, dragAxes || drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin === true ||\n dragSnapToOrigin === axis)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n addValueToWillChange(this.visualElement, axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.readProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, this.visualElement.latestValues[axis] ?? 0);\n }\n /**\n * Measure the live box - projection.layout may or may not include the\n * drag transform, depending on when it was measured.\n */\n snapToCursor({ clientX, clientY }) {\n const { drag } = this.getProps();\n const point = { x: clientX, y: clientY };\n const cursor = this.visualElement.getTransformPagePoint()?.(point) || point;\n const box = this.visualElement.measureViewportBox();\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = box[axis];\n axisValue.set((axisValue.get() || 0) + cursor[axis] - mixNumber(min, max, 0.5));\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isElementConstraints(dragConstraints) ||\n !projection ||\n !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const constraints = this.constraints;\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const latest = this.getAxisMotionValue(axis).get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, constraints[axis]);\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n /**\n * Reset constraints so resolveConstraints() will recalculate them\n * with the freshly measured layout rather than returning the cached value.\n */\n this.constraints = false;\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n /**\n * An element resting at its origin has no offset to preserve,\n * and re-projecting 0 into the new constraints would move it.\n */\n if (!shouldDrag(axis, drag, null) || !axisValue.get())\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n /**\n * Flush the updated transform to the DOM synchronously to prevent\n * a visual flash at the element's CSS layout position (0,0) when\n * the transform was stripped for measurement.\n */\n this.visualElement.render();\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n const target = event.target;\n /**\n * Only block drag if clicking on a text input child element\n * (input, textarea, select, contenteditable) where users might\n * want to select text or interact with the control.\n *\n * Buttons and links don't block drag since they don't have\n * click-and-move actions of their own.\n */\n const isClickingTextInputChild = target !== element && isElementTextInput(target);\n if (drag && dragListener && !isClickingTextInputChild) {\n this.start(event);\n }\n });\n /**\n * If using ref-based constraints, observe both the draggable element\n * and the constraint container for size changes via ResizeObserver.\n * Setup is deferred because dragConstraints.current is null when\n * addListeners first runs (React hasn't committed the ref yet).\n */\n let stopResizeObservers;\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n const constraintsElement = isElementConstraints(dragConstraints) &&\n resolveConstraintsElement(dragConstraints);\n if (constraintsElement) {\n this.constraints = this.resolveRefConstraints();\n if (!stopResizeObservers) {\n stopResizeObservers = startResizeObservers(element, constraintsElement, () => this.scalePositionWithinConstraints());\n }\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n /**\n * Only compensate axes this gesture drags. A\n * non-drag axis follows its layout instead, as\n * nothing would ever move it back (e.g. snapping\n * to origin only animates drag axes).\n */\n if (!shouldDrag(axis, this.getProps().drag, this.currentDirection))\n return;\n const motionValue = this.getAxisMotionValue(axis);\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n stopResizeObservers && stopResizeObservers();\n };\n }\n getProps() {\n const props = this.readProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\n/**\n * `dragConstraints` can be an element, or a ref (`{ current }`) to one.\n */\nfunction isElementConstraints(constraints) {\n return (!!constraints &&\n typeof constraints === \"object\" &&\n (\"current\" in constraints || \"nodeType\" in constraints));\n}\nconst resolveConstraintsElement = (constraints) => \"current\" in constraints ? constraints.current : constraints;\nfunction skipFirstCall(callback) {\n let isFirst = true;\n return () => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n callback();\n };\n}\nfunction startResizeObservers(element, constraintsElement, onResize) {\n const stopElement = resize(element, skipFirstCall(onResize));\n const stopContainer = resize(constraintsElement, skipFirstCall(onResize));\n return () => {\n stopElement();\n stopContainer();\n };\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\nfunction expectsResolvedDragConstraints({ dragConstraints, onMeasureDragConstraints, }) {\n return isElementConstraints(dragConstraints) && !!onMeasureDragConstraints;\n}\n\nexport { VisualElementDragControls, elementDragControls, expectsResolvedDragConstraints };\n//# sourceMappingURL=VisualElementDragControls.mjs.map\n"],"names":["elementDragControls","WeakMap","isElementConstraints","constraints","resolveConstraintsElement","current","skipFirstCall","callback","isFirst","shouldDrag","direction","drag","currentDirection","constructor","visualElement","readProps","getProps","this","openDragLock","isDragging","originPoint","x","y","hasMutatedConstraints","elastic","createBox","latestPointerEvent","latestPanInfo","start","originEvent","snapToCursor","distanceThreshold","presenceContext","isPresent","dragSnapToOrigin","panSession","PanSession","onSessionStart","event","stopAnimation","onStart","info","dragPropagation","onDragStart","setDragLock","resolveConstraints","projection","isAnimationBlocked","target","undefined","eachAxis","axis","getAxisMotionValue","get","isCSSVariableToken","getVariableValue","px","test","parseFloat","percent","layout","measuredAxis","layoutBox","calcLength","frame","update","addValueToWillChange","animationState","setActive","onMove","dragDirectionLock","onDirectionLock","onDrag","offset","lockThreshold","Math","abs","getCurrentDirection","updateAxis","point","render","onSessionEnd","stop","resumeAnimation","snap","startAnimation","transformPagePoint","getTransformPagePoint","contextWindow","ownerDocument","defaultView","element","panInfo","dragAxes","finalEvent","finalPanInfo","cancel","velocity","onDragEnd","postRender","endPanSession","end","_point","axisValue","next","applyConstraints","set","dragConstraints","dragElastic","measure","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","invariant","root","scroll","updateScroll","constraintsBox","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","convertBoundingBoxToBox","dragMomentum","dragTransition","onDragTransitionEnd","momentumAnimations","transition","min","max","bounceStiffness","bounceDamping","inertia","type","timeConstant","restDelta","restSpeed","startAxisValueAnimation","Promise","all","then","animateMotionValue","dragKey","toUpperCase","externalMotionValue","getValue","latestValues","clientX","clientY","cursor","box","measureViewportBox","mixNumber","scalePositionWithinConstraints","boxProgress","latest","calcOrigin","transformTemplate","style","transform","updateLayout","addListeners","stopPointerListener","addPointerEvent","dragListener","isClickingTextInputChild","isElementTextInput","stopResizeObservers","measureDragConstraints","onResize","stopElement","resize","stopContainer","startResizeObservers","stopMeasureLayoutListener","addEventListener","read","stopResizeListener","addDomEvent","window","stopLayoutUpdateListener","delta","hasLayoutChanged","motionValue","translate","props","defaultElastic"],"mappings":"4kCAsCaA,MAAAA,EAAsB,IAAIC,QAyyBvC,SAASC,EACLC,GAEA,QACMA,GACqB,iBAAhBA,IACN,YAAaA,GAAe,aAAcA,EAEnD,CAEA,MAAMC,EAA6BD,GAC/B,YAAaA,EAAcA,EAAYE,QAAUF,EAErD,SAASG,EAAcC,GACnB,IAAIC,GAAU,EACd,MAAO,KACCA,EACAA,GAAU,EAGdD,IAER,CAeA,SAASE,EACLC,EACAC,EACAC,GAEA,SACc,IAATD,GAAiBA,IAASD,GACL,OAArBE,GAA6BA,IAAqBF,EAE3D,yCAvxBIG,WAAAA,CACIC,EACAC,EAAqCA,IAAMD,EAAcE,YAtCrDC,KAAAC,aAAoC,KAE5CD,KAAAE,YAAa,EACLF,KAAAL,iBAAyC,KAEzCK,KAAAG,YAAqB,CAAEC,EAAG,EAAGC,EAAG,GAKhCL,KAAAd,aAA2C,EAE3Cc,KAAAM,uBAAwB,EAKxBN,KAAAO,QAAUC,EAAAA,YAKVR,KAAAS,mBAA0C,KAK1CT,KAAAU,cAAgC,KAapCV,KAAKH,cAAgBA,EACrBG,KAAKF,UAAYA,CACrB,CAEAa,KAAAA,CACIC,GACAC,aAAEA,GAAe,EAAKC,kBAAEA,GAA0C,IAKlE,MAAMC,gBAAEA,GAAoBf,KAAKH,cACjC,GAAIkB,IAAiD,IAA9BA,EAAgBC,UAAqB,OAE5D,MAoJMC,iBAAEA,GAAqBjB,KAAKD,WAClCC,KAAKkB,WAAa,IAAIC,EAAUA,WAC5BP,EACA,CACIQ,eAxJgBC,IAChBR,GAAcb,KAAKa,aAAaQ,GACpCrB,KAAKsB,iBAuJDC,QApJQA,CAACF,EAAqBG,KAElC,MAAM9B,KAAEA,EAAI+B,gBAAEA,EAAeC,YAAEA,GAAgB1B,KAAKD,WAEpD,GAAIL,IAAS+B,IACLzB,KAAKC,cAAcD,KAAKC,eAE5BD,KAAKC,aAAe0B,cAAYjC,IAG3BM,KAAKC,cAAc,OAG5BD,KAAKS,mBAAqBY,EAC1BrB,KAAKU,cAAgBc,EACrBxB,KAAKE,YAAa,EAElBF,KAAKL,iBAAmB,KAExBK,KAAK4B,qBAED5B,KAAKH,cAAcgC,aACnB7B,KAAKH,cAAcgC,WAAWC,oBAAqB,EACnD9B,KAAKH,cAAcgC,WAAWE,YAASC,GAM3CC,EAAAA,SAAUC,IACN,IAAI9C,EAAUY,KAAKmC,mBAAmBD,GAAME,OAAS,EAiBrD,GAXIC,EAAAA,mBAAmBjD,KACnBA,EACIkD,EAAgBA,iBACZlD,EACAY,KAAKH,cAAcT,UAClB,GAMTmD,EAAEA,GAACC,KAAKpD,GACRA,EAAUqD,WAAWrD,QAClB,GAAIsD,EAAOA,QAACF,KAAKpD,GAAU,CAC9B,MAAMyC,WAAEA,GAAe7B,KAAKH,cAE5B,GAAIgC,GAAcA,EAAWc,OAAQ,CACjC,MAAMC,EAAef,EAAWc,OAAOE,UAAUX,GAEjD,GAAIU,EAAc,CAEdxD,EADe0D,aAAWF,IACNH,WAAWrD,GAAW,IAC9C,CACJ,CACJ,CAEAY,KAAKG,YAAY+B,GAAQ9C,IAIzBsC,GACAqB,QAAMC,OAAO,IAAMtB,EAAYL,EAAOG,IAAO,GAAO,GAGxDyB,EAAAA,qBAAqBjD,KAAKH,cAAe,aAEzC,MAAMqD,eAAEA,GAAmBlD,KAAKH,cAChCqD,GAAkBA,EAAeC,UAAU,aAAa,IA4EpDC,OAzEOA,CAAC/B,EAAqBG,KACjCxB,KAAKS,mBAAqBY,EAC1BrB,KAAKU,cAAgBc,EAErB,MAAMC,gBACFA,EAAe4B,kBACfA,EAAiBC,gBACjBA,EAAeC,OACfA,GACAvD,KAAKD,WAGT,IAAK0B,IAAoBzB,KAAKC,aAAc,OAE5C,MAAMuD,OAAEA,GAAWhC,EAEnB,GAAI6B,GAA+C,OAA1BrD,KAAKL,iBAA2B,CAQrD,GAPAK,KAAKL,iBA4qBrB,SACI6D,EACAC,EAAgB,IAEhB,IAAIhE,EAAkC,KAElCiE,KAAKC,IAAIH,EAAOnD,GAAKoD,EACrBhE,EAAY,IACLiE,KAAKC,IAAIH,EAAOpD,GAAKqD,IAC5BhE,EAAY,KAGhB,OAAOA,CACX,CAzrBwCmE,CAAoBJ,GAOd,OAA1BxD,KAAKL,iBAA2B,OAEpC2D,GAAmBA,EAAgBtD,KAAKL,iBAC5C,CAGAK,KAAK6D,WAAW,IAAKrC,EAAKsC,MAAON,GACjCxD,KAAK6D,WAAW,IAAKrC,EAAKsC,MAAON,GAQjCxD,KAAKH,cAAckE,SAMfR,GACAR,QAAMC,OAAO,IAAMO,EAAOlC,EAAOG,IAAO,GAAO,IA4B/CwC,aAxBaA,CAAC3C,EAAqBG,KACvCxB,KAAKS,mBAAqBY,EAC1BrB,KAAKU,cAAgBc,EAErBxB,KAAKiE,KAAK5C,EAAOG,GAEjBxB,KAAKS,mBAAqB,KAC1BT,KAAKU,cAAgB,MAkBjBwD,gBAfgBA,KACpB,MAAQjD,iBAAkBkD,GAASnE,KAAKD,YACpCoE,GAAQnE,KAAKd,cACbc,KAAKoE,eAAe,CAAEhE,EAAG,EAAGC,EAAG,MAcnC,CACIgE,mBAAoBrE,KAAKH,cAAcyE,wBACvCrD,mBACAH,oBACAyD,cACIvE,KAAKH,cAAcT,SAASoF,cAAcC,YAC9CC,QAAS1E,KAAKH,cAAcT,SAGxC,CAMA6E,IAAAA,CACI5C,EACAsD,EACAC,GAEA,MAAMC,EAAaxD,GAASrB,KAAKS,mBAC3BqE,EAAeH,GAAW3E,KAAKU,cAE/BR,EAAaF,KAAKE,WAExB,GADAF,KAAK+E,UACA7E,IAAe4E,IAAiBD,EAAY,OAEjD,MAAMG,SAAEA,GAAaF,EACrB9E,KAAKoE,eAAeY,EAAUJ,GAE9B,MAAMK,UAAEA,GAAcjF,KAAKD,WACvBkF,GACAlC,EAAKA,MAACmC,WAAW,IAAMD,EAAUJ,EAAYC,GAErD,CAEAC,MAAAA,GACI/E,KAAKE,YAAa,EAElB,MAAM2B,WAAEA,EAAUqB,eAAEA,GAAmBlD,KAAKH,cAExCgC,IACAA,EAAWC,oBAAqB,GAGpC9B,KAAKmF,gBAEL,MAAM1D,gBAAEA,GAAoBzB,KAAKD,YAE5B0B,GAAmBzB,KAAKC,eACzBD,KAAKC,eACLD,KAAKC,aAAe,MAGxBiD,GAAkBA,EAAeC,UAAU,aAAa,EAC5D,CAOAgC,aAAAA,GACInF,KAAKkB,YAAclB,KAAKkB,WAAWkE,MACnCpF,KAAKkB,gBAAac,CACtB,CAEQ6B,UAAAA,CAAW3B,EAAqBmD,EAAe7B,GACnD,MAAM9D,KAAEA,GAASM,KAAKD,WAGtB,IAAKyD,IAAWhE,EAAW0C,EAAMxC,EAAMM,KAAKL,kBAAmB,OAE/D,MAAM2F,EAAYtF,KAAKmC,mBAAmBD,GAC1C,IAAIqD,EAAOvF,KAAKG,YAAY+B,GAAQsB,EAAOtB,GAGvClC,KAAKd,aAAec,KAAKd,YAAYgD,KACrCqD,EAAOC,EAAgBA,iBACnBD,EACAvF,KAAKd,YAAYgD,GACjBlC,KAAKO,QAAQ2B,KAIrBoD,EAAUG,IAAIF,EAClB,CAEQ3D,kBAAAA,GACJ,MAAM8D,gBAAEA,EAAeC,YAAEA,GAAgB3F,KAAKD,WAExC4C,EACF3C,KAAKH,cAAcgC,aAClB7B,KAAKH,cAAcgC,WAAWc,OACzB3C,KAAKH,cAAcgC,WAAW+D,SAAQ,GACtC5F,KAAKH,cAAcgC,YAAYc,OAEnCkD,EAAkB7F,KAAKd,YAEzBD,EAAqByG,GAChB1F,KAAKd,cACNc,KAAKd,YAAcc,KAAK8F,yBAIxB9F,KAAKd,eADLwG,IAAmB/C,IACAoD,EAAuBA,wBACtCpD,EAAOE,UACP6C,GAOZ1F,KAAKO,QAAUyF,qBAAmBL,GAS9BE,IAAoB7F,KAAKd,cACxBD,EAAqByG,IACtB/C,GACA3C,KAAKd,cACJc,KAAKM,uBAEN2B,EAAAA,SAAUC,KAEmB,IAArBlC,KAAKd,aACLc,KAAKmC,mBAAmBD,KAExBlC,KAAKd,YAAYgD,GAAQ+D,EAAqBA,sBAC1CtD,EAAOE,UAAUX,GACjBlC,KAAKd,YAAYgD,MAKrC,CAEQ4D,qBAAAA,GACJ,MAAQJ,gBAAiBxG,EAAWgH,yBAAEA,GAClClG,KAAKD,WACT,IAAKd,EAAqBC,GAAc,OAAO,EAE/C,MAAMiH,EAAqBhH,EAA0BD,GAErDkH,EAAAA,YACMD,EACF,yGACA,wBAGJ,MAAMtE,WAAEA,GAAe7B,KAAKH,cAG5B,IAAKgC,IAAeA,EAAWc,OAAQ,OAAO,EAY1Cd,EAAWwE,OACXxE,EAAWwE,KAAKC,YAAStE,EACzBH,EAAWwE,KAAKE,gBAGpB,MAAMC,EAAiBC,iBACnBN,EACAtE,EAAWwE,KACXrG,KAAKH,cAAcyE,yBAGvB,IAAIoC,EAAsBC,EAAAA,wBACtB9E,EAAWc,OAAOE,UAClB2D,GAOJ,GAAIN,EAA0B,CAC1B,MAAMU,EAAkBV,EACpBW,0BAAwBH,IAG5B1G,KAAKM,wBAA0BsG,EAE3BA,IACAF,EAAsBI,EAAAA,wBAAwBF,GAEtD,CAEA,OAAOF,CACX,CAEQtC,cAAAA,CACJY,EACAJ,GAEA,MAAMlF,KACFA,EAAIqH,aACJA,EAAYpB,YACZA,EAAWqB,eACXA,EAAc/F,iBACdA,EAAgBgG,oBAChBA,GACAjH,KAAKD,WAEHb,EAA4Cc,KAAKd,aAAe,GAEhEgI,EAAqBjF,EAAQA,SAAEC,IACjC,IAAK1C,EAAW0C,EAAM0C,GAAYlF,EAAMM,KAAKL,kBACzC,OAGJ,IAAIwH,EAAcjI,GAAeA,EAAYgD,IAAU,CAAA,GAG9B,IAArBjB,GACCA,IAAiCiB,IAElCiF,EAAa,CAAEC,IAAK,EAAGC,IAAK,IAQhC,MAAMC,EAAkB3B,EAAc,IAAM,IACtC4B,EAAgB5B,EAAc,GAAK,IAEnC6B,EAAsB,CACxBC,KAAM,UACNzC,SAAU+B,EAAe/B,EAAS9C,GAAQ,EAC1CoF,kBACAC,gBACAG,aAAc,IACdC,UAAW,EACXC,UAAW,MACRZ,KACAG,GAMP,OAAOnH,KAAK6H,wBAAwB3F,EAAMsF,KAI9C,OAAOM,QAAQC,IAAIb,GAAoBc,KAAKf,EAChD,CAEQY,uBAAAA,CACJ3F,EACAiF,GAEA,MAAM7B,EAAYtF,KAAKmC,mBAAmBD,GAI1C,OAFAe,EAAAA,qBAAqBjD,KAAKH,cAAeqC,GAElCoD,EAAU3E,MACbsH,EAAkBA,mBACd/F,EACAoD,EACA,EACA6B,EACAnH,KAAKH,eACL,GAGZ,CAEAyB,aAAAA,GACIW,EAAQA,SAAEC,GAASlC,KAAKmC,mBAAmBD,GAAM+B,OACrD,CAQQ9B,kBAAAA,CAAmBD,GACvB,MAAMgG,EACF,QAAQhG,EAAKiG,gBAEXC,EADQpI,KAAKF,YACeoI,GAElC,OAAOE,GAEDpI,KAAKH,cAAcwI,SACfnG,EACAlC,KAAKH,cAAcyI,aAAapG,IAAS,EAEvD,CAMQrB,YAAAA,EAAa0H,QAAEA,EAAOC,QAAEA,IAC5B,MAAM9I,KAAEA,GAASM,KAAKD,WAChB+D,EAAQ,CAAE1D,EAAGmI,EAASlI,EAAGmI,GACzBC,EACFzI,KAAKH,cAAcyE,uBAAnBtE,GAA6C8D,IAAUA,EACrD4E,EAAM1I,KAAKH,cAAc8I,qBAE/B1G,EAAAA,SAAUC,IACN,IAAK1C,EAAW0C,EAAMxC,EAAMM,KAAKL,kBAAmB,OAEpD,MAAM2F,EAAYtF,KAAKmC,mBAAmBD,IACpCkF,IAAEA,EAAGC,IAAEA,GAAQqB,EAAIxG,GAEzBoD,EAAUG,KACLH,EAAUlD,OAAS,GAAKqG,EAAOvG,GAAQ0G,EAAAA,UAAUxB,EAAKC,EAAK,MAGxE,CAOAwB,8BAAAA,GACI,IAAK7I,KAAKH,cAAcT,QAAS,OAEjC,MAAMM,KAAEA,EAAIgG,gBAAEA,GAAoB1F,KAAKD,YACjC8B,WAAEA,GAAe7B,KAAKH,cAC5B,IACKZ,EAAqByG,KACrB7D,IACA7B,KAAKd,YAEN,OAMJc,KAAKsB,gBAML,MAAMpC,EAAcc,KAAKd,YACnB4J,EAAc,CAAE1I,EAAG,EAAGC,EAAG,GAC/B4B,EAAAA,SAAUC,IACN,MAAM6G,EAAS/I,KAAKmC,mBAAmBD,GAAME,MAC7C0G,EAAY5G,GAAQ8G,aAChB,CAAE5B,IAAK2B,EAAQ1B,IAAK0B,GACpB7J,EAAYgD,MAOpB,MAAM+G,kBAAEA,GAAsBjJ,KAAKH,cAAcE,WACjDC,KAAKH,cAAcT,QAAQ8J,MAAMC,UAAYF,EACvCA,EAAkB,CAAE,EAAE,IACtB,OACNpH,EAAWwE,MAAQxE,EAAWwE,KAAKE,eACnC1E,EAAWuH,eAMXpJ,KAAKd,aAAc,EACnBc,KAAK4B,qBAMLK,EAAAA,SAAUC,IACN,MAAMoD,EAAYtF,KAAKmC,mBAAmBD,GAM1C,IAAK1C,EAAW0C,EAAMxC,EAAM,QAAU4F,EAAUlD,MAAO,OAKvD,MAAMgF,IAAEA,EAAGC,IAAEA,GAASrH,KAAKd,YACvBgD,GAEJoD,EAAUG,IAAImD,EAAAA,UAAUxB,EAAKC,EAAKyB,EAAY5G,OAQlDlC,KAAKH,cAAckE,QACvB,CAEAsF,YAAAA,GACI,IAAKrJ,KAAKH,cAAcT,QAAS,OACjCL,EAAoB0G,IAAIzF,KAAKH,cAAeG,MAC5C,MAAM0E,EAAU1E,KAAKH,cAAcT,QAK7BkK,EAAsBC,EAAeA,gBACvC7E,EACA,cACCrD,IACG,MAAM3B,KAAEA,EAAI8J,aAAEA,GAAe,GAASxJ,KAAKD,WACrCgC,EAASV,EAAMU,OAUf0H,EACF1H,IAAW2C,GAAWgF,EAAkBA,mBAAC3H,GAEzCrC,GAAQ8J,IAAiBC,GACzBzJ,KAAKW,MAAMU,KAWvB,IAAIsI,EAEJ,MAAMC,EAAyBA,KAC3B,MAAMlE,gBAAEA,GAAoB1F,KAAKD,WAC3BoG,EACFlH,EAAqByG,IACrBvG,EAA0BuG,GAE1BS,IACAnG,KAAKd,YAAcc,KAAK8F,wBAEnB6D,IACDA,EA+HpB,SACIjF,EACAyB,EACA0D,GAEA,MAAMC,EAAcC,EAAAA,OAAOrF,EAASrF,EAAcwK,IAC5CG,EAAgBD,EAAAA,OAAO5D,EAAoB9G,EAAcwK,IAC/D,MAAO,KACHC,IACAE,IAER,CA1I0CC,CAClBvF,EACAyB,EACA,IAAMnG,KAAK6I,sCAMrBhH,WAAEA,GAAe7B,KAAKH,cAEtBqK,EAA4BrI,EAAYsI,iBAC1C,UACAP,GAGA/H,IAAeA,EAAYc,SAC3Bd,EAAWwE,MAAQxE,EAAWwE,KAAKE,eACnC1E,EAAWuH,gBAGfrG,QAAMqH,KAAKR,GAMX,MAAMS,EAAqBC,EAAAA,YAAYC,OAAQ,SAAU,IACrDvK,KAAK6I,kCAOH2B,EAA2B3I,EAAYsI,iBACzC,YACC,EAAGM,QAAOC,uBACH1K,KAAKE,YAAcwK,IACnBzI,EAAAA,SAAUC,IAON,IACK1C,EACG0C,EACAlC,KAAKD,WAAWL,KAChBM,KAAKL,kBAGT,OAEJ,MAAMgL,EAAc3K,KAAKmC,mBAAmBD,GAC5ClC,KAAKG,YAAY+B,IAASuI,EAAMvI,GAAM0I,UACtCD,EAAYlF,IACRkF,EAAYvI,MAAQqI,EAAMvI,GAAM0I,aAIxC5K,KAAKH,cAAckE,YAK/B,MAAO,KACHsG,IACAf,IACAY,IACAM,GAA4BA,IAC5Bb,GAAuBA,IAE/B,CAEA5J,QAAAA,GACI,MAAM8K,EAAQ7K,KAAKF,aACbJ,KACFA,GAAO,EAAK2D,kBACZA,GAAoB,EAAK5B,gBACzBA,GAAkB,EAAKiE,gBACvBA,GAAkB,EAAKC,YACvBA,EAAcmF,EAAcA,eAAA/D,aAC5BA,GAAe,GACf8D,EACJ,MAAO,IACAA,EACHnL,OACA2D,oBACA5B,kBACAiE,kBACAC,cACAoB,eAER"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../../projection/geometry/delta-calc.mjs.js"),i=require("../../../utils/mix/number.mjs.js"),n=require("../../../../../../motion-utils/dist/es/progress.mjs.js"),e=require("../../../../../../motion-utils/dist/es/clamp.mjs.js");function r(t,i,n){return{min:void 0!==i?t.min+i:void 0,max:void 0!==n?t.max+n-(t.max-t.min):void 0}}function o(t,i){let n=i.min-t.min,e=i.max-t.max;return i.max-i.min<t.max-t.min&&([n,e]=[e,n]),{min:n,max:e}}const s=.35;function m(t,i,n){return{min:a(t,i),max:a(t,n)}}function a(t,i){return"number"==typeof t?t:t[i]||0}exports.applyConstraints=function(t,{min:n,max:e},r){return void 0!==n&&t<n?t=r?i.mixNumber(n,t,r.min):Math.max(t,n):void 0!==e&&t>e&&(t=r?i.mixNumber(e,t,r.max):Math.min(t,e)),t},exports.calcOrigin=function(i,r){let o=.5;const s=t.calcLength(i),m=t.calcLength(r);return m>s?o=n.progress(r.min,r.max-s,i.min):s>m&&(o=n.progress(i.min,i.max-m,r.min)),e.clamp(0,1,o)},exports.calcRelativeAxisConstraints=r,exports.calcRelativeConstraints=function(t,{top:i,left:n,bottom:e,right:o}){return{x:r(t.x,n,o),y:r(t.y,i,e)}},exports.calcViewportAxisConstraints=o,exports.calcViewportConstraints=function(t,i){return{x:o(t.x,i.x),y:o(t.y,i.y)}},exports.defaultElastic=s,exports.rebaseAxisConstraints=function(t,i){const n={};return void 0!==i.min&&(n.min=i.min-t.min),void 0!==i.max&&(n.max=i.max-t.min),n},exports.resolveAxisElastic=m,exports.resolveDragElastic=function(t=.35){return!1===t?t=0:!0===t&&(t=s),{x:m(t,"left","right"),y:m(t,"top","bottom")}},exports.resolvePointElastic=a;
|
|
2
|
+
//# sourceMappingURL=constraints.mjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraints.mjs.js","sources":["../../../../../../../../node_modules/motion-dom/dist/es/gestures/drag/utils/constraints.mjs"],"sourcesContent":["import { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\nimport { progress, clamp } from 'motion-utils';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an aesthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n//# sourceMappingURL=constraints.mjs.map\n"],"names":["calcRelativeAxisConstraints","axis","min","max","undefined","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","point","elastic","mixNumber","Math","source","target","origin","sourceLength","calcLength","targetLength","calcProgress","clamp","layoutBox","top","left","bottom","right","x","y","constraintsBox","layout","constraints","relativeConstraints"],"mappings":"uTA+DgBA,SAAAA,EACZC,EACAC,EACAC,GAEA,MAAO,CACHD,SAAaE,IAARF,EAAoBD,EAAKC,IAAMA,OAAME,EAC1CD,SACYC,IAARD,EACMF,EAAKE,IAAMA,GAAOF,EAAKE,IAAMF,EAAKC,UAClCE,EAElB,CAmBM,SAAUC,EACZC,EACAC,GAEA,IAAIL,EAAMK,EAAgBL,IAAMI,EAAWJ,IACvCC,EAAMI,EAAgBJ,IAAMG,EAAWH,IAW3C,OANII,EAAgBJ,IAAMI,EAAgBL,IACtCI,EAAWH,IAAMG,EAAWJ,OAE1BA,EAAKC,GAAO,CAACA,EAAKD,IAGjB,CAAEA,MAAKC,MAClB,CAqFO,MAAMK,EAAiB,IAmBdC,SAAAA,EACZC,EACAC,EACAC,GAEA,MAAO,CACHV,IAAKW,EAAoBH,EAAaC,GACtCR,IAAKU,EAAoBH,EAAaE,GAE9C,CAEM,SAAUC,EACZH,EACAI,GAEA,MAA8B,iBAAhBJ,EACRA,EACAA,EAAYI,IAAsC,CAC5D,0BAxNM,SACFC,GACAb,IAAEA,EAAGC,IAAEA,GACPa,GAcA,YAZYZ,IAARF,GAAqBa,EAAQb,EAE7Ba,EAAQC,EACFC,YAAUf,EAAKa,EAAOC,EAAQd,KAC9BgB,KAAKf,IAAIY,EAAOb,QACPE,IAARD,GAAqBY,EAAQZ,IAEpCY,EAAQC,EACFC,YAAUd,EAAKY,EAAOC,EAAQb,KAC9Be,KAAKhB,IAAIa,EAAOZ,IAGnBY,CACX,qBA4FM,SAAqBI,EAAcC,GACrC,IAAIC,EAAS,GACb,MAAMC,EAAeC,aAAWJ,GAC1BK,EAAeD,aAAWH,GAQhC,OANII,EAAeF,EACfD,EAASI,EAAAA,SAAaL,EAAOlB,IAAKkB,EAAOjB,IAAMmB,EAAcH,EAAOjB,KAC7DoB,EAAeE,IACtBH,EAASI,EAAAA,SAAaN,EAAOjB,IAAKiB,EAAOhB,IAAMqB,EAAcJ,EAAOlB,MAGjEwB,QAAM,EAAG,EAAGL,EACvB,wEA1DM,SACFM,GACAC,IAAEA,EAAGC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,IAErB,MAAO,CACHC,EAAGhC,EAA4B2B,EAAUK,EAAGH,EAAME,GAClDE,EAAGjC,EAA4B2B,EAAUM,EAAGL,EAAKE,GAEzD,wEA2BM,SAAkCH,EAAgBO,GACpD,MAAO,CACHF,EAAG3B,EAA4BsB,EAAUK,EAAGE,EAAeF,GAC3DC,EAAG5B,EAA4BsB,EAAUM,EAAGC,EAAeD,GAEnE,yDA0DM,SACFE,EACAC,GAEA,MAAMC,EAAqC,CAAA,EAU3C,YARwBjC,IAApBgC,EAAYlC,MACZmC,EAAoBnC,IAAMkC,EAAYlC,IAAMiC,EAAOjC,UAG/BE,IAApBgC,EAAYjC,MACZkC,EAAoBlC,IAAMiC,EAAYjC,IAAMgC,EAAOjC,KAGhDmC,CACX,0DAMM,SACF3B,EAA2BF,KAQ3B,OANoB,IAAhBE,EACAA,EAAc,GACS,IAAhBA,IACPA,EAAcF,GAGX,CACHwB,EAAGvB,EAAmBC,EAAa,OAAQ,SAC3CuB,EAAGxB,EAAmBC,EAAa,MAAO,UAElD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./drag/state/is-active.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../scope/active.mjs.js"),t=require("./drag/state/is-active.mjs.js"),n=require("./utils/setup.mjs.js");exports.hover=function(r,i,o={}){i=e.bindToScope(i);const[s,p,d]=n.setupGesture(r,o);return s.forEach(e=>{let n,r=!1,o=!1;const s=t=>{n&&(n(t),n=void 0),e.removeEventListener("pointerleave",v)},d=e=>{r=!1,window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",d),o&&(o=!1,s(e))},v=e=>{"touch"!==e.pointerType&&(r?o=!0:s(e))};e.addEventListener("pointerenter",r=>{if("touch"===r.pointerType||t.isDragActive())return;o=!1;const s=i(e,r);"function"==typeof s&&(n=s,e.addEventListener("pointerleave",v,p))},p),e.addEventListener("pointerdown",()=>{r=!0,window.addEventListener("pointerup",d,p),window.addEventListener("pointercancel",d,p)},p)}),d};
|
|
2
2
|
//# sourceMappingURL=hover.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/gestures/hover.mjs"],"sourcesContent":["import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"
|
|
1
|
+
{"version":3,"file":"hover.mjs.js","sources":["../../../../../../node_modules/motion-dom/dist/es/gestures/hover.mjs"],"sourcesContent":["import { bindToScope } from '../scope/active.mjs';\nimport { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerleave\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n onHoverStart = bindToScope(onHoverStart);\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n//# sourceMappingURL=hover.mjs.map\n"],"names":["elementOrSelector","onHoverStart","options","bindToScope","elements","eventOptions","cancel","setupGesture","forEach","element","hoverEndCallback","isPressed","deferredHoverEnd","endHover","event","undefined","removeEventListener","onPointerLeave","onPointerUp","window","leaveEvent","pointerType","addEventListener","enterEvent","isDragActive","onHoverEnd","onPointerDown"],"mappings":"uMAqCM,SACFA,EACAC,EACAC,EAAwB,CAAA,GAExBD,EAAeE,EAAAA,YAAYF,GAE3B,MAAOG,EAAUC,EAAcC,GAAUC,eACrCP,EACAE,GAkGJ,OA/FAE,EAASI,QAASC,IACd,IAEIC,EAFAC,GAAY,EACZC,GAAmB,EAGvB,MAOMC,EAAYC,IACVJ,IACAA,EAAiBI,GACjBJ,OAAmBK,GATvBN,EAAQO,oBACJ,eACAC,IAYFC,EAAeJ,IACjBH,GAAY,EACZQ,OAAOH,oBACH,YACAE,GAEJC,OAAOH,oBACH,gBACAE,GAGAN,IACAA,GAAmB,EACnBC,EAASC,KAkBXG,EAAkBG,IACW,UAA3BA,EAAWC,cAEXV,EACAC,GAAmB,EAIvBC,EAASO,KAwBbX,EAAQa,iBACJ,eAtBoBC,IACpB,GArFuB,UAqFLA,EArFXF,aAA2BG,EAAAA,eAqFH,OAE/BZ,GAAmB,EAEnB,MAAMa,EAAaxB,EACfQ,EACAc,GAGsB,mBAAfE,IAEXf,EAAmBe,EAEnBhB,EAAQa,iBACJ,eACAL,EACAZ,KAOJA,GAEJI,EAAQa,iBACJ,cApDkBI,KAClBf,GAAY,EACZQ,OAAOG,iBACH,YACAJ,EACAb,GAEJc,OAAOG,iBACH,gBACAJ,EACAb,IA4CJA,KAIDC,CACX"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../../events/add-pointer-event.mjs.js"),e=require("../../events/event-info.mjs.js"),s=require("../../frameloop/frame.mjs.js"),n=require("../../frameloop/frame-data.mjs.js"),i=require("../../frameloop/sync-time.mjs.js"),o=require("../../utils/distance.mjs.js"),r=require("../utils/is-primary-pointer.mjs.js"),l=require("../../../../../motion-utils/dist/es/pipe.mjs.js"),a=require("../../../../../motion-utils/dist/es/time-conversion.mjs.js");const h=new Set(["auto","scroll"]);function c(t,e){return e?{point:e(t.point)}:t}function d(t,e){return{x:t.x-e.x,y:t.y-e.y}}function v({point:t},e){return{point:t,delta:d(t,p(e)),offset:d(t,m(e)),velocity:u(e,.1)}}function m(t){return t[0]}function p(t){return t[t.length-1]}function u(t,e){if(t.length<2)return{x:0,y:0};let s=t.length-1,n=null;const i=p(t);for(;s>=0&&(n=t[s],!(i.timestamp-n.timestamp>a.secondsToMilliseconds(e)));)s--;if(!n)return{x:0,y:0};n===t[0]&&t.length>2&&i.timestamp-n.timestamp>2*a.secondsToMilliseconds(e)&&(n=t[1]);const o=a.millisecondsToSeconds(i.timestamp-n.timestamp);if(0===o)return{x:0,y:0};const r={x:(i.x-n.x)/o,y:(i.y-n.y)/o};return r.x===1/0&&(r.x=0),r.y===1/0&&(r.y=0),r}exports.PanSession=class{constructor(a,h,{transformPagePoint:d,contextWindow:m=window,dragSnapToOrigin:p=!1,distanceThreshold:u=3,element:f}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=t=>{this.handleScroll(t.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!this.lastMoveEvent||!this.lastMoveEventInfo)return;this.hasPendingMove=!1,this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=c(this.lastRawMoveEventInfo,this.transformPagePoint));const t=v(this.lastMoveEventInfo,this.history),e=null!==this.startEvent,s=o.distance2D(t.offset,{x:0,y:0})>=this.distanceThreshold;if(!e&&!s)return;const{point:n}=t;this.history.push({...n,timestamp:i.time.now()});const{onStart:r,onMove:l}=this.handlers;e||(r&&r(this.lastMoveEvent,t),this.startEvent=this.lastMoveEvent),l&&l(this.lastMoveEvent,t)},this.handlePointerMove=(t,e)=>{this.handleScroll(window),this.lastMoveEvent=t,this.lastRawMoveEventInfo=e,this.lastMoveEventInfo=c(e,this.transformPagePoint),this.hasPendingMove=!0,s.frame.update(this.updatePoint,!0)},this.handlePointerUp=(t,e)=>{this.hasPendingMove&&this.updatePoint(),this.end();const{onEnd:s,onSessionEnd:n,resumeAnimation:i}=this.handlers;if(!this.dragSnapToOrigin&&this.startEvent||i&&i(),!this.lastMoveEvent||!this.lastMoveEventInfo)return;const o=v("pointercancel"===t.type?this.lastMoveEventInfo:c(e,this.transformPagePoint),this.history);this.startEvent&&s&&s(t,o),n&&n(t,o)},!r.isPrimaryPointer(a))return;this.dragSnapToOrigin=p,this.handlers=h,this.transformPagePoint=d,this.distanceThreshold=u,this.contextWindow=m||window;const w=c(e.extractEventInfo(a),this.transformPagePoint),{point:E}=w,{timestamp:P}=n.frameData;this.history=[{...E,timestamp:P}];const{onSessionStart:y}=h;y&&y(a,v(w,this.history));const M={passive:!0,capture:!0};this.removeListeners=l.pipe(t.addPointerEvent(this.contextWindow,"pointermove",this.handlePointerMove,M),t.addPointerEvent(this.contextWindow,"pointerup",this.handlePointerUp,M),t.addPointerEvent(this.contextWindow,"pointercancel",this.handlePointerUp,M)),f&&this.startScrollTracking(f)}startScrollTracking(t){let e=t.parentElement;for(;e;){const t=getComputedStyle(e);(h.has(t.overflowX)||h.has(t.overflowY))&&this.scrollPositions.set(e,{x:e.scrollLeft,y:e.scrollTop}),e=e.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const e=this.scrollPositions.get(t);if(!e)return;const n=t===window,i=n?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o=i.x-e.x,r=i.y-e.y;0===o&&0===r||(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o,this.lastMoveEventInfo.point.y+=r):this.history.length>0&&(this.history[0].x-=o,this.history[0].y-=r),this.scrollPositions.set(t,i),s.frame.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),s.cancelFrame(this.updatePoint)}};
|
|
2
|
+
//# sourceMappingURL=PanSession.mjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanSession.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/pan/PanSession.mjs"],"sourcesContent":["import { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { frame, cancelFrame } from '../../frameloop/frame.mjs';\nimport { frameData } from '../../frameloop/frame-data.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { pipe, secondsToMilliseconds, millisecondsToSeconds } from 'motion-utils';\n\nconst overflowStyles = /*#__PURE__*/ new Set([\"auto\", \"scroll\"]);\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, element, } = {}) {\n this.startEvent = null;\n this.lastMoveEvent = null;\n this.lastMoveEventInfo = null;\n /**\n * Raw (untransformed) event info, re-transformed each frame\n * so transformPagePoint sees the current parent matrix.\n */\n this.lastRawMoveEventInfo = null;\n this.handlers = {};\n this.contextWindow = window;\n /**\n * Scroll positions of scrollable ancestors and window.\n */\n this.scrollPositions = new Map();\n /**\n * Cleanup function for scroll listeners.\n */\n this.removeScrollListeners = null;\n this.onElementScroll = (event) => {\n this.handleScroll(event.target);\n };\n this.onWindowScroll = () => {\n this.handleScroll(window);\n };\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n this.hasPendingMove = false;\n // Re-transform raw point through current transformPagePoint so\n // animated parent transforms (e.g. rotation) are picked up each frame\n if (this.lastRawMoveEventInfo) {\n this.lastMoveEventInfo = transformPoint(this.lastRawMoveEventInfo, this.transformPagePoint);\n }\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursor.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n this.history.push({ ...point, timestamp: time.now() });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n /**\n * This event's pageX/pageY already include any window scroll that\n * hasn't fired its scroll event yet. Settle it now, so that scroll\n * event doesn't add it to the new point a second time.\n */\n this.handleScroll(window);\n this.lastMoveEvent = event;\n this.lastRawMoveEventInfo = info;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n this.hasPendingMove = true;\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n // Browsers flush a coalesced pointermove immediately before\n // pointerup, so the final move can still be waiting for a frame.\n this.hasPendingMove && this.updatePoint();\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n // Resume animation if dragSnapToOrigin is set OR if no drag started (user just clicked)\n // This ensures constraint animations continue when interrupted by a click\n if (this.dragSnapToOrigin || !this.startEvent) {\n resumeAnimation && resumeAnimation();\n }\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.distanceThreshold = distanceThreshold;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n // Listen in the capture phase so a descendant calling\n // stopPropagation() (e.g. in its own pointerup handler) can't\n // prevent the gesture from ending. See #2794.\n const eventOptions = { passive: true, capture: true };\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove, eventOptions), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp, eventOptions), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp, eventOptions));\n // Start scroll tracking if element provided\n if (element) {\n this.startScrollTracking(element);\n }\n }\n /**\n * Start tracking scroll on ancestors and window.\n */\n startScrollTracking(element) {\n // Store initial scroll positions for scrollable ancestors\n let current = element.parentElement;\n while (current) {\n const style = getComputedStyle(current);\n if (overflowStyles.has(style.overflowX) ||\n overflowStyles.has(style.overflowY)) {\n this.scrollPositions.set(current, {\n x: current.scrollLeft,\n y: current.scrollTop,\n });\n }\n current = current.parentElement;\n }\n // Track window scroll\n this.scrollPositions.set(window, {\n x: window.scrollX,\n y: window.scrollY,\n });\n // Capture listener catches element scroll events as they bubble\n window.addEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n });\n // Direct window scroll listener (window scroll doesn't bubble)\n window.addEventListener(\"scroll\", this.onWindowScroll);\n this.removeScrollListeners = () => {\n window.removeEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n });\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n };\n }\n /**\n * Handle scroll compensation during drag.\n *\n * For element scroll: adjusts history origin since pageX/pageY doesn't change.\n * For window scroll: adjusts lastMoveEventInfo since pageX/pageY would change.\n */\n handleScroll(target) {\n const initial = this.scrollPositions.get(target);\n if (!initial)\n return;\n const isWindow = target === window;\n const current = isWindow\n ? { x: window.scrollX, y: window.scrollY }\n : {\n x: target.scrollLeft,\n y: target.scrollTop,\n };\n const delta = { x: current.x - initial.x, y: current.y - initial.y };\n if (delta.x === 0 && delta.y === 0)\n return;\n if (isWindow) {\n // Window scroll: pageX/pageY changes, so update lastMoveEventInfo\n if (this.lastMoveEventInfo) {\n this.lastMoveEventInfo.point.x += delta.x;\n this.lastMoveEventInfo.point.y += delta.y;\n }\n }\n else {\n // Element scroll: pageX/pageY unchanged, so adjust history origin\n if (this.history.length > 0) {\n this.history[0].x -= delta.x;\n this.history[0].y -= delta.y;\n }\n }\n this.scrollPositions.set(target, current);\n frame.update(this.updatePoint, true);\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n this.removeScrollListeners && this.removeScrollListeners();\n this.scrollPositions.clear();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n /**\n * If the selected point is the pointer-down origin (history[0]),\n * there are better movement points available, and the time gap\n * is suspiciously large (>2x timeDelta), use the next point instead.\n * This prevents stale pointer-down points from diluting velocity\n * in hold-then-flick gestures.\n */\n if (timestampedPoint === history[0] &&\n history.length > 2 &&\n lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta) * 2) {\n timestampedPoint = history[1];\n }\n const seconds = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (seconds === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / seconds,\n y: (lastPoint.y - timestampedPoint.y) / seconds,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n//# sourceMappingURL=PanSession.mjs.map\n"],"names":["overflowStyles","Set","transformPoint","info","transformPagePoint","point","subtractPoint","a","b","x","y","getPanInfo","history","delta","lastDevicePoint","offset","startDevicePoint","velocity","getVelocity","length","timeDelta","i","timestampedPoint","lastPoint","timestamp","secondsToMilliseconds","seconds","millisecondsToSeconds","currentVelocity","Infinity","constructor","event","handlers","contextWindow","window","dragSnapToOrigin","distanceThreshold","element","this","startEvent","lastMoveEvent","lastMoveEventInfo","lastRawMoveEventInfo","scrollPositions","Map","removeScrollListeners","onElementScroll","handleScroll","target","onWindowScroll","updatePoint","hasPendingMove","isPanStarted","isDistancePastThreshold","distance2D","push","time","now","onStart","onMove","handlePointerMove","frame","update","handlePointerUp","end","onEnd","onSessionEnd","resumeAnimation","panInfo","type","isPrimaryPointer","initialInfo","extractEventInfo","frameData","onSessionStart","eventOptions","passive","capture","removeListeners","pipe","addPointerEvent","startScrollTracking","current","parentElement","style","getComputedStyle","has","overflowX","overflowY","set","scrollLeft","scrollTop","scrollX","scrollY","addEventListener","removeEventListener","initial","get","isWindow","updateHandlers","clear","cancelFrame"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/is-html-element.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../scope/active.mjs.js"),s=require("../../utils/is-html-element.mjs.js"),r=require("../drag/state/is-active.mjs.js"),t=require("../utils/is-node-or-child.mjs.js"),i=require("../utils/is-primary-pointer.mjs.js"),n=require("../utils/setup.mjs.js"),o=require("./utils/is-keyboard-accessible.mjs.js"),a=require("./utils/keyboard.mjs.js"),u=require("./utils/state.mjs.js");function d(e){return i.isPrimaryPointer(e)&&!r.isDragActive()}const c=new WeakSet;exports.press=function(r,i,l={}){i=e.bindToScope(i);const[p,j,m]=n.setupGesture(r,l),b=e=>{const s=e.currentTarget;if(!d(e))return;if(c.has(e))return;u.isPressing.add(s),l.stopPropagation&&c.add(e);const r=i(s,e),n={...j,capture:!0},o=(e,t)=>{window.removeEventListener("pointerup",a,n),window.removeEventListener("pointercancel",p,n),u.isPressing.has(s)&&u.isPressing.delete(s),d(e)&&"function"==typeof r&&r(e,{success:t})},a=e=>{o(e,s===window||s===document||l.useGlobalTarget||t.isNodeOrChild(s,e.target))},p=e=>{o(e,!1)};window.addEventListener("pointerup",a,n),window.addEventListener("pointercancel",p,n)};return p.forEach(e=>{(l.useGlobalTarget?window:e).addEventListener("pointerdown",b,j),s.isHTMLElement(e)&&(e.addEventListener("focus",()=>a.enableKeyboardPress(e,j),j),o.isElementKeyboardAccessible(e)||e.hasAttribute("tabindex")||(e.tabIndex=0))}),m};
|
|
2
2
|
//# sourceMappingURL=index.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/press/index.mjs"],"sourcesContent":["import { isHTMLElement } from '../../utils/is-html-element.mjs';\nimport { isDragActive } from '../drag/state/is-active.mjs';\nimport { isNodeOrChild } from '../utils/is-node-or-child.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { setupGesture } from '../utils/setup.mjs';\nimport { isElementKeyboardAccessible } from './utils/is-keyboard-accessible.mjs';\nimport { enableKeyboardPress } from './utils/keyboard.mjs';\nimport { isPressing } from './utils/state.mjs';\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return isPrimaryPointer(event) && !isDragActive();\n}\nconst claimedPointerDownEvents = new WeakSet();\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n if (claimedPointerDownEvents.has(startEvent))\n return;\n isPressing.add(target);\n if (options.stopPropagation) {\n claimedPointerDownEvents.add(startEvent);\n }\n const onPressEnd = onPressStart(target, startEvent);\n /**\n * End listeners run in the capture phase so a descendant calling\n * stopPropagation() in its own pointerup handler can't prevent the\n * press gesture from ending. This also keeps the gesture-end\n * ordering consistent with the drag gesture. See #2794.\n */\n const endEventOptions = { ...eventOptions, capture: true };\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp, endEventOptions);\n window.removeEventListener(\"pointercancel\", onPointerCancel, endEventOptions);\n if (isPressing.has(target)) {\n isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n isNodeOrChild(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, endEventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, endEventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if (isHTMLElement(target)) {\n target.addEventListener(\"focus\", (
|
|
1
|
+
{"version":3,"file":"index.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/press/index.mjs"],"sourcesContent":["import { bindToScope } from '../../scope/active.mjs';\nimport { isHTMLElement } from '../../utils/is-html-element.mjs';\nimport { isDragActive } from '../drag/state/is-active.mjs';\nimport { isNodeOrChild } from '../utils/is-node-or-child.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { setupGesture } from '../utils/setup.mjs';\nimport { isElementKeyboardAccessible } from './utils/is-keyboard-accessible.mjs';\nimport { enableKeyboardPress } from './utils/keyboard.mjs';\nimport { isPressing } from './utils/state.mjs';\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return isPrimaryPointer(event) && !isDragActive();\n}\nconst claimedPointerDownEvents = new WeakSet();\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n onPressStart = bindToScope(onPressStart);\n const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n if (claimedPointerDownEvents.has(startEvent))\n return;\n isPressing.add(target);\n if (options.stopPropagation) {\n claimedPointerDownEvents.add(startEvent);\n }\n const onPressEnd = onPressStart(target, startEvent);\n /**\n * End listeners run in the capture phase so a descendant calling\n * stopPropagation() in its own pointerup handler can't prevent the\n * press gesture from ending. This also keeps the gesture-end\n * ordering consistent with the drag gesture. See #2794.\n */\n const endEventOptions = { ...eventOptions, capture: true };\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp, endEventOptions);\n window.removeEventListener(\"pointercancel\", onPointerCancel, endEventOptions);\n if (isPressing.has(target)) {\n isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n isNodeOrChild(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, endEventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, endEventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if (isHTMLElement(target)) {\n target.addEventListener(\"focus\", () => enableKeyboardPress(target, eventOptions), eventOptions);\n if (!isElementKeyboardAccessible(target) &&\n !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\n\nexport { press };\n//# sourceMappingURL=index.mjs.map\n"],"names":["isValidPressEvent","event","isPrimaryPointer","isDragActive","claimedPointerDownEvents","WeakSet","targetOrSelector","onPressStart","options","bindToScope","targets","eventOptions","cancelEvents","setupGesture","startPress","startEvent","target","currentTarget","has","isPressing","add","stopPropagation","onPressEnd","endEventOptions","capture","onPointerEnd","endEvent","success","window","removeEventListener","onPointerUp","onPointerCancel","delete","upEvent","document","useGlobalTarget","isNodeOrChild","cancelEvent","addEventListener","forEach","isHTMLElement","enableKeyboardPress","isElementKeyboardAccessible","hasAttribute","tabIndex"],"mappings":"scAiBA,SAASA,EAAkBC,GACvB,OAAOC,mBAAiBD,KAAWE,EAAYA,cACnD,CAEA,MAAMC,EAA2B,IAAIC,sBA0B/B,SACFC,EACAC,EACAC,EAA+B,CAAA,GAE/BD,EAAeE,EAAAA,YAAYF,GAE3B,MAAOG,EAASC,EAAcC,GAAgBC,eAC1CP,EACAE,GAGEM,EAAcC,IAChB,MAAMC,EAASD,EAAWE,cAE1B,IAAKjB,EAAkBe,GAAa,OACpC,GAAIX,EAAyBc,IAAIH,GAAa,OAE9CI,aAAWC,IAAIJ,GAEXR,EAAQa,iBACRjB,EAAyBgB,IAAIL,GAGjC,MAAMO,EAAaf,EAAaS,EAAQD,GAQlCQ,EAAkB,IAAKZ,EAAca,SAAS,GAE9CC,EAAeA,CAACC,EAAwBC,KAC1CC,OAAOC,oBACH,YACAC,EACAP,GAEJK,OAAOC,oBACH,gBACAE,EACAR,GAGAJ,EAAUA,WAACD,IAAIF,IACfG,aAAWa,OAAOhB,GAGjBhB,EAAkB0B,IAIG,mBAAfJ,GACPA,EAAWI,EAAU,CAAEC,aAIzBG,EAAeG,IACjBR,EACIQ,EACCjB,IAAmBY,QACfZ,IAAmBkB,UACpB1B,EAAQ2B,iBACRC,EAAAA,cAAcpB,EAAQiB,EAAQjB,UAIpCe,EAAmBM,IACrBZ,EAAaY,GAAa,IAG9BT,OAAOU,iBAAiB,YAAaR,EAAaP,GAClDK,OAAOU,iBACH,gBACAP,EACAR,IA4BR,OAxBAb,EAAQ6B,QAASvB,KACaR,EAAQ2B,gBAAkBP,OAASZ,GAC3CsB,iBACd,cACAxB,EACAH,GAGA6B,EAAAA,cAAcxB,KACdA,EAAOsB,iBACH,QACA,IAAMG,EAAAA,oBAAoBzB,EAAQL,GAClCA,GAIC+B,EAA2BA,4BAAC1B,IAC5BA,EAAO2B,aAAa,cAErB3B,EAAO4B,SAAW,MAKvBhC,CACX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./state.mjs.js");function n(e){return n=>{"Enter"===n.key&&e(n)}}function t(e,n){e.dispatchEvent(new PointerEvent("pointer"+n,{isPrimary:!0,bubbles:!0}))}exports.enableKeyboardPress=(r,s)=>{
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./state.mjs.js");function n(e){return n=>{"Enter"===n.key&&e(n)}}function t(e,n){e.dispatchEvent(new PointerEvent("pointer"+n,{isPrimary:!0,bubbles:!0}))}exports.enableKeyboardPress=(r,s)=>{let i=!1;const o=n(()=>{e.isPressing.has(r)||(i=!0,t(r,"down"))}),d=n(()=>{i&&(i=!1,t(r,"up"))});r.addEventListener("keydown",o,s),r.addEventListener("keyup",d,s),r.addEventListener("blur",()=>{r.removeEventListener("keydown",o),r.removeEventListener("keyup",d),i&&t(r,"cancel")},{...s,once:!0})};
|
|
2
2
|
//# sourceMappingURL=keyboard.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.mjs.js","sources":["../../../../../../../../node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs"],"sourcesContent":["import { isPressing } from './state.mjs';\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (
|
|
1
|
+
{"version":3,"file":"keyboard.mjs.js","sources":["../../../../../../../../node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs"],"sourcesContent":["import { isPressing } from './state.mjs';\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (element, eventOptions) => {\n /**\n * Listeners are scoped to this focus and all released on blur, rather\n * than added per Enter press, so they can't accumulate and fire\n * duplicate pointerup/pointercancel events. See #3935.\n */\n let isKeyPressing = false;\n const handleKeydown = filterEvents(() => {\n if (isPressing.has(element))\n return;\n isKeyPressing = true;\n firePointerEvent(element, \"down\");\n });\n const handleKeyup = filterEvents(() => {\n if (!isKeyPressing)\n return;\n isKeyPressing = false;\n firePointerEvent(element, \"up\");\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n /**\n * On blur, remove the key listeners and cancel any keyboard press.\n */\n element.addEventListener(\"blur\", () => {\n element.removeEventListener(\"keydown\", handleKeydown);\n element.removeEventListener(\"keyup\", handleKeyup);\n if (isKeyPressing)\n firePointerEvent(element, \"cancel\");\n }, { ...eventOptions, once: true });\n};\n\nexport { enableKeyboardPress };\n//# sourceMappingURL=keyboard.mjs.map\n"],"names":["filterEvents","callback","event","key","firePointerEvent","target","type","dispatchEvent","PointerEvent","isPrimary","bubbles","enableKeyboardPress","element","eventOptions","isKeyPressing","handleKeydown","isPressing","has","handleKeyup","addEventListener","removeEventListener","once"],"mappings":"oGAKA,SAASA,EAAaC,GAClB,OAAQC,IACc,UAAdA,EAAMC,KACVF,EAASC,GAEjB,CAEA,SAASE,EAAiBC,EAAqBC,GAC3CD,EAAOE,cACH,IAAIC,aAAa,UAAYF,EAAM,CAAEG,WAAW,EAAMC,SAAS,IAEvE,6BAEmCC,CAC/BC,EACAC,KAOA,IAAIC,GAAgB,EAEpB,MAAMC,EAAgBf,EAAa,KAC3BgB,aAAWC,IAAIL,KACnBE,GAAgB,EAChBV,EAAiBQ,EAAS,WAGxBM,EAAclB,EAAa,KACxBc,IACLA,GAAgB,EAChBV,EAAiBQ,EAAS,SAG9BA,EAAQO,iBAAiB,UAAWJ,EAAeF,GACnDD,EAAQO,iBAAiB,QAASD,EAAaL,GAK/CD,EAAQO,iBACJ,OACA,KACIP,EAAQQ,oBAAoB,UAAWL,GACvCH,EAAQQ,oBAAoB,QAASF,GACjCJ,GAAeV,EAAiBQ,EAAS,WAEjD,IAAKC,EAAcQ,MAAM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/resolve-elements.mjs.js");exports.setupGesture=function(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/resolve-elements.mjs.js"),s=require("../../scope/active.mjs.js");exports.setupGesture=function(r,t){const o=e.resolveElements(r),l=new AbortController;return[o,{passive:!0,...t,signal:l.signal},s.addToScope(()=>l.abort())]};
|
|
2
2
|
//# sourceMappingURL=setup.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/utils/setup.mjs"],"sourcesContent":["import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n"],"names":["elementOrSelector","options","elements","resolveElements","gestureAbortController","AbortController","passive","signal","
|
|
1
|
+
{"version":3,"file":"setup.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/gestures/utils/setup.mjs"],"sourcesContent":["import { resolveElements } from '../../utils/resolve-elements.mjs';\nimport { addToScope } from '../../scope/active.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = addToScope(() => gestureAbortController.abort());\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n"],"names":["elementOrSelector","options","elements","resolveElements","gestureAbortController","AbortController","passive","signal","addToScope","abort"],"mappings":"qLAOM,SACFA,EACAC,GAEA,MAAMC,EAAWC,kBAAgBH,GAE3BI,EAAyB,IAAIC,gBAUnC,MAAO,CAACH,EARa,CACjBI,SAAS,KACNL,EACHM,OAAQH,EAAuBG,QAGpBC,EAAUA,WAAC,IAAMJ,EAAuBK,SAG3D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/mix/number.mjs.js"),t=require("../../value/types/numbers/units.mjs.js"),r=require("../../utils/border-radius.mjs.js"),i=require("../../../../../motion-utils/dist/es/easing/circ.mjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/mix/number.mjs.js"),t=require("../../value/types/numbers/units.mjs.js"),r=require("../../utils/border-radius.mjs.js"),s=require("../../value/utils/as-number.mjs.js"),i=require("../../../../../motion-utils/dist/es/easing/circ.mjs.js"),o=require("../../../../../motion-utils/dist/es/progress.mjs.js"),u=require("../../../../../motion-utils/dist/es/noop.mjs.js");const n=r.cornerRadiusProps.length,m=["rotate","rotateX","rotateY","rotateZ","skewX","skewY"],a=m.length,c=e=>"number"==typeof e||t.px.test(e);function p(e,t){return void 0!==e[t]?e[t]:e.borderRadius}const l=b(0,.5,i.circOut),j=b(.5,.95,u.noop);function b(e,t,r){return s=>s<e?0:s>t?1:r(o.progress(e,t,s))}exports.mixValues=function(i,o,u,b,d,x){d?(i.opacity=e.mixNumber(0,u.opacity??1,l(b)),i.opacityExit=e.mixNumber(o.opacity??1,0,j(b))):x&&(i.opacity=e.mixNumber(o.opacity??1,u.opacity??1,b));for(let m=0;m<n;m++){const n=r.cornerRadiusProps[m];let a=p(o,n),l=p(u,n);if(void 0===a&&void 0===l)continue;a||(a=0),l||(l=0);0===a||0===l||c(a)===c(l)?(i[n]=Math.max(e.mixNumber(s.asNumber(a),s.asNumber(l),b),0),(t.percent.test(l)||t.percent.test(a))&&(i[n]+="%")):i[n]=l}for(let t=0;t<a;t++){const r=m[t];(o[r]||u[r])&&(i[r]=e.mixNumber(o[r]||0,u[r]||0,b))}};
|
|
2
2
|
//# sourceMappingURL=mix-values.mjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mix-values.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs"],"sourcesContent":["import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\nimport { progress, circOut, noop } from 'motion-utils';\nimport { cornerRadiusProps } from '../../utils/border-radius.mjs';\n\nconst numBorders = cornerRadiusProps.length;\nconst
|
|
1
|
+
{"version":3,"file":"mix-values.mjs.js","sources":["../../../../../../../node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs"],"sourcesContent":["import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\nimport { progress, circOut, noop } from 'motion-utils';\nimport { cornerRadiusProps } from '../../utils/border-radius.mjs';\nimport { asNumber } from '../../value/utils/as-number.mjs';\n\nconst numBorders = cornerRadiusProps.length;\nconst mixedTransforms = [\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skewX\",\n \"skewY\",\n];\nconst numMixedTransforms = mixedTransforms.length;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity ?? 1, lead.opacity ?? 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = cornerRadiusProps[i];\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation and skew. These can't be projected, so mix them every\n * frame rather than leaving them frozen at the animation-start snapshot.\n */\n for (let i = 0; i < numMixedTransforms; i++) {\n const key = mixedTransforms[i];\n if (follow[key] || lead[key]) {\n target[key] = mixNumber(follow[key] || 0, lead[key] || 0, progress);\n }\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n//# sourceMappingURL=mix-values.mjs.map\n"],"names":["numBorders","cornerRadiusProps","length","mixedTransforms","numMixedTransforms","isPx","value","px","test","getRadius","values","radiusName","undefined","borderRadius","easeCrossfadeIn","compress","circOut","easeCrossfadeOut","noop","min","max","easing","p","calcProgress","target","follow","lead","progress","shouldCrossfadeOpacity","isOnlyMember","opacity","mixNumber","opacityExit","i","borderLabel","followRadius","leadRadius","Math","asNumber","percent","key"],"mappings":"ucAaA,MAAMA,EAAaC,EAAiBA,kBAACC,OAE/BC,EAAkB,CACpB,SACA,UACA,UACA,UACA,QACA,SAEEC,EAAqBD,EAAgBD,OAErCG,EAAQC,GACO,iBAAVA,GAAsBC,KAAGC,KAAKF,GAiFzC,SAASG,EAAUC,EAAwBC,GACvC,YAA8BC,IAAvBF,EAAOC,GACRD,EAAOC,GACPD,EAAOG,YACjB,CAEA,MAAMC,EAAgCC,EAAS,EAAG,GAAKC,EAAOA,SACxDC,EAAiCF,EAAS,GAAK,IAAMG,EAAIA,MAE/D,SAASH,EACLI,EACAC,EACAC,GAEA,OAAQC,GAEAA,EAAIH,EAAY,EAChBG,EAAIF,EAAY,EACbC,EAAOE,EAAAA,SAAaJ,EAAKC,EAAKE,GAE7C,mBAnGM,SACFE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEID,GACAJ,EAAOM,QAAUC,EAASA,UACtB,EACCL,EAAKI,SAAsB,EAC5BhB,EAAgBa,IAEpBH,EAAOQ,YAAcD,EAASA,UACzBN,EAAOK,SAAsB,EAC9B,EACAb,EAAiBU,KAEdE,IACPL,EAAOM,QAAUC,YACZN,EAAOK,SAAsB,EAC7BJ,EAAKI,SAAsB,EAC5BH,IAOR,IAAK,IAAIM,EAAI,EAAGA,EAAIjC,EAAYiC,IAAK,CACjC,MAAMC,EAAcjC,oBAAkBgC,GACtC,IAAIE,EAAe1B,EAAUgB,EAAQS,GACjCE,EAAa3B,EAAUiB,EAAMQ,GAEjC,QAAqBtB,IAAjBuB,QAA6CvB,IAAfwB,EAA0B,SAE5DD,IAAAA,EAAiB,GACjBC,IAAAA,EAAe,GAGM,IAAjBD,GACe,IAAfC,GACA/B,EAAK8B,KAAkB9B,EAAK+B,IAG5BZ,EAAOU,GAAeG,KAAKjB,IACvBW,EAASA,UACLO,EAAQA,SAACH,GACTG,EAAQA,SAACF,GACTT,GAEJ,IAGAY,EAAAA,QAAQ/B,KAAK4B,IAAeG,EAAAA,QAAQ/B,KAAK2B,MACzCX,EAAOU,IAAgB,MAG3BV,EAAOU,GAAeE,CAE9B,CAMA,IAAK,IAAIH,EAAI,EAAGA,EAAI7B,EAAoB6B,IAAK,CACzC,MAAMO,EAAMrC,EAAgB8B,IACxBR,EAAOe,IAAQd,EAAKc,MACpBhB,EAAOgB,GAAOT,EAASA,UAClBN,EAAOe,IAAmB,EAC1Bd,EAAKc,IAAmB,EACzBb,GAGZ,CACJ"}
|