/**
  * Return an instance of the renderer class based on the type of the layer.
  *
  * @since 4.0.0
  * 
  * @param  array  $data The data of the layer.
  * @return object       An instance of the appropriate renderer class.
  */
 public static function create_layer($data)
 {
     if (is_null(self::$default_type)) {
         $default_settings = BQW_SliderPro_Settings::getLayerSettings();
         self::$default_type = $default_settings['type']['default_value'];
     }
     $type = isset($data['type']) ? $data['type'] : self::$default_type;
     foreach (self::$registered_types as $registered_type_name => $registered_type_class) {
         if ($type === $registered_type_name) {
             return new $registered_type_class();
         }
     }
 }
 /**
  * AJAX call for adding a new block of layer settings
  *
  * It receives the id and type of the layer, and creates 
  * the appropriate setting fields.
  *
  * @since 4.0.0
  */
 public function ajax_add_layer_settings()
 {
     $layer = array();
     $layer_id = $_POST['id'];
     $layer_type = $_POST['type'];
     $layer_settings;
     if (isset($_POST['settings'])) {
         $layer_settings = json_decode(stripslashes($_POST['settings']), true);
     }
     if (isset($_POST['text'])) {
         $layer['text'] = $_POST['text'];
     }
     if (isset($_POST['heading_type'])) {
         $layer['heading_type'] = $_POST['heading_type'];
     }
     if (isset($_POST['image_source'])) {
         $layer['image_source'] = $_POST['image_source'];
     }
     if (isset($_POST['image_alt'])) {
         $layer['image_alt'] = $_POST['image_alt'];
     }
     if (isset($_POST['image_link'])) {
         $layer['image_link'] = $_POST['image_link'];
     }
     if (isset($_POST['image_retina'])) {
         $layer['image_retina'] = $_POST['image_retina'];
     }
     $layer_default_settings = BQW_SliderPro_Settings::getLayerSettings();
     include 'views/layer-settings.php';
     die;
 }
 /**
  * Initialize the layer renderer.
  * 
  * @since 4.0.0
  */
 public function __construct()
 {
     $this->default_settings = BQW_SliderPro_Settings::getLayerSettings();
 }