: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
$intensityAngle += $rotateX;
$startElement['rotateX'] = "{$intensityAngle}deg";
$intensityAngle += $rotateY;
$startElement['rotateY'] = "{$intensityAngle}deg";
$intensityAngle += $rotateY;
$startElement['rotateY'] = "{$intensityAngle}deg";
$startDeclaration = $this->getTransformDeclaration( $startElement );
$newKeyframeRules = "0%{ $startDeclaration }";
$newKeyframeRules .= "100%{opacity:1;$transformDeclaration}";
$intensityAngle = ceil( ( 90 / 100 ) * $intensity );
$startElements['perspective'] = '2000px';
$rotateX = (float) str_replace( 'deg', '', $utils->array_get( $elements['transform'], 'rotateX', '0' ) );
$rotateY = (float) str_replace( 'deg', '', $utils->array_get( $elements['transform'], 'rotateY', '0' ) );
$intensityAngle += $rotateX;
$startElements['rotateX'] = "{$intensityAngle}deg";
$intensityAngle += $rotateX;
$startElements['rotateX'] = "{$intensityAngle}deg";
$intensityAngle += $rotateY;
$startElements['rotateY'] = "{$intensityAngle}deg";
$intensityAngle += $rotateY;
$startElements['rotateY'] = "{$intensityAngle}deg";
$startDeclaration = $this->getTransformDeclaration( $startElements );
$newKeyframeRules = "0%{{$startDeclaration}}";
$newKeyframeRules .= "100%{opacity:1;${transformDeclaration}}";
// replace origin declaration to preserve animation direction setting only if transform origin is not set
if ( empty( $elements['origin'] ) ) {
$originDeclaration = "transform-origin: $direction;";
$originDeclaration = sprintf( 'transform-origin: %s;', implode( ' ', $elements['origin'] ) );
$newAnimationRules .= $originDeclaration;
$rotateZ = (float) str_replace( 'deg', '', $utils->array_get( $elements['transform'], 'rotateZ', '0' ) );
$intensityAngle = ceil( ( 360 / 100 ) * $intensity );
if ( 'bottom' === $direction || 'right' === $direction ) {
$startElements['rotateZ'] = sprintf( "%sdeg", ( $intensityAngle * -1 ) + $rotateZ );
$startElements['rotateZ'] = sprintf( "%sdeg", $intensityAngle + $rotateZ );
$startDeclaration = $this->getTransformDeclaration( $startElements );
$newKeyframeRules = "0%{ $startDeclaration }";
$newKeyframeRules .= "100%{opacity:1;$transformDeclaration}";
// replace origin declaration to preserve animation direction setting only if transform origin is not set
if ( empty( $elements['origin'] ) ) {
$originDeclaration = "transform-origin: $direction;";
$originDeclaration = sprintf( 'transform-origin: %s;', implode( ' ', $elements['origin'] ) );
$newAnimationRules .= $originDeclaration;
if ( ! empty( $newKeyframeRules ) ) {
'selector' => $newKeyframe,
'declaration' => $newKeyframeRules,
'animationRules' => array(
'selector' => $newAnimationSelector,
'declaration' => $newAnimationRules,
'declaration' => $transformDeclaration . $originDeclaration,
return new ET_Builder_Module_Field_Transform();