default( false ); $schema[ self::JSON_KEY ] = String_Prop_Type::make()->default( '' ); return $schema; } /** * @param array $controls Element controls. * @param object $element v4 element. * @return array */ public static function add_controls( $controls, $element ) { if ( ! Atomic_Extensions::is_container( $element ) ) { return $controls; } $controls[] = Section::make() ->set_id( 'eae_particles_section' ) ->set_label( __( 'AE - Particles', 'wts-eae' ) ) ->set_items( [ Switch_Control::bind_to( self::ENABLE_KEY ) ->set_label( __( 'Particle Background', 'wts-eae' ) ), Textarea_Control::bind_to( self::JSON_KEY ) ->set_label( __( 'Particle JSON', 'wts-eae' ) ) ->set_placeholder( __( 'Paste JSON from vincentgarreau.com/particles.js', 'wts-eae' ) ), ] ); return $controls; } /** * @param object $element Element being rendered. */ public static function collect_config( $element ) { if ( ! Atomic_Extensions::is_container( $element ) ) { return; } $settings = $element->get_data( 'settings' ); if ( ! Atomic_Extensions::get_value( $settings, self::ENABLE_KEY ) ) { return; } $config = json_decode( (string) Atomic_Extensions::get_value( $settings, self::JSON_KEY ), true ); if ( is_array( $config ) ) { Atomic_Extensions::add_config( self::NAME, $element->get_id(), $config ); } } public static function register_assets() { Atomic_Extensions::register_assets( self::NAME, self::HANDLE, 'assets/js/atomic-particles.js', [ 'eae-particles' ], 'assets/css/atomic-particles.css' ); } }