function get_template_variables($instance, $args)
 {
     if (empty($instance)) {
         return array();
     }
     $settings = $instance['settings'];
     $mrkr_src = wp_get_attachment_image_src($instance['markers']['marker_icon']);
     $styles = $this->get_styles($instance);
     if ($settings['map_type'] == 'static') {
         $src_url = $this->get_static_image_src($instance, $settings['width'], $settings['height'], !empty($styles) ? $styles['styles'] : array());
         return array('src_url' => sow_esc_url($src_url));
     } else {
         $markers = $instance['markers'];
         $directions_json = '';
         if (!empty($instance['directions']['origin']) && !empty($instance['directions']['destination'])) {
             if (empty($instance['directions']['waypoints'])) {
                 unset($instance['directions']['waypoints']);
             }
             $directions_json = json_encode(siteorigin_widgets_underscores_to_camel_case($instance['directions']));
         }
         return array('map_id' => md5($instance['map_center']), 'height' => $settings['height'], 'map_data' => array('address' => $instance['map_center'], 'zoom' => $settings['zoom'], 'scroll-zoom' => $settings['scroll_zoom'], 'draggable' => $settings['draggable'], 'marker-icon' => !empty($mrkr_src) ? $mrkr_src[0] : '', 'markers-draggable' => isset($markers['markers_draggable']) ? $markers['markers_draggable'] : '', 'marker-at-center' => $markers['marker_at_center'], 'marker-positions' => isset($markers['marker_positions']) ? json_encode($markers['marker_positions']) : '', 'map-name' => !empty($styles) ? $styles['map_name'] : '', 'map-styles' => !empty($styles) ? json_encode($styles['styles']) : '', 'directions' => $directions_json, 'api-key' => $instance['api_key_section']['api_key']));
     }
 }
 public function get_template_variables($instance, $args)
 {
     return array('items' => $instance['items'], 'layouts' => array('desktop' => siteorigin_widgets_underscores_to_camel_case(array('num_columns' => $instance['desktop_layout']['columns'], 'row_height' => empty($instance['desktop_layout']['row_height']) ? 0 : intval($instance['desktop_layout']['row_height']), 'gutter' => empty($instance['desktop_layout']['gutter']) ? 0 : intval($instance['desktop_layout']['gutter']))), 'tablet' => siteorigin_widgets_underscores_to_camel_case(array('break_point' => $instance['tablet_layout']['break_point'], 'num_columns' => $instance['tablet_layout']['columns'], 'row_height' => empty($instance['tablet_layout']['row_height']) ? 0 : intval($instance['tablet_layout']['row_height']), 'gutter' => empty($instance['tablet_layout']['gutter']) ? 0 : intval($instance['tablet_layout']['gutter']))), 'mobile' => siteorigin_widgets_underscores_to_camel_case(array('break_point' => $instance['mobile_layout']['break_point'], 'num_columns' => $instance['mobile_layout']['columns'], 'row_height' => empty($instance['mobile_layout']['row_height']) ? 0 : intval($instance['mobile_layout']['row_height']), 'gutter' => empty($instance['mobile_layout']['gutter']) ? 0 : intval($instance['mobile_layout']['gutter'])))));
 }
    protected function render_field($value, $instance)
    {
        if (!isset($this->fields) || empty($this->fields)) {
            return;
        }
        $container = array('name' => $this->base_name, 'type' => 'repeater');
        $item_label = isset($this->item_label) ? $this->item_label : null;
        if (!empty($item_label)) {
            // convert underscore naming convention to camelCase for javascript and encode as json string
            $item_label = siteorigin_widgets_underscores_to_camel_case($item_label);
            $item_label = json_encode($item_label);
        }
        if (empty($this->item_name)) {
            $this->item_name = __('Item', 'siteorigin-widgets');
        }
        ?>
		<div class="siteorigin-widget-field-repeater"
		     data-item-name="<?php 
        echo esc_attr($this->item_name);
        ?>
"
		     data-repeater-name="<?php 
        echo esc_attr($this->base_name);
        ?>
"
		     data-element-name="<?php 
        echo esc_attr($this->element_name);
        ?>
"
			<?php 
        echo !empty($item_label) ? 'data-item-label="' . esc_attr($item_label) . '"' : '';
        ?>
			<?php 
        echo !empty($this->scroll_count) ? 'data-scroll-count="' . esc_attr($this->scroll_count) . '"' : '';
        ?>
			<?php 
        if (!empty($this->readonly)) {
            echo 'readonly';
        }
        ?>
>
			<div class="siteorigin-widget-field-repeater-top">
				<div class="siteorigin-widget-field-repeater-expend"></div>
				<h3><?php 
        echo esc_html($this->label);
        ?>
</h3>
			</div>
			<div class="siteorigin-widget-field-repeater-items">
				<?php 
        if (!empty($value)) {
            foreach ($value as $v) {
                ?>
						<div class="siteorigin-widget-field-repeater-item ui-draggable">
							<div class="siteorigin-widget-field-repeater-item-top">
								<div class="siteorigin-widget-field-expand"></div>
								<?php 
                if (empty($this->readonly)) {
                    ?>
									<div class="siteorigin-widget-field-remove"></div>
								<?php 
                }
                ?>
								<h4><?php 
                echo esc_html($this->item_name);
                ?>
</h4>
							</div>
							<div class="siteorigin-widget-field-repeater-item-form">
								<?php 
                $this->create_and_render_sub_fields($v, $container);
                ?>
							</div>
						</div>
						<?php 
            }
        }
        ?>
			</div>
			<?php 
        if (empty($this->readonly)) {
            ?>
				<div class="siteorigin-widget-field-repeater-add"><?php 
            esc_html_e('Add', 'siteorigin-widgets');
            ?>
</div>
			<?php 
        }
        ?>
			<?php 
        ob_start();
        $this->create_and_render_sub_fields(null, $container, true);
        $rpt_fields = ob_get_clean();
        $rpt_fields = preg_replace('/\\s+name\\s*=\\s*/', ' data-name=', $rpt_fields);
        ?>
			<div class="siteorigin-widget-field-repeatear-item-html" style="display: none;">
				<?php 
        echo $rpt_fields;
        ?>
			</div>
		</div>
		<?php 
    }