Comparing version 2.7.0 to 2.7.1
import * as React from 'react'; | ||
import type { MotionStatus, MotionEventHandler, MotionEndEventHandler, MotionPrepareEventHandler } from './interface'; | ||
import type { MotionEndEventHandler, MotionEventHandler, MotionPrepareEventHandler, MotionStatus } from './interface'; | ||
export declare type CSSMotionConfig = boolean | { | ||
@@ -36,4 +36,7 @@ transitionSupport?: boolean; | ||
eventProps?: object; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onAppearPrepare?: MotionPrepareEventHandler; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onEnterPrepare?: MotionPrepareEventHandler; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onLeavePrepare?: MotionPrepareEventHandler; | ||
@@ -40,0 +43,0 @@ onAppearStart?: MotionEventHandler; |
@@ -6,13 +6,13 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; | ||
/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */ | ||
import classNames from 'classnames'; | ||
import findDOMNode from "rc-util/es/Dom/findDOMNode"; | ||
import { fillRef, supportRef } from "rc-util/es/ref"; | ||
import * as React from 'react'; | ||
import { useRef } from 'react'; | ||
import findDOMNode from "rc-util/es/Dom/findDOMNode"; | ||
import { fillRef, supportRef } from "rc-util/es/ref"; | ||
import classNames from 'classnames'; | ||
import { getTransitionName, supportTransition } from "./util/motion"; | ||
import { STATUS_NONE, STEP_PREPARE, STEP_START } from "./interface"; | ||
import { Context } from "./context"; | ||
import DomWrapper from "./DomWrapper"; | ||
import useStatus from "./hooks/useStatus"; | ||
import DomWrapper from "./DomWrapper"; | ||
import { isActive } from "./hooks/useStepQueue"; | ||
import { Context } from "./context"; | ||
import { STATUS_NONE, STEP_PREPARE, STEP_START } from "./interface"; | ||
import { getTransitionName, supportTransition } from "./util/motion"; | ||
/** | ||
@@ -88,3 +88,3 @@ * `transitionSupport` is used for none transition test case. | ||
motionChildren = null; | ||
} else if (status === STATUS_NONE || !isSupportTransition(props, contextMotion)) { | ||
} else if (status === STATUS_NONE) { | ||
// Stable children | ||
@@ -91,0 +91,0 @@ if (mergedVisible) { |
import * as React from 'react'; | ||
import type { CSSMotionProps } from '../CSSMotion'; | ||
import type { MotionStatus, StepStatus } from '../interface'; | ||
import type { CSSMotionProps } from '../CSSMotion'; | ||
export default function useStatus(supportMotion: boolean, visible: boolean, getElement: () => HTMLElement, { motionEnter, motionAppear, motionLeave, motionDeadline, motionLeaveImmediately, onAppearPrepare, onEnterPrepare, onLeavePrepare, onAppearStart, onEnterStart, onLeaveStart, onAppearActive, onEnterActive, onLeaveActive, onAppearEnd, onEnterEnd, onLeaveEnd, onVisibleChanged, }: CSSMotionProps): [MotionStatus, StepStatus, React.CSSProperties, boolean]; |
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; | ||
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; | ||
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; | ||
import useState from "rc-util/es/hooks/useState"; | ||
import * as React from 'react'; | ||
import { useRef, useEffect } from 'react'; | ||
import useState from "rc-util/es/hooks/useState"; | ||
import { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from "../interface"; | ||
import useStepQueue, { DoStep, SkipStep, isActive } from "./useStepQueue"; | ||
import { useEffect, useRef } from 'react'; | ||
import { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from "../interface"; | ||
import useDomMotionEvents from "./useDomMotionEvents"; | ||
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect"; | ||
import useStepQueue, { DoStep, isActive, SkipStep } from "./useStepQueue"; | ||
export default function useStatus(supportMotion, visible, getElement, _ref) { | ||
@@ -56,2 +56,10 @@ var _ref$motionEnter = _ref.motionEnter, | ||
var activeRef = useRef(false); | ||
/** | ||
* Clean up status & style | ||
*/ | ||
function updateMotionEndStatus() { | ||
setStatus(STATUS_NONE, true); | ||
setStyle(null, true); | ||
} | ||
function onInternalMotionEnd(event) { | ||
@@ -77,4 +85,3 @@ var element = getDomElement(); | ||
if (status !== STATUS_NONE && currentActive && canEnd !== false) { | ||
setStatus(STATUS_NONE, true); | ||
setStyle(null, true); | ||
updateMotionEndStatus(); | ||
} | ||
@@ -100,3 +107,3 @@ } | ||
}, [status]); | ||
var _useStepQueue = useStepQueue(status, function (newStep) { | ||
var _useStepQueue = useStepQueue(status, !supportMotion, function (newStep) { | ||
// Only prepare step can be skip | ||
@@ -128,2 +135,5 @@ if (newStep === STEP_PREPARE) { | ||
} | ||
if (step === STEP_PREPARED) { | ||
updateMotionEndStatus(); | ||
} | ||
return DoStep; | ||
@@ -143,5 +153,7 @@ }), | ||
mountedRef.current = true; | ||
if (!supportMotion) { | ||
return; | ||
} | ||
// if (!supportMotion) { | ||
// return; | ||
// } | ||
var nextStatus; | ||
@@ -148,0 +160,0 @@ |
@@ -1,2 +0,2 @@ | ||
import type { StepStatus, MotionStatus } from '../interface'; | ||
import type { MotionStatus, StepStatus } from '../interface'; | ||
/** Skip current step */ | ||
@@ -7,3 +7,3 @@ export declare const SkipStep: false; | ||
export declare function isActive(step: StepStatus): boolean; | ||
declare const _default: (status: MotionStatus, callback: (step: StepStatus) => Promise<void> | void | typeof SkipStep | typeof DoStep) => [() => void, StepStatus]; | ||
declare const _default: (status: MotionStatus, prepareOnly: boolean, callback: (step: StepStatus) => Promise<void> | void | typeof SkipStep | typeof DoStep) => [() => void, StepStatus]; | ||
export default _default; |
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; | ||
import useState from "rc-util/es/hooks/useState"; | ||
import * as React from 'react'; | ||
import useState from "rc-util/es/hooks/useState"; | ||
import { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from "../interface"; | ||
import { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from "../interface"; | ||
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect"; | ||
import useNextFrame from "./useNextFrame"; | ||
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect"; | ||
var STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED]; | ||
var FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED]; | ||
var SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED]; | ||
@@ -16,3 +17,3 @@ /** Skip current step */ | ||
} | ||
export default (function (status, callback) { | ||
export default (function (status, prepareOnly, callback) { | ||
var _useState = useState(STEP_NONE), | ||
@@ -29,2 +30,3 @@ _useState2 = _slicedToArray(_useState, 2), | ||
} | ||
var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE; | ||
useIsomorphicLayoutEffect(function () { | ||
@@ -38,3 +40,3 @@ if (step !== STEP_NONE && step !== STEP_ACTIVATED) { | ||
setStep(nextStep, true); | ||
} else { | ||
} else if (nextStep) { | ||
// Do as frame for step update | ||
@@ -41,0 +43,0 @@ nextFrame(function (info) { |
@@ -12,3 +12,8 @@ /// <reference types="react" /> | ||
export declare const STEP_ACTIVATED: "end"; | ||
export declare type StepStatus = typeof STEP_NONE | typeof STEP_PREPARE | typeof STEP_START | typeof STEP_ACTIVE | typeof STEP_ACTIVATED; | ||
/** | ||
* Used for disabled motion case. | ||
* Prepare stage will still work but start & active will be skipped. | ||
*/ | ||
export declare const STEP_PREPARED: "prepared"; | ||
export declare type StepStatus = typeof STEP_NONE | typeof STEP_PREPARE | typeof STEP_START | typeof STEP_ACTIVE | typeof STEP_ACTIVATED | typeof STEP_PREPARED; | ||
export declare type MotionEvent = (TransitionEvent | AnimationEvent) & { | ||
@@ -15,0 +20,0 @@ deadline?: boolean; |
@@ -9,2 +9,7 @@ export var STATUS_NONE = 'none'; | ||
export var STEP_ACTIVE = 'active'; | ||
export var STEP_ACTIVATED = 'end'; | ||
export var STEP_ACTIVATED = 'end'; | ||
/** | ||
* Used for disabled motion case. | ||
* Prepare stage will still work but start & active will be skipped. | ||
*/ | ||
export var STEP_PREPARED = 'prepared'; |
import * as React from 'react'; | ||
import type { MotionStatus, MotionEventHandler, MotionEndEventHandler, MotionPrepareEventHandler } from './interface'; | ||
import type { MotionEndEventHandler, MotionEventHandler, MotionPrepareEventHandler, MotionStatus } from './interface'; | ||
export declare type CSSMotionConfig = boolean | { | ||
@@ -36,4 +36,7 @@ transitionSupport?: boolean; | ||
eventProps?: object; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onAppearPrepare?: MotionPrepareEventHandler; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onEnterPrepare?: MotionPrepareEventHandler; | ||
/** Prepare phase is used for measure element info. It will always trigger even motion is off */ | ||
onLeavePrepare?: MotionPrepareEventHandler; | ||
@@ -40,0 +43,0 @@ onAppearStart?: MotionEventHandler; |
@@ -14,12 +14,12 @@ "use strict"; | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _classnames = _interopRequireDefault(require("classnames")); | ||
var _findDOMNode = _interopRequireDefault(require("rc-util/lib/Dom/findDOMNode")); | ||
var _ref2 = require("rc-util/lib/ref"); | ||
var _classnames = _interopRequireDefault(require("classnames")); | ||
var _motion = require("./util/motion"); | ||
var _interface = require("./interface"); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _context = require("./context"); | ||
var _DomWrapper = _interopRequireDefault(require("./DomWrapper")); | ||
var _useStatus3 = _interopRequireDefault(require("./hooks/useStatus")); | ||
var _DomWrapper = _interopRequireDefault(require("./DomWrapper")); | ||
var _useStepQueue = require("./hooks/useStepQueue"); | ||
var _context = require("./context"); | ||
var _interface = require("./interface"); | ||
var _motion = require("./util/motion"); | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
@@ -99,3 +99,3 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
motionChildren = null; | ||
} else if (status === _interface.STATUS_NONE || !isSupportTransition(props, contextMotion)) { | ||
} else if (status === _interface.STATUS_NONE) { | ||
// Stable children | ||
@@ -102,0 +102,0 @@ if (mergedVisible) { |
import * as React from 'react'; | ||
import type { CSSMotionProps } from '../CSSMotion'; | ||
import type { MotionStatus, StepStatus } from '../interface'; | ||
import type { CSSMotionProps } from '../CSSMotion'; | ||
export default function useStatus(supportMotion: boolean, visible: boolean, getElement: () => HTMLElement, { motionEnter, motionAppear, motionLeave, motionDeadline, motionLeaveImmediately, onAppearPrepare, onEnterPrepare, onLeavePrepare, onAppearStart, onEnterStart, onLeaveStart, onAppearActive, onEnterActive, onLeaveActive, onAppearEnd, onEnterEnd, onLeaveEnd, onVisibleChanged, }: CSSMotionProps): [MotionStatus, StepStatus, React.CSSProperties, boolean]; |
@@ -12,8 +12,8 @@ "use strict"; | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
var _useState7 = _interopRequireDefault(require("rc-util/lib/hooks/useState")); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _useState7 = _interopRequireDefault(require("rc-util/lib/hooks/useState")); | ||
var _interface = require("../interface"); | ||
var _useStepQueue3 = _interopRequireWildcard(require("./useStepQueue")); | ||
var _useDomMotionEvents3 = _interopRequireDefault(require("./useDomMotionEvents")); | ||
var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./useIsomorphicLayoutEffect")); | ||
var _useStepQueue3 = _interopRequireWildcard(require("./useStepQueue")); | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
@@ -66,2 +66,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
var activeRef = (0, React.useRef)(false); | ||
/** | ||
* Clean up status & style | ||
*/ | ||
function updateMotionEndStatus() { | ||
setStatus(_interface.STATUS_NONE, true); | ||
setStyle(null, true); | ||
} | ||
function onInternalMotionEnd(event) { | ||
@@ -87,4 +95,3 @@ var element = getDomElement(); | ||
if (status !== _interface.STATUS_NONE && currentActive && canEnd !== false) { | ||
setStatus(_interface.STATUS_NONE, true); | ||
setStyle(null, true); | ||
updateMotionEndStatus(); | ||
} | ||
@@ -110,3 +117,3 @@ } | ||
}, [status]); | ||
var _useStepQueue = (0, _useStepQueue3.default)(status, function (newStep) { | ||
var _useStepQueue = (0, _useStepQueue3.default)(status, !supportMotion, function (newStep) { | ||
// Only prepare step can be skip | ||
@@ -138,2 +145,5 @@ if (newStep === _interface.STEP_PREPARE) { | ||
} | ||
if (step === _interface.STEP_PREPARED) { | ||
updateMotionEndStatus(); | ||
} | ||
return _useStepQueue3.DoStep; | ||
@@ -153,5 +163,7 @@ }), | ||
mountedRef.current = true; | ||
if (!supportMotion) { | ||
return; | ||
} | ||
// if (!supportMotion) { | ||
// return; | ||
// } | ||
var nextStatus; | ||
@@ -158,0 +170,0 @@ |
@@ -1,2 +0,2 @@ | ||
import type { StepStatus, MotionStatus } from '../interface'; | ||
import type { MotionStatus, StepStatus } from '../interface'; | ||
/** Skip current step */ | ||
@@ -7,3 +7,3 @@ export declare const SkipStep: false; | ||
export declare function isActive(step: StepStatus): boolean; | ||
declare const _default: (status: MotionStatus, callback: (step: StepStatus) => Promise<void> | void | typeof SkipStep | typeof DoStep) => [() => void, StepStatus]; | ||
declare const _default: (status: MotionStatus, prepareOnly: boolean, callback: (step: StepStatus) => Promise<void> | void | typeof SkipStep | typeof DoStep) => [() => void, StepStatus]; | ||
export default _default; |
@@ -11,10 +11,11 @@ "use strict"; | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
var _useState3 = _interopRequireDefault(require("rc-util/lib/hooks/useState")); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _useState3 = _interopRequireDefault(require("rc-util/lib/hooks/useState")); | ||
var _interface = require("../interface"); | ||
var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./useIsomorphicLayoutEffect")); | ||
var _useNextFrame3 = _interopRequireDefault(require("./useNextFrame")); | ||
var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./useIsomorphicLayoutEffect")); | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
var STEP_QUEUE = [_interface.STEP_PREPARE, _interface.STEP_START, _interface.STEP_ACTIVE, _interface.STEP_ACTIVATED]; | ||
var FULL_STEP_QUEUE = [_interface.STEP_PREPARE, _interface.STEP_START, _interface.STEP_ACTIVE, _interface.STEP_ACTIVATED]; | ||
var SIMPLE_STEP_QUEUE = [_interface.STEP_PREPARE, _interface.STEP_PREPARED]; | ||
@@ -30,3 +31,3 @@ /** Skip current step */ | ||
} | ||
var _default = function _default(status, callback) { | ||
var _default = function _default(status, prepareOnly, callback) { | ||
var _useState = (0, _useState3.default)(_interface.STEP_NONE), | ||
@@ -43,2 +44,3 @@ _useState2 = (0, _slicedToArray2.default)(_useState, 2), | ||
} | ||
var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE; | ||
(0, _useIsomorphicLayoutEffect.default)(function () { | ||
@@ -52,3 +54,3 @@ if (step !== _interface.STEP_NONE && step !== _interface.STEP_ACTIVATED) { | ||
setStep(nextStep, true); | ||
} else { | ||
} else if (nextStep) { | ||
// Do as frame for step update | ||
@@ -55,0 +57,0 @@ nextFrame(function (info) { |
@@ -12,3 +12,8 @@ /// <reference types="react" /> | ||
export declare const STEP_ACTIVATED: "end"; | ||
export declare type StepStatus = typeof STEP_NONE | typeof STEP_PREPARE | typeof STEP_START | typeof STEP_ACTIVE | typeof STEP_ACTIVATED; | ||
/** | ||
* Used for disabled motion case. | ||
* Prepare stage will still work but start & active will be skipped. | ||
*/ | ||
export declare const STEP_PREPARED: "prepared"; | ||
export declare type StepStatus = typeof STEP_NONE | typeof STEP_PREPARE | typeof STEP_START | typeof STEP_ACTIVE | typeof STEP_ACTIVATED | typeof STEP_PREPARED; | ||
export declare type MotionEvent = (TransitionEvent | AnimationEvent) & { | ||
@@ -15,0 +20,0 @@ deadline?: boolean; |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports.STEP_START = exports.STEP_PREPARE = exports.STEP_NONE = exports.STEP_ACTIVE = exports.STEP_ACTIVATED = exports.STATUS_NONE = exports.STATUS_LEAVE = exports.STATUS_ENTER = exports.STATUS_APPEAR = void 0; | ||
exports.STEP_START = exports.STEP_PREPARED = exports.STEP_PREPARE = exports.STEP_NONE = exports.STEP_ACTIVE = exports.STEP_ACTIVATED = exports.STATUS_NONE = exports.STATUS_LEAVE = exports.STATUS_ENTER = exports.STATUS_APPEAR = void 0; | ||
var STATUS_NONE = 'none'; | ||
@@ -25,2 +25,8 @@ exports.STATUS_NONE = STATUS_NONE; | ||
var STEP_ACTIVATED = 'end'; | ||
exports.STEP_ACTIVATED = STEP_ACTIVATED; | ||
/** | ||
* Used for disabled motion case. | ||
* Prepare stage will still work but start & active will be skipped. | ||
*/ | ||
exports.STEP_ACTIVATED = STEP_ACTIVATED; | ||
var STEP_PREPARED = 'prepared'; | ||
exports.STEP_PREPARED = STEP_PREPARED; |
{ | ||
"name": "rc-motion", | ||
"version": "2.7.0", | ||
"version": "2.7.1", | ||
"description": "React lifecycle controlled motion library", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
106592
2198