Passed
Push — master ( 9ce9c0...fbd145 )
by Kiran
14:52 queued 09:15
created
includes/gateways/class-getpaid-bank-transfer-gateway.php 1 patch
Indentation   +363 added lines, -363 removed lines patch added patch discarded remove patch
@@ -13,47 +13,47 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'bank_transfer';
21 21
 
22
-	/**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
27
-	protected $supports = array(
28
-		'subscription',
29
-		'addons',
30
-		'single_subscription_group',
31
-		'multiple_subscription_groups',
32
-		'subscription_date_change',
33
-		'subscription_bill_times_change',
34
-	);
22
+    /**
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27
+    protected $supports = array(
28
+        'subscription',
29
+        'addons',
30
+        'single_subscription_group',
31
+        'multiple_subscription_groups',
32
+        'subscription_date_change',
33
+        'subscription_bill_times_change',
34
+    );
35
+
36
+    /**
37
+     * Payment method order.
38
+     *
39
+     * @var int
40
+     */
41
+    public $order = 8;
42
+
43
+    /**
44
+     * Bank transfer instructions.
45
+     */
46
+    public $instructions;
35 47
 
36 48
     /**
37
-	 * Payment method order.
38
-	 *
39
-	 * @var int
40
-	 */
41
-	public $order = 8;
42
-
43
-	/**
44
-	 * Bank transfer instructions.
45
-	 */
46
-	public $instructions;
47
-
48
-	/**
49
-	 * Locale array.
50
-	 */
51
-	public $locale;
49
+     * Locale array.
50
+     */
51
+    public $locale;
52 52
 
53 53
     /**
54
-	 * Class constructor.
55
-	 */
56
-	public function __construct() {
54
+     * Class constructor.
55
+     */
56
+    public function __construct() {
57 57
         parent::__construct();
58 58
 
59 59
         $this->title                = __( 'Direct bank transfer', 'invoicing' );
@@ -61,43 +61,43 @@  discard block
 block discarded – undo
61 61
         $this->checkout_button_text = __( 'Proceed', 'invoicing' );
62 62
         $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
63 63
 
64
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
65
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
66
-		add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
67
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
68
-		add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ), 12, 2 );
69
-		add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
70
-
71
-		add_filter( 'wpinv_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
72
-		add_filter( 'getpaid_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
73
-		add_filter( 'getpaid_' . $this->id . '_supports_subscription', array( $this, 'supports_subscription' ), 20, 1 );
74
-	}
75
-
76
-	/**
77
-	 * Check gateway supports for subscription.
78
-	 *
79
-	 * @since 2.8.24
80
-	 *
81
-	 * @param bool $supports True if supports else False.
82
-	 * @return bool True if supports else False.
83
-	 */
84
-	public function supports_subscription( $supports ) {
85
-		if ( $supports && (int) $this->get_option( 'no_subscription' ) ) {
86
-			$supports = false;
87
-		}
88
-
89
-		return $supports;
90
-	}
91
-
92
-	/**
93
-	 * Process Payment.
94
-	 *
95
-	 * @param WPInv_Invoice $invoice Invoice.
96
-	 * @param array $submission_data Posted checkout fields.
97
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
98
-	 * @return array
99
-	 */
100
-	public function process_payment( $invoice, $submission_data, $submission ) {
64
+        add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
65
+        add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
66
+        add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
67
+        add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
68
+        add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ), 12, 2 );
69
+        add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
70
+
71
+        add_filter( 'wpinv_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
72
+        add_filter( 'getpaid_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
73
+        add_filter( 'getpaid_' . $this->id . '_supports_subscription', array( $this, 'supports_subscription' ), 20, 1 );
74
+    }
75
+
76
+    /**
77
+     * Check gateway supports for subscription.
78
+     *
79
+     * @since 2.8.24
80
+     *
81
+     * @param bool $supports True if supports else False.
82
+     * @return bool True if supports else False.
83
+     */
84
+    public function supports_subscription( $supports ) {
85
+        if ( $supports && (int) $this->get_option( 'no_subscription' ) ) {
86
+            $supports = false;
87
+        }
88
+
89
+        return $supports;
90
+    }
91
+
92
+    /**
93
+     * Process Payment.
94
+     *
95
+     * @param WPInv_Invoice $invoice Invoice.
96
+     * @param array $submission_data Posted checkout fields.
97
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
98
+     * @return array
99
+     */
100
+    public function process_payment( $invoice, $submission_data, $submission ) {
101 101
 
102 102
         // Add a transaction id.
103 103
         $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) );
@@ -118,66 +118,66 @@  discard block
 block discarded – undo
118 118
     }
119 119
 
120 120
     /**
121
-	 * Output for the order received page.
122
-	 *
123
-	 * @param WPInv_Invoice $invoice Invoice.
124
-	 */
125
-	public function thankyou_page( $invoice ) {
121
+     * Output for the order received page.
122
+     *
123
+     * @param WPInv_Invoice $invoice Invoice.
124
+     */
125
+    public function thankyou_page( $invoice ) {
126 126
 
127 127
         if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
128 128
 
129
-			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
129
+            echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
130 130
 
131 131
             if ( ! empty( $this->instructions ) ) {
132 132
                 echo wp_kses_post( wpautop( wptexturize( __( wp_unslash( $this->instructions ), 'invoicing' ) ) ) );
133
-			}
133
+            }
134 134
 
135
-			$this->bank_details( $invoice );
135
+            $this->bank_details( $invoice );
136 136
 
137
-			echo '</div>';
137
+            echo '</div>';
138 138
 
139 139
         }
140 140
 
141
-	}
141
+    }
142 142
 
143 143
     /**
144
-	 * Add content to the WPI emails.
145
-	 *
146
-	 * @param WPInv_Invoice $invoice Invoice.
147
-	 * @param string     $email_type Email format: plain text or HTML.
148
-	 * @param bool     $sent_to_admin Sent to admin.
149
-	 */
150
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
144
+     * Add content to the WPI emails.
145
+     *
146
+     * @param WPInv_Invoice $invoice Invoice.
147
+     * @param string     $email_type Email format: plain text or HTML.
148
+     * @param bool     $sent_to_admin Sent to admin.
149
+     */
150
+    public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
151 151
 
152
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
152
+        if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
153 153
 
154
-			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
154
+            echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
155 155
 
156
-			if ( $this->instructions ) {
157
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
156
+            if ( $this->instructions ) {
157
+                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
158 158
             }
159 159
 
160
-			$this->bank_details( $invoice );
160
+            $this->bank_details( $invoice );
161 161
 
162
-			echo '</div>';
162
+            echo '</div>';
163 163
 
164
-		}
164
+        }
165 165
 
166 166
     }
167 167
 
168 168
     /**
169
-	 * Get bank details and place into a list format.
170
-	 *
171
-	 * @param WPInv_Invoice $invoice Invoice.
172
-	 */
173
-	protected function bank_details( $invoice ) {
169
+     * Get bank details and place into a list format.
170
+     *
171
+     * @param WPInv_Invoice $invoice Invoice.
172
+     */
173
+    protected function bank_details( $invoice ) {
174 174
 
175
-		// Get the invoice country and country $locale.
176
-		$country = $invoice->get_country();
177
-		$locale  = $this->get_country_locale();
175
+        // Get the invoice country and country $locale.
176
+        $country = $invoice->get_country();
177
+        $locale  = $this->get_country_locale();
178 178
 
179
-		// Get shortcode label in the $locale array and use appropriate one.
180
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
179
+        // Get shortcode label in the $locale array and use appropriate one.
180
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
181 181
 
182 182
         $bank_fields = array(
183 183
             'ac_name'   => __( 'Account Name', 'invoicing' ),
@@ -196,11 +196,11 @@  discard block
 block discarded – undo
196 196
 
197 197
             if ( ! empty( $value ) ) {
198 198
                 $bank_info[ $field ] = array(
199
-					'label' => $label,
200
-					'value' => $value,
201
-				);
199
+                    'label' => $label,
200
+                    'value' => $value,
201
+                );
202 202
             }
203
-		}
203
+        }
204 204
 
205 205
         $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice );
206 206
 
@@ -208,177 +208,177 @@  discard block
 block discarded – undo
208 208
             return;
209 209
         }
210 210
 
211
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL;
211
+        echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL;
212
+
213
+        echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
214
+
215
+        foreach ( $bank_info as $key => $data ) {
216
+            echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL;
217
+        }
218
+
219
+        echo '</table>';
220
+
221
+    }
222
+
223
+    /**
224
+     * Get country locale if localized.
225
+     *
226
+     * @return array
227
+     */
228
+    public function get_country_locale() {
229
+
230
+        if ( empty( $this->locale ) ) {
231
+
232
+            // Locale information to be used - only those that are not 'Sort Code'.
233
+            $this->locale = apply_filters(
234
+                'getpaid_get_bank_transfer_locale',
235
+                array(
236
+                    'AU' => array(
237
+                        'sortcode' => array(
238
+                            'label' => __( 'BSB', 'invoicing' ),
239
+                        ),
240
+                    ),
241
+                    'CA' => array(
242
+                        'sortcode' => array(
243
+                            'label' => __( 'Bank transit number', 'invoicing' ),
244
+                        ),
245
+                    ),
246
+                    'IN' => array(
247
+                        'sortcode' => array(
248
+                            'label' => __( 'IFSC', 'invoicing' ),
249
+                        ),
250
+                    ),
251
+                    'IT' => array(
252
+                        'sortcode' => array(
253
+                            'label' => __( 'Branch sort', 'invoicing' ),
254
+                        ),
255
+                    ),
256
+                    'NZ' => array(
257
+                        'sortcode' => array(
258
+                            'label' => __( 'Bank code', 'invoicing' ),
259
+                        ),
260
+                    ),
261
+                    'SE' => array(
262
+                        'sortcode' => array(
263
+                            'label' => __( 'Bank code', 'invoicing' ),
264
+                        ),
265
+                    ),
266
+                    'US' => array(
267
+                        'sortcode' => array(
268
+                            'label' => __( 'Routing number', 'invoicing' ),
269
+                        ),
270
+                    ),
271
+                    'ZA' => array(
272
+                        'sortcode' => array(
273
+                            'label' => __( 'Branch code', 'invoicing' ),
274
+                        ),
275
+                    ),
276
+                )
277
+            );
278
+
279
+        }
280
+
281
+        return $this->locale;
282
+
283
+    }
284
+
285
+    /**
286
+     * Filters the gateway settings.
287
+     *
288
+     * @param array $admin_settings
289
+     */
290
+    public function admin_settings( $admin_settings ) {
291
+        $admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
292
+        $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
293
+
294
+        $_settings = array();
295
+
296
+        foreach ( $admin_settings as $key => $setting ) {
297
+            $_settings[ $key ] = $setting;
298
+
299
+            if ( $key == 'bank_transfer_active' ) {
300
+                // Enable/disable subscriptions setting.
301
+                $_settings['bank_transfer_no_subscription'] = array(
302
+                    'id' => 'bank_transfer_no_subscription',
303
+                    'type' => 'checkbox',
304
+                    'name' => __( 'Disable Subscriptions', 'invoicing' ),
305
+                    'desc' => __( 'Tick to disable support for recurring items.', 'invoicing' ),
306
+                    'std' => 0
307
+                );
308
+            }
309
+        }
310
+
311
+        $admin_settings = $_settings;
312
+
313
+        $locale  = $this->get_country_locale();
314
+
315
+        // Get sortcode label in the $locale array and use appropriate one.
316
+        $country  = wpinv_default_billing_country();
317
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
318
+
319
+        $admin_settings['bank_transfer_ac_name'] = array(
320
+            'type' => 'text',
321
+            'id'   => 'bank_transfer_ac_name',
322
+            'name' => __( 'Account Name', 'invoicing' ),
323
+        );
324
+
325
+        $admin_settings['bank_transfer_ac_no'] = array(
326
+            'type' => 'text',
327
+            'id'   => 'bank_transfer_ac_no',
328
+            'name' => __( 'Account Number', 'invoicing' ),
329
+        );
330
+
331
+        $admin_settings['bank_transfer_bank_name'] = array(
332
+            'type' => 'text',
333
+            'id'   => 'bank_transfer_bank_name',
334
+            'name' => __( 'Bank Name', 'invoicing' ),
335
+        );
212 336
 
213
-		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
337
+        $admin_settings['bank_transfer_ifsc'] = array(
338
+            'type' => 'text',
339
+            'id'   => 'bank_transfer_ifsc',
340
+            'name' => __( 'IFSC Code', 'invoicing' ),
341
+        );
342
+
343
+        $admin_settings['bank_transfer_iban'] = array(
344
+            'type' => 'text',
345
+            'id'   => 'bank_transfer_iban',
346
+            'name' => __( 'IBAN', 'invoicing' ),
347
+        );
348
+
349
+        $admin_settings['bank_transfer_bic'] = array(
350
+            'type' => 'text',
351
+            'id'   => 'bank_transfer_bic',
352
+            'name' => __( 'BIC/Swift Code', 'invoicing' ),
353
+        );
214 354
 
215
-		foreach ( $bank_info as $key => $data ) {
216
-			echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL;
217
-		}
355
+        $admin_settings['bank_transfer_sort_code'] = array(
356
+            'type' => 'text',
357
+            'id'   => 'bank_transfer_sort_code',
358
+            'name' => $sortcode,
359
+        );
218 360
 
219
-		echo '</table>';
361
+        $admin_settings['bank_transfer_info'] = array(
362
+            'id'   => 'bank_transfer_info',
363
+            'name' => __( 'Instructions', 'invoicing' ),
364
+            'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
365
+            'type' => 'textarea',
366
+            'std'  => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ),
367
+            'cols' => 50,
368
+            'rows' => 5,
369
+        );
220 370
 
371
+        return $admin_settings;
221 372
     }
222 373
 
223 374
     /**
224
-	 * Get country locale if localized.
225
-	 *
226
-	 * @return array
227
-	 */
228
-	public function get_country_locale() {
229
-
230
-		if ( empty( $this->locale ) ) {
231
-
232
-			// Locale information to be used - only those that are not 'Sort Code'.
233
-			$this->locale = apply_filters(
234
-				'getpaid_get_bank_transfer_locale',
235
-				array(
236
-					'AU' => array(
237
-						'sortcode' => array(
238
-							'label' => __( 'BSB', 'invoicing' ),
239
-						),
240
-					),
241
-					'CA' => array(
242
-						'sortcode' => array(
243
-							'label' => __( 'Bank transit number', 'invoicing' ),
244
-						),
245
-					),
246
-					'IN' => array(
247
-						'sortcode' => array(
248
-							'label' => __( 'IFSC', 'invoicing' ),
249
-						),
250
-					),
251
-					'IT' => array(
252
-						'sortcode' => array(
253
-							'label' => __( 'Branch sort', 'invoicing' ),
254
-						),
255
-					),
256
-					'NZ' => array(
257
-						'sortcode' => array(
258
-							'label' => __( 'Bank code', 'invoicing' ),
259
-						),
260
-					),
261
-					'SE' => array(
262
-						'sortcode' => array(
263
-							'label' => __( 'Bank code', 'invoicing' ),
264
-						),
265
-					),
266
-					'US' => array(
267
-						'sortcode' => array(
268
-							'label' => __( 'Routing number', 'invoicing' ),
269
-						),
270
-					),
271
-					'ZA' => array(
272
-						'sortcode' => array(
273
-							'label' => __( 'Branch code', 'invoicing' ),
274
-						),
275
-					),
276
-				)
277
-			);
278
-
279
-		}
280
-
281
-		return $this->locale;
282
-
283
-	}
284
-
285
-	/**
286
-	 * Filters the gateway settings.
287
-	 *
288
-	 * @param array $admin_settings
289
-	 */
290
-	public function admin_settings( $admin_settings ) {
291
-		$admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
292
-		$admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
293
-
294
-		$_settings = array();
295
-
296
-		foreach ( $admin_settings as $key => $setting ) {
297
-			$_settings[ $key ] = $setting;
298
-
299
-			if ( $key == 'bank_transfer_active' ) {
300
-				// Enable/disable subscriptions setting.
301
-				$_settings['bank_transfer_no_subscription'] = array(
302
-					'id' => 'bank_transfer_no_subscription',
303
-					'type' => 'checkbox',
304
-					'name' => __( 'Disable Subscriptions', 'invoicing' ),
305
-					'desc' => __( 'Tick to disable support for recurring items.', 'invoicing' ),
306
-					'std' => 0
307
-				);
308
-			}
309
-		}
310
-
311
-		$admin_settings = $_settings;
312
-
313
-		$locale  = $this->get_country_locale();
314
-
315
-		// Get sortcode label in the $locale array and use appropriate one.
316
-		$country  = wpinv_default_billing_country();
317
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
318
-
319
-		$admin_settings['bank_transfer_ac_name'] = array(
320
-			'type' => 'text',
321
-			'id'   => 'bank_transfer_ac_name',
322
-			'name' => __( 'Account Name', 'invoicing' ),
323
-		);
324
-
325
-		$admin_settings['bank_transfer_ac_no'] = array(
326
-			'type' => 'text',
327
-			'id'   => 'bank_transfer_ac_no',
328
-			'name' => __( 'Account Number', 'invoicing' ),
329
-		);
330
-
331
-		$admin_settings['bank_transfer_bank_name'] = array(
332
-			'type' => 'text',
333
-			'id'   => 'bank_transfer_bank_name',
334
-			'name' => __( 'Bank Name', 'invoicing' ),
335
-		);
336
-
337
-		$admin_settings['bank_transfer_ifsc'] = array(
338
-			'type' => 'text',
339
-			'id'   => 'bank_transfer_ifsc',
340
-			'name' => __( 'IFSC Code', 'invoicing' ),
341
-		);
342
-
343
-		$admin_settings['bank_transfer_iban'] = array(
344
-			'type' => 'text',
345
-			'id'   => 'bank_transfer_iban',
346
-			'name' => __( 'IBAN', 'invoicing' ),
347
-		);
348
-
349
-		$admin_settings['bank_transfer_bic'] = array(
350
-			'type' => 'text',
351
-			'id'   => 'bank_transfer_bic',
352
-			'name' => __( 'BIC/Swift Code', 'invoicing' ),
353
-		);
354
-
355
-		$admin_settings['bank_transfer_sort_code'] = array(
356
-			'type' => 'text',
357
-			'id'   => 'bank_transfer_sort_code',
358
-			'name' => $sortcode,
359
-		);
360
-
361
-		$admin_settings['bank_transfer_info'] = array(
362
-			'id'   => 'bank_transfer_info',
363
-			'name' => __( 'Instructions', 'invoicing' ),
364
-			'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
365
-			'type' => 'textarea',
366
-			'std'  => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ),
367
-			'cols' => 50,
368
-			'rows' => 5,
369
-		);
370
-
371
-		return $admin_settings;
372
-	}
373
-
374
-	/**
375
-	 * Processes invoice addons.
376
-	 *
377
-	 * @param WPInv_Invoice $invoice
378
-	 * @param GetPaid_Form_Item[] $items
379
-	 * @return WPInv_Invoice
380
-	 */
381
-	public function process_addons( $invoice, $items ) {
375
+     * Processes invoice addons.
376
+     *
377
+     * @param WPInv_Invoice $invoice
378
+     * @param GetPaid_Form_Item[] $items
379
+     * @return WPInv_Invoice
380
+     */
381
+    public function process_addons( $invoice, $items ) {
382 382
 
383 383
         foreach ( $items as $item ) {
384 384
             $invoice->add_item( $item );
@@ -386,98 +386,98 @@  discard block
 block discarded – undo
386 386
 
387 387
         $invoice->recalculate_total();
388 388
         $invoice->save();
389
-	}
390
-
391
-	/**
392
-	 * (Maybe) renews a bank transfer subscription profile.
393
-	 *
394
-	 *
395
-	 * @param WPInv_Subscription $subscription
396
-	 */
397
-	public function maybe_renew_subscription( $subscription, $parent_invoice ) {
398
-		// Ensure its our subscription && it's active.
399
-		if ( ! empty( $parent_invoice ) && $this->id === $parent_invoice->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
400
-			add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
401
-
402
-			$invoice = $subscription->create_payment();
403
-
404
-			if ( ! empty( $invoice ) ) {
405
-				$is_logged_in = is_user_logged_in();
406
-
407
-				// Cron run.
408
-				if ( ! $is_logged_in ) {
409
-					$note = wp_sprintf( __( 'Renewal %1$s created with the status "%2$s".', 'invoicing' ), $invoice->get_invoice_quote_type(), wpinv_status_nicename( $invoice->get_status(), $invoice ) );
410
-
411
-					$invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in );
412
-				}
413
-			}
414
-
415
-			remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
416
-		}
417
-	}
418
-
419
-	/**
420
-	 * Process a bank transfer payment.
421
-	 *
422
-	 *
389
+    }
390
+
391
+    /**
392
+     * (Maybe) renews a bank transfer subscription profile.
393
+     *
394
+     *
395
+     * @param WPInv_Subscription $subscription
396
+     */
397
+    public function maybe_renew_subscription( $subscription, $parent_invoice ) {
398
+        // Ensure its our subscription && it's active.
399
+        if ( ! empty( $parent_invoice ) && $this->id === $parent_invoice->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
400
+            add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
401
+
402
+            $invoice = $subscription->create_payment();
403
+
404
+            if ( ! empty( $invoice ) ) {
405
+                $is_logged_in = is_user_logged_in();
406
+
407
+                // Cron run.
408
+                if ( ! $is_logged_in ) {
409
+                    $note = wp_sprintf( __( 'Renewal %1$s created with the status "%2$s".', 'invoicing' ), $invoice->get_invoice_quote_type(), wpinv_status_nicename( $invoice->get_status(), $invoice ) );
410
+
411
+                    $invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in );
412
+                }
413
+            }
414
+
415
+            remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
416
+        }
417
+    }
418
+
419
+    /**
420
+     * Process a bank transfer payment.
421
+     *
422
+     *
423 423
      * @param WPInv_Invoice $invoice
424
-	 */
425
-	public function invoice_paid( $invoice ) {
426
-
427
-		// Abort if not paid by bank transfer.
428
-		if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
429
-			return;
430
-		}
431
-
432
-		// Is it a parent payment?
433
-		if ( 0 == $invoice->get_parent_id() ) {
434
-
435
-			// (Maybe) activate subscriptions.
436
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
437
-
438
-			if ( ! empty( $subscriptions ) ) {
439
-				$subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
440
-
441
-				foreach ( $subscriptions as $subscription ) {
442
-					if ( $subscription->exists() ) {
443
-						$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
444
-						$expiry   = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
445
-
446
-						$subscription->set_next_renewal_date( $expiry );
447
-						$subscription->set_date_created( current_time( 'mysql' ) );
448
-						$subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
449
-						$subscription->activate();
450
-					}
451
-				}
452
-			}
453
-		} else {
454
-
455
-			$subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
456
-
457
-			// Renew the subscription.
458
-			if ( $subscription && $subscription->exists() ) {
459
-				$subscription->add_payment( array(), $invoice );
460
-				$subscription->renew( strtotime( $invoice->get_date_created() ) );
461
-			}
462
-		}
424
+     */
425
+    public function invoice_paid( $invoice ) {
426
+
427
+        // Abort if not paid by bank transfer.
428
+        if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
429
+            return;
430
+        }
431
+
432
+        // Is it a parent payment?
433
+        if ( 0 == $invoice->get_parent_id() ) {
434
+
435
+            // (Maybe) activate subscriptions.
436
+            $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
437
+
438
+            if ( ! empty( $subscriptions ) ) {
439
+                $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
440
+
441
+                foreach ( $subscriptions as $subscription ) {
442
+                    if ( $subscription->exists() ) {
443
+                        $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
444
+                        $expiry   = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
445
+
446
+                        $subscription->set_next_renewal_date( $expiry );
447
+                        $subscription->set_date_created( current_time( 'mysql' ) );
448
+                        $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
449
+                        $subscription->activate();
450
+                    }
451
+                }
452
+            }
453
+        } else {
454
+
455
+            $subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
456
+
457
+            // Renew the subscription.
458
+            if ( $subscription && $subscription->exists() ) {
459
+                $subscription->add_payment( array(), $invoice );
460
+                $subscription->renew( strtotime( $invoice->get_date_created() ) );
461
+            }
462
+        }
463 463
 
464 464
     }
465 465
 
466
-	/**
467
-	 * Force created from payment false to allow email for auto renewal generation invoice.
468
-	 *
469
-	 * @since 2.8.11
470
-	 *
471
-	 * @param bool $is_payment_form_invoice True when invoice created via payment form else false.
472
-	 * @param int  $invoice Invoice ID.
473
-	 * @return bool True when invoice created via payment form else false.
474
-	 */
475
-	public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) {
476
-		if ( $is_payment_form_invoice ) {
477
-			$is_payment_form_invoice = false;
478
-		}
479
-
480
-		return $is_payment_form_invoice;
481
-	}
466
+    /**
467
+     * Force created from payment false to allow email for auto renewal generation invoice.
468
+     *
469
+     * @since 2.8.11
470
+     *
471
+     * @param bool $is_payment_form_invoice True when invoice created via payment form else false.
472
+     * @param int  $invoice Invoice ID.
473
+     * @return bool True when invoice created via payment form else false.
474
+     */
475
+    public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) {
476
+        if ( $is_payment_form_invoice ) {
477
+            $is_payment_form_invoice = false;
478
+        }
479
+
480
+        return $is_payment_form_invoice;
481
+    }
482 482
 
483 483
 }
Please login to merge, or discard this patch.
includes/wpinv-general-functions.php 1 patch
Indentation   +247 added lines, -247 removed lines patch added patch discarded remove patch
@@ -31,16 +31,16 @@  discard block
 block discarded – undo
31 31
 }
32 32
 
33 33
 function wpinv_can_checkout() {
34
-	$can_checkout = true; // Always true for now
34
+    $can_checkout = true; // Always true for now
35 35
 
36
-	return (bool) apply_filters( 'wpinv_can_checkout', $can_checkout );
36
+    return (bool) apply_filters( 'wpinv_can_checkout', $can_checkout );
37 37
 }
38 38
 
39 39
 function wpinv_get_success_page_uri() {
40
-	$page_id = wpinv_get_option( 'success_page', 0 );
41
-	$page_id = absint( $page_id );
40
+    $page_id = wpinv_get_option( 'success_page', 0 );
41
+    $page_id = absint( $page_id );
42 42
 
43
-	return apply_filters( 'wpinv_get_success_page_uri', get_permalink( $page_id ) );
43
+    return apply_filters( 'wpinv_get_success_page_uri', get_permalink( $page_id ) );
44 44
 }
45 45
 
46 46
 /**
@@ -51,22 +51,22 @@  discard block
 block discarded – undo
51 51
  */
52 52
 function wpinv_get_history_page_uri( $post_type = 'wpi_invoice' ) {
53 53
     $post_type = sanitize_key( str_replace( 'wpi_', '', $post_type ) );
54
-	$page_id   = wpinv_get_option( "{$post_type}_history_page", 0 );
55
-	$page_id   = absint( $page_id );
56
-	return apply_filters( 'wpinv_get_history_page_uri', get_permalink( $page_id ), $post_type );
54
+    $page_id   = wpinv_get_option( "{$post_type}_history_page", 0 );
55
+    $page_id   = absint( $page_id );
56
+    return apply_filters( 'wpinv_get_history_page_uri', get_permalink( $page_id ), $post_type );
57 57
 }
58 58
 
59 59
 function wpinv_is_success_page() {
60
-	$is_success_page = wpinv_get_option( 'success_page', false );
61
-	$is_success_page = ! empty( $is_success_page ) ? is_page( $is_success_page ) : false;
60
+    $is_success_page = wpinv_get_option( 'success_page', false );
61
+    $is_success_page = ! empty( $is_success_page ) ? is_page( $is_success_page ) : false;
62 62
 
63
-	return apply_filters( 'wpinv_is_success_page', $is_success_page );
63
+    return apply_filters( 'wpinv_is_success_page', $is_success_page );
64 64
 }
65 65
 
66 66
 function wpinv_is_invoice_history_page() {
67
-	$ret = wpinv_get_option( 'invoice_history_page', false );
68
-	$ret = $ret ? is_page( $ret ) : false;
69
-	return apply_filters( 'wpinv_is_invoice_history_page', $ret );
67
+    $ret = wpinv_get_option( 'invoice_history_page', false );
68
+    $ret = $ret ? is_page( $ret ) : false;
69
+    return apply_filters( 'wpinv_is_invoice_history_page', $ret );
70 70
 }
71 71
 
72 72
 function wpinv_is_subscriptions_history_page() {
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
 }
106 106
 
107 107
 function wpinv_send_to_failed_page( $args = null ) {
108
-	$redirect = wpinv_get_failed_transaction_uri();
108
+    $redirect = wpinv_get_failed_transaction_uri();
109 109
 
110 110
     if ( ! empty( $args ) ) {
111 111
         // Check for backward compatibility
@@ -126,58 +126,58 @@  discard block
 block discarded – undo
126 126
 }
127 127
 
128 128
 function wpinv_get_checkout_uri( $args = array() ) {
129
-	$uri = wpinv_get_option( 'checkout_page', false );
130
-	$uri = isset( $uri ) ? get_permalink( $uri ) : null;
129
+    $uri = wpinv_get_option( 'checkout_page', false );
130
+    $uri = isset( $uri ) ? get_permalink( $uri ) : null;
131 131
 
132
-	if ( ! empty( $args ) ) {
133
-		// Check for backward compatibility
134
-		if ( is_string( $args ) ) {
135
-			$args = str_replace( '?', '', $args );
132
+    if ( ! empty( $args ) ) {
133
+        // Check for backward compatibility
134
+        if ( is_string( $args ) ) {
135
+            $args = str_replace( '?', '', $args );
136 136
         }
137 137
 
138
-		$args = wp_parse_args( $args );
138
+        $args = wp_parse_args( $args );
139 139
 
140
-		$uri = add_query_arg( $args, $uri );
141
-	}
140
+        $uri = add_query_arg( $args, $uri );
141
+    }
142 142
 
143
-	$scheme = defined( 'FORCE_SSL_ADMIN' ) && FORCE_SSL_ADMIN ? 'https' : 'admin';
143
+    $scheme = defined( 'FORCE_SSL_ADMIN' ) && FORCE_SSL_ADMIN ? 'https' : 'admin';
144 144
 
145
-	$ajax_url = admin_url( 'admin-ajax.php', $scheme );
145
+    $ajax_url = admin_url( 'admin-ajax.php', $scheme );
146 146
 
147
-	if ( ( ! preg_match( '/^https/', $uri ) && preg_match( '/^https/', $ajax_url ) ) || wpinv_is_ssl_enforced() ) {
148
-		$uri = preg_replace( '/^http:/', 'https:', $uri );
149
-	}
147
+    if ( ( ! preg_match( '/^https/', $uri ) && preg_match( '/^https/', $ajax_url ) ) || wpinv_is_ssl_enforced() ) {
148
+        $uri = preg_replace( '/^http:/', 'https:', $uri );
149
+    }
150 150
 
151
-	return apply_filters( 'wpinv_get_checkout_uri', $uri );
151
+    return apply_filters( 'wpinv_get_checkout_uri', $uri );
152 152
 }
153 153
 
154 154
 function wpinv_get_success_page_url( $query_string = null ) {
155
-	$success_page = wpinv_get_option( 'success_page', 0 );
156
-	$success_page = get_permalink( $success_page );
155
+    $success_page = wpinv_get_option( 'success_page', 0 );
156
+    $success_page = get_permalink( $success_page );
157 157
 
158
-	if ( $query_string ) {
159
-		$success_page .= $query_string;
158
+    if ( $query_string ) {
159
+        $success_page .= $query_string;
160 160
     }
161 161
 
162
-	return apply_filters( 'wpinv_success_page_url', $success_page );
162
+    return apply_filters( 'wpinv_success_page_url', $success_page );
163 163
 }
164 164
 
165 165
 function wpinv_get_failed_transaction_uri( $extras = false ) {
166
-	$uri = wpinv_get_option( 'failure_page', '' );
167
-	$uri = ! empty( $uri ) ? trailingslashit( get_permalink( $uri ) ) : home_url();
166
+    $uri = wpinv_get_option( 'failure_page', '' );
167
+    $uri = ! empty( $uri ) ? trailingslashit( get_permalink( $uri ) ) : home_url();
168 168
 
169
-	if ( $extras ) {
170
-		$uri .= $extras;
169
+    if ( $extras ) {
170
+        $uri .= $extras;
171 171
     }
172 172
 
173
-	return apply_filters( 'wpinv_get_failed_transaction_uri', $uri );
173
+    return apply_filters( 'wpinv_get_failed_transaction_uri', $uri );
174 174
 }
175 175
 
176 176
 function wpinv_is_failed_transaction_page() {
177
-	$ret = wpinv_get_option( 'failure_page', false );
178
-	$ret = isset( $ret ) ? is_page( $ret ) : false;
177
+    $ret = wpinv_get_option( 'failure_page', false );
178
+    $ret = isset( $ret ) ? is_page( $ret ) : false;
179 179
 
180
-	return apply_filters( 'wpinv_is_failure_page', $ret );
180
+    return apply_filters( 'wpinv_is_failure_page', $ret );
181 181
 }
182 182
 
183 183
 function wpinv_transaction_query( $type = 'start' ) {
@@ -257,36 +257,36 @@  discard block
 block discarded – undo
257 257
     $require_billing_details = apply_filters( 'wpinv_checkout_required_billing_details', wpinv_use_taxes() );
258 258
 
259 259
     if ( $require_billing_details ) {
260
-		if ( (bool)wpinv_get_option( 'fname_mandatory' ) ) {
261
-			$required_fields['first_name'] = array(
262
-				'error_id'      => 'invalid_first_name',
263
-				'error_message' => __( 'Please enter your first name', 'invoicing' ),
264
-			);
265
-		}
266
-		if ( (bool)wpinv_get_option( 'address_mandatory' ) ) {
267
-			$required_fields['address'] = array(
268
-				'error_id'      => 'invalid_address',
269
-				'error_message' => __( 'Please enter your address', 'invoicing' ),
270
-			);
271
-		}
272
-		if ( (bool)wpinv_get_option( 'city_mandatory' ) ) {
273
-			$required_fields['city'] = array(
274
-				'error_id'      => 'invalid_city',
275
-				'error_message' => __( 'Please enter your billing city', 'invoicing' ),
276
-			);
277
-		}
278
-		if ( (bool)wpinv_get_option( 'state_mandatory' ) ) {
279
-			$required_fields['state'] = array(
280
-				'error_id'      => 'invalid_state',
281
-				'error_message' => __( 'Please enter billing state / province', 'invoicing' ),
282
-			);
283
-		}
284
-		if ( (bool)wpinv_get_option( 'country_mandatory' ) ) {
285
-			$required_fields['country'] = array(
286
-				'error_id'      => 'invalid_country',
287
-				'error_message' => __( 'Please select your billing country', 'invoicing' ),
288
-			);
289
-		}
260
+        if ( (bool)wpinv_get_option( 'fname_mandatory' ) ) {
261
+            $required_fields['first_name'] = array(
262
+                'error_id'      => 'invalid_first_name',
263
+                'error_message' => __( 'Please enter your first name', 'invoicing' ),
264
+            );
265
+        }
266
+        if ( (bool)wpinv_get_option( 'address_mandatory' ) ) {
267
+            $required_fields['address'] = array(
268
+                'error_id'      => 'invalid_address',
269
+                'error_message' => __( 'Please enter your address', 'invoicing' ),
270
+            );
271
+        }
272
+        if ( (bool)wpinv_get_option( 'city_mandatory' ) ) {
273
+            $required_fields['city'] = array(
274
+                'error_id'      => 'invalid_city',
275
+                'error_message' => __( 'Please enter your billing city', 'invoicing' ),
276
+            );
277
+        }
278
+        if ( (bool)wpinv_get_option( 'state_mandatory' ) ) {
279
+            $required_fields['state'] = array(
280
+                'error_id'      => 'invalid_state',
281
+                'error_message' => __( 'Please enter billing state / province', 'invoicing' ),
282
+            );
283
+        }
284
+        if ( (bool)wpinv_get_option( 'country_mandatory' ) ) {
285
+            $required_fields['country'] = array(
286
+                'error_id'      => 'invalid_country',
287
+                'error_message' => __( 'Please select your billing country', 'invoicing' ),
288
+            );
289
+        }
290 290
     }
291 291
 
292 292
     return apply_filters( 'wpinv_checkout_required_fields', $required_fields );
@@ -501,42 +501,42 @@  discard block
 block discarded – undo
501 501
  * @return bool|WP_Filesystem The WP Filesystem object or false on failure.
502 502
  */
503 503
 function getpaid_wp_filesystem() {
504
-	if ( ! function_exists( 'get_filesystem_method' ) ) {
505
-		require_once( ABSPATH . "/wp-admin/includes/file.php" );
506
-	}
504
+    if ( ! function_exists( 'get_filesystem_method' ) ) {
505
+        require_once( ABSPATH . "/wp-admin/includes/file.php" );
506
+    }
507 507
 
508
-	$access_type = get_filesystem_method();
508
+    $access_type = get_filesystem_method();
509 509
 
510
-	if ( $access_type === 'direct' ) {
511
-		/* You can safely run request_filesystem_credentials() without any issues and don't need to worry about passing in a URL */
512
-		$creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() );
510
+    if ( $access_type === 'direct' ) {
511
+        /* You can safely run request_filesystem_credentials() without any issues and don't need to worry about passing in a URL */
512
+        $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() );
513 513
 
514
-		/* Initialize the API */
515
-		if ( ! WP_Filesystem( $creds ) ) {
516
-			/* Any problems and we exit */
517
-			return false;
518
-		}
514
+        /* Initialize the API */
515
+        if ( ! WP_Filesystem( $creds ) ) {
516
+            /* Any problems and we exit */
517
+            return false;
518
+        }
519 519
 
520
-		global $wp_filesystem;
520
+        global $wp_filesystem;
521 521
 
522
-		return $wp_filesystem;
523
-		/* Do our file manipulations below */
524
-	} else if ( defined( 'FTP_USER' ) ) {
525
-		$creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() );
522
+        return $wp_filesystem;
523
+        /* Do our file manipulations below */
524
+    } else if ( defined( 'FTP_USER' ) ) {
525
+        $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() );
526 526
 
527
-		/* Initialize the API */
528
-		if ( ! WP_Filesystem( $creds ) ) {
529
-			/* Any problems and we exit */
530
-			return false;
531
-		}
527
+        /* Initialize the API */
528
+        if ( ! WP_Filesystem( $creds ) ) {
529
+            /* Any problems and we exit */
530
+            return false;
531
+        }
532 532
 
533
-		global $wp_filesystem;
533
+        global $wp_filesystem;
534 534
 
535
-		return $wp_filesystem;
536
-	} else {
537
-		/* Don't have direct write access. Prompt user with our notice */
538
-		return false;
539
-	}
535
+        return $wp_filesystem;
536
+    } else {
537
+        /* Don't have direct write access. Prompt user with our notice */
538
+        return false;
539
+    }
540 540
 }
541 541
 
542 542
 /**
@@ -547,65 +547,65 @@  discard block
 block discarded – undo
547 547
  * @return bool True if file created otherwise false
548 548
  */
549 549
 function getpaid_sync_db_text_translation() {
550
-	$wp_filesystem = getpaid_wp_filesystem();
550
+    $wp_filesystem = getpaid_wp_filesystem();
551 551
 
552
-	$language_file = WPINV_PLUGIN_DIR . 'db-language.php';
552
+    $language_file = WPINV_PLUGIN_DIR . 'db-language.php';
553 553
 
554
-	if ( is_file( $language_file ) && ! is_writable( $language_file ) ) {
555
-		return false;
556
-	}
554
+    if ( is_file( $language_file ) && ! is_writable( $language_file ) ) {
555
+        return false;
556
+    }
557 557
 
558
-	if ( ! is_file( $language_file ) && ! is_writable( dirname( $language_file ) ) ) {
559
-		return false;
560
-	}
558
+    if ( ! is_file( $language_file ) && ! is_writable( dirname( $language_file ) ) ) {
559
+        return false;
560
+    }
561 561
 
562
-	$head   = array();
563
-	$head[] = "<?php";
564
-	$head[] = "/**";
565
-	$head[] = " * Contains strings for translation that stored in the database. Ex: Payment forms custom fields texts.";
566
-	$head[] = " *";
567
-	$head[] = " * @package GetPaid";
568
-	$head[] = " * @since 2.8.32";
569
-	$head[] = " */";
570
-	$head[] = "";
571
-	$head[] = "__( 'My String', 'invoicing' );";
562
+    $head   = array();
563
+    $head[] = "<?php";
564
+    $head[] = "/**";
565
+    $head[] = " * Contains strings for translation that stored in the database. Ex: Payment forms custom fields texts.";
566
+    $head[] = " *";
567
+    $head[] = " * @package GetPaid";
568
+    $head[] = " * @since 2.8.32";
569
+    $head[] = " */";
570
+    $head[] = "";
571
+    $head[] = "__( 'My String', 'invoicing' );";
572 572
 
573
-	$footer   = array();
574
-	$footer[] = "";
575
-	$footer[] = "";
576
-	$footer[] = "/*** GetPaid " . WPINV_VERSION . " @ " . gmdate( 'Y-m-d H:i:s' ) . " ***/";
577
-	$footer[] = "";
573
+    $footer   = array();
574
+    $footer[] = "";
575
+    $footer[] = "";
576
+    $footer[] = "/*** GetPaid " . WPINV_VERSION . " @ " . gmdate( 'Y-m-d H:i:s' ) . " ***/";
577
+    $footer[] = "";
578 578
 
579
-	$contents = implode( PHP_EOL, $head );
579
+    $contents = implode( PHP_EOL, $head );
580 580
 
581
-	$strings = getpaid_get_db_language_strings();
581
+    $strings = getpaid_get_db_language_strings();
582 582
 
583
-	if ( ! empty( $strings ) ) {
584
-		$is_wpml = getpaid_is_wpml();
583
+    if ( ! empty( $strings ) ) {
584
+        $is_wpml = getpaid_is_wpml();
585 585
 
586
-		foreach ( $strings as $string ) {
587
-			if ( is_scalar( $string ) && $string != '' ) {
588
-				do_action( 'getpaid_db_language_add_string', $string );
586
+        foreach ( $strings as $string ) {
587
+            if ( is_scalar( $string ) && $string != '' ) {
588
+                do_action( 'getpaid_db_language_add_string', $string );
589 589
 
590
-				if ( $is_wpml ) {
591
-					// Registers a individual text string for WPML translation.
592
-					do_action( 'wpml_register_single_string', 'invoicing', '', $string );
593
-				}
590
+                if ( $is_wpml ) {
591
+                    // Registers a individual text string for WPML translation.
592
+                    do_action( 'wpml_register_single_string', 'invoicing', '', $string );
593
+                }
594 594
 
595
-				$string = str_replace( "'", "\'", $string );
595
+                $string = str_replace( "'", "\'", $string );
596 596
 
597
-				$contents .= PHP_EOL . "__( '" . $string . "', 'invoicing' );";
598
-			}
599
-		}
600
-	}
597
+                $contents .= PHP_EOL . "__( '" . $string . "', 'invoicing' );";
598
+            }
599
+        }
600
+    }
601 601
 
602
-	$contents .= implode( PHP_EOL, $footer );
602
+    $contents .= implode( PHP_EOL, $footer );
603 603
 
604
-	if ( $wp_filesystem->put_contents( $language_file, $contents, FS_CHMOD_FILE ) ) {
605
-		return true;
606
-	} else {
607
-		return false;
608
-	}
604
+    if ( $wp_filesystem->put_contents( $language_file, $contents, FS_CHMOD_FILE ) ) {
605
+        return true;
606
+    } else {
607
+        return false;
608
+    }
609 609
 }
610 610
 
611 611
 /**
@@ -617,103 +617,103 @@  discard block
 block discarded – undo
617 617
  * @return array Filtered strings.
618 618
  */
619 619
 function getpaid_get_db_language_strings() {
620
-	global $wpdb;
621
-
622
-	$strings = array();
623
-
624
-	// Options
625
-	$settings = wpinv_get_options();
626
-
627
-	$setting_keys = array(
628
-		'bank_transfer_info',
629
-		'vat_invoice_notice_label',
630
-		'vat_invoice_notice'
631
-	);
632
-
633
-	/**
634
-	 * Filters the GetPaid option names that requires to add for translation.
635
-	 *
636
-	 * @since 2.8.32
637
-	 *
638
-	 * @param  array $setting_keys Array of setting keys.
639
-	 */
640
-	$setting_keys = apply_filters( 'getpaid_options_to_db_language_strings', $setting_keys );
641
-
642
-	$setting_keys = array_unique( $setting_keys );
643
-
644
-	if ( ! empty( $settings ) && ! empty( $setting_keys ) ) {
645
-		foreach ( $setting_keys as $setting_key ) {
646
-			if ( ! empty( $settings[ $setting_key ] ) && is_string( $settings[ $setting_key ] ) ) {
647
-				$strings[] = wp_unslash( $settings[ $setting_key ] );
648
-			}
649
-		}
650
-	}
651
-
652
-	// Payment forms
653
-	$results = $wpdb->get_col( "SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'" );
654
-
655
-	if ( ! empty( $results ) ) {
656
-		$string_keys = array( 'label', 'placeholder', 'description', 'text', 'input_label', 'button_label' );
657
-
658
-		foreach ( $results as $meta_value ) {
659
-			$fields = maybe_unserialize( $meta_value );
660
-
661
-			if ( ! empty( $fields ) && is_array( $fields ) ) {
662
-				foreach ( $fields as $field ) {
663
-					// Labels
664
-					foreach ( $string_keys as $string_key ) {
665
-						if ( ! empty( $field[ $string_key ] ) && is_string( $field[ $string_key ] ) ) {
666
-							$strings[] = wp_unslash( $field[ $string_key ] );
667
-						}
668
-					}
669
-
670
-					// Address fields
671
-					if ( ! empty( $field['fields'] ) && ! empty( $field['fields'] ) ) {
672
-						foreach ( $field['fields'] as $sub_field ) {
673
-							foreach ( $string_keys as $string_key ) {
674
-								if ( ! empty( $sub_field[ $string_key ] ) && is_string( $sub_field[ $string_key ] ) ) {
675
-									$strings[] = wp_unslash( $sub_field[ $string_key ] );
676
-								}
677
-							}
678
-						}
679
-					}
680
-
681
-					// Options
682
-					if ( ! empty( $field['options'] ) ) {
683
-						$options = array();
684
-
685
-						if ( is_array( $field['options'] ) ) {
686
-							$options = $field['options'];
687
-						} else if ( is_string( $field['options'] ) ) {
688
-							$options = getpaid_convert_price_string_to_options( $field['options'], false );
689
-							$options = ! empty( $options ) ? array_values( $options ) : array();
690
-						}
691
-
692
-						if ( ! empty( $options ) ) {
693
-							foreach( $options as $option ) {
694
-								if ( ! empty( $option ) && is_string( $option ) ) {
695
-									$strings[] = wp_unslash( $option );
696
-								}
697
-							}
698
-						}
699
-					}
700
-				}
701
-			}
702
-		}
703
-	}
704
-
705
-	/**
706
-	 * Filter the database strings to add for translation.
707
-	 *
708
-	 * @since 2.8.32
709
-	 *
710
-	 * @param array $strings Array of strings.
711
-	 */
712
-	$strings = apply_filters( 'getpaid_db_language_strings', $strings );
713
-
714
-	$strings = array_unique( $strings );
715
-
716
-	return $strings;
620
+    global $wpdb;
621
+
622
+    $strings = array();
623
+
624
+    // Options
625
+    $settings = wpinv_get_options();
626
+
627
+    $setting_keys = array(
628
+        'bank_transfer_info',
629
+        'vat_invoice_notice_label',
630
+        'vat_invoice_notice'
631
+    );
632
+
633
+    /**
634
+     * Filters the GetPaid option names that requires to add for translation.
635
+     *
636
+     * @since 2.8.32
637
+     *
638
+     * @param  array $setting_keys Array of setting keys.
639
+     */
640
+    $setting_keys = apply_filters( 'getpaid_options_to_db_language_strings', $setting_keys );
641
+
642
+    $setting_keys = array_unique( $setting_keys );
643
+
644
+    if ( ! empty( $settings ) && ! empty( $setting_keys ) ) {
645
+        foreach ( $setting_keys as $setting_key ) {
646
+            if ( ! empty( $settings[ $setting_key ] ) && is_string( $settings[ $setting_key ] ) ) {
647
+                $strings[] = wp_unslash( $settings[ $setting_key ] );
648
+            }
649
+        }
650
+    }
651
+
652
+    // Payment forms
653
+    $results = $wpdb->get_col( "SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'" );
654
+
655
+    if ( ! empty( $results ) ) {
656
+        $string_keys = array( 'label', 'placeholder', 'description', 'text', 'input_label', 'button_label' );
657
+
658
+        foreach ( $results as $meta_value ) {
659
+            $fields = maybe_unserialize( $meta_value );
660
+
661
+            if ( ! empty( $fields ) && is_array( $fields ) ) {
662
+                foreach ( $fields as $field ) {
663
+                    // Labels
664
+                    foreach ( $string_keys as $string_key ) {
665
+                        if ( ! empty( $field[ $string_key ] ) && is_string( $field[ $string_key ] ) ) {
666
+                            $strings[] = wp_unslash( $field[ $string_key ] );
667
+                        }
668
+                    }
669
+
670
+                    // Address fields
671
+                    if ( ! empty( $field['fields'] ) && ! empty( $field['fields'] ) ) {
672
+                        foreach ( $field['fields'] as $sub_field ) {
673
+                            foreach ( $string_keys as $string_key ) {
674
+                                if ( ! empty( $sub_field[ $string_key ] ) && is_string( $sub_field[ $string_key ] ) ) {
675
+                                    $strings[] = wp_unslash( $sub_field[ $string_key ] );
676
+                                }
677
+                            }
678
+                        }
679
+                    }
680
+
681
+                    // Options
682
+                    if ( ! empty( $field['options'] ) ) {
683
+                        $options = array();
684
+
685
+                        if ( is_array( $field['options'] ) ) {
686
+                            $options = $field['options'];
687
+                        } else if ( is_string( $field['options'] ) ) {
688
+                            $options = getpaid_convert_price_string_to_options( $field['options'], false );
689
+                            $options = ! empty( $options ) ? array_values( $options ) : array();
690
+                        }
691
+
692
+                        if ( ! empty( $options ) ) {
693
+                            foreach( $options as $option ) {
694
+                                if ( ! empty( $option ) && is_string( $option ) ) {
695
+                                    $strings[] = wp_unslash( $option );
696
+                                }
697
+                            }
698
+                        }
699
+                    }
700
+                }
701
+            }
702
+        }
703
+    }
704
+
705
+    /**
706
+     * Filter the database strings to add for translation.
707
+     *
708
+     * @since 2.8.32
709
+     *
710
+     * @param array $strings Array of strings.
711
+     */
712
+    $strings = apply_filters( 'getpaid_db_language_strings', $strings );
713
+
714
+    $strings = array_unique( $strings );
715
+
716
+    return $strings;
717 717
 }
718 718
 
719 719
 /**
@@ -724,9 +724,9 @@  discard block
 block discarded – undo
724 724
  * @return bool True if active else false.
725 725
  */
726 726
 function getpaid_is_wpml() {
727
-	if ( defined( 'ICL_SITEPRESS_VERSION' ) && ! ICL_PLUGIN_INACTIVE && class_exists( 'SitePress', false ) && function_exists( 'icl_object_id' ) ) {
728
-		return true;
729
-	}
727
+    if ( defined( 'ICL_SITEPRESS_VERSION' ) && ! ICL_PLUGIN_INACTIVE && class_exists( 'SitePress', false ) && function_exists( 'icl_object_id' ) ) {
728
+        return true;
729
+    }
730 730
 
731
-	return false;
731
+    return false;
732 732
 }
733 733
\ No newline at end of file
Please login to merge, or discard this patch.
includes/wpinv-template-functions.php 1 patch
Indentation   +228 added lines, -228 removed lines patch added patch discarded remove patch
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
  * @param string $default_path The root path to the default template. Defaults to invoicing/templates
141 141
  */
142 142
 function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
143
-	return getpaid_template()->get_template( $template_name, $args, $template_path, $default_path );
143
+    return getpaid_template()->get_template( $template_name, $args, $template_path, $default_path );
144 144
 }
145 145
 
146 146
 /**
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
  * @return string
159 159
  */
160 160
 function wpinv_get_theme_template_dir_name() {
161
-	return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
161
+    return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
162 162
 }
163 163
 
164 164
 /**
@@ -175,125 +175,125 @@  discard block
 block discarded – undo
175 175
 }
176 176
 
177 177
 function wpinv_get_template_part( $slug, $name = null, $load = true ) {
178
-	do_action( 'get_template_part_' . $slug, $slug, $name );
178
+    do_action( 'get_template_part_' . $slug, $slug, $name );
179 179
 
180
-	// Setup possible parts
181
-	$templates = array();
182
-	if ( isset( $name ) ) {
183
-		$templates[] = $slug . '-' . $name . '.php';
180
+    // Setup possible parts
181
+    $templates = array();
182
+    if ( isset( $name ) ) {
183
+        $templates[] = $slug . '-' . $name . '.php';
184 184
     }
185
-	$templates[] = $slug . '.php';
185
+    $templates[] = $slug . '.php';
186 186
 
187
-	// Allow template parts to be filtered
188
-	$templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
187
+    // Allow template parts to be filtered
188
+    $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
189 189
 
190
-	// Return the part that is found
191
-	return wpinv_locate_tmpl( $templates, $load, false );
190
+    // Return the part that is found
191
+    return wpinv_locate_tmpl( $templates, $load, false );
192 192
 }
193 193
 
194 194
 function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) {
195
-	// No file found yet
196
-	$located = false;
195
+    // No file found yet
196
+    $located = false;
197 197
 
198
-	// Try to find a template file
199
-	foreach ( (array)$template_names as $template_name ) {
198
+    // Try to find a template file
199
+    foreach ( (array)$template_names as $template_name ) {
200 200
 
201
-		// Continue if template is empty
202
-		if ( empty( $template_name ) ) {
203
-			continue;
201
+        // Continue if template is empty
202
+        if ( empty( $template_name ) ) {
203
+            continue;
204 204
         }
205 205
 
206
-		// Trim off any slashes from the template name
207
-		$template_name = ltrim( $template_name, '/' );
206
+        // Trim off any slashes from the template name
207
+        $template_name = ltrim( $template_name, '/' );
208 208
 
209
-		// try locating this template file by looping through the template paths
210
-		foreach ( wpinv_get_theme_template_paths() as $template_path ) {
209
+        // try locating this template file by looping through the template paths
210
+        foreach ( wpinv_get_theme_template_paths() as $template_path ) {
211 211
 
212
-			if ( file_exists( $template_path . $template_name ) ) {
213
-				$located = $template_path . $template_name;
214
-				break;
215
-			}
216
-		}
212
+            if ( file_exists( $template_path . $template_name ) ) {
213
+                $located = $template_path . $template_name;
214
+                break;
215
+            }
216
+        }
217 217
 
218
-		if ( ! empty( $located ) ) {
219
-			break;
220
-		}
221
-	}
218
+        if ( ! empty( $located ) ) {
219
+            break;
220
+        }
221
+    }
222 222
 
223
-	if ( ( true == $load ) && ! empty( $located ) ) {
224
-		load_template( $located, $require_once );
223
+    if ( ( true == $load ) && ! empty( $located ) ) {
224
+        load_template( $located, $require_once );
225 225
     }
226 226
 
227
-	return $located;
227
+    return $located;
228 228
 }
229 229
 
230 230
 function wpinv_get_theme_template_paths() {
231
-	$template_dir = wpinv_get_theme_template_dir_name();
231
+    $template_dir = wpinv_get_theme_template_dir_name();
232 232
 
233
-	$file_paths = array(
234
-		1   => trailingslashit( get_stylesheet_directory() ) . $template_dir,
235
-		10  => trailingslashit( get_template_directory() ) . $template_dir,
236
-		100 => wpinv_get_templates_dir(),
237
-	);
233
+    $file_paths = array(
234
+        1   => trailingslashit( get_stylesheet_directory() ) . $template_dir,
235
+        10  => trailingslashit( get_template_directory() ) . $template_dir,
236
+        100 => wpinv_get_templates_dir(),
237
+    );
238 238
 
239
-	$file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
239
+    $file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
240 240
 
241
-	// sort the file paths based on priority
242
-	ksort( $file_paths, SORT_NUMERIC );
241
+    // sort the file paths based on priority
242
+    ksort( $file_paths, SORT_NUMERIC );
243 243
 
244
-	return array_map( 'trailingslashit', $file_paths );
244
+    return array_map( 'trailingslashit', $file_paths );
245 245
 }
246 246
 
247 247
 function wpinv_checkout_meta_tags() {
248 248
 
249
-	$pages   = array();
250
-	$pages[] = wpinv_get_option( 'success_page' );
251
-	$pages[] = wpinv_get_option( 'failure_page' );
252
-	$pages[] = wpinv_get_option( 'invoice_history_page' );
253
-	$pages[] = wpinv_get_option( 'invoice_subscription_page' );
249
+    $pages   = array();
250
+    $pages[] = wpinv_get_option( 'success_page' );
251
+    $pages[] = wpinv_get_option( 'failure_page' );
252
+    $pages[] = wpinv_get_option( 'invoice_history_page' );
253
+    $pages[] = wpinv_get_option( 'invoice_subscription_page' );
254 254
 
255
-	if ( ! wpinv_is_checkout() && ! is_page( $pages ) ) {
256
-		return;
257
-	}
255
+    if ( ! wpinv_is_checkout() && ! is_page( $pages ) ) {
256
+        return;
257
+    }
258 258
 
259
-	echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
259
+    echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
260 260
 }
261 261
 add_action( 'wp_head', 'wpinv_checkout_meta_tags' );
262 262
 
263 263
 function wpinv_add_body_classes( $class ) {
264
-	$classes = (array)$class;
264
+    $classes = (array)$class;
265 265
 
266
-	if ( wpinv_is_checkout() ) {
267
-		$classes[] = 'wpinv-checkout';
268
-		$classes[] = 'wpinv-page';
269
-	}
266
+    if ( wpinv_is_checkout() ) {
267
+        $classes[] = 'wpinv-checkout';
268
+        $classes[] = 'wpinv-page';
269
+    }
270 270
 
271
-	if ( wpinv_is_success_page() ) {
272
-		$classes[] = 'wpinv-success';
273
-		$classes[] = 'wpinv-page';
274
-	}
271
+    if ( wpinv_is_success_page() ) {
272
+        $classes[] = 'wpinv-success';
273
+        $classes[] = 'wpinv-page';
274
+    }
275 275
 
276
-	if ( wpinv_is_failed_transaction_page() ) {
277
-		$classes[] = 'wpinv-failed-transaction';
278
-		$classes[] = 'wpinv-page';
279
-	}
276
+    if ( wpinv_is_failed_transaction_page() ) {
277
+        $classes[] = 'wpinv-failed-transaction';
278
+        $classes[] = 'wpinv-page';
279
+    }
280 280
 
281
-	if ( wpinv_is_invoice_history_page() ) {
282
-		$classes[] = 'wpinv-history';
283
-		$classes[] = 'wpinv-page';
284
-	}
281
+    if ( wpinv_is_invoice_history_page() ) {
282
+        $classes[] = 'wpinv-history';
283
+        $classes[] = 'wpinv-page';
284
+    }
285 285
 
286
-	if ( wpinv_is_subscriptions_history_page() ) {
287
-		$classes[] = 'wpinv-subscription';
288
-		$classes[] = 'wpinv-page';
289
-	}
286
+    if ( wpinv_is_subscriptions_history_page() ) {
287
+        $classes[] = 'wpinv-subscription';
288
+        $classes[] = 'wpinv-page';
289
+    }
290 290
 
291
-	if ( wpinv_is_test_mode() ) {
292
-		$classes[] = 'wpinv-test-mode';
293
-		$classes[] = 'wpinv-page';
294
-	}
291
+    if ( wpinv_is_test_mode() ) {
292
+        $classes[] = 'wpinv-test-mode';
293
+        $classes[] = 'wpinv-page';
294
+    }
295 295
 
296
-	return array_unique( $classes );
296
+    return array_unique( $classes );
297 297
 }
298 298
 add_filter( 'body_class', 'wpinv_add_body_classes' );
299 299
 
@@ -467,16 +467,16 @@  discard block
 block discarded – undo
467 467
 
468 468
     wpinv_html_select(
469 469
         array(
470
-			'name'             => $args['name'],
471
-			'selected'         => $args['selected'],
472
-			'id'               => $args['id'],
473
-			'class'            => $args['class'],
474
-			'options'          => $options,
475
-			'multiple'         => $args['multiple'],
476
-			'placeholder'      => $args['placeholder'],
477
-			'show_option_all'  => $args['show_option_all'],
478
-			'show_option_none' => $args['show_option_none'],
479
-			'data'             => $args['data'],
470
+            'name'             => $args['name'],
471
+            'selected'         => $args['selected'],
472
+            'id'               => $args['id'],
473
+            'class'            => $args['class'],
474
+            'options'          => $options,
475
+            'multiple'         => $args['multiple'],
476
+            'placeholder'      => $args['placeholder'],
477
+            'show_option_all'  => $args['show_option_all'],
478
+            'show_option_none' => $args['show_option_none'],
479
+            'data'             => $args['data'],
480 480
         )
481 481
     );
482 482
 
@@ -776,21 +776,21 @@  discard block
 block discarded – undo
776 776
 
777 777
     $formatted_address = str_ireplace( array_keys( $replacements ), $replacements, $format );
778 778
 
779
-	// Remove unavailable tags.
779
+    // Remove unavailable tags.
780 780
     $formatted_address = preg_replace( '/\{\{\w+\}\}/', '', $formatted_address );
781 781
 
782 782
     // Clean up white space.
783
-	$formatted_address = preg_replace( '/  +/', ' ', trim( $formatted_address ) );
783
+    $formatted_address = preg_replace( '/  +/', ' ', trim( $formatted_address ) );
784 784
     $formatted_address = preg_replace( '/\n\n+/', "\n", $formatted_address );
785 785
 
786 786
     // Break newlines apart and remove empty lines/trim commas and white space.
787
-	$formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );
787
+    $formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );
788 788
 
789 789
     // Add html breaks.
790
-	$formatted_address = implode( $separator, $formatted_address );
790
+    $formatted_address = implode( $separator, $formatted_address );
791 791
 
792
-	// We're done!
793
-	return $formatted_address;
792
+    // We're done!
793
+    return $formatted_address;
794 794
 
795 795
 }
796 796
 
@@ -836,7 +836,7 @@  discard block
 block discarded – undo
836 836
 function getpaid_display_invoice_subscriptions( $invoice ) {
837 837
 
838 838
     // Subscriptions.
839
-	$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
839
+    $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
840 840
 
841 841
     if ( empty( $subscriptions ) || ! $invoice->is_recurring() ) {
842 842
         return;
@@ -1052,7 +1052,7 @@  discard block
 block discarded – undo
1052 1052
 }
1053 1053
 
1054 1054
 function wpinv_empty_cart_message() {
1055
-	return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1055
+    return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1056 1056
 }
1057 1057
 
1058 1058
 /**
@@ -1250,9 +1250,9 @@  discard block
 block discarded – undo
1250 1250
 
1251 1251
     if ( 0 == count( $form->get_items() ) ) {
1252 1252
         aui()->alert(
1253
-			array(
1254
-				'type'    => 'warning',
1255
-				'content' => __( 'No published items found', 'invoicing' ),
1253
+            array(
1254
+                'type'    => 'warning',
1255
+                'content' => __( 'No published items found', 'invoicing' ),
1256 1256
             ),
1257 1257
             true
1258 1258
         );
@@ -1275,10 +1275,10 @@  discard block
 block discarded – undo
1275 1275
     $invoice = wpinv_get_invoice( $invoice_id );
1276 1276
 
1277 1277
     if ( empty( $invoice ) ) {
1278
-		aui()->alert(
1279
-			array(
1280
-				'type'    => 'warning',
1281
-				'content' => __( 'Invoice not found', 'invoicing' ),
1278
+        aui()->alert(
1279
+            array(
1280
+                'type'    => 'warning',
1281
+                'content' => __( 'Invoice not found', 'invoicing' ),
1282 1282
             ),
1283 1283
             true
1284 1284
         );
@@ -1286,10 +1286,10 @@  discard block
 block discarded – undo
1286 1286
     }
1287 1287
 
1288 1288
     if ( $invoice->is_paid() ) {
1289
-		aui()->alert(
1290
-			array(
1291
-				'type'    => 'warning',
1292
-				'content' => __( 'Invoice has already been paid', 'invoicing' ),
1289
+        aui()->alert(
1290
+            array(
1291
+                'type'    => 'warning',
1292
+                'content' => __( 'Invoice has already been paid', 'invoicing' ),
1293 1293
             ),
1294 1294
             true
1295 1295
         );
@@ -1354,7 +1354,7 @@  discard block
 block discarded – undo
1354 1354
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-form='$form'>$label</button>";
1355 1355
     }
1356 1356
 
1357
-	if ( ! empty( $items ) ) {
1357
+    if ( ! empty( $items ) ) {
1358 1358
         $items  = esc_attr( $items );
1359 1359
         return "<button class='btn btn-primary getpaid-payment-button' type='button' data-item='$items'>$label</button>";
1360 1360
     }
@@ -1554,21 +1554,21 @@  discard block
 block discarded – undo
1554 1554
 
1555 1555
         return aui()->select(
1556 1556
             array(
1557
-				'options'          => $states,
1558
-				'name'             => esc_attr( $field_name ),
1559
-				'id'               => sanitize_html_class( $field_name ) . $uniqid,
1560
-				'value'            => sanitize_text_field( $state ),
1561
-				'placeholder'      => $placeholder,
1562
-				'required'         => $required,
1563
-				'label'            => wp_kses_post( $label ),
1564
-				'label_type'       => 'vertical',
1565
-				'help_text'        => $help_text,
1566
-				'class'            => 'getpaid-address-field wpinv_state',
1567
-				'wrap_class'       => "$wrapper_class getpaid-address-field-wrapper__state",
1568
-				'label_class'      => 'getpaid-address-field-label getpaid-address-field-label__state',
1569
-				'extra_attributes' => array(
1570
-					'autocomplete' => 'address-level1',
1571
-				),
1557
+                'options'          => $states,
1558
+                'name'             => esc_attr( $field_name ),
1559
+                'id'               => sanitize_html_class( $field_name ) . $uniqid,
1560
+                'value'            => sanitize_text_field( $state ),
1561
+                'placeholder'      => $placeholder,
1562
+                'required'         => $required,
1563
+                'label'            => wp_kses_post( $label ),
1564
+                'label_type'       => 'vertical',
1565
+                'help_text'        => $help_text,
1566
+                'class'            => 'getpaid-address-field wpinv_state',
1567
+                'wrap_class'       => "$wrapper_class getpaid-address-field-wrapper__state",
1568
+                'label_class'      => 'getpaid-address-field-label getpaid-address-field-label__state',
1569
+                'extra_attributes' => array(
1570
+                    'autocomplete' => 'address-level1',
1571
+                ),
1572 1572
             ),
1573 1573
             $echo
1574 1574
         );
@@ -1664,36 +1664,36 @@  discard block
 block discarded – undo
1664 1664
  * @return array Array of custom fields.
1665 1665
  */
1666 1666
 function getpaid_get_payment_form_custom_fields() {
1667
-	global $wpdb, $payment_form_meta_fields;
1667
+    global $wpdb, $payment_form_meta_fields;
1668 1668
 
1669
-	if ( ! empty( $payment_form_meta_fields ) ) {
1670
-		return $payment_form_meta_fields;
1671
-	}
1669
+    if ( ! empty( $payment_form_meta_fields ) ) {
1670
+        return $payment_form_meta_fields;
1671
+    }
1672 1672
 
1673
-	$results = $wpdb->get_results( "SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'" );
1673
+    $results = $wpdb->get_results( "SELECT `pm`.`meta_value` FROM `{$wpdb->postmeta}` AS pm LEFT JOIN `{$wpdb->posts}` AS p ON p.ID = pm.post_id WHERE `pm`.`meta_key` = 'wpinv_form_elements' AND `p`.`post_type` = 'wpi_payment_form'" );
1674 1674
 
1675
-	$meta_fields = array();
1675
+    $meta_fields = array();
1676 1676
 
1677
-	if ( ! empty( $results ) ) {
1678
-		foreach ( $results as $row ) {
1679
-			$fields = maybe_unserialize( $row->meta_value );
1677
+    if ( ! empty( $results ) ) {
1678
+        foreach ( $results as $row ) {
1679
+            $fields = maybe_unserialize( $row->meta_value );
1680 1680
 
1681
-			if ( ! empty( $fields ) && is_array( $fields ) ) {
1682
-				foreach ( $fields as $field ) {
1683
-					$label = ! empty( $field['add_meta'] ) && ! empty( $field['label'] ) ? wpinv_clean( wp_unslash( $field['label'] ) ) : '';
1681
+            if ( ! empty( $fields ) && is_array( $fields ) ) {
1682
+                foreach ( $fields as $field ) {
1683
+                    $label = ! empty( $field['add_meta'] ) && ! empty( $field['label'] ) ? wpinv_clean( wp_unslash( $field['label'] ) ) : '';
1684 1684
 
1685
-					if ( $label ) {
1686
-						$field_key = '_' . str_replace( array( ' ', "'", '"', ',' ), array( '_', '', '', '_' ), getpaid_strtolower( $label ) );
1687
-						$meta_fields[ $field_key ] = $label;
1688
-					}
1689
-				}
1690
-			}
1691
-		}
1692
-	}
1685
+                    if ( $label ) {
1686
+                        $field_key = '_' . str_replace( array( ' ', "'", '"', ',' ), array( '_', '', '', '_' ), getpaid_strtolower( $label ) );
1687
+                        $meta_fields[ $field_key ] = $label;
1688
+                    }
1689
+                }
1690
+            }
1691
+        }
1692
+    }
1693 1693
 
1694
-	$payment_form_meta_fields = $meta_fields;
1694
+    $payment_form_meta_fields = $meta_fields;
1695 1695
 
1696
-	return $meta_fields;
1696
+    return $meta_fields;
1697 1697
 }
1698 1698
 
1699 1699
 /**
@@ -1704,22 +1704,22 @@  discard block
 block discarded – undo
1704 1704
  * @return bool True if site uses Gutenberg else False.
1705 1705
  */
1706 1706
 function getpaid_is_gutenberg() {
1707
-	global $wp_version;
1707
+    global $wp_version;
1708 1708
 
1709
-	$is_gutenberg = true;
1709
+    $is_gutenberg = true;
1710 1710
 
1711
-	// If less than v5.
1712
-	if ( version_compare( $wp_version, '5.0.0', '<' ) ) {
1713
-		$is_gutenberg = false;
1714
-	}
1711
+    // If less than v5.
1712
+    if ( version_compare( $wp_version, '5.0.0', '<' ) ) {
1713
+        $is_gutenberg = false;
1714
+    }
1715 1715
 
1716
-	if ( class_exists( 'Classic_Editor' ) ) {
1717
-		$is_gutenberg = false; // Classic Editor plugin is active.
1718
-	} else if ( getpaid_is_classicpress() ) {
1719
-		$is_gutenberg = false; // Site is using ClassicPress.
1720
-	}
1716
+    if ( class_exists( 'Classic_Editor' ) ) {
1717
+        $is_gutenberg = false; // Classic Editor plugin is active.
1718
+    } else if ( getpaid_is_classicpress() ) {
1719
+        $is_gutenberg = false; // Site is using ClassicPress.
1720
+    }
1721 1721
 
1722
-	return $is_gutenberg;
1722
+    return $is_gutenberg;
1723 1723
 }
1724 1724
 
1725 1725
 /**
@@ -1730,13 +1730,13 @@  discard block
 block discarded – undo
1730 1730
  * @return bool True if site uses ClassicPress else False.
1731 1731
  */
1732 1732
 function getpaid_is_classicpress() {
1733
-	if ( function_exists( 'classicpress_version' ) ) {
1734
-		$is_classicpress = true;
1735
-	} else {
1736
-		$is_classicpress = false;
1737
-	}
1733
+    if ( function_exists( 'classicpress_version' ) ) {
1734
+        $is_classicpress = true;
1735
+    } else {
1736
+        $is_classicpress = false;
1737
+    }
1738 1738
 
1739
-	return $is_classicpress;
1739
+    return $is_classicpress;
1740 1740
 }
1741 1741
 
1742 1742
 /**
@@ -1748,20 +1748,20 @@  discard block
 block discarded – undo
1748 1748
  * @param @bool $blocks True to use blocks.
1749 1749
  * @return string Page content.
1750 1750
  */
1751
- function getpaid_page_content_checkout( $filtered = false, $blocks = false ) {
1752
-	if ( $blocks ) {
1753
-		$content = "<!-- wp:invoicing/wpinv-checkout-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_checkout title='' ]\"} -->
1751
+    function getpaid_page_content_checkout( $filtered = false, $blocks = false ) {
1752
+    if ( $blocks ) {
1753
+        $content = "<!-- wp:invoicing/wpinv-checkout-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_checkout title='' ]\"} -->
1754 1754
 <div class=\"wp-block-invoicing-wpinv-checkout-widget\"></div>
1755 1755
 <!-- /wp:invoicing/wpinv-checkout-widget -->";
1756
-	} else {
1757
-		$content = "[wpinv_checkout]";
1758
-	}
1756
+    } else {
1757
+        $content = "[wpinv_checkout]";
1758
+    }
1759 1759
 
1760
-	if ( $filtered ) {
1761
-		$content = apply_filters( 'getpaid_page_default_content_checkout', $content, $blocks );
1762
-	}
1760
+    if ( $filtered ) {
1761
+        $content = apply_filters( 'getpaid_page_default_content_checkout', $content, $blocks );
1762
+    }
1763 1763
 
1764
-	return $content;
1764
+    return $content;
1765 1765
 }
1766 1766
 
1767 1767
 /**
@@ -1773,20 +1773,20 @@  discard block
 block discarded – undo
1773 1773
  * @param @bool $blocks True to use blocks.
1774 1774
  * @return string Page content.
1775 1775
  */
1776
- function getpaid_page_content_invoice_history( $filtered = false, $blocks = false ) {
1777
-	if ( $blocks ) {
1778
-		$content = "<!-- wp:invoicing/wpinv-history-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_history title='' ]\"} -->
1776
+    function getpaid_page_content_invoice_history( $filtered = false, $blocks = false ) {
1777
+    if ( $blocks ) {
1778
+        $content = "<!-- wp:invoicing/wpinv-history-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_history title='' ]\"} -->
1779 1779
 <div class=\"wp-block-invoicing-wpinv-history-widget\"></div>
1780 1780
 <!-- /wp:invoicing/wpinv-history-widget -->";
1781
-	} else {
1782
-		$content = "[wpinv_history]";
1783
-	}
1781
+    } else {
1782
+        $content = "[wpinv_history]";
1783
+    }
1784 1784
 
1785
-	if ( $filtered ) {
1786
-		$content = apply_filters( 'getpaid_page_default_content_invoice_history', $content, $blocks );
1787
-	}
1785
+    if ( $filtered ) {
1786
+        $content = apply_filters( 'getpaid_page_default_content_invoice_history', $content, $blocks );
1787
+    }
1788 1788
 
1789
-	return $content;
1789
+    return $content;
1790 1790
 }
1791 1791
 
1792 1792
 /**
@@ -1798,20 +1798,20 @@  discard block
 block discarded – undo
1798 1798
  * @param @bool $blocks True to use blocks.
1799 1799
  * @return string Page content.
1800 1800
  */
1801
- function getpaid_page_content_receipt( $filtered = false, $blocks = false ) {
1802
-	if ( $blocks ) {
1803
-		$content = "<!-- wp:invoicing/wpinv-receipt-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_receipt title='' ]\"} -->
1801
+    function getpaid_page_content_receipt( $filtered = false, $blocks = false ) {
1802
+    if ( $blocks ) {
1803
+        $content = "<!-- wp:invoicing/wpinv-receipt-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_receipt title='' ]\"} -->
1804 1804
 <div class=\"wp-block-invoicing-wpinv-receipt-widget\"></div>
1805 1805
 <!-- /wp:invoicing/wpinv-receipt-widget -->";
1806
-	} else {
1807
-		$content = "[wpinv_receipt]";
1808
-	}
1806
+    } else {
1807
+        $content = "[wpinv_receipt]";
1808
+    }
1809 1809
 
1810
-	if ( $filtered ) {
1811
-		$content = apply_filters( 'getpaid_page_default_content_receipt', $content, $blocks );
1812
-	}
1810
+    if ( $filtered ) {
1811
+        $content = apply_filters( 'getpaid_page_default_content_receipt', $content, $blocks );
1812
+    }
1813 1813
 
1814
-	return $content;
1814
+    return $content;
1815 1815
 }
1816 1816
 
1817 1817
 /**
@@ -1823,20 +1823,20 @@  discard block
 block discarded – undo
1823 1823
  * @param @bool $blocks True to use blocks.
1824 1824
  * @return string Page content.
1825 1825
  */
1826
- function getpaid_page_content_failure( $filtered = false, $blocks = false ) {
1827
-	if ( $blocks ) {
1828
-		$content = "<!-- wp:html -->
1826
+    function getpaid_page_content_failure( $filtered = false, $blocks = false ) {
1827
+    if ( $blocks ) {
1828
+        $content = "<!-- wp:html -->
1829 1829
 " . __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ) . "
1830 1830
 <!-- /wp:html -->";
1831
-	} else {
1832
-		$content = __( 'Your transaction failed, please try again or contact site support.', 'invoicing' );
1833
-	}
1831
+    } else {
1832
+        $content = __( 'Your transaction failed, please try again or contact site support.', 'invoicing' );
1833
+    }
1834 1834
 
1835
-	if ( $filtered ) {
1836
-		$content = apply_filters( 'getpaid_page_default_content_failure', $content, $blocks );
1837
-	}
1835
+    if ( $filtered ) {
1836
+        $content = apply_filters( 'getpaid_page_default_content_failure', $content, $blocks );
1837
+    }
1838 1838
 
1839
-	return $content;
1839
+    return $content;
1840 1840
 }
1841 1841
 
1842 1842
 /**
@@ -1848,20 +1848,20 @@  discard block
 block discarded – undo
1848 1848
  * @param @bool $blocks True to use blocks.
1849 1849
  * @return string Page content.
1850 1850
  */
1851
- function getpaid_page_content_subscriptions( $filtered = false, $blocks = false ) {
1852
-	if ( $blocks ) {
1853
-		$content = "<!-- wp:invoicing/wpinv-subscriptions-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_subscriptions title='' ]\"} -->
1851
+    function getpaid_page_content_subscriptions( $filtered = false, $blocks = false ) {
1852
+    if ( $blocks ) {
1853
+        $content = "<!-- wp:invoicing/wpinv-subscriptions-widget {\"content\":\"\",\"sd_shortcode\":\"[wpinv_subscriptions title='' ]\"} -->
1854 1854
 <div class=\"wp-block-invoicing-wpinv-subscriptions-widget\"></div>
1855 1855
 <!-- /wp:invoicing/wpinv-subscriptions-widget -->";
1856
-	} else {
1857
-		$content = "[wpinv_subscriptions]";
1858
-	}
1856
+    } else {
1857
+        $content = "[wpinv_subscriptions]";
1858
+    }
1859 1859
 
1860
-	if ( $filtered ) {
1861
-		$content = apply_filters( 'getpaid_page_default_content_subscriptions', $content, $blocks );
1862
-	}
1860
+    if ( $filtered ) {
1861
+        $content = apply_filters( 'getpaid_page_default_content_subscriptions', $content, $blocks );
1862
+    }
1863 1863
 
1864
-	return $content;
1864
+    return $content;
1865 1865
 }
1866 1866
 
1867 1867
 /**
@@ -1874,21 +1874,21 @@  discard block
 block discarded – undo
1874 1874
  * @return array Returns options array.
1875 1875
  */
1876 1876
 function getpaid_parse_field_options( $options, $translated = true ) {
1877
-	$orig_options = $options;
1877
+    $orig_options = $options;
1878 1878
 
1879
-	$options = array();
1879
+    $options = array();
1880 1880
 
1881
-	if ( ! empty( $orig_options ) ) {
1882
-		foreach ( $orig_options as $key => $value ) {
1883
-			if ( $value && is_string( $value ) ) {
1884
-				$label = $translated ? __( wp_unslash( $value ), 'invoicing' ) : $value;
1885
-			} else {
1886
-				$label = $value;
1887
-			}
1881
+    if ( ! empty( $orig_options ) ) {
1882
+        foreach ( $orig_options as $key => $value ) {
1883
+            if ( $value && is_string( $value ) ) {
1884
+                $label = $translated ? __( wp_unslash( $value ), 'invoicing' ) : $value;
1885
+            } else {
1886
+                $label = $value;
1887
+            }
1888 1888
 
1889
-			$options[ $value ] = $label;
1890
-		}
1891
-	}
1889
+            $options[ $value ] = $label;
1890
+        }
1891
+    }
1892 1892
 
1893
-	return apply_filters( 'getpaid_parse_field_options', $options, $orig_options, $translated );
1893
+    return apply_filters( 'getpaid_parse_field_options', $options, $orig_options, $translated );
1894 1894
 }
Please login to merge, or discard this patch.
includes/wpinv-helper-functions.php 1 patch
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -137,13 +137,13 @@  discard block
 block discarded – undo
137 137
  */
138 138
 function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
139 139
 
140
-	$invoice_statuses = array(
141
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
140
+    $invoice_statuses = array(
141
+        'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
142 142
         'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
143 143
         'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
144
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
144
+        'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
+        'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
+        'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
147 147
         'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
148 148
         'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
149 149
     );
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
         $invoice = $invoice->get_post_type();
161 161
     }
162 162
 
163
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163
+    return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
164 164
 }
165 165
 
166 166
 /**
@@ -278,25 +278,25 @@  discard block
 block discarded – undo
278 278
  * @return string
279 279
  */
280 280
 function getpaid_get_price_format() {
281
-	$currency_pos = wpinv_currency_position();
282
-	$format       = '%1$s%2$s';
283
-
284
-	switch ( $currency_pos ) {
285
-		case 'left':
286
-			$format = '%1$s%2$s';
287
-			break;
288
-		case 'right':
289
-			$format = '%2$s%1$s';
290
-			break;
291
-		case 'left_space':
292
-			$format = '%1$s&nbsp;%2$s';
293
-			break;
294
-		case 'right_space':
295
-			$format = '%2$s&nbsp;%1$s';
296
-			break;
297
-	}
298
-
299
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
281
+    $currency_pos = wpinv_currency_position();
282
+    $format       = '%1$s%2$s';
283
+
284
+    switch ( $currency_pos ) {
285
+        case 'left':
286
+            $format = '%1$s%2$s';
287
+            break;
288
+        case 'right':
289
+            $format = '%2$s%1$s';
290
+            break;
291
+        case 'left_space':
292
+            $format = '%1$s&nbsp;%2$s';
293
+            break;
294
+        case 'right_space':
295
+            $format = '%2$s&nbsp;%1$s';
296
+            break;
297
+    }
298
+
299
+    return apply_filters( 'getpaid_price_format', $format, $currency_pos );
300 300
 }
301 301
 
302 302
 /**
@@ -402,13 +402,13 @@  discard block
 block discarded – undo
402 402
  * @param mixed  $value Value.
403 403
  */
404 404
 function getpaid_maybe_define_constant( $name, $value ) {
405
-	if ( ! defined( $name ) ) {
406
-		define( $name, $value );
407
-	}
405
+    if ( ! defined( $name ) ) {
406
+        define( $name, $value );
407
+    }
408 408
 }
409 409
 
410 410
 function wpinv_get_php_arg_separator_output() {
411
-	return ini_get( 'arg_separator.output' );
411
+    return ini_get( 'arg_separator.output' );
412 412
 }
413 413
 
414 414
 function wpinv_rgb_from_hex( $color ) {
@@ -719,16 +719,16 @@  discard block
 block discarded – undo
719 719
     return wp_kses(
720 720
         html_entity_decode( $var ),
721 721
         array(
722
-			'br'     => array(),
723
-			'em'     => array(),
724
-			'strong' => array(),
725
-			'b'      => array(),
726
-			'small'  => array(),
727
-			'span'   => array(),
728
-			'ul'     => array(),
729
-			'li'     => array(),
730
-			'ol'     => array(),
731
-			'p'      => array(),
722
+            'br'     => array(),
723
+            'em'     => array(),
724
+            'strong' => array(),
725
+            'b'      => array(),
726
+            'small'  => array(),
727
+            'span'   => array(),
728
+            'ul'     => array(),
729
+            'li'     => array(),
730
+            'ol'     => array(),
731
+            'p'      => array(),
732 732
         )
733 733
     );
734 734
 }
@@ -779,11 +779,11 @@  discard block
 block discarded – undo
779 779
         $list = array();
780 780
     }
781 781
 
782
-	if ( ! is_array( $list ) ) {
783
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
784
-	}
782
+    if ( ! is_array( $list ) ) {
783
+        return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
784
+    }
785 785
 
786
-	return $list;
786
+    return $list;
787 787
 }
788 788
 
789 789
 /**
@@ -824,17 +824,17 @@  discard block
 block discarded – undo
824 824
  */
825 825
 function wpinv_clean( $var ) {
826 826
 
827
-	if ( is_array( $var ) ) {
828
-		return array_map( 'wpinv_clean', $var );
827
+    if ( is_array( $var ) ) {
828
+        return array_map( 'wpinv_clean', $var );
829 829
     }
830 830
 
831 831
     if ( is_object( $var ) ) {
832
-		$object_vars = get_object_vars( $var );
833
-		foreach ( $object_vars as $property_name => $property_value ) {
834
-			$var->$property_name = wpinv_clean( $property_value );
832
+        $object_vars = get_object_vars( $var );
833
+        foreach ( $object_vars as $property_name => $property_value ) {
834
+            $var->$property_name = wpinv_clean( $property_value );
835 835
         }
836 836
         return $var;
837
-	}
837
+    }
838 838
 
839 839
     return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
840 840
 }
@@ -847,7 +847,7 @@  discard block
 block discarded – undo
847 847
  */
848 848
 function getpaid_convert_price_string_to_options( $str, $translated = true ) {
849 849
 
850
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
850
+    $raw_options = array_map( 'trim', explode( ',', $str ) );
851 851
     $options     = array();
852 852
 
853 853
     foreach ( $raw_options as $option ) {
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
  * @return string
937 937
  */
938 938
 function getpaid_date_format() {
939
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939
+    return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
940 940
 }
941 941
 
942 942
 /**
@@ -945,7 +945,7 @@  discard block
 block discarded – undo
945 945
  * @return string
946 946
  */
947 947
 function getpaid_time_format() {
948
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948
+    return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
949 949
 }
950 950
 
951 951
 /**
@@ -958,15 +958,15 @@  discard block
 block discarded – undo
958 958
 function getpaid_limit_length( $string, $limit ) {
959 959
     $str_limit = $limit - 3;
960 960
 
961
-	if ( function_exists( 'mb_strimwidth' ) ) {
962
-		if ( mb_strlen( $string ) > $limit ) {
963
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
964
-		}
965
-	} else {
966
-		if ( strlen( $string ) > $limit ) {
967
-			$string = substr( $string, 0, $str_limit ) . '...';
968
-		}
969
-	}
961
+    if ( function_exists( 'mb_strimwidth' ) ) {
962
+        if ( mb_strlen( $string ) > $limit ) {
963
+            $string = mb_strimwidth( $string, 0, $str_limit ) . '...';
964
+        }
965
+    } else {
966
+        if ( strlen( $string ) > $limit ) {
967
+            $string = substr( $string, 0, $str_limit ) . '...';
968
+        }
969
+    }
970 970
     return $string;
971 971
 
972 972
 }
@@ -1096,12 +1096,12 @@  discard block
 block discarded – undo
1096 1096
     $types = get_allowed_mime_types();
1097 1097
 
1098 1098
     if ( isset( $types['htm|html'] ) ) {
1099
-		unset( $types['htm|html'] );
1100
-	}
1099
+        unset( $types['htm|html'] );
1100
+    }
1101 1101
 
1102 1102
     if ( isset( $types['js'] ) ) {
1103
-		unset( $types['js'] );
1104
-	}
1103
+        unset( $types['js'] );
1104
+    }
1105 1105
 
1106 1106
     return $types;
1107 1107
 
@@ -1157,11 +1157,11 @@  discard block
 block discarded – undo
1157 1157
  * @return string Returns converted string.
1158 1158
  */
1159 1159
 function getpaid_strtolower( $string, $charset = 'UTF-8' ) {
1160
-	if ( function_exists( 'mb_convert_case' ) ) {
1161
-		return mb_convert_case( $string, MB_CASE_LOWER, $charset );
1162
-	} else {
1163
-		return strtolower( $string );
1164
-	}
1160
+    if ( function_exists( 'mb_convert_case' ) ) {
1161
+        return mb_convert_case( $string, MB_CASE_LOWER, $charset );
1162
+    } else {
1163
+        return strtolower( $string );
1164
+    }
1165 1165
 }
1166 1166
 
1167 1167
 /**
@@ -1174,9 +1174,9 @@  discard block
 block discarded – undo
1174 1174
  * @return string Returns converted string.
1175 1175
  */
1176 1176
 function getpaid_strtoupper( $string, $charset = 'UTF-8' ) {
1177
-	if ( function_exists( 'mb_convert_case' ) ) {
1178
-		return mb_convert_case( $string, MB_CASE_UPPER, $charset );
1179
-	} else {
1180
-		return strtoupper( $string );
1181
-	}
1177
+    if ( function_exists( 'mb_convert_case' ) ) {
1178
+        return mb_convert_case( $string, MB_CASE_UPPER, $charset );
1179
+    } else {
1180
+        return strtoupper( $string );
1181
+    }
1182 1182
 }
1183 1183
\ No newline at end of file
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -7,40 +7,40 @@
 block discarded – undo
7 7
  * Bail if we are not in WP.
8 8
  */
9 9
 if ( ! defined( 'ABSPATH' ) ) {
10
-	exit;
10
+    exit;
11 11
 }
12 12
 
13 13
 /**
14 14
  * Set the version only if its the current newest while loading.
15 15
  */
16 16
 add_action('after_setup_theme', function () {
17
-	global $ayecode_ui_version,$ayecode_ui_file_key;
18
-	$this_version = "0.2.41";
19
-	if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
-		$ayecode_ui_version = $this_version ;
21
-		$ayecode_ui_file_key = wp_hash( __FILE__ );
22
-	}
17
+    global $ayecode_ui_version,$ayecode_ui_file_key;
18
+    $this_version = "0.2.41";
19
+    if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
+        $ayecode_ui_version = $this_version ;
21
+        $ayecode_ui_file_key = wp_hash( __FILE__ );
22
+    }
23 23
 },0);
24 24
 
25 25
 /**
26 26
  * Load this version of WP Bootstrap Settings only if the file hash is the current one.
27 27
  */
28 28
 add_action('after_setup_theme', function () {
29
-	global $ayecode_ui_file_key;
30
-	if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
-		include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
-		include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
-	}
29
+    global $ayecode_ui_file_key;
30
+    if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
+        include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
+        include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
+    }
34 34
 },1);
35 35
 
36 36
 /**
37 37
  * Add the function that calls the class.
38 38
  */
39 39
 if(!function_exists('aui')){
40
-	function aui(){
41
-		if(!class_exists("AUI",false)){
42
-			return false;
43
-		}
44
-		return AUI::instance();
45
-	}
40
+    function aui(){
41
+        if(!class_exists("AUI",false)){
42
+            return false;
43
+        }
44
+        return AUI::instance();
45
+    }
46 46
 }
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php 1 patch
Indentation   +2346 added lines, -2346 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
  * Bail if we are not in WP.
14 14
  */
15 15
 if ( ! defined( 'ABSPATH' ) ) {
16
-	exit;
16
+    exit;
17 17
 }
18 18
 
19 19
 /**
@@ -21,472 +21,472 @@  discard block
 block discarded – undo
21 21
  */
22 22
 if ( ! class_exists( 'AyeCode_UI_Settings' ) ) {
23 23
 
24
-	/**
25
-	 * A Class to be able to change settings for Font Awesome.
26
-	 *
27
-	 * Class AyeCode_UI_Settings
28
-	 * @ver 1.0.0
29
-	 * @todo decide how to implement textdomain
30
-	 */
31
-	class AyeCode_UI_Settings {
32
-
33
-		/**
34
-		 * Class version version.
35
-		 *
36
-		 * @var string
37
-		 */
38
-		public $version = '0.2.41';
39
-
40
-		/**
41
-		 * Class textdomain.
42
-		 *
43
-		 * @var string
44
-		 */
45
-		public $textdomain = 'aui';
46
-
47
-		/**
48
-		 * Latest version of Bootstrap at time of publish published.
49
-		 *
50
-		 * @var string
51
-		 */
52
-		public $latest = "5.2.2";
53
-
54
-		/**
55
-		 * Current version of select2 being used.
56
-		 *
57
-		 * @var string
58
-		 */
59
-		public $select2_version = "4.0.11";
60
-
61
-		/**
62
-		 * The title.
63
-		 *
64
-		 * @var string
65
-		 */
66
-		public $name = 'AyeCode UI';
67
-
68
-		/**
69
-		 * The relative url to the assets.
70
-		 *
71
-		 * @var string
72
-		 */
73
-		public $url = '';
74
-
75
-		/**
76
-		 * Holds the settings values.
77
-		 *
78
-		 * @var array
79
-		 */
80
-		private $settings;
81
-
82
-		/**
83
-		 * AyeCode_UI_Settings instance.
84
-		 *
85
-		 * @access private
86
-		 * @since  1.0.0
87
-		 * @var    AyeCode_UI_Settings There can be only one!
88
-		 */
89
-		private static $instance = null;
90
-
91
-
92
-		/**
93
-		 * Main AyeCode_UI_Settings Instance.
94
-		 *
95
-		 * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
96
-		 *
97
-		 * @since 1.0.0
98
-		 * @static
99
-		 * @return AyeCode_UI_Settings - Main instance.
100
-		 */
101
-		public static function instance() {
102
-			if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
103
-
104
-				self::$instance = new AyeCode_UI_Settings;
105
-
106
-				add_action( 'init', array( self::$instance, 'init' ) ); // set settings
107
-
108
-				if ( is_admin() ) {
109
-					add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
110
-					add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
111
-
112
-					// Maybe show example page
113
-					add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
114
-
115
-					if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
116
-						add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 );
117
-					}
118
-				}
24
+    /**
25
+     * A Class to be able to change settings for Font Awesome.
26
+     *
27
+     * Class AyeCode_UI_Settings
28
+     * @ver 1.0.0
29
+     * @todo decide how to implement textdomain
30
+     */
31
+    class AyeCode_UI_Settings {
32
+
33
+        /**
34
+         * Class version version.
35
+         *
36
+         * @var string
37
+         */
38
+        public $version = '0.2.41';
39
+
40
+        /**
41
+         * Class textdomain.
42
+         *
43
+         * @var string
44
+         */
45
+        public $textdomain = 'aui';
46
+
47
+        /**
48
+         * Latest version of Bootstrap at time of publish published.
49
+         *
50
+         * @var string
51
+         */
52
+        public $latest = "5.2.2";
53
+
54
+        /**
55
+         * Current version of select2 being used.
56
+         *
57
+         * @var string
58
+         */
59
+        public $select2_version = "4.0.11";
119 60
 
120
-				add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
61
+        /**
62
+         * The title.
63
+         *
64
+         * @var string
65
+         */
66
+        public $name = 'AyeCode UI';
121 67
 
122
-				do_action( 'ayecode_ui_settings_loaded' );
123
-			}
68
+        /**
69
+         * The relative url to the assets.
70
+         *
71
+         * @var string
72
+         */
73
+        public $url = '';
124 74
 
125
-			return self::$instance;
126
-		}
75
+        /**
76
+         * Holds the settings values.
77
+         *
78
+         * @var array
79
+         */
80
+        private $settings;
127 81
 
128
-		/**
129
-		 * Add custom colors to the color selector.
130
-		 *
131
-		 * @param $theme_colors
132
-		 * @param $include_outlines
133
-		 * @param $include_branding
134
-		 *
135
-		 * @return mixed
136
-		 */
137
-		public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){
82
+        /**
83
+         * AyeCode_UI_Settings instance.
84
+         *
85
+         * @access private
86
+         * @since  1.0.0
87
+         * @var    AyeCode_UI_Settings There can be only one!
88
+         */
89
+        private static $instance = null;
138 90
 
139 91
 
140
-			$setting = wp_get_global_settings();
92
+        /**
93
+         * Main AyeCode_UI_Settings Instance.
94
+         *
95
+         * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
96
+         *
97
+         * @since 1.0.0
98
+         * @static
99
+         * @return AyeCode_UI_Settings - Main instance.
100
+         */
101
+        public static function instance() {
102
+            if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
141 103
 
142
-			if(!empty($setting['color']['palette']['custom'])){
143
-				foreach($setting['color']['palette']['custom'] as $color){
144
-					$theme_colors[$color['slug']] = esc_attr($color['name']);
145
-				}
146
-			}
147
-
148
-			return $theme_colors;
149
-		}
150
-
151
-		/**
152
-		 * Setup some constants.
153
-		 */
154
-		public function constants(){
155
-			define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" );
156
-			define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' );
157
-			define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' );
158
-			define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' );
159
-			define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' );
160
-			define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' );
161
-			define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' );
162
-			define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' );
163
-			define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' );
164
-			define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' );
165
-			define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' );
166
-			define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' );
167
-			define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' );
168
-			define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' );
169
-			define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' );
170
-			define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' );
171
-
172
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
173
-				define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL );
174
-			}
175
-			if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) {
176
-				define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL );
177
-			}
178
-			if ( ! defined( 'AUI_INFO_COLOR' ) ) {
179
-				define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL );
180
-			}
181
-			if ( ! defined( 'AUI_WARNING_COLOR' ) ) {
182
-				define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL );
183
-			}
184
-			if ( ! defined( 'AUI_DANGER_COLOR' ) ) {
185
-				define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL );
186
-			}
187
-			if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) {
188
-				define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL );
189
-			}
190
-			if ( ! defined( 'AUI_LIGHT_COLOR' ) ) {
191
-				define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL );
192
-			}
193
-			if ( ! defined( 'AUI_DARK_COLOR' ) ) {
194
-				define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL );
195
-			}
196
-			if ( ! defined( 'AUI_WHITE_COLOR' ) ) {
197
-				define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL );
198
-			}
199
-			if ( ! defined( 'AUI_PURPLE_COLOR' ) ) {
200
-				define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL );
201
-			}
202
-			if ( ! defined( 'AUI_SALMON_COLOR' ) ) {
203
-				define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL );
204
-			}
205
-			if ( ! defined( 'AUI_CYAN_COLOR' ) ) {
206
-				define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL );
207
-			}
208
-			if ( ! defined( 'AUI_GRAY_COLOR' ) ) {
209
-				define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL );
210
-			}
211
-			if ( ! defined( 'AUI_INDIGO_COLOR' ) ) {
212
-				define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL );
213
-			}
214
-			if ( ! defined( 'AUI_ORANGE_COLOR' ) ) {
215
-				define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL );
216
-			}
217
-			if ( ! defined( 'AUI_BLACK_COLOR' ) ) {
218
-				define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL );
219
-			}
220
-
221
-		}
222
-
223
-		public static function get_colors( $original = false){
224
-
225
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
226
-				return array();
227
-			}
228
-			if ( $original ) {
229
-				return array(
230
-					'primary'   => AUI_PRIMARY_COLOR_ORIGINAL,
231
-					'secondary' => AUI_SECONDARY_COLOR_ORIGINAL,
232
-					'info'      => AUI_INFO_COLOR_ORIGINAL,
233
-					'warning'   => AUI_WARNING_COLOR_ORIGINAL,
234
-					'danger'    => AUI_DANGER_COLOR_ORIGINAL,
235
-					'success'   => AUI_SUCCESS_COLOR_ORIGINAL,
236
-					'light'     => AUI_LIGHT_COLOR_ORIGINAL,
237
-					'dark'      => AUI_DARK_COLOR_ORIGINAL,
238
-					'white'     => AUI_WHITE_COLOR_ORIGINAL,
239
-					'purple'    => AUI_PURPLE_COLOR_ORIGINAL,
240
-					'salmon'    => AUI_SALMON_COLOR_ORIGINAL,
241
-					'cyan'      => AUI_CYAN_COLOR_ORIGINAL,
242
-					'gray'      => AUI_GRAY_COLOR_ORIGINAL,
243
-					'indigo'    => AUI_INDIGO_COLOR_ORIGINAL,
244
-					'orange'    => AUI_ORANGE_COLOR_ORIGINAL,
245
-					'black'     => AUI_BLACK_COLOR_ORIGINAL,
246
-				);
247
-			}
248
-
249
-			return array(
250
-				'primary'   => AUI_PRIMARY_COLOR,
251
-				'secondary' => AUI_SECONDARY_COLOR,
252
-				'info'      => AUI_INFO_COLOR,
253
-				'warning'   => AUI_WARNING_COLOR,
254
-				'danger'    => AUI_DANGER_COLOR,
255
-				'success'   => AUI_SUCCESS_COLOR,
256
-				'light'     => AUI_LIGHT_COLOR,
257
-				'dark'      => AUI_DARK_COLOR,
258
-				'white'     => AUI_WHITE_COLOR,
259
-				'purple'    => AUI_PURPLE_COLOR,
260
-				'salmon'    => AUI_SALMON_COLOR,
261
-				'cyan'      => AUI_CYAN_COLOR,
262
-				'gray'      => AUI_GRAY_COLOR,
263
-				'indigo'    => AUI_INDIGO_COLOR,
264
-				'orange'    => AUI_ORANGE_COLOR,
265
-				'black'     => AUI_BLACK_COLOR,
266
-			);
267
-		}
268
-
269
-		/**
270
-		 * Add admin body class to show when BS5 is active.
271
-		 *
272
-		 * @param $classes
273
-		 *
274
-		 * @return mixed
275
-		 */
276
-		public function add_bs5_admin_body_class( $classes = '' ) {
277
-			$classes .= ' aui_bs5';
278
-
279
-			return $classes;
280
-		}
281
-
282
-		/**
283
-		 * Add a body class to show when BS5 is active.
284
-		 *
285
-		 * @param $classes
286
-		 *
287
-		 * @return mixed
288
-		 */
289
-		public function add_bs5_body_class( $classes ) {
290
-			$classes[] = 'aui_bs5';
291
-
292
-			return $classes;
293
-		}
294
-
295
-		/**
296
-		 * Initiate the settings and add the required action hooks.
297
-		 */
298
-		public function init() {
104
+                self::$instance = new AyeCode_UI_Settings;
105
+
106
+                add_action( 'init', array( self::$instance, 'init' ) ); // set settings
107
+
108
+                if ( is_admin() ) {
109
+                    add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
110
+                    add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
111
+
112
+                    // Maybe show example page
113
+                    add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
114
+
115
+                    if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
116
+                        add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 );
117
+                    }
118
+                }
119
+
120
+                add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
121
+
122
+                do_action( 'ayecode_ui_settings_loaded' );
123
+            }
124
+
125
+            return self::$instance;
126
+        }
127
+
128
+        /**
129
+         * Add custom colors to the color selector.
130
+         *
131
+         * @param $theme_colors
132
+         * @param $include_outlines
133
+         * @param $include_branding
134
+         *
135
+         * @return mixed
136
+         */
137
+        public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){
138
+
139
+
140
+            $setting = wp_get_global_settings();
141
+
142
+            if(!empty($setting['color']['palette']['custom'])){
143
+                foreach($setting['color']['palette']['custom'] as $color){
144
+                    $theme_colors[$color['slug']] = esc_attr($color['name']);
145
+                }
146
+            }
147
+
148
+            return $theme_colors;
149
+        }
150
+
151
+        /**
152
+         * Setup some constants.
153
+         */
154
+        public function constants(){
155
+            define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" );
156
+            define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' );
157
+            define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' );
158
+            define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' );
159
+            define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' );
160
+            define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' );
161
+            define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' );
162
+            define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' );
163
+            define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' );
164
+            define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' );
165
+            define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' );
166
+            define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' );
167
+            define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' );
168
+            define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' );
169
+            define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' );
170
+            define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' );
171
+
172
+            if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
173
+                define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL );
174
+            }
175
+            if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) {
176
+                define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL );
177
+            }
178
+            if ( ! defined( 'AUI_INFO_COLOR' ) ) {
179
+                define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL );
180
+            }
181
+            if ( ! defined( 'AUI_WARNING_COLOR' ) ) {
182
+                define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL );
183
+            }
184
+            if ( ! defined( 'AUI_DANGER_COLOR' ) ) {
185
+                define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL );
186
+            }
187
+            if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) {
188
+                define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL );
189
+            }
190
+            if ( ! defined( 'AUI_LIGHT_COLOR' ) ) {
191
+                define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL );
192
+            }
193
+            if ( ! defined( 'AUI_DARK_COLOR' ) ) {
194
+                define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL );
195
+            }
196
+            if ( ! defined( 'AUI_WHITE_COLOR' ) ) {
197
+                define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL );
198
+            }
199
+            if ( ! defined( 'AUI_PURPLE_COLOR' ) ) {
200
+                define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL );
201
+            }
202
+            if ( ! defined( 'AUI_SALMON_COLOR' ) ) {
203
+                define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL );
204
+            }
205
+            if ( ! defined( 'AUI_CYAN_COLOR' ) ) {
206
+                define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL );
207
+            }
208
+            if ( ! defined( 'AUI_GRAY_COLOR' ) ) {
209
+                define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL );
210
+            }
211
+            if ( ! defined( 'AUI_INDIGO_COLOR' ) ) {
212
+                define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL );
213
+            }
214
+            if ( ! defined( 'AUI_ORANGE_COLOR' ) ) {
215
+                define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL );
216
+            }
217
+            if ( ! defined( 'AUI_BLACK_COLOR' ) ) {
218
+                define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL );
219
+            }
220
+
221
+        }
222
+
223
+        public static function get_colors( $original = false){
224
+
225
+            if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
226
+                return array();
227
+            }
228
+            if ( $original ) {
229
+                return array(
230
+                    'primary'   => AUI_PRIMARY_COLOR_ORIGINAL,
231
+                    'secondary' => AUI_SECONDARY_COLOR_ORIGINAL,
232
+                    'info'      => AUI_INFO_COLOR_ORIGINAL,
233
+                    'warning'   => AUI_WARNING_COLOR_ORIGINAL,
234
+                    'danger'    => AUI_DANGER_COLOR_ORIGINAL,
235
+                    'success'   => AUI_SUCCESS_COLOR_ORIGINAL,
236
+                    'light'     => AUI_LIGHT_COLOR_ORIGINAL,
237
+                    'dark'      => AUI_DARK_COLOR_ORIGINAL,
238
+                    'white'     => AUI_WHITE_COLOR_ORIGINAL,
239
+                    'purple'    => AUI_PURPLE_COLOR_ORIGINAL,
240
+                    'salmon'    => AUI_SALMON_COLOR_ORIGINAL,
241
+                    'cyan'      => AUI_CYAN_COLOR_ORIGINAL,
242
+                    'gray'      => AUI_GRAY_COLOR_ORIGINAL,
243
+                    'indigo'    => AUI_INDIGO_COLOR_ORIGINAL,
244
+                    'orange'    => AUI_ORANGE_COLOR_ORIGINAL,
245
+                    'black'     => AUI_BLACK_COLOR_ORIGINAL,
246
+                );
247
+            }
248
+
249
+            return array(
250
+                'primary'   => AUI_PRIMARY_COLOR,
251
+                'secondary' => AUI_SECONDARY_COLOR,
252
+                'info'      => AUI_INFO_COLOR,
253
+                'warning'   => AUI_WARNING_COLOR,
254
+                'danger'    => AUI_DANGER_COLOR,
255
+                'success'   => AUI_SUCCESS_COLOR,
256
+                'light'     => AUI_LIGHT_COLOR,
257
+                'dark'      => AUI_DARK_COLOR,
258
+                'white'     => AUI_WHITE_COLOR,
259
+                'purple'    => AUI_PURPLE_COLOR,
260
+                'salmon'    => AUI_SALMON_COLOR,
261
+                'cyan'      => AUI_CYAN_COLOR,
262
+                'gray'      => AUI_GRAY_COLOR,
263
+                'indigo'    => AUI_INDIGO_COLOR,
264
+                'orange'    => AUI_ORANGE_COLOR,
265
+                'black'     => AUI_BLACK_COLOR,
266
+            );
267
+        }
268
+
269
+        /**
270
+         * Add admin body class to show when BS5 is active.
271
+         *
272
+         * @param $classes
273
+         *
274
+         * @return mixed
275
+         */
276
+        public function add_bs5_admin_body_class( $classes = '' ) {
277
+            $classes .= ' aui_bs5';
278
+
279
+            return $classes;
280
+        }
281
+
282
+        /**
283
+         * Add a body class to show when BS5 is active.
284
+         *
285
+         * @param $classes
286
+         *
287
+         * @return mixed
288
+         */
289
+        public function add_bs5_body_class( $classes ) {
290
+            $classes[] = 'aui_bs5';
291
+
292
+            return $classes;
293
+        }
294
+
295
+        /**
296
+         * Initiate the settings and add the required action hooks.
297
+         */
298
+        public function init() {
299 299
             global $aui_bs5;
300 300
 
301
-			// Maybe fix settings
302
-			if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) {
303
-				$db_settings = get_option( 'ayecode-ui-settings' );
304
-				if ( ! empty( $db_settings ) ) {
305
-					$db_settings['css_backend'] = 'compatibility';
306
-					$db_settings['js_backend'] = 'core-popper';
307
-					update_option( 'ayecode-ui-settings', $db_settings );
308
-					wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true"));
309
-				}
310
-			}
301
+            // Maybe fix settings
302
+            if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) {
303
+                $db_settings = get_option( 'ayecode-ui-settings' );
304
+                if ( ! empty( $db_settings ) ) {
305
+                    $db_settings['css_backend'] = 'compatibility';
306
+                    $db_settings['js_backend'] = 'core-popper';
307
+                    update_option( 'ayecode-ui-settings', $db_settings );
308
+                    wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true"));
309
+                }
310
+            }
311 311
 
312
-			$this->constants();
313
-			$this->settings = $this->get_settings();
314
-			$this->url = $this->get_url();
312
+            $this->constants();
313
+            $this->settings = $this->get_settings();
314
+            $this->url = $this->get_url();
315 315
 
316 316
             // define the version
317
-			$aui_bs5 = $this->settings['bs_ver'] === '5';
318
-
319
-			if ( $aui_bs5 ) {
320
-				include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' );
321
-				add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 );
322
-				add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) );
323
-			}
324
-
325
-			/**
326
-			 * Maybe load CSS
327
-			 *
328
-			 * We load super early in case there is a theme version that might change the colors
329
-			 */
330
-			if ( $this->settings['css'] ) {
331
-				$priority = $this->is_bs3_compat() ? 100 : 1;
317
+            $aui_bs5 = $this->settings['bs_ver'] === '5';
318
+
319
+            if ( $aui_bs5 ) {
320
+                include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' );
321
+                add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 );
322
+                add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) );
323
+            }
324
+
325
+            /**
326
+             * Maybe load CSS
327
+             *
328
+             * We load super early in case there is a theme version that might change the colors
329
+             */
330
+            if ( $this->settings['css'] ) {
331
+                $priority = $this->is_bs3_compat() ? 100 : 1;
332 332
                 $priority = $aui_bs5 ? 10 : $priority;
333
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority );
334
-			}
335
-			if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
336
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
337
-			}
338
-
339
-			// maybe load JS
340
-			if ( $this->settings['js'] ) {
341
-				$priority = $this->is_bs3_compat() ? 100 : 1;
342
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority );
343
-			}
344
-			if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
345
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
346
-			}
347
-
348
-			// Maybe set the HTML font size
349
-			if ( $this->settings['html_font_size'] ) {
350
-				add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
351
-			}
352
-
353
-			// Maybe show backend style error
354
-			if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){
355
-				add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) );
356
-			}
357
-
358
-		}
359
-
360
-		/**
361
-		 * Show admin notice if backend scripts not loaded.
362
-		 */
363
-		public function show_admin_style_notice(){
364
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin'));
365
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>';
366
-			$message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button;
367
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
368
-		}
369
-
370
-		/**
371
-		 * Check if we should load the admin scripts or not.
372
-		 *
373
-		 * @return bool
374
-		 */
375
-		public function load_admin_scripts(){
376
-			$result = true;
377
-
378
-			// check if specifically disabled
379
-			if(!empty($this->settings['disable_admin'])){
380
-				$url_parts = explode("\n",$this->settings['disable_admin']);
381
-				foreach($url_parts as $part){
382
-					if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
383
-						return false; // return early, no point checking further
384
-					}
385
-				}
386
-			}
387
-
388
-			return $result;
389
-		}
390
-
391
-		/**
392
-		 * Add a html font size to the footer.
393
-		 */
394
-		public function html_font_size(){
395
-			$this->settings = $this->get_settings();
396
-			echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
397
-		}
398
-
399
-		/**
400
-		 * Check if the current admin screen should load scripts.
401
-		 *
402
-		 * @return bool
403
-		 */
404
-		public function is_aui_screen(){
333
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority );
334
+            }
335
+            if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
336
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
337
+            }
338
+
339
+            // maybe load JS
340
+            if ( $this->settings['js'] ) {
341
+                $priority = $this->is_bs3_compat() ? 100 : 1;
342
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority );
343
+            }
344
+            if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
345
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
346
+            }
347
+
348
+            // Maybe set the HTML font size
349
+            if ( $this->settings['html_font_size'] ) {
350
+                add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
351
+            }
352
+
353
+            // Maybe show backend style error
354
+            if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){
355
+                add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) );
356
+            }
357
+
358
+        }
359
+
360
+        /**
361
+         * Show admin notice if backend scripts not loaded.
362
+         */
363
+        public function show_admin_style_notice(){
364
+            $fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin'));
365
+            $button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>';
366
+            $message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button;
367
+            echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
368
+        }
369
+
370
+        /**
371
+         * Check if we should load the admin scripts or not.
372
+         *
373
+         * @return bool
374
+         */
375
+        public function load_admin_scripts(){
376
+            $result = true;
377
+
378
+            // check if specifically disabled
379
+            if(!empty($this->settings['disable_admin'])){
380
+                $url_parts = explode("\n",$this->settings['disable_admin']);
381
+                foreach($url_parts as $part){
382
+                    if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
383
+                        return false; // return early, no point checking further
384
+                    }
385
+                }
386
+            }
387
+
388
+            return $result;
389
+        }
390
+
391
+        /**
392
+         * Add a html font size to the footer.
393
+         */
394
+        public function html_font_size(){
395
+            $this->settings = $this->get_settings();
396
+            echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
397
+        }
398
+
399
+        /**
400
+         * Check if the current admin screen should load scripts.
401
+         *
402
+         * @return bool
403
+         */
404
+        public function is_aui_screen(){
405 405
 //			echo '###';exit;
406
-			$load = false;
407
-			// check if we should load or not
408
-			if ( is_admin() ) {
409
-				// Only enable on set pages
410
-				$aui_screens = array(
411
-					'page',
406
+            $load = false;
407
+            // check if we should load or not
408
+            if ( is_admin() ) {
409
+                // Only enable on set pages
410
+                $aui_screens = array(
411
+                    'page',
412 412
                     //'docs',
413
-					'post',
414
-					'settings_page_ayecode-ui-settings',
415
-					'appearance_page_gutenberg-widgets',
416
-					'widgets',
417
-					'ayecode-ui-settings',
418
-					'site-editor'
419
-				);
420
-				$screen_ids = apply_filters( 'aui_screen_ids', $aui_screens );
413
+                    'post',
414
+                    'settings_page_ayecode-ui-settings',
415
+                    'appearance_page_gutenberg-widgets',
416
+                    'widgets',
417
+                    'ayecode-ui-settings',
418
+                    'site-editor'
419
+                );
420
+                $screen_ids = apply_filters( 'aui_screen_ids', $aui_screens );
421 421
 
422
-				$screen = get_current_screen();
422
+                $screen = get_current_screen();
423 423
 
424 424
 //				echo '###'.$screen->id;
425 425
 
426
-				// check if we are on a AUI screen
427
-				if ( $screen && in_array( $screen->id, $screen_ids ) ) {
428
-					$load = true;
429
-				}
426
+                // check if we are on a AUI screen
427
+                if ( $screen && in_array( $screen->id, $screen_ids ) ) {
428
+                    $load = true;
429
+                }
430 430
 
431
-				//load for widget previews in WP 5.8
432
-				if( !empty($_REQUEST['legacy-widget-preview'])){
433
-					$load = true;
434
-				}
435
-			}
431
+                //load for widget previews in WP 5.8
432
+                if( !empty($_REQUEST['legacy-widget-preview'])){
433
+                    $load = true;
434
+                }
435
+            }
436 436
 
437 437
 
438 438
 
439
-			return apply_filters( 'aui_load_on_admin' , $load );
440
-		}
439
+            return apply_filters( 'aui_load_on_admin' , $load );
440
+        }
441 441
 
442
-		/**
443
-		 * Check if the current theme is a block theme.
444
-		 *
445
-		 * @return bool
446
-		 */
447
-		public static function is_block_theme() {
448
-			if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) {
449
-				return true;
450
-			}
442
+        /**
443
+         * Check if the current theme is a block theme.
444
+         *
445
+         * @return bool
446
+         */
447
+        public static function is_block_theme() {
448
+            if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) {
449
+                return true;
450
+            }
451 451
 
452
-			return false;
453
-		}
452
+            return false;
453
+        }
454 454
 
455
-		/**
456
-		 * Adds the styles.
457
-		 */
458
-		public function enqueue_style() {
455
+        /**
456
+         * Adds the styles.
457
+         */
458
+        public function enqueue_style() {
459 459
             global $aui_bs5;
460 460
 
461 461
             $load_fse = false;
462 462
 
463
-			if ( is_admin() && ! $this->is_aui_screen() ) {
464
-				// Don't add wp-admin scripts if not requested to.
465
-			} else {
466
-				$css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
467
-				$rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : '';
463
+            if ( is_admin() && ! $this->is_aui_screen() ) {
464
+                // Don't add wp-admin scripts if not requested to.
465
+            } else {
466
+                $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
467
+                $rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : '';
468 468
                 $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
469 469
 
470
-				if ( $this->settings[ $css_setting ] ) {
471
-					$compatibility = $this->settings[$css_setting]=='core' ? false : true;
472
-					$url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css';
470
+                if ( $this->settings[ $css_setting ] ) {
471
+                    $compatibility = $this->settings[$css_setting]=='core' ? false : true;
472
+                    $url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css';
473 473
 
474
-					wp_register_style( 'ayecode-ui', $url, array(), $this->version );
475
-					wp_enqueue_style( 'ayecode-ui' );
474
+                    wp_register_style( 'ayecode-ui', $url, array(), $this->version );
475
+                    wp_enqueue_style( 'ayecode-ui' );
476 476
 
477
-					if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
478
-						$url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css';
479
-						wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version );
480
-						wp_enqueue_style( 'ayecode-ui-fse' );
481
-						$load_fse = true;
482
-					}
477
+                    if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
478
+                        $url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css';
479
+                        wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version );
480
+                        wp_enqueue_style( 'ayecode-ui-fse' );
481
+                        $load_fse = true;
482
+                    }
483 483
 
484
-					// flatpickr
485
-					wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version );
484
+                    // flatpickr
485
+                    wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version );
486 486
 
487
-					// fix some wp-admin issues
488
-					if(is_admin()){
489
-						$custom_css = "
487
+                    // fix some wp-admin issues
488
+                    if(is_admin()){
489
+                        $custom_css = "
490 490
                 body{
491 491
                     background-color: #f1f1f1;
492 492
                     font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;
@@ -526,63 +526,63 @@  discard block
 block discarded – undo
526 526
 				}
527 527
                 ";
528 528
 
529
-						// @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
530
-						$custom_css .= "
529
+                        // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
530
+                        $custom_css .= "
531 531
 						.edit-post-sidebar input[type=color].components-text-control__input{
532 532
 						    padding: 0;
533 533
 						}
534 534
 					";
535
-						wp_add_inline_style( 'ayecode-ui', $custom_css );
536
-					}
537
-
538
-					// custom changes
539
-					if ( $load_fse ) {
540
-						wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility, true) );
541
-					}else{
542
-						wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
543
-					}
544
-				}
545
-			}
546
-		}
547
-
548
-		/**
549
-		 * Get inline script used if bootstrap enqueued
550
-		 *
551
-		 * If this remains small then its best to use this than to add another JS file.
552
-		 */
553
-		public function inline_script() {
554
-            global $aui_bs5;
555
-			// Flatpickr calendar locale
556
-			$flatpickr_locale = self::flatpickr_locale();
535
+                        wp_add_inline_style( 'ayecode-ui', $custom_css );
536
+                    }
557 537
 
558
-			ob_start();
559
-			if ( $aui_bs5 ) {
560
-				include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' );
561
-			}else{
562
-				include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' );
538
+                    // custom changes
539
+                    if ( $load_fse ) {
540
+                        wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility, true) );
541
+                    }else{
542
+                        wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
543
+                    }
544
+                }
563 545
             }
546
+        }
564 547
 
565
-			$output = ob_get_clean();
548
+        /**
549
+         * Get inline script used if bootstrap enqueued
550
+         *
551
+         * If this remains small then its best to use this than to add another JS file.
552
+         */
553
+        public function inline_script() {
554
+            global $aui_bs5;
555
+            // Flatpickr calendar locale
556
+            $flatpickr_locale = self::flatpickr_locale();
557
+
558
+            ob_start();
559
+            if ( $aui_bs5 ) {
560
+                include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' );
561
+            }else{
562
+                include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' );
563
+            }
564
+
565
+            $output = ob_get_clean();
566 566
 
567
-			/*
567
+            /*
568 568
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
569 569
 			 */
570
-			return str_replace( array(
571
-				'<script>',
572
-				'</script>'
573
-			), '', self::minify_js($output) );
574
-		}
575
-
576
-
577
-		/**
578
-		 * JS to help with conflict issues with other plugins and themes using bootstrap v3.
579
-		 *
580
-		 * @TODO we may need this when other conflicts arrise.
581
-		 * @return mixed
582
-		 */
583
-		public static function bs3_compat_js() {
584
-			ob_start();
585
-			?>
570
+            return str_replace( array(
571
+                '<script>',
572
+                '</script>'
573
+            ), '', self::minify_js($output) );
574
+        }
575
+
576
+
577
+        /**
578
+         * JS to help with conflict issues with other plugins and themes using bootstrap v3.
579
+         *
580
+         * @TODO we may need this when other conflicts arrise.
581
+         * @return mixed
582
+         */
583
+        public static function bs3_compat_js() {
584
+            ob_start();
585
+            ?>
586 586
             <script>
587 587
 				<?php if( defined( 'FUSION_BUILDER_VERSION' ) ){ ?>
588 588
                 /* With Avada builder */
@@ -590,20 +590,20 @@  discard block
 block discarded – undo
590 590
 				<?php } ?>
591 591
             </script>
592 592
 			<?php
593
-			return str_replace( array(
594
-				'<script>',
595
-				'</script>'
596
-			), '', ob_get_clean());
597
-		}
598
-
599
-		/**
600
-		 * Get inline script used if bootstrap file browser enqueued.
601
-		 *
602
-		 * If this remains small then its best to use this than to add another JS file.
603
-		 */
604
-		public function inline_script_file_browser(){
605
-			ob_start();
606
-			?>
593
+            return str_replace( array(
594
+                '<script>',
595
+                '</script>'
596
+            ), '', ob_get_clean());
597
+        }
598
+
599
+        /**
600
+         * Get inline script used if bootstrap file browser enqueued.
601
+         *
602
+         * If this remains small then its best to use this than to add another JS file.
603
+         */
604
+        public function inline_script_file_browser(){
605
+            ob_start();
606
+            ?>
607 607
             <script>
608 608
                 // run on doc ready
609 609
                 jQuery(document).ready(function () {
@@ -611,127 +611,127 @@  discard block
 block discarded – undo
611 611
                 });
612 612
             </script>
613 613
 			<?php
614
-			$output = ob_get_clean();
614
+            $output = ob_get_clean();
615 615
 
616
-			/*
616
+            /*
617 617
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
618 618
 			 */
619
-			return str_replace( array(
620
-				'<script>',
621
-				'</script>'
622
-			), '', $output );
623
-		}
624
-
625
-		/**
626
-		 * Adds the Font Awesome JS.
627
-		 */
628
-		public function enqueue_scripts() {
629
-			if( is_admin() && !$this->is_aui_screen()){
630
-				// Don't add wp-admin scripts if not requested to.
631
-			} else {
632
-				$js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
633
-
634
-				$bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
635
-
636
-				// select2
637
-				wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version );
638
-
639
-				// flatpickr
640
-				wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version );
641
-
642
-				// iconpicker
643
-				if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) {
644
-					wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version );
645
-				}else{
646
-					wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version );
647
-				}
619
+            return str_replace( array(
620
+                '<script>',
621
+                '</script>'
622
+            ), '', $output );
623
+        }
648 624
 
649
-				// Bootstrap file browser
650
-				wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version );
651
-				wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
625
+        /**
626
+         * Adds the Font Awesome JS.
627
+         */
628
+        public function enqueue_scripts() {
629
+            if( is_admin() && !$this->is_aui_screen()){
630
+                // Don't add wp-admin scripts if not requested to.
631
+            } else {
632
+                $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
652 633
 
653
-				$load_inline = false;
634
+                $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
654 635
 
655
-				// Load select2 only when required.
656
-				if ( $this->force_load_select2() ) {
657
-					$dependency = array( 'select2', 'jquery' );
658
-				} else {
659
-					$dependency = array( 'jquery' );
660
-				}
636
+                // select2
637
+                wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version );
661 638
 
662
-				if ( $this->settings[ $js_setting ] == 'core-popper' ) {
663
-					// Bootstrap bundle
664
-					$url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js';
665
-					wp_register_script( 'bootstrap-js-bundle', $url, $dependency, $this->version, $this->is_bs3_compat() );
666
-
667
-					// If in admin then add to footer for compatibility.
668
-					is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' );
669
-
670
-					$script = $this->inline_script();
671
-					wp_add_inline_script( 'bootstrap-js-bundle', $script );
672
-				} elseif ( $this->settings[ $js_setting ] == 'popper' ) {
673
-					$url = $this->url . 'assets/js/popper.min.js'; // @todo we need to update this to bs5
674
-					wp_register_script( 'bootstrap-js-popper', $url, $dependency, $this->version );
675
-					wp_enqueue_script( 'bootstrap-js-popper' );
676
-					$load_inline = true;
677
-				} else {
678
-					$load_inline = true;
679
-				}
639
+                // flatpickr
640
+                wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version );
680 641
 
681
-				// Load needed inline scripts by faking the loading of a script if the main script is not being loaded
682
-				if ( $load_inline ) {
683
-					wp_register_script( 'bootstrap-dummy', '', $dependency );
684
-					wp_enqueue_script( 'bootstrap-dummy' );
642
+                // iconpicker
643
+                if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) {
644
+                    wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version );
645
+                }else{
646
+                    wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version );
647
+                }
685 648
 
686
-					$script = $this->inline_script();
687
-					wp_add_inline_script( 'bootstrap-dummy', $script );
688
-				}
689
-			}
690
-		}
691
-
692
-		/**
693
-		 * Enqueue select2 if called.
694
-		 *
695
-		 * @since 0.2.29
696
-		 */
697
-		public function force_load_select2() {
698
-			global $aui_select2_enqueued;
699
-
700
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
701
-
702
-			if ( $conditional_select2 !== true ) {
703
-				return true;
704
-			}
705
-
706
-			$load = is_admin() && ! $aui_select2_enqueued;
707
-
708
-			return apply_filters( 'aui_force_load_select2', $load );
709
-		}
710
-
711
-		/**
712
-		 * Enqueue select2 if called.
713
-		 *
714
-		 * @since 0.2.29
715
-		 */
716
-		public function enqueue_select2() {
717
-			wp_enqueue_script( 'select2' );
718
-		}
719
-
720
-		/**
721
-		 * Enqueue flatpickr if called.
722
-		 */
723
-		public function enqueue_flatpickr(){
724
-			wp_enqueue_style( 'flatpickr' );
725
-			wp_enqueue_script( 'flatpickr' );
726
-		}
727
-
728
-		/**
729
-		 * Enqueue iconpicker if called.
730
-		 */
731
-		public function enqueue_iconpicker(){
732
-			wp_enqueue_style( 'iconpicker' );
733
-			wp_enqueue_script( 'iconpicker' );
734
-		}
649
+                // Bootstrap file browser
650
+                wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version );
651
+                wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
652
+
653
+                $load_inline = false;
654
+
655
+                // Load select2 only when required.
656
+                if ( $this->force_load_select2() ) {
657
+                    $dependency = array( 'select2', 'jquery' );
658
+                } else {
659
+                    $dependency = array( 'jquery' );
660
+                }
661
+
662
+                if ( $this->settings[ $js_setting ] == 'core-popper' ) {
663
+                    // Bootstrap bundle
664
+                    $url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js';
665
+                    wp_register_script( 'bootstrap-js-bundle', $url, $dependency, $this->version, $this->is_bs3_compat() );
666
+
667
+                    // If in admin then add to footer for compatibility.
668
+                    is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' );
669
+
670
+                    $script = $this->inline_script();
671
+                    wp_add_inline_script( 'bootstrap-js-bundle', $script );
672
+                } elseif ( $this->settings[ $js_setting ] == 'popper' ) {
673
+                    $url = $this->url . 'assets/js/popper.min.js'; // @todo we need to update this to bs5
674
+                    wp_register_script( 'bootstrap-js-popper', $url, $dependency, $this->version );
675
+                    wp_enqueue_script( 'bootstrap-js-popper' );
676
+                    $load_inline = true;
677
+                } else {
678
+                    $load_inline = true;
679
+                }
680
+
681
+                // Load needed inline scripts by faking the loading of a script if the main script is not being loaded
682
+                if ( $load_inline ) {
683
+                    wp_register_script( 'bootstrap-dummy', '', $dependency );
684
+                    wp_enqueue_script( 'bootstrap-dummy' );
685
+
686
+                    $script = $this->inline_script();
687
+                    wp_add_inline_script( 'bootstrap-dummy', $script );
688
+                }
689
+            }
690
+        }
691
+
692
+        /**
693
+         * Enqueue select2 if called.
694
+         *
695
+         * @since 0.2.29
696
+         */
697
+        public function force_load_select2() {
698
+            global $aui_select2_enqueued;
699
+
700
+            $conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
701
+
702
+            if ( $conditional_select2 !== true ) {
703
+                return true;
704
+            }
705
+
706
+            $load = is_admin() && ! $aui_select2_enqueued;
707
+
708
+            return apply_filters( 'aui_force_load_select2', $load );
709
+        }
710
+
711
+        /**
712
+         * Enqueue select2 if called.
713
+         *
714
+         * @since 0.2.29
715
+         */
716
+        public function enqueue_select2() {
717
+            wp_enqueue_script( 'select2' );
718
+        }
719
+
720
+        /**
721
+         * Enqueue flatpickr if called.
722
+         */
723
+        public function enqueue_flatpickr(){
724
+            wp_enqueue_style( 'flatpickr' );
725
+            wp_enqueue_script( 'flatpickr' );
726
+        }
727
+
728
+        /**
729
+         * Enqueue iconpicker if called.
730
+         */
731
+        public function enqueue_iconpicker(){
732
+            wp_enqueue_style( 'iconpicker' );
733
+            wp_enqueue_script( 'iconpicker' );
734
+        }
735 735
 
736 736
         /**
737 737
          * Get the url path to the current folder.
@@ -766,173 +766,173 @@  discard block
 block discarded – undo
766 766
             return trailingslashit($url);
767 767
         }
768 768
 
769
-		/**
770
-		 * Get the url path to the current folder.
771
-		 * @todo remove
772
-		 * @return string
773
-		 */
774
-		public function get_url_old() {
775
-
776
-			$url = '';
777
-			// check if we are inside a plugin
778
-			$file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
779
-
780
-			// add check in-case user has changed wp-content dir name.
781
-			$wp_content_folder_name = basename(WP_CONTENT_DIR);
782
-			$dir_parts = explode("/$wp_content_folder_name/",$file_dir);
783
-			$url_parts = explode("/$wp_content_folder_name/",plugins_url());
784
-
785
-			if(!empty($url_parts[0]) && !empty($dir_parts[1])){
786
-				$url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
787
-			}
788
-
789
-			return $url;
790
-		}
791
-
792
-		/**
793
-		 * Register the database settings with WordPress.
794
-		 */
795
-		public function register_settings() {
796
-			register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
797
-		}
798
-
799
-		/**
800
-		 * Add the WordPress settings menu item.
801
-		 * @since 1.0.10 Calling function name direct will fail theme check so we don't.
802
-		 */
803
-		public function menu_item() {
804
-			$menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
805
-			call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
806
-				$this,
807
-				'settings_page'
808
-			) );
809
-		}
810
-
811
-		/**
812
-		 * Get a list of themes and their default JS settings.
813
-		 *
814
-		 * @return array
815
-		 */
816
-		public function theme_js_settings(){
817
-			return array(
818
-				'ayetheme' => 'popper',
819
-				'listimia' => 'required',
820
-				'listimia_backend' => 'core-popper',
821
-				//'avada'    => 'required', // removed as we now add compatibility
822
-			);
823
-		}
824
-
825
-		/**
769
+        /**
770
+         * Get the url path to the current folder.
771
+         * @todo remove
772
+         * @return string
773
+         */
774
+        public function get_url_old() {
775
+
776
+            $url = '';
777
+            // check if we are inside a plugin
778
+            $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
779
+
780
+            // add check in-case user has changed wp-content dir name.
781
+            $wp_content_folder_name = basename(WP_CONTENT_DIR);
782
+            $dir_parts = explode("/$wp_content_folder_name/",$file_dir);
783
+            $url_parts = explode("/$wp_content_folder_name/",plugins_url());
784
+
785
+            if(!empty($url_parts[0]) && !empty($dir_parts[1])){
786
+                $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
787
+            }
788
+
789
+            return $url;
790
+        }
791
+
792
+        /**
793
+         * Register the database settings with WordPress.
794
+         */
795
+        public function register_settings() {
796
+            register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
797
+        }
798
+
799
+        /**
800
+         * Add the WordPress settings menu item.
801
+         * @since 1.0.10 Calling function name direct will fail theme check so we don't.
802
+         */
803
+        public function menu_item() {
804
+            $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
805
+            call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
806
+                $this,
807
+                'settings_page'
808
+            ) );
809
+        }
810
+
811
+        /**
812
+         * Get a list of themes and their default JS settings.
813
+         *
814
+         * @return array
815
+         */
816
+        public function theme_js_settings(){
817
+            return array(
818
+                'ayetheme' => 'popper',
819
+                'listimia' => 'required',
820
+                'listimia_backend' => 'core-popper',
821
+                //'avada'    => 'required', // removed as we now add compatibility
822
+            );
823
+        }
824
+
825
+        /**
826 826
          * Get the date the site was installed.
827 827
          *
828
-		 * @return false|string
829
-		 */
828
+         * @return false|string
829
+         */
830 830
         public function get_site_install_date() {
831
-	        global $wpdb; // This gives you access to the WordPress database object
831
+            global $wpdb; // This gives you access to the WordPress database object
832 832
 
833
-	        // Prepare the SQL query to get the oldest registration date
834
-	        $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
833
+            // Prepare the SQL query to get the oldest registration date
834
+            $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
835 835
 
836
-	        // Execute the query
837
-	        $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
836
+            // Execute the query
837
+            $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
838 838
 
839
-	        return $date ? $date : false;
839
+            return $date ? $date : false;
840 840
         }
841 841
 
842
-		/**
843
-		 * Show admin notice if backend scripts not loaded.
844
-		 */
845
-		public function show_admin_version_notice(){
846
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
847
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
848
-			$message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button;
849
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
850
-		}
851
-
852
-		/**
853
-		 * Get the current Font Awesome output settings.
854
-		 *
855
-		 * @return array The array of settings.
856
-		 */
857
-		public function get_settings() {
858
-			$db_settings = get_option( 'ayecode-ui-settings' );
859
-
860
-			// Maybe show default version notice
861
-			if ( empty( $db_settings ) ) {
862
-				$site_install_date = new DateTime( self::get_site_install_date() );
863
-				$switch_over_date = new DateTime( "2024-02-01" );
864
-
865
-				if ( $site_install_date < $switch_over_date ) {
866
-					add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
867
-				}
868
-			}
869
-
870
-			$js_default = 'core-popper';
871
-			$js_default_backend = $js_default;
872
-
873
-			// maybe set defaults (if no settings set)
874
-			if(empty($db_settings)){
875
-				$active_theme = strtolower( get_template() ); // active parent theme.
876
-				$theme_js_settings = self::theme_js_settings();
877
-				if(isset($theme_js_settings[$active_theme])){
878
-					$js_default = $theme_js_settings[$active_theme];
879
-					$js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
880
-				}
881
-			}
842
+        /**
843
+         * Show admin notice if backend scripts not loaded.
844
+         */
845
+        public function show_admin_version_notice(){
846
+            $fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
847
+            $button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
848
+            $message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button;
849
+            echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
850
+        }
882 851
 
883
-			/**
884
-			 * Filter the default settings.
885
-			 */
886
-			$defaults = apply_filters( 'ayecode-ui-default-settings', array(
887
-				'css'            => 'compatibility', // core, compatibility
888
-				'js'             => $js_default, // js to load, core-popper, popper
889
-				'html_font_size' => '16', // js to load, core-popper, popper
890
-				'css_backend'    => 'compatibility', // core, compatibility
891
-				'js_backend'     => $js_default_backend, // js to load, core-popper, popper
892
-				'disable_admin'  => '', // URL snippets to disable loading on admin
852
+        /**
853
+         * Get the current Font Awesome output settings.
854
+         *
855
+         * @return array The array of settings.
856
+         */
857
+        public function get_settings() {
858
+            $db_settings = get_option( 'ayecode-ui-settings' );
859
+
860
+            // Maybe show default version notice
861
+            if ( empty( $db_settings ) ) {
862
+                $site_install_date = new DateTime( self::get_site_install_date() );
863
+                $switch_over_date = new DateTime( "2024-02-01" );
864
+
865
+                if ( $site_install_date < $switch_over_date ) {
866
+                    add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
867
+                }
868
+            }
869
+
870
+            $js_default = 'core-popper';
871
+            $js_default_backend = $js_default;
872
+
873
+            // maybe set defaults (if no settings set)
874
+            if(empty($db_settings)){
875
+                $active_theme = strtolower( get_template() ); // active parent theme.
876
+                $theme_js_settings = self::theme_js_settings();
877
+                if(isset($theme_js_settings[$active_theme])){
878
+                    $js_default = $theme_js_settings[$active_theme];
879
+                    $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
880
+                }
881
+            }
882
+
883
+            /**
884
+             * Filter the default settings.
885
+             */
886
+            $defaults = apply_filters( 'ayecode-ui-default-settings', array(
887
+                'css'            => 'compatibility', // core, compatibility
888
+                'js'             => $js_default, // js to load, core-popper, popper
889
+                'html_font_size' => '16', // js to load, core-popper, popper
890
+                'css_backend'    => 'compatibility', // core, compatibility
891
+                'js_backend'     => $js_default_backend, // js to load, core-popper, popper
892
+                'disable_admin'  => '', // URL snippets to disable loading on admin
893 893
                 'bs_ver'         => '5', // The default bootstrap version to sue by default
894
-			), $db_settings );
894
+            ), $db_settings );
895 895
 
896
-			$settings = wp_parse_args( $db_settings, $defaults );
896
+            $settings = wp_parse_args( $db_settings, $defaults );
897 897
 
898
-			/**
899
-			 * Filter the Bootstrap settings.
900
-			 *
901
-			 * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
902
-			 */
903
-			return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
904
-		}
898
+            /**
899
+             * Filter the Bootstrap settings.
900
+             *
901
+             * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
902
+             */
903
+            return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
904
+        }
905 905
 
906 906
 
907
-		/**
908
-		 * The settings page html output.
909
-		 */
910
-		public function settings_page() {
911
-			if ( ! current_user_can( 'manage_options' ) ) {
912
-				wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
913
-			}
907
+        /**
908
+         * The settings page html output.
909
+         */
910
+        public function settings_page() {
911
+            if ( ! current_user_can( 'manage_options' ) ) {
912
+                wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
913
+            }
914 914
             $overrides = apply_filters( 'ayecode-ui-settings', array(), array(), array() );
915 915
 
916
-			?>
916
+            ?>
917 917
             <div class="wrap">
918 918
                 <h1><?php echo esc_attr( $this->name ); ?></h1>
919 919
                 <p><?php echo esc_html( apply_filters( 'ayecode-ui-settings-message', __("Here you can adjust settings if you are having compatibility issues.", 'ayecode-connect' ) ) );?></p>
920 920
                 <form method="post" action="options.php">
921 921
 					<?php
922
-					settings_fields( 'ayecode-ui-settings' );
923
-					do_settings_sections( 'ayecode-ui-settings' );
924
-					?>
922
+                    settings_fields( 'ayecode-ui-settings' );
923
+                    do_settings_sections( 'ayecode-ui-settings' );
924
+                    ?>
925 925
 
926 926
                     <h2><?php esc_html_e( 'BootStrap Version', 'ayecode-connect' ); ?></h2>
927 927
                     <p><?php echo esc_html( apply_filters( 'ayecode-ui-version-settings-message', __("V5 is recommended, however if you have another plugin installed using v4, you may need to use v4 also.", 'ayecode-connect' ) ) );?></p>
928 928
 	                <div class="bsui"><?php
929
-	                if ( ! empty( $overrides ) ) {
930
-		                echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
931
-			                'type'=> 'info',
932
-			                'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
933
-		                ));
934
-	                }
935
-	                ?>
929
+                    if ( ! empty( $overrides ) ) {
930
+                        echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
931
+                            'type'=> 'info',
932
+                            'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
933
+                        ));
934
+                    }
935
+                    ?>
936 936
                     </div>
937 937
                     <table class="form-table wpbs-table-version-settings">
938 938
                         <tr valign="top">
@@ -1016,77 +1016,77 @@  discard block
 block discarded – undo
1016 1016
                     </table>
1017 1017
 
1018 1018
 					<?php
1019
-					submit_button();
1020
-					?>
1019
+                    submit_button();
1020
+                    ?>
1021 1021
                 </form>
1022 1022
                 <div id="wpbs-version" data-aui-source="<?php echo esc_attr( $this->get_load_source() ); ?>"><?php echo esc_html( $this->version ); ?></div>
1023 1023
             </div>
1024 1024
 			<?php
1025
-		}
1025
+        }
1026 1026
 
1027 1027
         public function get_load_source(){
1028
-	        $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
1029
-	        $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
1030
-
1031
-	        // Find source plugin/theme of SD
1032
-	        $source = array();
1033
-	        if ( strpos( $file, $plugins_dir ) !== false ) {
1034
-		        $source = explode( "/", plugin_basename( $file ) );
1035
-	        } else if ( function_exists( 'get_theme_root' ) ) {
1036
-		        $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1037
-
1038
-		        if ( strpos( $file, $themes_dir ) !== false ) {
1039
-			        $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1040
-		        }
1041
-	        }
1028
+            $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
1029
+            $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
1030
+
1031
+            // Find source plugin/theme of SD
1032
+            $source = array();
1033
+            if ( strpos( $file, $plugins_dir ) !== false ) {
1034
+                $source = explode( "/", plugin_basename( $file ) );
1035
+            } else if ( function_exists( 'get_theme_root' ) ) {
1036
+                $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1037
+
1038
+                if ( strpos( $file, $themes_dir ) !== false ) {
1039
+                    $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1040
+                }
1041
+            }
1042 1042
 
1043 1043
             return isset($source[0]) ? esc_attr($source[0]) : '';
1044 1044
         }
1045 1045
 
1046
-		public function customizer_settings($wp_customize){
1047
-			$wp_customize->add_section('aui_settings', array(
1048
-				'title'    => __('AyeCode UI', 'ayecode-connect' ),
1049
-				'priority' => 120,
1050
-			));
1051
-
1052
-			//  =============================
1053
-			//  = Color Picker              =
1054
-			//  =============================
1055
-			$wp_customize->add_setting('aui_options[color_primary]', array(
1056
-				'default'           => AUI_PRIMARY_COLOR,
1057
-				'sanitize_callback' => 'sanitize_hex_color',
1058
-				'capability'        => 'edit_theme_options',
1059
-				'type'              => 'option',
1060
-				'transport'         => 'refresh',
1061
-			));
1062
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1063
-				'label'    => __('Primary Color', 'ayecode-connect' ),
1064
-				'section'  => 'aui_settings',
1065
-				'settings' => 'aui_options[color_primary]',
1066
-			)));
1067
-
1068
-			$wp_customize->add_setting('aui_options[color_secondary]', array(
1069
-				'default'           => '#6c757d',
1070
-				'sanitize_callback' => 'sanitize_hex_color',
1071
-				'capability'        => 'edit_theme_options',
1072
-				'type'              => 'option',
1073
-				'transport'         => 'refresh',
1074
-			));
1075
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1076
-				'label'    => __('Secondary Color', 'ayecode-connect' ),
1077
-				'section'  => 'aui_settings',
1078
-				'settings' => 'aui_options[color_secondary]',
1079
-			)));
1080
-		}
1081
-
1082
-		/**
1083
-		 * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1084
-		 *
1085
-		 * @return mixed
1086
-		 */
1087
-		public static function bs3_compat_css() {
1088
-			ob_start();
1089
-			?>
1046
+        public function customizer_settings($wp_customize){
1047
+            $wp_customize->add_section('aui_settings', array(
1048
+                'title'    => __('AyeCode UI', 'ayecode-connect' ),
1049
+                'priority' => 120,
1050
+            ));
1051
+
1052
+            //  =============================
1053
+            //  = Color Picker              =
1054
+            //  =============================
1055
+            $wp_customize->add_setting('aui_options[color_primary]', array(
1056
+                'default'           => AUI_PRIMARY_COLOR,
1057
+                'sanitize_callback' => 'sanitize_hex_color',
1058
+                'capability'        => 'edit_theme_options',
1059
+                'type'              => 'option',
1060
+                'transport'         => 'refresh',
1061
+            ));
1062
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1063
+                'label'    => __('Primary Color', 'ayecode-connect' ),
1064
+                'section'  => 'aui_settings',
1065
+                'settings' => 'aui_options[color_primary]',
1066
+            )));
1067
+
1068
+            $wp_customize->add_setting('aui_options[color_secondary]', array(
1069
+                'default'           => '#6c757d',
1070
+                'sanitize_callback' => 'sanitize_hex_color',
1071
+                'capability'        => 'edit_theme_options',
1072
+                'type'              => 'option',
1073
+                'transport'         => 'refresh',
1074
+            ));
1075
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1076
+                'label'    => __('Secondary Color', 'ayecode-connect' ),
1077
+                'section'  => 'aui_settings',
1078
+                'settings' => 'aui_options[color_secondary]',
1079
+            )));
1080
+        }
1081
+
1082
+        /**
1083
+         * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1084
+         *
1085
+         * @return mixed
1086
+         */
1087
+        public static function bs3_compat_css() {
1088
+            ob_start();
1089
+            ?>
1090 1090
             <style>
1091 1091
                 /* Bootstrap 3 compatibility */
1092 1092
                 body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;}
@@ -1115,376 +1115,376 @@  discard block
 block discarded – undo
1115 1115
                 <?php } ?>
1116 1116
             </style>
1117 1117
 			<?php
1118
-			return str_replace( array(
1119
-				'<style>',
1120
-				'</style>'
1121
-			), '', self::minify_css( ob_get_clean() ) );
1122
-		}
1118
+            return str_replace( array(
1119
+                '<style>',
1120
+                '</style>'
1121
+            ), '', self::minify_css( ob_get_clean() ) );
1122
+        }
1123 1123
 
1124
-		public static function custom_css( $compatibility = true, $is_fse = false ) {
1125
-			global $aui_bs5;
1124
+        public static function custom_css( $compatibility = true, $is_fse = false ) {
1125
+            global $aui_bs5;
1126 1126
 
1127
-			$colors = array();
1127
+            $colors = array();
1128 1128
 
1129
-			if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1130
-				$setting = wp_get_global_settings();
1129
+            if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1130
+                $setting = wp_get_global_settings();
1131 1131
 
1132
-				if ( ! empty( $setting['color']['palette']['theme'] ) ) {
1133
-					foreach ( $setting['color']['palette']['theme'] as $color ) {
1134
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1135
-					}
1136
-				}
1132
+                if ( ! empty( $setting['color']['palette']['theme'] ) ) {
1133
+                    foreach ( $setting['color']['palette']['theme'] as $color ) {
1134
+                        $colors[$color['slug']] = esc_attr( $color['color'] );
1135
+                    }
1136
+                }
1137 1137
 
1138
-				if ( ! empty( $setting['color']['palette']['custom'] ) ) {
1139
-					foreach ( $setting['color']['palette']['custom'] as $color ) {
1140
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1141
-					}
1142
-				}
1143
-			} else {
1144
-				$settings = get_option( 'aui_options' );
1145
-
1146
-				$colors = array(
1147
-					'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1148
-					'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1149
-				);
1150
-			}
1151
-
1152
-			ob_start();
1153
-			?><style><?php
1154
-			// BS v3 compat
1155
-			if( self::is_bs3_compat() ){
1156
-				echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1157
-			}
1158
-
1159
-			//$is_fse = false;
1160
-			//if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
1161
-				//$is_fse = true;
1162
-			//}
1163
-
1164
-			$custom_front = ! is_admin() ? true : apply_filters('ayecode_ui_custom_front', false );
1165
-			$custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false );
1138
+                if ( ! empty( $setting['color']['palette']['custom'] ) ) {
1139
+                    foreach ( $setting['color']['palette']['custom'] as $color ) {
1140
+                        $colors[$color['slug']] = esc_attr( $color['color'] );
1141
+                    }
1142
+                }
1143
+            } else {
1144
+                $settings = get_option( 'aui_options' );
1145
+
1146
+                $colors = array(
1147
+                    'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1148
+                    'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1149
+                );
1150
+            }
1151
+
1152
+            ob_start();
1153
+            ?><style><?php
1154
+            // BS v3 compat
1155
+            if( self::is_bs3_compat() ){
1156
+                echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1157
+            }
1158
+
1159
+            //$is_fse = false;
1160
+            //if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
1161
+                //$is_fse = true;
1162
+            //}
1163
+
1164
+            $custom_front = ! is_admin() ? true : apply_filters('ayecode_ui_custom_front', false );
1165
+            $custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false );
1166 1166
             $bs_custom_css = apply_filters( 'ayecode_ui_bs_custom_css', $custom_admin || $custom_front );
1167
-			//$bs_custom_css = true; // Force true to fix any color issue.
1167
+            //$bs_custom_css = true; // Force true to fix any color issue.
1168 1168
 
1169
-			$colors_css = '';
1170
-			if ( ! empty( $colors ) && $bs_custom_css ) {
1171
-				$d_colors = self::get_colors(true);
1169
+            $colors_css = '';
1170
+            if ( ! empty( $colors ) && $bs_custom_css ) {
1171
+                $d_colors = self::get_colors(true);
1172 1172
 
1173
-				foreach ( $colors as $key => $color ) {
1174
-					if ( ( empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) {
1175
-						$var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1176
-						$compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1173
+                foreach ( $colors as $key => $color ) {
1174
+                    if ( ( empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) {
1175
+                        $var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1176
+                        $compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1177 1177
 
1178
-						$colors_css .= $aui_bs5 ? self::css_overwrite_bs5( $key,$var, $compat, $color ) : self::css_overwrite( $key, $var, $compat, $color );
1179
-					}
1180
-				}
1181
-			}
1178
+                        $colors_css .= $aui_bs5 ? self::css_overwrite_bs5( $key,$var, $compat, $color ) : self::css_overwrite( $key, $var, $compat, $color );
1179
+                    }
1180
+                }
1181
+            }
1182 1182
 
1183
-			if ( $colors_css ) {
1184
-				echo $colors_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1185
-			}
1183
+            if ( $colors_css ) {
1184
+                echo $colors_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1185
+            }
1186 1186
 
1187
-			// Set admin bar z-index lower when modal is open.
1188
-			echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1187
+            // Set admin bar z-index lower when modal is open.
1188
+            echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1189 1189
 
1190
-			if ( is_admin() ) {
1191
-				echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1192
-			}
1190
+            if ( is_admin() ) {
1191
+                echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1192
+            }
1193 1193
 
1194
-			$custom_css = '';
1194
+            $custom_css = '';
1195 1195
 
1196
-			if ( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) && $bs_custom_css ) {
1197
-				$css = '';
1198
-				$theme_settings = wp_get_global_styles();
1196
+            if ( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) && $bs_custom_css ) {
1197
+                $css = '';
1198
+                $theme_settings = wp_get_global_styles();
1199 1199
 
1200
-				// Font face
1201
-				if( !empty( $theme_settings['typography']['fontFamily'] ) ){
1202
-					$t_fontface = str_replace( array('var:preset|','font-family|'), array('--wp--preset--','font-family--'), $theme_settings['typography']['fontFamily']  ); //var(--wp--preset--font-family--poppins)
1203
-					$css .= '--bs-body-font-family: ' . esc_attr($t_fontface) . ';';
1204
-				}
1200
+                // Font face
1201
+                if( !empty( $theme_settings['typography']['fontFamily'] ) ){
1202
+                    $t_fontface = str_replace( array('var:preset|','font-family|'), array('--wp--preset--','font-family--'), $theme_settings['typography']['fontFamily']  ); //var(--wp--preset--font-family--poppins)
1203
+                    $css .= '--bs-body-font-family: ' . esc_attr($t_fontface) . ';';
1204
+                }
1205 1205
 
1206
-				// font size
1207
-				if( !empty( $theme_settings['typography']['fontSize'] ) ){
1208
-					$css .= '--bs-body-font-size: ' . esc_attr( $theme_settings['typography']['fontSize'] ) . ' ;';
1209
-				}
1206
+                // font size
1207
+                if( !empty( $theme_settings['typography']['fontSize'] ) ){
1208
+                    $css .= '--bs-body-font-size: ' . esc_attr( $theme_settings['typography']['fontSize'] ) . ' ;';
1209
+                }
1210 1210
 
1211
-				// line height
1212
-				 if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1213
-					$css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1214
-				}
1211
+                // line height
1212
+                    if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1213
+                    $css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1214
+                }
1215 1215
 
1216 1216
 
1217
-				   // font weight
1218
-				 if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1219
-					$css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1220
-				}
1217
+                    // font weight
1218
+                    if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1219
+                    $css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1220
+                }
1221 1221
 
1222
-				// Background
1223
-				 if( !empty( $theme_settings['color']['background'] ) ){
1224
-					$css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1225
-				}
1222
+                // Background
1223
+                    if( !empty( $theme_settings['color']['background'] ) ){
1224
+                    $css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1225
+                }
1226 1226
 
1227
-				 // Background Gradient
1228
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1229
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1230
-				}
1227
+                    // Background Gradient
1228
+                    if( !empty( $theme_settings['color']['gradient'] ) ){
1229
+                    $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1230
+                }
1231 1231
 
1232
-				   // Background Gradient
1233
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1234
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1235
-				}
1232
+                    // Background Gradient
1233
+                    if( !empty( $theme_settings['color']['gradient'] ) ){
1234
+                    $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1235
+                }
1236 1236
 
1237
-				// text color
1238
-				if( !empty( $theme_settings['color']['text'] ) ){
1239
-					$css .= '--bs-body-color: ' . esc_attr( $theme_settings['color']['text'] ) . ';';
1240
-				}
1237
+                // text color
1238
+                if( !empty( $theme_settings['color']['text'] ) ){
1239
+                    $css .= '--bs-body-color: ' . esc_attr( $theme_settings['color']['text'] ) . ';';
1240
+                }
1241 1241
 
1242 1242
 
1243
-				// link colors
1244
-				if( !empty( $theme_settings['elements']['link']['color']['text'] ) ){
1245
-					$css .= '--bs-link-color: ' . esc_attr( $theme_settings['elements']['link']['color']['text'] ) . ';';
1246
-				}
1247
-				if( !empty( $theme_settings['elements']['link'][':hover']['color']['text'] ) ){
1248
-					$css .= '--bs-link-hover-color: ' . esc_attr( $theme_settings['elements']['link'][':hover']['color']['text'] ) . ';';
1249
-				}
1243
+                // link colors
1244
+                if( !empty( $theme_settings['elements']['link']['color']['text'] ) ){
1245
+                    $css .= '--bs-link-color: ' . esc_attr( $theme_settings['elements']['link']['color']['text'] ) . ';';
1246
+                }
1247
+                if( !empty( $theme_settings['elements']['link'][':hover']['color']['text'] ) ){
1248
+                    $css .= '--bs-link-hover-color: ' . esc_attr( $theme_settings['elements']['link'][':hover']['color']['text'] ) . ';';
1249
+                }
1250 1250
 
1251
-				if($css){
1252
-					$custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr( $css ) . '}' : 'body{' . esc_attr( $css ) . '}';
1253
-				}
1251
+                if($css){
1252
+                    $custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr( $css ) . '}' : 'body{' . esc_attr( $css ) . '}';
1253
+                }
1254 1254
 
1255
-				$bep = $is_fse ? 'body.editor-styles-wrapper ' : '';
1255
+                $bep = $is_fse ? 'body.editor-styles-wrapper ' : '';
1256 1256
 
1257
-				// Headings
1258
-				$headings_css = '';
1259
-				if( !empty( $theme_settings['elements']['heading']['color']['text'] ) ){
1260
-					$headings_css .= "color: " . esc_attr( $theme_settings['elements']['heading']['color']['text'] ) . ";";
1261
-				}
1257
+                // Headings
1258
+                $headings_css = '';
1259
+                if( !empty( $theme_settings['elements']['heading']['color']['text'] ) ){
1260
+                    $headings_css .= "color: " . esc_attr( $theme_settings['elements']['heading']['color']['text'] ) . ";";
1261
+                }
1262 1262
 
1263
-				// heading background
1264
-				if( !empty( $theme_settings['elements']['heading']['color']['background'] ) ){
1265
-					$headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1266
-				}
1263
+                // heading background
1264
+                if( !empty( $theme_settings['elements']['heading']['color']['background'] ) ){
1265
+                    $headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1266
+                }
1267 1267
 
1268
-				 // heading font family
1269
-				if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1270
-					$headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1271
-				}
1268
+                    // heading font family
1269
+                if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1270
+                    $headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1271
+                }
1272 1272
 
1273
-				if( $headings_css ){
1274
-					$custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr( $headings_css ) . "}";
1275
-				}
1273
+                if( $headings_css ){
1274
+                    $custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr( $headings_css ) . "}";
1275
+                }
1276 1276
 
1277
-				$hs = array('h1','h2','h3','h4','h5','h6');
1277
+                $hs = array('h1','h2','h3','h4','h5','h6');
1278 1278
 
1279
-				foreach($hs as $hn){
1280
-					$h_css = '';
1281
-					 if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1282
-						$h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1283
-					 }
1279
+                foreach($hs as $hn){
1280
+                    $h_css = '';
1281
+                        if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1282
+                        $h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1283
+                        }
1284 1284
 
1285
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1286
-						$h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1287
-					 }
1285
+                        if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1286
+                        $h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1287
+                        }
1288 1288
 
1289
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1290
-						$h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1291
-					 }
1289
+                        if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1290
+                        $h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1291
+                        }
1292 1292
 
1293
-					 if($h_css){
1294
-						$custom_css .= esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1295
-					 }
1296
-				}
1297
-			}
1293
+                        if($h_css){
1294
+                        $custom_css .= esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1295
+                        }
1296
+                }
1297
+            }
1298 1298
 			
1299
-			if ( $custom_css ) {
1300
-				echo $custom_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1301
-			}
1299
+            if ( $custom_css ) {
1300
+                echo $custom_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1301
+            }
1302 1302
 
1303
-			// Pagination on Hello Elementor theme.
1304
-			if ( function_exists( 'hello_elementor_setup' ) ) {
1305
-				echo '.aui-nav-links .pagination{justify-content:inherit}';
1306
-			}
1303
+            // Pagination on Hello Elementor theme.
1304
+            if ( function_exists( 'hello_elementor_setup' ) ) {
1305
+                echo '.aui-nav-links .pagination{justify-content:inherit}';
1306
+            }
1307 1307
 
1308 1308
             // Astra theme - when woocommerce active they add compatibility CSS which breaks select2 in modals
1309 1309
             if( defined('ASTRA_THEME_VERSION')){
1310 1310
                 echo '.woocommerce-js.modal-open .select2-container .select2-dropdown, .woocommerce-js.modal-open .select2-container .select2-search__field, .woocommerce-page.modal-open .select2-container .select2-dropdown, .woocommerce-page.modal-open .select2-container .select2-search__field{z-index: 1056;}';
1311 1311
             }
1312 1312
 
1313
-			?></style><?php
1314
-			$custom_css = ob_get_clean();
1313
+            ?></style><?php
1314
+            $custom_css = ob_get_clean();
1315 1315
 
1316
-			/*
1316
+            /*
1317 1317
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1318 1318
 			 */
1319
-			return str_replace( array(
1320
-				'<style>',
1321
-				'</style>'
1322
-			), '', self::minify_css( $custom_css ) );
1323
-		}
1324
-
1325
-		/**
1326
-		 * Check if we should add booststrap 3 compatibility changes.
1327
-		 *
1328
-		 * @return bool
1329
-		 */
1330
-		public static function is_bs3_compat(){
1331
-			return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1332
-		}
1333
-
1334
-		public static function hex_to_rgb( $hex ) {
1335
-			// Remove '#' if present
1336
-			$hex = str_replace( '#', '', $hex );
1337
-
1338
-			// Check if input is RGB
1339
-			if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1340
-				$_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1341
-
1342
-				$rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1343
-				$rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1344
-				$rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1345
-
1346
-				return $rgb;
1347
-			}
1348
-
1349
-			// Convert 3-digit hex to 6-digit hex
1350
-			if ( strlen( $hex ) == 3 ) {
1351
-				$hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1352
-			}
1353
-
1354
-			// Convert hex to RGB
1355
-			$r = hexdec( substr( $hex, 0, 2 ) );
1356
-			$g = hexdec( substr( $hex, 2, 2 ) );
1357
-			$b = hexdec( substr( $hex, 4, 2 ) );
1358
-
1359
-			// Return RGB values as an array
1360
-			return $r . ',' . $g . ',' . $b;
1361
-		}
1362
-
1363
-		/**
1364
-		 * Build the CSS to overwrite a bootstrap color variable.
1365
-		 *
1366
-		 * @param $type
1367
-		 * @param $color_code
1368
-		 * @param $compatibility
1369
-		 *
1370
-		 * @return string
1371
-		 */
1372
-		public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1373
-			global $aui_bs5;
1374
-
1375
-			$is_var = false;
1376
-			$is_custom = strpos($type, 'custom-') !== false ? true : false;
1377
-			if(!$color_code){return '';}
1378
-			if(strpos($color_code, 'var') !== false){
1379
-				//if(!sanitize_hex_color($color_code)){
1380
-				$color_code = esc_attr($color_code);
1381
-				$is_var = true;
1319
+            return str_replace( array(
1320
+                '<style>',
1321
+                '</style>'
1322
+            ), '', self::minify_css( $custom_css ) );
1323
+        }
1324
+
1325
+        /**
1326
+         * Check if we should add booststrap 3 compatibility changes.
1327
+         *
1328
+         * @return bool
1329
+         */
1330
+        public static function is_bs3_compat(){
1331
+            return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1332
+        }
1333
+
1334
+        public static function hex_to_rgb( $hex ) {
1335
+            // Remove '#' if present
1336
+            $hex = str_replace( '#', '', $hex );
1337
+
1338
+            // Check if input is RGB
1339
+            if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1340
+                $_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1341
+
1342
+                $rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1343
+                $rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1344
+                $rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1345
+
1346
+                return $rgb;
1347
+            }
1348
+
1349
+            // Convert 3-digit hex to 6-digit hex
1350
+            if ( strlen( $hex ) == 3 ) {
1351
+                $hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1352
+            }
1353
+
1354
+            // Convert hex to RGB
1355
+            $r = hexdec( substr( $hex, 0, 2 ) );
1356
+            $g = hexdec( substr( $hex, 2, 2 ) );
1357
+            $b = hexdec( substr( $hex, 4, 2 ) );
1358
+
1359
+            // Return RGB values as an array
1360
+            return $r . ',' . $g . ',' . $b;
1361
+        }
1362
+
1363
+        /**
1364
+         * Build the CSS to overwrite a bootstrap color variable.
1365
+         *
1366
+         * @param $type
1367
+         * @param $color_code
1368
+         * @param $compatibility
1369
+         *
1370
+         * @return string
1371
+         */
1372
+        public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1373
+            global $aui_bs5;
1374
+
1375
+            $is_var = false;
1376
+            $is_custom = strpos($type, 'custom-') !== false ? true : false;
1377
+            if(!$color_code){return '';}
1378
+            if(strpos($color_code, 'var') !== false){
1379
+                //if(!sanitize_hex_color($color_code)){
1380
+                $color_code = esc_attr($color_code);
1381
+                $is_var = true;
1382 1382
 //				$color_code = "rgba($color_code, 0.5)";
1383 1383
 //                echo '###1'.$color_code.'###';//exit;
1384
-			}
1384
+            }
1385 1385
 
1386 1386
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1387 1387
 
1388
-			if(!$color_code){return '';}
1388
+            if(!$color_code){return '';}
1389 1389
 
1390
-			$rgb = self::hex_to_rgb($hex);
1390
+            $rgb = self::hex_to_rgb($hex);
1391 1391
 
1392
-			if($compatibility===true || $compatibility===1){
1393
-				$compatibility = '.bsui';
1394
-			}elseif(!$compatibility){
1395
-				$compatibility = '';
1396
-			}else{
1397
-				$compatibility = esc_attr($compatibility);
1398
-			}
1392
+            if($compatibility===true || $compatibility===1){
1393
+                $compatibility = '.bsui';
1394
+            }elseif(!$compatibility){
1395
+                $compatibility = '';
1396
+            }else{
1397
+                $compatibility = esc_attr($compatibility);
1398
+            }
1399 1399
 
1400
-			$prefix = $compatibility ? $compatibility . " " : "";
1400
+            $prefix = $compatibility ? $compatibility . " " : "";
1401 1401
 
1402 1402
 
1403 1403
             $output = '';
1404 1404
 
1405 1405
 //            echo '####'.$color_code;exit;
1406 1406
 
1407
-			$type = sanitize_html_class($type);
1407
+            $type = sanitize_html_class($type);
1408
+
1409
+            /**
1410
+             * c = color, b = background color, o = border-color, f = fill
1411
+             */
1412
+            $selectors = array(
1413
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1414
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1415
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1416
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1417
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1418
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1419
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1420
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1421
+                ".badge-{$type}"                                            => array( 'b' ),
1422
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1423
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1424
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1425
+                ".text-{$type}"                                     => array( 'c' ),
1426
+            );
1427
+
1428
+            if ( $aui_bs5 ) {
1429
+                unset($selectors[".alert-{$type}" ]);
1430
+            }
1408 1431
 
1409
-			/**
1410
-			 * c = color, b = background color, o = border-color, f = fill
1411
-			 */
1412
-			$selectors = array(
1413
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1414
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1415
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1416
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1417
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1418
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1419
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1420
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1421
-				".badge-{$type}"                                            => array( 'b' ),
1422
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1423
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1424
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1425
-				".text-{$type}"                                     => array( 'c' ),
1426
-			);
1427
-
1428
-			if ( $aui_bs5 ) {
1429
-				unset($selectors[".alert-{$type}" ]);
1430
-			}
1431
-
1432
-			if ( $type == 'primary' ) {
1433
-				$selectors = $selectors + array(
1434
-						'a'                                                                                                    => array( 'c' ),
1435
-						'.btn-link'                                                                                            => array( 'c' ),
1436
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1437
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1438
-							'b',
1439
-							'o'
1440
-						),
1441
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1442
-							'b',
1443
-							'o'
1444
-						),
1445
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1446
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1447
-						'.page-link'                                                                                           => array( 'c' ),
1448
-						'.page-item.active .page-link'                                                                         => array(
1449
-							'b',
1450
-							'o'
1451
-						),
1452
-						'.progress-bar'                                                                                        => array( 'b' ),
1453
-						'.list-group-item.active'                                                                              => array(
1454
-							'b',
1455
-							'o'
1456
-						),
1457
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1458
-					);
1459
-			}
1432
+            if ( $type == 'primary' ) {
1433
+                $selectors = $selectors + array(
1434
+                        'a'                                                                                                    => array( 'c' ),
1435
+                        '.btn-link'                                                                                            => array( 'c' ),
1436
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1437
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1438
+                            'b',
1439
+                            'o'
1440
+                        ),
1441
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1442
+                            'b',
1443
+                            'o'
1444
+                        ),
1445
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1446
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1447
+                        '.page-link'                                                                                           => array( 'c' ),
1448
+                        '.page-item.active .page-link'                                                                         => array(
1449
+                            'b',
1450
+                            'o'
1451
+                        ),
1452
+                        '.progress-bar'                                                                                        => array( 'b' ),
1453
+                        '.list-group-item.active'                                                                              => array(
1454
+                            'b',
1455
+                            'o'
1456
+                        ),
1457
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1458
+                    );
1459
+            }
1460 1460
 
1461 1461
 
1462 1462
 
1463 1463
             // link
1464
-			if ( $type === 'primary' ) {
1465
-				$output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1466
-				$output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1467
-				$output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }';
1464
+            if ( $type === 'primary' ) {
1465
+                $output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1466
+                $output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1467
+                $output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }';
1468 1468
 
1469
-				$output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1470
-				$output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1469
+                $output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1470
+                $output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1471 1471
 
1472 1472
                 // dropdown
1473
-				$output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1473
+                $output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1474 1474
 
1475 1475
                 // pagination
1476
-				$output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1476
+                $output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1477 1477
 
1478
-			} else if ( $aui_bs5 ) {
1479
-				$output .= $prefix . ' .text-' . sanitize_key( $type ) . '{color: var(--bs-' . sanitize_key( $type ) . ') !important;}';
1480
-			}
1478
+            } else if ( $aui_bs5 ) {
1479
+                $output .= $prefix . ' .text-' . sanitize_key( $type ) . '{color: var(--bs-' . sanitize_key( $type ) . ') !important;}';
1480
+            }
1481 1481
 
1482
-			$output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1483
-			$output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1482
+            $output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1483
+            $output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1484 1484
 
1485
-			//  buttons
1486
-			$output .= $prefix . ' .btn-'.esc_attr($type).'{';
1487
-			$output .= ' 
1485
+            //  buttons
1486
+            $output .= $prefix . ' .btn-'.esc_attr($type).'{';
1487
+            $output .= ' 
1488 1488
             --bs-btn-bg: '.esc_attr($color_code).';
1489 1489
             --bs-btn-border-color: '.esc_attr($color_code).';
1490 1490
             --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
@@ -1502,11 +1502,11 @@  discard block
 block discarded – undo
1502 1502
 //			--bs-btn-active-color: #fff;
1503 1503
 //			--bs-btn-disabled-color: #fff;
1504 1504
 //            ';
1505
-			$output .= '}';
1505
+            $output .= '}';
1506 1506
 
1507
-			//  buttons outline
1508
-			$output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1509
-			$output .= ' 
1507
+            //  buttons outline
1508
+            $output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1509
+            $output .= ' 
1510 1510
 			--bs-btn-color: '.esc_attr($color_code).';
1511 1511
             --bs-btn-border-color: '.esc_attr($color_code).';
1512 1512
             --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
@@ -1524,41 +1524,41 @@  discard block
 block discarded – undo
1524 1524
 //			--bs-btn-active-color: #fff;
1525 1525
 //			--bs-btn-disabled-color: #fff;
1526 1526
 //            ';
1527
-			$output .= '}';
1527
+            $output .= '}';
1528 1528
 
1529 1529
             // button hover
1530
-			$output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1531
-			$output .= ' 
1530
+            $output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1531
+            $output .= ' 
1532 1532
             box-shadow: 0 0.25rem 0.25rem 0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb), .1), 0 0.375rem 0.75rem -0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb) , .4);
1533 1533
             }
1534 1534
             ';
1535 1535
 
1536
-			if ( $aui_bs5 ) {
1537
-				// translucent primary
1538
-				if ( $type == 'primary' ) {
1539
-					$output .= $prefix . ' .btn-translucent-primary{color:rgb(var(--bs-primary-rgb));}';
1540
-					$output .= $prefix . ' .btn-translucent-primary:hover,' . $prefix . ' .btn-translucent-primary:focus,' . $prefix . ' .btn-translucent-primary.focus{background-color: rgb(var(--bs-primary-rgb));}';
1541
-				}
1536
+            if ( $aui_bs5 ) {
1537
+                // translucent primary
1538
+                if ( $type == 'primary' ) {
1539
+                    $output .= $prefix . ' .btn-translucent-primary{color:rgb(var(--bs-primary-rgb));}';
1540
+                    $output .= $prefix . ' .btn-translucent-primary:hover,' . $prefix . ' .btn-translucent-primary:focus,' . $prefix . ' .btn-translucent-primary.focus{background-color: rgb(var(--bs-primary-rgb));}';
1541
+                }
1542 1542
 
1543 1543
 //				$output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }';
1544
-				$output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1545
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1546
-			}
1544
+                $output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1545
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1546
+            }
1547 1547
 
1548 1548
 
1549
-			if ( $is_custom ) {
1549
+            if ( $is_custom ) {
1550 1550
 
1551 1551
 //				echo '###'.$type;exit;
1552 1552
 
1553
-				// build rules into each type
1554
-				foreach($selectors as $selector => $types){
1555
-					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1556
-					$types = array_combine($types,$types);
1557
-					if(isset($types['c'])){$color[] = $selector;}
1558
-					if(isset($types['b'])){$background[] = $selector;}
1559
-					if(isset($types['o'])){$border[] = $selector;}
1560
-					if(isset($types['f'])){$fill[] = $selector;}
1561
-				}
1553
+                // build rules into each type
1554
+                foreach($selectors as $selector => $types){
1555
+                    $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1556
+                    $types = array_combine($types,$types);
1557
+                    if(isset($types['c'])){$color[] = $selector;}
1558
+                    if(isset($types['b'])){$background[] = $selector;}
1559
+                    if(isset($types['o'])){$border[] = $selector;}
1560
+                    if(isset($types['f'])){$fill[] = $selector;}
1561
+                }
1562 1562
 
1563 1563
 //				// build rules into each type
1564 1564
 //				foreach($important_selectors as $selector => $types){
@@ -1570,853 +1570,853 @@  discard block
 block discarded – undo
1570 1570
 //					if(isset($types['f'])){$fill_i[] = $selector;}
1571 1571
 //				}
1572 1572
 
1573
-				// add any color rules
1574
-				if(!empty($color)){
1575
-					$output .= implode(",",$color) . "{color: $color_code;} ";
1576
-				}
1577
-				if(!empty($color_i)){
1578
-					$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1579
-				}
1573
+                // add any color rules
1574
+                if(!empty($color)){
1575
+                    $output .= implode(",",$color) . "{color: $color_code;} ";
1576
+                }
1577
+                if(!empty($color_i)){
1578
+                    $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1579
+                }
1580
+
1581
+                // add any background color rules
1582
+                if(!empty($background)){
1583
+                    $output .= implode(",",$background) . "{background-color: $color_code;} ";
1584
+                }
1585
+                if(!empty($background_i)){
1586
+                    $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1587
+//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1588
+                }
1589
+
1590
+                // add any border color rules
1591
+                if(!empty($border)){
1592
+                    $output .= implode(",",$border) . "{border-color: $color_code;} ";
1593
+                }
1594
+                if(!empty($border_i)){
1595
+                    $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1596
+                }
1597
+
1598
+                // add any fill color rules
1599
+                if(!empty($fill)){
1600
+                    $output .= implode(",",$fill) . "{fill: $color_code;} ";
1601
+                }
1602
+                if(!empty($fill_i)){
1603
+                    $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1604
+                }
1605
+
1606
+            }
1607
+
1608
+
1609
+
1610
+
1611
+            $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1612
+            // darken
1613
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1614
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1615
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1616
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1617
+
1618
+            // lighten
1619
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1620
+
1621
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1622
+            $op_25 = $color_code."40"; // 25% opacity
1623
+
1624
+
1625
+            // button states
1626
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1627
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1628
+//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1629
+            $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1630
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1631
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1632
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled):focus {box-shadow: 0 0.25rem 0.25rem 0.125rem rgba(var(--bs-{$type}-rgb), 0.1), 0 0.375rem 0.75rem -0.125rem rgba(var(--bs-{$type}-rgb), 0.4);} ";
1633
+
1634
+            // text
1635
+//			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
1636
+
1637
+
1638
+//			if ( $type == 'primary' ) {
1639
+//				// dropdown's
1640
+//				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1641
+//
1642
+//				// input states
1643
+//				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1644
+//
1645
+//				// page link
1646
+//				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1647
+//			}
1648
+
1649
+            // alerts
1650
+            if ( $aui_bs5 ) {
1651
+//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1652
+                $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1653
+            }
1654
+
1655
+            return $output;
1656
+        }
1657
+
1658
+        /**
1659
+         * Build the CSS to overwrite a bootstrap color variable.
1660
+         *
1661
+         * @param $type
1662
+         * @param $color_code
1663
+         * @param $compatibility
1664
+         *
1665
+         * @return string
1666
+         */
1667
+        public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1668
+            global $aui_bs5;
1669
+
1670
+            $is_var = false;
1671
+            if(!$color_code){return '';}
1672
+            if(strpos($color_code, 'var') !== false){
1673
+                //if(!sanitize_hex_color($color_code)){
1674
+                $color_code = esc_attr($color_code);
1675
+                $is_var = true;
1676
+//				$color_code = "rgba($color_code, 0.5)";
1677
+//                echo '###1'.$color_code.'###';//exit;
1678
+            }
1679
+
1680
+//            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1681
+
1682
+            if(!$color_code){return '';}
1683
+
1684
+            $rgb = self::hex_to_rgb($hex);
1685
+
1686
+            if($compatibility===true || $compatibility===1){
1687
+                $compatibility = '.bsui';
1688
+            }elseif(!$compatibility){
1689
+                $compatibility = '';
1690
+            }else{
1691
+                $compatibility = esc_attr($compatibility);
1692
+            }
1693
+
1694
+
1695
+
1696
+//            echo '####'.$color_code;exit;
1697
+
1698
+            $type = sanitize_html_class($type);
1699
+
1700
+            /**
1701
+             * c = color, b = background color, o = border-color, f = fill
1702
+             */
1703
+            $selectors = array(
1704
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1705
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1706
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1707
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1708
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1709
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1710
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1711
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1712
+                ".badge-{$type}"                                            => array( 'b' ),
1713
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1714
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1715
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1716
+            );
1717
+
1718
+            if ( $aui_bs5 ) {
1719
+                unset($selectors[".alert-{$type}" ]);
1720
+            }
1721
+
1722
+            if ( $type == 'primary' ) {
1723
+                $selectors = $selectors + array(
1724
+                        'a'                                                                                                    => array( 'c' ),
1725
+                        '.btn-link'                                                                                            => array( 'c' ),
1726
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1727
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1728
+                            'b',
1729
+                            'o'
1730
+                        ),
1731
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1732
+                            'b',
1733
+                            'o'
1734
+                        ),
1735
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1736
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1737
+                        '.page-link'                                                                                           => array( 'c' ),
1738
+                        '.page-item.active .page-link'                                                                         => array(
1739
+                            'b',
1740
+                            'o'
1741
+                        ),
1742
+                        '.progress-bar'                                                                                        => array( 'b' ),
1743
+                        '.list-group-item.active'                                                                              => array(
1744
+                            'b',
1745
+                            'o'
1746
+                        ),
1747
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1748
+//				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1749
+//				    '.custom-range::-moz-range-thumb' => array('b'),
1750
+//				    '.custom-range::-ms-thumb' => array('b'),
1751
+                    );
1752
+            }
1753
+
1754
+            $important_selectors = array(
1755
+                ".bg-{$type}" => array('b','f'),
1756
+                ".border-{$type}" => array('o'),
1757
+                ".text-{$type}" => array('c'),
1758
+            );
1759
+
1760
+            $color = array();
1761
+            $color_i = array();
1762
+            $background = array();
1763
+            $background_i = array();
1764
+            $border = array();
1765
+            $border_i = array();
1766
+            $fill = array();
1767
+            $fill_i = array();
1768
+
1769
+            $output = '';
1770
+
1771
+            if ( $aui_bs5 ) {
1772
+//				$output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }';
1773
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1774
+            }
1775
+
1776
+            // build rules into each type
1777
+            foreach($selectors as $selector => $types){
1778
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1779
+                $types = array_combine($types,$types);
1780
+                if(isset($types['c'])){$color[] = $selector;}
1781
+                if(isset($types['b'])){$background[] = $selector;}
1782
+                if(isset($types['o'])){$border[] = $selector;}
1783
+                if(isset($types['f'])){$fill[] = $selector;}
1784
+            }
1785
+
1786
+            // build rules into each type
1787
+            foreach($important_selectors as $selector => $types){
1788
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1789
+                $types = array_combine($types,$types);
1790
+                if(isset($types['c'])){$color_i[] = $selector;}
1791
+                if(isset($types['b'])){$background_i[] = $selector;}
1792
+                if(isset($types['o'])){$border_i[] = $selector;}
1793
+                if(isset($types['f'])){$fill_i[] = $selector;}
1794
+            }
1795
+
1796
+            // add any color rules
1797
+            if(!empty($color)){
1798
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1799
+            }
1800
+            if(!empty($color_i)){
1801
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1802
+            }
1803
+
1804
+            // add any background color rules
1805
+            if(!empty($background)){
1806
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1807
+            }
1808
+            if(!empty($background_i)){
1809
+                $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1810
+//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1811
+            }
1812
+
1813
+            // add any border color rules
1814
+            if(!empty($border)){
1815
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1816
+            }
1817
+            if(!empty($border_i)){
1818
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1819
+            }
1820
+
1821
+            // add any fill color rules
1822
+            if(!empty($fill)){
1823
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1824
+            }
1825
+            if(!empty($fill_i)){
1826
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1827
+            }
1828
+
1829
+
1830
+            $prefix = $compatibility ? $compatibility . " " : "";
1831
+
1832
+            $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1833
+            // darken
1834
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1835
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1836
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1837
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1838
+
1839
+            // lighten
1840
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1841
+
1842
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1843
+            $op_25 = $color_code."40"; // 25% opacity
1844
+
1845
+
1846
+            // button states
1847
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1848
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1849
+//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1850
+            $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1851
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1852
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1853
+
1854
+            if ( $type == 'primary' ) {
1855
+                // dropdown's
1856
+                $output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1857
+
1858
+                // input states
1859
+                $output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1860
+
1861
+                // page link
1862
+                $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1863
+            }
1864
+
1865
+            // alerts
1866
+            if ( $aui_bs5 ) {
1867
+//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1868
+                $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1869
+            }
1870
+
1871
+            return $output;
1872
+        }
1873
+
1874
+        /**
1875
+         *
1876
+         * @deprecated 0.1.76 Use css_overwrite()
1877
+         *
1878
+         * @param $color_code
1879
+         * @param $compatibility
1880
+         * @param $use_variable
1881
+         *
1882
+         * @return string
1883
+         */
1884
+        public static function css_primary($color_code,$compatibility, $use_variable = false){
1885
+
1886
+            if(!$use_variable){
1887
+                $color_code = sanitize_hex_color($color_code);
1888
+                if(!$color_code){return '';}
1889
+            }
1890
+
1891
+            /**
1892
+             * c = color, b = background color, o = border-color, f = fill
1893
+             */
1894
+            $selectors = array(
1895
+                'a' => array('c'),
1896
+                '.btn-primary' => array('b','o'),
1897
+                '.btn-primary.disabled' => array('b','o'),
1898
+                '.btn-primary:disabled' => array('b','o'),
1899
+                '.btn-outline-primary' => array('c','o'),
1900
+                '.btn-outline-primary:hover' => array('b','o'),
1901
+                '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1902
+                '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1903
+                '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1904
+                '.btn-link' => array('c'),
1905
+                '.dropdown-item.active' => array('b'),
1906
+                '.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1907
+                '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1908
+//				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1909
+//				'.custom-range::-moz-range-thumb' => array('b'),
1910
+//				'.custom-range::-ms-thumb' => array('b'),
1911
+                '.nav-pills .nav-link.active' => array('b'),
1912
+                '.nav-pills .show>.nav-link' => array('b'),
1913
+                '.page-link' => array('c'),
1914
+                '.page-item.active .page-link' => array('b','o'),
1915
+                '.badge-primary' => array('b'),
1916
+                '.alert-primary' => array('b','o'),
1917
+                '.progress-bar' => array('b'),
1918
+                '.list-group-item.active' => array('b','o'),
1919
+                '.bg-primary' => array('b','f'),
1920
+                '.btn-link.btn-primary' => array('c'),
1921
+                '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1922
+            );
1923
+
1924
+            $important_selectors = array(
1925
+                '.bg-primary' => array('b','f'),
1926
+                '.border-primary' => array('o'),
1927
+                '.text-primary' => array('c'),
1928
+            );
1929
+
1930
+            $color = array();
1931
+            $color_i = array();
1932
+            $background = array();
1933
+            $background_i = array();
1934
+            $border = array();
1935
+            $border_i = array();
1936
+            $fill = array();
1937
+            $fill_i = array();
1938
+
1939
+            $output = '';
1940
+
1941
+            // build rules into each type
1942
+            foreach($selectors as $selector => $types){
1943
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1944
+                $types = array_combine($types,$types);
1945
+                if(isset($types['c'])){$color[] = $selector;}
1946
+                if(isset($types['b'])){$background[] = $selector;}
1947
+                if(isset($types['o'])){$border[] = $selector;}
1948
+                if(isset($types['f'])){$fill[] = $selector;}
1949
+            }
1950
+
1951
+            // build rules into each type
1952
+            foreach($important_selectors as $selector => $types){
1953
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1954
+                $types = array_combine($types,$types);
1955
+                if(isset($types['c'])){$color_i[] = $selector;}
1956
+                if(isset($types['b'])){$background_i[] = $selector;}
1957
+                if(isset($types['o'])){$border_i[] = $selector;}
1958
+                if(isset($types['f'])){$fill_i[] = $selector;}
1959
+            }
1960
+
1961
+            // add any color rules
1962
+            if(!empty($color)){
1963
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1964
+            }
1965
+            if(!empty($color_i)){
1966
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1967
+            }
1968
+
1969
+            // add any background color rules
1970
+            if(!empty($background)){
1971
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1972
+            }
1973
+            if(!empty($background_i)){
1974
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1975
+            }
1976
+
1977
+            // add any border color rules
1978
+            if(!empty($border)){
1979
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1980
+            }
1981
+            if(!empty($border_i)){
1982
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1983
+            }
1984
+
1985
+            // add any fill color rules
1986
+            if(!empty($fill)){
1987
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1988
+            }
1989
+            if(!empty($fill_i)){
1990
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1991
+            }
1992
+
1580 1993
 
1581
-				// add any background color rules
1582
-				if(!empty($background)){
1583
-					$output .= implode(",",$background) . "{background-color: $color_code;} ";
1584
-				}
1585
-				if(!empty($background_i)){
1586
-					$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1587
-//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1588
-				}
1994
+            $prefix = $compatibility ? ".bsui " : "";
1589 1995
 
1590
-				// add any border color rules
1591
-				if(!empty($border)){
1592
-					$output .= implode(",",$border) . "{border-color: $color_code;} ";
1593
-				}
1594
-				if(!empty($border_i)){
1595
-					$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1596
-				}
1996
+            // darken
1997
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1998
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1999
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1597 2000
 
1598
-				// add any fill color rules
1599
-				if(!empty($fill)){
1600
-					$output .= implode(",",$fill) . "{fill: $color_code;} ";
1601
-				}
1602
-				if(!empty($fill_i)){
1603
-					$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1604
-				}
2001
+            // lighten
2002
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1605 2003
 
1606
-			}
2004
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
2005
+            $op_25 = $color_code."40"; // 25% opacity
1607 2006
 
1608 2007
 
2008
+            // button states
2009
+            $output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2010
+            $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2011
+            $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2012
+            $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1609 2013
 
1610 2014
 
1611
-			$transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1612
-			// darken
1613
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1614
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1615
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1616
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
2015
+            // dropdown's
2016
+            $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1617 2017
 
1618
-			// lighten
1619
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1620 2018
 
1621
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1622
-			$op_25 = $color_code."40"; // 25% opacity
2019
+            // input states
2020
+            $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1623 2021
 
2022
+            // page link
2023
+            $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1624 2024
 
1625
-			// button states
1626
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1627
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1628
-//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1629
-			$output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1630
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1631
-            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1632
-            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled):focus {box-shadow: 0 0.25rem 0.25rem 0.125rem rgba(var(--bs-{$type}-rgb), 0.1), 0 0.375rem 0.75rem -0.125rem rgba(var(--bs-{$type}-rgb), 0.4);} ";
2025
+            return $output;
2026
+        }
1633 2027
 
1634
-			// text
1635
-//			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
2028
+        /**
2029
+         *
2030
+         * @deprecated 0.1.76 Use css_overwrite()
2031
+         *
2032
+         * @param $color_code
2033
+         * @param $compatibility
2034
+         *
2035
+         * @return string
2036
+         */
2037
+        public static function css_secondary($color_code,$compatibility){;
2038
+            $color_code = sanitize_hex_color($color_code);
2039
+            if(!$color_code){return '';}
2040
+            /**
2041
+             * c = color, b = background color, o = border-color, f = fill
2042
+             */
2043
+            $selectors = array(
2044
+                '.btn-secondary' => array('b','o'),
2045
+                '.btn-secondary.disabled' => array('b','o'),
2046
+                '.btn-secondary:disabled' => array('b','o'),
2047
+                '.btn-outline-secondary' => array('c','o'),
2048
+                '.btn-outline-secondary:hover' => array('b','o'),
2049
+                '.btn-outline-secondary.disabled' => array('c'),
2050
+                '.btn-outline-secondary:disabled' => array('c'),
2051
+                '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2052
+                '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2053
+                '.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2054
+                '.badge-secondary' => array('b'),
2055
+                '.alert-secondary' => array('b','o'),
2056
+                '.btn-link.btn-secondary' => array('c'),
2057
+            );
2058
+
2059
+            $important_selectors = array(
2060
+                '.bg-secondary' => array('b','f'),
2061
+                '.border-secondary' => array('o'),
2062
+                '.text-secondary' => array('c'),
2063
+            );
2064
+
2065
+            $color = array();
2066
+            $color_i = array();
2067
+            $background = array();
2068
+            $background_i = array();
2069
+            $border = array();
2070
+            $border_i = array();
2071
+            $fill = array();
2072
+            $fill_i = array();
1636 2073
 
2074
+            $output = '';
1637 2075
 
1638
-//			if ( $type == 'primary' ) {
1639
-//				// dropdown's
1640
-//				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1641
-//
1642
-//				// input states
1643
-//				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1644
-//
1645
-//				// page link
1646
-//				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1647
-//			}
2076
+            // build rules into each type
2077
+            foreach($selectors as $selector => $types){
2078
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2079
+                $types = array_combine($types,$types);
2080
+                if(isset($types['c'])){$color[] = $selector;}
2081
+                if(isset($types['b'])){$background[] = $selector;}
2082
+                if(isset($types['o'])){$border[] = $selector;}
2083
+                if(isset($types['f'])){$fill[] = $selector;}
2084
+            }
1648 2085
 
1649
-			// alerts
1650
-			if ( $aui_bs5 ) {
1651
-//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1652
-				$output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1653
-			}
1654
-
1655
-			return $output;
1656
-		}
1657
-
1658
-		/**
1659
-		 * Build the CSS to overwrite a bootstrap color variable.
1660
-		 *
1661
-		 * @param $type
1662
-		 * @param $color_code
1663
-		 * @param $compatibility
1664
-		 *
1665
-		 * @return string
1666
-		 */
1667
-		public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1668
-            global $aui_bs5;
2086
+            // build rules into each type
2087
+            foreach($important_selectors as $selector => $types){
2088
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2089
+                $types = array_combine($types,$types);
2090
+                if(isset($types['c'])){$color_i[] = $selector;}
2091
+                if(isset($types['b'])){$background_i[] = $selector;}
2092
+                if(isset($types['o'])){$border_i[] = $selector;}
2093
+                if(isset($types['f'])){$fill_i[] = $selector;}
2094
+            }
1669 2095
 
1670
-			$is_var = false;
1671
-			if(!$color_code){return '';}
1672
-			if(strpos($color_code, 'var') !== false){
1673
-				//if(!sanitize_hex_color($color_code)){
1674
-				$color_code = esc_attr($color_code);
1675
-				$is_var = true;
1676
-//				$color_code = "rgba($color_code, 0.5)";
1677
-//                echo '###1'.$color_code.'###';//exit;
1678
-			}
2096
+            // add any color rules
2097
+            if(!empty($color)){
2098
+                $output .= implode(",",$color) . "{color: $color_code;} ";
2099
+            }
2100
+            if(!empty($color_i)){
2101
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2102
+            }
1679 2103
 
1680
-//            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
2104
+            // add any background color rules
2105
+            if(!empty($background)){
2106
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
2107
+            }
2108
+            if(!empty($background_i)){
2109
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2110
+            }
1681 2111
 
1682
-			if(!$color_code){return '';}
2112
+            // add any border color rules
2113
+            if(!empty($border)){
2114
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
2115
+            }
2116
+            if(!empty($border_i)){
2117
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2118
+            }
1683 2119
 
1684
-            $rgb = self::hex_to_rgb($hex);
2120
+            // add any fill color rules
2121
+            if(!empty($fill)){
2122
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
2123
+            }
2124
+            if(!empty($fill_i)){
2125
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2126
+            }
1685 2127
 
1686
-			if($compatibility===true || $compatibility===1){
1687
-				$compatibility = '.bsui';
1688
-			}elseif(!$compatibility){
1689
-				$compatibility = '';
1690
-			}else{
1691
-				$compatibility = esc_attr($compatibility);
1692
-			}
1693 2128
 
2129
+            $prefix = $compatibility ? ".bsui " : "";
1694 2130
 
2131
+            // darken
2132
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2133
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2134
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1695 2135
 
1696
-//            echo '####'.$color_code;exit;
2136
+            // lighten
2137
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1697 2138
 
1698
-			$type = sanitize_html_class($type);
2139
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
2140
+            $op_25 = $color_code."40"; // 25% opacity
1699 2141
 
1700
-			/**
1701
-			 * c = color, b = background color, o = border-color, f = fill
1702
-			 */
1703
-			$selectors = array(
1704
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1705
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1706
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1707
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1708
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1709
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1710
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1711
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1712
-				".badge-{$type}"                                            => array( 'b' ),
1713
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1714
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1715
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1716
-			);
1717
-
1718
-			if ( $aui_bs5 ) {
1719
-                unset($selectors[".alert-{$type}" ]);
1720
-			}
1721
-
1722
-			if ( $type == 'primary' ) {
1723
-				$selectors = $selectors + array(
1724
-						'a'                                                                                                    => array( 'c' ),
1725
-						'.btn-link'                                                                                            => array( 'c' ),
1726
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1727
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1728
-							'b',
1729
-							'o'
1730
-						),
1731
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1732
-							'b',
1733
-							'o'
1734
-						),
1735
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1736
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1737
-						'.page-link'                                                                                           => array( 'c' ),
1738
-						'.page-item.active .page-link'                                                                         => array(
1739
-							'b',
1740
-							'o'
1741
-						),
1742
-						'.progress-bar'                                                                                        => array( 'b' ),
1743
-						'.list-group-item.active'                                                                              => array(
1744
-							'b',
1745
-							'o'
1746
-						),
1747
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1748
-//				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1749
-//				    '.custom-range::-moz-range-thumb' => array('b'),
1750
-//				    '.custom-range::-ms-thumb' => array('b'),
1751
-					);
1752
-			}
1753
-
1754
-			$important_selectors = array(
1755
-				".bg-{$type}" => array('b','f'),
1756
-				".border-{$type}" => array('o'),
1757
-				".text-{$type}" => array('c'),
1758
-			);
1759
-
1760
-			$color = array();
1761
-			$color_i = array();
1762
-			$background = array();
1763
-			$background_i = array();
1764
-			$border = array();
1765
-			$border_i = array();
1766
-			$fill = array();
1767
-			$fill_i = array();
1768
-
1769
-			$output = '';
1770
-
1771
-			if ( $aui_bs5 ) {
1772
-//				$output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }';
1773
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1774
-			}
1775
-
1776
-			// build rules into each type
1777
-			foreach($selectors as $selector => $types){
1778
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1779
-				$types = array_combine($types,$types);
1780
-				if(isset($types['c'])){$color[] = $selector;}
1781
-				if(isset($types['b'])){$background[] = $selector;}
1782
-				if(isset($types['o'])){$border[] = $selector;}
1783
-				if(isset($types['f'])){$fill[] = $selector;}
1784
-			}
1785
-
1786
-			// build rules into each type
1787
-			foreach($important_selectors as $selector => $types){
1788
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1789
-				$types = array_combine($types,$types);
1790
-				if(isset($types['c'])){$color_i[] = $selector;}
1791
-				if(isset($types['b'])){$background_i[] = $selector;}
1792
-				if(isset($types['o'])){$border_i[] = $selector;}
1793
-				if(isset($types['f'])){$fill_i[] = $selector;}
1794
-			}
1795
-
1796
-			// add any color rules
1797
-			if(!empty($color)){
1798
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1799
-			}
1800
-			if(!empty($color_i)){
1801
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1802
-			}
1803
-
1804
-			// add any background color rules
1805
-			if(!empty($background)){
1806
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1807
-			}
1808
-			if(!empty($background_i)){
1809
-				$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1810
-//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1811
-			}
1812 2142
 
1813
-			// add any border color rules
1814
-			if(!empty($border)){
1815
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1816
-			}
1817
-			if(!empty($border_i)){
1818
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1819
-			}
2143
+            // button states
2144
+            $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2145
+            $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2146
+            $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2147
+            $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1820 2148
 
1821
-			// add any fill color rules
1822
-			if(!empty($fill)){
1823
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1824
-			}
1825
-			if(!empty($fill_i)){
1826
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1827
-			}
1828 2149
 
2150
+            return $output;
2151
+        }
1829 2152
 
1830
-			$prefix = $compatibility ? $compatibility . " " : "";
2153
+        /**
2154
+         * Increases or decreases the brightness of a color by a percentage of the current brightness.
2155
+         *
2156
+         * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2157
+         * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2158
+         *
2159
+         * @return  string
2160
+         */
2161
+        public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2162
+            $hexCode = ltrim($hexCode, '#');
1831 2163
 
1832
-			$transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1833
-			// darken
1834
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1835
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1836
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1837
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
2164
+            if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2165
+                return $hexCode;
2166
+            }
1838 2167
 
1839
-			// lighten
1840
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
2168
+            if (strlen($hexCode) == 3) {
2169
+                $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2170
+            }
1841 2171
 
1842
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1843
-			$op_25 = $color_code."40"; // 25% opacity
2172
+            $hexCode = array_map('hexdec', str_split($hexCode, 2));
1844 2173
 
2174
+            foreach ($hexCode as & $color) {
2175
+                $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2176
+                $adjustAmount = ceil($adjustableLimit * $adjustPercent);
1845 2177
 
1846
-			// button states
1847
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1848
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1849
-//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1850
-			$output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1851
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1852
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2178
+                $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2179
+            }
1853 2180
 
1854
-			if ( $type == 'primary' ) {
1855
-				// dropdown's
1856
-				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
2181
+            return '#' . implode($hexCode);
2182
+        }
1857 2183
 
1858
-				// input states
1859
-				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
2184
+        /**
2185
+         * Check if we should display examples.
2186
+         */
2187
+        public function maybe_show_examples(){
2188
+            if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2189
+                echo "<head>";
2190
+                wp_head();
2191
+                echo "</head>";
2192
+                echo "<body>";
2193
+                echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2194
+                echo "</body>";
2195
+                exit;
2196
+            }
2197
+        }
1860 2198
 
1861
-				// page link
1862
-				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1863
-			}
2199
+        /**
2200
+         * Get developer examples.
2201
+         *
2202
+         * @return string
2203
+         */
2204
+        public function get_examples(){
2205
+            $output = '';
1864 2206
 
1865
-            // alerts
1866
-			if ( $aui_bs5 ) {
1867
-//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1868
-				$output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1869
-			}
1870
-
1871
-			return $output;
1872
-		}
1873
-
1874
-		/**
1875
-		 *
1876
-		 * @deprecated 0.1.76 Use css_overwrite()
1877
-		 *
1878
-		 * @param $color_code
1879
-		 * @param $compatibility
1880
-		 * @param $use_variable
1881
-		 *
1882
-		 * @return string
1883
-		 */
1884
-		public static function css_primary($color_code,$compatibility, $use_variable = false){
1885
-
1886
-			if(!$use_variable){
1887
-				$color_code = sanitize_hex_color($color_code);
1888
-				if(!$color_code){return '';}
1889
-			}
1890
-
1891
-			/**
1892
-			 * c = color, b = background color, o = border-color, f = fill
1893
-			 */
1894
-			$selectors = array(
1895
-				'a' => array('c'),
1896
-				'.btn-primary' => array('b','o'),
1897
-				'.btn-primary.disabled' => array('b','o'),
1898
-				'.btn-primary:disabled' => array('b','o'),
1899
-				'.btn-outline-primary' => array('c','o'),
1900
-				'.btn-outline-primary:hover' => array('b','o'),
1901
-				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1902
-				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1903
-				'.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1904
-				'.btn-link' => array('c'),
1905
-				'.dropdown-item.active' => array('b'),
1906
-				'.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1907
-				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1908
-//				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1909
-//				'.custom-range::-moz-range-thumb' => array('b'),
1910
-//				'.custom-range::-ms-thumb' => array('b'),
1911
-				'.nav-pills .nav-link.active' => array('b'),
1912
-				'.nav-pills .show>.nav-link' => array('b'),
1913
-				'.page-link' => array('c'),
1914
-				'.page-item.active .page-link' => array('b','o'),
1915
-				'.badge-primary' => array('b'),
1916
-				'.alert-primary' => array('b','o'),
1917
-				'.progress-bar' => array('b'),
1918
-				'.list-group-item.active' => array('b','o'),
1919
-				'.bg-primary' => array('b','f'),
1920
-				'.btn-link.btn-primary' => array('c'),
1921
-				'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1922
-			);
1923
-
1924
-			$important_selectors = array(
1925
-				'.bg-primary' => array('b','f'),
1926
-				'.border-primary' => array('o'),
1927
-				'.text-primary' => array('c'),
1928
-			);
1929
-
1930
-			$color = array();
1931
-			$color_i = array();
1932
-			$background = array();
1933
-			$background_i = array();
1934
-			$border = array();
1935
-			$border_i = array();
1936
-			$fill = array();
1937
-			$fill_i = array();
1938
-
1939
-			$output = '';
1940
-
1941
-			// build rules into each type
1942
-			foreach($selectors as $selector => $types){
1943
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1944
-				$types = array_combine($types,$types);
1945
-				if(isset($types['c'])){$color[] = $selector;}
1946
-				if(isset($types['b'])){$background[] = $selector;}
1947
-				if(isset($types['o'])){$border[] = $selector;}
1948
-				if(isset($types['f'])){$fill[] = $selector;}
1949
-			}
1950
-
1951
-			// build rules into each type
1952
-			foreach($important_selectors as $selector => $types){
1953
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1954
-				$types = array_combine($types,$types);
1955
-				if(isset($types['c'])){$color_i[] = $selector;}
1956
-				if(isset($types['b'])){$background_i[] = $selector;}
1957
-				if(isset($types['o'])){$border_i[] = $selector;}
1958
-				if(isset($types['f'])){$fill_i[] = $selector;}
1959
-			}
1960
-
1961
-			// add any color rules
1962
-			if(!empty($color)){
1963
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1964
-			}
1965
-			if(!empty($color_i)){
1966
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1967
-			}
1968
-
1969
-			// add any background color rules
1970
-			if(!empty($background)){
1971
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1972
-			}
1973
-			if(!empty($background_i)){
1974
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1975
-			}
1976
-
1977
-			// add any border color rules
1978
-			if(!empty($border)){
1979
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1980
-			}
1981
-			if(!empty($border_i)){
1982
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1983
-			}
1984
-
1985
-			// add any fill color rules
1986
-			if(!empty($fill)){
1987
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1988
-			}
1989
-			if(!empty($fill_i)){
1990
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1991
-			}
1992
-
1993
-
1994
-			$prefix = $compatibility ? ".bsui " : "";
1995
-
1996
-			// darken
1997
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1998
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1999
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2000
-
2001
-			// lighten
2002
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2003
-
2004
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
2005
-			$op_25 = $color_code."40"; // 25% opacity
2006
-
2007
-
2008
-			// button states
2009
-			$output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2010
-			$output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2011
-			$output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2012
-			$output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2013
-
2014
-
2015
-			// dropdown's
2016
-			$output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
2017
-
2018
-
2019
-			// input states
2020
-			$output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
2021
-
2022
-			// page link
2023
-			$output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2024
-
2025
-			return $output;
2026
-		}
2027
-
2028
-		/**
2029
-		 *
2030
-		 * @deprecated 0.1.76 Use css_overwrite()
2031
-		 *
2032
-		 * @param $color_code
2033
-		 * @param $compatibility
2034
-		 *
2035
-		 * @return string
2036
-		 */
2037
-		public static function css_secondary($color_code,$compatibility){;
2038
-			$color_code = sanitize_hex_color($color_code);
2039
-			if(!$color_code){return '';}
2040
-			/**
2041
-			 * c = color, b = background color, o = border-color, f = fill
2042
-			 */
2043
-			$selectors = array(
2044
-				'.btn-secondary' => array('b','o'),
2045
-				'.btn-secondary.disabled' => array('b','o'),
2046
-				'.btn-secondary:disabled' => array('b','o'),
2047
-				'.btn-outline-secondary' => array('c','o'),
2048
-				'.btn-outline-secondary:hover' => array('b','o'),
2049
-				'.btn-outline-secondary.disabled' => array('c'),
2050
-				'.btn-outline-secondary:disabled' => array('c'),
2051
-				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2052
-				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2053
-				'.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2054
-				'.badge-secondary' => array('b'),
2055
-				'.alert-secondary' => array('b','o'),
2056
-				'.btn-link.btn-secondary' => array('c'),
2057
-			);
2058
-
2059
-			$important_selectors = array(
2060
-				'.bg-secondary' => array('b','f'),
2061
-				'.border-secondary' => array('o'),
2062
-				'.text-secondary' => array('c'),
2063
-			);
2064
-
2065
-			$color = array();
2066
-			$color_i = array();
2067
-			$background = array();
2068
-			$background_i = array();
2069
-			$border = array();
2070
-			$border_i = array();
2071
-			$fill = array();
2072
-			$fill_i = array();
2073
-
2074
-			$output = '';
2075
-
2076
-			// build rules into each type
2077
-			foreach($selectors as $selector => $types){
2078
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2079
-				$types = array_combine($types,$types);
2080
-				if(isset($types['c'])){$color[] = $selector;}
2081
-				if(isset($types['b'])){$background[] = $selector;}
2082
-				if(isset($types['o'])){$border[] = $selector;}
2083
-				if(isset($types['f'])){$fill[] = $selector;}
2084
-			}
2085
-
2086
-			// build rules into each type
2087
-			foreach($important_selectors as $selector => $types){
2088
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2089
-				$types = array_combine($types,$types);
2090
-				if(isset($types['c'])){$color_i[] = $selector;}
2091
-				if(isset($types['b'])){$background_i[] = $selector;}
2092
-				if(isset($types['o'])){$border_i[] = $selector;}
2093
-				if(isset($types['f'])){$fill_i[] = $selector;}
2094
-			}
2095
-
2096
-			// add any color rules
2097
-			if(!empty($color)){
2098
-				$output .= implode(",",$color) . "{color: $color_code;} ";
2099
-			}
2100
-			if(!empty($color_i)){
2101
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2102
-			}
2103
-
2104
-			// add any background color rules
2105
-			if(!empty($background)){
2106
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
2107
-			}
2108
-			if(!empty($background_i)){
2109
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2110
-			}
2111
-
2112
-			// add any border color rules
2113
-			if(!empty($border)){
2114
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
2115
-			}
2116
-			if(!empty($border_i)){
2117
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2118
-			}
2119
-
2120
-			// add any fill color rules
2121
-			if(!empty($fill)){
2122
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
2123
-			}
2124
-			if(!empty($fill_i)){
2125
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2126
-			}
2127
-
2128
-
2129
-			$prefix = $compatibility ? ".bsui " : "";
2130
-
2131
-			// darken
2132
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2133
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2134
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2135
-
2136
-			// lighten
2137
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2138
-
2139
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
2140
-			$op_25 = $color_code."40"; // 25% opacity
2141
-
2142
-
2143
-			// button states
2144
-			$output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2145
-			$output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2146
-			$output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2147
-			$output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2148
-
2149
-
2150
-			return $output;
2151
-		}
2152
-
2153
-		/**
2154
-		 * Increases or decreases the brightness of a color by a percentage of the current brightness.
2155
-		 *
2156
-		 * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2157
-		 * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2158
-		 *
2159
-		 * @return  string
2160
-		 */
2161
-		public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2162
-			$hexCode = ltrim($hexCode, '#');
2163
-
2164
-			if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2165
-				return $hexCode;
2166
-			}
2167
-
2168
-			if (strlen($hexCode) == 3) {
2169
-				$hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2170
-			}
2171
-
2172
-			$hexCode = array_map('hexdec', str_split($hexCode, 2));
2173
-
2174
-			foreach ($hexCode as & $color) {
2175
-				$adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2176
-				$adjustAmount = ceil($adjustableLimit * $adjustPercent);
2177
-
2178
-				$color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2179
-			}
2180
-
2181
-			return '#' . implode($hexCode);
2182
-		}
2183
-
2184
-		/**
2185
-		 * Check if we should display examples.
2186
-		 */
2187
-		public function maybe_show_examples(){
2188
-			if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2189
-				echo "<head>";
2190
-				wp_head();
2191
-				echo "</head>";
2192
-				echo "<body>";
2193
-				echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2194
-				echo "</body>";
2195
-				exit;
2196
-			}
2197
-		}
2198
-
2199
-		/**
2200
-		 * Get developer examples.
2201
-		 *
2202
-		 * @return string
2203
-		 */
2204
-		public function get_examples(){
2205
-			$output = '';
2206
-
2207
-
2208
-			// open form
2209
-			$output .= "<form class='p-5 m-5 border rounded'>";
2210
-
2211
-			// input example
2212
-			$output .= aui()->input(array(
2213
-				'type'  =>  'text',
2214
-				'id'    =>  'text-example',
2215
-				'name'    =>  'text-example',
2216
-				'placeholder'   => 'text placeholder',
2217
-				'title'   => 'Text input example',
2218
-				'value' =>  '',
2219
-				'required'  => false,
2220
-				'help_text' => 'help text',
2221
-				'label' => 'Text input example label'
2222
-			));
2223
-
2224
-			// input example
2225
-			$output .= aui()->input(array(
2226
-				'type'  =>  'url',
2227
-				'id'    =>  'text-example2',
2228
-				'name'    =>  'text-example',
2229
-				'placeholder'   => 'url placeholder',
2230
-				'title'   => 'Text input example',
2231
-				'value' =>  '',
2232
-				'required'  => false,
2233
-				'help_text' => 'help text',
2234
-				'label' => 'Text input example label'
2235
-			));
2236
-
2237
-			// checkbox example
2238
-			$output .= aui()->input(array(
2239
-				'type'  =>  'checkbox',
2240
-				'id'    =>  'checkbox-example',
2241
-				'name'    =>  'checkbox-example',
2242
-				'placeholder'   => 'checkbox-example',
2243
-				'title'   => 'Checkbox example',
2244
-				'value' =>  '1',
2245
-				'checked'   => true,
2246
-				'required'  => false,
2247
-				'help_text' => 'help text',
2248
-				'label' => 'Checkbox checked'
2249
-			));
2250
-
2251
-			// checkbox example
2252
-			$output .= aui()->input(array(
2253
-				'type'  =>  'checkbox',
2254
-				'id'    =>  'checkbox-example2',
2255
-				'name'    =>  'checkbox-example2',
2256
-				'placeholder'   => 'checkbox-example',
2257
-				'title'   => 'Checkbox example',
2258
-				'value' =>  '1',
2259
-				'checked'   => false,
2260
-				'required'  => false,
2261
-				'help_text' => 'help text',
2262
-				'label' => 'Checkbox un-checked'
2263
-			));
2264
-
2265
-			// switch example
2266
-			$output .= aui()->input(array(
2267
-				'type'  =>  'checkbox',
2268
-				'id'    =>  'switch-example',
2269
-				'name'    =>  'switch-example',
2270
-				'placeholder'   => 'checkbox-example',
2271
-				'title'   => 'Switch example',
2272
-				'value' =>  '1',
2273
-				'checked'   => true,
2274
-				'switch'    => true,
2275
-				'required'  => false,
2276
-				'help_text' => 'help text',
2277
-				'label' => 'Switch on'
2278
-			));
2279
-
2280
-			// switch example
2281
-			$output .= aui()->input(array(
2282
-				'type'  =>  'checkbox',
2283
-				'id'    =>  'switch-example2',
2284
-				'name'    =>  'switch-example2',
2285
-				'placeholder'   => 'checkbox-example',
2286
-				'title'   => 'Switch example',
2287
-				'value' =>  '1',
2288
-				'checked'   => false,
2289
-				'switch'    => true,
2290
-				'required'  => false,
2291
-				'help_text' => 'help text',
2292
-				'label' => 'Switch off'
2293
-			));
2294
-
2295
-			// close form
2296
-			$output .= "</form>";
2297
-
2298
-			return $output;
2299
-		}
2300
-
2301
-		/**
2302
-		 * Calendar params.
2303
-		 *
2304
-		 * @since 0.1.44
2305
-		 *
2306
-		 * @return array Calendar params.
2307
-		 */
2308
-		public static function calendar_params() {
2309
-			$params = array(
2310
-				'month_long_1' => __( 'January', 'ayecode-connect' ),
2311
-				'month_long_2' => __( 'February', 'ayecode-connect' ),
2312
-				'month_long_3' => __( 'March', 'ayecode-connect' ),
2313
-				'month_long_4' => __( 'April', 'ayecode-connect' ),
2314
-				'month_long_5' => __( 'May', 'ayecode-connect' ),
2315
-				'month_long_6' => __( 'June', 'ayecode-connect' ),
2316
-				'month_long_7' => __( 'July', 'ayecode-connect' ),
2317
-				'month_long_8' => __( 'August', 'ayecode-connect' ),
2318
-				'month_long_9' => __( 'September', 'ayecode-connect' ),
2319
-				'month_long_10' => __( 'October', 'ayecode-connect' ),
2320
-				'month_long_11' => __( 'November', 'ayecode-connect' ),
2321
-				'month_long_12' => __( 'December', 'ayecode-connect' ),
2322
-				'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2323
-				'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2324
-				'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2325
-				'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2326
-				'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2327
-				'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2328
-				'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2329
-				'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2330
-				'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2331
-				'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2332
-				'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2333
-				'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2334
-				'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2335
-				'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2336
-				'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2337
-				'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2338
-				'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2339
-				'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2340
-				'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2341
-				'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2342
-				'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2343
-				'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2344
-				'day_s2_4' => __( 'We', 'ayecode-connect' ),
2345
-				'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2346
-				'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2347
-				'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2348
-				'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2349
-				'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2350
-				'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2351
-				'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2352
-				'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2353
-				'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2354
-				'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2355
-				'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2356
-				'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2357
-				'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2358
-				'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2359
-				'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2360
-				'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2361
-				'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2362
-				'am_lower' => __( 'am', 'ayecode-connect' ),
2363
-				'pm_lower' => __( 'pm', 'ayecode-connect' ),
2364
-				'am_upper' => __( 'AM', 'ayecode-connect' ),
2365
-				'pm_upper' => __( 'PM', 'ayecode-connect' ),
2366
-				'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2367
-				'time_24hr' => false,
2368
-				'year' => __( 'Year', 'ayecode-connect' ),
2369
-				'hour' => __( 'Hour', 'ayecode-connect' ),
2370
-				'minute' => __( 'Minute', 'ayecode-connect' ),
2371
-				'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2372
-				'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2373
-				'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2374
-				'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2375
-			);
2376
-
2377
-			return apply_filters( 'ayecode_ui_calendar_params', $params );
2378
-		}
2379
-
2380
-		/**
2381
-		 * Flatpickr calendar localize.
2382
-		 *
2383
-		 * @since 0.1.44
2384
-		 *
2385
-		 * @return string Calendar locale.
2386
-		 */
2387
-		public static function flatpickr_locale() {
2388
-			$params = self::calendar_params();
2389
-
2390
-			if ( is_string( $params ) ) {
2391
-				$params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2392
-			} else {
2393
-				foreach ( (array) $params as $key => $value ) {
2394
-					if ( ! is_scalar( $value ) ) {
2395
-						continue;
2396
-					}
2397
-
2398
-					$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2399
-				}
2400
-			}
2401 2207
 
2402
-			$day_s3 = array();
2403
-			$day_s5 = array();
2208
+            // open form
2209
+            $output .= "<form class='p-5 m-5 border rounded'>";
2210
+
2211
+            // input example
2212
+            $output .= aui()->input(array(
2213
+                'type'  =>  'text',
2214
+                'id'    =>  'text-example',
2215
+                'name'    =>  'text-example',
2216
+                'placeholder'   => 'text placeholder',
2217
+                'title'   => 'Text input example',
2218
+                'value' =>  '',
2219
+                'required'  => false,
2220
+                'help_text' => 'help text',
2221
+                'label' => 'Text input example label'
2222
+            ));
2223
+
2224
+            // input example
2225
+            $output .= aui()->input(array(
2226
+                'type'  =>  'url',
2227
+                'id'    =>  'text-example2',
2228
+                'name'    =>  'text-example',
2229
+                'placeholder'   => 'url placeholder',
2230
+                'title'   => 'Text input example',
2231
+                'value' =>  '',
2232
+                'required'  => false,
2233
+                'help_text' => 'help text',
2234
+                'label' => 'Text input example label'
2235
+            ));
2236
+
2237
+            // checkbox example
2238
+            $output .= aui()->input(array(
2239
+                'type'  =>  'checkbox',
2240
+                'id'    =>  'checkbox-example',
2241
+                'name'    =>  'checkbox-example',
2242
+                'placeholder'   => 'checkbox-example',
2243
+                'title'   => 'Checkbox example',
2244
+                'value' =>  '1',
2245
+                'checked'   => true,
2246
+                'required'  => false,
2247
+                'help_text' => 'help text',
2248
+                'label' => 'Checkbox checked'
2249
+            ));
2250
+
2251
+            // checkbox example
2252
+            $output .= aui()->input(array(
2253
+                'type'  =>  'checkbox',
2254
+                'id'    =>  'checkbox-example2',
2255
+                'name'    =>  'checkbox-example2',
2256
+                'placeholder'   => 'checkbox-example',
2257
+                'title'   => 'Checkbox example',
2258
+                'value' =>  '1',
2259
+                'checked'   => false,
2260
+                'required'  => false,
2261
+                'help_text' => 'help text',
2262
+                'label' => 'Checkbox un-checked'
2263
+            ));
2264
+
2265
+            // switch example
2266
+            $output .= aui()->input(array(
2267
+                'type'  =>  'checkbox',
2268
+                'id'    =>  'switch-example',
2269
+                'name'    =>  'switch-example',
2270
+                'placeholder'   => 'checkbox-example',
2271
+                'title'   => 'Switch example',
2272
+                'value' =>  '1',
2273
+                'checked'   => true,
2274
+                'switch'    => true,
2275
+                'required'  => false,
2276
+                'help_text' => 'help text',
2277
+                'label' => 'Switch on'
2278
+            ));
2279
+
2280
+            // switch example
2281
+            $output .= aui()->input(array(
2282
+                'type'  =>  'checkbox',
2283
+                'id'    =>  'switch-example2',
2284
+                'name'    =>  'switch-example2',
2285
+                'placeholder'   => 'checkbox-example',
2286
+                'title'   => 'Switch example',
2287
+                'value' =>  '1',
2288
+                'checked'   => false,
2289
+                'switch'    => true,
2290
+                'required'  => false,
2291
+                'help_text' => 'help text',
2292
+                'label' => 'Switch off'
2293
+            ));
2294
+
2295
+            // close form
2296
+            $output .= "</form>";
2297
+
2298
+            return $output;
2299
+        }
2300
+
2301
+        /**
2302
+         * Calendar params.
2303
+         *
2304
+         * @since 0.1.44
2305
+         *
2306
+         * @return array Calendar params.
2307
+         */
2308
+        public static function calendar_params() {
2309
+            $params = array(
2310
+                'month_long_1' => __( 'January', 'ayecode-connect' ),
2311
+                'month_long_2' => __( 'February', 'ayecode-connect' ),
2312
+                'month_long_3' => __( 'March', 'ayecode-connect' ),
2313
+                'month_long_4' => __( 'April', 'ayecode-connect' ),
2314
+                'month_long_5' => __( 'May', 'ayecode-connect' ),
2315
+                'month_long_6' => __( 'June', 'ayecode-connect' ),
2316
+                'month_long_7' => __( 'July', 'ayecode-connect' ),
2317
+                'month_long_8' => __( 'August', 'ayecode-connect' ),
2318
+                'month_long_9' => __( 'September', 'ayecode-connect' ),
2319
+                'month_long_10' => __( 'October', 'ayecode-connect' ),
2320
+                'month_long_11' => __( 'November', 'ayecode-connect' ),
2321
+                'month_long_12' => __( 'December', 'ayecode-connect' ),
2322
+                'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2323
+                'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2324
+                'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2325
+                'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2326
+                'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2327
+                'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2328
+                'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2329
+                'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2330
+                'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2331
+                'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2332
+                'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2333
+                'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2334
+                'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2335
+                'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2336
+                'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2337
+                'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2338
+                'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2339
+                'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2340
+                'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2341
+                'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2342
+                'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2343
+                'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2344
+                'day_s2_4' => __( 'We', 'ayecode-connect' ),
2345
+                'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2346
+                'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2347
+                'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2348
+                'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2349
+                'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2350
+                'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2351
+                'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2352
+                'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2353
+                'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2354
+                'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2355
+                'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2356
+                'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2357
+                'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2358
+                'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2359
+                'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2360
+                'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2361
+                'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2362
+                'am_lower' => __( 'am', 'ayecode-connect' ),
2363
+                'pm_lower' => __( 'pm', 'ayecode-connect' ),
2364
+                'am_upper' => __( 'AM', 'ayecode-connect' ),
2365
+                'pm_upper' => __( 'PM', 'ayecode-connect' ),
2366
+                'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2367
+                'time_24hr' => false,
2368
+                'year' => __( 'Year', 'ayecode-connect' ),
2369
+                'hour' => __( 'Hour', 'ayecode-connect' ),
2370
+                'minute' => __( 'Minute', 'ayecode-connect' ),
2371
+                'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2372
+                'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2373
+                'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2374
+                'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2375
+            );
2376
+
2377
+            return apply_filters( 'ayecode_ui_calendar_params', $params );
2378
+        }
2379
+
2380
+        /**
2381
+         * Flatpickr calendar localize.
2382
+         *
2383
+         * @since 0.1.44
2384
+         *
2385
+         * @return string Calendar locale.
2386
+         */
2387
+        public static function flatpickr_locale() {
2388
+            $params = self::calendar_params();
2389
+
2390
+            if ( is_string( $params ) ) {
2391
+                $params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2392
+            } else {
2393
+                foreach ( (array) $params as $key => $value ) {
2394
+                    if ( ! is_scalar( $value ) ) {
2395
+                        continue;
2396
+                    }
2397
+
2398
+                    $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2399
+                }
2400
+            }
2404 2401
 
2405
-			for ( $i = 1; $i <= 7; $i ++ ) {
2406
-				$day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2407
-				$day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2408
-			}
2402
+            $day_s3 = array();
2403
+            $day_s5 = array();
2404
+
2405
+            for ( $i = 1; $i <= 7; $i ++ ) {
2406
+                $day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2407
+                $day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2408
+            }
2409 2409
 
2410
-			$month_s = array();
2411
-			$month_long = array();
2410
+            $month_s = array();
2411
+            $month_long = array();
2412 2412
 
2413
-			for ( $i = 1; $i <= 12; $i ++ ) {
2414
-				$month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2415
-				$month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2416
-			}
2413
+            for ( $i = 1; $i <= 12; $i ++ ) {
2414
+                $month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2415
+                $month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2416
+            }
2417 2417
 
2418
-			ob_start();
2419
-		if ( 0 ) { ?><script><?php } ?>
2418
+            ob_start();
2419
+        if ( 0 ) { ?><script><?php } ?>
2420 2420
                 {
2421 2421
                     weekdays: {
2422 2422
                         shorthand: ['<?php echo implode( "','", $day_s3 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
@@ -2455,189 +2455,189 @@  discard block
 block discarded – undo
2455 2455
                 }
2456 2456
 				<?php if ( 0 ) { ?></script><?php } ?>
2457 2457
 			<?php
2458
-			$locale = ob_get_clean();
2459
-
2460
-			return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2461
-		}
2462
-
2463
-		/**
2464
-		 * Select2 JS params.
2465
-		 *
2466
-		 * @since 0.1.44
2467
-		 *
2468
-		 * @return array Select2 JS params.
2469
-		 */
2470
-		public static function select2_params() {
2471
-			$params = array(
2472
-				'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2473
-				'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2474
-				'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2475
-				'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2476
-				'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2477
-				'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2478
-				'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2479
-				'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2480
-				'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2481
-				'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2482
-				'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2483
-			);
2484
-
2485
-			return apply_filters( 'ayecode_ui_select2_params', $params );
2486
-		}
2487
-
2488
-		/**
2489
-		 * Select2 JS localize.
2490
-		 *
2491
-		 * @since 0.1.44
2492
-		 *
2493
-		 * @return string Select2 JS locale.
2494
-		 */
2495
-		public static function select2_locale() {
2496
-			$params = self::select2_params();
2497
-
2498
-			foreach ( (array) $params as $key => $value ) {
2499
-				if ( ! is_scalar( $value ) ) {
2500
-					continue;
2501
-				}
2458
+            $locale = ob_get_clean();
2502 2459
 
2503
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2504
-			}
2505
-
2506
-			$locale = json_encode( $params );
2507
-
2508
-			return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2509
-		}
2510
-
2511
-		/**
2512
-		 * Time ago JS localize.
2513
-		 *
2514
-		 * @since 0.1.47
2515
-		 *
2516
-		 * @return string Time ago JS locale.
2517
-		 */
2518
-		public static function timeago_locale() {
2519
-			$params = array(
2520
-				'prefix_ago' => '',
2521
-				'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2522
-				'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2523
-				'suffix_after' => '',
2524
-				'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2525
-				'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2526
-				'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2527
-				'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2528
-				'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2529
-				'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2530
-				'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2531
-				'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2532
-				'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2533
-				'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2534
-				'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2535
-			);
2536
-
2537
-			$params = apply_filters( 'ayecode_ui_timeago_params', $params );
2538
-
2539
-			foreach ( (array) $params as $key => $value ) {
2540
-				if ( ! is_scalar( $value ) ) {
2541
-					continue;
2542
-				}
2460
+            return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2461
+        }
2462
+
2463
+        /**
2464
+         * Select2 JS params.
2465
+         *
2466
+         * @since 0.1.44
2467
+         *
2468
+         * @return array Select2 JS params.
2469
+         */
2470
+        public static function select2_params() {
2471
+            $params = array(
2472
+                'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2473
+                'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2474
+                'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2475
+                'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2476
+                'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2477
+                'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2478
+                'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2479
+                'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2480
+                'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2481
+                'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2482
+                'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2483
+            );
2484
+
2485
+            return apply_filters( 'ayecode_ui_select2_params', $params );
2486
+        }
2487
+
2488
+        /**
2489
+         * Select2 JS localize.
2490
+         *
2491
+         * @since 0.1.44
2492
+         *
2493
+         * @return string Select2 JS locale.
2494
+         */
2495
+        public static function select2_locale() {
2496
+            $params = self::select2_params();
2497
+
2498
+            foreach ( (array) $params as $key => $value ) {
2499
+                if ( ! is_scalar( $value ) ) {
2500
+                    continue;
2501
+                }
2502
+
2503
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2504
+            }
2505
+
2506
+            $locale = json_encode( $params );
2507
+
2508
+            return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2509
+        }
2510
+
2511
+        /**
2512
+         * Time ago JS localize.
2513
+         *
2514
+         * @since 0.1.47
2515
+         *
2516
+         * @return string Time ago JS locale.
2517
+         */
2518
+        public static function timeago_locale() {
2519
+            $params = array(
2520
+                'prefix_ago' => '',
2521
+                'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2522
+                'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2523
+                'suffix_after' => '',
2524
+                'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2525
+                'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2526
+                'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2527
+                'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2528
+                'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2529
+                'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2530
+                'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2531
+                'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2532
+                'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2533
+                'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2534
+                'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2535
+            );
2536
+
2537
+            $params = apply_filters( 'ayecode_ui_timeago_params', $params );
2538
+
2539
+            foreach ( (array) $params as $key => $value ) {
2540
+                if ( ! is_scalar( $value ) ) {
2541
+                    continue;
2542
+                }
2543 2543
 
2544
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2545
-			}
2546
-
2547
-			$locale = json_encode( $params );
2548
-
2549
-			return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2550
-		}
2551
-
2552
-		/**
2553
-		 * JavaScript Minifier
2554
-		 *
2555
-		 * @param $input
2556
-		 *
2557
-		 * @return mixed
2558
-		 */
2559
-		public static function minify_js($input) {
2560
-			if(trim($input) === "") return $input;
2561
-			return preg_replace(
2562
-				array(
2563
-					// Remove comment(s)
2564
-					'#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2565
-					// Remove white-space(s) outside the string and regex
2566
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2567
-					// Remove the last semicolon
2568
-					'#;+\}#',
2569
-					// Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2570
-					'#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2571
-					// --ibid. From `foo['bar']` to `foo.bar`
2572
-					'#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2573
-				),
2574
-				array(
2575
-					'$1',
2576
-					'$1$2',
2577
-					'}',
2578
-					'$1$3',
2579
-					'$1.$3'
2580
-				),
2581
-				$input);
2582
-		}
2583
-
2584
-		/**
2585
-		 * Minify CSS
2586
-		 *
2587
-		 * @param $input
2588
-		 *
2589
-		 * @return mixed
2590
-		 */
2591
-		public static function minify_css($input) {
2592
-			if(trim($input) === "") return $input;
2593
-			return preg_replace(
2594
-				array(
2595
-					// Remove comment(s)
2596
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2597
-					// Remove unused white-space(s)
2598
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2599
-					// Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2600
-					'#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2601
-					// Replace `:0 0 0 0` with `:0`
2602
-					'#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2603
-					// Replace `background-position:0` with `background-position:0 0`
2604
-					'#(background-position):0(?=[;\}])#si',
2605
-					// Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2606
-					'#(?<=[\s:,\-])0+\.(\d+)#s',
2607
-					// Minify string value
2608
-					'#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2609
-					'#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2610
-					// Minify HEX color code
2611
-					'#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2612
-					// Replace `(border|outline):none` with `(border|outline):0`
2613
-					'#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2614
-					// Remove empty selector(s)
2615
-					'#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2616
-				),
2617
-				array(
2618
-					'$1',
2619
-					'$1$2$3$4$5$6$7',
2620
-					'$1',
2621
-					':0',
2622
-					'$1:0 0',
2623
-					'.$1',
2624
-					'$1$3',
2625
-					'$1$2$4$5',
2626
-					'$1$2$3',
2627
-					'$1:0',
2628
-					'$1$2'
2629
-				),
2630
-				$input);
2631
-		}
2632
-
2633
-		/**
2634
-		 * Get the conditional fields JavaScript.
2635
-		 *
2636
-		 * @return mixed
2637
-		 */
2638
-		public function conditional_fields_js() {
2639
-			ob_start();
2640
-			?>
2544
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2545
+            }
2546
+
2547
+            $locale = json_encode( $params );
2548
+
2549
+            return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2550
+        }
2551
+
2552
+        /**
2553
+         * JavaScript Minifier
2554
+         *
2555
+         * @param $input
2556
+         *
2557
+         * @return mixed
2558
+         */
2559
+        public static function minify_js($input) {
2560
+            if(trim($input) === "") return $input;
2561
+            return preg_replace(
2562
+                array(
2563
+                    // Remove comment(s)
2564
+                    '#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2565
+                    // Remove white-space(s) outside the string and regex
2566
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2567
+                    // Remove the last semicolon
2568
+                    '#;+\}#',
2569
+                    // Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2570
+                    '#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2571
+                    // --ibid. From `foo['bar']` to `foo.bar`
2572
+                    '#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2573
+                ),
2574
+                array(
2575
+                    '$1',
2576
+                    '$1$2',
2577
+                    '}',
2578
+                    '$1$3',
2579
+                    '$1.$3'
2580
+                ),
2581
+                $input);
2582
+        }
2583
+
2584
+        /**
2585
+         * Minify CSS
2586
+         *
2587
+         * @param $input
2588
+         *
2589
+         * @return mixed
2590
+         */
2591
+        public static function minify_css($input) {
2592
+            if(trim($input) === "") return $input;
2593
+            return preg_replace(
2594
+                array(
2595
+                    // Remove comment(s)
2596
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2597
+                    // Remove unused white-space(s)
2598
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2599
+                    // Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2600
+                    '#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2601
+                    // Replace `:0 0 0 0` with `:0`
2602
+                    '#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2603
+                    // Replace `background-position:0` with `background-position:0 0`
2604
+                    '#(background-position):0(?=[;\}])#si',
2605
+                    // Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2606
+                    '#(?<=[\s:,\-])0+\.(\d+)#s',
2607
+                    // Minify string value
2608
+                    '#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2609
+                    '#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2610
+                    // Minify HEX color code
2611
+                    '#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2612
+                    // Replace `(border|outline):none` with `(border|outline):0`
2613
+                    '#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2614
+                    // Remove empty selector(s)
2615
+                    '#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2616
+                ),
2617
+                array(
2618
+                    '$1',
2619
+                    '$1$2$3$4$5$6$7',
2620
+                    '$1',
2621
+                    ':0',
2622
+                    '$1:0 0',
2623
+                    '.$1',
2624
+                    '$1$3',
2625
+                    '$1$2$4$5',
2626
+                    '$1$2$3',
2627
+                    '$1:0',
2628
+                    '$1$2'
2629
+                ),
2630
+                $input);
2631
+        }
2632
+
2633
+        /**
2634
+         * Get the conditional fields JavaScript.
2635
+         *
2636
+         * @return mixed
2637
+         */
2638
+        public function conditional_fields_js() {
2639
+            ob_start();
2640
+            ?>
2641 2641
             <script>
2642 2642
                 /**
2643 2643
                  * Conditional Fields
@@ -3172,237 +3172,237 @@  discard block
 block discarded – undo
3172 3172
 				<?php do_action( 'aui_conditional_fields_js', $this ); ?>
3173 3173
             </script>
3174 3174
 			<?php
3175
-			$output = ob_get_clean();
3176
-
3177
-			return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3178
-		}
3179
-
3180
-		/**
3181
-		 * Check if block editor page.
3182
-		 *
3183
-		 * @since 0.2.27
3184
-		 *
3185
-		 * @return bool
3186
-		 */
3187
-		public static function is_block_editor() {
3188
-			if ( is_admin() ) {
3189
-				$current_screen = function_exists('get_current_screen' ) ? get_current_screen() : array();
3190
-
3191
-				if ( ! empty( $current_screen ) && $current_screen->is_block_editor() ) {
3192
-					return true;
3193
-				}
3194
-			}
3195
-
3196
-			return false;
3197
-		}
3198
-
3199
-		/**
3200
-		 * Checks if the current call is a ajax call to get the block content.
3201
-		 *
3202
-		 * This can be used in your widget to return different content as the block content.
3203
-		 *
3204
-		 * @since 0.2.27
3205
-		 *
3206
-		 * @return bool
3207
-		 */
3208
-		public static function is_block_content_call() {
3209
-			$result = false;
3210
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
3211
-				$result = true;
3212
-			}
3213
-
3214
-			return $result;
3215
-		}
3216
-
3217
-		/**
3218
-		 * Tests if the current output is inside a Divi preview.
3219
-		 *
3220
-		 * @since 0.2.27
3221
-		 *
3222
-		 * @return bool
3223
-		 */
3224
-		public static function is_divi_preview() {
3225
-			$result = false;
3226
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
3227
-				$result = true;
3228
-			}
3229
-
3230
-			return $result;
3231
-		}
3232
-
3233
-		/**
3234
-		 * Tests if the current output is inside a elementor preview.
3235
-		 *
3236
-		 *
3237
-		 * @since 0.2.27
3238
-		 *
3239
-		 * @return bool
3240
-		 */
3241
-		public static function is_elementor_preview() {
3242
-			$result = false;
3243
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
3244
-				$result = true;
3245
-			}
3246
-
3247
-			return $result;
3248
-		}
3249
-
3250
-		/**
3251
-		 * Tests if the current output is inside a Beaver builder preview.
3252
-		 *
3253
-		 * @since 0.2.27
3254
-		 *
3255
-		 * @return bool
3256
-		 */
3257
-		public static function is_beaver_preview() {
3258
-			$result = false;
3259
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
3260
-				$result = true;
3261
-			}
3262
-
3263
-			return $result;
3264
-		}
3265
-
3266
-		/**
3267
-		 * Tests if the current output is inside a siteorigin builder preview.
3268
-		 *
3269
-		 * @since 0.2.27
3270
-		 *
3271
-		 * @return bool
3272
-		 */
3273
-		public static function is_siteorigin_preview() {
3274
-			$result = false;
3275
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
3276
-				$result = true;
3277
-			}
3278
-
3279
-			return $result;
3280
-		}
3281
-
3282
-		/**
3283
-		 * Tests if the current output is inside a cornerstone builder preview.
3284
-		 *
3285
-		 * @since 0.2.27
3286
-		 *
3287
-		 * @return bool
3288
-		 */
3289
-		public static function is_cornerstone_preview() {
3290
-			$result = false;
3291
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
3292
-				$result = true;
3293
-			}
3294
-
3295
-			return $result;
3296
-		}
3297
-
3298
-		/**
3299
-		 * Tests if the current output is inside a fusion builder preview.
3300
-		 *
3301
-		 * @return bool
3302
-		 *@since 1.1.0
3303
-		 */
3304
-		public static function is_fusion_preview() {
3305
-			$result = false;
3306
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
3307
-				$result = true;
3308
-			}
3309
-
3310
-			return $result;
3311
-		}
3312
-
3313
-		/**
3314
-		 * Tests if the current output is inside a Oxygen builder preview.
3315
-		 *
3316
-		 * @return bool
3317
-		 *@since 1.0.18
3318
-		 */
3319
-		public static function is_oxygen_preview() {
3320
-			$result = false;
3321
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
3322
-				$result = true;
3323
-			}
3324
-
3325
-			return $result;
3326
-		}
3327
-
3328
-		/**
3329
-		 * Check for Kallyas theme Zion builder preview.
3330
-		 *
3331
-		 * @since 0.2.27
3332
-		 *
3333
-		 * @return bool
3334
-		 */
3335
-		public static function is_kallyas_zion_preview() {
3336
-			$result = false;
3337
-
3338
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
3339
-				$result = true;
3340
-			}
3341
-
3342
-			return $result;
3343
-		}
3344
-
3345
-		/**
3346
-		 * Check for Bricks theme builder preview.
3347
-		 *
3348
-		 * @since 0.2.27
3349
-		 *
3350
-		 * @return bool
3351
-		 */
3352
-		public static function is_bricks_preview() {
3353
-			$result = false;
3354
-
3355
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
3356
-				$result = true;
3357
-			}
3358
-
3359
-			return $result;
3360
-		}
3361
-
3362
-		/**
3363
-		 * General function to check if we are in a preview situation.
3364
-		 *
3365
-		 * @since 0.2.27
3366
-		 *
3367
-		 * @return bool
3368
-		 */
3369
-		public static function is_preview() {
3370
-			$preview = false;
3371
-
3372
-			if ( self::is_block_editor() ) {
3373
-				return true;
3374
-			}
3375
-
3376
-			if( self::is_block_content_call() ) {
3377
-				$preview = true;
3378
-			} elseif ( self::is_divi_preview() ) {
3379
-				$preview = true;
3380
-			} elseif ( self::is_elementor_preview() ) {
3381
-				$preview = true;
3382
-			} elseif ( self::is_beaver_preview() ) {
3383
-				$preview = true;
3384
-			} elseif ( self::is_siteorigin_preview() ) {
3385
-				$preview = true;
3386
-			} elseif ( self::is_cornerstone_preview() ) {
3387
-				$preview = true;
3388
-			} elseif ( self::is_fusion_preview() ) {
3389
-				$preview = true;
3390
-			} elseif ( self::is_oxygen_preview() ) {
3391
-				$preview = true;
3392
-			} elseif( self::is_kallyas_zion_preview() ) {
3393
-				$preview = true;
3394
-			} elseif( self::is_bricks_preview() ) {
3395
-				$preview = true;
3396
-			}
3397
-
3398
-			return $preview;
3399
-		}
3400
-	}
3401
-
3402
-	global $ayecode_ui_settings;
3403
-
3404
-	/**
3405
-	 * Run the class if found.
3406
-	 */
3407
-	$ayecode_ui_settings = AyeCode_UI_Settings::instance();
3175
+            $output = ob_get_clean();
3176
+
3177
+            return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3178
+        }
3179
+
3180
+        /**
3181
+         * Check if block editor page.
3182
+         *
3183
+         * @since 0.2.27
3184
+         *
3185
+         * @return bool
3186
+         */
3187
+        public static function is_block_editor() {
3188
+            if ( is_admin() ) {
3189
+                $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : array();
3190
+
3191
+                if ( ! empty( $current_screen ) && $current_screen->is_block_editor() ) {
3192
+                    return true;
3193
+                }
3194
+            }
3195
+
3196
+            return false;
3197
+        }
3198
+
3199
+        /**
3200
+         * Checks if the current call is a ajax call to get the block content.
3201
+         *
3202
+         * This can be used in your widget to return different content as the block content.
3203
+         *
3204
+         * @since 0.2.27
3205
+         *
3206
+         * @return bool
3207
+         */
3208
+        public static function is_block_content_call() {
3209
+            $result = false;
3210
+            if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
3211
+                $result = true;
3212
+            }
3213
+
3214
+            return $result;
3215
+        }
3216
+
3217
+        /**
3218
+         * Tests if the current output is inside a Divi preview.
3219
+         *
3220
+         * @since 0.2.27
3221
+         *
3222
+         * @return bool
3223
+         */
3224
+        public static function is_divi_preview() {
3225
+            $result = false;
3226
+            if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
3227
+                $result = true;
3228
+            }
3229
+
3230
+            return $result;
3231
+        }
3232
+
3233
+        /**
3234
+         * Tests if the current output is inside a elementor preview.
3235
+         *
3236
+         *
3237
+         * @since 0.2.27
3238
+         *
3239
+         * @return bool
3240
+         */
3241
+        public static function is_elementor_preview() {
3242
+            $result = false;
3243
+            if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
3244
+                $result = true;
3245
+            }
3246
+
3247
+            return $result;
3248
+        }
3249
+
3250
+        /**
3251
+         * Tests if the current output is inside a Beaver builder preview.
3252
+         *
3253
+         * @since 0.2.27
3254
+         *
3255
+         * @return bool
3256
+         */
3257
+        public static function is_beaver_preview() {
3258
+            $result = false;
3259
+            if ( isset( $_REQUEST['fl_builder'] ) ) {
3260
+                $result = true;
3261
+            }
3262
+
3263
+            return $result;
3264
+        }
3265
+
3266
+        /**
3267
+         * Tests if the current output is inside a siteorigin builder preview.
3268
+         *
3269
+         * @since 0.2.27
3270
+         *
3271
+         * @return bool
3272
+         */
3273
+        public static function is_siteorigin_preview() {
3274
+            $result = false;
3275
+            if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
3276
+                $result = true;
3277
+            }
3278
+
3279
+            return $result;
3280
+        }
3281
+
3282
+        /**
3283
+         * Tests if the current output is inside a cornerstone builder preview.
3284
+         *
3285
+         * @since 0.2.27
3286
+         *
3287
+         * @return bool
3288
+         */
3289
+        public static function is_cornerstone_preview() {
3290
+            $result = false;
3291
+            if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
3292
+                $result = true;
3293
+            }
3294
+
3295
+            return $result;
3296
+        }
3297
+
3298
+        /**
3299
+         * Tests if the current output is inside a fusion builder preview.
3300
+         *
3301
+         * @return bool
3302
+         *@since 1.1.0
3303
+         */
3304
+        public static function is_fusion_preview() {
3305
+            $result = false;
3306
+            if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
3307
+                $result = true;
3308
+            }
3309
+
3310
+            return $result;
3311
+        }
3312
+
3313
+        /**
3314
+         * Tests if the current output is inside a Oxygen builder preview.
3315
+         *
3316
+         * @return bool
3317
+         *@since 1.0.18
3318
+         */
3319
+        public static function is_oxygen_preview() {
3320
+            $result = false;
3321
+            if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
3322
+                $result = true;
3323
+            }
3324
+
3325
+            return $result;
3326
+        }
3327
+
3328
+        /**
3329
+         * Check for Kallyas theme Zion builder preview.
3330
+         *
3331
+         * @since 0.2.27
3332
+         *
3333
+         * @return bool
3334
+         */
3335
+        public static function is_kallyas_zion_preview() {
3336
+            $result = false;
3337
+
3338
+            if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
3339
+                $result = true;
3340
+            }
3341
+
3342
+            return $result;
3343
+        }
3344
+
3345
+        /**
3346
+         * Check for Bricks theme builder preview.
3347
+         *
3348
+         * @since 0.2.27
3349
+         *
3350
+         * @return bool
3351
+         */
3352
+        public static function is_bricks_preview() {
3353
+            $result = false;
3354
+
3355
+            if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
3356
+                $result = true;
3357
+            }
3358
+
3359
+            return $result;
3360
+        }
3361
+
3362
+        /**
3363
+         * General function to check if we are in a preview situation.
3364
+         *
3365
+         * @since 0.2.27
3366
+         *
3367
+         * @return bool
3368
+         */
3369
+        public static function is_preview() {
3370
+            $preview = false;
3371
+
3372
+            if ( self::is_block_editor() ) {
3373
+                return true;
3374
+            }
3375
+
3376
+            if( self::is_block_content_call() ) {
3377
+                $preview = true;
3378
+            } elseif ( self::is_divi_preview() ) {
3379
+                $preview = true;
3380
+            } elseif ( self::is_elementor_preview() ) {
3381
+                $preview = true;
3382
+            } elseif ( self::is_beaver_preview() ) {
3383
+                $preview = true;
3384
+            } elseif ( self::is_siteorigin_preview() ) {
3385
+                $preview = true;
3386
+            } elseif ( self::is_cornerstone_preview() ) {
3387
+                $preview = true;
3388
+            } elseif ( self::is_fusion_preview() ) {
3389
+                $preview = true;
3390
+            } elseif ( self::is_oxygen_preview() ) {
3391
+                $preview = true;
3392
+            } elseif( self::is_kallyas_zion_preview() ) {
3393
+                $preview = true;
3394
+            } elseif( self::is_bricks_preview() ) {
3395
+                $preview = true;
3396
+            }
3397
+
3398
+            return $preview;
3399
+        }
3400
+    }
3401
+
3402
+    global $ayecode_ui_settings;
3403
+
3404
+    /**
3405
+     * Run the class if found.
3406
+     */
3407
+    $ayecode_ui_settings = AyeCode_UI_Settings::instance();
3408 3408
 }
3409 3409
\ No newline at end of file
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/wp-super-duper.php 1 patch
Indentation   +2674 added lines, -2674 removed lines patch added patch discarded remove patch
@@ -1,148 +1,148 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 if ( ! class_exists( 'WP_Super_Duper' ) ) {
7 7
 
8
-	define( 'SUPER_DUPER_VER', '1.2.26' );
9
-
10
-	/**
11
-	 * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress.
12
-	 *
13
-	 * Should not be called direct but extended instead.
14
-	 *
15
-	 * Class WP_Super_Duper
16
-	 * @since 1.0.16 change log moved to file change-log.txt - CHANGED
17
-	 * @ver 1.1.1
18
-	 */
19
-	class WP_Super_Duper extends WP_Widget {
20
-
21
-		public $version = SUPER_DUPER_VER;
22
-		public $font_awesome_icon_version = "5.11.2";
23
-		public $block_code;
24
-		public $options;
25
-		public $base_id;
26
-		public $settings_hash;
27
-		public $arguments = array();
28
-		public $instance = array();
29
-		private $class_name;
30
-
31
-		/**
32
-		 * The relative url to the current folder.
33
-		 *
34
-		 * @var string
35
-		 */
36
-		public $url = '';
37
-
38
-		/**
39
-		 * Take the array options and use them to build.
40
-		 */
41
-		public function __construct( $options ) {
42
-			global $sd_widgets;
43
-
44
-			$sd_widgets[ $options['base_id'] ] = array(
45
-				'name'       => $options['name'],
46
-				'class_name' => $options['class_name'],
47
-				'output_types' => !empty($options['output_types']) ? $options['output_types'] : array()
48
-			);
49
-			$this->base_id                     = $options['base_id'];
50
-			// lets filter the options before we do anything
51
-			$options       = apply_filters( "wp_super_duper_options", $options );
52
-			$options       = apply_filters( "wp_super_duper_options_{$this->base_id}", $options );
53
-			$options       = $this->add_name_from_key( $options );
54
-			$this->options = $options;
55
-
56
-			$this->base_id   = $options['base_id'];
57
-			$this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
58
-
59
-			// nested blocks can't work as a widget
60
-			if(!empty($this->options['nested-block'])){
61
-				if(empty($this->options['output_types'])){
62
-					$this->options['output_types'] = array('shortcode','block');
63
-				}elseif (($key = array_search('widget', $this->options['output_types'])) !== false) {
64
-					unset($this->options['output_types'][$key]);
65
-				}
66
-			}
8
+    define( 'SUPER_DUPER_VER', '1.2.26' );
9
+
10
+    /**
11
+     * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress.
12
+     *
13
+     * Should not be called direct but extended instead.
14
+     *
15
+     * Class WP_Super_Duper
16
+     * @since 1.0.16 change log moved to file change-log.txt - CHANGED
17
+     * @ver 1.1.1
18
+     */
19
+    class WP_Super_Duper extends WP_Widget {
20
+
21
+        public $version = SUPER_DUPER_VER;
22
+        public $font_awesome_icon_version = "5.11.2";
23
+        public $block_code;
24
+        public $options;
25
+        public $base_id;
26
+        public $settings_hash;
27
+        public $arguments = array();
28
+        public $instance = array();
29
+        private $class_name;
67 30
 
68
-			// init parent
69
-			if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
70
-				parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] );
71
-			}
31
+        /**
32
+         * The relative url to the current folder.
33
+         *
34
+         * @var string
35
+         */
36
+        public $url = '';
37
+
38
+        /**
39
+         * Take the array options and use them to build.
40
+         */
41
+        public function __construct( $options ) {
42
+            global $sd_widgets;
43
+
44
+            $sd_widgets[ $options['base_id'] ] = array(
45
+                'name'       => $options['name'],
46
+                'class_name' => $options['class_name'],
47
+                'output_types' => !empty($options['output_types']) ? $options['output_types'] : array()
48
+            );
49
+            $this->base_id                     = $options['base_id'];
50
+            // lets filter the options before we do anything
51
+            $options       = apply_filters( "wp_super_duper_options", $options );
52
+            $options       = apply_filters( "wp_super_duper_options_{$this->base_id}", $options );
53
+            $options       = $this->add_name_from_key( $options );
54
+            $this->options = $options;
55
+
56
+            $this->base_id   = $options['base_id'];
57
+            $this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
58
+
59
+            // nested blocks can't work as a widget
60
+            if(!empty($this->options['nested-block'])){
61
+                if(empty($this->options['output_types'])){
62
+                    $this->options['output_types'] = array('shortcode','block');
63
+                }elseif (($key = array_search('widget', $this->options['output_types'])) !== false) {
64
+                    unset($this->options['output_types'][$key]);
65
+                }
66
+            }
72 67
 
68
+            // init parent
69
+            if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
70
+                parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] );
71
+            }
73 72
 
74
-			if ( isset( $options['class_name'] ) ) {
75
-				// register widget
76
-				$this->class_name = $options['class_name'];
77 73
 
78
-				// register shortcode, this needs to be done even for blocks and widgets
79
-				$this->register_shortcode();
74
+            if ( isset( $options['class_name'] ) ) {
75
+                // register widget
76
+                $this->class_name = $options['class_name'];
80 77
 
78
+                // register shortcode, this needs to be done even for blocks and widgets
79
+                $this->register_shortcode();
81 80
 
82
-				// Fusion Builder (avada) support
83
-				if ( function_exists( 'fusion_builder_map' ) ) {
84
-					add_action( 'init', array( $this, 'register_fusion_element' ) );
85
-				}
81
+
82
+                // Fusion Builder (avada) support
83
+                if ( function_exists( 'fusion_builder_map' ) ) {
84
+                    add_action( 'init', array( $this, 'register_fusion_element' ) );
85
+                }
86 86
 
87 87
                 // maybe load the Bricks transformer class
88 88
                 if( class_exists('\Bricks\Elements', false) ){
89
-					add_action( 'init', array( $this, 'load_bricks_element_class' ) );
89
+                    add_action( 'init', array( $this, 'load_bricks_element_class' ) );
90 90
                 }
91 91
 
92
-				// register block
93
-				if(empty($this->options['output_types']) || in_array('block',$this->options['output_types'])){
94
-					add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) );
95
-				}
96
-			}
92
+                // register block
93
+                if(empty($this->options['output_types']) || in_array('block',$this->options['output_types'])){
94
+                    add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) );
95
+                }
96
+            }
97 97
 
98
-			// add the CSS and JS we need ONCE
99
-			global $sd_widget_scripts;
98
+            // add the CSS and JS we need ONCE
99
+            global $sd_widget_scripts;
100 100
 
101
-			if ( ! $sd_widget_scripts ) {
102
-				wp_add_inline_script( 'admin-widgets', $this->widget_js() );
103
-				wp_add_inline_script( 'customize-controls', $this->widget_js() );
104
-				wp_add_inline_style( 'widgets', $this->widget_css() );
101
+            if ( ! $sd_widget_scripts ) {
102
+                wp_add_inline_script( 'admin-widgets', $this->widget_js() );
103
+                wp_add_inline_script( 'customize-controls', $this->widget_js() );
104
+                wp_add_inline_style( 'widgets', $this->widget_css() );
105 105
 
106
-				// maybe add elementor editor styles
107
-				add_action( 'elementor/editor/after_enqueue_styles', array( $this, 'elementor_editor_styles' ) );
106
+                // maybe add elementor editor styles
107
+                add_action( 'elementor/editor/after_enqueue_styles', array( $this, 'elementor_editor_styles' ) );
108 108
 
109
-				$sd_widget_scripts = true;
109
+                $sd_widget_scripts = true;
110 110
 
111
-				// add shortcode insert button once
112
-				add_action( 'media_buttons', array( $this, 'wp_media_buttons' ), 1 );
113
-				add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) );
114
-				// generatepress theme sections compatibility
115
-				if ( function_exists( 'generate_sections_sections_metabox' ) ) {
116
-					add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) );
117
-				}
111
+                // add shortcode insert button once
112
+                add_action( 'media_buttons', array( $this, 'wp_media_buttons' ), 1 );
113
+                add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) );
114
+                // generatepress theme sections compatibility
115
+                if ( function_exists( 'generate_sections_sections_metabox' ) ) {
116
+                    add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) );
117
+                }
118 118
 
119
-				/* Load script on Divi theme builder page */
120
-				if ( ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) || ( function_exists( 'et_builder_d5_enabled' ) && et_builder_d5_enabled() && isset( $_GET['et_fb'] ) && '1' === $_GET['et_fb'] && et_pb_is_allowed( 'use_visual_builder' ) ) ) {
121
-					add_thickbox();
122
-					add_action( 'admin_footer', array( $this, 'shortcode_insert_button_script' ) );
123
-				}
119
+                /* Load script on Divi theme builder page */
120
+                if ( ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) || ( function_exists( 'et_builder_d5_enabled' ) && et_builder_d5_enabled() && isset( $_GET['et_fb'] ) && '1' === $_GET['et_fb'] && et_pb_is_allowed( 'use_visual_builder' ) ) ) {
121
+                    add_thickbox();
122
+                    add_action( 'admin_footer', array( $this, 'shortcode_insert_button_script' ) );
123
+                }
124 124
 
125
-				if ( $this->is_preview() ) {
126
-					add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
127
-					// this makes the insert button work for elementor
128
-					add_action( 'elementor/editor/after_enqueue_scripts', array(
129
-						$this,
130
-						'shortcode_insert_button_script'
131
-					) ); // for elementor
132
-				}
133
-				// this makes the insert button work for cornerstone
134
-				add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_cornerstone_builder' ) );
125
+                if ( $this->is_preview() ) {
126
+                    add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
127
+                    // this makes the insert button work for elementor
128
+                    add_action( 'elementor/editor/after_enqueue_scripts', array(
129
+                        $this,
130
+                        'shortcode_insert_button_script'
131
+                    ) ); // for elementor
132
+                }
133
+                // this makes the insert button work for cornerstone
134
+                add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_cornerstone_builder' ) );
135 135
 
136
-				add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
137
-				add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
136
+                add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
137
+                add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
138 138
 
139
-				// add generator text to head
140
-				add_action( 'admin_head', array( $this, 'generator' ), 99 );
141
-				add_action( 'wp_head', array( $this, 'generator' ), 99 );
142
-			}
139
+                // add generator text to head
140
+                add_action( 'admin_head', array( $this, 'generator' ), 99 );
141
+                add_action( 'wp_head', array( $this, 'generator' ), 99 );
142
+            }
143 143
 
144
-			do_action( 'wp_super_duper_widget_init', $options, $this );
145
-		}
144
+            do_action( 'wp_super_duper_widget_init', $options, $this );
145
+        }
146 146
 
147 147
         /**
148 148
          * Load the Bricks conversion class if we are running Bricks.
@@ -152,163 +152,163 @@  discard block
 block discarded – undo
152 152
                     include_once __DIR__ . '/includes/class-super-duper-bricks-element.php';
153 153
         }
154 154
 
155
-		/**
156
-		 * The register widget function
157
-		 * @return void
158
-		 */
159
-		public function _register() {
160
-			if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
161
-				parent::_register();
162
-			}
163
-		}
164
-
165
-		/**
166
-		 * Add our widget CSS to elementor editor.
167
-		 */
168
-		public function elementor_editor_styles() {
169
-			wp_add_inline_style( 'elementor-editor', $this->widget_css( false ) );
170
-		}
171
-
172
-		public function register_fusion_element() {
173
-
174
-			$options = $this->options;
175
-
176
-			if ( $this->base_id ) {
177
-
178
-				$params = $this->get_fusion_params();
179
-
180
-				$args = array(
181
-					'name'            => $options['name'],
182
-					'shortcode'       => $this->base_id,
183
-					'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
184
-					'allow_generator' => true,
185
-				);
186
-
187
-				if ( ! empty( $params ) ) {
188
-					$args['params'] = $params;
189
-				}
190
-
191
-				fusion_builder_map( $args );
192
-			}
155
+        /**
156
+         * The register widget function
157
+         * @return void
158
+         */
159
+        public function _register() {
160
+            if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
161
+                parent::_register();
162
+            }
163
+        }
193 164
 
194
-		}
165
+        /**
166
+         * Add our widget CSS to elementor editor.
167
+         */
168
+        public function elementor_editor_styles() {
169
+            wp_add_inline_style( 'elementor-editor', $this->widget_css( false ) );
170
+        }
195 171
 
196
-		public function get_fusion_params() {
197
-			$params    = array();
198
-			$arguments = $this->get_arguments();
199
-
200
-			if ( ! empty( $arguments ) ) {
201
-				foreach ( $arguments as $key => $val ) {
202
-					$param = array();
203
-					// type
204
-					$param['type'] = str_replace(
205
-						array(
206
-							"text",
207
-							"number",
208
-							"email",
209
-							"color",
210
-							"checkbox"
211
-						),
212
-						array(
213
-							"textfield",
214
-							"textfield",
215
-							"textfield",
216
-							"colorpicker",
217
-							"select",
172
+        public function register_fusion_element() {
218 173
 
219
-						),
220
-						$val['type'] );
174
+            $options = $this->options;
221 175
 
222
-					// multiselect
223
-					if ( $val['type'] == 'multiselect' || ( ( $param['type'] == 'select' || $val['type'] == 'select' ) && ! empty( $val['multiple'] ) ) ) {
224
-						$param['type']     = 'multiple_select';
225
-						$param['multiple'] = true;
226
-					}
176
+            if ( $this->base_id ) {
227 177
 
228
-					// heading
229
-					$param['heading'] = isset( $val['title'] ) ? $val['title'] : '';
178
+                $params = $this->get_fusion_params();
230 179
 
231
-					// description
232
-					$param['description'] = isset( $val['desc'] ) ? $val['desc'] : '';
180
+                $args = array(
181
+                    'name'            => $options['name'],
182
+                    'shortcode'       => $this->base_id,
183
+                    'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
184
+                    'allow_generator' => true,
185
+                );
233 186
 
234
-					// param_name
235
-					$param['param_name'] = $key;
187
+                if ( ! empty( $params ) ) {
188
+                    $args['params'] = $params;
189
+                }
236 190
 
237
-					// Default
238
-					$param['default'] = isset( $val['default'] ) ? $val['default'] : '';
191
+                fusion_builder_map( $args );
192
+            }
239 193
 
240
-					// Group
241
-					if ( isset( $val['group'] ) ) {
242
-						$param['group'] = $val['group'];
243
-					}
194
+        }
244 195
 
245
-					// value
246
-					if ( $val['type'] == 'checkbox' ) {
247
-						if ( isset( $val['default'] ) && $val['default'] == '0' ) {
248
-							unset( $param['default'] );
249
-						}
250
-						$param['value'] = array( '0' => __( "No", 'ayecode-connect' ), '1' => __( "Yes", 'ayecode-connect' ) );
251
-					} elseif ( $param['type'] == 'select' || $param['type'] == 'multiple_select' ) {
252
-						$param['value'] = isset( $val['options'] ) ? $val['options'] : array();
253
-					} else {
254
-						$param['value'] = isset( $val['default'] ) ? $val['default'] : '';
255
-					}
196
+        public function get_fusion_params() {
197
+            $params    = array();
198
+            $arguments = $this->get_arguments();
199
+
200
+            if ( ! empty( $arguments ) ) {
201
+                foreach ( $arguments as $key => $val ) {
202
+                    $param = array();
203
+                    // type
204
+                    $param['type'] = str_replace(
205
+                        array(
206
+                            "text",
207
+                            "number",
208
+                            "email",
209
+                            "color",
210
+                            "checkbox"
211
+                        ),
212
+                        array(
213
+                            "textfield",
214
+                            "textfield",
215
+                            "textfield",
216
+                            "colorpicker",
217
+                            "select",
218
+
219
+                        ),
220
+                        $val['type'] );
221
+
222
+                    // multiselect
223
+                    if ( $val['type'] == 'multiselect' || ( ( $param['type'] == 'select' || $val['type'] == 'select' ) && ! empty( $val['multiple'] ) ) ) {
224
+                        $param['type']     = 'multiple_select';
225
+                        $param['multiple'] = true;
226
+                    }
227
+
228
+                    // heading
229
+                    $param['heading'] = isset( $val['title'] ) ? $val['title'] : '';
230
+
231
+                    // description
232
+                    $param['description'] = isset( $val['desc'] ) ? $val['desc'] : '';
233
+
234
+                    // param_name
235
+                    $param['param_name'] = $key;
236
+
237
+                    // Default
238
+                    $param['default'] = isset( $val['default'] ) ? $val['default'] : '';
239
+
240
+                    // Group
241
+                    if ( isset( $val['group'] ) ) {
242
+                        $param['group'] = $val['group'];
243
+                    }
244
+
245
+                    // value
246
+                    if ( $val['type'] == 'checkbox' ) {
247
+                        if ( isset( $val['default'] ) && $val['default'] == '0' ) {
248
+                            unset( $param['default'] );
249
+                        }
250
+                        $param['value'] = array( '0' => __( "No", 'ayecode-connect' ), '1' => __( "Yes", 'ayecode-connect' ) );
251
+                    } elseif ( $param['type'] == 'select' || $param['type'] == 'multiple_select' ) {
252
+                        $param['value'] = isset( $val['options'] ) ? $val['options'] : array();
253
+                    } else {
254
+                        $param['value'] = isset( $val['default'] ) ? $val['default'] : '';
255
+                    }
256
+
257
+                    // setup the param
258
+                    $params[] = $param;
256 259
 
257
-					// setup the param
258
-					$params[] = $param;
260
+                }
261
+            }
259 262
 
260
-				}
261
-			}
262 263
 
264
+            return $params;
265
+        }
263 266
 
264
-			return $params;
265
-		}
267
+        /**
268
+         * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
269
+         */
270
+        public static function maybe_cornerstone_builder() {
271
+            if ( did_action( 'cornerstone_before_boot_app' ) ) {
272
+                self::shortcode_insert_button_script();
273
+            }
274
+        }
266 275
 
267
-		/**
268
-		 * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
269
-		 */
270
-		public static function maybe_cornerstone_builder() {
271
-			if ( did_action( 'cornerstone_before_boot_app' ) ) {
272
-				self::shortcode_insert_button_script();
273
-			}
274
-		}
276
+        /**
277
+         * A function to ge the shortcode builder picker html.
278
+         *
279
+         * @param string $editor_id
280
+         *
281
+         * @return string
282
+         */
283
+        public static function get_picker( $editor_id = '' ) {
275 284
 
276
-		/**
277
-		 * A function to ge the shortcode builder picker html.
278
-		 *
279
-		 * @param string $editor_id
280
-		 *
281
-		 * @return string
282
-		 */
283
-		public static function get_picker( $editor_id = '' ) {
284
-
285
-			ob_start();
286
-			if ( isset( $_POST['editor_id'] ) ) {
287
-				$editor_id = esc_attr( $_POST['editor_id'] );
288
-			} elseif ( isset( $_REQUEST['et_fb'] ) ) {
289
-				$editor_id = 'main_content_content_vb_tiny_mce';
290
-			}
285
+            ob_start();
286
+            if ( isset( $_POST['editor_id'] ) ) {
287
+                $editor_id = esc_attr( $_POST['editor_id'] );
288
+            } elseif ( isset( $_REQUEST['et_fb'] ) ) {
289
+                $editor_id = 'main_content_content_vb_tiny_mce';
290
+            }
291 291
 
292
-			global $sd_widgets;
292
+            global $sd_widgets;
293 293
 
294 294
 //			print_r($sd_widgets);exit;
295
-			?>
295
+            ?>
296 296
 
297 297
 			<div class="sd-shortcode-left-wrap">
298 298
 				<?php
299
-				ksort( $sd_widgets );
300
-				//				print_r($sd_widgets);exit;
301
-				if ( ! empty( $sd_widgets ) ) {
302
-					echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
303
-					echo "<option>" . __( 'Select shortcode', 'ayecode-connect' ) . "</option>";
304
-					foreach ( $sd_widgets as $shortcode => $class ) {
305
-						if(!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])){ continue; }
306
-						echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
307
-					}
308
-					echo "</select>";
299
+                ksort( $sd_widgets );
300
+                //				print_r($sd_widgets);exit;
301
+                if ( ! empty( $sd_widgets ) ) {
302
+                    echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
303
+                    echo "<option>" . __( 'Select shortcode', 'ayecode-connect' ) . "</option>";
304
+                    foreach ( $sd_widgets as $shortcode => $class ) {
305
+                        if(!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])){ continue; }
306
+                        echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
307
+                    }
308
+                    echo "</select>";
309 309
 
310
-				}
311
-				?>
310
+                }
311
+                ?>
312 312
 				<div class="sd-shortcode-settings"></div>
313 313
 			</div>
314 314
 			<div class="sd-shortcode-right-wrap">
@@ -321,147 +321,147 @@  discard block
 block discarded – undo
321 321
 				</div>
322 322
 			</div>
323 323
 			<?php
324
-			$html = ob_get_clean();
325
-
326
-			if ( wp_doing_ajax() ) {
327
-				echo $html;
328
-				$should_die = true;
329
-
330
-				// some builder get the editor via ajax so we should not die on those occasions
331
-				$dont_die = array(
332
-					'parent_tag',// WP Bakery
333
-					'avia_request' // enfold
334
-				);
324
+            $html = ob_get_clean();
325
+
326
+            if ( wp_doing_ajax() ) {
327
+                echo $html;
328
+                $should_die = true;
329
+
330
+                // some builder get the editor via ajax so we should not die on those occasions
331
+                $dont_die = array(
332
+                    'parent_tag',// WP Bakery
333
+                    'avia_request' // enfold
334
+                );
335
+
336
+                foreach ( $dont_die as $request ) {
337
+                    if ( isset( $_REQUEST[ $request ] ) ) {
338
+                        $should_die = false;
339
+                    }
340
+                }
335 341
 
336
-				foreach ( $dont_die as $request ) {
337
-					if ( isset( $_REQUEST[ $request ] ) ) {
338
-						$should_die = false;
339
-					}
340
-				}
342
+                if ( $should_die ) {
343
+                    wp_die();
344
+                }
345
+            } else {
346
+                return $html;
347
+            }
341 348
 
342
-				if ( $should_die ) {
343
-					wp_die();
344
-				}
345
-			} else {
346
-				return $html;
347
-			}
349
+            return '';
350
+        }
348 351
 
349
-			return '';
350
-		}
352
+        /**
353
+         * Output the version in the header.
354
+         */
355
+        public function generator() {
356
+            $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
357
+            $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
358
+
359
+            // Find source plugin/theme of SD
360
+            $source = array();
361
+            if ( strpos( $file, $plugins_dir ) !== false ) {
362
+                $source = explode( "/", plugin_basename( $file ) );
363
+            } else if ( function_exists( 'get_theme_root' ) ) {
364
+                $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
365
+
366
+                if ( strpos( $file, $themes_dir ) !== false ) {
367
+                    $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
368
+                }
369
+            }
351 370
 
352
-		/**
353
-		 * Output the version in the header.
354
-		 */
355
-		public function generator() {
356
-			$file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
357
-			$plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
358
-
359
-			// Find source plugin/theme of SD
360
-			$source = array();
361
-			if ( strpos( $file, $plugins_dir ) !== false ) {
362
-				$source = explode( "/", plugin_basename( $file ) );
363
-			} else if ( function_exists( 'get_theme_root' ) ) {
364
-				$themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
365
-
366
-				if ( strpos( $file, $themes_dir ) !== false ) {
367
-					$source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
368
-				}
369
-			}
371
+            echo '<meta name="generator" content="WP Super Duper v' . esc_attr( $this->version ) . '"' . ( ! empty( $source[0] ) ? ' data-sd-source="' . esc_attr( $source[0] ) . '"' : '' ) . ' />';
372
+        }
370 373
 
371
-			echo '<meta name="generator" content="WP Super Duper v' . esc_attr( $this->version ) . '"' . ( ! empty( $source[0] ) ? ' data-sd-source="' . esc_attr( $source[0] ) . '"' : '' ) . ' />';
372
-		}
374
+        /**
375
+         * Get widget settings.
376
+         *
377
+         * @since 1.0.0
378
+         */
379
+        public static function get_widget_settings() {
380
+            global $sd_widgets;
373 381
 
374
-		/**
375
-		 * Get widget settings.
376
-		 *
377
-		 * @since 1.0.0
378
-		 */
379
-		public static function get_widget_settings() {
380
-			global $sd_widgets;
381
-
382
-			$shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
383
-			if ( ! $shortcode ) {
384
-				wp_die();
385
-			}
386
-			$widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
387
-			if ( ! $widget_args ) {
388
-				wp_die();
389
-			}
390
-			$class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
391
-			if ( ! $class_name ) {
392
-				wp_die();
393
-			}
382
+            $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
383
+            if ( ! $shortcode ) {
384
+                wp_die();
385
+            }
386
+            $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
387
+            if ( ! $widget_args ) {
388
+                wp_die();
389
+            }
390
+            $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
391
+            if ( ! $class_name ) {
392
+                wp_die();
393
+            }
394 394
 
395
-			// invoke an instance method
396
-			$widget = new $class_name;
395
+            // invoke an instance method
396
+            $widget = new $class_name;
397 397
 
398
-			ob_start();
399
-			$widget->form( array() );
400
-			$form = ob_get_clean();
401
-			echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
402
-			echo "<style>" . $widget->widget_css() . "</style>";
403
-			echo "<script>" . $widget->widget_js() . "</script>";
404
-			?>
398
+            ob_start();
399
+            $widget->form( array() );
400
+            $form = ob_get_clean();
401
+            echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
402
+            echo "<style>" . $widget->widget_css() . "</style>";
403
+            echo "<script>" . $widget->widget_js() . "</script>";
404
+            ?>
405 405
 			<?php
406
-			wp_die();
407
-		}
408
-
409
-		/**
410
-		 * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
411
-		 *
412
-		 * @param string $editor_id Optional. Shortcode editor id. Default null.
413
-		 * @param string $insert_shortcode_function Optional. Insert shortcode function. Default null.
414
-		 *
415
-		 *@since 1.0.0
416
-		 *
417
-		 */
418
-		public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
419
-			global $sd_widgets, $shortcode_insert_button_once;
420
-			if ( $shortcode_insert_button_once ) {
421
-				return;
422
-			}
423
-			add_thickbox();
406
+            wp_die();
407
+        }
424 408
 
425
-			/**
426
-			 * Cornerstone makes us play dirty tricks :/
427
-			 * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed.
428
-			 */
429
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
430
-				echo '<span id="insert-media-button">';
431
-			}
409
+        /**
410
+         * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
411
+         *
412
+         * @param string $editor_id Optional. Shortcode editor id. Default null.
413
+         * @param string $insert_shortcode_function Optional. Insert shortcode function. Default null.
414
+         *
415
+         *@since 1.0.0
416
+         *
417
+         */
418
+        public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
419
+            global $sd_widgets, $shortcode_insert_button_once;
420
+            if ( $shortcode_insert_button_once ) {
421
+                return;
422
+            }
423
+            add_thickbox();
424
+
425
+            /**
426
+             * Cornerstone makes us play dirty tricks :/
427
+             * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed.
428
+             */
429
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
430
+                echo '<span id="insert-media-button">';
431
+            }
432 432
 
433
-			echo self::shortcode_button( 'this', 'true' );
433
+            echo self::shortcode_button( 'this', 'true' );
434 434
 
435
-			// see opening note
436
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
437
-				echo '</span>'; // end #insert-media-button
438
-			}
435
+            // see opening note
436
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
437
+                echo '</span>'; // end #insert-media-button
438
+            }
439 439
 
440
-			// Add separate script for generatepress theme sections
441
-			if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
442
-			} else {
443
-				self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
444
-			}
440
+            // Add separate script for generatepress theme sections
441
+            if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
442
+            } else {
443
+                self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
444
+            }
445 445
 
446
-			$shortcode_insert_button_once = true;
447
-		}
446
+            $shortcode_insert_button_once = true;
447
+        }
448 448
 
449
-		/**
450
-		 * Gets the shortcode insert button html.
451
-		 *
452
-		 * @param string $id
453
-		 * @param string $search_for_id
454
-		 *
455
-		 * @return mixed
456
-		 */
457
-		public static function shortcode_button( $id = '', $search_for_id = '' ) {
458
-			ob_start();
459
-			?>
449
+        /**
450
+         * Gets the shortcode insert button html.
451
+         *
452
+         * @param string $id
453
+         * @param string $search_for_id
454
+         *
455
+         * @return mixed
456
+         */
457
+        public static function shortcode_button( $id = '', $search_for_id = '' ) {
458
+            ob_start();
459
+            ?>
460 460
 			<span class="sd-lable-shortcode-inserter">
461 461
 				<a onclick="sd_ajax_get_picker(<?php echo $id;
462
-				if ( $search_for_id ) {
463
-					echo "," . $search_for_id;
464
-				} ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
462
+                if ( $search_for_id ) {
463
+                    echo "," . $search_for_id;
464
+                } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
465 465
 				   class="thickbox button super-duper-content-open" title="Add Shortcode">
466 466
 					<span style="vertical-align: middle;line-height: 18px;font-size: 20px;"
467 467
 						  class="dashicons dashicons-screenoptions"></span>
@@ -472,21 +472,21 @@  discard block
 block discarded – undo
472 472
 			</span>
473 473
 
474 474
 			<?php
475
-			$html = ob_get_clean();
475
+            $html = ob_get_clean();
476 476
 
477
-			// remove line breaks so we can use it in js
478
-			return preg_replace( "/\r|\n/", "", trim( $html ) );
479
-		}
477
+            // remove line breaks so we can use it in js
478
+            return preg_replace( "/\r|\n/", "", trim( $html ) );
479
+        }
480 480
 
481
-		/**
482
-		 * Makes SD work with the siteOrigin page builder.
483
-		 *
484
-		 * @return mixed
485
-		 *@since 1.0.6
486
-		 */
487
-		public static function siteorigin_js() {
488
-			ob_start();
489
-			?>
481
+        /**
482
+         * Makes SD work with the siteOrigin page builder.
483
+         *
484
+         * @return mixed
485
+         *@since 1.0.6
486
+         */
487
+        public static function siteorigin_js() {
488
+            ob_start();
489
+            ?>
490 490
 			<script>
491 491
 				/**
492 492
 				 * Check a form to see what items should be shown or hidden.
@@ -560,29 +560,29 @@  discard block
 block discarded – undo
560 560
 				});
561 561
 			</script>
562 562
 			<?php
563
-			$output = ob_get_clean();
563
+            $output = ob_get_clean();
564 564
 
565
-			/*
565
+            /*
566 566
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
567 567
 			 */
568 568
 
569
-			return str_replace( array(
570
-				'<script>',
571
-				'</script>'
572
-			), '', $output );
573
-		}
569
+            return str_replace( array(
570
+                '<script>',
571
+                '</script>'
572
+            ), '', $output );
573
+        }
574 574
 
575
-		/**
576
-		 * Output the JS and CSS for the shortcode insert button.
577
-		 *
578
-		 * @param string $editor_id
579
-		 * @param string $insert_shortcode_function
580
-		 *
581
-		 *@since 1.0.6
582
-		 *
583
-		 */
584
-		public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
585
-			?>
575
+        /**
576
+         * Output the JS and CSS for the shortcode insert button.
577
+         *
578
+         * @param string $editor_id
579
+         * @param string $insert_shortcode_function
580
+         *
581
+         *@since 1.0.6
582
+         *
583
+         */
584
+        public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
585
+            ?>
586 586
 			<style>
587 587
 				.sd-shortcode-left-wrap {
588 588
 					float: left;
@@ -710,35 +710,35 @@  discard block
 block discarded – undo
710 710
 				<?php } ?>
711 711
 			</style>
712 712
 			<?php
713
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
714
-				echo "<script>" . self::siteorigin_js() . "</script>";
715
-			}
716
-			?>
713
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
714
+                echo "<script>" . self::siteorigin_js() . "</script>";
715
+            }
716
+            ?>
717 717
 			<script>
718 718
 				<?php
719
-				if(! empty( $insert_shortcode_function )){
720
-					echo $insert_shortcode_function;
721
-				}else{
722
-
723
-				/**
724
-				 * Function for super duper insert shortcode.
725
-				 *
726
-				 * @since 1.0.0
727
-				 */
728
-				?>
719
+                if(! empty( $insert_shortcode_function )){
720
+                    echo $insert_shortcode_function;
721
+                }else{
722
+
723
+                /**
724
+                 * Function for super duper insert shortcode.
725
+                 *
726
+                 * @since 1.0.0
727
+                 */
728
+                ?>
729 729
 				function sd_insert_shortcode($editor_id) {
730 730
 					$shortcode = jQuery('#TB_ajaxContent #sd-shortcode-output').val();
731 731
 					if ($shortcode) {
732 732
 						if (!$editor_id) {
733 733
 							<?php
734
-							if ( isset( $_REQUEST['et_fb'] ) ) {
735
-								echo '$editor_id = "#main_content_content_vb_tiny_mce";';
736
-							} elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
737
-								echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
738
-							} else {
739
-								echo '$editor_id = "#wp-content-editor-container textarea";';
740
-							}
741
-							?>
734
+                            if ( isset( $_REQUEST['et_fb'] ) ) {
735
+                                echo '$editor_id = "#main_content_content_vb_tiny_mce";';
736
+                            } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
737
+                                echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
738
+                            } else {
739
+                                echo '$editor_id = "#wp-content-editor-container textarea";';
740
+                            }
741
+                            ?>
742 742
 						} else {
743 743
 							$editor_id = '#' + $editor_id;
744 744
 						}
@@ -1069,18 +1069,18 @@  discard block
 block discarded – undo
1069 1069
 				}
1070 1070
 			</script>
1071 1071
 			<?php
1072
-		}
1072
+        }
1073 1073
 
1074
-		/**
1075
-		 * Gets some CSS for the widgets screen.
1076
-		 *
1077
-		 * @param bool $advanced If we should include advanced CSS.
1078
-		 *
1079
-		 * @return mixed
1080
-		 */
1081
-		public function widget_css( $advanced = true ) {
1082
-			ob_start();
1083
-			?>
1074
+        /**
1075
+         * Gets some CSS for the widgets screen.
1076
+         *
1077
+         * @param bool $advanced If we should include advanced CSS.
1078
+         *
1079
+         * @return mixed
1080
+         */
1081
+        public function widget_css( $advanced = true ) {
1082
+            ob_start();
1083
+            ?>
1084 1084
 			<style>
1085 1085
 				<?php if( $advanced ){ ?>
1086 1086
 				.sd-advanced-setting {
@@ -1120,26 +1120,26 @@  discard block
 block discarded – undo
1120 1120
 				.elementor-control .sd-argument select[multiple] option{padding:3px}
1121 1121
 			</style>
1122 1122
 			<?php
1123
-			$output = ob_get_clean();
1123
+            $output = ob_get_clean();
1124 1124
 
1125
-			/*
1125
+            /*
1126 1126
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1127 1127
 			 */
1128 1128
 
1129
-			return str_replace( array(
1130
-				'<style>',
1131
-				'</style>'
1132
-			), '', $output );
1133
-		}
1129
+            return str_replace( array(
1130
+                '<style>',
1131
+                '</style>'
1132
+            ), '', $output );
1133
+        }
1134 1134
 
1135
-		/**
1136
-		 * Gets some JS for the widgets screen.
1137
-		 *
1138
-		 * @return mixed
1139
-		 */
1140
-		public function widget_js() {
1141
-			ob_start();
1142
-			?>
1135
+        /**
1136
+         * Gets some JS for the widgets screen.
1137
+         *
1138
+         * @return mixed
1139
+         */
1140
+        public function widget_js() {
1141
+            ob_start();
1142
+            ?>
1143 1143
 			<script>
1144 1144
 
1145 1145
 				/**
@@ -1290,517 +1290,517 @@  discard block
 block discarded – undo
1290 1290
 				<?php do_action( 'wp_super_duper_widget_js', $this ); ?>
1291 1291
 			</script>
1292 1292
 			<?php
1293
-			$output = ob_get_clean();
1293
+            $output = ob_get_clean();
1294 1294
 
1295
-			/*
1295
+            /*
1296 1296
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1297 1297
 			 */
1298 1298
 
1299
-			return str_replace( array(
1300
-				'<script>',
1301
-				'</script>'
1302
-			), '', $output );
1303
-		}
1299
+            return str_replace( array(
1300
+                '<script>',
1301
+                '</script>'
1302
+            ), '', $output );
1303
+        }
1304 1304
 
1305 1305
 
1306
-		/**
1307
-		 * Set the name from the argument key.
1308
-		 *
1309
-		 * @param $options
1310
-		 *
1311
-		 * @return mixed
1312
-		 */
1313
-		private function add_name_from_key( $options, $arguments = false ) {
1314
-			if ( ! empty( $options['arguments'] ) ) {
1315
-				foreach ( $options['arguments'] as $key => $val ) {
1316
-					$options['arguments'][ $key ]['name'] = $key;
1317
-				}
1318
-			} elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1319
-				foreach ( $options as $key => $val ) {
1320
-					$options[ $key ]['name'] = $key;
1321
-				}
1322
-			}
1306
+        /**
1307
+         * Set the name from the argument key.
1308
+         *
1309
+         * @param $options
1310
+         *
1311
+         * @return mixed
1312
+         */
1313
+        private function add_name_from_key( $options, $arguments = false ) {
1314
+            if ( ! empty( $options['arguments'] ) ) {
1315
+                foreach ( $options['arguments'] as $key => $val ) {
1316
+                    $options['arguments'][ $key ]['name'] = $key;
1317
+                }
1318
+            } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1319
+                foreach ( $options as $key => $val ) {
1320
+                    $options[ $key ]['name'] = $key;
1321
+                }
1322
+            }
1323 1323
 
1324
-			return $options;
1325
-		}
1324
+            return $options;
1325
+        }
1326 1326
 
1327
-		/**
1328
-		 * Register the parent shortcode.
1329
-		 *
1330
-		 * @since 1.0.0
1331
-		 */
1332
-		public function register_shortcode() {
1333
-			add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1334
-			add_action( 'wp_ajax_super_duper_output_shortcode', array( $this, 'render_shortcode' ) );
1335
-		}
1327
+        /**
1328
+         * Register the parent shortcode.
1329
+         *
1330
+         * @since 1.0.0
1331
+         */
1332
+        public function register_shortcode() {
1333
+            add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1334
+            add_action( 'wp_ajax_super_duper_output_shortcode', array( $this, 'render_shortcode' ) );
1335
+        }
1336 1336
 
1337
-		/**
1338
-		 * Render the shortcode via ajax so we can return it to Gutenberg.
1339
-		 *
1340
-		 * @since 1.0.0
1341
-		 */
1342
-		public function render_shortcode() {
1343
-			check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1344
-			if ( ! current_user_can( 'manage_options' ) ) {
1345
-				wp_die();
1346
-			}
1337
+        /**
1338
+         * Render the shortcode via ajax so we can return it to Gutenberg.
1339
+         *
1340
+         * @since 1.0.0
1341
+         */
1342
+        public function render_shortcode() {
1343
+            check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1344
+            if ( ! current_user_can( 'manage_options' ) ) {
1345
+                wp_die();
1346
+            }
1347 1347
 
1348
-			// we might need the $post value here so lets set it.
1349
-			if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1350
-				$post_obj = get_post( absint( $_POST['post_id'] ) );
1351
-				if ( ! empty( $post_obj ) && empty( $post ) ) {
1352
-					global $post;
1353
-					$post = $post_obj;
1354
-				}
1355
-			}
1348
+            // we might need the $post value here so lets set it.
1349
+            if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1350
+                $post_obj = get_post( absint( $_POST['post_id'] ) );
1351
+                if ( ! empty( $post_obj ) && empty( $post ) ) {
1352
+                    global $post;
1353
+                    $post = $post_obj;
1354
+                }
1355
+            }
1356 1356
 
1357
-			if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1358
-				$is_preview = $this->is_preview();
1359
-				$shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1360
-				$attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1361
-				$attributes       = '';
1362
-				if ( ! empty( $attributes_array ) ) {
1363
-					foreach ( $attributes_array as $key => $value ) {
1364
-						if ( is_array( $value ) ) {
1365
-							$value = implode( ",", $value );
1366
-						}
1357
+            if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1358
+                $is_preview = $this->is_preview();
1359
+                $shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1360
+                $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1361
+                $attributes       = '';
1362
+                if ( ! empty( $attributes_array ) ) {
1363
+                    foreach ( $attributes_array as $key => $value ) {
1364
+                        if ( is_array( $value ) ) {
1365
+                            $value = implode( ",", $value );
1366
+                        }
1367
+
1368
+                        if ( ! empty( $value ) ) {
1369
+                            $value = wp_unslash( $value );
1370
+
1371
+                            // Encode [ and ].
1372
+                            if ( $is_preview ) {
1373
+                                $value = $this->encode_shortcodes( $value );
1374
+                            }
1375
+                        }
1376
+                        $attributes .= " " . esc_attr( sanitize_title_with_dashes( $key ) ) . "='" . esc_attr( $value ) . "' ";
1377
+                    }
1378
+                }
1367 1379
 
1368
-						if ( ! empty( $value ) ) {
1369
-							$value = wp_unslash( $value );
1380
+                $shortcode = "[" . esc_attr( $shortcode_name ) . " " . $attributes . "]";
1370 1381
 
1371
-							// Encode [ and ].
1372
-							if ( $is_preview ) {
1373
-								$value = $this->encode_shortcodes( $value );
1374
-							}
1375
-						}
1376
-						$attributes .= " " . esc_attr( sanitize_title_with_dashes( $key ) ) . "='" . esc_attr( $value ) . "' ";
1377
-					}
1378
-				}
1382
+                $content = do_shortcode( $shortcode );
1379 1383
 
1380
-				$shortcode = "[" . esc_attr( $shortcode_name ) . " " . $attributes . "]";
1384
+                // Decode [ and ].
1385
+                if ( ! empty( $content ) && $is_preview ) {
1386
+                    $content = $this->decode_shortcodes( $content );
1387
+                }
1381 1388
 
1382
-				$content = do_shortcode( $shortcode );
1389
+                echo $content;
1390
+            }
1391
+            wp_die();
1392
+        }
1383 1393
 
1384
-				// Decode [ and ].
1385
-				if ( ! empty( $content ) && $is_preview ) {
1386
-					$content = $this->decode_shortcodes( $content );
1387
-				}
1394
+        /**
1395
+         * Output the shortcode.
1396
+         *
1397
+         * @param array $args
1398
+         * @param string $content
1399
+         *
1400
+         * @return string
1401
+         */
1402
+        public function shortcode_output( $args = array(), $content = '' ) {
1403
+            $_instance = $args;
1388 1404
 
1389
-				echo $content;
1390
-			}
1391
-			wp_die();
1392
-		}
1405
+            $args = $this->argument_values( $args );
1393 1406
 
1394
-		/**
1395
-		 * Output the shortcode.
1396
-		 *
1397
-		 * @param array $args
1398
-		 * @param string $content
1399
-		 *
1400
-		 * @return string
1401
-		 */
1402
-		public function shortcode_output( $args = array(), $content = '' ) {
1403
-			$_instance = $args;
1404
-
1405
-			$args = $this->argument_values( $args );
1406
-
1407
-			// add extra argument so we know its a output to gutenberg
1408
-			//$args
1409
-			$args = $this->string_to_bool( $args );
1410
-
1411
-			// if we have a enclosed shortcode we add it to the special `html` argument
1412
-			if ( ! empty( $content ) ) {
1413
-				$args['html'] = $content;
1414
-			}
1407
+            // add extra argument so we know its a output to gutenberg
1408
+            //$args
1409
+            $args = $this->string_to_bool( $args );
1415 1410
 
1416
-			if ( ! $this->is_preview() ) {
1417
-				/**
1418
-				 * Filters the settings for a particular widget args.
1419
-				 *
1420
-				 * @param array          $args      The current widget instance's settings.
1421
-				 * @param WP_Super_Duper $widget    The current widget settings.
1422
-				 * @param array          $_instance An array of default widget arguments.
1423
-				 *
1424
-				 *@since 1.0.28
1425
-				 *
1426
-				 */
1427
-				$args = apply_filters( 'wp_super_duper_widget_display_callback', $args, $this, $_instance );
1411
+            // if we have a enclosed shortcode we add it to the special `html` argument
1412
+            if ( ! empty( $content ) ) {
1413
+                $args['html'] = $content;
1414
+            }
1428 1415
 
1429
-				if ( ! is_array( $args ) ) {
1430
-					return $args;
1431
-				}
1432
-			}
1416
+            if ( ! $this->is_preview() ) {
1417
+                /**
1418
+                 * Filters the settings for a particular widget args.
1419
+                 *
1420
+                 * @param array          $args      The current widget instance's settings.
1421
+                 * @param WP_Super_Duper $widget    The current widget settings.
1422
+                 * @param array          $_instance An array of default widget arguments.
1423
+                 *
1424
+                 *@since 1.0.28
1425
+                 *
1426
+                 */
1427
+                $args = apply_filters( 'wp_super_duper_widget_display_callback', $args, $this, $_instance );
1428
+
1429
+                if ( ! is_array( $args ) ) {
1430
+                    return $args;
1431
+                }
1432
+            }
1433 1433
 
1434
-			$class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1435
-			$class .= " sdel-".$this->get_instance_hash();
1434
+            $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1435
+            $class .= " sdel-".$this->get_instance_hash();
1436 1436
 
1437
-			$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1438
-			$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1437
+            $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1438
+            $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1439 1439
 
1440
-			$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1441
-			$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
1440
+            $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1441
+            $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
1442 1442
 
1443
-			$shortcode_args = array();
1444
-			$output         = '';
1445
-			$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1446
-			if ( isset( $args['no_wrap'] ) && $args['no_wrap'] ) {
1447
-				$no_wrap = true;
1448
-			}
1449
-			$main_content = $this->output( $args, $shortcode_args, $content );
1450
-			if ( $main_content && ! $no_wrap ) {
1451
-				// wrap the shortcode in a div with the same class as the widget
1452
-				$output .= '<div class="' . $class . '" ' . $attrs . '>';
1453
-				if ( ! empty( $args['title'] ) ) {
1454
-					// if its a shortcode and there is a title try to grab the title wrappers
1455
-					$shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1456
-					if ( empty( $instance ) ) {
1457
-						global $wp_registered_sidebars;
1458
-						if ( ! empty( $wp_registered_sidebars ) ) {
1459
-							foreach ( $wp_registered_sidebars as $sidebar ) {
1460
-								if ( ! empty( $sidebar['before_title'] ) ) {
1461
-									$shortcode_args['before_title'] = $sidebar['before_title'];
1462
-									$shortcode_args['after_title']  = $sidebar['after_title'];
1463
-									break;
1464
-								}
1465
-							}
1466
-						}
1467
-					}
1468
-					$output .= $this->output_title( $shortcode_args, $args );
1469
-				}
1470
-				$output .= $main_content;
1471
-				$output .= '</div>';
1472
-			} elseif ( $main_content && $no_wrap ) {
1473
-				$output .= $main_content;
1474
-			}
1443
+            $shortcode_args = array();
1444
+            $output         = '';
1445
+            $no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1446
+            if ( isset( $args['no_wrap'] ) && $args['no_wrap'] ) {
1447
+                $no_wrap = true;
1448
+            }
1449
+            $main_content = $this->output( $args, $shortcode_args, $content );
1450
+            if ( $main_content && ! $no_wrap ) {
1451
+                // wrap the shortcode in a div with the same class as the widget
1452
+                $output .= '<div class="' . $class . '" ' . $attrs . '>';
1453
+                if ( ! empty( $args['title'] ) ) {
1454
+                    // if its a shortcode and there is a title try to grab the title wrappers
1455
+                    $shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1456
+                    if ( empty( $instance ) ) {
1457
+                        global $wp_registered_sidebars;
1458
+                        if ( ! empty( $wp_registered_sidebars ) ) {
1459
+                            foreach ( $wp_registered_sidebars as $sidebar ) {
1460
+                                if ( ! empty( $sidebar['before_title'] ) ) {
1461
+                                    $shortcode_args['before_title'] = $sidebar['before_title'];
1462
+                                    $shortcode_args['after_title']  = $sidebar['after_title'];
1463
+                                    break;
1464
+                                }
1465
+                            }
1466
+                        }
1467
+                    }
1468
+                    $output .= $this->output_title( $shortcode_args, $args );
1469
+                }
1470
+                $output .= $main_content;
1471
+                $output .= '</div>';
1472
+            } elseif ( $main_content && $no_wrap ) {
1473
+                $output .= $main_content;
1474
+            }
1475 1475
 
1476
-			// if preview show a placeholder if empty
1477
-			if ( $this->is_preview() && $output == '' ) {
1478
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
1479
-			}
1476
+            // if preview show a placeholder if empty
1477
+            if ( $this->is_preview() && $output == '' ) {
1478
+                $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
1479
+            }
1480 1480
 
1481
-			return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1482
-		}
1481
+            return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1482
+        }
1483 1483
 
1484
-		/**
1485
-		 * Placeholder text to show if output is empty and we are on a preview/builder page.
1486
-		 *
1487
-		 * @param string $name
1488
-		 *
1489
-		 * @return string
1490
-		 */
1491
-		public function preview_placeholder_text( $name = '' ) {
1492
-			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf( __( 'Placeholder for: %s', 'ayecode-connect' ), $name ) . "</div>";
1493
-		}
1484
+        /**
1485
+         * Placeholder text to show if output is empty and we are on a preview/builder page.
1486
+         *
1487
+         * @param string $name
1488
+         *
1489
+         * @return string
1490
+         */
1491
+        public function preview_placeholder_text( $name = '' ) {
1492
+            return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf( __( 'Placeholder for: %s', 'ayecode-connect' ), $name ) . "</div>";
1493
+        }
1494 1494
 
1495
-		/**
1496
-		 * Sometimes booleans values can be turned to strings, so we fix that.
1497
-		 *
1498
-		 * @param $options
1499
-		 *
1500
-		 * @return mixed
1501
-		 */
1502
-		public function string_to_bool( $options ) {
1503
-			// convert bool strings to booleans
1504
-			foreach ( $options as $key => $val ) {
1505
-				if ( $val == 'false' ) {
1506
-					$options[ $key ] = false;
1507
-				} elseif ( $val == 'true' ) {
1508
-					$options[ $key ] = true;
1509
-				}
1510
-			}
1495
+        /**
1496
+         * Sometimes booleans values can be turned to strings, so we fix that.
1497
+         *
1498
+         * @param $options
1499
+         *
1500
+         * @return mixed
1501
+         */
1502
+        public function string_to_bool( $options ) {
1503
+            // convert bool strings to booleans
1504
+            foreach ( $options as $key => $val ) {
1505
+                if ( $val == 'false' ) {
1506
+                    $options[ $key ] = false;
1507
+                } elseif ( $val == 'true' ) {
1508
+                    $options[ $key ] = true;
1509
+                }
1510
+            }
1511 1511
 
1512
-			return $options;
1513
-		}
1512
+            return $options;
1513
+        }
1514 1514
 
1515
-		/**
1516
-		 * Get the argument values that are also filterable.
1517
-		 *
1518
-		 * @param $instance
1519
-		 *
1520
-		 * @return array
1521
-		 *@since 1.0.12 Don't set checkbox default value if the value is empty.
1522
-		 *
1523
-		 */
1524
-		public function argument_values( $instance ) {
1525
-			$argument_values = array();
1526
-
1527
-			// set widget instance
1528
-			$this->instance = $instance;
1529
-
1530
-			if ( empty( $this->arguments ) ) {
1531
-				$this->arguments = $this->get_arguments();
1532
-			}
1515
+        /**
1516
+         * Get the argument values that are also filterable.
1517
+         *
1518
+         * @param $instance
1519
+         *
1520
+         * @return array
1521
+         *@since 1.0.12 Don't set checkbox default value if the value is empty.
1522
+         *
1523
+         */
1524
+        public function argument_values( $instance ) {
1525
+            $argument_values = array();
1533 1526
 
1534
-			if ( ! empty( $this->arguments ) ) {
1535
-				foreach ( $this->arguments as $key => $args ) {
1536
-					// set the input name from the key
1537
-					$args['name'] = $key;
1538
-					//
1539
-					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1540
-					if ( $args['type'] == 'checkbox' && $argument_values[ $key ] == '' ) {
1541
-						// don't set default for an empty checkbox
1542
-					} elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1543
-						$argument_values[ $key ] = $args['default'];
1544
-					}
1545
-				}
1546
-			}
1527
+            // set widget instance
1528
+            $this->instance = $instance;
1547 1529
 
1548
-			return $argument_values;
1549
-		}
1530
+            if ( empty( $this->arguments ) ) {
1531
+                $this->arguments = $this->get_arguments();
1532
+            }
1550 1533
 
1551
-		/**
1552
-		 * Set arguments in super duper.
1553
-		 *
1554
-		 * @return array Set arguments.
1555
-		 *@since 1.0.0
1556
-		 *
1557
-		 */
1558
-		public function set_arguments() {
1559
-			return $this->arguments;
1560
-		}
1534
+            if ( ! empty( $this->arguments ) ) {
1535
+                foreach ( $this->arguments as $key => $args ) {
1536
+                    // set the input name from the key
1537
+                    $args['name'] = $key;
1538
+                    //
1539
+                    $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1540
+                    if ( $args['type'] == 'checkbox' && $argument_values[ $key ] == '' ) {
1541
+                        // don't set default for an empty checkbox
1542
+                    } elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1543
+                        $argument_values[ $key ] = $args['default'];
1544
+                    }
1545
+                }
1546
+            }
1561 1547
 
1562
-		/**
1563
-		 * Get arguments in super duper.
1564
-		 *
1565
-		 * @return array Get arguments.
1566
-		 *@since 1.0.0
1567
-		 *
1568
-		 */
1569
-		public function get_arguments() {
1570
-			if ( empty( $this->arguments ) ) {
1571
-				$this->arguments = $this->set_arguments();
1572
-			}
1548
+            return $argument_values;
1549
+        }
1550
+
1551
+        /**
1552
+         * Set arguments in super duper.
1553
+         *
1554
+         * @return array Set arguments.
1555
+         *@since 1.0.0
1556
+         *
1557
+         */
1558
+        public function set_arguments() {
1559
+            return $this->arguments;
1560
+        }
1561
+
1562
+        /**
1563
+         * Get arguments in super duper.
1564
+         *
1565
+         * @return array Get arguments.
1566
+         *@since 1.0.0
1567
+         *
1568
+         */
1569
+        public function get_arguments() {
1570
+            if ( empty( $this->arguments ) ) {
1571
+                $this->arguments = $this->set_arguments();
1572
+            }
1573 1573
 
1574
-			$this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1575
-			$this->arguments = $this->add_name_from_key( $this->arguments, true );
1574
+            $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1575
+            $this->arguments = $this->add_name_from_key( $this->arguments, true );
1576 1576
 
1577 1577
             if( !empty( $this->arguments['title']['value'] ) ){
1578 1578
                 $this->arguments['title']['value'] = wp_kses_post( $this->arguments['title']['value'] );
1579 1579
             }
1580 1580
 
1581
-			return $this->arguments;
1582
-		}
1581
+            return $this->arguments;
1582
+        }
1583 1583
 
1584
-		/**
1585
-		 * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1586
-		 *
1587
-		 * @param array $args
1588
-		 * @param array $widget_args
1589
-		 * @param string $content
1590
-		 */
1591
-		public function output( $args = array(), $widget_args = array(), $content = '' ) {
1584
+        /**
1585
+         * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1586
+         *
1587
+         * @param array $args
1588
+         * @param array $widget_args
1589
+         * @param string $content
1590
+         */
1591
+        public function output( $args = array(), $widget_args = array(), $content = '' ) {
1592 1592
 
1593
-		}
1593
+        }
1594 1594
 
1595
-		/**
1596
-		 * Add the dynamic block code inline when the wp-block in enqueued.
1597
-		 */
1598
-		public function register_block() {
1599
-			wp_add_inline_script( 'wp-blocks', $this->block() );
1600
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
1601
-				wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1602
-			}
1603
-		}
1595
+        /**
1596
+         * Add the dynamic block code inline when the wp-block in enqueued.
1597
+         */
1598
+        public function register_block() {
1599
+            wp_add_inline_script( 'wp-blocks', $this->block() );
1600
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
1601
+                wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1602
+            }
1603
+        }
1604 1604
 
1605
-		/**
1606
-		 * Check if we need to show advanced options.
1607
-		 *
1608
-		 * @return bool
1609
-		 */
1610
-		public function block_show_advanced() {
1611
-
1612
-			$show      = false;
1613
-			$arguments = $this->get_arguments();
1614
-
1615
-			if ( ! empty( $arguments ) ) {
1616
-				foreach ( $arguments as $argument ) {
1617
-					if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1618
-						$show = true;
1619
-						break; // no need to continue if we know we have it
1620
-					}
1621
-				}
1622
-			}
1605
+        /**
1606
+         * Check if we need to show advanced options.
1607
+         *
1608
+         * @return bool
1609
+         */
1610
+        public function block_show_advanced() {
1623 1611
 
1624
-			return $show;
1625
-		}
1612
+            $show      = false;
1613
+            $arguments = $this->get_arguments();
1626 1614
 
1627
-		/**
1628
-		 * Get the url path to the current folder.
1629
-		 *
1630
-		 * @return string
1631
-		 */
1632
-		public function get_url() {
1633
-			$url = $this->url;
1634
-
1635
-			if ( ! $url ) {
1636
-				$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
1637
-				$content_url = untrailingslashit( WP_CONTENT_URL );
1638
-
1639
-				// Replace http:// to https://.
1640
-				if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
1641
-					$content_url = str_replace( 'http://', 'https://', $content_url );
1642
-				}
1615
+            if ( ! empty( $arguments ) ) {
1616
+                foreach ( $arguments as $argument ) {
1617
+                    if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1618
+                        $show = true;
1619
+                        break; // no need to continue if we know we have it
1620
+                    }
1621
+                }
1622
+            }
1643 1623
 
1644
-				// Check if we are inside a plugin
1645
-				$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
1646
-				$url = str_replace( $content_dir, $content_url, $file_dir );
1647
-				$url = trailingslashit( $url );
1648
-				$this->url = $url;
1649
-			}
1624
+            return $show;
1625
+        }
1650 1626
 
1651
-			return $url;
1652
-		}
1627
+        /**
1628
+         * Get the url path to the current folder.
1629
+         *
1630
+         * @return string
1631
+         */
1632
+        public function get_url() {
1633
+            $url = $this->url;
1653 1634
 
1654
-		/**
1655
-		 * Get the url path to the current folder.
1656
-		 *
1657
-		 * @return string
1658
-		 */
1659
-		public function get_url_old() {
1635
+            if ( ! $url ) {
1636
+                $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
1637
+                $content_url = untrailingslashit( WP_CONTENT_URL );
1660 1638
 
1661
-			$url = $this->url;
1639
+                // Replace http:// to https://.
1640
+                if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
1641
+                    $content_url = str_replace( 'http://', 'https://', $content_url );
1642
+                }
1662 1643
 
1663
-			if ( ! $url ) {
1664
-				// check if we are inside a plugin
1665
-				$file_dir = str_replace( "/includes", "", dirname( __FILE__ ) );
1644
+                // Check if we are inside a plugin
1645
+                $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
1646
+                $url = str_replace( $content_dir, $content_url, $file_dir );
1647
+                $url = trailingslashit( $url );
1648
+                $this->url = $url;
1649
+            }
1666 1650
 
1667
-				$dir_parts = explode( "/wp-content/", $file_dir );
1668
-				$url_parts = explode( "/wp-content/", plugins_url() );
1651
+            return $url;
1652
+        }
1669 1653
 
1670
-				if ( ! empty( $url_parts[0] ) && ! empty( $dir_parts[1] ) ) {
1671
-					$url       = trailingslashit( $url_parts[0] . "/wp-content/" . $dir_parts[1] );
1672
-					$this->url = $url;
1673
-				}
1674
-			}
1654
+        /**
1655
+         * Get the url path to the current folder.
1656
+         *
1657
+         * @return string
1658
+         */
1659
+        public function get_url_old() {
1675 1660
 
1661
+            $url = $this->url;
1676 1662
 
1677
-			return $url;
1678
-		}
1663
+            if ( ! $url ) {
1664
+                // check if we are inside a plugin
1665
+                $file_dir = str_replace( "/includes", "", dirname( __FILE__ ) );
1679 1666
 
1680
-		/**
1681
-		 * Generate the block icon.
1682
-		 *
1683
-		 * Enables the use of Font Awesome icons.
1684
-		 *
1685
-		 * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1686
-		 *
1687
-		 * @param $icon
1688
-		 *
1689
-		 * @return string
1690
-		 *@since 1.1.0
1691
-		 */
1692
-		public function get_block_icon( $icon ) {
1693
-
1694
-			// check if we have a Font Awesome icon
1695
-			$fa_type = '';
1696
-			if ( substr( $icon, 0, 7 ) === "fas fa-" ) {
1697
-				$fa_type = 'solid';
1698
-			} elseif ( substr( $icon, 0, 7 ) === "far fa-" ) {
1699
-				$fa_type = 'regular';
1700
-			} elseif ( substr( $icon, 0, 7 ) === "fab fa-" ) {
1701
-				$fa_type = 'brands';
1702
-			} else {
1703
-				$icon = "'" . $icon . "'";
1704
-			}
1667
+                $dir_parts = explode( "/wp-content/", $file_dir );
1668
+                $url_parts = explode( "/wp-content/", plugins_url() );
1705 1669
 
1706
-			// set the icon if we found one
1707
-			if ( $fa_type ) {
1708
-				$fa_icon = str_replace( array( "fas fa-", "far fa-", "fab fa-" ), "", $icon );
1709
-				$icon    = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "','href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "'}))";
1710
-			}
1670
+                if ( ! empty( $url_parts[0] ) && ! empty( $dir_parts[1] ) ) {
1671
+                    $url       = trailingslashit( $url_parts[0] . "/wp-content/" . $dir_parts[1] );
1672
+                    $this->url = $url;
1673
+                }
1674
+            }
1711 1675
 
1712
-			return $icon;
1713
-		}
1714 1676
 
1715
-		public function group_arguments( $arguments ) {
1716
-			if ( ! empty( $arguments ) ) {
1717
-				$temp_arguments = array();
1718
-				$general        = __( "General", 'ayecode-connect' );
1719
-				$add_sections   = false;
1720
-				foreach ( $arguments as $key => $args ) {
1721
-					if ( isset( $args['group'] ) ) {
1722
-						$temp_arguments[ $args['group'] ][ $key ] = $args;
1723
-						$add_sections                             = true;
1724
-					} else {
1725
-						$temp_arguments[ $general ][ $key ] = $args;
1726
-					}
1727
-				}
1677
+            return $url;
1678
+        }
1728 1679
 
1729
-				// only add sections if more than one
1730
-				if ( $add_sections ) {
1731
-					$arguments = $temp_arguments;
1732
-				}
1733
-			}
1680
+        /**
1681
+         * Generate the block icon.
1682
+         *
1683
+         * Enables the use of Font Awesome icons.
1684
+         *
1685
+         * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1686
+         *
1687
+         * @param $icon
1688
+         *
1689
+         * @return string
1690
+         *@since 1.1.0
1691
+         */
1692
+        public function get_block_icon( $icon ) {
1693
+
1694
+            // check if we have a Font Awesome icon
1695
+            $fa_type = '';
1696
+            if ( substr( $icon, 0, 7 ) === "fas fa-" ) {
1697
+                $fa_type = 'solid';
1698
+            } elseif ( substr( $icon, 0, 7 ) === "far fa-" ) {
1699
+                $fa_type = 'regular';
1700
+            } elseif ( substr( $icon, 0, 7 ) === "fab fa-" ) {
1701
+                $fa_type = 'brands';
1702
+            } else {
1703
+                $icon = "'" . $icon . "'";
1704
+            }
1734 1705
 
1735
-			return $arguments;
1736
-		}
1706
+            // set the icon if we found one
1707
+            if ( $fa_type ) {
1708
+                $fa_icon = str_replace( array( "fas fa-", "far fa-", "fab fa-" ), "", $icon );
1709
+                $icon    = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "','href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "'}))";
1710
+            }
1737 1711
 
1738
-		/**
1739
-		 * Parse used group tabs.
1740
-		 *
1741
-		 * @since 1.1.17
1742
-		 */
1743
-		public function group_block_tabs( $tabs, $arguments ) {
1744
-			if ( ! empty( $tabs ) && ! empty( $arguments ) ) {
1745
-				$has_sections = false;
1746
-
1747
-				foreach ( $this->arguments as $key => $args ) {
1748
-					if ( isset( $args['group'] ) ) {
1749
-						$has_sections = true;
1750
-						break;
1751
-					}
1752
-				}
1712
+            return $icon;
1713
+        }
1753 1714
 
1754
-				if ( ! $has_sections ) {
1755
-					return $tabs;
1756
-				}
1715
+        public function group_arguments( $arguments ) {
1716
+            if ( ! empty( $arguments ) ) {
1717
+                $temp_arguments = array();
1718
+                $general        = __( "General", 'ayecode-connect' );
1719
+                $add_sections   = false;
1720
+                foreach ( $arguments as $key => $args ) {
1721
+                    if ( isset( $args['group'] ) ) {
1722
+                        $temp_arguments[ $args['group'] ][ $key ] = $args;
1723
+                        $add_sections                             = true;
1724
+                    } else {
1725
+                        $temp_arguments[ $general ][ $key ] = $args;
1726
+                    }
1727
+                }
1757 1728
 
1758
-				$new_tabs = array();
1729
+                // only add sections if more than one
1730
+                if ( $add_sections ) {
1731
+                    $arguments = $temp_arguments;
1732
+                }
1733
+            }
1759 1734
 
1760
-				foreach ( $tabs as $tab_key => $tab ) {
1761
-					$new_groups = array();
1735
+            return $arguments;
1736
+        }
1762 1737
 
1763
-					if ( ! empty( $tab['groups'] ) && is_array( $tab['groups'] ) ) {
1764
-						foreach ( $tab['groups'] as $group ) {
1765
-							if ( isset( $arguments[ $group ] ) ) {
1766
-								$new_groups[] = $group;
1767
-							}
1768
-						}
1769
-					}
1738
+        /**
1739
+         * Parse used group tabs.
1740
+         *
1741
+         * @since 1.1.17
1742
+         */
1743
+        public function group_block_tabs( $tabs, $arguments ) {
1744
+            if ( ! empty( $tabs ) && ! empty( $arguments ) ) {
1745
+                $has_sections = false;
1746
+
1747
+                foreach ( $this->arguments as $key => $args ) {
1748
+                    if ( isset( $args['group'] ) ) {
1749
+                        $has_sections = true;
1750
+                        break;
1751
+                    }
1752
+                }
1770 1753
 
1771
-					if ( ! empty( $new_groups ) ) {
1772
-						$tab['groups'] = $new_groups;
1754
+                if ( ! $has_sections ) {
1755
+                    return $tabs;
1756
+                }
1773 1757
 
1774
-						$new_tabs[ $tab_key ] = $tab;
1775
-					}
1776
-				}
1758
+                $new_tabs = array();
1777 1759
 
1778
-				$tabs = $new_tabs;
1779
-			}
1760
+                foreach ( $tabs as $tab_key => $tab ) {
1761
+                    $new_groups = array();
1780 1762
 
1781
-			return $tabs;
1782
-		}
1763
+                    if ( ! empty( $tab['groups'] ) && is_array( $tab['groups'] ) ) {
1764
+                        foreach ( $tab['groups'] as $group ) {
1765
+                            if ( isset( $arguments[ $group ] ) ) {
1766
+                                $new_groups[] = $group;
1767
+                            }
1768
+                        }
1769
+                    }
1770
+
1771
+                    if ( ! empty( $new_groups ) ) {
1772
+                        $tab['groups'] = $new_groups;
1773
+
1774
+                        $new_tabs[ $tab_key ] = $tab;
1775
+                    }
1776
+                }
1777
+
1778
+                $tabs = $new_tabs;
1779
+            }
1780
+
1781
+            return $tabs;
1782
+        }
1783 1783
 
1784
-		/**
1785
-		 * Output the JS for building the dynamic Guntenberg block.
1786
-		 *
1787
-		 * @return mixed
1788
-		 *@since 1.0.9 Save numbers as numbers and not strings.
1789
-		 * @since 1.1.0 Font Awesome classes can be used for icons.
1790
-		 * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap.
1791
-		 */
1792
-		public function block() {
1793
-			global $sd_is_js_functions_loaded, $aui_bs5;
1794
-
1795
-			$show_advanced = $this->block_show_advanced();
1796
-
1797
-			ob_start();
1798
-			?>
1784
+        /**
1785
+         * Output the JS for building the dynamic Guntenberg block.
1786
+         *
1787
+         * @return mixed
1788
+         *@since 1.0.9 Save numbers as numbers and not strings.
1789
+         * @since 1.1.0 Font Awesome classes can be used for icons.
1790
+         * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap.
1791
+         */
1792
+        public function block() {
1793
+            global $sd_is_js_functions_loaded, $aui_bs5;
1794
+
1795
+            $show_advanced = $this->block_show_advanced();
1796
+
1797
+            ob_start();
1798
+            ?>
1799 1799
 			<script>
1800 1800
 			<?php
1801
-			if ( ! $sd_is_js_functions_loaded ) {
1802
-				$sd_is_js_functions_loaded = true;
1803
-			?>
1801
+            if ( ! $sd_is_js_functions_loaded ) {
1802
+                $sd_is_js_functions_loaded = true;
1803
+            ?>
1804 1804
 function sd_show_view_options($this){
1805 1805
 	if(jQuery($this).html().length){
1806 1806
 		jQuery($this).html('');
@@ -2300,8 +2300,8 @@  discard block
 block discarded – undo
2300 2300
 				$classes = [];
2301 2301
 
2302 2302
 				<?php
2303
-				if($aui_bs5){
2304
-					?>
2303
+                if($aui_bs5){
2304
+                    ?>
2305 2305
 				$aui_bs5 = true;
2306 2306
 				$p_ml = 'ms-';
2307 2307
 				$p_mr = 'me-';
@@ -2309,8 +2309,8 @@  discard block
 block discarded – undo
2309 2309
 				$p_pl = 'ps-';
2310 2310
 				$p_pr = 'pe-';
2311 2311
 					<?php
2312
-				}else{
2313
-						?>
2312
+                }else{
2313
+                        ?>
2314 2314
 				$aui_bs5 = false;
2315 2315
 				$p_ml = 'ml-';
2316 2316
 				$p_mr = 'mr-';
@@ -2318,8 +2318,8 @@  discard block
 block discarded – undo
2318 2318
 				$p_pl = 'pl-';
2319 2319
 				$p_pr = 'pr-';
2320 2320
 					<?php
2321
-				}
2322
-				?>
2321
+                }
2322
+                ?>
2323 2323
 
2324 2324
 				// margins
2325 2325
 				if ( $args['mt'] !== undefined && $args['mt'] !== '' ) { $classes.push( "mt-" + $args['mt'] );  $mt = $args['mt']; }else{$mt = null;}
@@ -2503,12 +2503,12 @@  discard block
 block discarded – undo
2503 2503
 			<?php
2504 2504
 
2505 2505
 
2506
-			}
2506
+            }
2507 2507
 
2508
-			if(method_exists($this,'block_global_js')){
2509
-					echo $this->block_global_js();
2510
-			}
2511
-			?>
2508
+            if(method_exists($this,'block_global_js')){
2509
+                    echo $this->block_global_js();
2510
+            }
2511
+            ?>
2512 2512
 
2513 2513
 jQuery(function() {
2514 2514
 
@@ -2561,13 +2561,13 @@  discard block
 block discarded – undo
2561 2561
 						icon: <?php echo $this->get_block_icon( $this->options['block-icon'] );?>,//'<?php echo isset( $this->options['block-icon'] ) ? esc_attr( $this->options['block-icon'] ) : 'shield-alt';?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
2562 2562
 						supports: {
2563 2563
 							<?php
2564
-							if(!isset($this->options['block-supports']['renaming'])){
2565
-								$this->options['block-supports']['renaming'] = false;
2566
-							}
2567
-							if ( isset( $this->options['block-supports'] ) ) {
2568
-								echo $this->array_to_attributes( $this->options['block-supports'] );
2569
-							}
2570
-							?>
2564
+                            if(!isset($this->options['block-supports']['renaming'])){
2565
+                                $this->options['block-supports']['renaming'] = false;
2566
+                            }
2567
+                            if ( isset( $this->options['block-supports'] ) ) {
2568
+                                echo $this->array_to_attributes( $this->options['block-supports'] );
2569
+                            }
2570
+                            ?>
2571 2571
 						},
2572 2572
 						__experimentalLabel( attributes, { context } ) {
2573 2573
 							var visibility_html = attributes && attributes.visibility_conditions ? ' &#128065;' : '';
@@ -2577,155 +2577,155 @@  discard block
 block discarded – undo
2577 2577
 						},
2578 2578
 						category: '<?php echo isset( $this->options['block-category'] ) ? esc_attr( $this->options['block-category'] ) : 'common';?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
2579 2579
 						<?php if ( isset( $this->options['block-keywords'] ) ) {
2580
-						echo "keywords : " . $this->options['block-keywords'] . ",";
2581
-						}
2582
-
2583
-
2584
-						// block hover preview.
2585
-						$example_args = array();
2586
-						if(!empty($this->arguments)){
2587
-							foreach($this->arguments as $key => $a_args){
2588
-								if(isset($a_args['example'])){
2589
-									$example_args[$key] = $a_args['example'];
2590
-								}
2591
-							}
2592
-						}
2593
-						$viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: '.absint($this->options['example']['viewportWidth']) : '';
2594
-						$example_inner_blocks = !empty($this->options['example']['innerBlocks']) && is_array($this->options['example']['innerBlocks']) ? 'innerBlocks: ' . wp_json_encode($this->options['example']['innerBlocks']) : '';
2595
-						if( isset( $this->options['example'] ) && $this->options['example'] === false ){
2596
-							// no preview if set to false
2597
-						}elseif( !empty( $example_args ) ){
2598
-							echo "example : {attributes:{".$this->array_to_attributes( $example_args )."},$viewport_width},";
2599
-						}elseif( !empty( $this->options['example'] ) ){
2600
-							unset($this->options['example']['viewportWidth']);
2601
-							unset($this->options['example']['innerBlocks']);
2602
-							$example_atts = $this->array_to_attributes( $this->options['example'] );
2603
-							$example_parts = array();
2604
-							if($example_atts){
2605
-								$example_parts[] = rtrim($example_atts,",");
2606
-							}
2607
-							if($viewport_width){
2608
-								$example_parts[] = $viewport_width;
2609
-							}
2610
-							if($example_inner_blocks){
2611
-								$example_parts[] = $example_inner_blocks;
2612
-							}
2613
-							if(!empty($example_parts)){
2614
-								echo "example : {".implode(',', $example_parts)."},";
2615
-							}
2616
-						}else{
2617
-							echo 'example : {viewportWidth: 500},';
2618
-						}
2619
-
2620
-
2621
-
2622
-						// limit to parent
2623
-						if( !empty( $this->options['parent'] ) ){
2624
-							echo "parent : " . wp_json_encode( $this->options['parent'] ) . ",";
2625
-						}
2626
-
2627
-						// limit allowed blocks
2628
-						if( !empty( $this->options['allowed-blocks'] ) ){
2629
-							echo "allowedBlocks : " . wp_json_encode( $this->options['allowed-blocks'] ) . ",";
2630
-						}
2631
-
2632
-						// maybe set no_wrap
2633
-						$no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
2634
-						if ( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ) {
2635
-							$no_wrap = true;
2636
-						}
2637
-						if ( $no_wrap ) {
2638
-							$this->options['block-wrap'] = '';
2639
-						}
2640
-
2641
-						// Maybe load the drag/drop functions.
2642
-						$img_drag_drop = false;
2643
-						$show_alignment = false;
2580
+                        echo "keywords : " . $this->options['block-keywords'] . ",";
2581
+                        }
2582
+
2583
+
2584
+                        // block hover preview.
2585
+                        $example_args = array();
2586
+                        if(!empty($this->arguments)){
2587
+                            foreach($this->arguments as $key => $a_args){
2588
+                                if(isset($a_args['example'])){
2589
+                                    $example_args[$key] = $a_args['example'];
2590
+                                }
2591
+                            }
2592
+                        }
2593
+                        $viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: '.absint($this->options['example']['viewportWidth']) : '';
2594
+                        $example_inner_blocks = !empty($this->options['example']['innerBlocks']) && is_array($this->options['example']['innerBlocks']) ? 'innerBlocks: ' . wp_json_encode($this->options['example']['innerBlocks']) : '';
2595
+                        if( isset( $this->options['example'] ) && $this->options['example'] === false ){
2596
+                            // no preview if set to false
2597
+                        }elseif( !empty( $example_args ) ){
2598
+                            echo "example : {attributes:{".$this->array_to_attributes( $example_args )."},$viewport_width},";
2599
+                        }elseif( !empty( $this->options['example'] ) ){
2600
+                            unset($this->options['example']['viewportWidth']);
2601
+                            unset($this->options['example']['innerBlocks']);
2602
+                            $example_atts = $this->array_to_attributes( $this->options['example'] );
2603
+                            $example_parts = array();
2604
+                            if($example_atts){
2605
+                                $example_parts[] = rtrim($example_atts,",");
2606
+                            }
2607
+                            if($viewport_width){
2608
+                                $example_parts[] = $viewport_width;
2609
+                            }
2610
+                            if($example_inner_blocks){
2611
+                                $example_parts[] = $example_inner_blocks;
2612
+                            }
2613
+                            if(!empty($example_parts)){
2614
+                                echo "example : {".implode(',', $example_parts)."},";
2615
+                            }
2616
+                        }else{
2617
+                            echo 'example : {viewportWidth: 500},';
2618
+                        }
2619
+
2620
+
2621
+
2622
+                        // limit to parent
2623
+                        if( !empty( $this->options['parent'] ) ){
2624
+                            echo "parent : " . wp_json_encode( $this->options['parent'] ) . ",";
2625
+                        }
2626
+
2627
+                        // limit allowed blocks
2628
+                        if( !empty( $this->options['allowed-blocks'] ) ){
2629
+                            echo "allowedBlocks : " . wp_json_encode( $this->options['allowed-blocks'] ) . ",";
2630
+                        }
2631
+
2632
+                        // maybe set no_wrap
2633
+                        $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
2634
+                        if ( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ) {
2635
+                            $no_wrap = true;
2636
+                        }
2637
+                        if ( $no_wrap ) {
2638
+                            $this->options['block-wrap'] = '';
2639
+                        }
2640
+
2641
+                        // Maybe load the drag/drop functions.
2642
+                        $img_drag_drop = false;
2643
+                        $show_alignment = false;
2644 2644
 	
2645
-							echo "attributes : {";
2646
-
2647
-							if ( $show_advanced ) {
2648
-								echo "show_advanced: {";
2649
-								echo "  type: 'boolean',";
2650
-								echo "  default: false";
2651
-								echo "},";
2652
-							}
2653
-
2654
-							// Block wrap element
2655
-							if ( ! empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
2656
-								echo "block_wrap: {";
2657
-								echo "  type: 'string',";
2658
-								echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "'";
2659
-								echo "},";
2660
-							}
2661
-
2662
-							if ( ! empty( $this->arguments ) ) {
2663
-								foreach ( $this->arguments as $key => $args ) {
2664
-									if ( $args['type'] == 'image' ||  $args['type'] == 'images' ) {
2665
-										$img_drag_drop = true;
2666
-									}
2667
-
2668
-									// Set if we should show alignment.
2669
-									if ( $key == 'alignment' ) {
2670
-										$show_alignment = true;
2671
-									}
2672
-
2673
-									$extra = '';
2674
-									$_default = isset( $args['default'] ) && ! is_null( $args['default'] ) ? $args['default'] : '';
2675
-
2676
-									if ( ! empty( $_default ) ) {
2677
-										$_default = wp_slash( $_default );
2678
-									}
2679
-
2680
-									if ( $args['type'] == 'notice' ||  $args['type'] == 'tab' ) {
2681
-										continue;
2682
-									} else if ( $args['type'] == 'checkbox' ) {
2683
-										$type    = 'boolean';
2684
-										$default = $_default ? 'true' : 'false';
2685
-									} else if ( $args['type'] == 'number' ) {
2686
-										$type    = 'number';
2687
-										$default = "'" . $_default . "'";
2688
-									} else if ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
2689
-										$type = 'array';
2690
-										if ( isset( $args['default'] ) && is_array( $args['default'] ) ) {
2691
-											$default = ! empty( $_default ) ? "['" . implode( "','", $_default ) . "']" : "[]";
2692
-										} else {
2693
-											$default = "'" . $_default . "'";
2694
-										}
2695
-									} else if ( $args['type'] == 'tagselect' ) {
2696
-										$type    = 'array';
2697
-										$default = "'" . $_default . "'";
2698
-									} else if ( $args['type'] == 'multiselect' ) {
2699
-										$type    = 'array';
2700
-										$default = "'" . $_default . "'";
2701
-									} else if ( $args['type'] == 'image_xy' ) {
2702
-										$type    = 'object';
2703
-										$default = "'" . $_default . "'";
2704
-									} else if ( $args['type'] == 'image' ) {
2705
-										$type    = 'string';
2706
-										$default = "'" . $_default . "'";
2707
-									} else {
2708
-										$type    = ! empty( $args['hidden_type'] ) ? esc_attr( $args['hidden_type'] ) : 'string';
2709
-										$default = "'" . $_default . "'";
2710
-									}
2711
-
2712
-									echo $key . " : {";
2713
-									echo "type : '$type',";
2714
-									echo "default : $default";
2715
-									echo "},";
2716
-								}
2717
-							}
2718
-
2719
-							echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
2720
-							echo "sd_shortcode : {type : 'string',default: ''},";
2721
-
2722
-							if ( ! empty( $this->options['nested-block'] ) || ! empty( $this->arguments['html'] ) ) {
2723
-								echo "sd_shortcode_close : {type : 'string',default: ''},";
2724
-							}
2725
-
2726
-							echo "className: { type: 'string', default: '' }";
2727
-							echo "},";
2728
-						?>
2645
+                            echo "attributes : {";
2646
+
2647
+                            if ( $show_advanced ) {
2648
+                                echo "show_advanced: {";
2649
+                                echo "  type: 'boolean',";
2650
+                                echo "  default: false";
2651
+                                echo "},";
2652
+                            }
2653
+
2654
+                            // Block wrap element
2655
+                            if ( ! empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
2656
+                                echo "block_wrap: {";
2657
+                                echo "  type: 'string',";
2658
+                                echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "'";
2659
+                                echo "},";
2660
+                            }
2661
+
2662
+                            if ( ! empty( $this->arguments ) ) {
2663
+                                foreach ( $this->arguments as $key => $args ) {
2664
+                                    if ( $args['type'] == 'image' ||  $args['type'] == 'images' ) {
2665
+                                        $img_drag_drop = true;
2666
+                                    }
2667
+
2668
+                                    // Set if we should show alignment.
2669
+                                    if ( $key == 'alignment' ) {
2670
+                                        $show_alignment = true;
2671
+                                    }
2672
+
2673
+                                    $extra = '';
2674
+                                    $_default = isset( $args['default'] ) && ! is_null( $args['default'] ) ? $args['default'] : '';
2675
+
2676
+                                    if ( ! empty( $_default ) ) {
2677
+                                        $_default = wp_slash( $_default );
2678
+                                    }
2679
+
2680
+                                    if ( $args['type'] == 'notice' ||  $args['type'] == 'tab' ) {
2681
+                                        continue;
2682
+                                    } else if ( $args['type'] == 'checkbox' ) {
2683
+                                        $type    = 'boolean';
2684
+                                        $default = $_default ? 'true' : 'false';
2685
+                                    } else if ( $args['type'] == 'number' ) {
2686
+                                        $type    = 'number';
2687
+                                        $default = "'" . $_default . "'";
2688
+                                    } else if ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
2689
+                                        $type = 'array';
2690
+                                        if ( isset( $args['default'] ) && is_array( $args['default'] ) ) {
2691
+                                            $default = ! empty( $_default ) ? "['" . implode( "','", $_default ) . "']" : "[]";
2692
+                                        } else {
2693
+                                            $default = "'" . $_default . "'";
2694
+                                        }
2695
+                                    } else if ( $args['type'] == 'tagselect' ) {
2696
+                                        $type    = 'array';
2697
+                                        $default = "'" . $_default . "'";
2698
+                                    } else if ( $args['type'] == 'multiselect' ) {
2699
+                                        $type    = 'array';
2700
+                                        $default = "'" . $_default . "'";
2701
+                                    } else if ( $args['type'] == 'image_xy' ) {
2702
+                                        $type    = 'object';
2703
+                                        $default = "'" . $_default . "'";
2704
+                                    } else if ( $args['type'] == 'image' ) {
2705
+                                        $type    = 'string';
2706
+                                        $default = "'" . $_default . "'";
2707
+                                    } else {
2708
+                                        $type    = ! empty( $args['hidden_type'] ) ? esc_attr( $args['hidden_type'] ) : 'string';
2709
+                                        $default = "'" . $_default . "'";
2710
+                                    }
2711
+
2712
+                                    echo $key . " : {";
2713
+                                    echo "type : '$type',";
2714
+                                    echo "default : $default";
2715
+                                    echo "},";
2716
+                                }
2717
+                            }
2718
+
2719
+                            echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
2720
+                            echo "sd_shortcode : {type : 'string',default: ''},";
2721
+
2722
+                            if ( ! empty( $this->options['nested-block'] ) || ! empty( $this->arguments['html'] ) ) {
2723
+                                echo "sd_shortcode_close : {type : 'string',default: ''},";
2724
+                            }
2725
+
2726
+                            echo "className: { type: 'string', default: '' }";
2727
+                            echo "},";
2728
+                        ?>
2729 2729
 						// The "edit" property must be a valid function.
2730 2730
 						edit: function (props) {
2731 2731
 							const selectedBlock = wp.data.select('core/block-editor').getSelectedBlock();
@@ -2796,10 +2796,10 @@  discard block
 block discarded – undo
2796 2796
 							}
2797 2797
 
2798 2798
 							<?php
2799
-							if(!empty($this->options['block-edit-raw'])) {
2800
-								echo $this->options['block-edit-raw']; // strings have to be in single quotes, may cause issues
2801
-							}else{
2802
-							?>
2799
+                            if(!empty($this->options['block-edit-raw'])) {
2800
+                                echo $this->options['block-edit-raw']; // strings have to be in single quotes, may cause issues
2801
+                            }else{
2802
+                            ?>
2803 2803
 
2804 2804
 function hasSelectedInnerBlock(props) {
2805 2805
 	const select = wp.data.select('core/editor');
@@ -2821,9 +2821,9 @@  discard block
 block discarded – undo
2821 2821
 
2822 2822
 	var $value = '';
2823 2823
 	<?php
2824
-	// if we have a post_type and a category then link them
2825
-	if( isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked']) ){
2826
-	?>
2824
+    // if we have a post_type and a category then link them
2825
+    if( isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked']) ){
2826
+    ?>
2827 2827
 	if(typeof(prev_attributes[props.clientId]) != 'undefined' && selectedBlock && selectedBlock.clientId === props.clientId){
2828 2828
 		$pt = props.attributes.post_type;
2829 2829
 		if(post_type_rest_slugs.length){
@@ -2836,11 +2836,11 @@  discard block
 block discarded – undo
2836 2836
 			term_query_type = $pt;
2837 2837
 		}
2838 2838
 <?php
2839
-	$cat_path = '';
2840
-	if ( ! empty( $this->arguments['post_type']['onchange_rest']['path'] ) ) {
2841
-		$cat_path = esc_js( strip_tags( $this->arguments['post_type']['onchange_rest']['path'] ) );
2842
-		$cat_path = str_replace( array( '&quot;', '&#039;' ), array( '"', "'" ), $cat_path );
2843
-	}
2839
+    $cat_path = '';
2840
+    if ( ! empty( $this->arguments['post_type']['onchange_rest']['path'] ) ) {
2841
+        $cat_path = esc_js( strip_tags( $this->arguments['post_type']['onchange_rest']['path'] ) );
2842
+        $cat_path = str_replace( array( '&quot;', '&#039;' ), array( '"', "'" ), $cat_path );
2843
+    }
2844 2844
 ?>
2845 2845
 		/* taxonomies */
2846 2846
 		if($value && 'post_type' in prev_attributes[props.clientId] && 'category' in prev_attributes[props.clientId] && run){
@@ -2932,7 +2932,7 @@  discard block
 block discarded – undo
2932 2932
 <?php
2933 2933
 $current_screen = function_exists('get_current_screen') ? get_current_screen() : '';
2934 2934
 if(!empty($current_screen->base) && $current_screen->base==='widgets'){
2935
-	echo 'const { deviceType } = "";';
2935
+    echo 'const { deviceType } = "";';
2936 2936
 }else{
2937 2937
 ?>
2938 2938
 /** Get device type const. */
@@ -2986,8 +2986,8 @@  discard block
 block discarded – undo
2986 2986
 										'attributes': props.attributes,
2987 2987
 										'block_parent_name': parentBlocks.length ? parentBlocks[parentBlocks.length - 1].name : '',
2988 2988
 										'post_id': <?php global $post; if ( isset( $post->ID ) ) {
2989
-										echo $post->ID;
2990
-									}else{echo '0';}?>,
2989
+                                        echo $post->ID;
2990
+                                    }else{echo '0';}?>,
2991 2991
 										'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
2992 2992
 									};
2993 2993
 
@@ -3000,20 +3000,20 @@  discard block
 block discarded – undo
3000 3000
 										}
3001 3001
 
3002 3002
 										 <?php
3003
-										if(!empty($this->options['nested-block'])){
3004
-											?>
3003
+                                        if(!empty($this->options['nested-block'])){
3004
+                                            ?>
3005 3005
 											// props.setAttributes({content: env});
3006 3006
 										is_fetching = false;
3007 3007
 										prev_attributes[props.clientId] = props.attributes;
3008 3008
 											 <?php
3009
-										}else{
3010
-										?>
3009
+                                        }else{
3010
+                                        ?>
3011 3011
 										props.setAttributes({content: env});
3012 3012
 										is_fetching = false;
3013 3013
 										prev_attributes[props.clientId] = props.attributes;
3014 3014
 										<?php
3015
-										}
3016
-										?>
3015
+                                        }
3016
+                                        ?>
3017 3017
 
3018 3018
 										// if AUI is active call the js init function
3019 3019
 										if (typeof aui_init === "function") {
@@ -3026,28 +3026,28 @@  discard block
 block discarded – undo
3026 3026
 							}
3027 3027
 
3028 3028
 							<?php
3029
-							if(!empty($this->options['block-edit-js'])) {
3030
-								echo  $this->options['block-edit-js'] ; // strings have to be in single quotes, may cause issues
3031
-							}
3029
+                            if(!empty($this->options['block-edit-js'])) {
3030
+                                echo  $this->options['block-edit-js'] ; // strings have to be in single quotes, may cause issues
3031
+                            }
3032 3032
 
3033
-							if(empty($this->options['block-save-return'])){
3034
-							?>
3033
+                            if(empty($this->options['block-save-return'])){
3034
+                            ?>
3035 3035
 								///////////////////////////////////////////////////////////////////////
3036 3036
 
3037 3037
 								// build the shortcode.
3038 3038
 								shortcode = "[<?php echo $this->options['base_id'];?>";
3039 3039
 								<?php
3040 3040
 
3041
-								if(! empty( $this->arguments )){
3041
+                                if(! empty( $this->arguments )){
3042 3042
 
3043
-								foreach($this->arguments as $key => $args){
3044
-								   // if($args['type']=='tabs'){continue;}
3043
+                                foreach($this->arguments as $key => $args){
3044
+                                    // if($args['type']=='tabs'){continue;}
3045 3045
 
3046
-								   // don't add metadata arguments
3047
-								   if (substr($key, 0, 9 ) === 'metadata_') {
3048
-									   continue;
3049
-								   }
3050
-								?>
3046
+                                    // don't add metadata arguments
3047
+                                    if (substr($key, 0, 9 ) === 'metadata_') {
3048
+                                        continue;
3049
+                                    }
3050
+                                ?>
3051 3051
 								if (props.attributes.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3052 3052
 									if ('<?php echo esc_attr( $key );?>' == 'html') {
3053 3053
 									} else if ('<?php echo esc_attr( $args['type'] );?>' == 'image_xy') {
@@ -3058,10 +3058,10 @@  discard block
 block discarded – undo
3058 3058
 									}
3059 3059
 								}
3060 3060
 								<?php
3061
-								}
3062
-								}
3061
+                                }
3062
+                                }
3063 3063
 
3064
-								?>
3064
+                                ?>
3065 3065
 								shortcode += "]";
3066 3066
 
3067 3067
 								if(shortcode){
@@ -3073,17 +3073,17 @@  discard block
 block discarded – undo
3073 3073
 
3074 3074
 
3075 3075
 									<?php
3076
-									if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
3077
-										echo "props.setAttributes({sd_shortcode_close: '[/".esc_attr( $this->options['base_id'] )."]'});";
3078
-									}
3079
-									?>
3076
+                                    if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
3077
+                                        echo "props.setAttributes({sd_shortcode_close: '[/".esc_attr( $this->options['base_id'] )."]'});";
3078
+                                    }
3079
+                                    ?>
3080 3080
 								}
3081 3081
 
3082 3082
 
3083 3083
 							///////////////////////////////////////////////////////////////////////
3084 3084
 							<?php
3085
-							} // end nested block check
3086
-							?>
3085
+                            } // end nested block check
3086
+                            ?>
3087 3087
 
3088 3088
 							return [
3089 3089
 
@@ -3107,10 +3107,10 @@  discard block
 block discarded – undo
3107 3107
 
3108 3108
 									<?php
3109 3109
 
3110
-									if(! empty( $this->arguments )){
3110
+                                    if(! empty( $this->arguments )){
3111 3111
 
3112
-									if ( $show_advanced ) {
3113
-									?>
3112
+                                    if ( $show_advanced ) {
3113
+                                    ?>
3114 3114
 									el('div', {
3115 3115
 											style: {'padding-left': '16px','padding-right': '16px'}
3116 3116
 										},
@@ -3127,119 +3127,119 @@  discard block
 block discarded – undo
3127 3127
 									)
3128 3128
 									,
3129 3129
 									<?php
3130
-									}
3131
-
3132
-									$arguments = $this->group_arguments( $this->arguments );
3133
-									$block_group_tabs = ! empty( $this->options['block_group_tabs'] ) ? $this->group_block_tabs( $this->options['block_group_tabs'], $arguments ) : array();
3134
-
3135
-									// Do we have sections?
3136
-									$has_sections = $arguments == $this->arguments ? false : true;
3137
-
3138
-									if($has_sections){
3139
-									$panel_count = 0;
3140
-									$open_tab = '';
3141
-
3142
-									$open_tab_groups = array();
3143
-									$used_tabs = array();
3144
-
3145
-									foreach ( $arguments as $key => $args ) {
3146
-										$close_tab = false;
3147
-										$close_tabs = false;
3148
-
3149
-										 if ( ! empty( $block_group_tabs ) ) {
3150
-											foreach ( $block_group_tabs as $tab_name => $tab_args ) {
3151
-												if ( in_array( $key, $tab_args['groups'] ) ) {
3152
-													$open_tab_groups[] = $key;
3153
-
3154
-													if ( $open_tab != $tab_name ) {
3155
-														$tab_args['tab']['tabs_open'] = $open_tab == '' ? true : false;
3156
-														$tab_args['tab']['open'] = true;
3157
-
3158
-														$this->block_tab_start( '', $tab_args );
3159
-														$open_tab = $tab_name;
3160
-														$used_tabs[] = $tab_name;
3161
-													}
3162
-
3163
-													if ( $open_tab_groups == $tab_args['groups'] ) {
3164
-														$close_tab = true;
3165
-														$open_tab_groups = array();
3166
-
3167
-														if ( $used_tabs == array_keys( $block_group_tabs ) ) {
3168
-															$close_tabs = true;
3169
-														}
3170
-													}
3171
-												}
3172
-											}
3173
-										}
3174
-										?>
3130
+                                    }
3131
+
3132
+                                    $arguments = $this->group_arguments( $this->arguments );
3133
+                                    $block_group_tabs = ! empty( $this->options['block_group_tabs'] ) ? $this->group_block_tabs( $this->options['block_group_tabs'], $arguments ) : array();
3134
+
3135
+                                    // Do we have sections?
3136
+                                    $has_sections = $arguments == $this->arguments ? false : true;
3137
+
3138
+                                    if($has_sections){
3139
+                                    $panel_count = 0;
3140
+                                    $open_tab = '';
3141
+
3142
+                                    $open_tab_groups = array();
3143
+                                    $used_tabs = array();
3144
+
3145
+                                    foreach ( $arguments as $key => $args ) {
3146
+                                        $close_tab = false;
3147
+                                        $close_tabs = false;
3148
+
3149
+                                            if ( ! empty( $block_group_tabs ) ) {
3150
+                                            foreach ( $block_group_tabs as $tab_name => $tab_args ) {
3151
+                                                if ( in_array( $key, $tab_args['groups'] ) ) {
3152
+                                                    $open_tab_groups[] = $key;
3153
+
3154
+                                                    if ( $open_tab != $tab_name ) {
3155
+                                                        $tab_args['tab']['tabs_open'] = $open_tab == '' ? true : false;
3156
+                                                        $tab_args['tab']['open'] = true;
3157
+
3158
+                                                        $this->block_tab_start( '', $tab_args );
3159
+                                                        $open_tab = $tab_name;
3160
+                                                        $used_tabs[] = $tab_name;
3161
+                                                    }
3162
+
3163
+                                                    if ( $open_tab_groups == $tab_args['groups'] ) {
3164
+                                                        $close_tab = true;
3165
+                                                        $open_tab_groups = array();
3166
+
3167
+                                                        if ( $used_tabs == array_keys( $block_group_tabs ) ) {
3168
+                                                            $close_tabs = true;
3169
+                                                        }
3170
+                                                    }
3171
+                                                }
3172
+                                            }
3173
+                                        }
3174
+                                        ?>
3175 3175
 										el(wp.components.PanelBody, {
3176 3176
 												title: '<?php esc_attr_e( $key ); ?>',
3177 3177
 												initialOpen: <?php if ( $panel_count ) {
3178
-												echo "false";
3179
-											} else {
3180
-												echo "true";
3181
-											}?>
3178
+                                                echo "false";
3179
+                                            } else {
3180
+                                                echo "true";
3181
+                                            }?>
3182 3182
 											},
3183 3183
 											<?php
3184
-											foreach ( $args as $k => $a ) {
3185
-												$this->block_tab_start( $k, $a );
3186
-												$this->block_row_start( $k, $a );
3187
-												$this->build_block_arguments( $k, $a );
3188
-												$this->block_row_end( $k, $a );
3189
-												$this->block_tab_end( $k, $a );
3190
-											}
3191
-											?>
3184
+                                            foreach ( $args as $k => $a ) {
3185
+                                                $this->block_tab_start( $k, $a );
3186
+                                                $this->block_row_start( $k, $a );
3187
+                                                $this->build_block_arguments( $k, $a );
3188
+                                                $this->block_row_end( $k, $a );
3189
+                                                $this->block_tab_end( $k, $a );
3190
+                                            }
3191
+                                            ?>
3192 3192
 										),
3193 3193
 										<?php
3194
-										$panel_count ++;
3194
+                                        $panel_count ++;
3195 3195
 
3196
-										if($close_tab || $close_tabs){
3197
-											$tab_args = array(
3198
-												'tab'	=> array(
3199
-													'tabs_close' => $close_tabs,
3200
-												'close' => true,
3201
-												)
3196
+                                        if($close_tab || $close_tabs){
3197
+                                            $tab_args = array(
3198
+                                                'tab'	=> array(
3199
+                                                    'tabs_close' => $close_tabs,
3200
+                                                'close' => true,
3201
+                                                )
3202 3202
 
3203
-											);
3204
-											$this->block_tab_end( '', $tab_args );
3203
+                                            );
3204
+                                            $this->block_tab_end( '', $tab_args );
3205 3205
 //											echo '###close'; print_r($tab_args);
3206
-											$panel_count = 0;
3207
-										}
3206
+                                            $panel_count = 0;
3207
+                                        }
3208 3208
 //
3209 3209
 
3210
-									}
3211
-									}else {
3212
-									?>
3210
+                                    }
3211
+                                    }else {
3212
+                                    ?>
3213 3213
 									el(wp.components.PanelBody, {
3214 3214
 											title: '<?php esc_attr_e( "Settings", 'ayecode-connect' ); ?>',
3215 3215
 											initialOpen: true
3216 3216
 										},
3217 3217
 										<?php
3218
-										foreach ( $this->arguments as $key => $args ) {
3219
-											$this->block_row_start( $key, $args );
3220
-											$this->build_block_arguments( $key, $args );
3221
-											$this->block_row_end( $key, $args );
3222
-										}
3223
-										?>
3218
+                                        foreach ( $this->arguments as $key => $args ) {
3219
+                                            $this->block_row_start( $key, $args );
3220
+                                            $this->build_block_arguments( $key, $args );
3221
+                                            $this->block_row_end( $key, $args );
3222
+                                        }
3223
+                                        ?>
3224 3224
 									),
3225 3225
 									<?php
3226
-									}
3226
+                                    }
3227 3227
 
3228
-									}
3229
-									?>
3228
+                                    }
3229
+                                    ?>
3230 3230
 
3231 3231
 								),
3232 3232
 
3233 3233
 								<?php
3234
-								// If the user sets block-output array then build it
3235
-								if ( ! empty( $this->options['block-output'] ) ) {
3236
-								$this->block_element( $this->options['block-output'] );
3237
-							}elseif(!empty($this->options['block-edit-return'])){
3238
-								   echo $this->options['block-edit-return'];
3239
-							}else{
3240
-								// if no block-output is set then we try and get the shortcode html output via ajax.
3241
-								$block_edit_wrap_tag = !empty($this->options['block_edit_wrap_tag']) ? esc_attr($this->options['block_edit_wrap_tag']) : 'div';
3242
-								?>
3234
+                                // If the user sets block-output array then build it
3235
+                                if ( ! empty( $this->options['block-output'] ) ) {
3236
+                                $this->block_element( $this->options['block-output'] );
3237
+                            }elseif(!empty($this->options['block-edit-return'])){
3238
+                                    echo $this->options['block-edit-return'];
3239
+                            }else{
3240
+                                // if no block-output is set then we try and get the shortcode html output via ajax.
3241
+                                $block_edit_wrap_tag = !empty($this->options['block_edit_wrap_tag']) ? esc_attr($this->options['block_edit_wrap_tag']) : 'div';
3242
+                                ?>
3243 3243
 								el('<?php echo esc_attr($block_edit_wrap_tag); ?>', wp.blockEditor.useBlockProps({
3244 3244
 									dangerouslySetInnerHTML: {__html: onChangeContent()},
3245 3245
 									className: props.className,
@@ -3247,13 +3247,13 @@  discard block
 block discarded – undo
3247 3247
 									style: {'minHeight': '30px'}
3248 3248
 								}))
3249 3249
 								<?php
3250
-								}
3251
-								?>
3250
+                                }
3251
+                                ?>
3252 3252
 							]; // end return
3253 3253
 
3254 3254
 							<?php
3255
-							} // end block-edit-raw else
3256
-							?>
3255
+                            } // end block-edit-raw else
3256
+                            ?>
3257 3257
 						},
3258 3258
 
3259 3259
 						// The "save" property must be specified and must be a valid function.
@@ -3267,16 +3267,16 @@  discard block
 block discarded – undo
3267 3267
 							$html = '';
3268 3268
 							<?php
3269 3269
 
3270
-							if(! empty( $this->arguments )){
3270
+                            if(! empty( $this->arguments )){
3271 3271
 
3272
-							foreach($this->arguments as $key => $args){
3273
-							   // if($args['type']=='tabs'){continue;}
3272
+                            foreach($this->arguments as $key => $args){
3273
+                                // if($args['type']=='tabs'){continue;}
3274 3274
 
3275
-							   // don't add metadata arguments
3276
-							   if (substr($key, 0, 9 ) === 'metadata_') {
3277
-								   continue;
3278
-							   }
3279
-							?>
3275
+                                // don't add metadata arguments
3276
+                                if (substr($key, 0, 9 ) === 'metadata_') {
3277
+                                    continue;
3278
+                                }
3279
+                            ?>
3280 3280
 							if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3281 3281
 								if ('<?php echo esc_attr( $key );?>' == 'html') {
3282 3282
 									$html = attr.<?php echo esc_attr( $key );?>;
@@ -3287,10 +3287,10 @@  discard block
 block discarded – undo
3287 3287
 								}
3288 3288
 							}
3289 3289
 							<?php
3290
-							}
3291
-							}
3290
+                            }
3291
+                            }
3292 3292
 
3293
-							?>
3293
+                            ?>
3294 3294
 							content += "]";
3295 3295
 							 content = '';
3296 3296
 
@@ -3300,7 +3300,7 @@  discard block
 block discarded – undo
3300 3300
 //                                $html = 'el( InnerBlocks.Content )';
3301 3301
 //                                <?php
3302 3302
 //                            }
3303
-							?>
3303
+                            ?>
3304 3304
 							// if has html element
3305 3305
 							if ($html) {
3306 3306
 								//content += $html + "[/<?php echo $this->options['base_id'];?>]";
@@ -3333,12 +3333,12 @@  discard block
 block discarded – undo
3333 3333
 //                                <x?php
3334 3334
 //							}else
3335 3335
 
3336
-							if(!empty($this->options['block-output'])){
3336
+                            if(!empty($this->options['block-output'])){
3337 3337
 //                               echo "return";
3338 3338
 //                               $this->block_element( $this->options['block-output'], true );
3339 3339
 //                               echo ";";
3340 3340
 
3341
-							   ?>
3341
+                                ?>
3342 3342
 							  return el(
3343 3343
 								   '',
3344 3344
 								   {},
@@ -3348,10 +3348,10 @@  discard block
 block discarded – undo
3348 3348
 							   );
3349 3349
 								<?php
3350 3350
 
3351
-							}elseif(!empty($this->options['block-save-return'])){
3352
-								   echo 'return ' . $this->options['block-save-return'];
3353
-							}elseif(!empty($this->options['nested-block'])){
3354
-								?>
3351
+                            }elseif(!empty($this->options['block-save-return'])){
3352
+                                    echo 'return ' . $this->options['block-save-return'];
3353
+                            }elseif(!empty($this->options['nested-block'])){
3354
+                                ?>
3355 3355
 							  return el(
3356 3356
 								   '',
3357 3357
 								   {},
@@ -3360,22 +3360,22 @@  discard block
 block discarded – undo
3360 3360
 								 //  el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id'];?>]"}})
3361 3361
 							   );
3362 3362
 								<?php
3363
-							}elseif(!empty( $this->options['block-save-return'] ) ){
3364
-								echo "return ". $this->options['block-edit-return'].";";
3365
-							}elseif(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
3366
-							?>
3363
+                            }elseif(!empty( $this->options['block-save-return'] ) ){
3364
+                                echo "return ". $this->options['block-edit-return'].";";
3365
+                            }elseif(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
3366
+                            ?>
3367 3367
 							return content;
3368 3368
 							<?php
3369
-							}else{
3370
-							?>
3369
+                            }else{
3370
+                            ?>
3371 3371
 							var block_wrap = 'div';
3372 3372
 							if (attr.hasOwnProperty("block_wrap")) {
3373 3373
 								block_wrap = attr.block_wrap;
3374 3374
 							}
3375 3375
 							return el(block_wrap, wp.blockEditor.useBlockProps.save( {dangerouslySetInnerHTML: {__html: content}, className: align} ));
3376 3376
 							<?php
3377
-							}
3378
-							?>
3377
+                            }
3378
+                            ?>
3379 3379
 
3380 3380
 
3381 3381
 						}
@@ -3389,43 +3389,43 @@  discard block
 block discarded – undo
3389 3389
 				});
3390 3390
 			</script>
3391 3391
 			<?php
3392
-			$output = ob_get_clean();
3392
+            $output = ob_get_clean();
3393 3393
 
3394
-			/*
3394
+            /*
3395 3395
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
3396 3396
 			 */
3397 3397
 
3398
-			return str_replace( array(
3399
-				'<script>',
3400
-				'</script>'
3401
-			), '', $output );
3402
-		}
3398
+            return str_replace( array(
3399
+                '<script>',
3400
+                '</script>'
3401
+            ), '', $output );
3402
+        }
3403 3403
 
3404 3404
 
3405 3405
 
3406
-		public function block_row_start($key, $args){
3406
+        public function block_row_start($key, $args){
3407 3407
 
3408
-			// check for row
3409
-			if(!empty($args['row'])){
3408
+            // check for row
3409
+            if(!empty($args['row'])){
3410 3410
 
3411
-				if(!empty($args['row']['open'])){
3411
+                if(!empty($args['row']['open'])){
3412 3412
 
3413
-				// element require
3414
-				$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3415
-				$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3416
-				$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3417
-				$device_type_icon = '';
3418
-				if($device_type=='Desktop'){
3419
-					$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3420
-				}elseif($device_type=='Tablet'){
3421
-					$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3422
-				}elseif($device_type=='Mobile'){
3423
-					$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3424
-				}
3425
-				echo $element_require;
3426
-				echo $device_type_require;
3413
+                // element require
3414
+                $element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3415
+                $device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3416
+                $device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3417
+                $device_type_icon = '';
3418
+                if($device_type=='Desktop'){
3419
+                    $device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3420
+                }elseif($device_type=='Tablet'){
3421
+                    $device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3422
+                }elseif($device_type=='Mobile'){
3423
+                    $device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3424
+                }
3425
+                echo $element_require;
3426
+                echo $device_type_require;
3427 3427
 
3428
-					if(false){?><script><?php }?>
3428
+                    if(false){?><script><?php }?>
3429 3429
 						el('div', {
3430 3430
 								className: 'bsui components-base-control',
3431 3431
 							},
@@ -3438,8 +3438,8 @@  discard block
 block discarded – undo
3438 3438
 								<?php if($device_type_icon){ ?>
3439 3439
 									deviceType == '<?php echo $device_type;?>' && el('span',{dangerouslySetInnerHTML: {__html: '<?php echo $device_type_icon; ?>'},title: deviceType + ": Set preview mode to change",style: {right:"0",position:"absolute",color:"var(--wp-admin-theme-color)"}})
3440 3440
 								<?php
3441
-								}
3442
-								?>
3441
+                                }
3442
+                                ?>
3443 3443
 
3444 3444
 
3445 3445
 							),
@@ -3463,51 +3463,51 @@  discard block
 block discarded – undo
3463 3463
 									},
3464 3464
 
3465 3465
 					<?php
3466
-					if(false){?></script><?php }
3467
-				}elseif(!empty($args['row']['close'])){
3468
-					if(false){?><script><?php }?>
3466
+                    if(false){?></script><?php }
3467
+                }elseif(!empty($args['row']['close'])){
3468
+                    if(false){?><script><?php }?>
3469 3469
 						el(
3470 3470
 							'div',
3471 3471
 							{
3472 3472
 								className: 'col pl-0 ps-0',
3473 3473
 							},
3474 3474
 					<?php
3475
-					if(false){?></script><?php }
3476
-				}else{
3477
-					if(false){?><script><?php }?>
3475
+                    if(false){?></script><?php }
3476
+                }else{
3477
+                    if(false){?><script><?php }?>
3478 3478
 						el(
3479 3479
 							'div',
3480 3480
 							{
3481 3481
 								className: 'col pl-0 ps-0 pr-2 pe-2',
3482 3482
 							},
3483 3483
 					<?php
3484
-					if(false){?></script><?php }
3485
-				}
3484
+                    if(false){?></script><?php }
3485
+                }
3486 3486
 
3487
-			}
3487
+            }
3488 3488
 
3489
-		}
3489
+        }
3490 3490
 
3491
-		public function block_row_end($key, $args){
3491
+        public function block_row_end($key, $args){
3492 3492
 
3493
-			if(!empty($args['row'])){
3494
-				// maybe close
3495
-				if(!empty($args['row']['close'])){
3496
-					echo "))";
3497
-				}
3493
+            if(!empty($args['row'])){
3494
+                // maybe close
3495
+                if(!empty($args['row']['close'])){
3496
+                    echo "))";
3497
+                }
3498 3498
 
3499
-				echo "),";
3500
-			}
3501
-		}
3499
+                echo "),";
3500
+            }
3501
+        }
3502 3502
 
3503
-		public function block_tab_start($key, $args){
3503
+        public function block_tab_start($key, $args){
3504 3504
 
3505
-			// check for row
3506
-			if(!empty($args['tab'])){
3505
+            // check for row
3506
+            if(!empty($args['tab'])){
3507 3507
 
3508
-				if(!empty($args['tab']['tabs_open'])){
3508
+                if(!empty($args['tab']['tabs_open'])){
3509 3509
 
3510
-					if(false){?><script><?php }?>
3510
+                    if(false){?><script><?php }?>
3511 3511
 
3512 3512
 el('div',{className: 'bsui'},
3513 3513
 
@@ -3520,12 +3520,12 @@  discard block
 block discarded – undo
3520 3520
 										tabs: [
3521 3521
 
3522 3522
 					<?php
3523
-					if(false){?></script><?php }
3524
-				}
3523
+                    if(false){?></script><?php }
3524
+                }
3525 3525
 
3526
-				if(!empty($args['tab']['open'])){
3526
+                if(!empty($args['tab']['open'])){
3527 3527
 
3528
-					if(false){?><script><?php }?>
3528
+                    if(false){?><script><?php }?>
3529 3529
 							{
3530 3530
 												name: '<?php echo addslashes( esc_attr( $args['tab']['key']) ); ?>',
3531 3531
 												title: el('div', {dangerouslySetInnerHTML: {__html: '<?php echo addslashes( esc_attr( $args['tab']['title']) ); ?>'}}),
@@ -3534,93 +3534,93 @@  discard block
 block discarded – undo
3534 3534
 									className: 'components-base-control__help mb-0',
3535 3535
 									dangerouslySetInnerHTML: {__html:'<?php echo addslashes( $args['tab']['desc'] ); ?>'}
3536 3536
 								}),<?php }
3537
-					if(false){?></script><?php }
3538
-				}
3537
+                    if(false){?></script><?php }
3538
+                }
3539 3539
 
3540
-			}
3540
+            }
3541 3541
 
3542
-		}
3542
+        }
3543 3543
 
3544
-		public function block_tab_end($key, $args){
3544
+        public function block_tab_end($key, $args){
3545 3545
 
3546
-			if(!empty($args['tab'])){
3547
-				// maybe close
3548
-				if(!empty($args['tab']['close'])){
3549
-					echo ")}, /* tab close */";
3550
-				}
3546
+            if(!empty($args['tab'])){
3547
+                // maybe close
3548
+                if(!empty($args['tab']['close'])){
3549
+                    echo ")}, /* tab close */";
3550
+                }
3551 3551
 
3552
-				if(!empty($args['tab']['tabs_close'])){
3553
-					if(false){?><script><?php }?>
3552
+                if(!empty($args['tab']['tabs_close'])){
3553
+                    if(false){?><script><?php }?>
3554 3554
 						]}, ( tab ) => {
3555 3555
 								return tab.content;
3556 3556
 							}
3557 3557
 						)), /* tabs close */
3558 3558
 					<?php if(false){ ?></script><?php }
3559
-				}
3560
-			}
3561
-		}
3559
+                }
3560
+            }
3561
+        }
3562 3562
 
3563
-		public function build_block_arguments( $key, $args ) {
3564
-			$custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
3565
-			$options           = '';
3566
-			$extra             = '';
3567
-			$require           = '';
3568
-			$inside_elements   = '';
3569
-			$after_elements	   = '';
3570
-
3571
-			// `content` is a protected and special argument
3572
-			if ( $key == 'content' ) {
3573
-				return;
3574
-			}
3563
+        public function build_block_arguments( $key, $args ) {
3564
+            $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
3565
+            $options           = '';
3566
+            $extra             = '';
3567
+            $require           = '';
3568
+            $inside_elements   = '';
3569
+            $after_elements	   = '';
3570
+
3571
+            // `content` is a protected and special argument
3572
+            if ( $key == 'content' ) {
3573
+                return;
3574
+            }
3575 3575
 
3576
-			$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3577
-			$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3578
-			$device_type_icon = '';
3579
-			if($device_type=='Desktop'){
3580
-				$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3581
-			}elseif($device_type=='Tablet'){
3582
-				$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3583
-			}elseif($device_type=='Mobile'){
3584
-				$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3585
-			}
3576
+            $device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3577
+            $device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3578
+            $device_type_icon = '';
3579
+            if($device_type=='Desktop'){
3580
+                $device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3581
+            }elseif($device_type=='Tablet'){
3582
+                $device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3583
+            }elseif($device_type=='Mobile'){
3584
+                $device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3585
+            }
3586 3586
 
3587
-			// icon
3588
-			$icon = '';
3589
-			if( !empty( $args['icon'] ) ){
3590
-				$icon .= "el('div', {";
3591
-									$icon .= "dangerouslySetInnerHTML: {__html: '".self::get_widget_icon( esc_attr($args['icon']))."'},";
3592
-									$icon .= "className: 'text-center',";
3593
-									$icon .= "title: '".addslashes( $args['title'] )."',";
3594
-								$icon .= "}),";
3595
-
3596
-				// blank title as its added to the icon.
3597
-				$args['title'] = '';
3598
-			}
3587
+            // icon
3588
+            $icon = '';
3589
+            if( !empty( $args['icon'] ) ){
3590
+                $icon .= "el('div', {";
3591
+                                    $icon .= "dangerouslySetInnerHTML: {__html: '".self::get_widget_icon( esc_attr($args['icon']))."'},";
3592
+                                    $icon .= "className: 'text-center',";
3593
+                                    $icon .= "title: '".addslashes( $args['title'] )."',";
3594
+                                $icon .= "}),";
3595
+
3596
+                // blank title as its added to the icon.
3597
+                $args['title'] = '';
3598
+            }
3599 3599
 
3600
-			// require advanced
3601
-			$require_advanced = ! empty( $args['advanced'] ) ? "props.attributes.show_advanced && " : "";
3600
+            // require advanced
3601
+            $require_advanced = ! empty( $args['advanced'] ) ? "props.attributes.show_advanced && " : "";
3602 3602
 
3603
-			// element require
3604
-			$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3603
+            // element require
3604
+            $element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3605 3605
 
3606 3606
 
3607
-			$onchange  = "props.setAttributes({ $key: $key } )";
3608
-			$onchangecomplete  = "";
3609
-			$value     = "props.attributes.$key";
3610
-			$text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'colorx','range' );
3611
-			if ( in_array( $args['type'], $text_type ) ) {
3612
-				$type = 'TextControl';
3613
-				// Save numbers as numbers and not strings
3614
-				if ( $args['type'] == 'number' ) {
3615
-					$onchange = "props.setAttributes({ $key: $key ? Number($key) : '' } )";
3616
-				}
3607
+            $onchange  = "props.setAttributes({ $key: $key } )";
3608
+            $onchangecomplete  = "";
3609
+            $value     = "props.attributes.$key";
3610
+            $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'colorx','range' );
3611
+            if ( in_array( $args['type'], $text_type ) ) {
3612
+                $type = 'TextControl';
3613
+                // Save numbers as numbers and not strings
3614
+                if ( $args['type'] == 'number' ) {
3615
+                    $onchange = "props.setAttributes({ $key: $key ? Number($key) : '' } )";
3616
+                }
3617 3617
 
3618
-				if (substr($key, 0, 9 ) === 'metadata_') {
3619
-					$real_key = str_replace('metadata_','', $key );
3620
-					$onchange = "props.setAttributes({ metadata: { $real_key: $key } } )";
3621
-					$value     = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3622
-				}
3623
-			}
3618
+                if (substr($key, 0, 9 ) === 'metadata_') {
3619
+                    $real_key = str_replace('metadata_','', $key );
3620
+                    $onchange = "props.setAttributes({ metadata: { $real_key: $key } } )";
3621
+                    $value     = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3622
+                }
3623
+            }
3624 3624
 //			else if ( $args['type'] == 'popup' ) {
3625 3625
 //				$type = 'TextControl';
3626 3626
 //				$args['type'] == 'text';
@@ -3638,21 +3638,21 @@  discard block
 block discarded – undo
3638 3638
 //
3639 3639
 //				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3640 3640
 //			}
3641
-			else if ( $args['type'] == 'styleid' ) {
3642
-				$type = 'TextControl';
3643
-				$args['type'] == 'text';
3644
-				// Save numbers as numbers and not strings
3645
-				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3646
-			}else if ( $args['type'] == 'notice' ) {
3647
-
3648
-				$notice_message = !empty($args['desc']) ? addslashes($args['desc']) : '';
3649
-				$notice_status = !empty($args['status']) ? esc_attr($args['status']) : 'info';
3650
-
3651
-				$notice = "el('div',{className:'bsui'},el(wp.components.Notice, {status: '$notice_status',isDismissible: false,className: 'm-0 pr-0 pe-0 mb-3'},el('div',{dangerouslySetInnerHTML: {__html: '$notice_message'}}))),";
3652
-				echo $notice_message ? $element_require . $notice : '';
3653
-				return;
3654
-			}
3655
-			/*
3641
+            else if ( $args['type'] == 'styleid' ) {
3642
+                $type = 'TextControl';
3643
+                $args['type'] == 'text';
3644
+                // Save numbers as numbers and not strings
3645
+                $value     = "props.attributes.$key ? props.attributes.$key : ''";
3646
+            }else if ( $args['type'] == 'notice' ) {
3647
+
3648
+                $notice_message = !empty($args['desc']) ? addslashes($args['desc']) : '';
3649
+                $notice_status = !empty($args['status']) ? esc_attr($args['status']) : 'info';
3650
+
3651
+                $notice = "el('div',{className:'bsui'},el(wp.components.Notice, {status: '$notice_status',isDismissible: false,className: 'm-0 pr-0 pe-0 mb-3'},el('div',{dangerouslySetInnerHTML: {__html: '$notice_message'}}))),";
3652
+                echo $notice_message ? $element_require . $notice : '';
3653
+                return;
3654
+            }
3655
+            /*
3656 3656
 			 * https://www.wptricks.com/question/set-current-tab-on-a-gutenberg-tabpanel-component-from-outside-that-component/ es5 layout
3657 3657
 						elseif($args['type']=='tabs'){
3658 3658
 							?>
@@ -3705,22 +3705,22 @@  discard block
 block discarded – undo
3705 3705
 							return;
3706 3706
 						}
3707 3707
 */
3708
-			elseif ( $args['type'] == 'color' ) {
3709
-				$type = 'ColorPicker';
3710
-				$onchange = "";
3711
-				$extra = "color: $value,";
3712
-				if(!empty($args['disable_alpha'])){
3713
-					$extra .= "disableAlpha: true,";
3714
-				}
3715
-				$onchangecomplete = "onChangeComplete: function($key) {
3708
+            elseif ( $args['type'] == 'color' ) {
3709
+                $type = 'ColorPicker';
3710
+                $onchange = "";
3711
+                $extra = "color: $value,";
3712
+                if(!empty($args['disable_alpha'])){
3713
+                    $extra .= "disableAlpha: true,";
3714
+                }
3715
+                $onchangecomplete = "onChangeComplete: function($key) {
3716 3716
 				value =  $key.rgb.a && $key.rgb.a < 1 ? \"rgba(\"+$key.rgb.r+\",\"+$key.rgb.g+\",\"+$key.rgb.b+\",\"+$key.rgb.a+\")\" : $key.hex;
3717 3717
 						props.setAttributes({
3718 3718
 							$key: value
3719 3719
 						});
3720 3720
 					},";
3721
-			}elseif ( $args['type'] == 'gradient' ) {
3722
-				$type = 'GradientPicker';
3723
-				$extra .= "gradients: [{
3721
+            }elseif ( $args['type'] == 'gradient' ) {
3722
+                $type = 'GradientPicker';
3723
+                $extra .= "gradients: [{
3724 3724
 			name: 'Vivid cyan blue to vivid purple',
3725 3725
 			gradient:
3726 3726
 				'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
@@ -3757,10 +3757,10 @@  discard block
 block discarded – undo
3757 3757
 			slug: 'cool-to-warm-spectrum',
3758 3758
 		}],";
3759 3759
 
3760
-			}elseif ( $args['type'] == 'image' ) {
3760
+            }elseif ( $args['type'] == 'image' ) {
3761 3761
 //                print_r($args);
3762 3762
 
3763
-				$img_preview = isset($args['focalpoint']) && !$args['focalpoint'] ? " props.attributes.$key && el('img', { src: props.attributes.$key,style: {maxWidth:'100%',background: '#ccc'}})," : " ( props.attributes.$key ||  props.attributes.{$key}_use_featured ) && el(wp.components.FocalPointPicker,{
3763
+                $img_preview = isset($args['focalpoint']) && !$args['focalpoint'] ? " props.attributes.$key && el('img', { src: props.attributes.$key,style: {maxWidth:'100%',background: '#ccc'}})," : " ( props.attributes.$key ||  props.attributes.{$key}_use_featured ) && el(wp.components.FocalPointPicker,{
3764 3764
 							url:  props.attributes.{$key}_use_featured === true ? 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxzdmcgYmFzZVByb2ZpbGU9InRpbnkiIGhlaWdodD0iNDAwIiB2ZXJzaW9uPSIxLjIiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6ZXY9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEveG1sLWV2ZW50cyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzIC8+PHJlY3QgZmlsbD0iI2QzZDNkMyIgaGVpZ2h0PSI0MDAiIHdpZHRoPSI0MDAiIHg9IjAiIHk9IjAiIC8+PGxpbmUgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMCIgeDE9IjAiIHgyPSI0MDAiIHkxPSIwIiB5Mj0iNDAwIiAvPjxsaW5lIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMTAiIHgxPSIwIiB4Mj0iNDAwIiB5MT0iNDAwIiB5Mj0iMCIgLz48cmVjdCBmaWxsPSIjZDNkM2QzIiBoZWlnaHQ9IjUwIiB3aWR0aD0iMjE4LjAiIHg9IjkxLjAiIHk9IjE3NS4wIiAvPjx0ZXh0IGZpbGw9IndoaXRlIiBmb250LXNpemU9IjMwIiBmb250LXdlaWdodD0iYm9sZCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjAwLjAiIHk9IjIwNy41Ij5QTEFDRUhPTERFUjwvdGV4dD48L3N2Zz4='  : props.attributes.$key,
3765 3765
 							value: props.attributes.{$key}_xy.x !== undefined && props.attributes.{$key}_xy.x >= 0 ? props.attributes.{$key}_xy  : {x: 0.5,y: 0.5,},
3766 3766
 //                            value: props.attributes.{$key}_xy,
@@ -3781,16 +3781,16 @@  discard block
 block discarded – undo
3781 3781
 						}), ";
3782 3782
 
3783 3783
 
3784
-				$value = '""';
3785
-				$type = 'MediaUpload';
3786
-				$extra .= "onSelect: function(media){
3784
+                $value = '""';
3785
+                $type = 'MediaUpload';
3786
+                $extra .= "onSelect: function(media){
3787 3787
 					  return props.setAttributes({
3788 3788
 						  $key: media.url,
3789 3789
 						  {$key}_id: media.id
3790 3790
 						});
3791 3791
 					  },";
3792
-				   $extra .= "type: 'image',";
3793
-				   $extra .= "render: function (obj) {
3792
+                    $extra .= "type: 'image',";
3793
+                    $extra .= "render: function (obj) {
3794 3794
 						return el( 'div',{},
3795 3795
 						( !props.attributes.$key && !props.attributes.{$key}_use_featured ) && el( wp.components.Button, {
3796 3796
 						  className: 'components-button components-circular-option-picker__clear is-primary is-smallx',
@@ -3816,11 +3816,11 @@  discard block
 block discarded – undo
3816 3816
 
3817 3817
 
3818 3818
 					  }";
3819
-				$onchange = "";
3819
+                $onchange = "";
3820 3820
 
3821
-				//$inside_elements = ",el('div',{},'file upload')";
3822
-			} else if ( $args['type'] == 'images' ) {
3823
-				$img_preview = "props.attributes.$key && (function() {
3821
+                //$inside_elements = ",el('div',{},'file upload')";
3822
+            } else if ( $args['type'] == 'images' ) {
3823
+                $img_preview = "props.attributes.$key && (function() {
3824 3824
 	let uploads = JSON.parse('['+props.attributes.$key+']');
3825 3825
 	let images = [];
3826 3826
 	uploads.map((upload, index) => (
@@ -3847,9 +3847,9 @@  discard block
 block discarded – undo
3847 3847
 })(),";
3848 3848
 
3849 3849
 
3850
-				$value = '""';
3851
-				$type = 'MediaUpload';
3852
-				$extra .= "onSelect: function(media){
3850
+                $value = '""';
3851
+                $type = 'MediaUpload';
3852
+                $extra .= "onSelect: function(media){
3853 3853
 	let slim_images = props.attributes.$key ? JSON.parse('['+props.attributes.$key+']') : [];
3854 3854
 	if(media.length){
3855 3855
 		for (var i=0; i < media.length; i++) {
@@ -3862,9 +3862,9 @@  discard block
 block discarded – undo
3862 3862
 	}
3863 3863
 	return props.setAttributes({ $key: slimImagesV});
3864 3864
 },";
3865
-				$extra .= "type: 'image',";
3866
-				$extra .= "multiple: true,";
3867
-				$extra .= "render: function (obj) {
3865
+                $extra .= "type: 'image',";
3866
+                $extra .= "multiple: true,";
3867
+                $extra .= "render: function (obj) {
3868 3868
 	/* Init the sort */
3869 3869
 	enableDragSort('sd-sortable');
3870 3870
 	return el( 'div',{},
@@ -3891,40 +3891,40 @@  discard block
 block discarded – undo
3891 3891
 		)
3892 3892
 	)
3893 3893
 }";
3894
-				$onchange = "";
3894
+                $onchange = "";
3895 3895
 
3896
-				//$inside_elements = ",el('div',{},'file upload')";
3897
-			}
3898
-			elseif ( $args['type'] == 'checkbox' ) {
3899
-				$type = 'CheckboxControl';
3900
-				$extra .= "checked: props.attributes.$key,";
3901
-				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
3902
-			} elseif ( $args['type'] == 'textarea' ) {
3903
-				$type = 'TextareaControl';
3904
-
3905
-			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
3906
-				$type = 'SelectControl';
3907
-
3908
-				if($args['name'] == 'category' && !empty($args['post_type_linked'])){
3909
-					$options .= "options: taxonomies_".str_replace("-","_", $this->id).",";
3910
-				}elseif($args['name'] == 'sort_by' && !empty($args['post_type_linked'])){
3911
-					$options .= "options: sort_by_".str_replace("-","_", $this->id).",";
3912
-				}else {
3913
-
3914
-					if ( ! empty( $args['options'] ) ) {
3915
-						$options .= "options: [";
3916
-						foreach ( $args['options'] as $option_val => $option_label ) {
3917
-							$options .= "{ value: '" . esc_attr( $option_val ) . "', label: '" . esc_js( addslashes( $option_label ) ) . "' },";
3918
-						}
3919
-						$options .= "],";
3920
-					}
3921
-				}
3922
-				if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3923
-					$extra .= ' multiple:true,style:{height:"auto",paddingRight:"8px","overflow-y":"auto"}, ';
3924
-				}
3896
+                //$inside_elements = ",el('div',{},'file upload')";
3897
+            }
3898
+            elseif ( $args['type'] == 'checkbox' ) {
3899
+                $type = 'CheckboxControl';
3900
+                $extra .= "checked: props.attributes.$key,";
3901
+                $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
3902
+            } elseif ( $args['type'] == 'textarea' ) {
3903
+                $type = 'TextareaControl';
3904
+
3905
+            } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
3906
+                $type = 'SelectControl';
3907
+
3908
+                if($args['name'] == 'category' && !empty($args['post_type_linked'])){
3909
+                    $options .= "options: taxonomies_".str_replace("-","_", $this->id).",";
3910
+                }elseif($args['name'] == 'sort_by' && !empty($args['post_type_linked'])){
3911
+                    $options .= "options: sort_by_".str_replace("-","_", $this->id).",";
3912
+                }else {
3913
+
3914
+                    if ( ! empty( $args['options'] ) ) {
3915
+                        $options .= "options: [";
3916
+                        foreach ( $args['options'] as $option_val => $option_label ) {
3917
+                            $options .= "{ value: '" . esc_attr( $option_val ) . "', label: '" . esc_js( addslashes( $option_label ) ) . "' },";
3918
+                        }
3919
+                        $options .= "],";
3920
+                    }
3921
+                }
3922
+                if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3923
+                    $extra .= ' multiple:true,style:{height:"auto",paddingRight:"8px","overflow-y":"auto"}, ';
3924
+                }
3925 3925
 
3926
-				if($args['type'] == 'multiselect' ||  ( isset( $args['multiple'] ) && $args['multiple'] ) ){
3927
-					$after_elements	 .= "props.attributes.$key && el( wp.components.Button, {
3926
+                if($args['type'] == 'multiselect' ||  ( isset( $args['multiple'] ) && $args['multiple'] ) ){
3927
+                    $after_elements	 .= "props.attributes.$key && el( wp.components.Button, {
3928 3928
 									  className: 'components-button components-circular-option-picker__clear is-secondary is-small',
3929 3929
 									  style: {margin:'-8px 0 8px 0',display: 'block'},
3930 3930
 									  onClick: function(){
@@ -3935,8 +3935,8 @@  discard block
 block discarded – undo
3935 3935
 									},
3936 3936
 									'Clear'
3937 3937
 							),";
3938
-				}
3939
-			} elseif ( $args['type'] == 'tagselect' ) {
3938
+                }
3939
+            } elseif ( $args['type'] == 'tagselect' ) {
3940 3940
 //				$type = 'FormTokenField';
3941 3941
 //
3942 3942
 //				if ( ! empty( $args['options'] ) ) {
@@ -3971,20 +3971,20 @@  discard block
 block discarded – undo
3971 3971
 //				$value     = "[]";
3972 3972
 //				$extra .= ' __experimentalExpandOnFocus: true,';
3973 3973
 
3974
-			} else if ( $args['type'] == 'alignment' ) {
3975
-				$type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
3976
-			} else if ( $args['type'] == 'margins' ) {
3977
-
3978
-			} else if ( $args['type'] == 'visibility_conditions' && ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
3979
-				$type = 'TextControl';
3980
-				$value = "(props.attributes.$key ? props.attributes.$key : '')";
3981
-				$args['type'] = 'text';
3982
-				$options .= 'disabled:true,';
3983
-				$bsvc_title = esc_attr( addslashes( $args['title'] ) );
3984
-				$bsvc_body = $this->block_visibility_fields( $args );
3985
-				// @TODO reset button
3986
-				$bsvc_footer = '<button type="button" class="btn btn-danger d-none">' . __( 'Reset', 'ayecode-connect' ) . '</button><button type="button" class="btn btn-secondary bs-vc-close text-white" data-bs-dismiss="modal">' . __( 'Close', 'ayecode-connect' ) . '</button><button type="button" class="btn btn-primary bs-vc-save">' . __( 'Save Rules', 'ayecode-connect' ) . '</button>';
3987
-				$after_elements .= "el('div', {className: 'components-base-control bs-vc-button-wrap'}, el(wp.components.Button, {
3974
+            } else if ( $args['type'] == 'alignment' ) {
3975
+                $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
3976
+            } else if ( $args['type'] == 'margins' ) {
3977
+
3978
+            } else if ( $args['type'] == 'visibility_conditions' && ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
3979
+                $type = 'TextControl';
3980
+                $value = "(props.attributes.$key ? props.attributes.$key : '')";
3981
+                $args['type'] = 'text';
3982
+                $options .= 'disabled:true,';
3983
+                $bsvc_title = esc_attr( addslashes( $args['title'] ) );
3984
+                $bsvc_body = $this->block_visibility_fields( $args );
3985
+                // @TODO reset button
3986
+                $bsvc_footer = '<button type="button" class="btn btn-danger d-none">' . __( 'Reset', 'ayecode-connect' ) . '</button><button type="button" class="btn btn-secondary bs-vc-close text-white" data-bs-dismiss="modal">' . __( 'Close', 'ayecode-connect' ) . '</button><button type="button" class="btn btn-primary bs-vc-save">' . __( 'Save Rules', 'ayecode-connect' ) . '</button>';
3987
+                $after_elements .= "el('div', {className: 'components-base-control bs-vc-button-wrap'}, el(wp.components.Button, {
3988 3988
 						className: 'components-button components-circular-option-picker__clear is-primary is-smallx',
3989 3989
 						onClick: function() {
3990 3990
 							var sValue = props.attributes." . $key . ";
@@ -4010,39 +4010,39 @@  discard block
 block discarded – undo
4010 4010
 					},
4011 4011
 					'" . addslashes( ! empty( $args['button_title'] ) ? $args['button_title'] : $args['title'] ) . "'
4012 4012
 				) ),";
4013
-			} else {
4014
-				return;// if we have not implemented the control then don't break the JS.
4015
-			}
4013
+            } else {
4014
+                return;// if we have not implemented the control then don't break the JS.
4015
+            }
4016 4016
 
4017
-			// color input does not show the labels so we add them
4018
-			if($args['type']=='color'){
4019
-				// add show only if advanced
4020
-				echo $require_advanced;
4021
-				// add setting require if defined
4022
-				echo $element_require;
4023
-				echo "el('div', {style: {'marginBottom': '8px'}}, '".addslashes( $args['title'] )."'),";
4024
-			}
4017
+            // color input does not show the labels so we add them
4018
+            if($args['type']=='color'){
4019
+                // add show only if advanced
4020
+                echo $require_advanced;
4021
+                // add setting require if defined
4022
+                echo $element_require;
4023
+                echo "el('div', {style: {'marginBottom': '8px'}}, '".addslashes( $args['title'] )."'),";
4024
+            }
4025 4025
 
4026
-			// add show only if advanced
4027
-			echo $require_advanced;
4028
-			// add setting require if defined
4029
-			echo $element_require;
4030
-			echo $device_type_require;
4026
+            // add show only if advanced
4027
+            echo $require_advanced;
4028
+            // add setting require if defined
4029
+            echo $element_require;
4030
+            echo $device_type_require;
4031 4031
 
4032
-			// icon
4033
-			echo $icon;
4034
-			?>
4032
+            // icon
4033
+            echo $icon;
4034
+            ?>
4035 4035
 			el( <?php echo $args['type'] == 'image' || $args['type'] == 'images' ? $type  : "wp.components.".$type; ?>, {
4036 4036
 			label: <?php if ( empty( $args['title'] ) ) { echo "''"; } else if ( empty( $args['row'] ) && ! empty( $args['device_type'] ) ) { ?>el('label',{className:'components-base-control__label',style:{width:"100%"}},el('span',{dangerouslySetInnerHTML: {__html: '<?php echo addslashes( $args['title'] ) ?>'}}),<?php if ( $device_type_icon ) { ?>deviceType == '<?php echo $device_type;?>' && el('span',{dangerouslySetInnerHTML: {__html: '<?php echo $device_type_icon; ?>'},title: deviceType + ": Set preview mode to change",style: {right:"0",position:"absolute",color:"var(--wp-admin-theme-color)"}})<?php } ?>)<?php
4037
-			} else { ?>'<?php echo addslashes( trim( esc_html( $args['title'] ) ) ); ?>'<?php } ?>,
4037
+            } else { ?>'<?php echo addslashes( trim( esc_html( $args['title'] ) ) ); ?>'<?php } ?>,
4038 4038
 			help: <?php echo ( isset( $args['desc'] ) ? "el('span', {dangerouslySetInnerHTML: {__html: '" . trim( wp_kses_post( addslashes( $args['desc'] ) ) ) . "'}})" : "''" ); ?>,
4039 4039
 			value: <?php echo $value; ?>,
4040 4040
 			<?php if ( $type == 'TextControl' && $args['type'] != 'text' ) {
4041
-				echo "type: '" . addslashes( $args['type'] ) . "',";
4042
-			} ?>
4041
+                echo "type: '" . addslashes( $args['type'] ) . "',";
4042
+            } ?>
4043 4043
 			<?php if ( ! empty( $args['placeholder'] ) ) {
4044
-				echo "placeholder: '" . esc_js( addslashes( trim( esc_html( $args['placeholder'] ) ) ) ) . "',";
4045
-			} ?>
4044
+                echo "placeholder: '" . esc_js( addslashes( trim( esc_html( $args['placeholder'] ) ) ) ) . "',";
4045
+            } ?>
4046 4046
 			<?php echo $options; ?>
4047 4047
 			<?php echo $extra; ?>
4048 4048
 			<?php echo $custom_attributes; ?>
@@ -4054,1366 +4054,1366 @@  discard block
 block discarded – undo
4054 4054
 			<?php } ?>
4055 4055
 		} <?php echo $inside_elements; ?> ),
4056 4056
 			<?php
4057
-			echo $after_elements;
4058
-		}
4057
+            echo $after_elements;
4058
+        }
4059 4059
 
4060
-		/**
4061
-		 * Convert an array of attributes to block string.
4062
-		 *
4063
-		 * @param $custom_attributes
4064
-		 *
4065
-		 * @return string
4066
-		 *@todo there is prob a faster way to do this, also we could add some validation here.
4067
-		 *
4068
-		 */
4069
-		public function array_to_attributes( $custom_attributes, $html = false ) {
4070
-			$attributes = '';
4071
-			if ( ! empty( $custom_attributes ) ) {
4072
-
4073
-				foreach ( $custom_attributes as $key => $val ) {
4074
-					if(is_array($val)){
4075
-						$attributes .= $key.': {'.$this->array_to_attributes( $val, $html ).'},';
4076
-					}else{
4077
-						$attributes .= $html ?  " $key='$val' " : "'$key': '$val',";
4078
-					}
4079
-				}
4060
+        /**
4061
+         * Convert an array of attributes to block string.
4062
+         *
4063
+         * @param $custom_attributes
4064
+         *
4065
+         * @return string
4066
+         *@todo there is prob a faster way to do this, also we could add some validation here.
4067
+         *
4068
+         */
4069
+        public function array_to_attributes( $custom_attributes, $html = false ) {
4070
+            $attributes = '';
4071
+            if ( ! empty( $custom_attributes ) ) {
4072
+
4073
+                foreach ( $custom_attributes as $key => $val ) {
4074
+                    if(is_array($val)){
4075
+                        $attributes .= $key.': {'.$this->array_to_attributes( $val, $html ).'},';
4076
+                    }else{
4077
+                        $attributes .= $html ?  " $key='$val' " : "'$key': '$val',";
4078
+                    }
4079
+                }
4080 4080
 
4081
-			}
4081
+            }
4082 4082
 
4083
-			return $attributes;
4084
-		}
4083
+            return $attributes;
4084
+        }
4085 4085
 
4086 4086
 
4087 4087
 
4088
-		/**
4089
-		 * A self looping function to create the output for JS block elements.
4090
-		 *
4091
-		 * This is what is output in the WP Editor visual view.
4092
-		 *
4093
-		 * @param $args
4094
-		 */
4095
-		public function block_element( $args, $save = false ) {
4088
+        /**
4089
+         * A self looping function to create the output for JS block elements.
4090
+         *
4091
+         * This is what is output in the WP Editor visual view.
4092
+         *
4093
+         * @param $args
4094
+         */
4095
+        public function block_element( $args, $save = false ) {
4096 4096
 
4097 4097
 //            print_r($args);echo '###';exit;
4098 4098
 
4099
-			if ( ! empty( $args ) ) {
4100
-				foreach ( $args as $element => $new_args ) {
4099
+            if ( ! empty( $args ) ) {
4100
+                foreach ( $args as $element => $new_args ) {
4101 4101
 
4102
-					if ( is_array( $new_args ) ) { // its an element
4102
+                    if ( is_array( $new_args ) ) { // its an element
4103 4103
 
4104 4104
 
4105
-						if ( isset( $new_args['element'] ) ) {
4105
+                        if ( isset( $new_args['element'] ) ) {
4106 4106
 
4107
-							if ( isset( $new_args['element_require'] ) ) {
4108
-								echo str_replace( array(
4109
-										"'+",
4110
-										"+'"
4111
-									), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
4112
-								unset( $new_args['element_require'] );
4113
-							}
4107
+                            if ( isset( $new_args['element_require'] ) ) {
4108
+                                echo str_replace( array(
4109
+                                        "'+",
4110
+                                        "+'"
4111
+                                    ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
4112
+                                unset( $new_args['element_require'] );
4113
+                            }
4114 4114
 
4115
-							if($new_args['element']=='InnerBlocks'){
4116
-								echo "\n el( InnerBlocks, {";
4117
-							}elseif($new_args['element']=='innerBlocksProps'){
4118
-								$element = isset($new_args['inner_element']) ? esc_attr($new_args['inner_element']) : 'div';
4119
-							  //  echo "\n el( 'section', wp.blockEditor.useInnerBlocksProps( blockProps, {";
4115
+                            if($new_args['element']=='InnerBlocks'){
4116
+                                echo "\n el( InnerBlocks, {";
4117
+                            }elseif($new_args['element']=='innerBlocksProps'){
4118
+                                $element = isset($new_args['inner_element']) ? esc_attr($new_args['inner_element']) : 'div';
4119
+                                //  echo "\n el( 'section', wp.blockEditor.useInnerBlocksProps( blockProps, {";
4120 4120
 //                                echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4121
-								echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4122
-								echo $save ? "wp.blockEditor.useBlockProps.save( {" : "wp.blockEditor.useBlockProps( {";
4123
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4124
-
4125
-								echo "} ), {";
4126
-								echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element( $new_args['innerBlocksProps'],$save ) : '';
4127
-							//    echo '###';
4121
+                                echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4122
+                                echo $save ? "wp.blockEditor.useBlockProps.save( {" : "wp.blockEditor.useBlockProps( {";
4123
+                                echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4124
+
4125
+                                echo "} ), {";
4126
+                                echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element( $new_args['innerBlocksProps'],$save ) : '';
4127
+                            //    echo '###';
4128
+
4129
+                                //  echo '###';
4130
+                            }elseif($new_args['element']=='BlocksProps'){
4131
+
4132
+                                if ( isset($new_args['if_inner_element']) ) {
4133
+                                    $element = $new_args['if_inner_element'];
4134
+                                }else {
4135
+                                    $element = isset($new_args['inner_element']) ? "'".esc_attr($new_args['inner_element'])."'" : "'div'";
4136
+                                }
4137
+
4138
+                                unset($new_args['inner_element']);
4139
+                                echo $save ? "\n el( $element, wp.blockEditor.useBlockProps.save( {" : "\n el( $element, wp.blockEditor.useBlockProps( {";
4140
+                                echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4141
+
4142
+
4143
+                                // echo "} ),";
4144
+
4145
+                            }else{
4146
+                                echo "\n el( '" . $new_args['element'] . "', {";
4147
+                            }
4148
+
4149
+
4150
+                            // get the attributes
4151
+                            foreach ( $new_args as $new_key => $new_value ) {
4152
+
4153
+
4154
+                                if ( $new_key == 'element' || $new_key == 'content'|| $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
4155
+                                    // do nothing
4156
+                                } else {
4157
+                                    echo $this->block_element( array( $new_key => $new_value ),$save );
4158
+                                }
4159
+                            }
4160
+
4161
+                            echo $new_args['element']=='BlocksProps' ? '} ),' : "},";// end attributes
4162
+
4163
+                            // get the content
4164
+                            $first_item = 0;
4165
+                            foreach ( $new_args as $new_key => $new_value ) {
4166
+                                if ( $new_key === 'content' || $new_key === 'if_content' || is_array( $new_value ) ) {
4167
+
4168
+                                    if ( $new_key === 'content' ) {
4169
+                                        echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
4170
+                                    }else if ( $new_key === 'if_content' ) {
4171
+                                        echo  $this->block_props_replace(  $new_value  );
4172
+                                    }
4173
+
4174
+                                    if ( is_array( $new_value ) ) {
4175
+
4176
+                                        if ( isset( $new_value['element_require'] ) ) {
4177
+                                            echo str_replace( array(
4178
+                                                    "'+",
4179
+                                                    "+'"
4180
+                                                ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
4181
+                                            unset( $new_value['element_require'] );
4182
+                                        }
4183
+
4184
+                                        if ( isset( $new_value['element_repeat'] ) ) {
4185
+                                            $x = 1;
4186
+                                            while ( $x <= absint( $new_value['element_repeat'] ) ) {
4187
+                                                $this->block_element( array( '' => $new_value ),$save );
4188
+                                                $x ++;
4189
+                                            }
4190
+                                        } else {
4191
+                                            $this->block_element( array( '' => $new_value ),$save );
4192
+                                        }
4193
+                                    }
4194
+                                    $first_item ++;
4195
+                                }
4196
+                            }
4197
+
4198
+                            if($new_args['element']=='innerBlocksProps' || $new_args['element']=='xBlocksProps'){
4199
+                                echo "))";// end content
4200
+                            }else{
4201
+                                echo ")";// end content
4202
+                            }
4203
+
4204
+
4205
+                            echo ", \n";
4206
+
4207
+                        }
4208
+                    } else {
4209
+
4210
+                        if ( substr( $element, 0, 3 ) === "if_" ) {
4211
+                            $extra = '';
4212
+                            if( strpos($new_args, '[%WrapClass%]') !== false ){
4213
+                                $new_args = str_replace('[%WrapClass%]"','" + sd_build_aui_class(props.attributes)',$new_args);
4214
+                                $new_args = str_replace('[%WrapClass%]','+ sd_build_aui_class(props.attributes)',$new_args);
4215
+                            }
4216
+                            echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
4217
+                        } elseif ( $element == 'style' &&  strpos($new_args, '[%WrapStyle%]') !== false ) {
4218
+                            $new_args = str_replace('[%WrapStyle%]','',$new_args);
4219
+                            echo $element . ": {..." . $this->block_props_replace( $new_args ) . " , ...sd_build_aui_styles(props.attributes) },";
4220
+//                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4221
+                        } elseif ( $element == 'style' ) {
4222
+                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4223
+                        } elseif ( ( $element == 'class' || $element == 'className'  ) &&  strpos($new_args, '[%WrapClass%]') !== false ) {
4224
+                            $new_args = str_replace('[%WrapClass%]','',$new_args);
4225
+                            echo $element . ": '" . $this->block_props_replace( $new_args ) . "' + sd_build_aui_class(props.attributes),";
4226
+                        } elseif ( $element == 'template' && $new_args ) {
4227
+                            echo $element . ": $new_args,";
4228
+                        } else {
4229
+                            echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
4230
+                        }
4231
+
4232
+                    }
4233
+                }
4234
+            }
4235
+        }
4128 4236
 
4129
-							  //  echo '###';
4130
-							}elseif($new_args['element']=='BlocksProps'){
4131
-
4132
-								if ( isset($new_args['if_inner_element']) ) {
4133
-									$element = $new_args['if_inner_element'];
4134
-								}else {
4135
-									$element = isset($new_args['inner_element']) ? "'".esc_attr($new_args['inner_element'])."'" : "'div'";
4136
-								}
4137
-
4138
-								unset($new_args['inner_element']);
4139
-								echo $save ? "\n el( $element, wp.blockEditor.useBlockProps.save( {" : "\n el( $element, wp.blockEditor.useBlockProps( {";
4140
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4141
-
4142
-
4143
-							   // echo "} ),";
4144
-
4145
-							}else{
4146
-								echo "\n el( '" . $new_args['element'] . "', {";
4147
-							}
4148
-
4149
-
4150
-							// get the attributes
4151
-							foreach ( $new_args as $new_key => $new_value ) {
4152
-
4153
-
4154
-								if ( $new_key == 'element' || $new_key == 'content'|| $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
4155
-									// do nothing
4156
-								} else {
4157
-									echo $this->block_element( array( $new_key => $new_value ),$save );
4158
-								}
4159
-							}
4160
-
4161
-							echo $new_args['element']=='BlocksProps' ? '} ),' : "},";// end attributes
4162
-
4163
-							// get the content
4164
-							$first_item = 0;
4165
-							foreach ( $new_args as $new_key => $new_value ) {
4166
-								if ( $new_key === 'content' || $new_key === 'if_content' || is_array( $new_value ) ) {
4167
-
4168
-									if ( $new_key === 'content' ) {
4169
-										echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
4170
-									}else if ( $new_key === 'if_content' ) {
4171
-										echo  $this->block_props_replace(  $new_value  );
4172
-									}
4173
-
4174
-									if ( is_array( $new_value ) ) {
4175
-
4176
-										if ( isset( $new_value['element_require'] ) ) {
4177
-											echo str_replace( array(
4178
-													"'+",
4179
-													"+'"
4180
-												), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
4181
-											unset( $new_value['element_require'] );
4182
-										}
4183
-
4184
-										if ( isset( $new_value['element_repeat'] ) ) {
4185
-											$x = 1;
4186
-											while ( $x <= absint( $new_value['element_repeat'] ) ) {
4187
-												$this->block_element( array( '' => $new_value ),$save );
4188
-												$x ++;
4189
-											}
4190
-										} else {
4191
-											$this->block_element( array( '' => $new_value ),$save );
4192
-										}
4193
-									}
4194
-									$first_item ++;
4195
-								}
4196
-							}
4197
-
4198
-							if($new_args['element']=='innerBlocksProps' || $new_args['element']=='xBlocksProps'){
4199
-								echo "))";// end content
4200
-							}else{
4201
-								echo ")";// end content
4202
-							}
4203
-
4204
-
4205
-							echo ", \n";
4206
-
4207
-						}
4208
-					} else {
4209
-
4210
-						if ( substr( $element, 0, 3 ) === "if_" ) {
4211
-							$extra = '';
4212
-							if( strpos($new_args, '[%WrapClass%]') !== false ){
4213
-								$new_args = str_replace('[%WrapClass%]"','" + sd_build_aui_class(props.attributes)',$new_args);
4214
-								$new_args = str_replace('[%WrapClass%]','+ sd_build_aui_class(props.attributes)',$new_args);
4215
-							}
4216
-							echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
4217
-						} elseif ( $element == 'style' &&  strpos($new_args, '[%WrapStyle%]') !== false ) {
4218
-							$new_args = str_replace('[%WrapStyle%]','',$new_args);
4219
-							echo $element . ": {..." . $this->block_props_replace( $new_args ) . " , ...sd_build_aui_styles(props.attributes) },";
4220
-//                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4221
-						} elseif ( $element == 'style' ) {
4222
-							echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4223
-						} elseif ( ( $element == 'class' || $element == 'className'  ) &&  strpos($new_args, '[%WrapClass%]') !== false ) {
4224
-							$new_args = str_replace('[%WrapClass%]','',$new_args);
4225
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "' + sd_build_aui_class(props.attributes),";
4226
-						} elseif ( $element == 'template' && $new_args ) {
4227
-							echo $element . ": $new_args,";
4228
-						} else {
4229
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
4230
-						}
4231
-
4232
-					}
4233
-				}
4234
-			}
4235
-		}
4236
-
4237
-		/**
4238
-		 * Replace block attributes placeholders with the proper naming.
4239
-		 *
4240
-		 * @param $string
4241
-		 *
4242
-		 * @return mixed
4243
-		 */
4244
-		public function block_props_replace( $string, $no_wrap = false ) {
4245
-			if ( $no_wrap ) {
4246
-				$string = str_replace( array( "[%", "%]", "%:checked]" ), array( "props.attributes.", "", "" ), $string );
4247
-			} else {
4248
-				$string = str_replace( array( "![%", "[%", "%]", "%:checked]" ), array( "'+!props.attributes.", "'+props.attributes.", "+'", "+'" ), $string );
4249
-			}
4237
+        /**
4238
+         * Replace block attributes placeholders with the proper naming.
4239
+         *
4240
+         * @param $string
4241
+         *
4242
+         * @return mixed
4243
+         */
4244
+        public function block_props_replace( $string, $no_wrap = false ) {
4245
+            if ( $no_wrap ) {
4246
+                $string = str_replace( array( "[%", "%]", "%:checked]" ), array( "props.attributes.", "", "" ), $string );
4247
+            } else {
4248
+                $string = str_replace( array( "![%", "[%", "%]", "%:checked]" ), array( "'+!props.attributes.", "'+props.attributes.", "+'", "+'" ), $string );
4249
+            }
4250 4250
 
4251
-			return $string;
4252
-		}
4251
+            return $string;
4252
+        }
4253 4253
 
4254
-		/**
4255
-		 * Outputs the content of the widget
4256
-		 *
4257
-		 * @param array $args
4258
-		 * @param array $instance
4259
-		 */
4260
-		public function widget( $args, $instance ) {
4261
-			if ( ! is_array( $args ) ) {
4262
-				$args = array();
4263
-			}
4254
+        /**
4255
+         * Outputs the content of the widget
4256
+         *
4257
+         * @param array $args
4258
+         * @param array $instance
4259
+         */
4260
+        public function widget( $args, $instance ) {
4261
+            if ( ! is_array( $args ) ) {
4262
+                $args = array();
4263
+            }
4264 4264
 
4265
-			// Get the filtered values
4266
-			$argument_values = $this->argument_values( $instance );
4267
-			$argument_values = $this->string_to_bool( $argument_values );
4268
-			$output          = $this->output( $argument_values, $args );
4265
+            // Get the filtered values
4266
+            $argument_values = $this->argument_values( $instance );
4267
+            $argument_values = $this->string_to_bool( $argument_values );
4268
+            $output          = $this->output( $argument_values, $args );
4269 4269
 
4270
-			$no_wrap = false;
4271
-			if ( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ) {
4272
-				$no_wrap = true;
4273
-			}
4270
+            $no_wrap = false;
4271
+            if ( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ) {
4272
+                $no_wrap = true;
4273
+            }
4274 4274
 
4275
-			ob_start();
4276
-			if ( $output && ! $no_wrap ) {
4275
+            ob_start();
4276
+            if ( $output && ! $no_wrap ) {
4277 4277
 
4278
-				$class_original = $this->options['widget_ops']['classname'];
4279
-				$class = $this->options['widget_ops']['classname']." sdel-".$this->get_instance_hash();
4278
+                $class_original = $this->options['widget_ops']['classname'];
4279
+                $class = $this->options['widget_ops']['classname']." sdel-".$this->get_instance_hash();
4280 4280
 
4281
-				// Before widget
4282
-				$before_widget = ! empty( $args['before_widget'] ) ? $args['before_widget'] : '';
4283
-				$before_widget = $before_widget ? str_replace( $class_original, $class, $before_widget ) : $before_widget;
4284
-				$before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
4285
-				$before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
4281
+                // Before widget
4282
+                $before_widget = ! empty( $args['before_widget'] ) ? $args['before_widget'] : '';
4283
+                $before_widget = $before_widget ? str_replace( $class_original, $class, $before_widget ) : $before_widget;
4284
+                $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
4285
+                $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
4286 4286
 
4287
-				// After widget
4288
-				$after_widget = ! empty( $args['after_widget'] ) ? $args['after_widget'] : '';
4289
-				$after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
4290
-				$after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
4287
+                // After widget
4288
+                $after_widget = ! empty( $args['after_widget'] ) ? $args['after_widget'] : '';
4289
+                $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
4290
+                $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
4291 4291
 
4292
-				echo $before_widget;
4293
-				// elementor strips the widget wrapping div so we check for and add it back if needed
4294
-				if ( $this->is_elementor_widget_output() ) {
4295
-					// Filter class & attrs for elementor widget output.
4296
-					$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
4297
-					$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
4292
+                echo $before_widget;
4293
+                // elementor strips the widget wrapping div so we check for and add it back if needed
4294
+                if ( $this->is_elementor_widget_output() ) {
4295
+                    // Filter class & attrs for elementor widget output.
4296
+                    $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
4297
+                    $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
4298 4298
 
4299
-					$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
4300
-					$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
4299
+                    $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
4300
+                    $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
4301 4301
 
4302
-					echo "<span class='" . esc_attr( $class  ) . "' " . $attrs . ">";
4303
-				}
4304
-				echo $this->output_title( $args, $instance );
4305
-				echo $output;
4306
-				if ( $this->is_elementor_widget_output() ) {
4307
-					echo "</span>";
4308
-				}
4309
-				echo $after_widget;
4310
-			} elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
4311
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
4312
-				echo $output;
4313
-			} elseif ( $output && $no_wrap ) {
4314
-				echo $output;
4315
-			}
4316
-			$output = ob_get_clean();
4302
+                    echo "<span class='" . esc_attr( $class  ) . "' " . $attrs . ">";
4303
+                }
4304
+                echo $this->output_title( $args, $instance );
4305
+                echo $output;
4306
+                if ( $this->is_elementor_widget_output() ) {
4307
+                    echo "</span>";
4308
+                }
4309
+                echo $after_widget;
4310
+            } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
4311
+                $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
4312
+                echo $output;
4313
+            } elseif ( $output && $no_wrap ) {
4314
+                echo $output;
4315
+            }
4316
+            $output = ob_get_clean();
4317 4317
 
4318
-			$output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
4318
+            $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
4319 4319
 
4320
-			echo $output;
4321
-		}
4320
+            echo $output;
4321
+        }
4322 4322
 
4323
-		/**
4324
-		 * Tests if the current output is inside a elementor container.
4325
-		 *
4326
-		 * @return bool
4327
-		 *@since 1.0.4
4328
-		 */
4329
-		public function is_elementor_widget_output() {
4330
-			$result = false;
4331
-			if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
4332
-				$result = true;
4333
-			}
4323
+        /**
4324
+         * Tests if the current output is inside a elementor container.
4325
+         *
4326
+         * @return bool
4327
+         *@since 1.0.4
4328
+         */
4329
+        public function is_elementor_widget_output() {
4330
+            $result = false;
4331
+            if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
4332
+                $result = true;
4333
+            }
4334 4334
 
4335
-			return $result;
4336
-		}
4335
+            return $result;
4336
+        }
4337 4337
 
4338
-		/**
4339
-		 * Tests if the current output is inside a elementor preview.
4340
-		 *
4341
-		 * @return bool
4342
-		 *@since 1.0.4
4343
-		 */
4344
-		public function is_elementor_preview() {
4345
-			$result = false;
4346
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
4347
-				$result = true;
4348
-			}
4338
+        /**
4339
+         * Tests if the current output is inside a elementor preview.
4340
+         *
4341
+         * @return bool
4342
+         *@since 1.0.4
4343
+         */
4344
+        public function is_elementor_preview() {
4345
+            $result = false;
4346
+            if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
4347
+                $result = true;
4348
+            }
4349 4349
 
4350
-			return $result;
4351
-		}
4350
+            return $result;
4351
+        }
4352 4352
 
4353
-		/**
4354
-		 * Tests if the current output is inside a Divi preview.
4355
-		 *
4356
-		 * @return bool
4357
-		 *@since 1.0.6
4358
-		 */
4359
-		public function is_divi_preview() {
4360
-			$result = false;
4361
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
4362
-				$result = true;
4363
-			}
4353
+        /**
4354
+         * Tests if the current output is inside a Divi preview.
4355
+         *
4356
+         * @return bool
4357
+         *@since 1.0.6
4358
+         */
4359
+        public function is_divi_preview() {
4360
+            $result = false;
4361
+            if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
4362
+                $result = true;
4363
+            }
4364 4364
 
4365
-			return $result;
4366
-		}
4365
+            return $result;
4366
+        }
4367 4367
 
4368
-		/**
4369
-		 * Tests if the current output is inside a Beaver builder preview.
4370
-		 *
4371
-		 * @return bool
4372
-		 *@since 1.0.6
4373
-		 */
4374
-		public function is_beaver_preview() {
4375
-			$result = false;
4376
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
4377
-				$result = true;
4378
-			}
4368
+        /**
4369
+         * Tests if the current output is inside a Beaver builder preview.
4370
+         *
4371
+         * @return bool
4372
+         *@since 1.0.6
4373
+         */
4374
+        public function is_beaver_preview() {
4375
+            $result = false;
4376
+            if ( isset( $_REQUEST['fl_builder'] ) ) {
4377
+                $result = true;
4378
+            }
4379 4379
 
4380
-			return $result;
4381
-		}
4380
+            return $result;
4381
+        }
4382 4382
 
4383
-		/**
4384
-		 * Tests if the current output is inside a siteorigin builder preview.
4385
-		 *
4386
-		 * @return bool
4387
-		 *@since 1.0.6
4388
-		 */
4389
-		public function is_siteorigin_preview() {
4390
-			$result = false;
4391
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
4392
-				$result = true;
4393
-			}
4383
+        /**
4384
+         * Tests if the current output is inside a siteorigin builder preview.
4385
+         *
4386
+         * @return bool
4387
+         *@since 1.0.6
4388
+         */
4389
+        public function is_siteorigin_preview() {
4390
+            $result = false;
4391
+            if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
4392
+                $result = true;
4393
+            }
4394 4394
 
4395
-			return $result;
4396
-		}
4395
+            return $result;
4396
+        }
4397 4397
 
4398
-		/**
4399
-		 * Tests if the current output is inside a cornerstone builder preview.
4400
-		 *
4401
-		 * @return bool
4402
-		 *@since 1.0.8
4403
-		 */
4404
-		public function is_cornerstone_preview() {
4405
-			$result = false;
4406
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
4407
-				$result = true;
4408
-			}
4398
+        /**
4399
+         * Tests if the current output is inside a cornerstone builder preview.
4400
+         *
4401
+         * @return bool
4402
+         *@since 1.0.8
4403
+         */
4404
+        public function is_cornerstone_preview() {
4405
+            $result = false;
4406
+            if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
4407
+                $result = true;
4408
+            }
4409 4409
 
4410
-			return $result;
4411
-		}
4410
+            return $result;
4411
+        }
4412 4412
 
4413
-		/**
4414
-		 * Tests if the current output is inside a fusion builder preview.
4415
-		 *
4416
-		 * @return bool
4417
-		 *@since 1.1.0
4418
-		 */
4419
-		public function is_fusion_preview() {
4420
-			$result = false;
4421
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
4422
-				$result = true;
4423
-			}
4413
+        /**
4414
+         * Tests if the current output is inside a fusion builder preview.
4415
+         *
4416
+         * @return bool
4417
+         *@since 1.1.0
4418
+         */
4419
+        public function is_fusion_preview() {
4420
+            $result = false;
4421
+            if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
4422
+                $result = true;
4423
+            }
4424 4424
 
4425
-			return $result;
4426
-		}
4425
+            return $result;
4426
+        }
4427 4427
 
4428
-		/**
4429
-		 * Tests if the current output is inside a Oxygen builder preview.
4430
-		 *
4431
-		 * @return bool
4432
-		 *@since 1.0.18
4433
-		 */
4434
-		public function is_oxygen_preview() {
4435
-			$result = false;
4436
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
4437
-				$result = true;
4438
-			}
4428
+        /**
4429
+         * Tests if the current output is inside a Oxygen builder preview.
4430
+         *
4431
+         * @return bool
4432
+         *@since 1.0.18
4433
+         */
4434
+        public function is_oxygen_preview() {
4435
+            $result = false;
4436
+            if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
4437
+                $result = true;
4438
+            }
4439 4439
 
4440
-			return $result;
4441
-		}
4440
+            return $result;
4441
+        }
4442 4442
 
4443
-		/**
4444
-		 * Check for Kallyas theme Zion builder preview.
4445
-		 *
4446
-		 * @since 1.1.22
4447
-		 *
4448
-		 * @return bool True when preview page otherwise false.
4449
-		 */
4450
-		public function is_kallyas_zion_preview() {
4451
-			$result = false;
4452
-
4453
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
4454
-				$result = true;
4455
-			}
4443
+        /**
4444
+         * Check for Kallyas theme Zion builder preview.
4445
+         *
4446
+         * @since 1.1.22
4447
+         *
4448
+         * @return bool True when preview page otherwise false.
4449
+         */
4450
+        public function is_kallyas_zion_preview() {
4451
+            $result = false;
4456 4452
 
4457
-			return $result;
4458
-		}
4453
+            if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
4454
+                $result = true;
4455
+            }
4459 4456
 
4460
-		/**
4461
-		 * Check for Bricks theme builder preview.
4462
-		 *
4463
-		 * @since 1.1.31
4464
-		 *
4465
-		 * @return bool True when preview page otherwise false.
4466
-		 */
4467
-		public function is_bricks_preview() {
4468
-			$result = false;
4469
-
4470
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
4471
-				$result = true;
4472
-			}
4457
+            return $result;
4458
+        }
4473 4459
 
4474
-			return $result;
4475
-		}
4460
+        /**
4461
+         * Check for Bricks theme builder preview.
4462
+         *
4463
+         * @since 1.1.31
4464
+         *
4465
+         * @return bool True when preview page otherwise false.
4466
+         */
4467
+        public function is_bricks_preview() {
4468
+            $result = false;
4476 4469
 
4477
-		/**
4478
-		 * General function to check if we are in a preview situation.
4479
-		 *
4480
-		 * @return bool
4481
-		 *@since 1.0.6
4482
-		 */
4483
-		public function is_preview() {
4484
-			$preview = false;
4485
-			if ( $this->is_divi_preview() ) {
4486
-				$preview = true;
4487
-			} elseif ( $this->is_elementor_preview() ) {
4488
-				$preview = true;
4489
-			} elseif ( $this->is_beaver_preview() ) {
4490
-				$preview = true;
4491
-			} elseif ( $this->is_siteorigin_preview() ) {
4492
-				$preview = true;
4493
-			} elseif ( $this->is_cornerstone_preview() ) {
4494
-				$preview = true;
4495
-			} elseif ( $this->is_fusion_preview() ) {
4496
-				$preview = true;
4497
-			} elseif ( $this->is_oxygen_preview() ) {
4498
-				$preview = true;
4499
-			} elseif( $this->is_kallyas_zion_preview() ) {
4500
-				$preview = true;
4501
-			} elseif( $this->is_block_content_call() ) {
4502
-				$preview = true;
4503
-			} elseif( $this->is_bricks_preview() ) {
4504
-				$preview = true;
4505
-			}
4470
+            if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
4471
+                $result = true;
4472
+            }
4506 4473
 
4507
-			return $preview;
4508
-		}
4474
+            return $result;
4475
+        }
4509 4476
 
4510
-		/**
4511
-		 * Output the super title.
4512
-		 *
4513
-		 * @param $args
4514
-		 * @param array $instance
4515
-		 *
4516
-		 * @return string
4517
-		 */
4518
-		public function output_title( $args, $instance = array() ) {
4519
-			$output = '';
4520
-			if ( ! empty( $instance['title'] ) ) {
4521
-				/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
4522
-				$title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
4523
-
4524
-				if ( empty( $instance['widget_title_tag'] ) ) {
4525
-					if ( ! isset( $args['before_title'] ) ) {
4526
-						$args['before_title'] = '';
4527
-					}
4477
+        /**
4478
+         * General function to check if we are in a preview situation.
4479
+         *
4480
+         * @return bool
4481
+         *@since 1.0.6
4482
+         */
4483
+        public function is_preview() {
4484
+            $preview = false;
4485
+            if ( $this->is_divi_preview() ) {
4486
+                $preview = true;
4487
+            } elseif ( $this->is_elementor_preview() ) {
4488
+                $preview = true;
4489
+            } elseif ( $this->is_beaver_preview() ) {
4490
+                $preview = true;
4491
+            } elseif ( $this->is_siteorigin_preview() ) {
4492
+                $preview = true;
4493
+            } elseif ( $this->is_cornerstone_preview() ) {
4494
+                $preview = true;
4495
+            } elseif ( $this->is_fusion_preview() ) {
4496
+                $preview = true;
4497
+            } elseif ( $this->is_oxygen_preview() ) {
4498
+                $preview = true;
4499
+            } elseif( $this->is_kallyas_zion_preview() ) {
4500
+                $preview = true;
4501
+            } elseif( $this->is_block_content_call() ) {
4502
+                $preview = true;
4503
+            } elseif( $this->is_bricks_preview() ) {
4504
+                $preview = true;
4505
+            }
4528 4506
 
4529
-					if ( ! isset( $args['after_title'] ) ) {
4530
-						$args['after_title'] = '';
4531
-					}
4507
+            return $preview;
4508
+        }
4532 4509
 
4533
-					$output = $args['before_title'] . $title . $args['after_title'];
4534
-				} else {
4535
-					$tag 			= esc_attr( $instance['widget_title_tag'] );
4536
-					$allowed_tags 	= array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p' );
4537
-					$title_tag      = in_array( $tag, $allowed_tags, true ) ? esc_attr( $tag ) : 'h2';
4538
-
4539
-					// classes
4540
-					$title_classes = array();
4541
-					$title_classes[] = !empty( $instance['widget_title_size_class'] ) ? sanitize_html_class( $instance['widget_title_size_class'] ) : '';
4542
-					$title_classes[] = !empty( $instance['widget_title_align_class'] ) ? sanitize_html_class( $instance['widget_title_align_class'] ) : '';
4543
-					$title_classes[] = !empty( $instance['widget_title_color_class'] ) ? "text-".sanitize_html_class( $instance['widget_title_color_class'] ) : '';
4544
-					$title_classes[] = !empty( $instance['widget_title_border_class'] ) ? sanitize_html_class( $instance['widget_title_border_class'] ) : '';
4545
-					$title_classes[] = !empty( $instance['widget_title_border_color_class'] ) ? "border-".sanitize_html_class( $instance['widget_title_border_color_class'] ) : '';
4546
-					$title_classes[] = !empty( $instance['widget_title_mt_class'] ) ? "mt-".absint( $instance['widget_title_mt_class'] ) : '';
4547
-					$title_classes[] = !empty( $instance['widget_title_mr_class'] ) ? "mr-".absint( $instance['widget_title_mr_class'] ) : '';
4548
-					$title_classes[] = !empty( $instance['widget_title_mb_class'] ) ? "mb-".absint( $instance['widget_title_mb_class'] ) : '';
4549
-					$title_classes[] = !empty( $instance['widget_title_ml_class'] ) ? "ml-".absint( $instance['widget_title_ml_class'] ) : '';
4550
-					$title_classes[] = !empty( $instance['widget_title_pt_class'] ) ? "pt-".absint( $instance['widget_title_pt_class'] ) : '';
4551
-					$title_classes[] = !empty( $instance['widget_title_pr_class'] ) ? "pr-".absint( $instance['widget_title_pr_class'] ) : '';
4552
-					$title_classes[] = !empty( $instance['widget_title_pb_class'] ) ? "pb-".absint( $instance['widget_title_pb_class'] ) : '';
4553
-					$title_classes[] = !empty( $instance['widget_title_pl_class'] ) ? "pl-".absint( $instance['widget_title_pl_class'] ) : '';
4554
-
4555
-					$class = !empty( $title_classes ) ? implode(" ",$title_classes) : '';
4556
-					$output = "<$title_tag class='$class' >$title</$title_tag>";
4557
-				}
4510
+        /**
4511
+         * Output the super title.
4512
+         *
4513
+         * @param $args
4514
+         * @param array $instance
4515
+         *
4516
+         * @return string
4517
+         */
4518
+        public function output_title( $args, $instance = array() ) {
4519
+            $output = '';
4520
+            if ( ! empty( $instance['title'] ) ) {
4521
+                /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
4522
+                $title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
4523
+
4524
+                if ( empty( $instance['widget_title_tag'] ) ) {
4525
+                    if ( ! isset( $args['before_title'] ) ) {
4526
+                        $args['before_title'] = '';
4527
+                    }
4528
+
4529
+                    if ( ! isset( $args['after_title'] ) ) {
4530
+                        $args['after_title'] = '';
4531
+                    }
4532
+
4533
+                    $output = $args['before_title'] . $title . $args['after_title'];
4534
+                } else {
4535
+                    $tag 			= esc_attr( $instance['widget_title_tag'] );
4536
+                    $allowed_tags 	= array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p' );
4537
+                    $title_tag      = in_array( $tag, $allowed_tags, true ) ? esc_attr( $tag ) : 'h2';
4538
+
4539
+                    // classes
4540
+                    $title_classes = array();
4541
+                    $title_classes[] = !empty( $instance['widget_title_size_class'] ) ? sanitize_html_class( $instance['widget_title_size_class'] ) : '';
4542
+                    $title_classes[] = !empty( $instance['widget_title_align_class'] ) ? sanitize_html_class( $instance['widget_title_align_class'] ) : '';
4543
+                    $title_classes[] = !empty( $instance['widget_title_color_class'] ) ? "text-".sanitize_html_class( $instance['widget_title_color_class'] ) : '';
4544
+                    $title_classes[] = !empty( $instance['widget_title_border_class'] ) ? sanitize_html_class( $instance['widget_title_border_class'] ) : '';
4545
+                    $title_classes[] = !empty( $instance['widget_title_border_color_class'] ) ? "border-".sanitize_html_class( $instance['widget_title_border_color_class'] ) : '';
4546
+                    $title_classes[] = !empty( $instance['widget_title_mt_class'] ) ? "mt-".absint( $instance['widget_title_mt_class'] ) : '';
4547
+                    $title_classes[] = !empty( $instance['widget_title_mr_class'] ) ? "mr-".absint( $instance['widget_title_mr_class'] ) : '';
4548
+                    $title_classes[] = !empty( $instance['widget_title_mb_class'] ) ? "mb-".absint( $instance['widget_title_mb_class'] ) : '';
4549
+                    $title_classes[] = !empty( $instance['widget_title_ml_class'] ) ? "ml-".absint( $instance['widget_title_ml_class'] ) : '';
4550
+                    $title_classes[] = !empty( $instance['widget_title_pt_class'] ) ? "pt-".absint( $instance['widget_title_pt_class'] ) : '';
4551
+                    $title_classes[] = !empty( $instance['widget_title_pr_class'] ) ? "pr-".absint( $instance['widget_title_pr_class'] ) : '';
4552
+                    $title_classes[] = !empty( $instance['widget_title_pb_class'] ) ? "pb-".absint( $instance['widget_title_pb_class'] ) : '';
4553
+                    $title_classes[] = !empty( $instance['widget_title_pl_class'] ) ? "pl-".absint( $instance['widget_title_pl_class'] ) : '';
4554
+
4555
+                    $class = !empty( $title_classes ) ? implode(" ",$title_classes) : '';
4556
+                    $output = "<$title_tag class='$class' >$title</$title_tag>";
4557
+                }
4558 4558
 
4559
-			}
4559
+            }
4560 4560
 
4561
-			return $output;
4562
-		}
4561
+            return $output;
4562
+        }
4563 4563
 
4564
-		/**
4565
-		 * Outputs the options form inputs for the widget.
4566
-		 *
4567
-		 * @param array $instance The widget options.
4568
-		 */
4569
-		public function form( $instance ) {
4564
+        /**
4565
+         * Outputs the options form inputs for the widget.
4566
+         *
4567
+         * @param array $instance The widget options.
4568
+         */
4569
+        public function form( $instance ) {
4570 4570
 
4571
-			// set widget instance
4572
-			$this->instance = $instance;
4571
+            // set widget instance
4572
+            $this->instance = $instance;
4573 4573
 
4574
-			// set it as a SD widget
4575
-			echo $this->widget_advanced_toggle();
4574
+            // set it as a SD widget
4575
+            echo $this->widget_advanced_toggle();
4576 4576
 
4577
-			echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
4578
-			$arguments_raw = $this->get_arguments();
4577
+            echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
4578
+            $arguments_raw = $this->get_arguments();
4579 4579
 
4580
-			if ( is_array( $arguments_raw ) ) {
4580
+            if ( is_array( $arguments_raw ) ) {
4581 4581
 
4582
-				$arguments = $this->group_arguments( $arguments_raw );
4582
+                $arguments = $this->group_arguments( $arguments_raw );
4583 4583
 
4584
-				// Do we have sections?
4585
-				$has_sections = $arguments == $arguments_raw ? false : true;
4584
+                // Do we have sections?
4585
+                $has_sections = $arguments == $arguments_raw ? false : true;
4586 4586
 
4587 4587
 
4588
-				if ( $has_sections ) {
4589
-					$panel_count = 0;
4590
-					foreach ( $arguments as $key => $args ) {
4588
+                if ( $has_sections ) {
4589
+                    $panel_count = 0;
4590
+                    foreach ( $arguments as $key => $args ) {
4591 4591
 
4592
-						?>
4592
+                        ?>
4593 4593
 						<script>
4594 4594
 							//							jQuery(this).find("i").toggleClass("fas fa-chevron-up fas fa-chevron-down");jQuery(this).next().toggle();
4595 4595
 						</script>
4596 4596
 						<?php
4597 4597
 
4598
-						$hide       = $panel_count ? ' style="display:none;" ' : '';
4599
-						$icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
4600
-						echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle" . sanitize_title_with_dashes( $key ) . "'>" . esc_attr( $key ) . " <i style='float:right;' class='" . $icon_class . "'></i></button>";
4601
-						echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes( $key ) . "' $hide>";
4598
+                        $hide       = $panel_count ? ' style="display:none;" ' : '';
4599
+                        $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
4600
+                        echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle" . sanitize_title_with_dashes( $key ) . "'>" . esc_attr( $key ) . " <i style='float:right;' class='" . $icon_class . "'></i></button>";
4601
+                        echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes( $key ) . "' $hide>";
4602 4602
 
4603
-						foreach ( $args as $k => $a ) {
4603
+                        foreach ( $args as $k => $a ) {
4604 4604
 
4605
-							$this->widget_inputs_row_start($k, $a);
4606
-							$this->widget_inputs( $a, $instance );
4607
-							$this->widget_inputs_row_end($k, $a);
4605
+                            $this->widget_inputs_row_start($k, $a);
4606
+                            $this->widget_inputs( $a, $instance );
4607
+                            $this->widget_inputs_row_end($k, $a);
4608 4608
 
4609
-						}
4609
+                        }
4610 4610
 
4611
-						echo "</div>";
4611
+                        echo "</div>";
4612 4612
 
4613
-						$panel_count ++;
4613
+                        $panel_count ++;
4614 4614
 
4615
-					}
4616
-				} else {
4617
-					foreach ( $arguments as $key => $args ) {
4618
-						$this->widget_inputs_row_start($key, $args);
4619
-						$this->widget_inputs( $args, $instance );
4620
-						$this->widget_inputs_row_end($key, $args);
4621
-					}
4622
-				}
4615
+                    }
4616
+                } else {
4617
+                    foreach ( $arguments as $key => $args ) {
4618
+                        $this->widget_inputs_row_start($key, $args);
4619
+                        $this->widget_inputs( $args, $instance );
4620
+                        $this->widget_inputs_row_end($key, $args);
4621
+                    }
4622
+                }
4623 4623
 
4624
-			}
4625
-		}
4624
+            }
4625
+        }
4626 4626
 
4627
-		public function widget_inputs_row_start( $key, $args ) {
4628
-			if ( ! empty( $args['row'] ) ) {
4629
-				// Maybe open
4630
-				if ( ! empty( $args['row']['open'] ) ) {
4631
-					?>
4627
+        public function widget_inputs_row_start( $key, $args ) {
4628
+            if ( ! empty( $args['row'] ) ) {
4629
+                // Maybe open
4630
+                if ( ! empty( $args['row']['open'] ) ) {
4631
+                    ?>
4632 4632
 					<div class='bsui sd-argument' data-argument='<?php echo esc_attr( $args['row']['key'] ); ?>' data-element_require='<?php echo ( ! empty( $args['row']['element_require'] ) ? $this->convert_element_require( $args['row']['element_require'] ) : '' ); ?>'>
4633 4633
 					<?php if ( ! empty( $args['row']['title'] ) ) { ?>
4634 4634
 					<?php
4635
-						if ( isset( $args['row']['icon'] ) ) {
4636
-							$args['row']['icon'] = '';
4637
-						}
4638
-
4639
-						if ( ! isset( $args['row']['device_type'] ) && isset( $args['device_type'] ) ) {
4640
-							$args['row']['device_type'] = $args['device_type'];
4641
-						}
4642
-					?>
4635
+                        if ( isset( $args['row']['icon'] ) ) {
4636
+                            $args['row']['icon'] = '';
4637
+                        }
4638
+
4639
+                        if ( ! isset( $args['row']['device_type'] ) && isset( $args['device_type'] ) ) {
4640
+                            $args['row']['device_type'] = $args['device_type'];
4641
+                        }
4642
+                    ?>
4643 4643
 					<label class="mb-0"><?php echo $this->widget_field_title( $args['row'] ); ?><?php echo $this->widget_field_desc( $args['row'] ); ?></label>
4644 4644
 					<?php } ?>
4645 4645
 					<div class='row<?php echo ( ! empty( $args['row']['class'] ) ? ' ' . esc_attr( $args['row']['class'] ) : '' ); ?>'>
4646 4646
 					<div class='col pr-2'>
4647 4647
 					<?php
4648
-				} else if ( ! empty( $args['row']['close'] ) ) {
4649
-					echo "<div class='col pl-0 ps-0'>";
4650
-				} else {
4651
-					echo "<div class='col pl-0 ps-0 pr-2 pe-2'>";
4652
-				}
4653
-			}
4654
-		}
4648
+                } else if ( ! empty( $args['row']['close'] ) ) {
4649
+                    echo "<div class='col pl-0 ps-0'>";
4650
+                } else {
4651
+                    echo "<div class='col pl-0 ps-0 pr-2 pe-2'>";
4652
+                }
4653
+            }
4654
+        }
4655 4655
 
4656
-		public function widget_inputs_row_end( $key, $args ) {
4657
-			if ( ! empty( $args['row'] ) ) {
4658
-				// Maybe close
4659
-				if ( ! empty( $args['row']['close'] ) ) {
4660
-					echo "</div></div>";
4661
-				}
4662
-				echo "</div>";
4663
-			}
4664
-		}
4656
+        public function widget_inputs_row_end( $key, $args ) {
4657
+            if ( ! empty( $args['row'] ) ) {
4658
+                // Maybe close
4659
+                if ( ! empty( $args['row']['close'] ) ) {
4660
+                    echo "</div></div>";
4661
+                }
4662
+                echo "</div>";
4663
+            }
4664
+        }
4665 4665
 
4666
-		/**
4667
-		 * Get the hidden input that when added makes the advanced button show on widget settings.
4668
-		 *
4669
-		 * @return string
4670
-		 */
4671
-		public function widget_advanced_toggle() {
4666
+        /**
4667
+         * Get the hidden input that when added makes the advanced button show on widget settings.
4668
+         *
4669
+         * @return string
4670
+         */
4671
+        public function widget_advanced_toggle() {
4672 4672
 
4673
-			$output = '';
4674
-			if ( $this->block_show_advanced() ) {
4675
-				$val = 1;
4676
-			} else {
4677
-				$val = 0;
4678
-			}
4673
+            $output = '';
4674
+            if ( $this->block_show_advanced() ) {
4675
+                $val = 1;
4676
+            } else {
4677
+                $val = 0;
4678
+            }
4679 4679
 
4680
-			$output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
4680
+            $output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
4681 4681
 
4682
-			return $output;
4683
-		}
4682
+            return $output;
4683
+        }
4684 4684
 
4685
-		/**
4686
-		 * Convert require element.
4687
-		 *
4688
-		 * @param string $input Input element.
4689
-		 *
4690
-		 * @return string $output
4691
-		 *@since 1.0.0
4692
-		 *
4693
-		 */
4694
-		public function convert_element_require( $input ) {
4695
-			$input = str_replace( "'", '"', $input );// we only want double quotes
4696
-
4697
-			$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
4698
-				"jQuery(form).find('[data-argument=\"",
4699
-				"\"]').find('input,select,textarea').val()",
4700
-				"\"]').find('input:checked').val()"
4701
-			), $input ) );
4702
-
4703
-			return $output;
4704
-		}
4685
+        /**
4686
+         * Convert require element.
4687
+         *
4688
+         * @param string $input Input element.
4689
+         *
4690
+         * @return string $output
4691
+         *@since 1.0.0
4692
+         *
4693
+         */
4694
+        public function convert_element_require( $input ) {
4695
+            $input = str_replace( "'", '"', $input );// we only want double quotes
4705 4696
 
4706
-		/**
4707
-		 * Builds the inputs for the widget options.
4708
-		 *
4709
-		 * @param $args
4710
-		 * @param $instance
4711
-		 */
4712
-		public function widget_inputs( $args, $instance ) {
4713
-
4714
-			$class             = "";
4715
-			$element_require   = "";
4716
-			$custom_attributes = "";
4717
-
4718
-			// get value
4719
-			if ( isset( $instance[ $args['name'] ] ) ) {
4720
-				$value = $instance[ $args['name'] ];
4721
-			} elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
4722
-				$value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
4723
-			} else {
4724
-				$value = '';
4725
-			}
4697
+            $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
4698
+                "jQuery(form).find('[data-argument=\"",
4699
+                "\"]').find('input,select,textarea').val()",
4700
+                "\"]').find('input:checked').val()"
4701
+            ), $input ) );
4726 4702
 
4727
-			// get placeholder
4728
-			if ( ! empty( $args['placeholder'] ) ) {
4729
-				$placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
4730
-			} else {
4731
-				$placeholder = '';
4732
-			}
4703
+            return $output;
4704
+        }
4733 4705
 
4734
-			// get if advanced
4735
-			if ( isset( $args['advanced'] ) && $args['advanced'] ) {
4736
-				$class .= " sd-advanced-setting ";
4737
-			}
4706
+        /**
4707
+         * Builds the inputs for the widget options.
4708
+         *
4709
+         * @param $args
4710
+         * @param $instance
4711
+         */
4712
+        public function widget_inputs( $args, $instance ) {
4713
+
4714
+            $class             = "";
4715
+            $element_require   = "";
4716
+            $custom_attributes = "";
4717
+
4718
+            // get value
4719
+            if ( isset( $instance[ $args['name'] ] ) ) {
4720
+                $value = $instance[ $args['name'] ];
4721
+            } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
4722
+                $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
4723
+            } else {
4724
+                $value = '';
4725
+            }
4738 4726
 
4739
-			// element_require
4740
-			if ( isset( $args['element_require'] ) && $args['element_require'] ) {
4741
-				$element_require = $args['element_require'];
4742
-			}
4727
+            // get placeholder
4728
+            if ( ! empty( $args['placeholder'] ) ) {
4729
+                $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
4730
+            } else {
4731
+                $placeholder = '';
4732
+            }
4743 4733
 
4744
-			// custom_attributes
4745
-			if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
4746
-				$custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
4747
-			}
4734
+            // get if advanced
4735
+            if ( isset( $args['advanced'] ) && $args['advanced'] ) {
4736
+                $class .= " sd-advanced-setting ";
4737
+            }
4738
+
4739
+            // element_require
4740
+            if ( isset( $args['element_require'] ) && $args['element_require'] ) {
4741
+                $element_require = $args['element_require'];
4742
+            }
4743
+
4744
+            // custom_attributes
4745
+            if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
4746
+                $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
4747
+            }
4748 4748
 
4749
-			// before wrapper
4750
-			?>
4749
+            // before wrapper
4750
+            ?>
4751 4751
 			<p class="sd-argument <?php echo esc_attr( $class ); ?>" data-argument='<?php echo esc_attr( $args['name'] ); ?>' data-element_require='<?php if ( $element_require ) { echo $this->convert_element_require( $element_require );} ?>'>
4752 4752
 			<?php
4753
-			switch ( $args['type'] ) {
4754
-				//array('text','password','number','email','tel','url','color')
4755
-				case "text":
4756
-				case "password":
4757
-				case "number":
4758
-				case "email":
4759
-				case "tel":
4760
-				case "url":
4761
-				case "color":
4762
-					?>
4753
+            switch ( $args['type'] ) {
4754
+                //array('text','password','number','email','tel','url','color')
4755
+                case "text":
4756
+                case "password":
4757
+                case "number":
4758
+                case "email":
4759
+                case "tel":
4760
+                case "url":
4761
+                case "color":
4762
+                    ?>
4763 4763
 					<label for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo $this->widget_field_title( $args );?><?php echo $this->widget_field_desc( $args ); ?></label>
4764 4764
 					<input <?php echo $placeholder; ?> class="widefat" <?php echo $custom_attributes; ?> id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="<?php echo esc_attr( $args['type'] ); ?>" value="<?php echo esc_attr( $value ); ?>">
4765 4765
 					<?php
4766 4766
 
4767
-					break;
4768
-				case "select":
4769
-					$multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
4770
-					if ( $multiple ) {
4771
-						if ( empty( $value ) ) {
4772
-							$value = array();
4773
-						}
4774
-					}
4775
-					?>
4767
+                    break;
4768
+                case "select":
4769
+                    $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
4770
+                    if ( $multiple ) {
4771
+                        if ( empty( $value ) ) {
4772
+                            $value = array();
4773
+                        }
4774
+                    }
4775
+                    ?>
4776 4776
 					<label for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo $this->widget_field_title( $args ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
4777 4777
 					<select <?php echo $placeholder; ?> class="widefat" <?php echo $custom_attributes; ?> id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); if ( $multiple ) { echo "[]"; } ?>"
4778 4778
 						<?php if ( $multiple ) {
4779
-							echo "multiple";
4780
-						} //@todo not implemented yet due to gutenberg not supporting it
4781
-						?>>
4779
+                            echo "multiple";
4780
+                        } //@todo not implemented yet due to gutenberg not supporting it
4781
+                        ?>>
4782 4782
 						<?php
4783 4783
 
4784
-						if ( ! empty( $args['options'] ) ) {
4785
-							foreach ( $args['options'] as $val => $label ) {
4786
-								if ( $multiple ) {
4787
-									$selected = in_array( $val, $value ) ? 'selected="selected"' : '';
4788
-								} else {
4789
-									$selected = selected( $value, $val, false );
4790
-								}
4791
-								echo "<option value='$val' " . $selected . ">$label</option>";
4792
-							}
4793
-						}
4794
-						?>
4784
+                        if ( ! empty( $args['options'] ) ) {
4785
+                            foreach ( $args['options'] as $val => $label ) {
4786
+                                if ( $multiple ) {
4787
+                                    $selected = in_array( $val, $value ) ? 'selected="selected"' : '';
4788
+                                } else {
4789
+                                    $selected = selected( $value, $val, false );
4790
+                                }
4791
+                                echo "<option value='$val' " . $selected . ">$label</option>";
4792
+                            }
4793
+                        }
4794
+                        ?>
4795 4795
 					</select>
4796 4796
 					<?php
4797
-					break;
4798
-				case "checkbox":
4799
-					?>
4797
+                    break;
4798
+                case "checkbox":
4799
+                    ?>
4800 4800
 					<input <?php echo $placeholder; ?> <?php checked( 1, $value, true ) ?> <?php echo $custom_attributes; ?> class="widefat" id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="checkbox" value="1">
4801 4801
 					<label for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo $this->widget_field_title( $args );?><?php echo $this->widget_field_desc( $args ); ?></label>
4802 4802
 					<?php
4803
-					break;
4804
-				case "textarea":
4805
-					?>
4803
+                    break;
4804
+                case "textarea":
4805
+                    ?>
4806 4806
 					<label for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo $this->widget_field_title( $args ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
4807 4807
 					<textarea <?php echo $placeholder; ?> class="widefat" <?php echo $custom_attributes; ?> id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>"><?php echo esc_attr( $value ); ?></textarea>
4808 4808
 					<?php
4809 4809
 
4810
-					break;
4811
-				case "hidden":
4812
-					?>
4810
+                    break;
4811
+                case "hidden":
4812
+                    ?>
4813 4813
 					<input id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="hidden" value="<?php echo esc_attr( $value ); ?>">
4814 4814
 					<?php
4815
-					break;
4816
-				default:
4817
-					echo "No input type found!"; // @todo we need to add more input types.
4818
-			}
4819
-			// after wrapper
4820
-			?></p><?php
4821
-		}
4815
+                    break;
4816
+                default:
4817
+                    echo "No input type found!"; // @todo we need to add more input types.
4818
+            }
4819
+            // after wrapper
4820
+            ?></p><?php
4821
+        }
4822 4822
 
4823
-		public function get_widget_icon($icon = 'box-top', $title = ''){
4824
-			if($icon=='box-top'){
4825
-				return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1.048" height="9.017" fill="#555D66"></rect><rect x="16.265" y="5.498" width="1.023" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.186" width="8.964" height="2.482" fill="#272B2F"></rect><rect x="5.487" y="16.261" width="9.026" height="1.037" fill="#555D66"></rect></svg>';
4826
-			}elseif($icon=='box-right'){
4827
-				return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1.046" height="9.017" fill="#555D66"></rect><rect x="15.244" y="5.498" width="2.518" height="9.003" fill="#272B2F"></rect><rect x="5.518" y="2.719" width="8.964" height="0.954" fill="#555D66"></rect><rect x="5.487" y="16.308" width="9.026" height="0.99" fill="#555D66"></rect></svg>';
4828
-			}elseif($icon=='box-bottom'){
4829
-				return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1" height="9.017" fill="#555D66"></rect><rect x="16.261" y="5.498" width="1.027" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.719" width="8.964" height="0.968" fill="#555D66"></rect><rect x="5.487" y="15.28" width="9.026" height="2.499" fill="#272B2F"></rect></svg>';
4830
-			}elseif($icon=='box-left'){
4831
-				return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.202" y="5.492" width="2.503" height="9.017" fill="#272B2F"></rect><rect x="16.276" y="5.498" width="1.012" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.719" width="8.964" height="0.966" fill="#555D66"></rect><rect x="5.487" y="16.303" width="9.026" height="0.995" fill="#555D66"></rect></svg>';
4832
-			}
4833
-		}
4823
+        public function get_widget_icon($icon = 'box-top', $title = ''){
4824
+            if($icon=='box-top'){
4825
+                return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1.048" height="9.017" fill="#555D66"></rect><rect x="16.265" y="5.498" width="1.023" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.186" width="8.964" height="2.482" fill="#272B2F"></rect><rect x="5.487" y="16.261" width="9.026" height="1.037" fill="#555D66"></rect></svg>';
4826
+            }elseif($icon=='box-right'){
4827
+                return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1.046" height="9.017" fill="#555D66"></rect><rect x="15.244" y="5.498" width="2.518" height="9.003" fill="#272B2F"></rect><rect x="5.518" y="2.719" width="8.964" height="0.954" fill="#555D66"></rect><rect x="5.487" y="16.308" width="9.026" height="0.99" fill="#555D66"></rect></svg>';
4828
+            }elseif($icon=='box-bottom'){
4829
+                return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.714" y="5.492" width="1" height="9.017" fill="#555D66"></rect><rect x="16.261" y="5.498" width="1.027" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.719" width="8.964" height="0.968" fill="#555D66"></rect><rect x="5.487" y="15.28" width="9.026" height="2.499" fill="#272B2F"></rect></svg>';
4830
+            }elseif($icon=='box-left'){
4831
+                return '<svg title="'.esc_attr($title).'" width="20px" height="20px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414" role="img" aria-hidden="true" focusable="false"><rect x="2.202" y="5.492" width="2.503" height="9.017" fill="#272B2F"></rect><rect x="16.276" y="5.498" width="1.012" height="9.003" fill="#555D66"></rect><rect x="5.518" y="2.719" width="8.964" height="0.966" fill="#555D66"></rect><rect x="5.487" y="16.303" width="9.026" height="0.995" fill="#555D66"></rect></svg>';
4832
+            }
4833
+        }
4834 4834
 
4835
-		/**
4836
-		 * Get the widget input description html.
4837
-		 *
4838
-		 * @param $args
4839
-		 *
4840
-		 * @return string
4841
-		 * @todo, need to make its own tooltip script
4842
-		 */
4843
-		public function widget_field_desc( $args ) {
4844
-
4845
-			$description = '';
4846
-			if ( isset( $args['desc'] ) && $args['desc'] ) {
4847
-				if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
4848
-					$description = $this->desc_tip( $args['desc'] );
4849
-				} else {
4850
-					$description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
4851
-				}
4852
-			}
4835
+        /**
4836
+         * Get the widget input description html.
4837
+         *
4838
+         * @param $args
4839
+         *
4840
+         * @return string
4841
+         * @todo, need to make its own tooltip script
4842
+         */
4843
+        public function widget_field_desc( $args ) {
4844
+
4845
+            $description = '';
4846
+            if ( isset( $args['desc'] ) && $args['desc'] ) {
4847
+                if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
4848
+                    $description = $this->desc_tip( $args['desc'] );
4849
+                } else {
4850
+                    $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
4851
+                }
4852
+            }
4853 4853
 
4854
-			return $description;
4855
-		}
4854
+            return $description;
4855
+        }
4856 4856
 
4857
-		/**
4858
-		 * Get the widget input title html.
4859
-		 *
4860
-		 * @param $args
4861
-		 *
4862
-		 * @return string
4863
-		 */
4864
-		public function widget_field_title( $args ) {
4865
-			$title = '';
4866
-
4867
-			if ( isset( $args['title'] ) && $args['title'] ) {
4868
-				if ( ! empty( $args['device_type'] ) ) {
4869
-					$args['title'] .= ' (' . $args['device_type'] . ')'; // Append device type to title.
4870
-				}
4857
+        /**
4858
+         * Get the widget input title html.
4859
+         *
4860
+         * @param $args
4861
+         *
4862
+         * @return string
4863
+         */
4864
+        public function widget_field_title( $args ) {
4865
+            $title = '';
4871 4866
 
4872
-				if ( isset( $args['icon'] ) && $args['icon'] ) {
4873
-					$title = self::get_widget_icon( $args['icon'], $args['title']  );
4874
-				} else {
4875
-					$title = esc_attr( $args['title'] );
4876
-				}
4877
-			}
4867
+            if ( isset( $args['title'] ) && $args['title'] ) {
4868
+                if ( ! empty( $args['device_type'] ) ) {
4869
+                    $args['title'] .= ' (' . $args['device_type'] . ')'; // Append device type to title.
4870
+                }
4878 4871
 
4879
-			return $title;
4880
-		}
4872
+                if ( isset( $args['icon'] ) && $args['icon'] ) {
4873
+                    $title = self::get_widget_icon( $args['icon'], $args['title']  );
4874
+                } else {
4875
+                    $title = esc_attr( $args['title'] );
4876
+                }
4877
+            }
4881 4878
 
4882
-		/**
4883
-		 * Get the tool tip html.
4884
-		 *
4885
-		 * @param $tip
4886
-		 * @param bool $allow_html
4887
-		 *
4888
-		 * @return string
4889
-		 */
4890
-		function desc_tip( $tip, $allow_html = false ) {
4891
-			if ( $allow_html ) {
4892
-				$tip = $this->sanitize_tooltip( $tip );
4893
-			} else {
4894
-				$tip = esc_attr( $tip );
4895
-			}
4879
+            return $title;
4880
+        }
4896 4881
 
4897
-			return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
4898
-		}
4882
+        /**
4883
+         * Get the tool tip html.
4884
+         *
4885
+         * @param $tip
4886
+         * @param bool $allow_html
4887
+         *
4888
+         * @return string
4889
+         */
4890
+        function desc_tip( $tip, $allow_html = false ) {
4891
+            if ( $allow_html ) {
4892
+                $tip = $this->sanitize_tooltip( $tip );
4893
+            } else {
4894
+                $tip = esc_attr( $tip );
4895
+            }
4899 4896
 
4900
-		/**
4901
-		 * Sanitize a string destined to be a tooltip.
4902
-		 *
4903
-		 * @param string $var
4904
-		 *
4905
-		 * @return string
4906
-		 */
4907
-		public function sanitize_tooltip( $var ) {
4908
-			return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
4909
-				'br'     => array(),
4910
-				'em'     => array(),
4911
-				'strong' => array(),
4912
-				'small'  => array(),
4913
-				'span'   => array(),
4914
-				'ul'     => array(),
4915
-				'li'     => array(),
4916
-				'ol'     => array(),
4917
-				'p'      => array(),
4918
-			) ) );
4919
-		}
4897
+            return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
4898
+        }
4920 4899
 
4921
-		/**
4922
-		 * Processing widget options on save
4923
-		 *
4924
-		 * @param array $new_instance The new options
4925
-		 * @param array $old_instance The previous options
4926
-		 *
4927
-		 * @return array
4928
-		 * @todo we should add some sanitation here.
4929
-		 */
4930
-		public function update( $new_instance, $old_instance ) {
4931
-
4932
-			//save the widget
4933
-			$instance = array_merge( (array) $old_instance, (array) $new_instance );
4934
-
4935
-			// set widget instance
4936
-			$this->instance = $instance;
4937
-
4938
-			if ( empty( $this->arguments ) ) {
4939
-				$this->get_arguments();
4940
-			}
4900
+        /**
4901
+         * Sanitize a string destined to be a tooltip.
4902
+         *
4903
+         * @param string $var
4904
+         *
4905
+         * @return string
4906
+         */
4907
+        public function sanitize_tooltip( $var ) {
4908
+            return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
4909
+                'br'     => array(),
4910
+                'em'     => array(),
4911
+                'strong' => array(),
4912
+                'small'  => array(),
4913
+                'span'   => array(),
4914
+                'ul'     => array(),
4915
+                'li'     => array(),
4916
+                'ol'     => array(),
4917
+                'p'      => array(),
4918
+            ) ) );
4919
+        }
4941 4920
 
4942
-			// check for checkboxes
4943
-			if ( ! empty( $this->arguments ) ) {
4944
-				foreach ( $this->arguments as $argument ) {
4945
-					if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
4946
-						$instance[ $argument['name'] ] = '0';
4947
-					}
4948
-				}
4949
-			}
4921
+        /**
4922
+         * Processing widget options on save
4923
+         *
4924
+         * @param array $new_instance The new options
4925
+         * @param array $old_instance The previous options
4926
+         *
4927
+         * @return array
4928
+         * @todo we should add some sanitation here.
4929
+         */
4930
+        public function update( $new_instance, $old_instance ) {
4931
+
4932
+            //save the widget
4933
+            $instance = array_merge( (array) $old_instance, (array) $new_instance );
4934
+
4935
+            // set widget instance
4936
+            $this->instance = $instance;
4937
+
4938
+            if ( empty( $this->arguments ) ) {
4939
+                $this->get_arguments();
4940
+            }
4941
+
4942
+            // check for checkboxes
4943
+            if ( ! empty( $this->arguments ) ) {
4944
+                foreach ( $this->arguments as $argument ) {
4945
+                    if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
4946
+                        $instance[ $argument['name'] ] = '0';
4947
+                    }
4948
+                }
4949
+            }
4950 4950
 
4951 4951
             // maybe sanitize widget title
4952 4952
             if(!empty($instance['title'])) {
4953 4953
                 $instance['title'] = wp_kses_post( $instance['title'] );
4954 4954
             }
4955 4955
 
4956
-			return $instance;
4957
-		}
4956
+            return $instance;
4957
+        }
4958 4958
 
4959
-		/**
4960
-		 * Checks if the current call is a ajax call to get the block content.
4961
-		 *
4962
-		 * This can be used in your widget to return different content as the block content.
4963
-		 *
4964
-		 * @return bool
4965
-		 *@since 1.0.3
4966
-		 */
4967
-		public function is_block_content_call() {
4968
-			$result = false;
4969
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
4970
-				$result = true;
4971
-			}
4959
+        /**
4960
+         * Checks if the current call is a ajax call to get the block content.
4961
+         *
4962
+         * This can be used in your widget to return different content as the block content.
4963
+         *
4964
+         * @return bool
4965
+         *@since 1.0.3
4966
+         */
4967
+        public function is_block_content_call() {
4968
+            $result = false;
4969
+            if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
4970
+                $result = true;
4971
+            }
4972 4972
 
4973
-			return $result;
4974
-		}
4973
+            return $result;
4974
+        }
4975 4975
 
4976
-		/**
4977
-		 * Get an instance hash that will be unique to the type and settings.
4978
-		 *
4979
-		 * @return string
4980
-		 *@since 1.0.20
4981
-		 */
4982
-		public function get_instance_hash(){
4983
-			$instance_string = $this->base_id.serialize($this->instance);
4984
-			return hash('crc32b',$instance_string);
4985
-		}
4976
+        /**
4977
+         * Get an instance hash that will be unique to the type and settings.
4978
+         *
4979
+         * @return string
4980
+         *@since 1.0.20
4981
+         */
4982
+        public function get_instance_hash(){
4983
+            $instance_string = $this->base_id.serialize($this->instance);
4984
+            return hash('crc32b',$instance_string);
4985
+        }
4986 4986
 
4987
-		/**
4988
-		 * Generate and return inline styles from CSS rules that will match the unique class of the instance.
4989
-		 *
4990
-		 * @param array $rules
4991
-		 *
4992
-		 * @return string
4993
-		 *@since 1.0.20
4994
-		 */
4995
-		public function get_instance_style($rules = array()){
4996
-			$css = '';
4997
-
4998
-			if(!empty($rules)){
4999
-				$rules = array_unique($rules);
5000
-				$instance_hash = $this->get_instance_hash();
5001
-				$css .= "<style>";
5002
-				foreach($rules as $rule){
5003
-					$css .= ".sdel-$instance_hash $rule";
5004
-				}
5005
-				$css .= "</style>";
5006
-			}
4987
+        /**
4988
+         * Generate and return inline styles from CSS rules that will match the unique class of the instance.
4989
+         *
4990
+         * @param array $rules
4991
+         *
4992
+         * @return string
4993
+         *@since 1.0.20
4994
+         */
4995
+        public function get_instance_style($rules = array()){
4996
+            $css = '';
4997
+
4998
+            if(!empty($rules)){
4999
+                $rules = array_unique($rules);
5000
+                $instance_hash = $this->get_instance_hash();
5001
+                $css .= "<style>";
5002
+                foreach($rules as $rule){
5003
+                    $css .= ".sdel-$instance_hash $rule";
5004
+                }
5005
+                $css .= "</style>";
5006
+            }
5007 5007
 
5008
-			return $css;
5009
-		}
5008
+            return $css;
5009
+        }
5010 5010
 
5011
-		/**
5012
-		 * Encode shortcodes tags.
5013
-		 *
5014
-		 * @param string $content Content to search for shortcode tags.
5015
-		 *
5011
+        /**
5012
+         * Encode shortcodes tags.
5013
+         *
5014
+         * @param string $content Content to search for shortcode tags.
5015
+         *
5016 5016
 *@return string Content with shortcode tags removed.
5017
-		 *@since 1.0.28
5018
-		 *
5019
-		 */
5020
-		public function encode_shortcodes( $content ) {
5021
-			// Avoids existing encoded tags.
5022
-			$trans   = array(
5023
-				'&#91;' => '&#091;',
5024
-				'&#93;' => '&#093;',
5025
-				'&amp;#91;' => '&#091;',
5026
-				'&amp;#93;' => '&#093;',
5027
-				'&lt;' => '&0lt;',
5028
-				'&gt;' => '&0gt;',
5029
-				'&amp;lt;' => '&0lt;',
5030
-				'&amp;gt;' => '&0gt;',
5031
-			);
5032
-
5033
-			$content = strtr( $content, $trans );
5034
-
5035
-			$trans   = array(
5036
-				'[' => '&#91;',
5037
-				']' => '&#93;',
5038
-				'<' => '&lt;',
5039
-				'>' => '&gt;',
5040
-				'"' => '&quot;',
5041
-				"'" => '&#39;',
5042
-			);
5043
-
5044
-			$content = strtr( $content, $trans );
5045
-
5046
-			return $content;
5047
-		}
5017
+         *@since 1.0.28
5018
+         *
5019
+         */
5020
+        public function encode_shortcodes( $content ) {
5021
+            // Avoids existing encoded tags.
5022
+            $trans   = array(
5023
+                '&#91;' => '&#091;',
5024
+                '&#93;' => '&#093;',
5025
+                '&amp;#91;' => '&#091;',
5026
+                '&amp;#93;' => '&#093;',
5027
+                '&lt;' => '&0lt;',
5028
+                '&gt;' => '&0gt;',
5029
+                '&amp;lt;' => '&0lt;',
5030
+                '&amp;gt;' => '&0gt;',
5031
+            );
5032
+
5033
+            $content = strtr( $content, $trans );
5034
+
5035
+            $trans   = array(
5036
+                '[' => '&#91;',
5037
+                ']' => '&#93;',
5038
+                '<' => '&lt;',
5039
+                '>' => '&gt;',
5040
+                '"' => '&quot;',
5041
+                "'" => '&#39;',
5042
+            );
5043
+
5044
+            $content = strtr( $content, $trans );
5045
+
5046
+            return $content;
5047
+        }
5048 5048
 
5049
-		/**
5050
-		 * Remove encoded shortcod tags.
5051
-		 *
5052
-		 * @param string $content Content to search for shortcode tags.
5053
-		 *
5049
+        /**
5050
+         * Remove encoded shortcod tags.
5051
+         *
5052
+         * @param string $content Content to search for shortcode tags.
5053
+         *
5054 5054
 *@return string Content with decoded shortcode tags.
5055
-		 *@since 1.0.28
5056
-		 *
5057
-		 */
5058
-		public function decode_shortcodes( $content ) {
5059
-			$trans   = array(
5060
-				'&#91;' => '[',
5061
-				'&#93;' => ']',
5062
-				'&amp;#91;' => '[',
5063
-				'&amp;#93;' => ']',
5064
-				'&lt;' => '<',
5065
-				'&gt;' => '>',
5066
-				'&amp;lt;' => '<',
5067
-				'&amp;gt;' => '>',
5068
-				'&quot;' => '"',
5069
-				'&apos;' => "'",
5070
-			);
5071
-
5072
-			$content = strtr( $content, $trans );
5073
-
5074
-			$trans   = array(
5075
-				'&#091;' => '&#91;',
5076
-				'&#093;' => '&#93;',
5077
-				'&amp;#091;' => '&#91;',
5078
-				'&amp;#093;' => '&#93;',
5079
-				'&0lt;' => '&lt;',
5080
-				'&0gt;' => '&gt;',
5081
-				'&amp;0lt;' => '&lt;',
5082
-				'&amp;0gt;' => '&gt;',
5083
-			);
5084
-
5085
-			$content = strtr( $content, $trans );
5086
-
5087
-			return $content;
5088
-		}
5089
-
5090
-		public function block_visibility_fields( $args ) {
5091
-			$value = ! empty( $args['value'] ) ? esc_attr( $args['value'] ) : '';
5092
-			$content = '<div class="bs-vc-rule-template d-none">';
5093
-				$content .= '<div class="p-3 pb-0 mb-3 border border-1 rounded-1 position-relative bs-vc-rule" data-bs-index="BSVCINDEX" >';
5094
-					$content .= '<div class="row">';
5095
-						$content .= '<div class="col-sm-12">';
5096
-							$content .= '<div class="bs-rule-action position-absolute top-0 end-0 p-2 zindex-5"><span class="text-danger c-pointer bs-vc-remove-rule" title="' . esc_attr__( 'Remove Rule', 'ayecode-connect' ) . '"><i class="fas fa-circle-minus fs-6"></i></span></div>';
5097
-							$content .= aui()->select(
5098
-								array(
5099
-									'id'          => 'bsvc_rule_BSVCINDEX',
5100
-									'name'        => 'bsvc_rule_BSVCINDEX',
5101
-									'label'       => __( 'Rule', 'ayecode-connect' ),
5102
-									'placeholder' => __( 'Select Rule...', 'ayecode-connect' ),
5103
-									'class'       => 'bsvc_rule form-select-sm no-select2 mw-100',
5104
-									'options'     => sd_visibility_rules_options(),
5105
-									'default'     => '',
5106
-									'value'       => '',
5107
-									'label_type'  => '',
5108
-									'select2'     => false,
5109
-									'input_group_left' => __( 'Rule:', 'ayecode-connect' ),
5110
-									'extra_attributes' => array(
5111
-										'data-minimum-results-for-search' => '-1'
5112
-									)
5113
-								)
5114
-							);
5115
-
5116
-						$content .= '</div>';
5117
-
5118
-						if ( class_exists( 'GeoDirectory' ) ) {
5119
-							$content .= '<div class="col-md-7 col-sm-12">';
5120
-
5121
-								$content .= aui()->select(
5122
-									array(
5123
-										'id'          => 'bsvc_gd_field_BSVCINDEX',
5124
-										'name'        => 'bsvc_gd_field_BSVCINDEX',
5125
-										'label'       => __( 'FIELD', 'ayecode-connect' ),
5126
-										'placeholder' => __( 'FIELD', 'ayecode-connect' ),
5127
-										'class'       => 'bsvc_gd_field form-select-sm no-select2 mw-100',
5128
-										'options'     => sd_visibility_gd_field_options(),
5129
-										'default'     => '',
5130
-										'value'       => '',
5131
-										'label_type'  => '',
5132
-										'select2'     => false,
5133
-										'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5134
-										'extra_attributes' => array(
5135
-											'data-minimum-results-for-search' => '-1'
5136
-										)
5137
-									)
5138
-								);
5139
-
5140
-							$content .= '</div>';
5141
-							$content .= '<div class="col-md-5 col-sm-12">';
5142
-
5143
-								$content .= aui()->select(
5144
-									array(
5145
-										'id'          => 'bsvc_gd_field_condition_BSVCINDEX',
5146
-										'name'        => 'bsvc_gd_field_condition_BSVCINDEX',
5147
-										'label'       => __( 'CONDITION', 'ayecode-connect' ),
5148
-										'placeholder' => __( 'CONDITION', 'ayecode-connect' ),
5149
-										'class'       => 'bsvc_gd_field_condition form-select-sm no-select2 mw-100',
5150
-										'options'     => sd_visibility_field_condition_options(),
5151
-										'default'     => '',
5152
-										'value'       => '',
5153
-										'label_type'  => '',
5154
-										'select2'     => false,
5155
-										'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5156
-										'extra_attributes' => array(
5157
-											'data-minimum-results-for-search' => '-1'
5158
-										)
5159
-									)
5160
-								);
5161
-
5162
-							$content .= '</div>';
5163
-							$content .= '<div class="col-sm-12">';
5164
-
5165
-								$content .= aui()->input(
5166
-									array(
5167
-										'type'            => 'text',
5168
-										'id'              => 'bsvc_gd_field_search_BSVCINDEX',
5169
-										'name'            => 'bsvc_gd_field_search_BSVCINDEX',
5170
-										'label'           => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5171
-										'class'           => 'bsvc_gd_field_search form-control-sm',
5172
-										'placeholder'     => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5173
-										'label_type'      => '',
5174
-										'value'           => '',
5175
-										'element_require' => '([%bsvc_rule_BSVCINDEX%]=="gd_field" && [%bsvc_gd_field_condition_BSVCINDEX%] && [%bsvc_gd_field_condition_BSVCINDEX%]!="is_empty" && [%bsvc_gd_field_condition_BSVCINDEX%]!="is_not_empty")'
5176
-									)
5177
-								);
5055
+         *@since 1.0.28
5056
+         *
5057
+         */
5058
+        public function decode_shortcodes( $content ) {
5059
+            $trans   = array(
5060
+                '&#91;' => '[',
5061
+                '&#93;' => ']',
5062
+                '&amp;#91;' => '[',
5063
+                '&amp;#93;' => ']',
5064
+                '&lt;' => '<',
5065
+                '&gt;' => '>',
5066
+                '&amp;lt;' => '<',
5067
+                '&amp;gt;' => '>',
5068
+                '&quot;' => '"',
5069
+                '&apos;' => "'",
5070
+            );
5071
+
5072
+            $content = strtr( $content, $trans );
5073
+
5074
+            $trans   = array(
5075
+                '&#091;' => '&#91;',
5076
+                '&#093;' => '&#93;',
5077
+                '&amp;#091;' => '&#91;',
5078
+                '&amp;#093;' => '&#93;',
5079
+                '&0lt;' => '&lt;',
5080
+                '&0gt;' => '&gt;',
5081
+                '&amp;0lt;' => '&lt;',
5082
+                '&amp;0gt;' => '&gt;',
5083
+            );
5084
+
5085
+            $content = strtr( $content, $trans );
5086
+
5087
+            return $content;
5088
+        }
5178 5089
 
5179
-							$content .= '</div>';
5180
-						}
5090
+        public function block_visibility_fields( $args ) {
5091
+            $value = ! empty( $args['value'] ) ? esc_attr( $args['value'] ) : '';
5092
+            $content = '<div class="bs-vc-rule-template d-none">';
5093
+                $content .= '<div class="p-3 pb-0 mb-3 border border-1 rounded-1 position-relative bs-vc-rule" data-bs-index="BSVCINDEX" >';
5094
+                    $content .= '<div class="row">';
5095
+                        $content .= '<div class="col-sm-12">';
5096
+                            $content .= '<div class="bs-rule-action position-absolute top-0 end-0 p-2 zindex-5"><span class="text-danger c-pointer bs-vc-remove-rule" title="' . esc_attr__( 'Remove Rule', 'ayecode-connect' ) . '"><i class="fas fa-circle-minus fs-6"></i></span></div>';
5097
+                            $content .= aui()->select(
5098
+                                array(
5099
+                                    'id'          => 'bsvc_rule_BSVCINDEX',
5100
+                                    'name'        => 'bsvc_rule_BSVCINDEX',
5101
+                                    'label'       => __( 'Rule', 'ayecode-connect' ),
5102
+                                    'placeholder' => __( 'Select Rule...', 'ayecode-connect' ),
5103
+                                    'class'       => 'bsvc_rule form-select-sm no-select2 mw-100',
5104
+                                    'options'     => sd_visibility_rules_options(),
5105
+                                    'default'     => '',
5106
+                                    'value'       => '',
5107
+                                    'label_type'  => '',
5108
+                                    'select2'     => false,
5109
+                                    'input_group_left' => __( 'Rule:', 'ayecode-connect' ),
5110
+                                    'extra_attributes' => array(
5111
+                                        'data-minimum-results-for-search' => '-1'
5112
+                                    )
5113
+                                )
5114
+                            );
5115
+
5116
+                        $content .= '</div>';
5117
+
5118
+                        if ( class_exists( 'GeoDirectory' ) ) {
5119
+                            $content .= '<div class="col-md-7 col-sm-12">';
5120
+
5121
+                                $content .= aui()->select(
5122
+                                    array(
5123
+                                        'id'          => 'bsvc_gd_field_BSVCINDEX',
5124
+                                        'name'        => 'bsvc_gd_field_BSVCINDEX',
5125
+                                        'label'       => __( 'FIELD', 'ayecode-connect' ),
5126
+                                        'placeholder' => __( 'FIELD', 'ayecode-connect' ),
5127
+                                        'class'       => 'bsvc_gd_field form-select-sm no-select2 mw-100',
5128
+                                        'options'     => sd_visibility_gd_field_options(),
5129
+                                        'default'     => '',
5130
+                                        'value'       => '',
5131
+                                        'label_type'  => '',
5132
+                                        'select2'     => false,
5133
+                                        'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5134
+                                        'extra_attributes' => array(
5135
+                                            'data-minimum-results-for-search' => '-1'
5136
+                                        )
5137
+                                    )
5138
+                                );
5139
+
5140
+                            $content .= '</div>';
5141
+                            $content .= '<div class="col-md-5 col-sm-12">';
5142
+
5143
+                                $content .= aui()->select(
5144
+                                    array(
5145
+                                        'id'          => 'bsvc_gd_field_condition_BSVCINDEX',
5146
+                                        'name'        => 'bsvc_gd_field_condition_BSVCINDEX',
5147
+                                        'label'       => __( 'CONDITION', 'ayecode-connect' ),
5148
+                                        'placeholder' => __( 'CONDITION', 'ayecode-connect' ),
5149
+                                        'class'       => 'bsvc_gd_field_condition form-select-sm no-select2 mw-100',
5150
+                                        'options'     => sd_visibility_field_condition_options(),
5151
+                                        'default'     => '',
5152
+                                        'value'       => '',
5153
+                                        'label_type'  => '',
5154
+                                        'select2'     => false,
5155
+                                        'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5156
+                                        'extra_attributes' => array(
5157
+                                            'data-minimum-results-for-search' => '-1'
5158
+                                        )
5159
+                                    )
5160
+                                );
5161
+
5162
+                            $content .= '</div>';
5163
+                            $content .= '<div class="col-sm-12">';
5164
+
5165
+                                $content .= aui()->input(
5166
+                                    array(
5167
+                                        'type'            => 'text',
5168
+                                        'id'              => 'bsvc_gd_field_search_BSVCINDEX',
5169
+                                        'name'            => 'bsvc_gd_field_search_BSVCINDEX',
5170
+                                        'label'           => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5171
+                                        'class'           => 'bsvc_gd_field_search form-control-sm',
5172
+                                        'placeholder'     => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5173
+                                        'label_type'      => '',
5174
+                                        'value'           => '',
5175
+                                        'element_require' => '([%bsvc_rule_BSVCINDEX%]=="gd_field" && [%bsvc_gd_field_condition_BSVCINDEX%] && [%bsvc_gd_field_condition_BSVCINDEX%]!="is_empty" && [%bsvc_gd_field_condition_BSVCINDEX%]!="is_not_empty")'
5176
+                                    )
5177
+                                );
5178
+
5179
+                            $content .= '</div>';
5180
+                        }
5181 5181
 
5182 5182
                         $content .= apply_filters( 'sd_block_visibility_fields', '', $args );
5183 5183
 
5184
-					$content .= '</div>';
5185
-
5186
-					$content .= '<div class="row aui-conditional-field" data-element-require="jQuery(form).find(\'[name=bsvc_rule_BSVCINDEX]\').val()==\'user_roles\'" data-argument="bsvc_user_roles_BSVCINDEX_1"><label for="bsvc_user_roles_BSVCINDEX_1" class="form-label mb-3">' . __( 'Select User Roles:', 'ayecode-connect' ) . '</label>';
5187
-						$role_options = sd_user_roles_options();
5188
-
5189
-						$role_option_i = 0;
5190
-						foreach ( $role_options as $role_option_key => $role_option_name ) {
5191
-							$role_option_i++;
5192
-
5193
-							$content .= '<div class="col-sm-6">';
5194
-							$content .= aui()->input(
5195
-								array(
5196
-									'id'               => 'bsvc_user_roles_BSVCINDEX_' . $role_option_i,
5197
-									'name'             => 'bsvc_user_roles_BSVCINDEX[]',
5198
-									'type'             => 'checkbox',
5199
-									'label'            => $role_option_name,
5200
-									'label_type'       => 'hidden',
5201
-									'class'            => 'bsvc_user_roles',
5202
-									'value'            => $role_option_key,
5203
-									'switch'           => 'md',
5204
-									'no_wrap'          => true
5205
-								)
5206
-							);
5207
-							$content .= '</div>';
5208
-						}
5209
-					$content .= '</div>';
5210
-					$content .= '<div class="bs-vc-sep-wrap text-center position-absolute top-0 mt-n3"><div class="bs-vc-sep-cond d-inline-block badge text-dark bg-gray mt-1">' . esc_html__( 'AND', 'ayecode-connect' ) . '</div></div>';
5211
-				$content .= '</div>';
5212
-			$content .= '</div>';
5213
-			$content .= '<form id="bs-vc-modal-form" class="bs-vc-modal-form">';
5214
-			$content .= '<div class="bs-vc-rule-sets"></div>';
5215
-			$content .= '<div class="row"><div class="col-sm-12 text-center pt-1 pb-4"><button type="button" class="btn btn-sm btn-primary d-block w-100 bs-vc-add-rule"><i class="fas fa-plus"></i> ' . __( 'Add Rule', 'ayecode-connect' ) . '</button></div></div>';
5216
-			$content .= '<div class="row"><div class="col-md-6 col-sm-12">';
5217
-			$content .= aui()->select(
5218
-				array(
5219
-					'id'          => 'bsvc_output',
5220
-					'name'        => 'bsvc_output',
5221
-					'label'       => __( 'What should happen if rules met.', 'ayecode-connect' ),
5222
-					'placeholder' => __( 'Show Block', 'ayecode-connect' ),
5223
-					'class'       => 'bsvc_output form-select-sm no-select2 mw-100',
5224
-					'options'     => sd_visibility_output_options(),
5225
-					'default'     => '',
5226
-					'value'       => '',
5227
-					'label_type'  => 'top',
5228
-					'select2'     => false,
5229
-					'extra_attributes' => array(
5230
-						'data-minimum-results-for-search' => '-1'
5231
-					)
5232
-				)
5233
-			);
5234
-
5235
-			$content .= '</div><div class="col-md-6 col-sm-12">';
5236
-
5237
-			$content .= aui()->select(
5238
-				array(
5239
-					'id'              => 'bsvc_page',
5240
-					'name'            => 'bsvc_page',
5241
-					'label'           => __( 'Page Content', 'ayecode-connect' ),
5242
-					'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5243
-					'class'           => 'bsvc_page form-select-sm no-select2 mw-100',
5244
-					'options'         => sd_template_page_options(),
5245
-					'default'         => '',
5246
-					'value'           => '',
5247
-					'label_type'      => 'top',
5248
-					'select2'         => false,
5249
-					'element_require' => '[%bsvc_output%]=="page"'
5250
-				)
5251
-			);
5252
-
5253
-			$content .= aui()->select(
5254
-				array(
5255
-					'id'          => 'bsvc_tmpl_part',
5256
-					'name'        => 'bsvc_tmpl_part',
5257
-					'label'       => __( 'Template Part', 'ayecode-connect' ),
5258
-					'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5259
-					'class'       => 'bsvc_tmpl_part form-select-sm no-select2 mw-100',
5260
-					'options'     => sd_template_part_options(),
5261
-					'default'     => '',
5262
-					'value'       => '',
5263
-					'label_type'  => 'top',
5264
-					'select2'     => false,
5265
-					'element_require'  => '[%bsvc_output%]=="template_part"',
5266
-					'extra_attributes' => array(
5267
-						'data-minimum-results-for-search' => '-1'
5268
-					)
5269
-				)
5270
-			);
5271
-
5272
-			$content .= aui()->select(
5273
-				array(
5274
-					'id'               => 'bsvc_message_type',
5275
-					'name'             => 'bsvc_message_type',
5276
-					'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5277
-					'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5278
-					'class'            => 'bsvc_message_type form-select-sm no-select2 mw-100',
5279
-					'options'          => sd_aui_colors(),
5280
-					'default'          => '',
5281
-					'value'            => '',
5282
-					'label_type'       => 'top',
5283
-					'select2'          => false,
5284
-					'element_require'  => '[%bsvc_output%]=="message"',
5285
-					'extra_attributes' => array(
5286
-						'data-minimum-results-for-search' => '-1'
5287
-					)
5288
-				)
5289
-			);
5290
-
5291
-			$content .= '</div><div class="col-sm-12">';
5292
-
5293
-			$content .= aui()->input(
5294
-				array(
5295
-					'type'            => 'text',
5296
-					'id'              => 'bsvc_message',
5297
-					'name'            => 'bsvc_message',
5298
-					'label'           => '',
5299
-					'class'           => 'bsvc_message form-control-sm mb-3',
5300
-					'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5301
-					'label_type'      => '',
5302
-					'value'           => '',
5303
-					'form_group_class' => ' ',
5304
-					'element_require' => '[%bsvc_output%]=="message"',
5305
-				)
5306
-			);
5307
-
5308
-			$content .= '</div></div><div class="row"><div class="col col-12"><div class="pt-3 mt-1 border-top"></div></div><div class="col-md-6 col-sm-12">';
5309
-			$content .= aui()->select(
5310
-				array(
5311
-					'id'          => 'bsvc_output_n',
5312
-					'name'        => 'bsvc_output_n',
5313
-					'label'       => __( 'What should happen if rules NOT met.', 'ayecode-connect' ),
5314
-					'placeholder' => __( 'Show Block', 'ayecode-connect' ),
5315
-					'class'       => 'bsvc_output_n form-select-sm no-select2 mw-100',
5316
-					'options'     => sd_visibility_output_options(),
5317
-					'default'     => '',
5318
-					'value'       => '',
5319
-					'label_type'  => 'top',
5320
-					'select2'     => false,
5321
-					'extra_attributes' => array(
5322
-						'data-minimum-results-for-search' => '-1'
5323
-					)
5324
-				)
5325
-			);
5326
-
5327
-			$content .= '</div><div class="col-md-6 col-sm-12">';
5328
-
5329
-			$content .= aui()->select(
5330
-				array(
5331
-					'id'              => 'bsvc_page_n',
5332
-					'name'            => 'bsvc_page_n',
5333
-					'label'           => __( 'Page Content', 'ayecode-connect' ),
5334
-					'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5335
-					'class'           => 'bsvc_page_n form-select-sm no-select2 mw-100',
5336
-					'options'         => sd_template_page_options(),
5337
-					'default'         => '',
5338
-					'value'           => '',
5339
-					'label_type'      => 'top',
5340
-					'select2'         => false,
5341
-					'element_require' => '[%bsvc_output_n%]=="page"'
5342
-				)
5343
-			);
5344
-
5345
-			$content .= aui()->select(
5346
-				array(
5347
-					'id'          => 'bsvc_tmpl_part_n',
5348
-					'name'        => 'bsvc_tmpl_part_n',
5349
-					'label'       => __( 'Template Part', 'ayecode-connect' ),
5350
-					'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5351
-					'class'       => 'bsvc_tmpl_part_n form-select-sm no-select2 mw-100',
5352
-					'options'     => sd_template_part_options(),
5353
-					'default'     => '',
5354
-					'value'       => '',
5355
-					'label_type'  => 'top',
5356
-					'select2'     => false,
5357
-					'element_require'  => '[%bsvc_output_n%]=="template_part"',
5358
-					'extra_attributes' => array(
5359
-						'data-minimum-results-for-search' => '-1'
5360
-					)
5361
-				)
5362
-			);
5363
-
5364
-			$content .= aui()->select(
5365
-				array(
5366
-					'id'               => 'bsvc_message_type_n',
5367
-					'name'             => 'bsvc_message_type_n',
5368
-					'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5369
-					'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5370
-					'class'            => 'bsvc_message_type_n form-select-sm no-select2 mw-100',
5371
-					'options'          => sd_aui_colors(),
5372
-					'default'          => '',
5373
-					'value'            => '',
5374
-					'label_type'       => 'top',
5375
-					'select2'          => false,
5376
-					'element_require'  => '[%bsvc_output_n%]=="message"',
5377
-					'extra_attributes' => array(
5378
-						'data-minimum-results-for-search' => '-1'
5379
-					)
5380
-				)
5381
-			);
5382
-
5383
-			$content .= '</div><div class="col-sm-12">';
5384
-
5385
-			$content .= aui()->input(
5386
-				array(
5387
-					'type'            => 'text',
5388
-					'id'              => 'bsvc_message_n',
5389
-					'name'            => 'bsvc_message_n',
5390
-					'label'           => '',
5391
-					'class'           => 'bsvc_message_n form-control-sm',
5392
-					'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5393
-					'label_type'      => '',
5394
-					'value'           => '',
5395
-					'form_group_class' => ' ',
5396
-					'element_require' => '[%bsvc_output_n%]=="message"',
5397
-				)
5398
-			);
5399
-
5400
-			$content .= '</div></div></form><input type="hidden" id="bsvc_raw_value" name="bsvc_raw_value" value="' . $value . '">';
5401
-
5402
-			return $content;
5403
-		}
5184
+                    $content .= '</div>';
5185
+
5186
+                    $content .= '<div class="row aui-conditional-field" data-element-require="jQuery(form).find(\'[name=bsvc_rule_BSVCINDEX]\').val()==\'user_roles\'" data-argument="bsvc_user_roles_BSVCINDEX_1"><label for="bsvc_user_roles_BSVCINDEX_1" class="form-label mb-3">' . __( 'Select User Roles:', 'ayecode-connect' ) . '</label>';
5187
+                        $role_options = sd_user_roles_options();
5188
+
5189
+                        $role_option_i = 0;
5190
+                        foreach ( $role_options as $role_option_key => $role_option_name ) {
5191
+                            $role_option_i++;
5192
+
5193
+                            $content .= '<div class="col-sm-6">';
5194
+                            $content .= aui()->input(
5195
+                                array(
5196
+                                    'id'               => 'bsvc_user_roles_BSVCINDEX_' . $role_option_i,
5197
+                                    'name'             => 'bsvc_user_roles_BSVCINDEX[]',
5198
+                                    'type'             => 'checkbox',
5199
+                                    'label'            => $role_option_name,
5200
+                                    'label_type'       => 'hidden',
5201
+                                    'class'            => 'bsvc_user_roles',
5202
+                                    'value'            => $role_option_key,
5203
+                                    'switch'           => 'md',
5204
+                                    'no_wrap'          => true
5205
+                                )
5206
+                            );
5207
+                            $content .= '</div>';
5208
+                        }
5209
+                    $content .= '</div>';
5210
+                    $content .= '<div class="bs-vc-sep-wrap text-center position-absolute top-0 mt-n3"><div class="bs-vc-sep-cond d-inline-block badge text-dark bg-gray mt-1">' . esc_html__( 'AND', 'ayecode-connect' ) . '</div></div>';
5211
+                $content .= '</div>';
5212
+            $content .= '</div>';
5213
+            $content .= '<form id="bs-vc-modal-form" class="bs-vc-modal-form">';
5214
+            $content .= '<div class="bs-vc-rule-sets"></div>';
5215
+            $content .= '<div class="row"><div class="col-sm-12 text-center pt-1 pb-4"><button type="button" class="btn btn-sm btn-primary d-block w-100 bs-vc-add-rule"><i class="fas fa-plus"></i> ' . __( 'Add Rule', 'ayecode-connect' ) . '</button></div></div>';
5216
+            $content .= '<div class="row"><div class="col-md-6 col-sm-12">';
5217
+            $content .= aui()->select(
5218
+                array(
5219
+                    'id'          => 'bsvc_output',
5220
+                    'name'        => 'bsvc_output',
5221
+                    'label'       => __( 'What should happen if rules met.', 'ayecode-connect' ),
5222
+                    'placeholder' => __( 'Show Block', 'ayecode-connect' ),
5223
+                    'class'       => 'bsvc_output form-select-sm no-select2 mw-100',
5224
+                    'options'     => sd_visibility_output_options(),
5225
+                    'default'     => '',
5226
+                    'value'       => '',
5227
+                    'label_type'  => 'top',
5228
+                    'select2'     => false,
5229
+                    'extra_attributes' => array(
5230
+                        'data-minimum-results-for-search' => '-1'
5231
+                    )
5232
+                )
5233
+            );
5234
+
5235
+            $content .= '</div><div class="col-md-6 col-sm-12">';
5236
+
5237
+            $content .= aui()->select(
5238
+                array(
5239
+                    'id'              => 'bsvc_page',
5240
+                    'name'            => 'bsvc_page',
5241
+                    'label'           => __( 'Page Content', 'ayecode-connect' ),
5242
+                    'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5243
+                    'class'           => 'bsvc_page form-select-sm no-select2 mw-100',
5244
+                    'options'         => sd_template_page_options(),
5245
+                    'default'         => '',
5246
+                    'value'           => '',
5247
+                    'label_type'      => 'top',
5248
+                    'select2'         => false,
5249
+                    'element_require' => '[%bsvc_output%]=="page"'
5250
+                )
5251
+            );
5252
+
5253
+            $content .= aui()->select(
5254
+                array(
5255
+                    'id'          => 'bsvc_tmpl_part',
5256
+                    'name'        => 'bsvc_tmpl_part',
5257
+                    'label'       => __( 'Template Part', 'ayecode-connect' ),
5258
+                    'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5259
+                    'class'       => 'bsvc_tmpl_part form-select-sm no-select2 mw-100',
5260
+                    'options'     => sd_template_part_options(),
5261
+                    'default'     => '',
5262
+                    'value'       => '',
5263
+                    'label_type'  => 'top',
5264
+                    'select2'     => false,
5265
+                    'element_require'  => '[%bsvc_output%]=="template_part"',
5266
+                    'extra_attributes' => array(
5267
+                        'data-minimum-results-for-search' => '-1'
5268
+                    )
5269
+                )
5270
+            );
5271
+
5272
+            $content .= aui()->select(
5273
+                array(
5274
+                    'id'               => 'bsvc_message_type',
5275
+                    'name'             => 'bsvc_message_type',
5276
+                    'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5277
+                    'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5278
+                    'class'            => 'bsvc_message_type form-select-sm no-select2 mw-100',
5279
+                    'options'          => sd_aui_colors(),
5280
+                    'default'          => '',
5281
+                    'value'            => '',
5282
+                    'label_type'       => 'top',
5283
+                    'select2'          => false,
5284
+                    'element_require'  => '[%bsvc_output%]=="message"',
5285
+                    'extra_attributes' => array(
5286
+                        'data-minimum-results-for-search' => '-1'
5287
+                    )
5288
+                )
5289
+            );
5290
+
5291
+            $content .= '</div><div class="col-sm-12">';
5292
+
5293
+            $content .= aui()->input(
5294
+                array(
5295
+                    'type'            => 'text',
5296
+                    'id'              => 'bsvc_message',
5297
+                    'name'            => 'bsvc_message',
5298
+                    'label'           => '',
5299
+                    'class'           => 'bsvc_message form-control-sm mb-3',
5300
+                    'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5301
+                    'label_type'      => '',
5302
+                    'value'           => '',
5303
+                    'form_group_class' => ' ',
5304
+                    'element_require' => '[%bsvc_output%]=="message"',
5305
+                )
5306
+            );
5307
+
5308
+            $content .= '</div></div><div class="row"><div class="col col-12"><div class="pt-3 mt-1 border-top"></div></div><div class="col-md-6 col-sm-12">';
5309
+            $content .= aui()->select(
5310
+                array(
5311
+                    'id'          => 'bsvc_output_n',
5312
+                    'name'        => 'bsvc_output_n',
5313
+                    'label'       => __( 'What should happen if rules NOT met.', 'ayecode-connect' ),
5314
+                    'placeholder' => __( 'Show Block', 'ayecode-connect' ),
5315
+                    'class'       => 'bsvc_output_n form-select-sm no-select2 mw-100',
5316
+                    'options'     => sd_visibility_output_options(),
5317
+                    'default'     => '',
5318
+                    'value'       => '',
5319
+                    'label_type'  => 'top',
5320
+                    'select2'     => false,
5321
+                    'extra_attributes' => array(
5322
+                        'data-minimum-results-for-search' => '-1'
5323
+                    )
5324
+                )
5325
+            );
5326
+
5327
+            $content .= '</div><div class="col-md-6 col-sm-12">';
5328
+
5329
+            $content .= aui()->select(
5330
+                array(
5331
+                    'id'              => 'bsvc_page_n',
5332
+                    'name'            => 'bsvc_page_n',
5333
+                    'label'           => __( 'Page Content', 'ayecode-connect' ),
5334
+                    'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5335
+                    'class'           => 'bsvc_page_n form-select-sm no-select2 mw-100',
5336
+                    'options'         => sd_template_page_options(),
5337
+                    'default'         => '',
5338
+                    'value'           => '',
5339
+                    'label_type'      => 'top',
5340
+                    'select2'         => false,
5341
+                    'element_require' => '[%bsvc_output_n%]=="page"'
5342
+                )
5343
+            );
5344
+
5345
+            $content .= aui()->select(
5346
+                array(
5347
+                    'id'          => 'bsvc_tmpl_part_n',
5348
+                    'name'        => 'bsvc_tmpl_part_n',
5349
+                    'label'       => __( 'Template Part', 'ayecode-connect' ),
5350
+                    'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5351
+                    'class'       => 'bsvc_tmpl_part_n form-select-sm no-select2 mw-100',
5352
+                    'options'     => sd_template_part_options(),
5353
+                    'default'     => '',
5354
+                    'value'       => '',
5355
+                    'label_type'  => 'top',
5356
+                    'select2'     => false,
5357
+                    'element_require'  => '[%bsvc_output_n%]=="template_part"',
5358
+                    'extra_attributes' => array(
5359
+                        'data-minimum-results-for-search' => '-1'
5360
+                    )
5361
+                )
5362
+            );
5363
+
5364
+            $content .= aui()->select(
5365
+                array(
5366
+                    'id'               => 'bsvc_message_type_n',
5367
+                    'name'             => 'bsvc_message_type_n',
5368
+                    'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5369
+                    'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5370
+                    'class'            => 'bsvc_message_type_n form-select-sm no-select2 mw-100',
5371
+                    'options'          => sd_aui_colors(),
5372
+                    'default'          => '',
5373
+                    'value'            => '',
5374
+                    'label_type'       => 'top',
5375
+                    'select2'          => false,
5376
+                    'element_require'  => '[%bsvc_output_n%]=="message"',
5377
+                    'extra_attributes' => array(
5378
+                        'data-minimum-results-for-search' => '-1'
5379
+                    )
5380
+                )
5381
+            );
5382
+
5383
+            $content .= '</div><div class="col-sm-12">';
5384
+
5385
+            $content .= aui()->input(
5386
+                array(
5387
+                    'type'            => 'text',
5388
+                    'id'              => 'bsvc_message_n',
5389
+                    'name'            => 'bsvc_message_n',
5390
+                    'label'           => '',
5391
+                    'class'           => 'bsvc_message_n form-control-sm',
5392
+                    'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5393
+                    'label_type'      => '',
5394
+                    'value'           => '',
5395
+                    'form_group_class' => ' ',
5396
+                    'element_require' => '[%bsvc_output_n%]=="message"',
5397
+                )
5398
+            );
5399
+
5400
+            $content .= '</div></div></form><input type="hidden" id="bsvc_raw_value" name="bsvc_raw_value" value="' . $value . '">';
5401
+
5402
+            return $content;
5403
+        }
5404 5404
 
5405
-		/**
5406
-		 * Handle media_buttons hook.
5407
-		 *
5408
-		 * @since 1.2.7
5409
-		 */
5410
-		public function wp_media_buttons() {
5411
-			global $shortcode_insert_button_once;
5412
-
5413
-			// Fix conflicts with UpSolution Core in header template edit element.
5414
-			if ( defined( 'US_CORE_DIR' ) && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html' ) {
5415
-				$shortcode_insert_button_once = true;
5416
-			}
5417
-		}
5418
-	}
5405
+        /**
5406
+         * Handle media_buttons hook.
5407
+         *
5408
+         * @since 1.2.7
5409
+         */
5410
+        public function wp_media_buttons() {
5411
+            global $shortcode_insert_button_once;
5412
+
5413
+            // Fix conflicts with UpSolution Core in header template edit element.
5414
+            if ( defined( 'US_CORE_DIR' ) && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html' ) {
5415
+                $shortcode_insert_button_once = true;
5416
+            }
5417
+        }
5418
+    }
5419 5419
 }
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/sd-functions.php 1 patch
Indentation   +2869 added lines, -2869 removed lines patch added patch discarded remove patch
@@ -11,21 +11,21 @@  discard block
 block discarded – undo
11 11
  * @return mixed|void
12 12
  */
13 13
 function sd_pagenow_exclude() {
14
-	return apply_filters(
15
-		'sd_pagenow_exclude',
16
-		array(
17
-			'upload.php',
18
-			'edit-comments.php',
19
-			'edit-tags.php',
20
-			'index.php',
21
-			'media-new.php',
22
-			'options-discussion.php',
23
-			'options-writing.php',
24
-			'edit.php',
25
-			'themes.php',
26
-			'users.php',
27
-		)
28
-	);
14
+    return apply_filters(
15
+        'sd_pagenow_exclude',
16
+        array(
17
+            'upload.php',
18
+            'edit-comments.php',
19
+            'edit-tags.php',
20
+            'index.php',
21
+            'media-new.php',
22
+            'options-discussion.php',
23
+            'options-writing.php',
24
+            'edit.php',
25
+            'themes.php',
26
+            'users.php',
27
+        )
28
+    );
29 29
 }
30 30
 
31 31
 
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
  * @return mixed|void
38 38
  */
39 39
 function sd_widget_exclude() {
40
-	return apply_filters( 'sd_widget_exclude', array() );
40
+    return apply_filters( 'sd_widget_exclude', array() );
41 41
 }
42 42
 
43 43
 
@@ -50,83 +50,83 @@  discard block
 block discarded – undo
50 50
  * @return array
51 51
  */
52 52
 function sd_get_margin_input( $type = 'mt', $overwrite = array(), $include_negatives = true ) {
53
-	global $aui_bs5;
54
-	$options = array(
55
-		''     => __( 'None', 'ayecode-connect' ),
56
-		'auto' => __( 'auto', 'ayecode-connect' ),
57
-		'0'    => '0',
58
-		'1'    => '1',
59
-		'2'    => '2',
60
-		'3'    => '3',
61
-		'4'    => '4',
62
-		'5'    => '5',
63
-		'6'    => '6',
64
-		'7'    => '7',
65
-		'8'    => '8',
66
-		'9'    => '9',
67
-		'10'   => '10',
68
-		'11'   => '11',
69
-		'12'   => '12',
70
-	);
71
-
72
-	if ( $include_negatives ) {
73
-		$options['n1']  = '-1';
74
-		$options['n2']  = '-2';
75
-		$options['n3']  = '-3';
76
-		$options['n4']  = '-4';
77
-		$options['n5']  = '-5';
78
-		$options['n6']  = '-6';
79
-		$options['n7']  = '-7';
80
-		$options['n8']  = '-8';
81
-		$options['n9']  = '-9';
82
-		$options['n10'] = '-10';
83
-		$options['n11'] = '-11';
84
-		$options['n12'] = '-12';
85
-	}
86
-
87
-	$defaults = array(
88
-		'type'     => 'select',
89
-		'title'    => __( 'Margin top', 'ayecode-connect' ),
90
-		'options'  => $options,
91
-		'default'  => '',
92
-		'desc_tip' => true,
93
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
94
-	);
95
-
96
-	// title
97
-	if ( $type == 'mt' ) {
98
-		$defaults['title'] = __( 'Margin top', 'ayecode-connect' );
99
-		$defaults['icon']  = 'box-top';
100
-		$defaults['row']   = array(
101
-			'title' => __( 'Margins', 'ayecode-connect' ),
102
-			'key'   => 'wrapper-margins',
103
-			'open'  => true,
104
-			'class' => 'text-center',
105
-		);
106
-	} elseif ( $type == 'mr' ) {
107
-		$defaults['title'] = __( 'Margin right', 'ayecode-connect' );
108
-		$defaults['icon']  = 'box-right';
109
-		$defaults['row']   = array(
110
-			'key' => 'wrapper-margins',
111
-		);
112
-	} elseif ( $type == 'mb' ) {
113
-		$defaults['title'] = __( 'Margin bottom', 'ayecode-connect' );
114
-		$defaults['icon']  = 'box-bottom';
115
-		$defaults['row']   = array(
116
-			'key' => 'wrapper-margins',
117
-		);
118
-	} elseif ( $type == 'ml' ) {
119
-		$defaults['title'] = __( 'Margin left', 'ayecode-connect' );
120
-		$defaults['icon']  = 'box-left';
121
-		$defaults['row']   = array(
122
-			'key'   => 'wrapper-margins',
123
-			'close' => true,
124
-		);
125
-	}
126
-
127
-	$input = wp_parse_args( $overwrite, $defaults );
128
-
129
-	return $input;
53
+    global $aui_bs5;
54
+    $options = array(
55
+        ''     => __( 'None', 'ayecode-connect' ),
56
+        'auto' => __( 'auto', 'ayecode-connect' ),
57
+        '0'    => '0',
58
+        '1'    => '1',
59
+        '2'    => '2',
60
+        '3'    => '3',
61
+        '4'    => '4',
62
+        '5'    => '5',
63
+        '6'    => '6',
64
+        '7'    => '7',
65
+        '8'    => '8',
66
+        '9'    => '9',
67
+        '10'   => '10',
68
+        '11'   => '11',
69
+        '12'   => '12',
70
+    );
71
+
72
+    if ( $include_negatives ) {
73
+        $options['n1']  = '-1';
74
+        $options['n2']  = '-2';
75
+        $options['n3']  = '-3';
76
+        $options['n4']  = '-4';
77
+        $options['n5']  = '-5';
78
+        $options['n6']  = '-6';
79
+        $options['n7']  = '-7';
80
+        $options['n8']  = '-8';
81
+        $options['n9']  = '-9';
82
+        $options['n10'] = '-10';
83
+        $options['n11'] = '-11';
84
+        $options['n12'] = '-12';
85
+    }
86
+
87
+    $defaults = array(
88
+        'type'     => 'select',
89
+        'title'    => __( 'Margin top', 'ayecode-connect' ),
90
+        'options'  => $options,
91
+        'default'  => '',
92
+        'desc_tip' => true,
93
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
94
+    );
95
+
96
+    // title
97
+    if ( $type == 'mt' ) {
98
+        $defaults['title'] = __( 'Margin top', 'ayecode-connect' );
99
+        $defaults['icon']  = 'box-top';
100
+        $defaults['row']   = array(
101
+            'title' => __( 'Margins', 'ayecode-connect' ),
102
+            'key'   => 'wrapper-margins',
103
+            'open'  => true,
104
+            'class' => 'text-center',
105
+        );
106
+    } elseif ( $type == 'mr' ) {
107
+        $defaults['title'] = __( 'Margin right', 'ayecode-connect' );
108
+        $defaults['icon']  = 'box-right';
109
+        $defaults['row']   = array(
110
+            'key' => 'wrapper-margins',
111
+        );
112
+    } elseif ( $type == 'mb' ) {
113
+        $defaults['title'] = __( 'Margin bottom', 'ayecode-connect' );
114
+        $defaults['icon']  = 'box-bottom';
115
+        $defaults['row']   = array(
116
+            'key' => 'wrapper-margins',
117
+        );
118
+    } elseif ( $type == 'ml' ) {
119
+        $defaults['title'] = __( 'Margin left', 'ayecode-connect' );
120
+        $defaults['icon']  = 'box-left';
121
+        $defaults['row']   = array(
122
+            'key'   => 'wrapper-margins',
123
+            'close' => true,
124
+        );
125
+    }
126
+
127
+    $input = wp_parse_args( $overwrite, $defaults );
128
+
129
+    return $input;
130 130
 }
131 131
 
132 132
 /**
@@ -138,67 +138,67 @@  discard block
 block discarded – undo
138 138
  * @return array
139 139
  */
140 140
 function sd_get_padding_input( $type = 'pt', $overwrite = array() ) {
141
-	$options = array(
142
-		''   => __( 'None', 'ayecode-connect' ),
143
-		'0'  => '0',
144
-		'1'  => '1',
145
-		'2'  => '2',
146
-		'3'  => '3',
147
-		'4'  => '4',
148
-		'5'  => '5',
149
-		'6'  => '6',
150
-		'7'  => '7',
151
-		'8'  => '8',
152
-		'9'  => '9',
153
-		'10' => '10',
154
-		'11' => '11',
155
-		'12' => '12',
156
-	);
157
-
158
-	$defaults = array(
159
-		'type'     => 'select',
160
-		'title'    => __( 'Padding top', 'ayecode-connect' ),
161
-		'options'  => $options,
162
-		'default'  => '',
163
-		'desc_tip' => true,
164
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
165
-	);
166
-
167
-	// title
168
-	if ( $type == 'pt' ) {
169
-		$defaults['title'] = __( 'Padding top', 'ayecode-connect' );
170
-		$defaults['icon']  = 'box-top';
171
-		$defaults['row']   = array(
172
-			'title' => __( 'Padding', 'ayecode-connect' ),
173
-			'key'   => 'wrapper-padding',
174
-			'open'  => true,
175
-			'class' => 'text-center',
176
-		);
177
-	} elseif ( $type == 'pr' ) {
178
-		$defaults['title'] = __( 'Padding right', 'ayecode-connect' );
179
-		$defaults['icon']  = 'box-right';
180
-		$defaults['row']   = array(
181
-			'key' => 'wrapper-padding',
182
-		);
183
-	} elseif ( $type == 'pb' ) {
184
-		$defaults['title'] = __( 'Padding bottom', 'ayecode-connect' );
185
-		$defaults['icon']  = 'box-bottom';
186
-		$defaults['row']   = array(
187
-			'key' => 'wrapper-padding',
188
-		);
189
-	} elseif ( $type == 'pl' ) {
190
-		$defaults['title'] = __( 'Padding left', 'ayecode-connect' );
191
-		$defaults['icon']  = 'box-left';
192
-		$defaults['row']   = array(
193
-			'key'   => 'wrapper-padding',
194
-			'close' => true,
195
-
196
-		);
197
-	}
198
-
199
-	$input = wp_parse_args( $overwrite, $defaults );
200
-
201
-	return $input;
141
+    $options = array(
142
+        ''   => __( 'None', 'ayecode-connect' ),
143
+        '0'  => '0',
144
+        '1'  => '1',
145
+        '2'  => '2',
146
+        '3'  => '3',
147
+        '4'  => '4',
148
+        '5'  => '5',
149
+        '6'  => '6',
150
+        '7'  => '7',
151
+        '8'  => '8',
152
+        '9'  => '9',
153
+        '10' => '10',
154
+        '11' => '11',
155
+        '12' => '12',
156
+    );
157
+
158
+    $defaults = array(
159
+        'type'     => 'select',
160
+        'title'    => __( 'Padding top', 'ayecode-connect' ),
161
+        'options'  => $options,
162
+        'default'  => '',
163
+        'desc_tip' => true,
164
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
165
+    );
166
+
167
+    // title
168
+    if ( $type == 'pt' ) {
169
+        $defaults['title'] = __( 'Padding top', 'ayecode-connect' );
170
+        $defaults['icon']  = 'box-top';
171
+        $defaults['row']   = array(
172
+            'title' => __( 'Padding', 'ayecode-connect' ),
173
+            'key'   => 'wrapper-padding',
174
+            'open'  => true,
175
+            'class' => 'text-center',
176
+        );
177
+    } elseif ( $type == 'pr' ) {
178
+        $defaults['title'] = __( 'Padding right', 'ayecode-connect' );
179
+        $defaults['icon']  = 'box-right';
180
+        $defaults['row']   = array(
181
+            'key' => 'wrapper-padding',
182
+        );
183
+    } elseif ( $type == 'pb' ) {
184
+        $defaults['title'] = __( 'Padding bottom', 'ayecode-connect' );
185
+        $defaults['icon']  = 'box-bottom';
186
+        $defaults['row']   = array(
187
+            'key' => 'wrapper-padding',
188
+        );
189
+    } elseif ( $type == 'pl' ) {
190
+        $defaults['title'] = __( 'Padding left', 'ayecode-connect' );
191
+        $defaults['icon']  = 'box-left';
192
+        $defaults['row']   = array(
193
+            'key'   => 'wrapper-padding',
194
+            'close' => true,
195
+
196
+        );
197
+    }
198
+
199
+    $input = wp_parse_args( $overwrite, $defaults );
200
+
201
+    return $input;
202 202
 }
203 203
 
204 204
 /**
@@ -210,96 +210,96 @@  discard block
 block discarded – undo
210 210
  * @return array
211 211
  */
212 212
 function sd_get_border_input( $type = 'border', $overwrite = array() ) {
213
-	global $aui_bs5;
214
-
215
-	$defaults = array(
216
-		'type'     => 'select',
217
-		'title'    => __( 'Border', 'ayecode-connect' ),
218
-		'options'  => array(),
219
-		'default'  => '',
220
-		'desc_tip' => true,
221
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
222
-	);
223
-
224
-	// title
225
-	if ( 'rounded' === $type ) {
226
-		$defaults['title']           = __( 'Border radius type', 'ayecode-connect' );
227
-		$defaults['options']         = array(
228
-			''               => __( 'Default', 'ayecode-connect' ),
229
-			'rounded'        => 'rounded',
230
-			'rounded-top'    => 'rounded-top',
231
-			'rounded-right'  => 'rounded-right',
232
-			'rounded-bottom' => 'rounded-bottom',
233
-			'rounded-left'   => 'rounded-left',
234
-		);
235
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
236
-	} elseif ( 'rounded_size' === $type ) {
237
-		$defaults['title'] = __( 'Border radius size', 'ayecode-connect' );
238
-
239
-		if ( $aui_bs5 ) {
240
-			$defaults['options'] = array(
241
-				''       => __( 'Default', 'ayecode-connect' ),
242
-				'0'      => '0',
243
-				'1'      => '1',
244
-				'2'      => '2',
245
-				'3'      => '3',
246
-				'4'      => '4',
247
-				'circle' => 'circle',
248
-				'pill'   => 'pill',
249
-			);
250
-		} else {
251
-			$defaults['options'] = array(
252
-				''   => __( 'Default', 'ayecode-connect' ),
253
-				'sm' => __( 'Small', 'ayecode-connect' ),
254
-				'lg' => __( 'Large', 'ayecode-connect' ),
255
-			);
256
-		}
257
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
258
-	} elseif ( 'width' === $type ) { // BS%
259
-		$defaults['title']           = __( 'Border width', 'ayecode-connect' );
260
-		$defaults['options']         = array(
261
-			''         => __( 'Default', 'ayecode-connect' ),
262
-			'border-2' => '2',
263
-			'border-3' => '3',
264
-			'border-4' => '4',
265
-			'border-5' => '5',
266
-		);
267
-		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
268
-	} elseif ( 'opacity' === $type ) { // BS%
269
-		$defaults['title']           = __( 'Border opacity', 'ayecode-connect' );
270
-		$defaults['options']         = array(
271
-			''                  => __( 'Default', 'ayecode-connect' ),
272
-			'border-opacity-75' => '75%',
273
-			'border-opacity-50' => '50%',
274
-			'border-opacity-25' => '25%',
275
-			'border-opacity-10' => '10%',
276
-		);
277
-		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
278
-	} elseif ( 'type' === $type ) {
279
-		$defaults['title']           = __( 'Border show', 'ayecode-connect' );
280
-		$defaults['options']         = array(
281
-			'border'          => __( 'Full (set color to show)', 'ayecode-connect' ),
282
-			'border-top'      => __( 'Top', 'ayecode-connect' ),
283
-			'border-bottom'   => __( 'Bottom', 'ayecode-connect' ),
284
-			'border-left'     => __( 'Left', 'ayecode-connect' ),
285
-			'border-right'    => __( 'Right', 'ayecode-connect' ),
286
-			'border-top-0'    => __( '-Top', 'ayecode-connect' ),
287
-			'border-bottom-0' => __( '-Bottom', 'ayecode-connect' ),
288
-			'border-left-0'   => __( '-Left', 'ayecode-connect' ),
289
-			'border-right-0'  => __( '-Right', 'ayecode-connect' ),
290
-		);
291
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
292
-	} else {
293
-		$defaults['title']   = __( 'Border color', 'ayecode-connect' );
294
-		$defaults['options'] = array(
295
-			''  => __( 'Default', 'ayecode-connect' ),
296
-			'0' => __( 'None', 'ayecode-connect' )
297
-		) + sd_aui_colors( false, false, false, false, true );
298
-	}
299
-
300
-	$input = wp_parse_args( $overwrite, $defaults );
301
-
302
-	return $input;
213
+    global $aui_bs5;
214
+
215
+    $defaults = array(
216
+        'type'     => 'select',
217
+        'title'    => __( 'Border', 'ayecode-connect' ),
218
+        'options'  => array(),
219
+        'default'  => '',
220
+        'desc_tip' => true,
221
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
222
+    );
223
+
224
+    // title
225
+    if ( 'rounded' === $type ) {
226
+        $defaults['title']           = __( 'Border radius type', 'ayecode-connect' );
227
+        $defaults['options']         = array(
228
+            ''               => __( 'Default', 'ayecode-connect' ),
229
+            'rounded'        => 'rounded',
230
+            'rounded-top'    => 'rounded-top',
231
+            'rounded-right'  => 'rounded-right',
232
+            'rounded-bottom' => 'rounded-bottom',
233
+            'rounded-left'   => 'rounded-left',
234
+        );
235
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
236
+    } elseif ( 'rounded_size' === $type ) {
237
+        $defaults['title'] = __( 'Border radius size', 'ayecode-connect' );
238
+
239
+        if ( $aui_bs5 ) {
240
+            $defaults['options'] = array(
241
+                ''       => __( 'Default', 'ayecode-connect' ),
242
+                '0'      => '0',
243
+                '1'      => '1',
244
+                '2'      => '2',
245
+                '3'      => '3',
246
+                '4'      => '4',
247
+                'circle' => 'circle',
248
+                'pill'   => 'pill',
249
+            );
250
+        } else {
251
+            $defaults['options'] = array(
252
+                ''   => __( 'Default', 'ayecode-connect' ),
253
+                'sm' => __( 'Small', 'ayecode-connect' ),
254
+                'lg' => __( 'Large', 'ayecode-connect' ),
255
+            );
256
+        }
257
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
258
+    } elseif ( 'width' === $type ) { // BS%
259
+        $defaults['title']           = __( 'Border width', 'ayecode-connect' );
260
+        $defaults['options']         = array(
261
+            ''         => __( 'Default', 'ayecode-connect' ),
262
+            'border-2' => '2',
263
+            'border-3' => '3',
264
+            'border-4' => '4',
265
+            'border-5' => '5',
266
+        );
267
+        $defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
268
+    } elseif ( 'opacity' === $type ) { // BS%
269
+        $defaults['title']           = __( 'Border opacity', 'ayecode-connect' );
270
+        $defaults['options']         = array(
271
+            ''                  => __( 'Default', 'ayecode-connect' ),
272
+            'border-opacity-75' => '75%',
273
+            'border-opacity-50' => '50%',
274
+            'border-opacity-25' => '25%',
275
+            'border-opacity-10' => '10%',
276
+        );
277
+        $defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
278
+    } elseif ( 'type' === $type ) {
279
+        $defaults['title']           = __( 'Border show', 'ayecode-connect' );
280
+        $defaults['options']         = array(
281
+            'border'          => __( 'Full (set color to show)', 'ayecode-connect' ),
282
+            'border-top'      => __( 'Top', 'ayecode-connect' ),
283
+            'border-bottom'   => __( 'Bottom', 'ayecode-connect' ),
284
+            'border-left'     => __( 'Left', 'ayecode-connect' ),
285
+            'border-right'    => __( 'Right', 'ayecode-connect' ),
286
+            'border-top-0'    => __( '-Top', 'ayecode-connect' ),
287
+            'border-bottom-0' => __( '-Bottom', 'ayecode-connect' ),
288
+            'border-left-0'   => __( '-Left', 'ayecode-connect' ),
289
+            'border-right-0'  => __( '-Right', 'ayecode-connect' ),
290
+        );
291
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
292
+    } else {
293
+        $defaults['title']   = __( 'Border color', 'ayecode-connect' );
294
+        $defaults['options'] = array(
295
+            ''  => __( 'Default', 'ayecode-connect' ),
296
+            '0' => __( 'None', 'ayecode-connect' )
297
+        ) + sd_aui_colors( false, false, false, false, true );
298
+    }
299
+
300
+    $input = wp_parse_args( $overwrite, $defaults );
301
+
302
+    return $input;
303 303
 }
304 304
 
305 305
 /**
@@ -311,25 +311,25 @@  discard block
 block discarded – undo
311 311
  * @return array
312 312
  */
313 313
 function sd_get_shadow_input( $type = 'shadow', $overwrite = array() ) {
314
-	$options = array(
315
-		''          => __( 'None', 'ayecode-connect' ),
316
-		'shadow-sm' => __( 'Small', 'ayecode-connect' ),
317
-		'shadow'    => __( 'Regular', 'ayecode-connect' ),
318
-		'shadow-lg' => __( 'Large', 'ayecode-connect' ),
319
-	);
314
+    $options = array(
315
+        ''          => __( 'None', 'ayecode-connect' ),
316
+        'shadow-sm' => __( 'Small', 'ayecode-connect' ),
317
+        'shadow'    => __( 'Regular', 'ayecode-connect' ),
318
+        'shadow-lg' => __( 'Large', 'ayecode-connect' ),
319
+    );
320 320
 
321
-	$defaults = array(
322
-		'type'     => 'select',
323
-		'title'    => __( 'Shadow', 'ayecode-connect' ),
324
-		'options'  => $options,
325
-		'default'  => '',
326
-		'desc_tip' => true,
327
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
328
-	);
321
+    $defaults = array(
322
+        'type'     => 'select',
323
+        'title'    => __( 'Shadow', 'ayecode-connect' ),
324
+        'options'  => $options,
325
+        'default'  => '',
326
+        'desc_tip' => true,
327
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
328
+    );
329 329
 
330
-	$input = wp_parse_args( $overwrite, $defaults );
330
+    $input = wp_parse_args( $overwrite, $defaults );
331 331
 
332
-	return $input;
332
+    return $input;
333 333
 }
334 334
 
335 335
 /**
@@ -341,23 +341,23 @@  discard block
 block discarded – undo
341 341
  * @return array
342 342
  */
343 343
 function sd_get_background_input( $type = 'bg', $overwrite = array() ) {
344
-	$options = array(
345
-		           ''            => __( 'None', 'ayecode-connect' ),
346
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
347
-	           ) + sd_aui_colors(false,false,false,false,true);
344
+    $options = array(
345
+                    ''            => __( 'None', 'ayecode-connect' ),
346
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
347
+                ) + sd_aui_colors(false,false,false,false,true);
348 348
 
349
-	$defaults = array(
350
-		'type'     => 'select',
351
-		'title'    => __( 'Background color', 'ayecode-connect' ),
352
-		'options'  => $options,
353
-		'default'  => '',
354
-		'desc_tip' => true,
355
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
356
-	);
349
+    $defaults = array(
350
+        'type'     => 'select',
351
+        'title'    => __( 'Background color', 'ayecode-connect' ),
352
+        'options'  => $options,
353
+        'default'  => '',
354
+        'desc_tip' => true,
355
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
356
+    );
357 357
 
358
-	$input = wp_parse_args( $overwrite, $defaults );
358
+    $input = wp_parse_args( $overwrite, $defaults );
359 359
 
360
-	return $input;
360
+    return $input;
361 361
 }
362 362
 
363 363
 /**
@@ -369,35 +369,35 @@  discard block
 block discarded – undo
369 369
  * @return array
370 370
  */
371 371
 function sd_get_opacity_input( $type = 'opacity', $overwrite = array() ) {
372
-	$options = array(
373
-		''            => __( 'Default', 'ayecode-connect' ),
374
-		'opacity-10'  => '10%',
375
-		'opacity-15'  => '15%',
376
-		'opacity-25'  => '25%',
377
-		'opacity-35'  => '35%',
378
-		'opacity-40'  => '40%',
379
-		'opacity-50'  => '50%',
380
-		'opacity-60'  => '60%',
381
-		'opacity-65'  => '65%',
382
-		'opacity-70'  => '70%',
383
-		'opacity-75'  => '75%',
384
-		'opacity-80'  => '80%',
385
-		'opacity-90'  => '90%',
386
-		'opacity-100' => '100%',
387
-	);
388
-
389
-	$defaults = array(
390
-		'type'     => 'select',
391
-		'title'    => __( 'Opacity', 'ayecode-connect' ),
392
-		'options'  => $options,
393
-		'default'  => '',
394
-		'desc_tip' => true,
395
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
396
-	);
397
-
398
-	$input = wp_parse_args( $overwrite, $defaults );
399
-
400
-	return $input;
372
+    $options = array(
373
+        ''            => __( 'Default', 'ayecode-connect' ),
374
+        'opacity-10'  => '10%',
375
+        'opacity-15'  => '15%',
376
+        'opacity-25'  => '25%',
377
+        'opacity-35'  => '35%',
378
+        'opacity-40'  => '40%',
379
+        'opacity-50'  => '50%',
380
+        'opacity-60'  => '60%',
381
+        'opacity-65'  => '65%',
382
+        'opacity-70'  => '70%',
383
+        'opacity-75'  => '75%',
384
+        'opacity-80'  => '80%',
385
+        'opacity-90'  => '90%',
386
+        'opacity-100' => '100%',
387
+    );
388
+
389
+    $defaults = array(
390
+        'type'     => 'select',
391
+        'title'    => __( 'Opacity', 'ayecode-connect' ),
392
+        'options'  => $options,
393
+        'default'  => '',
394
+        'desc_tip' => true,
395
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
396
+    );
397
+
398
+    $input = wp_parse_args( $overwrite, $defaults );
399
+
400
+    return $input;
401 401
 }
402 402
 
403 403
 /**
@@ -410,124 +410,124 @@  discard block
 block discarded – undo
410 410
  */
411 411
 function sd_get_background_inputs( $type = 'bg', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array(), $include_button_colors = false ) {
412 412
 
413
-	$color_options = $include_button_colors ? sd_aui_colors( false, true, true, true, true ) : sd_aui_colors(false, false, false, false, true );
414
-
415
-	$options = array(
416
-		           ''            => __( 'None', 'ayecode-connect' ),
417
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
418
-	           ) + $color_options;
419
-
420
-	if ( false !== $overwrite_color ) {
421
-		$options['custom-color'] = __( 'Custom Color', 'ayecode-connect' );
422
-	}
423
-
424
-	if ( false !== $overwrite_gradient ) {
425
-		$options['custom-gradient'] = __( 'Custom Gradient', 'ayecode-connect' );
426
-	}
427
-
428
-	$defaults = array(
429
-		'type'     => 'select',
430
-		'title'    => __( 'Background Color', 'ayecode-connect' ),
431
-		'options'  => $options,
432
-		'default'  => '',
433
-		'desc_tip' => true,
434
-		'group'    => __( 'Background', 'ayecode-connect' ),
435
-	);
436
-
437
-	if ( $overwrite !== false ) {
438
-		$input[ $type ] = wp_parse_args( $overwrite, $defaults );
439
-	}
440
-
441
-	if ( $overwrite_color !== false ) {
442
-		$input[ $type . '_color' ] = wp_parse_args(
443
-			$overwrite_color,
444
-			array(
445
-				'type'            => 'color',
446
-				'title'           => __( 'Custom color', 'ayecode-connect' ),
447
-				'placeholder'     => '',
448
-				'default'         => '#0073aa',
449
-				'desc_tip'        => true,
450
-				'group'           => __( 'Background', 'ayecode-connect' ),
451
-				'element_require' => '[%' . $type . '%]=="custom-color"',
452
-			)
453
-		);
454
-	}
455
-
456
-	if ( $overwrite_gradient !== false ) {
457
-		$input[ $type . '_gradient' ] = wp_parse_args(
458
-			$overwrite_gradient,
459
-			array(
460
-				'type'            => 'gradient',
461
-				'title'           => __( 'Custom gradient', 'ayecode-connect' ),
462
-				'placeholder'     => '',
463
-				'default'         => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
464
-				'desc_tip'        => true,
465
-				'group'           => __( 'Background', 'ayecode-connect' ),
466
-				'element_require' => '[%' . $type . '%]=="custom-gradient"',
467
-			)
468
-		);
469
-	}
470
-
471
-	if ( $overwrite_image !== false ) {
472
-
473
-		$input[ $type . '_image_fixed' ] = array(
474
-			'type'            => 'checkbox',
475
-			'title'           => __( 'Fixed background', 'ayecode-connect' ),
476
-			'default'         => '',
477
-			'desc_tip'        => true,
478
-			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
479
-			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
480
-
481
-		);
482
-
483
-		$input[ $type . '_image_use_featured' ] = array(
484
-			'type'            => 'checkbox',
485
-			'title'           => __( 'Use featured image', 'ayecode-connect' ),
486
-			'default'         => '',
487
-			'desc_tip'        => true,
488
-			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
489
-			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
490
-
491
-		);
492
-
493
-		$input[ $type . '_image' ] = wp_parse_args(
494
-			$overwrite_image,
495
-			array(
496
-				'type'        => 'image',
497
-				'title'       => __( 'Custom image', 'ayecode-connect' ),
498
-				'placeholder' => '',
499
-				'default'     => '',
500
-				'desc_tip'    => true,
501
-				'group'       => __( 'Background', 'ayecode-connect' ),
502
-				//          'element_require' => ' ![%' . $type . '_image_use_featured%] '
503
-			)
504
-		);
505
-
506
-		$input[ $type . '_image_id' ] = wp_parse_args(
507
-			$overwrite_image,
508
-			array(
509
-				'type'        => 'hidden',
510
-				'hidden_type' => 'number',
511
-				'title'       => '',
512
-				'placeholder' => '',
513
-				'default'     => '',
514
-				'group'       => __( 'Background', 'ayecode-connect' ),
515
-			)
516
-		);
517
-
518
-		$input[ $type . '_image_xy' ] = wp_parse_args(
519
-			$overwrite_image,
520
-			array(
521
-				'type'        => 'image_xy',
522
-				'title'       => '',
523
-				'placeholder' => '',
524
-				'default'     => '',
525
-				'group'       => __( 'Background', 'ayecode-connect' ),
526
-			)
527
-		);
528
-	}
529
-
530
-	return $input;
413
+    $color_options = $include_button_colors ? sd_aui_colors( false, true, true, true, true ) : sd_aui_colors(false, false, false, false, true );
414
+
415
+    $options = array(
416
+                    ''            => __( 'None', 'ayecode-connect' ),
417
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
418
+                ) + $color_options;
419
+
420
+    if ( false !== $overwrite_color ) {
421
+        $options['custom-color'] = __( 'Custom Color', 'ayecode-connect' );
422
+    }
423
+
424
+    if ( false !== $overwrite_gradient ) {
425
+        $options['custom-gradient'] = __( 'Custom Gradient', 'ayecode-connect' );
426
+    }
427
+
428
+    $defaults = array(
429
+        'type'     => 'select',
430
+        'title'    => __( 'Background Color', 'ayecode-connect' ),
431
+        'options'  => $options,
432
+        'default'  => '',
433
+        'desc_tip' => true,
434
+        'group'    => __( 'Background', 'ayecode-connect' ),
435
+    );
436
+
437
+    if ( $overwrite !== false ) {
438
+        $input[ $type ] = wp_parse_args( $overwrite, $defaults );
439
+    }
440
+
441
+    if ( $overwrite_color !== false ) {
442
+        $input[ $type . '_color' ] = wp_parse_args(
443
+            $overwrite_color,
444
+            array(
445
+                'type'            => 'color',
446
+                'title'           => __( 'Custom color', 'ayecode-connect' ),
447
+                'placeholder'     => '',
448
+                'default'         => '#0073aa',
449
+                'desc_tip'        => true,
450
+                'group'           => __( 'Background', 'ayecode-connect' ),
451
+                'element_require' => '[%' . $type . '%]=="custom-color"',
452
+            )
453
+        );
454
+    }
455
+
456
+    if ( $overwrite_gradient !== false ) {
457
+        $input[ $type . '_gradient' ] = wp_parse_args(
458
+            $overwrite_gradient,
459
+            array(
460
+                'type'            => 'gradient',
461
+                'title'           => __( 'Custom gradient', 'ayecode-connect' ),
462
+                'placeholder'     => '',
463
+                'default'         => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
464
+                'desc_tip'        => true,
465
+                'group'           => __( 'Background', 'ayecode-connect' ),
466
+                'element_require' => '[%' . $type . '%]=="custom-gradient"',
467
+            )
468
+        );
469
+    }
470
+
471
+    if ( $overwrite_image !== false ) {
472
+
473
+        $input[ $type . '_image_fixed' ] = array(
474
+            'type'            => 'checkbox',
475
+            'title'           => __( 'Fixed background', 'ayecode-connect' ),
476
+            'default'         => '',
477
+            'desc_tip'        => true,
478
+            'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
479
+            'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
480
+
481
+        );
482
+
483
+        $input[ $type . '_image_use_featured' ] = array(
484
+            'type'            => 'checkbox',
485
+            'title'           => __( 'Use featured image', 'ayecode-connect' ),
486
+            'default'         => '',
487
+            'desc_tip'        => true,
488
+            'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
489
+            'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
490
+
491
+        );
492
+
493
+        $input[ $type . '_image' ] = wp_parse_args(
494
+            $overwrite_image,
495
+            array(
496
+                'type'        => 'image',
497
+                'title'       => __( 'Custom image', 'ayecode-connect' ),
498
+                'placeholder' => '',
499
+                'default'     => '',
500
+                'desc_tip'    => true,
501
+                'group'       => __( 'Background', 'ayecode-connect' ),
502
+                //          'element_require' => ' ![%' . $type . '_image_use_featured%] '
503
+            )
504
+        );
505
+
506
+        $input[ $type . '_image_id' ] = wp_parse_args(
507
+            $overwrite_image,
508
+            array(
509
+                'type'        => 'hidden',
510
+                'hidden_type' => 'number',
511
+                'title'       => '',
512
+                'placeholder' => '',
513
+                'default'     => '',
514
+                'group'       => __( 'Background', 'ayecode-connect' ),
515
+            )
516
+        );
517
+
518
+        $input[ $type . '_image_xy' ] = wp_parse_args(
519
+            $overwrite_image,
520
+            array(
521
+                'type'        => 'image_xy',
522
+                'title'       => '',
523
+                'placeholder' => '',
524
+                'default'     => '',
525
+                'group'       => __( 'Background', 'ayecode-connect' ),
526
+            )
527
+        );
528
+    }
529
+
530
+    return $input;
531 531
 }
532 532
 
533 533
 /**
@@ -540,175 +540,175 @@  discard block
 block discarded – undo
540 540
  */
541 541
 function sd_get_shape_divider_inputs( $type = 'sd', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array() ) {
542 542
 
543
-	$options = array(
544
-		''                      => __( 'None', 'ayecode-connect' ),
545
-		'mountains'             => __( 'Mountains', 'ayecode-connect' ),
546
-		'drops'                 => __( 'Drops', 'ayecode-connect' ),
547
-		'clouds'                => __( 'Clouds', 'ayecode-connect' ),
548
-		'zigzag'                => __( 'Zigzag', 'ayecode-connect' ),
549
-		'pyramids'              => __( 'Pyramids', 'ayecode-connect' ),
550
-		'triangle'              => __( 'Triangle', 'ayecode-connect' ),
551
-		'triangle-asymmetrical' => __( 'Triangle Asymmetrical', 'ayecode-connect' ),
552
-		'tilt'                  => __( 'Tilt', 'ayecode-connect' ),
553
-		'opacity-tilt'          => __( 'Opacity Tilt', 'ayecode-connect' ),
554
-		'opacity-fan'           => __( 'Opacity Fan', 'ayecode-connect' ),
555
-		'curve'                 => __( 'Curve', 'ayecode-connect' ),
556
-		'curve-asymmetrical'    => __( 'Curve Asymmetrical', 'ayecode-connect' ),
557
-		'waves'                 => __( 'Waves', 'ayecode-connect' ),
558
-		'wave-brush'            => __( 'Wave Brush', 'ayecode-connect' ),
559
-		'waves-pattern'         => __( 'Waves Pattern', 'ayecode-connect' ),
560
-		'arrow'                 => __( 'Arrow', 'ayecode-connect' ),
561
-		'split'                 => __( 'Split', 'ayecode-connect' ),
562
-		'book'                  => __( 'Book', 'ayecode-connect' ),
563
-	);
564
-
565
-	$defaults = array(
566
-		'type'     => 'select',
567
-		'title'    => __( 'Type', 'ayecode-connect' ),
568
-		'options'  => $options,
569
-		'default'  => '',
570
-		'desc_tip' => true,
571
-		'group'    => __( 'Shape Divider', 'ayecode-connect' ),
572
-	);
573
-
574
-	$input[ $type ] = wp_parse_args( $overwrite, $defaults );
575
-
576
-	$input[ $type . '_notice' ] = array(
577
-		'type'            => 'notice',
578
-		'desc'            => __( 'Parent element must be position `relative`', 'ayecode-connect' ),
579
-		'status'          => 'warning',
580
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
581
-		'element_require' => '[%' . $type . '%]!=""',
582
-	);
583
-
584
-	$input[ $type . '_position' ] = wp_parse_args(
585
-		$overwrite_color,
586
-		array(
587
-			'type'            => 'select',
588
-			'title'           => __( 'Position', 'ayecode-connect' ),
589
-			'options'         => array(
590
-				'top'    => __( 'Top', 'ayecode-connect' ),
591
-				'bottom' => __( 'Bottom', 'ayecode-connect' ),
592
-			),
593
-			'desc_tip'        => true,
594
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
595
-			'element_require' => '[%' . $type . '%]!=""',
596
-		)
597
-	);
598
-
599
-	$options = array(
600
-		           ''            => __( 'None', 'ayecode-connect' ),
601
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
602
-	           ) + sd_aui_colors(false,false,false,false,true )
603
-	           + array(
604
-		           'custom-color' => __( 'Custom Color', 'ayecode-connect' ),
605
-	           );
606
-
607
-	$input[ $type . '_color' ] = wp_parse_args(
608
-		$overwrite_color,
609
-		array(
610
-			'type'            => 'select',
611
-			'title'           => __( 'Color', 'ayecode-connect' ),
612
-			'options'         => $options,
613
-			'desc_tip'        => true,
614
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
615
-			'element_require' => '[%' . $type . '%]!=""',
616
-		)
617
-	);
618
-
619
-	$input[ $type . '_custom_color' ] = wp_parse_args(
620
-		$overwrite_color,
621
-		array(
622
-			'type'            => 'color',
623
-			'title'           => __( 'Custom color', 'ayecode-connect' ),
624
-			'placeholder'     => '',
625
-			'default'         => '#0073aa',
626
-			'desc_tip'        => true,
627
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
628
-			'element_require' => '[%' . $type . '_color%]=="custom-color" && [%' . $type . '%]!=""',
629
-		)
630
-	);
631
-
632
-	$input[ $type . '_width' ] = wp_parse_args(
633
-		$overwrite_gradient,
634
-		array(
635
-			'type'              => 'range',
636
-			'title'             => __( 'Width', 'ayecode-connect' ),
637
-			'placeholder'       => '',
638
-			'default'           => '200',
639
-			'desc_tip'          => true,
640
-			'custom_attributes' => array(
641
-				'min' => 100,
642
-				'max' => 300,
643
-			),
644
-			'group'             => __( 'Shape Divider', 'ayecode-connect' ),
645
-			'element_require'   => '[%' . $type . '%]!=""',
646
-		)
647
-	);
648
-
649
-	$input[ $type . '_height' ] = array(
650
-		'type'              => 'range',
651
-		'title'             => __( 'Height', 'ayecode-connect' ),
652
-		'default'           => '100',
653
-		'desc_tip'          => true,
654
-		'custom_attributes' => array(
655
-			'min' => 0,
656
-			'max' => 500,
657
-		),
658
-		'group'             => __( 'Shape Divider', 'ayecode-connect' ),
659
-		'element_require'   => '[%' . $type . '%]!=""',
660
-	);
661
-
662
-	$requires = array(
663
-		'mountains'             => array( 'flip' ),
664
-		'drops'                 => array( 'flip', 'invert' ),
665
-		'clouds'                => array( 'flip', 'invert' ),
666
-		'zigzag'                => array(),
667
-		'pyramids'              => array( 'flip', 'invert' ),
668
-		'triangle'              => array( 'invert' ),
669
-		'triangle-asymmetrical' => array( 'flip', 'invert' ),
670
-		'tilt'                  => array( 'flip' ),
671
-		'opacity-tilt'          => array( 'flip' ),
672
-		'opacity-fan'           => array(),
673
-		'curve'                 => array( 'invert' ),
674
-		'curve-asymmetrical'    => array( 'flip', 'invert' ),
675
-		'waves'                 => array( 'flip', 'invert' ),
676
-		'wave-brush'            => array( 'flip' ),
677
-		'waves-pattern'         => array( 'flip' ),
678
-		'arrow'                 => array( 'invert' ),
679
-		'split'                 => array( 'invert' ),
680
-		'book'                  => array( 'invert' ),
681
-	);
682
-
683
-	$input[ $type . '_flip' ] = array(
684
-		'type'            => 'checkbox',
685
-		'title'           => __( 'Flip', 'ayecode-connect' ),
686
-		'default'         => '',
687
-		'desc_tip'        => true,
688
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
689
-		'element_require' => sd_get_element_require_string( $requires, 'flip', 'sd' ),
690
-	);
691
-
692
-	$input[ $type . '_invert' ] = array(
693
-		'type'            => 'checkbox',
694
-		'title'           => __( 'Invert', 'ayecode-connect' ),
695
-		'default'         => '',
696
-		'desc_tip'        => true,
697
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
698
-		'element_require' => sd_get_element_require_string( $requires, 'invert', 'sd' ),
699
-	);
700
-
701
-	$input[ $type . '_btf' ] = array(
702
-		'type'            => 'checkbox',
703
-		'title'           => __( 'Bring to front', 'ayecode-connect' ),
704
-		'default'         => '',
705
-		'desc_tip'        => true,
706
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
707
-		'element_require' => '[%' . $type . '%]!=""',
708
-
709
-	);
710
-
711
-	return $input;
543
+    $options = array(
544
+        ''                      => __( 'None', 'ayecode-connect' ),
545
+        'mountains'             => __( 'Mountains', 'ayecode-connect' ),
546
+        'drops'                 => __( 'Drops', 'ayecode-connect' ),
547
+        'clouds'                => __( 'Clouds', 'ayecode-connect' ),
548
+        'zigzag'                => __( 'Zigzag', 'ayecode-connect' ),
549
+        'pyramids'              => __( 'Pyramids', 'ayecode-connect' ),
550
+        'triangle'              => __( 'Triangle', 'ayecode-connect' ),
551
+        'triangle-asymmetrical' => __( 'Triangle Asymmetrical', 'ayecode-connect' ),
552
+        'tilt'                  => __( 'Tilt', 'ayecode-connect' ),
553
+        'opacity-tilt'          => __( 'Opacity Tilt', 'ayecode-connect' ),
554
+        'opacity-fan'           => __( 'Opacity Fan', 'ayecode-connect' ),
555
+        'curve'                 => __( 'Curve', 'ayecode-connect' ),
556
+        'curve-asymmetrical'    => __( 'Curve Asymmetrical', 'ayecode-connect' ),
557
+        'waves'                 => __( 'Waves', 'ayecode-connect' ),
558
+        'wave-brush'            => __( 'Wave Brush', 'ayecode-connect' ),
559
+        'waves-pattern'         => __( 'Waves Pattern', 'ayecode-connect' ),
560
+        'arrow'                 => __( 'Arrow', 'ayecode-connect' ),
561
+        'split'                 => __( 'Split', 'ayecode-connect' ),
562
+        'book'                  => __( 'Book', 'ayecode-connect' ),
563
+    );
564
+
565
+    $defaults = array(
566
+        'type'     => 'select',
567
+        'title'    => __( 'Type', 'ayecode-connect' ),
568
+        'options'  => $options,
569
+        'default'  => '',
570
+        'desc_tip' => true,
571
+        'group'    => __( 'Shape Divider', 'ayecode-connect' ),
572
+    );
573
+
574
+    $input[ $type ] = wp_parse_args( $overwrite, $defaults );
575
+
576
+    $input[ $type . '_notice' ] = array(
577
+        'type'            => 'notice',
578
+        'desc'            => __( 'Parent element must be position `relative`', 'ayecode-connect' ),
579
+        'status'          => 'warning',
580
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
581
+        'element_require' => '[%' . $type . '%]!=""',
582
+    );
583
+
584
+    $input[ $type . '_position' ] = wp_parse_args(
585
+        $overwrite_color,
586
+        array(
587
+            'type'            => 'select',
588
+            'title'           => __( 'Position', 'ayecode-connect' ),
589
+            'options'         => array(
590
+                'top'    => __( 'Top', 'ayecode-connect' ),
591
+                'bottom' => __( 'Bottom', 'ayecode-connect' ),
592
+            ),
593
+            'desc_tip'        => true,
594
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
595
+            'element_require' => '[%' . $type . '%]!=""',
596
+        )
597
+    );
598
+
599
+    $options = array(
600
+                    ''            => __( 'None', 'ayecode-connect' ),
601
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
602
+                ) + sd_aui_colors(false,false,false,false,true )
603
+               + array(
604
+                    'custom-color' => __( 'Custom Color', 'ayecode-connect' ),
605
+                );
606
+
607
+    $input[ $type . '_color' ] = wp_parse_args(
608
+        $overwrite_color,
609
+        array(
610
+            'type'            => 'select',
611
+            'title'           => __( 'Color', 'ayecode-connect' ),
612
+            'options'         => $options,
613
+            'desc_tip'        => true,
614
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
615
+            'element_require' => '[%' . $type . '%]!=""',
616
+        )
617
+    );
618
+
619
+    $input[ $type . '_custom_color' ] = wp_parse_args(
620
+        $overwrite_color,
621
+        array(
622
+            'type'            => 'color',
623
+            'title'           => __( 'Custom color', 'ayecode-connect' ),
624
+            'placeholder'     => '',
625
+            'default'         => '#0073aa',
626
+            'desc_tip'        => true,
627
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
628
+            'element_require' => '[%' . $type . '_color%]=="custom-color" && [%' . $type . '%]!=""',
629
+        )
630
+    );
631
+
632
+    $input[ $type . '_width' ] = wp_parse_args(
633
+        $overwrite_gradient,
634
+        array(
635
+            'type'              => 'range',
636
+            'title'             => __( 'Width', 'ayecode-connect' ),
637
+            'placeholder'       => '',
638
+            'default'           => '200',
639
+            'desc_tip'          => true,
640
+            'custom_attributes' => array(
641
+                'min' => 100,
642
+                'max' => 300,
643
+            ),
644
+            'group'             => __( 'Shape Divider', 'ayecode-connect' ),
645
+            'element_require'   => '[%' . $type . '%]!=""',
646
+        )
647
+    );
648
+
649
+    $input[ $type . '_height' ] = array(
650
+        'type'              => 'range',
651
+        'title'             => __( 'Height', 'ayecode-connect' ),
652
+        'default'           => '100',
653
+        'desc_tip'          => true,
654
+        'custom_attributes' => array(
655
+            'min' => 0,
656
+            'max' => 500,
657
+        ),
658
+        'group'             => __( 'Shape Divider', 'ayecode-connect' ),
659
+        'element_require'   => '[%' . $type . '%]!=""',
660
+    );
661
+
662
+    $requires = array(
663
+        'mountains'             => array( 'flip' ),
664
+        'drops'                 => array( 'flip', 'invert' ),
665
+        'clouds'                => array( 'flip', 'invert' ),
666
+        'zigzag'                => array(),
667
+        'pyramids'              => array( 'flip', 'invert' ),
668
+        'triangle'              => array( 'invert' ),
669
+        'triangle-asymmetrical' => array( 'flip', 'invert' ),
670
+        'tilt'                  => array( 'flip' ),
671
+        'opacity-tilt'          => array( 'flip' ),
672
+        'opacity-fan'           => array(),
673
+        'curve'                 => array( 'invert' ),
674
+        'curve-asymmetrical'    => array( 'flip', 'invert' ),
675
+        'waves'                 => array( 'flip', 'invert' ),
676
+        'wave-brush'            => array( 'flip' ),
677
+        'waves-pattern'         => array( 'flip' ),
678
+        'arrow'                 => array( 'invert' ),
679
+        'split'                 => array( 'invert' ),
680
+        'book'                  => array( 'invert' ),
681
+    );
682
+
683
+    $input[ $type . '_flip' ] = array(
684
+        'type'            => 'checkbox',
685
+        'title'           => __( 'Flip', 'ayecode-connect' ),
686
+        'default'         => '',
687
+        'desc_tip'        => true,
688
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
689
+        'element_require' => sd_get_element_require_string( $requires, 'flip', 'sd' ),
690
+    );
691
+
692
+    $input[ $type . '_invert' ] = array(
693
+        'type'            => 'checkbox',
694
+        'title'           => __( 'Invert', 'ayecode-connect' ),
695
+        'default'         => '',
696
+        'desc_tip'        => true,
697
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
698
+        'element_require' => sd_get_element_require_string( $requires, 'invert', 'sd' ),
699
+    );
700
+
701
+    $input[ $type . '_btf' ] = array(
702
+        'type'            => 'checkbox',
703
+        'title'           => __( 'Bring to front', 'ayecode-connect' ),
704
+        'default'         => '',
705
+        'desc_tip'        => true,
706
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
707
+        'element_require' => '[%' . $type . '%]!=""',
708
+
709
+    );
710
+
711
+    return $input;
712 712
 }
713 713
 
714 714
 /**
@@ -721,22 +721,22 @@  discard block
 block discarded – undo
721 721
  * @return string
722 722
  */
723 723
 function sd_get_element_require_string( $args, $key, $type ) {
724
-	$output   = '';
725
-	$requires = array();
724
+    $output   = '';
725
+    $requires = array();
726 726
 
727
-	if ( ! empty( $args ) ) {
728
-		foreach ( $args as $t => $k ) {
729
-			if ( in_array( $key, $k ) ) {
730
-				$requires[] = '[%' . $type . '%]=="' . $t . '"';
731
-			}
732
-		}
727
+    if ( ! empty( $args ) ) {
728
+        foreach ( $args as $t => $k ) {
729
+            if ( in_array( $key, $k ) ) {
730
+                $requires[] = '[%' . $type . '%]=="' . $t . '"';
731
+            }
732
+        }
733 733
 
734
-		if ( ! empty( $requires ) ) {
735
-			$output = '(' . implode( ' || ', $requires ) . ')';
736
-		}
737
-	}
734
+        if ( ! empty( $requires ) ) {
735
+            $output = '(' . implode( ' || ', $requires ) . ')';
736
+        }
737
+    }
738 738
 
739
-	return $output;
739
+    return $output;
740 740
 }
741 741
 
742 742
 /**
@@ -748,41 +748,41 @@  discard block
 block discarded – undo
748 748
  * @return array
749 749
  */
750 750
 function sd_get_text_color_input( $type = 'text_color', $overwrite = array(), $has_custom = false, $emphasis = true ) {
751
-	$options = array(
752
-		           '' => __( 'None', 'ayecode-connect' ),
753
-	           ) + sd_aui_colors(false,false,false,false,false, true);
751
+    $options = array(
752
+                    '' => __( 'None', 'ayecode-connect' ),
753
+                ) + sd_aui_colors(false,false,false,false,false, true);
754 754
 
755
-	if ( $has_custom ) {
756
-		$options['custom'] = __( 'Custom color', 'ayecode-connect' );
757
-	}
755
+    if ( $has_custom ) {
756
+        $options['custom'] = __( 'Custom color', 'ayecode-connect' );
757
+    }
758 758
 
759
-	$defaults = array(
760
-		'type'     => 'select',
761
-		'title'    => __( 'Text color', 'ayecode-connect' ),
762
-		'options'  => $options,
763
-		'default'  => '',
764
-		'desc_tip' => true,
765
-		'group'    => __( 'Typography', 'ayecode-connect' ),
766
-	);
759
+    $defaults = array(
760
+        'type'     => 'select',
761
+        'title'    => __( 'Text color', 'ayecode-connect' ),
762
+        'options'  => $options,
763
+        'default'  => '',
764
+        'desc_tip' => true,
765
+        'group'    => __( 'Typography', 'ayecode-connect' ),
766
+    );
767 767
 
768
-	$input = wp_parse_args( $overwrite, $defaults );
768
+    $input = wp_parse_args( $overwrite, $defaults );
769 769
 
770
-	return $input;
770
+    return $input;
771 771
 }
772 772
 
773 773
 function sd_get_text_color_input_group( $type = 'text_color', $overwrite = array(), $overwrite_custom = array() ) {
774
-	$inputs = array();
774
+    $inputs = array();
775 775
 
776
-	if ( $overwrite !== false ) {
777
-		$inputs[ $type ] = sd_get_text_color_input( $type, $overwrite, true );
778
-	}
776
+    if ( $overwrite !== false ) {
777
+        $inputs[ $type ] = sd_get_text_color_input( $type, $overwrite, true );
778
+    }
779 779
 
780
-	if ( $overwrite_custom !== false ) {
781
-		$custom            = $type . '_custom';
782
-		$inputs[ $custom ] = sd_get_custom_color_input( $custom, $overwrite_custom, $type );
783
-	}
780
+    if ( $overwrite_custom !== false ) {
781
+        $custom            = $type . '_custom';
782
+        $inputs[ $custom ] = sd_get_custom_color_input( $custom, $overwrite_custom, $type );
783
+    }
784 784
 
785
-	return $inputs;
785
+    return $inputs;
786 786
 }
787 787
 
788 788
 /**
@@ -795,22 +795,22 @@  discard block
 block discarded – undo
795 795
  */
796 796
 function sd_get_custom_color_input( $type = 'color_custom', $overwrite = array(), $parent_type = '' ) {
797 797
 
798
-	$defaults = array(
799
-		'type'        => 'color',
800
-		'title'       => __( 'Custom color', 'ayecode-connect' ),
801
-		'default'     => '',
802
-		'placeholder' => '',
803
-		'desc_tip'    => true,
804
-		'group'       => __( 'Typography', 'ayecode-connect' ),
805
-	);
798
+    $defaults = array(
799
+        'type'        => 'color',
800
+        'title'       => __( 'Custom color', 'ayecode-connect' ),
801
+        'default'     => '',
802
+        'placeholder' => '',
803
+        'desc_tip'    => true,
804
+        'group'       => __( 'Typography', 'ayecode-connect' ),
805
+    );
806 806
 
807
-	if ( $parent_type ) {
808
-		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
809
-	}
807
+    if ( $parent_type ) {
808
+        $defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
809
+    }
810 810
 
811
-	$input = wp_parse_args( $overwrite, $defaults );
811
+    $input = wp_parse_args( $overwrite, $defaults );
812 812
 
813
-	return $input;
813
+    return $input;
814 814
 }
815 815
 
816 816
 /**
@@ -823,44 +823,44 @@  discard block
 block discarded – undo
823 823
  */
824 824
 function sd_get_col_input( $type = 'col', $overwrite = array() ) {
825 825
 
826
-	$device_size = '';
827
-	if ( ! empty( $overwrite['device_type'] ) ) {
828
-		if ( $overwrite['device_type'] == 'Tablet' ) {
829
-			$device_size = '-md';
830
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
831
-			$device_size = '-lg';
832
-		}
833
-	}
834
-	$options = array(
835
-		''     => __( 'Default', 'ayecode-connect' ),
836
-		'auto' => __( 'auto', 'ayecode-connect' ),
837
-		'1'    => '1/12',
838
-		'2'    => '2/12',
839
-		'3'    => '3/12',
840
-		'4'    => '4/12',
841
-		'5'    => '5/12',
842
-		'6'    => '6/12',
843
-		'7'    => '7/12',
844
-		'8'    => '8/12',
845
-		'9'    => '9/12',
846
-		'10'   => '10/12',
847
-		'11'   => '11/12',
848
-		'12'   => '12/12',
849
-	);
850
-
851
-	$defaults = array(
852
-		'type'            => 'select',
853
-		'title'           => __( 'Column width', 'ayecode-connect' ),
854
-		'options'         => $options,
855
-		'default'         => '',
856
-		'desc_tip'        => true,
857
-		'group'           => __( 'Container', 'ayecode-connect' ),
858
-		'element_require' => '[%container%]=="col"',
859
-	);
860
-
861
-	$input = wp_parse_args( $overwrite, $defaults );
862
-
863
-	return $input;
826
+    $device_size = '';
827
+    if ( ! empty( $overwrite['device_type'] ) ) {
828
+        if ( $overwrite['device_type'] == 'Tablet' ) {
829
+            $device_size = '-md';
830
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
831
+            $device_size = '-lg';
832
+        }
833
+    }
834
+    $options = array(
835
+        ''     => __( 'Default', 'ayecode-connect' ),
836
+        'auto' => __( 'auto', 'ayecode-connect' ),
837
+        '1'    => '1/12',
838
+        '2'    => '2/12',
839
+        '3'    => '3/12',
840
+        '4'    => '4/12',
841
+        '5'    => '5/12',
842
+        '6'    => '6/12',
843
+        '7'    => '7/12',
844
+        '8'    => '8/12',
845
+        '9'    => '9/12',
846
+        '10'   => '10/12',
847
+        '11'   => '11/12',
848
+        '12'   => '12/12',
849
+    );
850
+
851
+    $defaults = array(
852
+        'type'            => 'select',
853
+        'title'           => __( 'Column width', 'ayecode-connect' ),
854
+        'options'         => $options,
855
+        'default'         => '',
856
+        'desc_tip'        => true,
857
+        'group'           => __( 'Container', 'ayecode-connect' ),
858
+        'element_require' => '[%container%]=="col"',
859
+    );
860
+
861
+    $input = wp_parse_args( $overwrite, $defaults );
862
+
863
+    return $input;
864 864
 }
865 865
 
866 866
 /**
@@ -873,37 +873,37 @@  discard block
 block discarded – undo
873 873
  */
874 874
 function sd_get_row_cols_input( $type = 'row_cols', $overwrite = array() ) {
875 875
 
876
-	$device_size = '';
877
-	if ( ! empty( $overwrite['device_type'] ) ) {
878
-		if ( $overwrite['device_type'] == 'Tablet' ) {
879
-			$device_size = '-md';
880
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
881
-			$device_size = '-lg';
882
-		}
883
-	}
884
-	$options = array(
885
-		''  => __( 'auto', 'ayecode-connect' ),
886
-		'1' => '1',
887
-		'2' => '2',
888
-		'3' => '3',
889
-		'4' => '4',
890
-		'5' => '5',
891
-		'6' => '6',
892
-	);
893
-
894
-	$defaults = array(
895
-		'type'            => 'select',
896
-		'title'           => __( 'Row columns', 'ayecode-connect' ),
897
-		'options'         => $options,
898
-		'default'         => '',
899
-		'desc_tip'        => true,
900
-		'group'           => __( 'Container', 'ayecode-connect' ),
901
-		'element_require' => '[%container%]=="row"',
902
-	);
903
-
904
-	$input = wp_parse_args( $overwrite, $defaults );
905
-
906
-	return $input;
876
+    $device_size = '';
877
+    if ( ! empty( $overwrite['device_type'] ) ) {
878
+        if ( $overwrite['device_type'] == 'Tablet' ) {
879
+            $device_size = '-md';
880
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
881
+            $device_size = '-lg';
882
+        }
883
+    }
884
+    $options = array(
885
+        ''  => __( 'auto', 'ayecode-connect' ),
886
+        '1' => '1',
887
+        '2' => '2',
888
+        '3' => '3',
889
+        '4' => '4',
890
+        '5' => '5',
891
+        '6' => '6',
892
+    );
893
+
894
+    $defaults = array(
895
+        'type'            => 'select',
896
+        'title'           => __( 'Row columns', 'ayecode-connect' ),
897
+        'options'         => $options,
898
+        'default'         => '',
899
+        'desc_tip'        => true,
900
+        'group'           => __( 'Container', 'ayecode-connect' ),
901
+        'element_require' => '[%container%]=="row"',
902
+    );
903
+
904
+    $input = wp_parse_args( $overwrite, $defaults );
905
+
906
+    return $input;
907 907
 }
908 908
 
909 909
 /**
@@ -916,33 +916,33 @@  discard block
 block discarded – undo
916 916
  */
917 917
 function sd_get_text_align_input( $type = 'text_align', $overwrite = array() ) {
918 918
 
919
-	$device_size = '';
920
-	if ( ! empty( $overwrite['device_type'] ) ) {
921
-		if ( $overwrite['device_type'] == 'Tablet' ) {
922
-			$device_size = '-md';
923
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
924
-			$device_size = '-lg';
925
-		}
926
-	}
927
-	$options = array(
928
-		''                                => __( 'Default', 'ayecode-connect' ),
929
-		'text' . $device_size . '-left'   => __( 'Left', 'ayecode-connect' ),
930
-		'text' . $device_size . '-right'  => __( 'Right', 'ayecode-connect' ),
931
-		'text' . $device_size . '-center' => __( 'Center', 'ayecode-connect' ),
932
-	);
919
+    $device_size = '';
920
+    if ( ! empty( $overwrite['device_type'] ) ) {
921
+        if ( $overwrite['device_type'] == 'Tablet' ) {
922
+            $device_size = '-md';
923
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
924
+            $device_size = '-lg';
925
+        }
926
+    }
927
+    $options = array(
928
+        ''                                => __( 'Default', 'ayecode-connect' ),
929
+        'text' . $device_size . '-left'   => __( 'Left', 'ayecode-connect' ),
930
+        'text' . $device_size . '-right'  => __( 'Right', 'ayecode-connect' ),
931
+        'text' . $device_size . '-center' => __( 'Center', 'ayecode-connect' ),
932
+    );
933 933
 
934
-	$defaults = array(
935
-		'type'     => 'select',
936
-		'title'    => __( 'Text align', 'ayecode-connect' ),
937
-		'options'  => $options,
938
-		'default'  => '',
939
-		'desc_tip' => true,
940
-		'group'    => __( 'Typography', 'ayecode-connect' ),
941
-	);
934
+    $defaults = array(
935
+        'type'     => 'select',
936
+        'title'    => __( 'Text align', 'ayecode-connect' ),
937
+        'options'  => $options,
938
+        'default'  => '',
939
+        'desc_tip' => true,
940
+        'group'    => __( 'Typography', 'ayecode-connect' ),
941
+    );
942 942
 
943
-	$input = wp_parse_args( $overwrite, $defaults );
943
+    $input = wp_parse_args( $overwrite, $defaults );
944 944
 
945
-	return $input;
945
+    return $input;
946 946
 }
947 947
 
948 948
 /**
@@ -955,39 +955,39 @@  discard block
 block discarded – undo
955 955
  */
956 956
 function sd_get_display_input( $type = 'display', $overwrite = array() ) {
957 957
 
958
-	$device_size = '';
959
-	if ( ! empty( $overwrite['device_type'] ) ) {
960
-		if ( $overwrite['device_type'] == 'Tablet' ) {
961
-			$device_size = '-md';
962
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
963
-			$device_size = '-lg';
964
-		}
965
-	}
966
-	$options = array(
967
-		''                                   => __( 'Default', 'ayecode-connect' ),
968
-		'd' . $device_size . '-none'         => 'none',
969
-		'd' . $device_size . '-inline'       => 'inline',
970
-		'd' . $device_size . '-inline-block' => 'inline-block',
971
-		'd' . $device_size . '-block'        => 'block',
972
-		'd' . $device_size . '-table'        => 'table',
973
-		'd' . $device_size . '-table-cell'   => 'table-cell',
974
-		'd' . $device_size . '-table-row'    => 'table-row',
975
-		'd' . $device_size . '-flex'         => 'flex',
976
-		'd' . $device_size . '-inline-flex'  => 'inline-flex',
977
-	);
978
-
979
-	$defaults = array(
980
-		'type'     => 'select',
981
-		'title'    => __( 'Display', 'ayecode-connect' ),
982
-		'options'  => $options,
983
-		'default'  => '',
984
-		'desc_tip' => true,
985
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
986
-	);
987
-
988
-	$input = wp_parse_args( $overwrite, $defaults );
989
-
990
-	return $input;
958
+    $device_size = '';
959
+    if ( ! empty( $overwrite['device_type'] ) ) {
960
+        if ( $overwrite['device_type'] == 'Tablet' ) {
961
+            $device_size = '-md';
962
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
963
+            $device_size = '-lg';
964
+        }
965
+    }
966
+    $options = array(
967
+        ''                                   => __( 'Default', 'ayecode-connect' ),
968
+        'd' . $device_size . '-none'         => 'none',
969
+        'd' . $device_size . '-inline'       => 'inline',
970
+        'd' . $device_size . '-inline-block' => 'inline-block',
971
+        'd' . $device_size . '-block'        => 'block',
972
+        'd' . $device_size . '-table'        => 'table',
973
+        'd' . $device_size . '-table-cell'   => 'table-cell',
974
+        'd' . $device_size . '-table-row'    => 'table-row',
975
+        'd' . $device_size . '-flex'         => 'flex',
976
+        'd' . $device_size . '-inline-flex'  => 'inline-flex',
977
+    );
978
+
979
+    $defaults = array(
980
+        'type'     => 'select',
981
+        'title'    => __( 'Display', 'ayecode-connect' ),
982
+        'options'  => $options,
983
+        'default'  => '',
984
+        'desc_tip' => true,
985
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
986
+    );
987
+
988
+    $input = wp_parse_args( $overwrite, $defaults );
989
+
990
+    return $input;
991 991
 }
992 992
 
993 993
 /**
@@ -1000,17 +1000,17 @@  discard block
 block discarded – undo
1000 1000
  */
1001 1001
 function sd_get_text_justify_input( $type = 'text_justify', $overwrite = array() ) {
1002 1002
 
1003
-	$defaults = array(
1004
-		'type'     => 'checkbox',
1005
-		'title'    => __( 'Text justify', 'ayecode-connect' ),
1006
-		'default'  => '',
1007
-		'desc_tip' => true,
1008
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1009
-	);
1003
+    $defaults = array(
1004
+        'type'     => 'checkbox',
1005
+        'title'    => __( 'Text justify', 'ayecode-connect' ),
1006
+        'default'  => '',
1007
+        'desc_tip' => true,
1008
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1009
+    );
1010 1010
 
1011
-	$input = wp_parse_args( $overwrite, $defaults );
1011
+    $input = wp_parse_args( $overwrite, $defaults );
1012 1012
 
1013
-	return $input;
1013
+    return $input;
1014 1014
 }
1015 1015
 
1016 1016
 /**
@@ -1023,114 +1023,114 @@  discard block
 block discarded – undo
1023 1023
  * @return array
1024 1024
  */
1025 1025
 function sd_aui_colors( $include_branding = false, $include_outlines = false, $outline_button_only_text = false, $include_translucent = false, $include_subtle = false, $include_emphasis = false ) {
1026
-	$theme_colors = array();
1027
-
1028
-	$theme_colors['primary']   = __( 'Primary', 'ayecode-connect' );
1029
-	$theme_colors['secondary'] = __( 'Secondary', 'ayecode-connect' );
1030
-	$theme_colors['success']   = __( 'Success', 'ayecode-connect' );
1031
-	$theme_colors['danger']    = __( 'Danger', 'ayecode-connect' );
1032
-	$theme_colors['warning']   = __( 'Warning', 'ayecode-connect' );
1033
-	$theme_colors['info']      = __( 'Info', 'ayecode-connect' );
1034
-	$theme_colors['light']     = __( 'Light', 'ayecode-connect' );
1035
-	$theme_colors['dark']      = __( 'Dark', 'ayecode-connect' );
1036
-	$theme_colors['black']     = __( 'Black', 'ayecode-connect' );
1037
-	$theme_colors['white']     = __( 'White', 'ayecode-connect' );
1038
-	$theme_colors['purple']    = __( 'Purple', 'ayecode-connect' );
1039
-	$theme_colors['salmon']    = __( 'Salmon', 'ayecode-connect' );
1040
-	$theme_colors['cyan']      = __( 'Cyan', 'ayecode-connect' );
1041
-	$theme_colors['gray']      = __( 'Gray', 'ayecode-connect' );
1042
-	$theme_colors['muted']     = __( 'Muted', 'ayecode-connect' );
1043
-	$theme_colors['gray-dark'] = __( 'Gray dark', 'ayecode-connect' );
1044
-	$theme_colors['indigo']    = __( 'Indigo', 'ayecode-connect' );
1045
-	$theme_colors['orange']    = __( 'Orange', 'ayecode-connect' );
1046
-	$theme_colors['body']      = __( 'Body', 'ayecode-connect' );
1047
-
1048
-
1049
-	// for bg and borders
1050
-	if ( $include_subtle ) {
1051
-		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1052
-		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1053
-		$theme_colors['secondary-subtle'] = __( 'Secondary Subtle', 'ayecode-connect' );
1054
-		$theme_colors['success-subtle']   = __( 'Success Subtle', 'ayecode-connect' );
1055
-		$theme_colors['danger-subtle']    = __( 'Danger Subtle', 'ayecode-connect' );
1056
-		$theme_colors['warning-subtle']   = __( 'Warning Subtle', 'ayecode-connect' );
1057
-		$theme_colors['info-subtle']      = __( 'Info Subtle', 'ayecode-connect' );
1058
-		$theme_colors['light-subtle']     = __( 'Light Subtle', 'ayecode-connect' );
1059
-		$theme_colors['dark-subtle']      = __( 'Dark Subtle', 'ayecode-connect' );
1060
-		$theme_colors['purple-subtle']    = __( 'Purple Subtle', 'ayecode-connect' );
1061
-		$theme_colors['salmon-subtle']    = __( 'Salmon Subtle', 'ayecode-connect' );
1062
-		$theme_colors['cyan-subtle']      = __( 'Cyan Subtle', 'ayecode-connect' );
1063
-		$theme_colors['gray-subtle']      = __( 'Gray Subtle', 'ayecode-connect' );
1064
-		$theme_colors['gray-dark-subtle'] = __( 'Gray dark Subtle', 'ayecode-connect' );
1065
-		$theme_colors['indigo-subtle']    = __( 'Indigo Subtle', 'ayecode-connect' );
1066
-		$theme_colors['orange-subtle']    = __( 'Orange Subtle', 'ayecode-connect' );
1067
-	}
1068
-
1069
-	// for texts
1070
-	if ($include_emphasis) {
1071
-		$theme_colors['primary-emphasis']   = __( 'Primary Emphasis', 'ayecode-connect' );
1072
-		$theme_colors['secondary-emphasis'] = __( 'Secondary Emphasis', 'ayecode-connect' );
1073
-		$theme_colors['success-emphasis']   = __( 'Success Emphasis', 'ayecode-connect' );
1074
-		$theme_colors['danger-emphasis']    = __( 'Danger Emphasis', 'ayecode-connect' );
1075
-		$theme_colors['warning-emphasis']   = __( 'Warning Emphasis', 'ayecode-connect' );
1076
-		$theme_colors['info-emphasis']      = __( 'Info Emphasis', 'ayecode-connect' );
1077
-		$theme_colors['light-emphasis']     = __( 'Light Emphasis', 'ayecode-connect' );
1078
-		$theme_colors['dark-emphasis']      = __( 'Dark Emphasis', 'ayecode-connect' );
1079
-		$theme_colors['purple-emphasis']    = __( 'Purple Emphasis', 'ayecode-connect' );
1080
-		$theme_colors['salmon-emphasis']    = __( 'Salmon Emphasis', 'ayecode-connect' );
1081
-		$theme_colors['cyan-emphasis']      = __( 'Cyan Emphasis', 'ayecode-connect' );
1082
-		$theme_colors['gray-emphasis']      = __( 'Gray Emphasis', 'ayecode-connect' );
1083
-		$theme_colors['muted-emphasis']     = __( 'Muted Emphasis', 'ayecode-connect' );
1084
-		$theme_colors['gray-dark-emphasis'] = __( 'Gray dark Emphasis', 'ayecode-connect' );
1085
-		$theme_colors['indigo-emphasis']    = __( 'Indigo Emphasis', 'ayecode-connect' );
1086
-		$theme_colors['orange-emphasis']    = __( 'Orange Emphasis', 'ayecode-connect' );
1087
-	}
1088
-
1089
-	if ( $include_outlines ) {
1090
-		$button_only                       = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1091
-		$theme_colors['outline-primary']   = __( 'Primary outline', 'ayecode-connect' ) . $button_only;
1092
-		$theme_colors['outline-secondary'] = __( 'Secondary outline', 'ayecode-connect' ) . $button_only;
1093
-		$theme_colors['outline-success']   = __( 'Success outline', 'ayecode-connect' ) . $button_only;
1094
-		$theme_colors['outline-danger']    = __( 'Danger outline', 'ayecode-connect' ) . $button_only;
1095
-		$theme_colors['outline-warning']   = __( 'Warning outline', 'ayecode-connect' ) . $button_only;
1096
-		$theme_colors['outline-info']      = __( 'Info outline', 'ayecode-connect' ) . $button_only;
1097
-		$theme_colors['outline-light']     = __( 'Light outline', 'ayecode-connect' ) . $button_only;
1098
-		$theme_colors['outline-dark']      = __( 'Dark outline', 'ayecode-connect' ) . $button_only;
1099
-		$theme_colors['outline-white']     = __( 'White outline', 'ayecode-connect' ) . $button_only;
1100
-		$theme_colors['outline-purple']    = __( 'Purple outline', 'ayecode-connect' ) . $button_only;
1101
-		$theme_colors['outline-salmon']    = __( 'Salmon outline', 'ayecode-connect' ) . $button_only;
1102
-		$theme_colors['outline-cyan']      = __( 'Cyan outline', 'ayecode-connect' ) . $button_only;
1103
-		$theme_colors['outline-gray']      = __( 'Gray outline', 'ayecode-connect' ) . $button_only;
1104
-		$theme_colors['outline-gray-dark'] = __( 'Gray dark outline', 'ayecode-connect' ) . $button_only;
1105
-		$theme_colors['outline-indigo']    = __( 'Indigo outline', 'ayecode-connect' ) . $button_only;
1106
-		$theme_colors['outline-orange']    = __( 'Orange outline', 'ayecode-connect' ) . $button_only;
1107
-	}
1108
-
1109
-	if ( $include_branding ) {
1110
-		$theme_colors = $theme_colors + sd_aui_branding_colors();
1111
-	}
1112
-
1113
-	if ( $include_translucent ) {
1114
-		$button_only                           = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1115
-		$theme_colors['translucent-primary']   = __( 'Primary translucent', 'ayecode-connect' ) . $button_only;
1116
-		$theme_colors['translucent-secondary'] = __( 'Secondary translucent', 'ayecode-connect' ) . $button_only;
1117
-		$theme_colors['translucent-success']   = __( 'Success translucent', 'ayecode-connect' ) . $button_only;
1118
-		$theme_colors['translucent-danger']    = __( 'Danger translucent', 'ayecode-connect' ) . $button_only;
1119
-		$theme_colors['translucent-warning']   = __( 'Warning translucent', 'ayecode-connect' ) . $button_only;
1120
-		$theme_colors['translucent-info']      = __( 'Info translucent', 'ayecode-connect' ) . $button_only;
1121
-		$theme_colors['translucent-light']     = __( 'Light translucent', 'ayecode-connect' ) . $button_only;
1122
-		$theme_colors['translucent-dark']      = __( 'Dark translucent', 'ayecode-connect' ) . $button_only;
1123
-		$theme_colors['translucent-white']     = __( 'White translucent', 'ayecode-connect' ) . $button_only;
1124
-		$theme_colors['translucent-purple']    = __( 'Purple translucent', 'ayecode-connect' ) . $button_only;
1125
-		$theme_colors['translucent-salmon']    = __( 'Salmon translucent', 'ayecode-connect' ) . $button_only;
1126
-		$theme_colors['translucent-cyan']      = __( 'Cyan translucent', 'ayecode-connect' ) . $button_only;
1127
-		$theme_colors['translucent-gray']      = __( 'Gray translucent', 'ayecode-connect' ) . $button_only;
1128
-		$theme_colors['translucent-gray-dark'] = __( 'Gray dark translucent', 'ayecode-connect' ) . $button_only;
1129
-		$theme_colors['translucent-indigo']    = __( 'Indigo translucent', 'ayecode-connect' ) . $button_only;
1130
-		$theme_colors['translucent-orange']    = __( 'Orange translucent', 'ayecode-connect' ) . $button_only;
1131
-	}
1132
-
1133
-	return apply_filters( 'sd_aui_colors', $theme_colors, $include_outlines, $include_branding );
1026
+    $theme_colors = array();
1027
+
1028
+    $theme_colors['primary']   = __( 'Primary', 'ayecode-connect' );
1029
+    $theme_colors['secondary'] = __( 'Secondary', 'ayecode-connect' );
1030
+    $theme_colors['success']   = __( 'Success', 'ayecode-connect' );
1031
+    $theme_colors['danger']    = __( 'Danger', 'ayecode-connect' );
1032
+    $theme_colors['warning']   = __( 'Warning', 'ayecode-connect' );
1033
+    $theme_colors['info']      = __( 'Info', 'ayecode-connect' );
1034
+    $theme_colors['light']     = __( 'Light', 'ayecode-connect' );
1035
+    $theme_colors['dark']      = __( 'Dark', 'ayecode-connect' );
1036
+    $theme_colors['black']     = __( 'Black', 'ayecode-connect' );
1037
+    $theme_colors['white']     = __( 'White', 'ayecode-connect' );
1038
+    $theme_colors['purple']    = __( 'Purple', 'ayecode-connect' );
1039
+    $theme_colors['salmon']    = __( 'Salmon', 'ayecode-connect' );
1040
+    $theme_colors['cyan']      = __( 'Cyan', 'ayecode-connect' );
1041
+    $theme_colors['gray']      = __( 'Gray', 'ayecode-connect' );
1042
+    $theme_colors['muted']     = __( 'Muted', 'ayecode-connect' );
1043
+    $theme_colors['gray-dark'] = __( 'Gray dark', 'ayecode-connect' );
1044
+    $theme_colors['indigo']    = __( 'Indigo', 'ayecode-connect' );
1045
+    $theme_colors['orange']    = __( 'Orange', 'ayecode-connect' );
1046
+    $theme_colors['body']      = __( 'Body', 'ayecode-connect' );
1047
+
1048
+
1049
+    // for bg and borders
1050
+    if ( $include_subtle ) {
1051
+        $theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1052
+        $theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1053
+        $theme_colors['secondary-subtle'] = __( 'Secondary Subtle', 'ayecode-connect' );
1054
+        $theme_colors['success-subtle']   = __( 'Success Subtle', 'ayecode-connect' );
1055
+        $theme_colors['danger-subtle']    = __( 'Danger Subtle', 'ayecode-connect' );
1056
+        $theme_colors['warning-subtle']   = __( 'Warning Subtle', 'ayecode-connect' );
1057
+        $theme_colors['info-subtle']      = __( 'Info Subtle', 'ayecode-connect' );
1058
+        $theme_colors['light-subtle']     = __( 'Light Subtle', 'ayecode-connect' );
1059
+        $theme_colors['dark-subtle']      = __( 'Dark Subtle', 'ayecode-connect' );
1060
+        $theme_colors['purple-subtle']    = __( 'Purple Subtle', 'ayecode-connect' );
1061
+        $theme_colors['salmon-subtle']    = __( 'Salmon Subtle', 'ayecode-connect' );
1062
+        $theme_colors['cyan-subtle']      = __( 'Cyan Subtle', 'ayecode-connect' );
1063
+        $theme_colors['gray-subtle']      = __( 'Gray Subtle', 'ayecode-connect' );
1064
+        $theme_colors['gray-dark-subtle'] = __( 'Gray dark Subtle', 'ayecode-connect' );
1065
+        $theme_colors['indigo-subtle']    = __( 'Indigo Subtle', 'ayecode-connect' );
1066
+        $theme_colors['orange-subtle']    = __( 'Orange Subtle', 'ayecode-connect' );
1067
+    }
1068
+
1069
+    // for texts
1070
+    if ($include_emphasis) {
1071
+        $theme_colors['primary-emphasis']   = __( 'Primary Emphasis', 'ayecode-connect' );
1072
+        $theme_colors['secondary-emphasis'] = __( 'Secondary Emphasis', 'ayecode-connect' );
1073
+        $theme_colors['success-emphasis']   = __( 'Success Emphasis', 'ayecode-connect' );
1074
+        $theme_colors['danger-emphasis']    = __( 'Danger Emphasis', 'ayecode-connect' );
1075
+        $theme_colors['warning-emphasis']   = __( 'Warning Emphasis', 'ayecode-connect' );
1076
+        $theme_colors['info-emphasis']      = __( 'Info Emphasis', 'ayecode-connect' );
1077
+        $theme_colors['light-emphasis']     = __( 'Light Emphasis', 'ayecode-connect' );
1078
+        $theme_colors['dark-emphasis']      = __( 'Dark Emphasis', 'ayecode-connect' );
1079
+        $theme_colors['purple-emphasis']    = __( 'Purple Emphasis', 'ayecode-connect' );
1080
+        $theme_colors['salmon-emphasis']    = __( 'Salmon Emphasis', 'ayecode-connect' );
1081
+        $theme_colors['cyan-emphasis']      = __( 'Cyan Emphasis', 'ayecode-connect' );
1082
+        $theme_colors['gray-emphasis']      = __( 'Gray Emphasis', 'ayecode-connect' );
1083
+        $theme_colors['muted-emphasis']     = __( 'Muted Emphasis', 'ayecode-connect' );
1084
+        $theme_colors['gray-dark-emphasis'] = __( 'Gray dark Emphasis', 'ayecode-connect' );
1085
+        $theme_colors['indigo-emphasis']    = __( 'Indigo Emphasis', 'ayecode-connect' );
1086
+        $theme_colors['orange-emphasis']    = __( 'Orange Emphasis', 'ayecode-connect' );
1087
+    }
1088
+
1089
+    if ( $include_outlines ) {
1090
+        $button_only                       = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1091
+        $theme_colors['outline-primary']   = __( 'Primary outline', 'ayecode-connect' ) . $button_only;
1092
+        $theme_colors['outline-secondary'] = __( 'Secondary outline', 'ayecode-connect' ) . $button_only;
1093
+        $theme_colors['outline-success']   = __( 'Success outline', 'ayecode-connect' ) . $button_only;
1094
+        $theme_colors['outline-danger']    = __( 'Danger outline', 'ayecode-connect' ) . $button_only;
1095
+        $theme_colors['outline-warning']   = __( 'Warning outline', 'ayecode-connect' ) . $button_only;
1096
+        $theme_colors['outline-info']      = __( 'Info outline', 'ayecode-connect' ) . $button_only;
1097
+        $theme_colors['outline-light']     = __( 'Light outline', 'ayecode-connect' ) . $button_only;
1098
+        $theme_colors['outline-dark']      = __( 'Dark outline', 'ayecode-connect' ) . $button_only;
1099
+        $theme_colors['outline-white']     = __( 'White outline', 'ayecode-connect' ) . $button_only;
1100
+        $theme_colors['outline-purple']    = __( 'Purple outline', 'ayecode-connect' ) . $button_only;
1101
+        $theme_colors['outline-salmon']    = __( 'Salmon outline', 'ayecode-connect' ) . $button_only;
1102
+        $theme_colors['outline-cyan']      = __( 'Cyan outline', 'ayecode-connect' ) . $button_only;
1103
+        $theme_colors['outline-gray']      = __( 'Gray outline', 'ayecode-connect' ) . $button_only;
1104
+        $theme_colors['outline-gray-dark'] = __( 'Gray dark outline', 'ayecode-connect' ) . $button_only;
1105
+        $theme_colors['outline-indigo']    = __( 'Indigo outline', 'ayecode-connect' ) . $button_only;
1106
+        $theme_colors['outline-orange']    = __( 'Orange outline', 'ayecode-connect' ) . $button_only;
1107
+    }
1108
+
1109
+    if ( $include_branding ) {
1110
+        $theme_colors = $theme_colors + sd_aui_branding_colors();
1111
+    }
1112
+
1113
+    if ( $include_translucent ) {
1114
+        $button_only                           = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1115
+        $theme_colors['translucent-primary']   = __( 'Primary translucent', 'ayecode-connect' ) . $button_only;
1116
+        $theme_colors['translucent-secondary'] = __( 'Secondary translucent', 'ayecode-connect' ) . $button_only;
1117
+        $theme_colors['translucent-success']   = __( 'Success translucent', 'ayecode-connect' ) . $button_only;
1118
+        $theme_colors['translucent-danger']    = __( 'Danger translucent', 'ayecode-connect' ) . $button_only;
1119
+        $theme_colors['translucent-warning']   = __( 'Warning translucent', 'ayecode-connect' ) . $button_only;
1120
+        $theme_colors['translucent-info']      = __( 'Info translucent', 'ayecode-connect' ) . $button_only;
1121
+        $theme_colors['translucent-light']     = __( 'Light translucent', 'ayecode-connect' ) . $button_only;
1122
+        $theme_colors['translucent-dark']      = __( 'Dark translucent', 'ayecode-connect' ) . $button_only;
1123
+        $theme_colors['translucent-white']     = __( 'White translucent', 'ayecode-connect' ) . $button_only;
1124
+        $theme_colors['translucent-purple']    = __( 'Purple translucent', 'ayecode-connect' ) . $button_only;
1125
+        $theme_colors['translucent-salmon']    = __( 'Salmon translucent', 'ayecode-connect' ) . $button_only;
1126
+        $theme_colors['translucent-cyan']      = __( 'Cyan translucent', 'ayecode-connect' ) . $button_only;
1127
+        $theme_colors['translucent-gray']      = __( 'Gray translucent', 'ayecode-connect' ) . $button_only;
1128
+        $theme_colors['translucent-gray-dark'] = __( 'Gray dark translucent', 'ayecode-connect' ) . $button_only;
1129
+        $theme_colors['translucent-indigo']    = __( 'Indigo translucent', 'ayecode-connect' ) . $button_only;
1130
+        $theme_colors['translucent-orange']    = __( 'Orange translucent', 'ayecode-connect' ) . $button_only;
1131
+    }
1132
+
1133
+    return apply_filters( 'sd_aui_colors', $theme_colors, $include_outlines, $include_branding );
1134 1134
 }
1135 1135
 
1136 1136
 /**
@@ -1139,19 +1139,19 @@  discard block
 block discarded – undo
1139 1139
  * @return array
1140 1140
  */
1141 1141
 function sd_aui_branding_colors() {
1142
-	return array(
1143
-		'facebook'  => __( 'Facebook', 'ayecode-connect' ),
1144
-		'twitter'   => __( 'Twitter', 'ayecode-connect' ),
1145
-		'instagram' => __( 'Instagram', 'ayecode-connect' ),
1146
-		'linkedin'  => __( 'Linkedin', 'ayecode-connect' ),
1147
-		'flickr'    => __( 'Flickr', 'ayecode-connect' ),
1148
-		'github'    => __( 'GitHub', 'ayecode-connect' ),
1149
-		'youtube'   => __( 'YouTube', 'ayecode-connect' ),
1150
-		'wordpress' => __( 'WordPress', 'ayecode-connect' ),
1151
-		'google'    => __( 'Google', 'ayecode-connect' ),
1152
-		'yahoo'     => __( 'Yahoo', 'ayecode-connect' ),
1153
-		'vkontakte' => __( 'Vkontakte', 'ayecode-connect' ),
1154
-	);
1142
+    return array(
1143
+        'facebook'  => __( 'Facebook', 'ayecode-connect' ),
1144
+        'twitter'   => __( 'Twitter', 'ayecode-connect' ),
1145
+        'instagram' => __( 'Instagram', 'ayecode-connect' ),
1146
+        'linkedin'  => __( 'Linkedin', 'ayecode-connect' ),
1147
+        'flickr'    => __( 'Flickr', 'ayecode-connect' ),
1148
+        'github'    => __( 'GitHub', 'ayecode-connect' ),
1149
+        'youtube'   => __( 'YouTube', 'ayecode-connect' ),
1150
+        'wordpress' => __( 'WordPress', 'ayecode-connect' ),
1151
+        'google'    => __( 'Google', 'ayecode-connect' ),
1152
+        'yahoo'     => __( 'Yahoo', 'ayecode-connect' ),
1153
+        'vkontakte' => __( 'Vkontakte', 'ayecode-connect' ),
1154
+    );
1155 1155
 }
1156 1156
 
1157 1157
 
@@ -1165,43 +1165,43 @@  discard block
 block discarded – undo
1165 1165
  */
1166 1166
 function sd_get_container_class_input( $type = 'container', $overwrite = array() ) {
1167 1167
 
1168
-	$options = array(
1169
-		'container'                                                             => __( 'container (default)', 'ayecode-connect' ),
1170
-		'container-sm'                                                          => 'container-sm',
1171
-		'container-md'                                                          => 'container-md',
1172
-		'container-lg'                                                          => 'container-lg',
1173
-		'container-xl'                                                          => 'container-xl',
1174
-		'container-xxl'                                                         => 'container-xxl',
1175
-		'container-fluid'                                                       => 'container-fluid',
1176
-		'row'                                                                   => 'row',
1177
-		'col'                                                                   => 'col',
1178
-		'card'                                                                  => 'card',
1179
-		'card-header'                                                           => 'card-header',
1180
-		'card-img-top'                                                          => 'card-img-top',
1181
-		'card-body'                                                             => 'card-body',
1182
-		'card-footer'                                                           => 'card-footer',
1183
-		'list-group'                                                            => 'list-group',
1184
-		'list-group list-group-flush'                                           => 'list-group list-group-flush',
1185
-		'list-group list-group-numbered'                                        => 'list-group list-group-numbered',
1186
-		'list-group list-group-flush list-group-numbered'                       => 'list-group list-group-flush list-group-numbered',
1187
-		'list-group list-group-horizontal'                                      => 'list-group list-group-horizontal',
1188
-		'list-group list-group-horizontal list-group-numbered'                  => 'list-group list-group-horizontal list-group-numbered',
1189
-		'list-group-item'                                                       => 'list-group-item',
1190
-		''                                                                      => __( 'no container class', 'ayecode-connect' ),
1191
-	);
1192
-
1193
-	$defaults = array(
1194
-		'type'     => 'select',
1195
-		'title'    => __( 'Type', 'ayecode-connect' ),
1196
-		'options'  => $options,
1197
-		'default'  => '',
1198
-		'desc_tip' => true,
1199
-		'group'    => __( 'Container', 'ayecode-connect' ),
1200
-	);
1201
-
1202
-	$input = wp_parse_args( $overwrite, $defaults );
1203
-
1204
-	return $input;
1168
+    $options = array(
1169
+        'container'                                                             => __( 'container (default)', 'ayecode-connect' ),
1170
+        'container-sm'                                                          => 'container-sm',
1171
+        'container-md'                                                          => 'container-md',
1172
+        'container-lg'                                                          => 'container-lg',
1173
+        'container-xl'                                                          => 'container-xl',
1174
+        'container-xxl'                                                         => 'container-xxl',
1175
+        'container-fluid'                                                       => 'container-fluid',
1176
+        'row'                                                                   => 'row',
1177
+        'col'                                                                   => 'col',
1178
+        'card'                                                                  => 'card',
1179
+        'card-header'                                                           => 'card-header',
1180
+        'card-img-top'                                                          => 'card-img-top',
1181
+        'card-body'                                                             => 'card-body',
1182
+        'card-footer'                                                           => 'card-footer',
1183
+        'list-group'                                                            => 'list-group',
1184
+        'list-group list-group-flush'                                           => 'list-group list-group-flush',
1185
+        'list-group list-group-numbered'                                        => 'list-group list-group-numbered',
1186
+        'list-group list-group-flush list-group-numbered'                       => 'list-group list-group-flush list-group-numbered',
1187
+        'list-group list-group-horizontal'                                      => 'list-group list-group-horizontal',
1188
+        'list-group list-group-horizontal list-group-numbered'                  => 'list-group list-group-horizontal list-group-numbered',
1189
+        'list-group-item'                                                       => 'list-group-item',
1190
+        ''                                                                      => __( 'no container class', 'ayecode-connect' ),
1191
+    );
1192
+
1193
+    $defaults = array(
1194
+        'type'     => 'select',
1195
+        'title'    => __( 'Type', 'ayecode-connect' ),
1196
+        'options'  => $options,
1197
+        'default'  => '',
1198
+        'desc_tip' => true,
1199
+        'group'    => __( 'Container', 'ayecode-connect' ),
1200
+    );
1201
+
1202
+    $input = wp_parse_args( $overwrite, $defaults );
1203
+
1204
+    return $input;
1205 1205
 }
1206 1206
 
1207 1207
 /**
@@ -1214,30 +1214,30 @@  discard block
 block discarded – undo
1214 1214
  */
1215 1215
 function sd_get_position_class_input( $type = 'position', $overwrite = array() ) {
1216 1216
 
1217
-	$options = array(
1218
-		''                  => __( 'Default', 'ayecode-connect' ),
1219
-		'position-static'   => 'static',
1220
-		'position-relative' => 'relative',
1221
-		'position-absolute' => 'absolute',
1222
-		'position-fixed'    => 'fixed',
1223
-		'position-sticky'   => 'sticky',
1224
-		'fixed-top'         => 'fixed-top',
1225
-		'fixed-bottom'      => 'fixed-bottom',
1226
-		'sticky-top'        => 'sticky-top',
1227
-	);
1217
+    $options = array(
1218
+        ''                  => __( 'Default', 'ayecode-connect' ),
1219
+        'position-static'   => 'static',
1220
+        'position-relative' => 'relative',
1221
+        'position-absolute' => 'absolute',
1222
+        'position-fixed'    => 'fixed',
1223
+        'position-sticky'   => 'sticky',
1224
+        'fixed-top'         => 'fixed-top',
1225
+        'fixed-bottom'      => 'fixed-bottom',
1226
+        'sticky-top'        => 'sticky-top',
1227
+    );
1228 1228
 
1229
-	$defaults = array(
1230
-		'type'     => 'select',
1231
-		'title'    => __( 'Position', 'ayecode-connect' ),
1232
-		'options'  => $options,
1233
-		'default'  => '',
1234
-		'desc_tip' => true,
1235
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1236
-	);
1229
+    $defaults = array(
1230
+        'type'     => 'select',
1231
+        'title'    => __( 'Position', 'ayecode-connect' ),
1232
+        'options'  => $options,
1233
+        'default'  => '',
1234
+        'desc_tip' => true,
1235
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1236
+    );
1237 1237
 
1238
-	$input = wp_parse_args( $overwrite, $defaults );
1238
+    $input = wp_parse_args( $overwrite, $defaults );
1239 1239
 
1240
-	return $input;
1240
+    return $input;
1241 1241
 }
1242 1242
 
1243 1243
 /**
@@ -1248,32 +1248,32 @@  discard block
 block discarded – undo
1248 1248
  */
1249 1249
 function sd_get_absolute_position_input( $type = 'absolute_position', $overwrite = array() ) {
1250 1250
 
1251
-	$options = array(
1252
-		''              => __( 'Default', 'ayecode-connect' ),
1253
-		'top-left'      => 'top-left',
1254
-		'top-center'    => 'top-center',
1255
-		'top-right'     => 'top-right',
1256
-		'center-left'   => 'middle-left',
1257
-		'center'        => 'center',
1258
-		'center-right'  => 'middle-right',
1259
-		'bottom-left'   => 'bottom-left',
1260
-		'bottom-center' => 'bottom-center',
1261
-		'bottom-right'  => 'bottom-right',
1262
-	);
1251
+    $options = array(
1252
+        ''              => __( 'Default', 'ayecode-connect' ),
1253
+        'top-left'      => 'top-left',
1254
+        'top-center'    => 'top-center',
1255
+        'top-right'     => 'top-right',
1256
+        'center-left'   => 'middle-left',
1257
+        'center'        => 'center',
1258
+        'center-right'  => 'middle-right',
1259
+        'bottom-left'   => 'bottom-left',
1260
+        'bottom-center' => 'bottom-center',
1261
+        'bottom-right'  => 'bottom-right',
1262
+    );
1263 1263
 
1264
-	$defaults = array(
1265
-		'type'            => 'select',
1266
-		'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1267
-		'options'         => $options,
1268
-		'default'         => '',
1269
-		'desc_tip'        => true,
1270
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1271
-		'element_require' => '[%position%]=="position-absolute"',
1272
-	);
1264
+    $defaults = array(
1265
+        'type'            => 'select',
1266
+        'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1267
+        'options'         => $options,
1268
+        'default'         => '',
1269
+        'desc_tip'        => true,
1270
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1271
+        'element_require' => '[%position%]=="position-absolute"',
1272
+    );
1273 1273
 
1274
-	$input = wp_parse_args( $overwrite, $defaults );
1274
+    $input = wp_parse_args( $overwrite, $defaults );
1275 1275
 
1276
-	return $input;
1276
+    return $input;
1277 1277
 }
1278 1278
 
1279 1279
 /**
@@ -1286,38 +1286,38 @@  discard block
 block discarded – undo
1286 1286
  */
1287 1287
 function sd_get_sticky_offset_input( $type = 'top', $overwrite = array() ) {
1288 1288
 
1289
-	$defaults = array(
1290
-		'type'            => 'number',
1291
-		'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1292
-		//'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1293
-		'default'         => '',
1294
-		'desc_tip'        => true,
1295
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1296
-		'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1297
-	);
1298
-
1299
-	// title
1300
-	if ( $type == 'top' ) {
1301
-		$defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1302
-		$defaults['icon']  = 'box-top';
1303
-		$defaults['row']   = array(
1304
-			'title' => __( 'Sticky offset', 'ayecode-connect' ),
1305
-			'key'   => 'sticky-offset',
1306
-			'open'  => true,
1307
-			'class' => 'text-center',
1308
-		);
1309
-	} elseif ( $type == 'bottom' ) {
1310
-		$defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1311
-		$defaults['icon']  = 'box-bottom';
1312
-		$defaults['row']   = array(
1313
-			'key'   => 'sticky-offset',
1314
-			'close' => true,
1315
-		);
1316
-	}
1317
-
1318
-	$input = wp_parse_args( $overwrite, $defaults );
1319
-
1320
-	return $input;
1289
+    $defaults = array(
1290
+        'type'            => 'number',
1291
+        'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1292
+        //'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1293
+        'default'         => '',
1294
+        'desc_tip'        => true,
1295
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1296
+        'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1297
+    );
1298
+
1299
+    // title
1300
+    if ( $type == 'top' ) {
1301
+        $defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1302
+        $defaults['icon']  = 'box-top';
1303
+        $defaults['row']   = array(
1304
+            'title' => __( 'Sticky offset', 'ayecode-connect' ),
1305
+            'key'   => 'sticky-offset',
1306
+            'open'  => true,
1307
+            'class' => 'text-center',
1308
+        );
1309
+    } elseif ( $type == 'bottom' ) {
1310
+        $defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1311
+        $defaults['icon']  = 'box-bottom';
1312
+        $defaults['row']   = array(
1313
+            'key'   => 'sticky-offset',
1314
+            'close' => true,
1315
+        );
1316
+    }
1317
+
1318
+    $input = wp_parse_args( $overwrite, $defaults );
1319
+
1320
+    return $input;
1321 1321
 }
1322 1322
 
1323 1323
 /**
@@ -1329,61 +1329,61 @@  discard block
 block discarded – undo
1329 1329
  * @return array
1330 1330
  */
1331 1331
 function sd_get_font_size_input( $type = 'font_size', $overwrite = array(), $has_custom = false ) {
1332
-	global $aui_bs5;
1333
-
1334
-	$options[] = __( 'Inherit from parent', 'ayecode-connect' );
1335
-	if ( $aui_bs5 ) {
1336
-		// responsive font sizes
1337
-		$options['fs-base'] = 'fs-base (body default)';
1338
-		$options['fs-6']    = 'fs-6';
1339
-		$options['fs-5']    = 'fs-5';
1340
-		$options['fs-4']    = 'fs-4';
1341
-		$options['fs-3']    = 'fs-3';
1342
-		$options['fs-2']    = 'fs-2';
1343
-		$options['fs-1']    = 'fs-1';
1344
-
1345
-		// custom
1346
-		$options['fs-lg']  = 'fs-lg';
1347
-		$options['fs-sm']  = 'fs-sm';
1348
-		$options['fs-xs']  = 'fs-xs';
1349
-		$options['fs-xxs'] = 'fs-xxs';
1350
-
1351
-	}
1352
-
1353
-	$options = $options + array(
1354
-			'h6'        => 'h6',
1355
-			'h5'        => 'h5',
1356
-			'h4'        => 'h4',
1357
-			'h3'        => 'h3',
1358
-			'h2'        => 'h2',
1359
-			'h1'        => 'h1',
1360
-			'display-1' => 'display-1',
1361
-			'display-2' => 'display-2',
1362
-			'display-3' => 'display-3',
1363
-			'display-4' => 'display-4',
1364
-		);
1365
-
1366
-	if ( $aui_bs5 ) {
1367
-		$options['display-5'] = 'display-5';
1368
-		$options['display-6'] = 'display-6';
1369
-	}
1370
-
1371
-	if ( $has_custom ) {
1372
-		$options['custom'] = __( 'Custom size', 'ayecode-connect' );
1373
-	}
1374
-
1375
-	$defaults = array(
1376
-		'type'     => 'select',
1377
-		'title'    => __( 'Font size', 'ayecode-connect' ),
1378
-		'options'  => $options,
1379
-		'default'  => '',
1380
-		'desc_tip' => true,
1381
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1382
-	);
1383
-
1384
-	$input = wp_parse_args( $overwrite, $defaults );
1385
-
1386
-	return $input;
1332
+    global $aui_bs5;
1333
+
1334
+    $options[] = __( 'Inherit from parent', 'ayecode-connect' );
1335
+    if ( $aui_bs5 ) {
1336
+        // responsive font sizes
1337
+        $options['fs-base'] = 'fs-base (body default)';
1338
+        $options['fs-6']    = 'fs-6';
1339
+        $options['fs-5']    = 'fs-5';
1340
+        $options['fs-4']    = 'fs-4';
1341
+        $options['fs-3']    = 'fs-3';
1342
+        $options['fs-2']    = 'fs-2';
1343
+        $options['fs-1']    = 'fs-1';
1344
+
1345
+        // custom
1346
+        $options['fs-lg']  = 'fs-lg';
1347
+        $options['fs-sm']  = 'fs-sm';
1348
+        $options['fs-xs']  = 'fs-xs';
1349
+        $options['fs-xxs'] = 'fs-xxs';
1350
+
1351
+    }
1352
+
1353
+    $options = $options + array(
1354
+            'h6'        => 'h6',
1355
+            'h5'        => 'h5',
1356
+            'h4'        => 'h4',
1357
+            'h3'        => 'h3',
1358
+            'h2'        => 'h2',
1359
+            'h1'        => 'h1',
1360
+            'display-1' => 'display-1',
1361
+            'display-2' => 'display-2',
1362
+            'display-3' => 'display-3',
1363
+            'display-4' => 'display-4',
1364
+        );
1365
+
1366
+    if ( $aui_bs5 ) {
1367
+        $options['display-5'] = 'display-5';
1368
+        $options['display-6'] = 'display-6';
1369
+    }
1370
+
1371
+    if ( $has_custom ) {
1372
+        $options['custom'] = __( 'Custom size', 'ayecode-connect' );
1373
+    }
1374
+
1375
+    $defaults = array(
1376
+        'type'     => 'select',
1377
+        'title'    => __( 'Font size', 'ayecode-connect' ),
1378
+        'options'  => $options,
1379
+        'default'  => '',
1380
+        'desc_tip' => true,
1381
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1382
+    );
1383
+
1384
+    $input = wp_parse_args( $overwrite, $defaults );
1385
+
1386
+    return $input;
1387 1387
 }
1388 1388
 
1389 1389
 /**
@@ -1396,27 +1396,27 @@  discard block
 block discarded – undo
1396 1396
  */
1397 1397
 function sd_get_font_custom_size_input( $type = 'font_size_custom', $overwrite = array(), $parent_type = '' ) {
1398 1398
 
1399
-	$defaults = array(
1400
-		'type'              => 'number',
1401
-		'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1402
-		'default'           => '',
1403
-		'placeholder'       => '1.25',
1404
-		'custom_attributes' => array(
1405
-			'step' => '0.1',
1406
-			'min'  => '0',
1407
-			'max'  => '100',
1408
-		),
1409
-		'desc_tip'          => true,
1410
-		'group'             => __( 'Typography', 'ayecode-connect' ),
1411
-	);
1399
+    $defaults = array(
1400
+        'type'              => 'number',
1401
+        'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1402
+        'default'           => '',
1403
+        'placeholder'       => '1.25',
1404
+        'custom_attributes' => array(
1405
+            'step' => '0.1',
1406
+            'min'  => '0',
1407
+            'max'  => '100',
1408
+        ),
1409
+        'desc_tip'          => true,
1410
+        'group'             => __( 'Typography', 'ayecode-connect' ),
1411
+    );
1412 1412
 
1413
-	if ( $parent_type ) {
1414
-		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1415
-	}
1413
+    if ( $parent_type ) {
1414
+        $defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1415
+    }
1416 1416
 
1417
-	$input = wp_parse_args( $overwrite, $defaults );
1417
+    $input = wp_parse_args( $overwrite, $defaults );
1418 1418
 
1419
-	return $input;
1419
+    return $input;
1420 1420
 }
1421 1421
 
1422 1422
 /**
@@ -1429,23 +1429,23 @@  discard block
 block discarded – undo
1429 1429
  */
1430 1430
 function sd_get_font_line_height_input( $type = 'font_line_height', $overwrite = array() ) {
1431 1431
 
1432
-	$defaults = array(
1433
-		'type'              => 'number',
1434
-		'title'             => __( 'Font Line Height', 'ayecode-connect' ),
1435
-		'default'           => '',
1436
-		'placeholder'       => '1.75',
1437
-		'custom_attributes' => array(
1438
-			'step' => '0.1',
1439
-			'min'  => '0',
1440
-			'max'  => '100',
1441
-		),
1442
-		'desc_tip'          => true,
1443
-		'group'             => __( 'Typography', 'ayecode-connect' ),
1444
-	);
1432
+    $defaults = array(
1433
+        'type'              => 'number',
1434
+        'title'             => __( 'Font Line Height', 'ayecode-connect' ),
1435
+        'default'           => '',
1436
+        'placeholder'       => '1.75',
1437
+        'custom_attributes' => array(
1438
+            'step' => '0.1',
1439
+            'min'  => '0',
1440
+            'max'  => '100',
1441
+        ),
1442
+        'desc_tip'          => true,
1443
+        'group'             => __( 'Typography', 'ayecode-connect' ),
1444
+    );
1445 1445
 
1446
-	$input = wp_parse_args( $overwrite, $defaults );
1446
+    $input = wp_parse_args( $overwrite, $defaults );
1447 1447
 
1448
-	return $input;
1448
+    return $input;
1449 1449
 }
1450 1450
 
1451 1451
 /**
@@ -1458,18 +1458,18 @@  discard block
 block discarded – undo
1458 1458
  */
1459 1459
 function sd_get_font_size_input_group( $type = 'font_size', $overwrite = array(), $overwrite_custom = array() ) {
1460 1460
 
1461
-	$inputs = array();
1461
+    $inputs = array();
1462 1462
 
1463
-	if ( $overwrite !== false ) {
1464
-		$inputs[ $type ] = sd_get_font_size_input( $type, $overwrite, true );
1465
-	}
1463
+    if ( $overwrite !== false ) {
1464
+        $inputs[ $type ] = sd_get_font_size_input( $type, $overwrite, true );
1465
+    }
1466 1466
 
1467
-	if ( $overwrite_custom !== false ) {
1468
-		$custom            = $type . '_custom';
1469
-		$inputs[ $custom ] = sd_get_font_custom_size_input( $custom, $overwrite_custom, $type );
1470
-	}
1467
+    if ( $overwrite_custom !== false ) {
1468
+        $custom            = $type . '_custom';
1469
+        $inputs[ $custom ] = sd_get_font_custom_size_input( $custom, $overwrite_custom, $type );
1470
+    }
1471 1471
 
1472
-	return $inputs;
1472
+    return $inputs;
1473 1473
 }
1474 1474
 
1475 1475
 /**
@@ -1482,33 +1482,33 @@  discard block
 block discarded – undo
1482 1482
  */
1483 1483
 function sd_get_font_weight_input( $type = 'font_weight', $overwrite = array() ) {
1484 1484
 
1485
-	$options = array(
1486
-		''                                => __( 'Inherit', 'ayecode-connect' ),
1487
-		'font-weight-bold'                => 'bold',
1488
-		'font-weight-bolder'              => 'bolder',
1489
-		'font-weight-normal'              => 'normal',
1490
-		'font-weight-light'               => 'light',
1491
-		'font-weight-lighter'             => 'lighter',
1492
-		'font-italic'                     => 'italic',
1493
-		'font-weight-bold font-italic'    => 'bold italic',
1494
-		'font-weight-bolder font-italic'  => 'bolder italic',
1495
-		'font-weight-normal font-italic'  => 'normal italic',
1496
-		'font-weight-light font-italic'   => 'light italic',
1497
-		'font-weight-lighter font-italic' => 'lighter italic',
1498
-	);
1485
+    $options = array(
1486
+        ''                                => __( 'Inherit', 'ayecode-connect' ),
1487
+        'font-weight-bold'                => 'bold',
1488
+        'font-weight-bolder'              => 'bolder',
1489
+        'font-weight-normal'              => 'normal',
1490
+        'font-weight-light'               => 'light',
1491
+        'font-weight-lighter'             => 'lighter',
1492
+        'font-italic'                     => 'italic',
1493
+        'font-weight-bold font-italic'    => 'bold italic',
1494
+        'font-weight-bolder font-italic'  => 'bolder italic',
1495
+        'font-weight-normal font-italic'  => 'normal italic',
1496
+        'font-weight-light font-italic'   => 'light italic',
1497
+        'font-weight-lighter font-italic' => 'lighter italic',
1498
+    );
1499 1499
 
1500
-	$defaults = array(
1501
-		'type'     => 'select',
1502
-		'title'    => __( 'Appearance', 'ayecode-connect' ),
1503
-		'options'  => $options,
1504
-		'default'  => '',
1505
-		'desc_tip' => true,
1506
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1507
-	);
1500
+    $defaults = array(
1501
+        'type'     => 'select',
1502
+        'title'    => __( 'Appearance', 'ayecode-connect' ),
1503
+        'options'  => $options,
1504
+        'default'  => '',
1505
+        'desc_tip' => true,
1506
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1507
+    );
1508 1508
 
1509
-	$input = wp_parse_args( $overwrite, $defaults );
1509
+    $input = wp_parse_args( $overwrite, $defaults );
1510 1510
 
1511
-	return $input;
1511
+    return $input;
1512 1512
 }
1513 1513
 
1514 1514
 /**
@@ -1521,25 +1521,25 @@  discard block
 block discarded – undo
1521 1521
  */
1522 1522
 function sd_get_font_case_input( $type = 'font_weight', $overwrite = array() ) {
1523 1523
 
1524
-	$options = array(
1525
-		''                => __( 'Default', 'ayecode-connect' ),
1526
-		'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1527
-		'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1528
-		'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1529
-	);
1524
+    $options = array(
1525
+        ''                => __( 'Default', 'ayecode-connect' ),
1526
+        'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1527
+        'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1528
+        'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1529
+    );
1530 1530
 
1531
-	$defaults = array(
1532
-		'type'     => 'select',
1533
-		'title'    => __( 'Letter case', 'ayecode-connect' ),
1534
-		'options'  => $options,
1535
-		'default'  => '',
1536
-		'desc_tip' => true,
1537
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1538
-	);
1531
+    $defaults = array(
1532
+        'type'     => 'select',
1533
+        'title'    => __( 'Letter case', 'ayecode-connect' ),
1534
+        'options'  => $options,
1535
+        'default'  => '',
1536
+        'desc_tip' => true,
1537
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1538
+    );
1539 1539
 
1540
-	$input = wp_parse_args( $overwrite, $defaults );
1540
+    $input = wp_parse_args( $overwrite, $defaults );
1541 1541
 
1542
-	return $input;
1542
+    return $input;
1543 1543
 }
1544 1544
 
1545 1545
 /**
@@ -1553,23 +1553,23 @@  discard block
 block discarded – undo
1553 1553
  */
1554 1554
 function sd_get_font_italic_input( $type = 'font_italic', $overwrite = array() ) {
1555 1555
 
1556
-	$options = array(
1557
-		''            => __( 'No', 'ayecode-connect' ),
1558
-		'font-italic' => __( 'Yes', 'ayecode-connect' ),
1559
-	);
1556
+    $options = array(
1557
+        ''            => __( 'No', 'ayecode-connect' ),
1558
+        'font-italic' => __( 'Yes', 'ayecode-connect' ),
1559
+    );
1560 1560
 
1561
-	$defaults = array(
1562
-		'type'     => 'select',
1563
-		'title'    => __( 'Font italic', 'ayecode-connect' ),
1564
-		'options'  => $options,
1565
-		'default'  => '',
1566
-		'desc_tip' => true,
1567
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1568
-	);
1561
+    $defaults = array(
1562
+        'type'     => 'select',
1563
+        'title'    => __( 'Font italic', 'ayecode-connect' ),
1564
+        'options'  => $options,
1565
+        'default'  => '',
1566
+        'desc_tip' => true,
1567
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1568
+    );
1569 1569
 
1570
-	$input = wp_parse_args( $overwrite, $defaults );
1570
+    $input = wp_parse_args( $overwrite, $defaults );
1571 1571
 
1572
-	return $input;
1572
+    return $input;
1573 1573
 }
1574 1574
 
1575 1575
 /**
@@ -1582,18 +1582,18 @@  discard block
 block discarded – undo
1582 1582
  */
1583 1583
 function sd_get_anchor_input( $type = 'anchor', $overwrite = array() ) {
1584 1584
 
1585
-	$defaults = array(
1586
-		'type'     => 'text',
1587
-		'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1588
-		'desc'     => __( 'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.', 'ayecode-connect' ),
1589
-		'default'  => '',
1590
-		'desc_tip' => true,
1591
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1592
-	);
1585
+    $defaults = array(
1586
+        'type'     => 'text',
1587
+        'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1588
+        'desc'     => __( 'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.', 'ayecode-connect' ),
1589
+        'default'  => '',
1590
+        'desc_tip' => true,
1591
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1592
+    );
1593 1593
 
1594
-	$input = wp_parse_args( $overwrite, $defaults );
1594
+    $input = wp_parse_args( $overwrite, $defaults );
1595 1595
 
1596
-	return $input;
1596
+    return $input;
1597 1597
 }
1598 1598
 
1599 1599
 /**
@@ -1606,18 +1606,18 @@  discard block
 block discarded – undo
1606 1606
  */
1607 1607
 function sd_get_class_input( $type = 'css_class', $overwrite = array() ) {
1608 1608
 
1609
-	$defaults = array(
1610
-		'type'     => 'text',
1611
-		'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1612
-		'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1613
-		'default'  => '',
1614
-		'desc_tip' => true,
1615
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1616
-	);
1609
+    $defaults = array(
1610
+        'type'     => 'text',
1611
+        'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1612
+        'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1613
+        'default'  => '',
1614
+        'desc_tip' => true,
1615
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1616
+    );
1617 1617
 
1618
-	$input = wp_parse_args( $overwrite, $defaults );
1618
+    $input = wp_parse_args( $overwrite, $defaults );
1619 1619
 
1620
-	return $input;
1620
+    return $input;
1621 1621
 }
1622 1622
 
1623 1623
 /**
@@ -1630,18 +1630,18 @@  discard block
 block discarded – undo
1630 1630
  */
1631 1631
 function sd_get_custom_name_input( $type = 'metadata_name', $overwrite = array() ) {
1632 1632
 
1633
-	$defaults = array(
1634
-		'type'     => 'text',
1635
-		'title'    => __( 'Block Name', 'ayecode-connect' ),
1636
-		'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1637
-		'default'  => '',
1638
-		'desc_tip' => true,
1639
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1640
-	);
1633
+    $defaults = array(
1634
+        'type'     => 'text',
1635
+        'title'    => __( 'Block Name', 'ayecode-connect' ),
1636
+        'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1637
+        'default'  => '',
1638
+        'desc_tip' => true,
1639
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1640
+    );
1641 1641
 
1642
-	$input = wp_parse_args( $overwrite, $defaults );
1642
+    $input = wp_parse_args( $overwrite, $defaults );
1643 1643
 
1644
-	return $input;
1644
+    return $input;
1645 1645
 }
1646 1646
 
1647 1647
 /**
@@ -1654,341 +1654,341 @@  discard block
 block discarded – undo
1654 1654
  */
1655 1655
 function sd_get_hover_animations_input( $type = 'hover_animations', $overwrite = array() ) {
1656 1656
 
1657
-	$options = array(
1658
-		''                 => __( 'none', 'ayecode-connect' ),
1659
-		'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1660
-		'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1661
-		'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1662
-		'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1663
-		'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1664
-		'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1665
-	);
1657
+    $options = array(
1658
+        ''                 => __( 'none', 'ayecode-connect' ),
1659
+        'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1660
+        'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1661
+        'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1662
+        'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1663
+        'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1664
+        'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1665
+    );
1666 1666
 
1667
-	$defaults = array(
1668
-		'type'     => 'select',
1669
-		'multiple' => true,
1670
-		'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1671
-		'options'  => $options,
1672
-		'default'  => '',
1673
-		'desc_tip' => true,
1674
-		'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1675
-	);
1667
+    $defaults = array(
1668
+        'type'     => 'select',
1669
+        'multiple' => true,
1670
+        'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1671
+        'options'  => $options,
1672
+        'default'  => '',
1673
+        'desc_tip' => true,
1674
+        'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1675
+    );
1676 1676
 
1677
-	$input = wp_parse_args( $overwrite, $defaults );
1677
+    $input = wp_parse_args( $overwrite, $defaults );
1678 1678
 
1679
-	return $input;
1679
+    return $input;
1680 1680
 }
1681 1681
 
1682 1682
 
1683 1683
 function sd_get_flex_align_items_input( $type = 'align-items', $overwrite = array() ) {
1684
-	$device_size = '';
1685
-	if ( ! empty( $overwrite['device_type'] ) ) {
1686
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1687
-			$device_size = '-md';
1688
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1689
-			$device_size = '-lg';
1690
-		}
1691
-	}
1692
-	$options = array(
1693
-		''                                         => __( 'Default', 'ayecode-connect' ),
1694
-		'align-items' . $device_size . '-start'    => 'align-items-start',
1695
-		'align-items' . $device_size . '-end'      => 'align-items-end',
1696
-		'align-items' . $device_size . '-center'   => 'align-items-center',
1697
-		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1698
-		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1699
-	);
1700
-
1701
-	$defaults = array(
1702
-		'type'            => 'select',
1703
-		'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1704
-		'options'         => $options,
1705
-		'default'         => '',
1706
-		'desc_tip'        => true,
1707
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1708
-		'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1709
-
1710
-	);
1711
-
1712
-	$input = wp_parse_args( $overwrite, $defaults );
1713
-
1714
-	return $input;
1684
+    $device_size = '';
1685
+    if ( ! empty( $overwrite['device_type'] ) ) {
1686
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1687
+            $device_size = '-md';
1688
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1689
+            $device_size = '-lg';
1690
+        }
1691
+    }
1692
+    $options = array(
1693
+        ''                                         => __( 'Default', 'ayecode-connect' ),
1694
+        'align-items' . $device_size . '-start'    => 'align-items-start',
1695
+        'align-items' . $device_size . '-end'      => 'align-items-end',
1696
+        'align-items' . $device_size . '-center'   => 'align-items-center',
1697
+        'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1698
+        'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1699
+    );
1700
+
1701
+    $defaults = array(
1702
+        'type'            => 'select',
1703
+        'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1704
+        'options'         => $options,
1705
+        'default'         => '',
1706
+        'desc_tip'        => true,
1707
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1708
+        'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1709
+
1710
+    );
1711
+
1712
+    $input = wp_parse_args( $overwrite, $defaults );
1713
+
1714
+    return $input;
1715 1715
 }
1716 1716
 
1717 1717
 function sd_get_flex_align_items_input_group( $type = 'flex_align_items', $overwrite = array() ) {
1718
-	$inputs = array();
1719
-	$sizes  = array(
1720
-		''    => 'Mobile',
1721
-		'_md' => 'Tablet',
1722
-		'_lg' => 'Desktop',
1723
-	);
1718
+    $inputs = array();
1719
+    $sizes  = array(
1720
+        ''    => 'Mobile',
1721
+        '_md' => 'Tablet',
1722
+        '_lg' => 'Desktop',
1723
+    );
1724 1724
 
1725
-	if ( $overwrite !== false ) {
1725
+    if ( $overwrite !== false ) {
1726 1726
 
1727
-		foreach ( $sizes as $ds => $dt ) {
1728
-			$overwrite['device_type'] = $dt;
1729
-			$inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1730
-		}
1731
-	}
1727
+        foreach ( $sizes as $ds => $dt ) {
1728
+            $overwrite['device_type'] = $dt;
1729
+            $inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1730
+        }
1731
+    }
1732 1732
 
1733
-	return $inputs;
1733
+    return $inputs;
1734 1734
 }
1735 1735
 
1736 1736
 function sd_get_flex_justify_content_input( $type = 'flex_justify_content', $overwrite = array() ) {
1737
-	$device_size = '';
1738
-	if ( ! empty( $overwrite['device_type'] ) ) {
1739
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1740
-			$device_size = '-md';
1741
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1742
-			$device_size = '-lg';
1743
-		}
1744
-	}
1745
-	$options = array(
1746
-		''                                            => __( 'Default', 'ayecode-connect' ),
1747
-		'justify-content' . $device_size . '-start'   => 'justify-content-start',
1748
-		'justify-content' . $device_size . '-end'     => 'justify-content-end',
1749
-		'justify-content' . $device_size . '-center'  => 'justify-content-center',
1750
-		'justify-content' . $device_size . '-between' => 'justify-content-between',
1751
-		'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1752
-	);
1753
-
1754
-	$defaults = array(
1755
-		'type'            => 'select',
1756
-		'title'           => __( 'Justify content', 'ayecode-connect' ),
1757
-		'options'         => $options,
1758
-		'default'         => '',
1759
-		'desc_tip'        => true,
1760
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1761
-		'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1762
-
1763
-	);
1764
-
1765
-	$input = wp_parse_args( $overwrite, $defaults );
1766
-
1767
-	return $input;
1737
+    $device_size = '';
1738
+    if ( ! empty( $overwrite['device_type'] ) ) {
1739
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1740
+            $device_size = '-md';
1741
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1742
+            $device_size = '-lg';
1743
+        }
1744
+    }
1745
+    $options = array(
1746
+        ''                                            => __( 'Default', 'ayecode-connect' ),
1747
+        'justify-content' . $device_size . '-start'   => 'justify-content-start',
1748
+        'justify-content' . $device_size . '-end'     => 'justify-content-end',
1749
+        'justify-content' . $device_size . '-center'  => 'justify-content-center',
1750
+        'justify-content' . $device_size . '-between' => 'justify-content-between',
1751
+        'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1752
+    );
1753
+
1754
+    $defaults = array(
1755
+        'type'            => 'select',
1756
+        'title'           => __( 'Justify content', 'ayecode-connect' ),
1757
+        'options'         => $options,
1758
+        'default'         => '',
1759
+        'desc_tip'        => true,
1760
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1761
+        'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1762
+
1763
+    );
1764
+
1765
+    $input = wp_parse_args( $overwrite, $defaults );
1766
+
1767
+    return $input;
1768 1768
 }
1769 1769
 
1770 1770
 function sd_get_flex_justify_content_input_group( $type = 'flex_justify_content', $overwrite = array() ) {
1771
-	$inputs = array();
1772
-	$sizes  = array(
1773
-		''    => 'Mobile',
1774
-		'_md' => 'Tablet',
1775
-		'_lg' => 'Desktop',
1776
-	);
1771
+    $inputs = array();
1772
+    $sizes  = array(
1773
+        ''    => 'Mobile',
1774
+        '_md' => 'Tablet',
1775
+        '_lg' => 'Desktop',
1776
+    );
1777 1777
 
1778
-	if ( $overwrite !== false ) {
1778
+    if ( $overwrite !== false ) {
1779 1779
 
1780
-		foreach ( $sizes as $ds => $dt ) {
1781
-			$overwrite['device_type'] = $dt;
1782
-			$inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1783
-		}
1784
-	}
1780
+        foreach ( $sizes as $ds => $dt ) {
1781
+            $overwrite['device_type'] = $dt;
1782
+            $inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1783
+        }
1784
+    }
1785 1785
 
1786
-	return $inputs;
1786
+    return $inputs;
1787 1787
 }
1788 1788
 
1789 1789
 
1790 1790
 function sd_get_flex_align_self_input( $type = 'flex_align_self', $overwrite = array() ) {
1791
-	$device_size = '';
1792
-	if ( ! empty( $overwrite['device_type'] ) ) {
1793
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1794
-			$device_size = '-md';
1795
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1796
-			$device_size = '-lg';
1797
-		}
1798
-	}
1799
-	$options = array(
1800
-		''                                         => __( 'Default', 'ayecode-connect' ),
1801
-		'align-items' . $device_size . '-start'    => 'align-items-start',
1802
-		'align-items' . $device_size . '-end'      => 'align-items-end',
1803
-		'align-items' . $device_size . '-center'   => 'align-items-center',
1804
-		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1805
-		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1806
-	);
1807
-
1808
-	$defaults = array(
1809
-		'type'            => 'select',
1810
-		'title'           => __( 'Align Self', 'ayecode-connect' ),
1811
-		'options'         => $options,
1812
-		'default'         => '',
1813
-		'desc_tip'        => true,
1814
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1815
-		'element_require' => ' [%container%]=="col" ',
1816
-
1817
-	);
1818
-
1819
-	$input = wp_parse_args( $overwrite, $defaults );
1820
-
1821
-	return $input;
1791
+    $device_size = '';
1792
+    if ( ! empty( $overwrite['device_type'] ) ) {
1793
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1794
+            $device_size = '-md';
1795
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1796
+            $device_size = '-lg';
1797
+        }
1798
+    }
1799
+    $options = array(
1800
+        ''                                         => __( 'Default', 'ayecode-connect' ),
1801
+        'align-items' . $device_size . '-start'    => 'align-items-start',
1802
+        'align-items' . $device_size . '-end'      => 'align-items-end',
1803
+        'align-items' . $device_size . '-center'   => 'align-items-center',
1804
+        'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1805
+        'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1806
+    );
1807
+
1808
+    $defaults = array(
1809
+        'type'            => 'select',
1810
+        'title'           => __( 'Align Self', 'ayecode-connect' ),
1811
+        'options'         => $options,
1812
+        'default'         => '',
1813
+        'desc_tip'        => true,
1814
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1815
+        'element_require' => ' [%container%]=="col" ',
1816
+
1817
+    );
1818
+
1819
+    $input = wp_parse_args( $overwrite, $defaults );
1820
+
1821
+    return $input;
1822 1822
 }
1823 1823
 
1824 1824
 function sd_get_flex_align_self_input_group( $type = 'flex_align_self', $overwrite = array() ) {
1825
-	$inputs = array();
1826
-	$sizes  = array(
1827
-		''    => 'Mobile',
1828
-		'_md' => 'Tablet',
1829
-		'_lg' => 'Desktop',
1830
-	);
1825
+    $inputs = array();
1826
+    $sizes  = array(
1827
+        ''    => 'Mobile',
1828
+        '_md' => 'Tablet',
1829
+        '_lg' => 'Desktop',
1830
+    );
1831 1831
 
1832
-	if ( $overwrite !== false ) {
1832
+    if ( $overwrite !== false ) {
1833 1833
 
1834
-		foreach ( $sizes as $ds => $dt ) {
1835
-			$overwrite['device_type'] = $dt;
1836
-			$inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1837
-		}
1838
-	}
1834
+        foreach ( $sizes as $ds => $dt ) {
1835
+            $overwrite['device_type'] = $dt;
1836
+            $inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1837
+        }
1838
+    }
1839 1839
 
1840
-	return $inputs;
1840
+    return $inputs;
1841 1841
 }
1842 1842
 
1843 1843
 function sd_get_flex_order_input( $type = 'flex_order', $overwrite = array() ) {
1844
-	$device_size = '';
1845
-	if ( ! empty( $overwrite['device_type'] ) ) {
1846
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1847
-			$device_size = '-md';
1848
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1849
-			$device_size = '-lg';
1850
-		}
1851
-	}
1852
-	$options = array(
1853
-		'' => __( 'Default', 'ayecode-connect' ),
1854
-	);
1855
-
1856
-	$i = 0;
1857
-	while ( $i <= 5 ) {
1858
-		$options[ 'order' . $device_size . '-' . $i ] = $i;
1859
-		$i++;
1860
-	}
1861
-
1862
-	$defaults = array(
1863
-		'type'            => 'select',
1864
-		'title'           => __( 'Flex Order', 'ayecode-connect' ),
1865
-		'options'         => $options,
1866
-		'default'         => '',
1867
-		'desc_tip'        => true,
1868
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1869
-		'element_require' => ' [%container%]=="col" ',
1870
-
1871
-	);
1872
-
1873
-	$input = wp_parse_args( $overwrite, $defaults );
1874
-
1875
-	return $input;
1844
+    $device_size = '';
1845
+    if ( ! empty( $overwrite['device_type'] ) ) {
1846
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1847
+            $device_size = '-md';
1848
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1849
+            $device_size = '-lg';
1850
+        }
1851
+    }
1852
+    $options = array(
1853
+        '' => __( 'Default', 'ayecode-connect' ),
1854
+    );
1855
+
1856
+    $i = 0;
1857
+    while ( $i <= 5 ) {
1858
+        $options[ 'order' . $device_size . '-' . $i ] = $i;
1859
+        $i++;
1860
+    }
1861
+
1862
+    $defaults = array(
1863
+        'type'            => 'select',
1864
+        'title'           => __( 'Flex Order', 'ayecode-connect' ),
1865
+        'options'         => $options,
1866
+        'default'         => '',
1867
+        'desc_tip'        => true,
1868
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1869
+        'element_require' => ' [%container%]=="col" ',
1870
+
1871
+    );
1872
+
1873
+    $input = wp_parse_args( $overwrite, $defaults );
1874
+
1875
+    return $input;
1876 1876
 }
1877 1877
 
1878 1878
 function sd_get_flex_order_input_group( $type = 'flex_order', $overwrite = array() ) {
1879
-	$inputs = array();
1880
-	$sizes  = array(
1881
-		''    => 'Mobile',
1882
-		'_md' => 'Tablet',
1883
-		'_lg' => 'Desktop',
1884
-	);
1879
+    $inputs = array();
1880
+    $sizes  = array(
1881
+        ''    => 'Mobile',
1882
+        '_md' => 'Tablet',
1883
+        '_lg' => 'Desktop',
1884
+    );
1885 1885
 
1886
-	if ( $overwrite !== false ) {
1886
+    if ( $overwrite !== false ) {
1887 1887
 
1888
-		foreach ( $sizes as $ds => $dt ) {
1889
-			$overwrite['device_type'] = $dt;
1890
-			$inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1891
-		}
1892
-	}
1888
+        foreach ( $sizes as $ds => $dt ) {
1889
+            $overwrite['device_type'] = $dt;
1890
+            $inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1891
+        }
1892
+    }
1893 1893
 
1894
-	return $inputs;
1894
+    return $inputs;
1895 1895
 }
1896 1896
 
1897 1897
 function sd_get_flex_wrap_group( $type = 'flex_wrap', $overwrite = array() ) {
1898
-	$inputs = array();
1899
-	$sizes  = array(
1900
-		''    => 'Mobile',
1901
-		'_md' => 'Tablet',
1902
-		'_lg' => 'Desktop',
1903
-	);
1898
+    $inputs = array();
1899
+    $sizes  = array(
1900
+        ''    => 'Mobile',
1901
+        '_md' => 'Tablet',
1902
+        '_lg' => 'Desktop',
1903
+    );
1904 1904
 
1905
-	if ( $overwrite !== false ) {
1905
+    if ( $overwrite !== false ) {
1906 1906
 
1907
-		foreach ( $sizes as $ds => $dt ) {
1908
-			$overwrite['device_type'] = $dt;
1909
-			$inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1910
-		}
1911
-	}
1907
+        foreach ( $sizes as $ds => $dt ) {
1908
+            $overwrite['device_type'] = $dt;
1909
+            $inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1910
+        }
1911
+    }
1912 1912
 
1913
-	return $inputs;
1913
+    return $inputs;
1914 1914
 }
1915 1915
 
1916 1916
 function sd_get_flex_wrap_input( $type = 'flex_wrap', $overwrite = array() ) {
1917
-	$device_size = '';
1918
-	if ( ! empty( $overwrite['device_type'] ) ) {
1919
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1920
-			$device_size = '-md';
1921
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1922
-			$device_size = '-lg';
1923
-		}
1924
-	}
1925
-	$options = array(
1926
-		''                                      => __( 'Default', 'ayecode-connect' ),
1927
-		'flex' . $device_size . '-nowrap'       => 'nowrap',
1928
-		'flex' . $device_size . '-wrap'         => 'wrap',
1929
-		'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1930
-	);
1931
-
1932
-	$defaults = array(
1933
-		'type'     => 'select',
1934
-		'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1935
-		'options'  => $options,
1936
-		'default'  => '',
1937
-		'desc_tip' => true,
1938
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1939
-	);
1940
-
1941
-	$input = wp_parse_args( $overwrite, $defaults );
1942
-
1943
-	return $input;
1917
+    $device_size = '';
1918
+    if ( ! empty( $overwrite['device_type'] ) ) {
1919
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1920
+            $device_size = '-md';
1921
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1922
+            $device_size = '-lg';
1923
+        }
1924
+    }
1925
+    $options = array(
1926
+        ''                                      => __( 'Default', 'ayecode-connect' ),
1927
+        'flex' . $device_size . '-nowrap'       => 'nowrap',
1928
+        'flex' . $device_size . '-wrap'         => 'wrap',
1929
+        'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1930
+    );
1931
+
1932
+    $defaults = array(
1933
+        'type'     => 'select',
1934
+        'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1935
+        'options'  => $options,
1936
+        'default'  => '',
1937
+        'desc_tip' => true,
1938
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1939
+    );
1940
+
1941
+    $input = wp_parse_args( $overwrite, $defaults );
1942
+
1943
+    return $input;
1944 1944
 }
1945 1945
 
1946 1946
 function sd_get_float_group( $type = 'float', $overwrite = array() ) {
1947
-	$inputs = array();
1948
-	$sizes  = array(
1949
-		''    => 'Mobile',
1950
-		'_md' => 'Tablet',
1951
-		'_lg' => 'Desktop',
1952
-	);
1947
+    $inputs = array();
1948
+    $sizes  = array(
1949
+        ''    => 'Mobile',
1950
+        '_md' => 'Tablet',
1951
+        '_lg' => 'Desktop',
1952
+    );
1953 1953
 
1954
-	if ( $overwrite !== false ) {
1954
+    if ( $overwrite !== false ) {
1955 1955
 
1956
-		foreach ( $sizes as $ds => $dt ) {
1957
-			$overwrite['device_type'] = $dt;
1958
-			$inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1959
-		}
1960
-	}
1956
+        foreach ( $sizes as $ds => $dt ) {
1957
+            $overwrite['device_type'] = $dt;
1958
+            $inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1959
+        }
1960
+    }
1961 1961
 
1962
-	return $inputs;
1962
+    return $inputs;
1963 1963
 }
1964 1964
 function sd_get_float_input( $type = 'float', $overwrite = array() ) {
1965
-	$device_size = '';
1966
-	if ( ! empty( $overwrite['device_type'] ) ) {
1967
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1968
-			$device_size = '-md';
1969
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1970
-			$device_size = '-lg';
1971
-		}
1972
-	}
1973
-	$options = array(
1974
-		''                                      => __( 'Default', 'ayecode-connect' ),
1975
-		'float' . $device_size . '-start'       => 'left',
1976
-		'float' . $device_size . '-end'         => 'right',
1977
-		'float' . $device_size . '-none' => 'none',
1978
-	);
1979
-
1980
-	$defaults = array(
1981
-		'type'     => 'select',
1982
-		'title'    => __( 'Float', 'ayecode-connect' ),
1983
-		'options'  => $options,
1984
-		'default'  => '',
1985
-		'desc_tip' => true,
1986
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1987
-	);
1988
-
1989
-	$input = wp_parse_args( $overwrite, $defaults );
1990
-
1991
-	return $input;
1965
+    $device_size = '';
1966
+    if ( ! empty( $overwrite['device_type'] ) ) {
1967
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1968
+            $device_size = '-md';
1969
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1970
+            $device_size = '-lg';
1971
+        }
1972
+    }
1973
+    $options = array(
1974
+        ''                                      => __( 'Default', 'ayecode-connect' ),
1975
+        'float' . $device_size . '-start'       => 'left',
1976
+        'float' . $device_size . '-end'         => 'right',
1977
+        'float' . $device_size . '-none' => 'none',
1978
+    );
1979
+
1980
+    $defaults = array(
1981
+        'type'     => 'select',
1982
+        'title'    => __( 'Float', 'ayecode-connect' ),
1983
+        'options'  => $options,
1984
+        'default'  => '',
1985
+        'desc_tip' => true,
1986
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1987
+    );
1988
+
1989
+    $input = wp_parse_args( $overwrite, $defaults );
1990
+
1991
+    return $input;
1992 1992
 }
1993 1993
 
1994 1994
 /**
@@ -1999,26 +1999,26 @@  discard block
 block discarded – undo
1999 1999
  */
2000 2000
 function sd_get_zindex_input( $type = 'zindex', $overwrite = array() ) {
2001 2001
 
2002
-	$options = array(
2003
-		''          => __( 'Default', 'ayecode-connect' ),
2004
-		'zindex-0'  => '0',
2005
-		'zindex-1'  => '1',
2006
-		'zindex-5'  => '5',
2007
-		'zindex-10' => '10',
2008
-	);
2002
+    $options = array(
2003
+        ''          => __( 'Default', 'ayecode-connect' ),
2004
+        'zindex-0'  => '0',
2005
+        'zindex-1'  => '1',
2006
+        'zindex-5'  => '5',
2007
+        'zindex-10' => '10',
2008
+    );
2009 2009
 
2010
-	$defaults = array(
2011
-		'type'     => 'select',
2012
-		'title'    => __( 'Z-index', 'ayecode-connect' ),
2013
-		'options'  => $options,
2014
-		'default'  => '',
2015
-		'desc_tip' => true,
2016
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2017
-	);
2010
+    $defaults = array(
2011
+        'type'     => 'select',
2012
+        'title'    => __( 'Z-index', 'ayecode-connect' ),
2013
+        'options'  => $options,
2014
+        'default'  => '',
2015
+        'desc_tip' => true,
2016
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2017
+    );
2018 2018
 
2019
-	$input = wp_parse_args( $overwrite, $defaults );
2019
+    $input = wp_parse_args( $overwrite, $defaults );
2020 2020
 
2021
-	return $input;
2021
+    return $input;
2022 2022
 }
2023 2023
 
2024 2024
 /**
@@ -2029,26 +2029,26 @@  discard block
 block discarded – undo
2029 2029
  */
2030 2030
 function sd_get_overflow_input( $type = 'overflow', $overwrite = array() ) {
2031 2031
 
2032
-	$options = array(
2033
-		''                 => __( 'Default', 'ayecode-connect' ),
2034
-		'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2035
-		'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2036
-		'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2037
-		'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2038
-	);
2032
+    $options = array(
2033
+        ''                 => __( 'Default', 'ayecode-connect' ),
2034
+        'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2035
+        'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2036
+        'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2037
+        'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2038
+    );
2039 2039
 
2040
-	$defaults = array(
2041
-		'type'     => 'select',
2042
-		'title'    => __( 'Overflow', 'ayecode-connect' ),
2043
-		'options'  => $options,
2044
-		'default'  => '',
2045
-		'desc_tip' => true,
2046
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2047
-	);
2040
+    $defaults = array(
2041
+        'type'     => 'select',
2042
+        'title'    => __( 'Overflow', 'ayecode-connect' ),
2043
+        'options'  => $options,
2044
+        'default'  => '',
2045
+        'desc_tip' => true,
2046
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2047
+    );
2048 2048
 
2049
-	$input = wp_parse_args( $overwrite, $defaults );
2049
+    $input = wp_parse_args( $overwrite, $defaults );
2050 2050
 
2051
-	return $input;
2051
+    return $input;
2052 2052
 }
2053 2053
 
2054 2054
 /**
@@ -2059,19 +2059,19 @@  discard block
 block discarded – undo
2059 2059
  */
2060 2060
 function sd_get_max_height_input( $type = 'max_height', $overwrite = array() ) {
2061 2061
 
2062
-	$defaults = array(
2063
-		'type'        => 'text',
2064
-		'title'       => __( 'Max height', 'ayecode-connect' ),
2065
-		'value'       => '',
2066
-		'default'     => '',
2067
-		'placeholder' => '',
2068
-		'desc_tip'    => true,
2069
-		'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2070
-	);
2062
+    $defaults = array(
2063
+        'type'        => 'text',
2064
+        'title'       => __( 'Max height', 'ayecode-connect' ),
2065
+        'value'       => '',
2066
+        'default'     => '',
2067
+        'placeholder' => '',
2068
+        'desc_tip'    => true,
2069
+        'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2070
+    );
2071 2071
 
2072
-	$input = wp_parse_args( $overwrite, $defaults );
2072
+    $input = wp_parse_args( $overwrite, $defaults );
2073 2073
 
2074
-	return $input;
2074
+    return $input;
2075 2075
 }
2076 2076
 
2077 2077
 /**
@@ -2082,23 +2082,23 @@  discard block
 block discarded – undo
2082 2082
  */
2083 2083
 function sd_get_scrollbars_input( $type = 'scrollbars', $overwrite = array() ) {
2084 2084
 
2085
-	$options = array(
2086
-		''               => __( 'Default', 'ayecode-connect' ),
2087
-		'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2088
-	);
2085
+    $options = array(
2086
+        ''               => __( 'Default', 'ayecode-connect' ),
2087
+        'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2088
+    );
2089 2089
 
2090
-	$defaults = array(
2091
-		'type'     => 'select',
2092
-		'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2093
-		'options'  => $options,
2094
-		'default'  => '',
2095
-		'desc_tip' => true,
2096
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2097
-	);
2090
+    $defaults = array(
2091
+        'type'     => 'select',
2092
+        'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2093
+        'options'  => $options,
2094
+        'default'  => '',
2095
+        'desc_tip' => true,
2096
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2097
+    );
2098 2098
 
2099
-	$input = wp_parse_args( $overwrite, $defaults );
2099
+    $input = wp_parse_args( $overwrite, $defaults );
2100 2100
 
2101
-	return $input;
2101
+    return $input;
2102 2102
 }
2103 2103
 
2104 2104
 /**
@@ -2109,17 +2109,17 @@  discard block
 block discarded – undo
2109 2109
  */
2110 2110
 function sd_get_new_window_input( $type = 'target', $overwrite = array() ) {
2111 2111
 
2112
-	$defaults = array(
2113
-		'type'     => 'checkbox',
2114
-		'title'    => __( 'Open in new window', 'ayecode-connect' ),
2115
-		'default'  => '',
2116
-		'desc_tip' => true,
2117
-		'group'    => __( 'Link', 'ayecode-connect' ),
2118
-	);
2112
+    $defaults = array(
2113
+        'type'     => 'checkbox',
2114
+        'title'    => __( 'Open in new window', 'ayecode-connect' ),
2115
+        'default'  => '',
2116
+        'desc_tip' => true,
2117
+        'group'    => __( 'Link', 'ayecode-connect' ),
2118
+    );
2119 2119
 
2120
-	$input = wp_parse_args( $overwrite, $defaults );
2120
+    $input = wp_parse_args( $overwrite, $defaults );
2121 2121
 
2122
-	return $input;
2122
+    return $input;
2123 2123
 }
2124 2124
 
2125 2125
 /**
@@ -2130,17 +2130,17 @@  discard block
 block discarded – undo
2130 2130
  */
2131 2131
 function sd_get_nofollow_input( $type = 'nofollow', $overwrite = array() ) {
2132 2132
 
2133
-	$defaults = array(
2134
-		'type'     => 'checkbox',
2135
-		'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2136
-		'default'  => '',
2137
-		'desc_tip' => true,
2138
-		'group'    => __( 'Link', 'ayecode-connect' ),
2139
-	);
2133
+    $defaults = array(
2134
+        'type'     => 'checkbox',
2135
+        'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2136
+        'default'  => '',
2137
+        'desc_tip' => true,
2138
+        'group'    => __( 'Link', 'ayecode-connect' ),
2139
+    );
2140 2140
 
2141
-	$input = wp_parse_args( $overwrite, $defaults );
2141
+    $input = wp_parse_args( $overwrite, $defaults );
2142 2142
 
2143
-	return $input;
2143
+    return $input;
2144 2144
 }
2145 2145
 
2146 2146
 /**
@@ -2153,35 +2153,35 @@  discard block
 block discarded – undo
2153 2153
  */
2154 2154
 function sd_get_width_input( $type = 'width', $overwrite = array() ) {
2155 2155
 
2156
-	$device_size = '';
2157
-	if ( ! empty( $overwrite['device_type'] ) ) {
2158
-		if ( $overwrite['device_type'] == 'Tablet' ) {
2159
-			$device_size = '-md';
2160
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2161
-			$device_size = '-lg';
2162
-		}
2163
-	}
2164
-	$options = array(
2165
-		'' => __('Default', 'ayecode-connect'),
2166
-		'w' . $device_size . '-25' => '25%',
2167
-		'w' . $device_size . '-50' => '50%',
2168
-		'w' . $device_size . '-75' => '75%',
2169
-		'w' . $device_size . '-100' => '100%',
2170
-		'w' . $device_size . '-auto' => 'auto',
2171
-	);
2172
-
2173
-	$defaults = array(
2174
-		'type'     => 'select',
2175
-		'title'    => __( 'Width', 'ayecode-connect' ),
2176
-		'options'  => $options,
2177
-		'default'  => '',
2178
-		'desc_tip' => true,
2179
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2180
-	);
2181
-
2182
-	$input = wp_parse_args( $overwrite, $defaults );
2183
-
2184
-	return $input;
2156
+    $device_size = '';
2157
+    if ( ! empty( $overwrite['device_type'] ) ) {
2158
+        if ( $overwrite['device_type'] == 'Tablet' ) {
2159
+            $device_size = '-md';
2160
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
2161
+            $device_size = '-lg';
2162
+        }
2163
+    }
2164
+    $options = array(
2165
+        '' => __('Default', 'ayecode-connect'),
2166
+        'w' . $device_size . '-25' => '25%',
2167
+        'w' . $device_size . '-50' => '50%',
2168
+        'w' . $device_size . '-75' => '75%',
2169
+        'w' . $device_size . '-100' => '100%',
2170
+        'w' . $device_size . '-auto' => 'auto',
2171
+    );
2172
+
2173
+    $defaults = array(
2174
+        'type'     => 'select',
2175
+        'title'    => __( 'Width', 'ayecode-connect' ),
2176
+        'options'  => $options,
2177
+        'default'  => '',
2178
+        'desc_tip' => true,
2179
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2180
+    );
2181
+
2182
+    $input = wp_parse_args( $overwrite, $defaults );
2183
+
2184
+    return $input;
2185 2185
 }
2186 2186
 
2187 2187
 /**
@@ -2194,35 +2194,35 @@  discard block
 block discarded – undo
2194 2194
  */
2195 2195
 function sd_get_height_input( $type = 'height', $overwrite = array() ) {
2196 2196
 
2197
-	$device_size = '';
2198
-	if ( ! empty( $overwrite['device_type'] ) ) {
2199
-		if ( $overwrite['device_type'] == 'Tablet' ) {
2200
-			$device_size = '-md';
2201
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2202
-			$device_size = '-lg';
2203
-		}
2204
-	}
2205
-	$options = array(
2206
-		'' => __('Default', 'ayecode-connect'),
2207
-		'h' . $device_size . '-25' => '25%',
2208
-		'h' . $device_size . '-50' => '50%',
2209
-		'h' . $device_size . '-75' => '75%',
2210
-		'h' . $device_size . '-100' => '100%',
2211
-		'h' . $device_size . '-auto' => 'auto',
2212
-	);
2213
-
2214
-	$defaults = array(
2215
-		'type'     => 'select',
2216
-		'title'    => __( 'Height', 'ayecode-connect' ),
2217
-		'options'  => $options,
2218
-		'default'  => '',
2219
-		'desc_tip' => true,
2220
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2221
-	);
2222
-
2223
-	$input = wp_parse_args( $overwrite, $defaults );
2224
-
2225
-	return $input;
2197
+    $device_size = '';
2198
+    if ( ! empty( $overwrite['device_type'] ) ) {
2199
+        if ( $overwrite['device_type'] == 'Tablet' ) {
2200
+            $device_size = '-md';
2201
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
2202
+            $device_size = '-lg';
2203
+        }
2204
+    }
2205
+    $options = array(
2206
+        '' => __('Default', 'ayecode-connect'),
2207
+        'h' . $device_size . '-25' => '25%',
2208
+        'h' . $device_size . '-50' => '50%',
2209
+        'h' . $device_size . '-75' => '75%',
2210
+        'h' . $device_size . '-100' => '100%',
2211
+        'h' . $device_size . '-auto' => 'auto',
2212
+    );
2213
+
2214
+    $defaults = array(
2215
+        'type'     => 'select',
2216
+        'title'    => __( 'Height', 'ayecode-connect' ),
2217
+        'options'  => $options,
2218
+        'default'  => '',
2219
+        'desc_tip' => true,
2220
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2221
+    );
2222
+
2223
+    $input = wp_parse_args( $overwrite, $defaults );
2224
+
2225
+    return $input;
2226 2226
 }
2227 2227
 
2228 2228
 /**
@@ -2233,19 +2233,19 @@  discard block
 block discarded – undo
2233 2233
  */
2234 2234
 function sd_get_attributes_input( $type = 'attributes', $overwrite = array() ) {
2235 2235
 
2236
-	$defaults = array(
2237
-		'type'        => 'text',
2238
-		'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2239
-		'value'       => '',
2240
-		'default'     => '',
2241
-		'placeholder' => 'key|value,key2|value2',
2242
-		'desc_tip'    => true,
2243
-		'group'       => __( 'Link', 'ayecode-connect' ),
2244
-	);
2236
+    $defaults = array(
2237
+        'type'        => 'text',
2238
+        'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2239
+        'value'       => '',
2240
+        'default'     => '',
2241
+        'placeholder' => 'key|value,key2|value2',
2242
+        'desc_tip'    => true,
2243
+        'group'       => __( 'Link', 'ayecode-connect' ),
2244
+    );
2245 2245
 
2246
-	$input = wp_parse_args( $overwrite, $defaults );
2246
+    $input = wp_parse_args( $overwrite, $defaults );
2247 2247
 
2248
-	return $input;
2248
+    return $input;
2249 2249
 }
2250 2250
 
2251 2251
 /**
@@ -2254,32 +2254,32 @@  discard block
 block discarded – undo
2254 2254
  * @return string
2255 2255
  */
2256 2256
 function sd_build_attributes_string_escaped( $args ) {
2257
-	global $aui_bs5;
2257
+    global $aui_bs5;
2258 2258
 
2259
-	$attributes = array();
2260
-	$string_escaped = '';
2259
+    $attributes = array();
2260
+    $string_escaped = '';
2261 2261
 
2262
-	if ( ! empty( $args['custom'] ) ) {
2263
-		$attributes = sd_parse_custom_attributes($args['custom']);
2264
-	}
2262
+    if ( ! empty( $args['custom'] ) ) {
2263
+        $attributes = sd_parse_custom_attributes($args['custom']);
2264
+    }
2265 2265
 
2266
-	// new window
2267
-	if ( ! empty( $args['new_window'] ) ) {
2268
-		$attributes['target'] = '_blank';
2269
-	}
2266
+    // new window
2267
+    if ( ! empty( $args['new_window'] ) ) {
2268
+        $attributes['target'] = '_blank';
2269
+    }
2270 2270
 
2271
-	// nofollow
2272
-	if ( ! empty( $args['nofollow'] ) ) {
2273
-		$attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2274
-	}
2271
+    // nofollow
2272
+    if ( ! empty( $args['nofollow'] ) ) {
2273
+        $attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2274
+    }
2275 2275
 
2276
-	if(!empty($attributes )){
2277
-		foreach ( $attributes as $key => $val ) {
2278
-			$string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2279
-		}
2280
-	}
2276
+    if(!empty($attributes )){
2277
+        foreach ( $attributes as $key => $val ) {
2278
+            $string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2279
+        }
2280
+    }
2281 2281
 
2282
-	return $string_escaped;
2282
+    return $string_escaped;
2283 2283
 }
2284 2284
 
2285 2285
 /**
@@ -2291,38 +2291,38 @@  discard block
 block discarded – undo
2291 2291
  * @return array
2292 2292
  */
2293 2293
 function sd_parse_custom_attributes( $attributes_string, $delimiter = ',' ) {
2294
-	$attributes = explode( $delimiter, $attributes_string );
2295
-	$result = [];
2294
+    $attributes = explode( $delimiter, $attributes_string );
2295
+    $result = [];
2296 2296
 
2297
-	foreach ( $attributes as $attribute ) {
2298
-		$attr_key_value = explode( '|', $attribute );
2297
+    foreach ( $attributes as $attribute ) {
2298
+        $attr_key_value = explode( '|', $attribute );
2299 2299
 
2300
-		$attr_key = mb_strtolower( $attr_key_value[0] );
2300
+        $attr_key = mb_strtolower( $attr_key_value[0] );
2301 2301
 
2302
-		// Remove any not allowed characters.
2303
-		preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2302
+        // Remove any not allowed characters.
2303
+        preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2304 2304
 
2305
-		if ( empty( $attr_key_matches[0] ) ) {
2306
-			continue;
2307
-		}
2305
+        if ( empty( $attr_key_matches[0] ) ) {
2306
+            continue;
2307
+        }
2308 2308
 
2309
-		$attr_key = $attr_key_matches[0];
2309
+        $attr_key = $attr_key_matches[0];
2310 2310
 
2311
-		// Avoid Javascript events and unescaped href.
2312
-		if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2313
-			continue;
2314
-		}
2311
+        // Avoid Javascript events and unescaped href.
2312
+        if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2313
+            continue;
2314
+        }
2315 2315
 
2316
-		if ( isset( $attr_key_value[1] ) ) {
2317
-			$attr_value = trim( $attr_key_value[1] );
2318
-		} else {
2319
-			$attr_value = '';
2320
-		}
2316
+        if ( isset( $attr_key_value[1] ) ) {
2317
+            $attr_value = trim( $attr_key_value[1] );
2318
+        } else {
2319
+            $attr_value = '';
2320
+        }
2321 2321
 
2322
-		$result[ $attr_key ] = $attr_value;
2323
-	}
2322
+        $result[ $attr_key ] = $attr_value;
2323
+    }
2324 2324
 
2325
-	return $result;
2325
+    return $result;
2326 2326
 }
2327 2327
 
2328 2328
 /**
@@ -2334,424 +2334,424 @@  discard block
 block discarded – undo
2334 2334
  * @todo find best way to use px- py- or general p-
2335 2335
  */
2336 2336
 function sd_build_aui_class( $args ) {
2337
-	global $aui_bs5;
2338
-
2339
-	$classes = array();
2340
-
2341
-	if ( $aui_bs5 ) {
2342
-		$p_ml = 'ms-';
2343
-		$p_mr = 'me-';
2344
-
2345
-		$p_pl = 'ps-';
2346
-		$p_pr = 'pe-';
2347
-	} else {
2348
-		$p_ml = 'ml-';
2349
-		$p_mr = 'mr-';
2350
-
2351
-		$p_pl = 'pl-';
2352
-		$p_pr = 'pr-';
2353
-	}
2354
-
2355
-	// margins.
2356
-	if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2357
-		$classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2358
-		$mt        = $args['mt'];
2359
-	} else {
2360
-		$mt = null;
2361
-	}
2362
-	if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2363
-		$classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2364
-		$mr        = $args['mr'];
2365
-	} else {
2366
-		$mr = null;
2367
-	}
2368
-	if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2369
-		$classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2370
-		$mb        = $args['mb'];
2371
-	} else {
2372
-		$mb = null;
2373
-	}
2374
-	if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2375
-		$classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2376
-		$ml        = $args['ml'];
2377
-	} else {
2378
-		$ml = null;
2379
-	}
2380
-
2381
-	// margins tablet.
2382
-	if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2383
-		$classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2384
-		$mt_md     = $args['mt_md'];
2385
-	} else {
2386
-		$mt_md = null;
2387
-	}
2388
-	if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2389
-		$classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2390
-		$mr_md     = $args['mr_md'];
2391
-	} else {
2392
-		$mr_md = null;
2393
-	}
2394
-	if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2395
-		$classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2396
-		$mb_md     = $args['mb_md'];
2397
-	} else {
2398
-		$mb_md = null;
2399
-	}
2400
-	if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2401
-		$classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2402
-		$ml_md     = $args['ml_md'];
2403
-	} else {
2404
-		$ml_md = null;
2405
-	}
2406
-
2407
-	// margins desktop.
2408
-	if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2409
-		if ( $mt == null && $mt_md == null ) {
2410
-			$classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2411
-		} else {
2412
-			$classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2413
-		}
2414
-	}
2415
-	if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2416
-		if ( $mr == null && $mr_md == null ) {
2417
-			$classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2418
-		} else {
2419
-			$classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2420
-		}
2421
-	}
2422
-	if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2423
-		if ( $mb == null && $mb_md == null ) {
2424
-			$classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2425
-		} else {
2426
-			$classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2427
-		}
2428
-	}
2429
-	if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2430
-		if ( $ml == null && $ml_md == null ) {
2431
-			$classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2432
-		} else {
2433
-			$classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2434
-		}
2435
-	}
2436
-
2437
-	// padding.
2438
-	if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2439
-		$classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2440
-		$pt        = $args['pt'];
2441
-	} else {
2442
-		$pt = null;
2443
-	}
2444
-	if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2445
-		$classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2446
-		$pr        = $args['pr'];
2447
-	} else {
2448
-		$pr = null;
2449
-	}
2450
-	if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2451
-		$classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2452
-		$pb        = $args['pb'];
2453
-	} else {
2454
-		$pb = null;
2455
-	}
2456
-	if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2457
-		$classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2458
-		$pl        = $args['pl'];
2459
-	} else {
2460
-		$pl = null;
2461
-	}
2462
-
2463
-	// padding tablet.
2464
-	if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2465
-		$classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2466
-		$pt_md     = $args['pt_md'];
2467
-	} else {
2468
-		$pt_md = null;
2469
-	}
2470
-	if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2471
-		$classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2472
-		$pr_md     = $args['pr_md'];
2473
-	} else {
2474
-		$pr_md = null;
2475
-	}
2476
-	if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2477
-		$classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2478
-		$pb_md     = $args['pb_md'];
2479
-	} else {
2480
-		$pb_md = null;
2481
-	}
2482
-	if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2483
-		$classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2484
-		$pl_md     = $args['pl_md'];
2485
-	} else {
2486
-		$pl_md = null;
2487
-	}
2488
-
2489
-	// padding desktop.
2490
-	if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2491
-		if ( $pt == null && $pt_md == null ) {
2492
-			$classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2493
-		} else {
2494
-			$classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2495
-		}
2496
-	}
2497
-	if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2498
-		if ( $pr == null && $pr_md == null ) {
2499
-			$classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2500
-		} else {
2501
-			$classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2502
-		}
2503
-	}
2504
-	if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2505
-		if ( $pb == null && $pb_md == null ) {
2506
-			$classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2507
-		} else {
2508
-			$classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2509
-		}
2510
-	}
2511
-	if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2512
-		if ( $pl == null && $pl_md == null ) {
2513
-			$classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2514
-		} else {
2515
-			$classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2516
-		}
2517
-	}
2518
-
2519
-	// row cols, mobile, tablet, desktop
2520
-	if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2521
-		$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2522
-		$row_cols  = $args['row_cols'];
2523
-	} else {
2524
-		$row_cols = null;
2525
-	}
2526
-	if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2527
-		$classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2528
-		$row_cols_md = $args['row_cols_md'];
2529
-	} else {
2530
-		$row_cols_md = null;
2531
-	}
2532
-	if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2533
-		if ( $row_cols == null && $row_cols_md == null ) {
2534
-			$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2535
-		} else {
2536
-			$classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2537
-		}
2538
-	}
2539
-
2540
-	// columns , mobile, tablet, desktop
2541
-	if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2542
-		$classes[] = sanitize_html_class( 'col-' . $args['col'] );
2543
-		$col       = $args['col'];
2544
-	} else {
2545
-		$col = null;
2546
-	}
2547
-	if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2548
-		$classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2549
-		$col_md    = $args['col_md'];
2550
-	} else {
2551
-		$col_md = null;
2552
-	}
2553
-	if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2554
-		if ( $col == null && $col_md == null ) {
2555
-			$classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2556
-		} else {
2557
-			$classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2558
-		}
2559
-	}
2560
-
2561
-	// border
2562
-	if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2563
-		$classes[] = 'border-0';
2564
-	} elseif ( ! empty( $args['border'] ) ) {
2565
-		$border_class = 'border';
2566
-		if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2567
-			$border_class = '';
2568
-		}
2569
-		$classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2570
-	}
2571
-
2572
-	// border radius type
2573
-	if ( ! empty( $args['rounded'] ) ) {
2574
-		$classes[] = sanitize_html_class( $args['rounded'] );
2575
-	}
2576
-
2577
-	// border radius size BS4
2578
-	if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2579
-		$classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2580
-		// if we set a size then we need to remove "rounded" if set
2581
-		if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2582
-			unset( $classes[ $key ] );
2583
-		}
2584
-	} else {
2585
-
2586
-		// border radius size , mobile, tablet, desktop
2587
-		if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2588
-			$classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2589
-			$rounded_size = $args['rounded_size'];
2590
-		} else {
2591
-			$rounded_size = null;
2592
-		}
2593
-		if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2594
-			$classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2595
-			$rounded_size_md = $args['rounded_size_md'];
2596
-		} else {
2597
-			$rounded_size_md = null;
2598
-		}
2599
-		if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2600
-			if ( $rounded_size == null && $rounded_size_md == null ) {
2601
-				$classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2602
-			} else {
2603
-				$classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2604
-			}
2605
-		}
2606
-	}
2607
-
2608
-	// shadow
2609
-	//if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2610
-
2611
-	// background
2612
-	if ( ! empty( $args['bg'] ) ) {
2613
-		$classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2614
-	}
2615
-
2616
-	// background image fixed bg_image_fixed this helps fix a iOS bug
2617
-	if ( ! empty( $args['bg_image_fixed'] ) ) {
2618
-		$classes[] = 'bg-image-fixed';
2619
-	}
2620
-
2621
-	// text_color
2622
-	if ( ! empty( $args['text_color'] ) ) {
2623
-		$classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2624
-	}
2625
-
2626
-	// text_align
2627
-	if ( ! empty( $args['text_justify'] ) ) {
2628
-		$classes[] = 'text-justify';
2629
-	} else {
2630
-		if ( ! empty( $args['text_align'] ) ) {
2631
-			$classes[]  = sanitize_html_class( $args['text_align'] );
2632
-			$text_align = $args['text_align'];
2633
-		} else {
2634
-			$text_align = null;
2635
-		}
2636
-		if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2637
-			$classes[]     = sanitize_html_class( $args['text_align_md'] );
2638
-			$text_align_md = $args['text_align_md'];
2639
-		} else {
2640
-			$text_align_md = null;
2641
-		}
2642
-		if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2643
-			if ( $text_align == null && $text_align_md == null ) {
2644
-				$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2645
-			} else {
2646
-				$classes[] = sanitize_html_class( $args['text_align_lg'] );
2647
-			}
2648
-		}
2649
-	}
2650
-
2651
-	// display
2652
-	if ( ! empty( $args['display'] ) ) {
2653
-		$classes[] = sanitize_html_class( $args['display'] );
2654
-		$display   = $args['display'];
2655
-	} else {
2656
-		$display = null;
2657
-	}
2658
-	if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2659
-		$classes[]  = sanitize_html_class( $args['display_md'] );
2660
-		$display_md = $args['display_md'];
2661
-	} else {
2662
-		$display_md = null;
2663
-	}
2664
-	if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2665
-		if ( $display == null && $display_md == null ) {
2666
-			$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2667
-		} else {
2668
-			$classes[] = sanitize_html_class( $args['display_lg'] );
2669
-		}
2670
-	}
2671
-
2672
-	// bgtus - background transparent until scroll
2673
-	if ( ! empty( $args['bgtus'] ) ) {
2674
-		$classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2675
-	}
2676
-
2677
-	// cscos - change color scheme on scroll
2678
-	if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2679
-		$classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2680
-	}
2681
-
2682
-	// hover animations
2683
-	if ( ! empty( $args['hover_animations'] ) ) {
2684
-		$classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2685
-	}
2686
-
2687
-	// absolute_position
2688
-	if ( ! empty( $args['absolute_position'] ) ) {
2689
-		if ( 'top-left' === $args['absolute_position'] ) {
2690
-			$classes[] = 'start-0 top-0';
2691
-		} elseif ( 'top-center' === $args['absolute_position'] ) {
2692
-			$classes[] = 'start-50 top-0 translate-middle';
2693
-		} elseif ( 'top-right' === $args['absolute_position'] ) {
2694
-			$classes[] = 'end-0 top-0';
2695
-		} elseif ( 'center-left' === $args['absolute_position'] ) {
2696
-			$classes[] = 'start-0 top-50';
2697
-		} elseif ( 'center' === $args['absolute_position'] ) {
2698
-			$classes[] = 'start-50 top-50 translate-middle';
2699
-		} elseif ( 'center-right' === $args['absolute_position'] ) {
2700
-			$classes[] = 'end-0 top-50';
2701
-		} elseif ( 'bottom-left' === $args['absolute_position'] ) {
2702
-			$classes[] = 'start-0 bottom-0';
2703
-		} elseif ( 'bottom-center' === $args['absolute_position'] ) {
2704
-			$classes[] = 'start-50 bottom-0 translate-middle';
2705
-		} elseif ( 'bottom-right' === $args['absolute_position'] ) {
2706
-			$classes[] = 'end-0 bottom-0';
2707
-		}
2708
-	}
2709
-
2710
-	// build classes from build keys
2711
-	$build_keys = sd_get_class_build_keys();
2712
-	if ( ! empty( $build_keys ) ) {
2713
-		foreach ( $build_keys as $key ) {
2714
-
2715
-			if ( substr( $key, -4 ) == '-MTD' ) {
2716
-
2717
-				$k = str_replace( '-MTD', '', $key );
2718
-
2719
-				// Mobile, Tablet, Desktop
2720
-				if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2721
-					$classes[] = sanitize_html_class( $args[ $k ] );
2722
-					$v         = $args[ $k ];
2723
-				} else {
2724
-					$v = null;
2725
-				}
2726
-				if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2727
-					$classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2728
-					$v_md      = $args[ $k . '_md' ];
2729
-				} else {
2730
-					$v_md = null;
2731
-				}
2732
-				if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2733
-					if ( $v == null && $v_md == null ) {
2734
-						$classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2735
-					} else {
2736
-						$classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2737
-					}
2738
-				}
2739
-			} else {
2740
-				if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2741
-					continue;
2742
-				}
2743
-				if ( ! empty( $args[ $key ] ) ) {
2744
-					$classes[] = sd_sanitize_html_classes( $args[ $key ] );
2745
-				}
2746
-			}
2747
-		}
2748
-	}
2749
-
2750
-	if ( ! empty( $classes ) ) {
2751
-		$classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2752
-	}
2753
-
2754
-	return implode( ' ', $classes );
2337
+    global $aui_bs5;
2338
+
2339
+    $classes = array();
2340
+
2341
+    if ( $aui_bs5 ) {
2342
+        $p_ml = 'ms-';
2343
+        $p_mr = 'me-';
2344
+
2345
+        $p_pl = 'ps-';
2346
+        $p_pr = 'pe-';
2347
+    } else {
2348
+        $p_ml = 'ml-';
2349
+        $p_mr = 'mr-';
2350
+
2351
+        $p_pl = 'pl-';
2352
+        $p_pr = 'pr-';
2353
+    }
2354
+
2355
+    // margins.
2356
+    if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2357
+        $classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2358
+        $mt        = $args['mt'];
2359
+    } else {
2360
+        $mt = null;
2361
+    }
2362
+    if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2363
+        $classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2364
+        $mr        = $args['mr'];
2365
+    } else {
2366
+        $mr = null;
2367
+    }
2368
+    if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2369
+        $classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2370
+        $mb        = $args['mb'];
2371
+    } else {
2372
+        $mb = null;
2373
+    }
2374
+    if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2375
+        $classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2376
+        $ml        = $args['ml'];
2377
+    } else {
2378
+        $ml = null;
2379
+    }
2380
+
2381
+    // margins tablet.
2382
+    if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2383
+        $classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2384
+        $mt_md     = $args['mt_md'];
2385
+    } else {
2386
+        $mt_md = null;
2387
+    }
2388
+    if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2389
+        $classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2390
+        $mr_md     = $args['mr_md'];
2391
+    } else {
2392
+        $mr_md = null;
2393
+    }
2394
+    if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2395
+        $classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2396
+        $mb_md     = $args['mb_md'];
2397
+    } else {
2398
+        $mb_md = null;
2399
+    }
2400
+    if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2401
+        $classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2402
+        $ml_md     = $args['ml_md'];
2403
+    } else {
2404
+        $ml_md = null;
2405
+    }
2406
+
2407
+    // margins desktop.
2408
+    if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2409
+        if ( $mt == null && $mt_md == null ) {
2410
+            $classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2411
+        } else {
2412
+            $classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2413
+        }
2414
+    }
2415
+    if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2416
+        if ( $mr == null && $mr_md == null ) {
2417
+            $classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2418
+        } else {
2419
+            $classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2420
+        }
2421
+    }
2422
+    if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2423
+        if ( $mb == null && $mb_md == null ) {
2424
+            $classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2425
+        } else {
2426
+            $classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2427
+        }
2428
+    }
2429
+    if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2430
+        if ( $ml == null && $ml_md == null ) {
2431
+            $classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2432
+        } else {
2433
+            $classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2434
+        }
2435
+    }
2436
+
2437
+    // padding.
2438
+    if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2439
+        $classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2440
+        $pt        = $args['pt'];
2441
+    } else {
2442
+        $pt = null;
2443
+    }
2444
+    if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2445
+        $classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2446
+        $pr        = $args['pr'];
2447
+    } else {
2448
+        $pr = null;
2449
+    }
2450
+    if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2451
+        $classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2452
+        $pb        = $args['pb'];
2453
+    } else {
2454
+        $pb = null;
2455
+    }
2456
+    if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2457
+        $classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2458
+        $pl        = $args['pl'];
2459
+    } else {
2460
+        $pl = null;
2461
+    }
2462
+
2463
+    // padding tablet.
2464
+    if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2465
+        $classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2466
+        $pt_md     = $args['pt_md'];
2467
+    } else {
2468
+        $pt_md = null;
2469
+    }
2470
+    if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2471
+        $classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2472
+        $pr_md     = $args['pr_md'];
2473
+    } else {
2474
+        $pr_md = null;
2475
+    }
2476
+    if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2477
+        $classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2478
+        $pb_md     = $args['pb_md'];
2479
+    } else {
2480
+        $pb_md = null;
2481
+    }
2482
+    if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2483
+        $classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2484
+        $pl_md     = $args['pl_md'];
2485
+    } else {
2486
+        $pl_md = null;
2487
+    }
2488
+
2489
+    // padding desktop.
2490
+    if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2491
+        if ( $pt == null && $pt_md == null ) {
2492
+            $classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2493
+        } else {
2494
+            $classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2495
+        }
2496
+    }
2497
+    if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2498
+        if ( $pr == null && $pr_md == null ) {
2499
+            $classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2500
+        } else {
2501
+            $classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2502
+        }
2503
+    }
2504
+    if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2505
+        if ( $pb == null && $pb_md == null ) {
2506
+            $classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2507
+        } else {
2508
+            $classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2509
+        }
2510
+    }
2511
+    if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2512
+        if ( $pl == null && $pl_md == null ) {
2513
+            $classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2514
+        } else {
2515
+            $classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2516
+        }
2517
+    }
2518
+
2519
+    // row cols, mobile, tablet, desktop
2520
+    if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2521
+        $classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2522
+        $row_cols  = $args['row_cols'];
2523
+    } else {
2524
+        $row_cols = null;
2525
+    }
2526
+    if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2527
+        $classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2528
+        $row_cols_md = $args['row_cols_md'];
2529
+    } else {
2530
+        $row_cols_md = null;
2531
+    }
2532
+    if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2533
+        if ( $row_cols == null && $row_cols_md == null ) {
2534
+            $classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2535
+        } else {
2536
+            $classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2537
+        }
2538
+    }
2539
+
2540
+    // columns , mobile, tablet, desktop
2541
+    if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2542
+        $classes[] = sanitize_html_class( 'col-' . $args['col'] );
2543
+        $col       = $args['col'];
2544
+    } else {
2545
+        $col = null;
2546
+    }
2547
+    if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2548
+        $classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2549
+        $col_md    = $args['col_md'];
2550
+    } else {
2551
+        $col_md = null;
2552
+    }
2553
+    if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2554
+        if ( $col == null && $col_md == null ) {
2555
+            $classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2556
+        } else {
2557
+            $classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2558
+        }
2559
+    }
2560
+
2561
+    // border
2562
+    if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2563
+        $classes[] = 'border-0';
2564
+    } elseif ( ! empty( $args['border'] ) ) {
2565
+        $border_class = 'border';
2566
+        if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2567
+            $border_class = '';
2568
+        }
2569
+        $classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2570
+    }
2571
+
2572
+    // border radius type
2573
+    if ( ! empty( $args['rounded'] ) ) {
2574
+        $classes[] = sanitize_html_class( $args['rounded'] );
2575
+    }
2576
+
2577
+    // border radius size BS4
2578
+    if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2579
+        $classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2580
+        // if we set a size then we need to remove "rounded" if set
2581
+        if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2582
+            unset( $classes[ $key ] );
2583
+        }
2584
+    } else {
2585
+
2586
+        // border radius size , mobile, tablet, desktop
2587
+        if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2588
+            $classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2589
+            $rounded_size = $args['rounded_size'];
2590
+        } else {
2591
+            $rounded_size = null;
2592
+        }
2593
+        if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2594
+            $classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2595
+            $rounded_size_md = $args['rounded_size_md'];
2596
+        } else {
2597
+            $rounded_size_md = null;
2598
+        }
2599
+        if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2600
+            if ( $rounded_size == null && $rounded_size_md == null ) {
2601
+                $classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2602
+            } else {
2603
+                $classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2604
+            }
2605
+        }
2606
+    }
2607
+
2608
+    // shadow
2609
+    //if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2610
+
2611
+    // background
2612
+    if ( ! empty( $args['bg'] ) ) {
2613
+        $classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2614
+    }
2615
+
2616
+    // background image fixed bg_image_fixed this helps fix a iOS bug
2617
+    if ( ! empty( $args['bg_image_fixed'] ) ) {
2618
+        $classes[] = 'bg-image-fixed';
2619
+    }
2620
+
2621
+    // text_color
2622
+    if ( ! empty( $args['text_color'] ) ) {
2623
+        $classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2624
+    }
2625
+
2626
+    // text_align
2627
+    if ( ! empty( $args['text_justify'] ) ) {
2628
+        $classes[] = 'text-justify';
2629
+    } else {
2630
+        if ( ! empty( $args['text_align'] ) ) {
2631
+            $classes[]  = sanitize_html_class( $args['text_align'] );
2632
+            $text_align = $args['text_align'];
2633
+        } else {
2634
+            $text_align = null;
2635
+        }
2636
+        if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2637
+            $classes[]     = sanitize_html_class( $args['text_align_md'] );
2638
+            $text_align_md = $args['text_align_md'];
2639
+        } else {
2640
+            $text_align_md = null;
2641
+        }
2642
+        if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2643
+            if ( $text_align == null && $text_align_md == null ) {
2644
+                $classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2645
+            } else {
2646
+                $classes[] = sanitize_html_class( $args['text_align_lg'] );
2647
+            }
2648
+        }
2649
+    }
2650
+
2651
+    // display
2652
+    if ( ! empty( $args['display'] ) ) {
2653
+        $classes[] = sanitize_html_class( $args['display'] );
2654
+        $display   = $args['display'];
2655
+    } else {
2656
+        $display = null;
2657
+    }
2658
+    if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2659
+        $classes[]  = sanitize_html_class( $args['display_md'] );
2660
+        $display_md = $args['display_md'];
2661
+    } else {
2662
+        $display_md = null;
2663
+    }
2664
+    if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2665
+        if ( $display == null && $display_md == null ) {
2666
+            $classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2667
+        } else {
2668
+            $classes[] = sanitize_html_class( $args['display_lg'] );
2669
+        }
2670
+    }
2671
+
2672
+    // bgtus - background transparent until scroll
2673
+    if ( ! empty( $args['bgtus'] ) ) {
2674
+        $classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2675
+    }
2676
+
2677
+    // cscos - change color scheme on scroll
2678
+    if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2679
+        $classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2680
+    }
2681
+
2682
+    // hover animations
2683
+    if ( ! empty( $args['hover_animations'] ) ) {
2684
+        $classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2685
+    }
2686
+
2687
+    // absolute_position
2688
+    if ( ! empty( $args['absolute_position'] ) ) {
2689
+        if ( 'top-left' === $args['absolute_position'] ) {
2690
+            $classes[] = 'start-0 top-0';
2691
+        } elseif ( 'top-center' === $args['absolute_position'] ) {
2692
+            $classes[] = 'start-50 top-0 translate-middle';
2693
+        } elseif ( 'top-right' === $args['absolute_position'] ) {
2694
+            $classes[] = 'end-0 top-0';
2695
+        } elseif ( 'center-left' === $args['absolute_position'] ) {
2696
+            $classes[] = 'start-0 top-50';
2697
+        } elseif ( 'center' === $args['absolute_position'] ) {
2698
+            $classes[] = 'start-50 top-50 translate-middle';
2699
+        } elseif ( 'center-right' === $args['absolute_position'] ) {
2700
+            $classes[] = 'end-0 top-50';
2701
+        } elseif ( 'bottom-left' === $args['absolute_position'] ) {
2702
+            $classes[] = 'start-0 bottom-0';
2703
+        } elseif ( 'bottom-center' === $args['absolute_position'] ) {
2704
+            $classes[] = 'start-50 bottom-0 translate-middle';
2705
+        } elseif ( 'bottom-right' === $args['absolute_position'] ) {
2706
+            $classes[] = 'end-0 bottom-0';
2707
+        }
2708
+    }
2709
+
2710
+    // build classes from build keys
2711
+    $build_keys = sd_get_class_build_keys();
2712
+    if ( ! empty( $build_keys ) ) {
2713
+        foreach ( $build_keys as $key ) {
2714
+
2715
+            if ( substr( $key, -4 ) == '-MTD' ) {
2716
+
2717
+                $k = str_replace( '-MTD', '', $key );
2718
+
2719
+                // Mobile, Tablet, Desktop
2720
+                if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2721
+                    $classes[] = sanitize_html_class( $args[ $k ] );
2722
+                    $v         = $args[ $k ];
2723
+                } else {
2724
+                    $v = null;
2725
+                }
2726
+                if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2727
+                    $classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2728
+                    $v_md      = $args[ $k . '_md' ];
2729
+                } else {
2730
+                    $v_md = null;
2731
+                }
2732
+                if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2733
+                    if ( $v == null && $v_md == null ) {
2734
+                        $classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2735
+                    } else {
2736
+                        $classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2737
+                    }
2738
+                }
2739
+            } else {
2740
+                if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2741
+                    continue;
2742
+                }
2743
+                if ( ! empty( $args[ $key ] ) ) {
2744
+                    $classes[] = sd_sanitize_html_classes( $args[ $key ] );
2745
+                }
2746
+            }
2747
+        }
2748
+    }
2749
+
2750
+    if ( ! empty( $classes ) ) {
2751
+        $classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2752
+    }
2753
+
2754
+    return implode( ' ', $classes );
2755 2755
 }
2756 2756
 
2757 2757
 /**
@@ -2763,90 +2763,90 @@  discard block
 block discarded – undo
2763 2763
  */
2764 2764
 function sd_build_aui_styles( $args ) {
2765 2765
 
2766
-	$styles = array();
2767
-
2768
-	// background color
2769
-	if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2770
-		if ( $args['bg'] == 'custom-color' ) {
2771
-			$styles['background-color'] = $args['bg_color'];
2772
-		} elseif ( $args['bg'] == 'custom-gradient' ) {
2773
-			$styles['background-image'] = $args['bg_gradient'];
2774
-
2775
-			// use background on text.
2776
-			if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2777
-				$styles['background-clip']         = 'text';
2778
-				$styles['-webkit-background-clip'] = 'text';
2779
-				$styles['text-fill-color']         = 'transparent';
2780
-				$styles['-webkit-text-fill-color'] = 'transparent';
2781
-			}
2782
-		}
2783
-	}
2784
-
2785
-	if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2786
-		$hasImage = true;
2787
-		if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2788
-			$styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2789
-			$styles['background-blend-mode'] = 'overlay';
2790
-		} elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2791
-			$styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2792
-		} elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2793
-			// do nothing as we alreay have a preset
2794
-			$hasImage = false;
2795
-		} else {
2796
-			$styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2797
-		}
2798
-
2799
-		if ( $hasImage ) {
2800
-			$styles['background-size'] = 'cover';
2801
-
2802
-			if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2803
-				$styles['background-attachment'] = 'fixed';
2804
-			}
2805
-		}
2806
-
2807
-		if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2808
-			$styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2809
-		}
2810
-	}
2811
-
2812
-	// sticky offset top
2813
-	if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2814
-		$styles['top'] = absint( $args['sticky_offset_top'] );
2815
-	}
2816
-
2817
-	// sticky offset bottom
2818
-	if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2819
-		$styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2820
-	}
2821
-
2822
-	// font size
2823
-	if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2824
-		$styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2825
-	}
2826
-
2827
-	// font color
2828
-	if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2829
-		$styles['color'] = esc_attr( $args['text_color_custom'] );
2830
-	}
2831
-
2832
-	// font line height
2833
-	if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2834
-		$styles['line-height'] = esc_attr( $args['font_line_height'] );
2835
-	}
2836
-
2837
-	// max height
2838
-	if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2839
-		$styles['max-height'] = esc_attr( $args['max_height'] );
2840
-	}
2841
-
2842
-	$style_string = '';
2843
-	if ( ! empty( $styles ) ) {
2844
-		foreach ( $styles as $key => $val ) {
2845
-			$style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2846
-		}
2847
-	}
2848
-
2849
-	return $style_string;
2766
+    $styles = array();
2767
+
2768
+    // background color
2769
+    if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2770
+        if ( $args['bg'] == 'custom-color' ) {
2771
+            $styles['background-color'] = $args['bg_color'];
2772
+        } elseif ( $args['bg'] == 'custom-gradient' ) {
2773
+            $styles['background-image'] = $args['bg_gradient'];
2774
+
2775
+            // use background on text.
2776
+            if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2777
+                $styles['background-clip']         = 'text';
2778
+                $styles['-webkit-background-clip'] = 'text';
2779
+                $styles['text-fill-color']         = 'transparent';
2780
+                $styles['-webkit-text-fill-color'] = 'transparent';
2781
+            }
2782
+        }
2783
+    }
2784
+
2785
+    if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2786
+        $hasImage = true;
2787
+        if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2788
+            $styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2789
+            $styles['background-blend-mode'] = 'overlay';
2790
+        } elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2791
+            $styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2792
+        } elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2793
+            // do nothing as we alreay have a preset
2794
+            $hasImage = false;
2795
+        } else {
2796
+            $styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2797
+        }
2798
+
2799
+        if ( $hasImage ) {
2800
+            $styles['background-size'] = 'cover';
2801
+
2802
+            if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2803
+                $styles['background-attachment'] = 'fixed';
2804
+            }
2805
+        }
2806
+
2807
+        if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2808
+            $styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2809
+        }
2810
+    }
2811
+
2812
+    // sticky offset top
2813
+    if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2814
+        $styles['top'] = absint( $args['sticky_offset_top'] );
2815
+    }
2816
+
2817
+    // sticky offset bottom
2818
+    if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2819
+        $styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2820
+    }
2821
+
2822
+    // font size
2823
+    if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2824
+        $styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2825
+    }
2826
+
2827
+    // font color
2828
+    if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2829
+        $styles['color'] = esc_attr( $args['text_color_custom'] );
2830
+    }
2831
+
2832
+    // font line height
2833
+    if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2834
+        $styles['line-height'] = esc_attr( $args['font_line_height'] );
2835
+    }
2836
+
2837
+    // max height
2838
+    if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2839
+        $styles['max-height'] = esc_attr( $args['max_height'] );
2840
+    }
2841
+
2842
+    $style_string = '';
2843
+    if ( ! empty( $styles ) ) {
2844
+        foreach ( $styles as $key => $val ) {
2845
+            $style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2846
+        }
2847
+    }
2848
+
2849
+    return $style_string;
2850 2850
 
2851 2851
 }
2852 2852
 
@@ -2859,34 +2859,34 @@  discard block
 block discarded – undo
2859 2859
  * @return string
2860 2860
  */
2861 2861
 function sd_build_hover_styles( $args, $is_preview = false ) {
2862
-	$rules = '';
2863
-	// text color
2864
-	if ( ! empty( $args['styleid'] ) ) {
2865
-		$styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2866
-
2867
-		// text
2868
-		if ( ! empty( $args['text_color_hover'] ) ) {
2869
-			$key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2870
-			$color  = sd_get_color_from_var( $args[ $key ] );
2871
-			$rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2872
-		}
2873
-
2874
-		// bg
2875
-		if ( ! empty( $args['bg_hover'] ) ) {
2876
-			if ( 'custom-gradient' === $args['bg_hover'] ) {
2877
-				$color  = $args['bg_hover_gradient'];
2878
-				$rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2879
-				$rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2880
-			} else {
2881
-				$key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2882
-				$color  = sd_get_color_from_var( $args[ $key ] );
2883
-				$rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2884
-				$rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2885
-			}
2886
-		}
2887
-	}
2888
-
2889
-	return $rules ? '<style>' . $rules . '</style>' : '';
2862
+    $rules = '';
2863
+    // text color
2864
+    if ( ! empty( $args['styleid'] ) ) {
2865
+        $styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2866
+
2867
+        // text
2868
+        if ( ! empty( $args['text_color_hover'] ) ) {
2869
+            $key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2870
+            $color  = sd_get_color_from_var( $args[ $key ] );
2871
+            $rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2872
+        }
2873
+
2874
+        // bg
2875
+        if ( ! empty( $args['bg_hover'] ) ) {
2876
+            if ( 'custom-gradient' === $args['bg_hover'] ) {
2877
+                $color  = $args['bg_hover_gradient'];
2878
+                $rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2879
+                $rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2880
+            } else {
2881
+                $key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2882
+                $color  = sd_get_color_from_var( $args[ $key ] );
2883
+                $rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2884
+                $rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2885
+            }
2886
+        }
2887
+    }
2888
+
2889
+    return $rules ? '<style>' . $rules . '</style>' : '';
2890 2890
 }
2891 2891
 
2892 2892
 /**
@@ -2898,12 +2898,12 @@  discard block
 block discarded – undo
2898 2898
  */
2899 2899
 function sd_get_color_from_var( $var ) {
2900 2900
 
2901
-	//sanitize_hex_color() @todo this does not cover transparency
2902
-	if ( strpos( $var, '#' ) === false ) {
2903
-		$var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2904
-	}
2901
+    //sanitize_hex_color() @todo this does not cover transparency
2902
+    if ( strpos( $var, '#' ) === false ) {
2903
+        $var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2904
+    }
2905 2905
 
2906
-	return $var;
2906
+    return $var;
2907 2907
 }
2908 2908
 
2909 2909
 /**
@@ -2915,19 +2915,19 @@  discard block
 block discarded – undo
2915 2915
  * @return string
2916 2916
  */
2917 2917
 function sd_sanitize_html_classes( $classes, $sep = ' ' ) {
2918
-	$return = '';
2918
+    $return = '';
2919 2919
 
2920
-	if ( ! is_array( $classes ) ) {
2921
-		$classes = explode( $sep, $classes );
2922
-	}
2920
+    if ( ! is_array( $classes ) ) {
2921
+        $classes = explode( $sep, $classes );
2922
+    }
2923 2923
 
2924
-	if ( ! empty( $classes ) ) {
2925
-		foreach ( $classes as $class ) {
2926
-			$return .= sanitize_html_class( $class ) . ' ';
2927
-		}
2928
-	}
2924
+    if ( ! empty( $classes ) ) {
2925
+        foreach ( $classes as $class ) {
2926
+            $return .= sanitize_html_class( $class ) . ' ';
2927
+        }
2928
+    }
2929 2929
 
2930
-	return $return;
2930
+    return $return;
2931 2931
 }
2932 2932
 
2933 2933
 
@@ -2937,40 +2937,40 @@  discard block
 block discarded – undo
2937 2937
  * @return void
2938 2938
  */
2939 2939
 function sd_get_class_build_keys() {
2940
-	$keys = array(
2941
-		'container',
2942
-		'position',
2943
-		'flex_direction',
2944
-		'shadow',
2945
-		'rounded',
2946
-		'nav_style',
2947
-		'horizontal_alignment',
2948
-		'nav_fill',
2949
-		'width',
2950
-		'font_weight',
2951
-		'font_size',
2952
-		'font_case',
2953
-		'css_class',
2954
-		'flex_align_items-MTD',
2955
-		'flex_justify_content-MTD',
2956
-		'flex_align_self-MTD',
2957
-		'flex_order-MTD',
2958
-		'styleid',
2959
-		'border_opacity',
2960
-		'border_width',
2961
-		'border_type',
2962
-		'opacity',
2963
-		'zindex',
2964
-		'flex_wrap-MTD',
2965
-		'h100',
2966
-		'overflow',
2967
-		'scrollbars',
2968
-		'float-MTD',
2969
-		'height-MTD',
2970
-		'width-MTD'
2971
-	);
2972
-
2973
-	return apply_filters( 'sd_class_build_keys', $keys );
2940
+    $keys = array(
2941
+        'container',
2942
+        'position',
2943
+        'flex_direction',
2944
+        'shadow',
2945
+        'rounded',
2946
+        'nav_style',
2947
+        'horizontal_alignment',
2948
+        'nav_fill',
2949
+        'width',
2950
+        'font_weight',
2951
+        'font_size',
2952
+        'font_case',
2953
+        'css_class',
2954
+        'flex_align_items-MTD',
2955
+        'flex_justify_content-MTD',
2956
+        'flex_align_self-MTD',
2957
+        'flex_order-MTD',
2958
+        'styleid',
2959
+        'border_opacity',
2960
+        'border_width',
2961
+        'border_type',
2962
+        'opacity',
2963
+        'zindex',
2964
+        'flex_wrap-MTD',
2965
+        'h100',
2966
+        'overflow',
2967
+        'scrollbars',
2968
+        'float-MTD',
2969
+        'height-MTD',
2970
+        'width-MTD'
2971
+    );
2972
+
2973
+    return apply_filters( 'sd_class_build_keys', $keys );
2974 2974
 }
2975 2975
 
2976 2976
 /**
@@ -2982,18 +2982,18 @@  discard block
 block discarded – undo
2982 2982
  * @return array
2983 2983
  */
2984 2984
 function sd_get_visibility_conditions_input( $type = 'visibility_conditions', $overwrite = array() ) {
2985
-	$defaults = array(
2986
-		'type'         => 'visibility_conditions',
2987
-		'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2988
-		'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2989
-		'default'      => '',
2990
-		'desc_tip'     => true,
2991
-		'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2992
-	);
2985
+    $defaults = array(
2986
+        'type'         => 'visibility_conditions',
2987
+        'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2988
+        'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2989
+        'default'      => '',
2990
+        'desc_tip'     => true,
2991
+        'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2992
+    );
2993 2993
 
2994
-	$input = wp_parse_args( $overwrite, $defaults );
2994
+    $input = wp_parse_args( $overwrite, $defaults );
2995 2995
 
2996
-	return $input;
2996
+    return $input;
2997 2997
 }
2998 2998
 
2999 2999
 /**
@@ -3005,24 +3005,24 @@  discard block
 block discarded – undo
3005 3005
  * @return array An array of roles.
3006 3006
  */
3007 3007
 function sd_user_roles_options( $exclude = array() ) {
3008
-	$user_roles = array();
3008
+    $user_roles = array();
3009 3009
 
3010
-	if ( !function_exists('get_editable_roles') ) {
3011
-		require_once( ABSPATH . '/wp-admin/includes/user.php' );
3012
-	}
3010
+    if ( !function_exists('get_editable_roles') ) {
3011
+        require_once( ABSPATH . '/wp-admin/includes/user.php' );
3012
+    }
3013 3013
 
3014
-	$roles = get_editable_roles();
3014
+    $roles = get_editable_roles();
3015 3015
 
3016
-	foreach ( $roles as $role => $data ) {
3017
-		if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3018
-			$user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3019
-		}
3020
-	}
3016
+    foreach ( $roles as $role => $data ) {
3017
+        if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3018
+            $user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3019
+        }
3020
+    }
3021 3021
 
3022
-	// Logged out as a custom role.
3023
-	$user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3022
+    // Logged out as a custom role.
3023
+    $user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3024 3024
 
3025
-	return apply_filters( 'sd_user_roles_options', $user_roles );
3025
+    return apply_filters( 'sd_user_roles_options', $user_roles );
3026 3026
 }
3027 3027
 
3028 3028
 /**
@@ -3033,18 +3033,18 @@  discard block
 block discarded – undo
3033 3033
  * @return array Rule options.
3034 3034
  */
3035 3035
 function sd_visibility_rules_options() {
3036
-	$options = array(
3037
-		'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3038
-		'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3039
-		'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3040
-		'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3041
-	);
3036
+    $options = array(
3037
+        'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3038
+        'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3039
+        'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3040
+        'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3041
+    );
3042 3042
 
3043
-	if ( class_exists( 'GeoDirectory' ) ) {
3044
-		$options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3045
-	}
3043
+    if ( class_exists( 'GeoDirectory' ) ) {
3044
+        $options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3045
+    }
3046 3046
 
3047
-	return apply_filters( 'sd_visibility_rules_options', $options );
3047
+    return apply_filters( 'sd_visibility_rules_options', $options );
3048 3048
 }
3049 3049
 
3050 3050
 /**
@@ -3053,39 +3053,39 @@  discard block
 block discarded – undo
3053 3053
  * @return array
3054 3054
  */
3055 3055
 function sd_visibility_gd_field_options() {
3056
-	$fields = geodir_post_custom_fields( '', 'all', 'all', 'none' );
3056
+    $fields = geodir_post_custom_fields( '', 'all', 'all', 'none' );
3057 3057
 
3058
-	$keys = array();
3059
-	if ( ! empty( $fields ) ) {
3060
-		foreach( $fields as $field ) {
3061
-			if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3062
-				continue;
3063
-			}
3058
+    $keys = array();
3059
+    if ( ! empty( $fields ) ) {
3060
+        foreach( $fields as $field ) {
3061
+            if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3062
+                continue;
3063
+            }
3064 3064
 
3065
-			$keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3065
+            $keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3066 3066
 
3067
-			// Extra address fields
3068
-			if ( $field['htmlvar_name'] == 'address' && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3069
-				foreach ( $address_fields as $_field => $args ) {
3070
-					if ( $_field != 'map_directions' && $_field != 'street' ) {
3071
-						$keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3072
-					}
3073
-				}
3074
-			}
3075
-		}
3076
-	}
3067
+            // Extra address fields
3068
+            if ( $field['htmlvar_name'] == 'address' && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3069
+                foreach ( $address_fields as $_field => $args ) {
3070
+                    if ( $_field != 'map_directions' && $_field != 'street' ) {
3071
+                        $keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3072
+                    }
3073
+                }
3074
+            }
3075
+        }
3076
+    }
3077 3077
 
3078
-	$standard_fields = sd_visibility_gd_standard_field_options();
3078
+    $standard_fields = sd_visibility_gd_standard_field_options();
3079 3079
 
3080
-	if ( ! empty( $standard_fields ) ) {
3081
-		foreach ( $standard_fields as $key => $option ) {
3082
-			$keys[ $key ] = $option;
3083
-		}
3084
-	}
3080
+    if ( ! empty( $standard_fields ) ) {
3081
+        foreach ( $standard_fields as $key => $option ) {
3082
+            $keys[ $key ] = $option;
3083
+        }
3084
+    }
3085 3085
 
3086
-	$options = apply_filters( 'geodir_badge_field_keys', $keys );
3086
+    $options = apply_filters( 'geodir_badge_field_keys', $keys );
3087 3087
 
3088
-	return apply_filters( 'sd_visibility_gd_field_options', $options );
3088
+    return apply_filters( 'sd_visibility_gd_field_options', $options );
3089 3089
 }
3090 3090
 
3091 3091
 /**
@@ -3094,17 +3094,17 @@  discard block
 block discarded – undo
3094 3094
  * @return array
3095 3095
  */
3096 3096
 function sd_visibility_gd_standard_field_options( $post_type = '' ) {
3097
-	$fields = sd_visibility_gd_standard_fields( $post_type );
3097
+    $fields = sd_visibility_gd_standard_fields( $post_type );
3098 3098
 
3099
-	$options = array();
3099
+    $options = array();
3100 3100
 
3101
-	foreach ( $fields as $key => $field ) {
3102
-		if ( ! empty( $field['frontend_title'] ) ) {
3103
-			$options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3104
-		}
3105
-	}
3101
+    foreach ( $fields as $key => $field ) {
3102
+        if ( ! empty( $field['frontend_title'] ) ) {
3103
+            $options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3104
+        }
3105
+    }
3106 3106
 
3107
-	return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3107
+    return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3108 3108
 }
3109 3109
 
3110 3110
 /**
@@ -3113,17 +3113,17 @@  discard block
 block discarded – undo
3113 3113
  * @return array
3114 3114
  */
3115 3115
 function sd_visibility_gd_standard_fields( $post_type = '' ) {
3116
-	$standard_fields = geodir_post_meta_standard_fields( $post_type );
3116
+    $standard_fields = geodir_post_meta_standard_fields( $post_type );
3117 3117
 
3118
-	$fields = array();
3118
+    $fields = array();
3119 3119
 
3120
-	foreach ( $standard_fields as $key => $field ) {
3121
-		if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3122
-			$fields[ $key ] = $field;
3123
-		}
3124
-	}
3120
+    foreach ( $standard_fields as $key => $field ) {
3121
+        if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3122
+            $fields[ $key ] = $field;
3123
+        }
3124
+    }
3125 3125
 
3126
-	return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3126
+    return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3127 3127
 }
3128 3128
 
3129 3129
 /**
@@ -3132,18 +3132,18 @@  discard block
 block discarded – undo
3132 3132
  * @return array
3133 3133
  */
3134 3134
 function sd_visibility_field_condition_options(){
3135
-	$options = array(
3136
-		'is_empty' => __( 'is empty', 'ayecode-connect' ),
3137
-		'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3138
-		'is_equal' => __( 'is equal', 'ayecode-connect' ),
3139
-		'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3140
-		'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3141
-		'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3142
-		'is_contains' => __( 'is contains', 'ayecode-connect' ),
3143
-		'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3144
-	);
3135
+    $options = array(
3136
+        'is_empty' => __( 'is empty', 'ayecode-connect' ),
3137
+        'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3138
+        'is_equal' => __( 'is equal', 'ayecode-connect' ),
3139
+        'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3140
+        'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3141
+        'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3142
+        'is_contains' => __( 'is contains', 'ayecode-connect' ),
3143
+        'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3144
+    );
3145 3145
 
3146
-	return apply_filters( 'sd_visibility_field_condition_options', $options );
3146
+    return apply_filters( 'sd_visibility_field_condition_options', $options );
3147 3147
 }
3148 3148
 
3149 3149
 /**
@@ -3154,15 +3154,15 @@  discard block
 block discarded – undo
3154 3154
  * @return array Template type options.
3155 3155
  */
3156 3156
 function sd_visibility_output_options() {
3157
-	$options = array(
3158
-		''              => __( 'Show Block', 'ayecode-connect' ),
3159
-		'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3160
-		'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3161
-		'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3162
-		'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3163
-	);
3157
+    $options = array(
3158
+        ''              => __( 'Show Block', 'ayecode-connect' ),
3159
+        'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3160
+        'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3161
+        'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3162
+        'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3163
+    );
3164 3164
 
3165
-	return apply_filters( 'sd_visibility_output_options', $options );
3165
+    return apply_filters( 'sd_visibility_output_options', $options );
3166 3166
 }
3167 3167
 
3168 3168
 /**
@@ -3174,73 +3174,73 @@  discard block
 block discarded – undo
3174 3174
  * @return array Template page options.
3175 3175
  */
3176 3176
 function sd_template_page_options( $args = array() ) {
3177
-	global $wpdb, $sd_tmpl_page_options;
3177
+    global $wpdb, $sd_tmpl_page_options;
3178 3178
 
3179
-	$defaults = array(
3180
-		'nocache' => false,
3181
-		'with_slug' => false,
3182
-		'default_label' => __( 'Select Page...', 'ayecode-connect' )
3183
-	);
3179
+    $defaults = array(
3180
+        'nocache' => false,
3181
+        'with_slug' => false,
3182
+        'default_label' => __( 'Select Page...', 'ayecode-connect' )
3183
+    );
3184 3184
 
3185
-	$args = wp_parse_args( $args, $defaults );
3185
+    $args = wp_parse_args( $args, $defaults );
3186 3186
 
3187
-	if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3188
-		return $sd_tmpl_page_options;
3189
-	}
3187
+    if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3188
+        return $sd_tmpl_page_options;
3189
+    }
3190 3190
 
3191
-	$exclude_pages = array();
3192
-	if ( $page_on_front = get_option( 'page_on_front' ) ) {
3193
-		$exclude_pages[] = $page_on_front;
3194
-	}
3191
+    $exclude_pages = array();
3192
+    if ( $page_on_front = get_option( 'page_on_front' ) ) {
3193
+        $exclude_pages[] = $page_on_front;
3194
+    }
3195 3195
 
3196
-	if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3197
-		$exclude_pages[] = $page_for_posts;
3198
-	}
3196
+    if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3197
+        $exclude_pages[] = $page_for_posts;
3198
+    }
3199 3199
 
3200
-	$exclude_pages_placeholders = '';
3201
-	if ( ! empty( $exclude_pages ) ) {
3202
-		// Sanitize the array of excluded pages and implode it for the SQL query.
3203
-		$exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3204
-	}
3200
+    $exclude_pages_placeholders = '';
3201
+    if ( ! empty( $exclude_pages ) ) {
3202
+        // Sanitize the array of excluded pages and implode it for the SQL query.
3203
+        $exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3204
+    }
3205 3205
 
3206
-	// Prepare the base SQL query.
3207
-	$sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3206
+    // Prepare the base SQL query.
3207
+    $sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3208 3208
 
3209
-	// Add the exclusion if there are pages to exclude
3210
-	if ( ! empty( $exclude_pages ) ) {
3211
-		$sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3212
-	}
3209
+    // Add the exclusion if there are pages to exclude
3210
+    if ( ! empty( $exclude_pages ) ) {
3211
+        $sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3212
+    }
3213 3213
 
3214
-	// Add sorting.
3215
-	$sql .= " ORDER BY post_title ASC";
3214
+    // Add sorting.
3215
+    $sql .= " ORDER BY post_title ASC";
3216 3216
 
3217
-	// Add a limit.
3218
-	$limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3217
+    // Add a limit.
3218
+    $limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3219 3219
 
3220
-	if ( $limit > 0 ) {
3221
-		$sql .= " LIMIT " . (int) $limit;
3222
-	}
3220
+    if ( $limit > 0 ) {
3221
+        $sql .= " LIMIT " . (int) $limit;
3222
+    }
3223 3223
 
3224
-	// Prepare the SQL query to include the excluded pages only if we have placeholders.
3225
-	$pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3224
+    // Prepare the SQL query to include the excluded pages only if we have placeholders.
3225
+    $pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3226 3226
 
3227
-	if ( ! empty( $args['default_label'] ) ) {
3228
-		$options = array( '' => $args['default_label'] );
3229
-	} else {
3230
-		$options = array();
3231
-	}
3227
+    if ( ! empty( $args['default_label'] ) ) {
3228
+        $options = array( '' => $args['default_label'] );
3229
+    } else {
3230
+        $options = array();
3231
+    }
3232 3232
 
3233
-	if ( ! empty( $pages ) ) {
3234
-		foreach ( $pages as $page ) {
3235
-			$title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3233
+    if ( ! empty( $pages ) ) {
3234
+        foreach ( $pages as $page ) {
3235
+            $title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3236 3236
 
3237
-			$options[ $page->ID ] = $title;
3238
-		}
3239
-	}
3237
+            $options[ $page->ID ] = $title;
3238
+        }
3239
+    }
3240 3240
 
3241
-	$sd_tmpl_page_options = $options;
3241
+    $sd_tmpl_page_options = $options;
3242 3242
 
3243
-	return apply_filters( 'sd_template_page_options', $options, $args );
3243
+    return apply_filters( 'sd_template_page_options', $options, $args );
3244 3244
 }
3245 3245
 
3246 3246
 /**
@@ -3252,25 +3252,25 @@  discard block
 block discarded – undo
3252 3252
  * @return array Template part options.
3253 3253
  */
3254 3254
 function sd_template_part_options( $args = array() ) {
3255
-	global $sd_tmpl_part_options;
3255
+    global $sd_tmpl_part_options;
3256 3256
 
3257
-	if ( ! empty( $sd_tmpl_part_options ) ) {
3258
-		return $sd_tmpl_part_options;
3259
-	}
3257
+    if ( ! empty( $sd_tmpl_part_options ) ) {
3258
+        return $sd_tmpl_part_options;
3259
+    }
3260 3260
 
3261
-	$options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3261
+    $options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3262 3262
 
3263
-	$parts = get_block_templates( array(), 'wp_template_part' );
3263
+    $parts = get_block_templates( array(), 'wp_template_part' );
3264 3264
 
3265
-	if ( ! empty( $parts ) ) {
3266
-		foreach ( $parts as $part ) {
3267
-			$options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3268
-		}
3269
-	}
3265
+    if ( ! empty( $parts ) ) {
3266
+        foreach ( $parts as $part ) {
3267
+            $options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3268
+        }
3269
+    }
3270 3270
 
3271
-	$sd_tmpl_part_options = $options;
3271
+    $sd_tmpl_part_options = $options;
3272 3272
 
3273
-	return apply_filters( 'sd_template_part_options', $options, $args );
3273
+    return apply_filters( 'sd_template_part_options', $options, $args );
3274 3274
 }
3275 3275
 
3276 3276
 /**
@@ -3282,25 +3282,25 @@  discard block
 block discarded – undo
3282 3282
  * @return array Template part object.
3283 3283
  */
3284 3284
 function sd_get_template_part_by_slug( $slug ) {
3285
-	global $bs_tmpl_part_by_slug;
3285
+    global $bs_tmpl_part_by_slug;
3286 3286
 
3287
-	if ( empty( $bs_tmpl_part_by_slug ) ) {
3288
-		$bs_tmpl_part_by_slug = array();
3289
-	}
3287
+    if ( empty( $bs_tmpl_part_by_slug ) ) {
3288
+        $bs_tmpl_part_by_slug = array();
3289
+    }
3290 3290
 
3291
-	if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3292
-		return $bs_tmpl_part_by_slug[ $slug ];
3293
-	}
3291
+    if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3292
+        return $bs_tmpl_part_by_slug[ $slug ];
3293
+    }
3294 3294
 
3295
-	$template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3295
+    $template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3296 3296
 
3297
-	$query_post = ! empty( $template_query ) ? $template_query[0] : array();
3297
+    $query_post = ! empty( $template_query ) ? $template_query[0] : array();
3298 3298
 
3299
-	$template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3299
+    $template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3300 3300
 
3301
-	$bs_tmpl_part_by_slug[ $slug ] = $template_part;
3301
+    $bs_tmpl_part_by_slug[ $slug ] = $template_part;
3302 3302
 
3303
-	return apply_filters( 'sd_get_template_part_by_slug', $template_part, $slug );
3303
+    return apply_filters( 'sd_get_template_part_by_slug', $template_part, $slug );
3304 3304
 }
3305 3305
 
3306 3306
 /**
@@ -3313,511 +3313,511 @@  discard block
 block discarded – undo
3313 3313
  * @param WP_Block $instance      The block instance.
3314 3314
  */
3315 3315
 function sd_render_block( $block_content, $block, $instance = '' ) {
3316
-	// No block visibility conditions set.
3317
-	if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3318
-		return $block_content;
3319
-	}
3320
-
3321
-	$attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3322
-	$rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3323
-
3324
-	// remove rules with missing validators.
3325
-	$valid_rules = sd_visibility_rules_options();
3326
-
3327
-	if ( ! empty( $rules ) ) {
3328
-		foreach ( $rules as $key => $rule ) {
3329
-			if ( ! isset( $valid_rules[ $rule['type'] ] ) ) {
3330
-				unset( $rules[ $key ] );
3331
-			}
3332
-		}
3333
-	}
3334
-
3335
-	// No rules set.
3336
-	if ( empty( $rules ) ) {
3337
-		return $block_content;
3338
-	}
3339
-
3340
-	$check_rules = null;
3341
-	$_block_content = $block_content;
3342
-
3343
-	if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3344
-		$check_rules = sd_block_check_rules( $rules );
3345
-
3346
-		if ( $check_rules ) {
3347
-			$output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3348
-		} else {
3349
-			$output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3350
-		}
3351
-
3352
-		if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3353
-			switch ( $output_condition['type'] ) {
3354
-				case 'hide':
3355
-					$valid_type = true;
3356
-					$content = '';
3357
-
3358
-					break;
3359
-				case 'message':
3360
-					$valid_type = true;
3361
-
3362
-					if ( isset( $output_condition['message'] ) ) {
3363
-						$content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3364
-
3365
-						if ( ! empty( $output_condition['message_type'] ) ) {
3366
-							$content = aui()->alert( array(
3367
-									'type'=> $output_condition['message_type'],
3368
-									'content'=> $content
3369
-								)
3370
-							);
3371
-						}
3372
-					}
3373
-
3374
-					break;
3375
-				case 'page':
3376
-					$valid_type = true;
3377
-
3378
-					$page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3379
-					$content = sd_get_page_content( $page_id );
3380
-
3381
-					break;
3382
-				case 'template_part':
3383
-					$valid_type = true;
3384
-
3385
-					$template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3386
-					$content = sd_get_template_part_content( $template_part );
3387
-
3388
-					break;
3389
-				default:
3390
-					$valid_type = false;
3391
-					break;
3392
-			}
3393
-
3394
-			if ( $valid_type ) {
3395
-				$block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-rule' . ( $output_condition['type'] == 'hide' ? ' sd-block-hide-rule' : '' ) . '">' . $content . '</div>';
3396
-			}
3397
-		}
3398
-	}
3399
-
3400
-	return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3316
+    // No block visibility conditions set.
3317
+    if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3318
+        return $block_content;
3319
+    }
3320
+
3321
+    $attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3322
+    $rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3323
+
3324
+    // remove rules with missing validators.
3325
+    $valid_rules = sd_visibility_rules_options();
3326
+
3327
+    if ( ! empty( $rules ) ) {
3328
+        foreach ( $rules as $key => $rule ) {
3329
+            if ( ! isset( $valid_rules[ $rule['type'] ] ) ) {
3330
+                unset( $rules[ $key ] );
3331
+            }
3332
+        }
3333
+    }
3334
+
3335
+    // No rules set.
3336
+    if ( empty( $rules ) ) {
3337
+        return $block_content;
3338
+    }
3339
+
3340
+    $check_rules = null;
3341
+    $_block_content = $block_content;
3342
+
3343
+    if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3344
+        $check_rules = sd_block_check_rules( $rules );
3345
+
3346
+        if ( $check_rules ) {
3347
+            $output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3348
+        } else {
3349
+            $output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3350
+        }
3351
+
3352
+        if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3353
+            switch ( $output_condition['type'] ) {
3354
+                case 'hide':
3355
+                    $valid_type = true;
3356
+                    $content = '';
3357
+
3358
+                    break;
3359
+                case 'message':
3360
+                    $valid_type = true;
3361
+
3362
+                    if ( isset( $output_condition['message'] ) ) {
3363
+                        $content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3364
+
3365
+                        if ( ! empty( $output_condition['message_type'] ) ) {
3366
+                            $content = aui()->alert( array(
3367
+                                    'type'=> $output_condition['message_type'],
3368
+                                    'content'=> $content
3369
+                                )
3370
+                            );
3371
+                        }
3372
+                    }
3373
+
3374
+                    break;
3375
+                case 'page':
3376
+                    $valid_type = true;
3377
+
3378
+                    $page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3379
+                    $content = sd_get_page_content( $page_id );
3380
+
3381
+                    break;
3382
+                case 'template_part':
3383
+                    $valid_type = true;
3384
+
3385
+                    $template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3386
+                    $content = sd_get_template_part_content( $template_part );
3387
+
3388
+                    break;
3389
+                default:
3390
+                    $valid_type = false;
3391
+                    break;
3392
+            }
3393
+
3394
+            if ( $valid_type ) {
3395
+                $block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-rule' . ( $output_condition['type'] == 'hide' ? ' sd-block-hide-rule' : '' ) . '">' . $content . '</div>';
3396
+            }
3397
+        }
3398
+    }
3399
+
3400
+    return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3401 3401
 }
3402 3402
 add_filter( 'render_block', 'sd_render_block', 9, 3 );
3403 3403
 
3404 3404
 function sd_get_page_content( $page_id ) {
3405
-	$content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3405
+    $content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3406 3406
 
3407
-	// Maybe bypass content
3408
-	$bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3409
-	if ( $bypass_content ) {
3410
-		return $bypass_content;
3411
-	}
3407
+    // Maybe bypass content
3408
+    $bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3409
+    if ( $bypass_content ) {
3410
+        return $bypass_content;
3411
+    }
3412 3412
 
3413
-	// Run the shortcodes on the content.
3414
-	$content = do_shortcode( $content );
3413
+    // Run the shortcodes on the content.
3414
+    $content = do_shortcode( $content );
3415 3415
 
3416
-	// Run block content if its available.
3417
-	if ( function_exists( 'do_blocks' ) ) {
3418
-		$content = do_blocks( $content );
3419
-	}
3416
+    // Run block content if its available.
3417
+    if ( function_exists( 'do_blocks' ) ) {
3418
+        $content = do_blocks( $content );
3419
+    }
3420 3420
 
3421
-	return apply_filters( 'sd_get_page_content', $content, $page_id );
3421
+    return apply_filters( 'sd_get_page_content', $content, $page_id );
3422 3422
 }
3423 3423
 
3424 3424
 function sd_get_template_part_content( $template_part ) {
3425
-	$template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3426
-	$content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3425
+    $template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3426
+    $content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3427 3427
 
3428
-	// Maybe bypass content
3429
-	$bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3430
-	if ( $bypass_content ) {
3431
-		return $bypass_content;
3432
-	}
3428
+    // Maybe bypass content
3429
+    $bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3430
+    if ( $bypass_content ) {
3431
+        return $bypass_content;
3432
+    }
3433 3433
 
3434
-	// Run the shortcodes on the content.
3435
-	$content = do_shortcode( $content );
3434
+    // Run the shortcodes on the content.
3435
+    $content = do_shortcode( $content );
3436 3436
 
3437
-	// Run block content if its available.
3438
-	if ( function_exists( 'do_blocks' ) ) {
3439
-		$content = do_blocks( $content );
3440
-	}
3437
+    // Run block content if its available.
3438
+    if ( function_exists( 'do_blocks' ) ) {
3439
+        $content = do_blocks( $content );
3440
+    }
3441 3441
 
3442
-	return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3442
+    return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3443 3443
 }
3444 3444
 
3445 3445
 function sd_block_parse_rules( $attrs ) {
3446
-	$rules = array();
3446
+    $rules = array();
3447 3447
 
3448
-	if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3449
-		$attrs_keys = array_keys( $attrs );
3448
+    if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3449
+        $attrs_keys = array_keys( $attrs );
3450 3450
 
3451
-		for ( $i = 1; $i <= count( $attrs_keys ); $i++ ) {
3452
-			if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3453
-				$rules[] = $attrs[ 'rule' . $i ];
3454
-			}
3455
-		}
3456
-	}
3451
+        for ( $i = 1; $i <= count( $attrs_keys ); $i++ ) {
3452
+            if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3453
+                $rules[] = $attrs[ 'rule' . $i ];
3454
+            }
3455
+        }
3456
+    }
3457 3457
 
3458
-	return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3458
+    return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3459 3459
 }
3460 3460
 
3461 3461
 function sd_block_check_rules( $rules ) {
3462
-	if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3463
-		return true;
3464
-	}
3462
+    if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3463
+        return true;
3464
+    }
3465 3465
 
3466
-	foreach ( $rules as $key => $rule ) {
3467
-		$match = apply_filters( 'sd_block_check_rule', true, $rule );
3466
+    foreach ( $rules as $key => $rule ) {
3467
+        $match = apply_filters( 'sd_block_check_rule', true, $rule );
3468 3468
 
3469
-		if ( ! $match ) {
3470
-			break;
3471
-		}
3472
-	}
3469
+        if ( ! $match ) {
3470
+            break;
3471
+        }
3472
+    }
3473 3473
 
3474
-	return apply_filters( 'sd_block_check_rules', $match, $rules );
3474
+    return apply_filters( 'sd_block_check_rules', $match, $rules );
3475 3475
 }
3476 3476
 
3477 3477
 function sd_block_check_rule( $match, $rule ) {
3478
-	global $post;
3479
-
3480
-	if ( $match && ! empty( $rule['type'] ) ) {
3481
-		switch ( $rule['type'] ) {
3482
-			case 'logged_in':
3483
-				$match = (bool) is_user_logged_in();
3484
-
3485
-				break;
3486
-			case 'logged_out':
3487
-				$match = ! is_user_logged_in();
3488
-
3489
-				break;
3490
-			case 'post_author':
3491
-				if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3492
-					$match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3493
-				} else {
3494
-					$match = false;
3495
-				}
3496
-
3497
-				break;
3498
-			case 'user_roles':
3499
-				$match = false;
3500
-
3501
-				if ( ! empty( $rule['user_roles'] ) ) {
3502
-					$user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3503
-
3504
-					if ( is_array( $user_roles ) ) {
3505
-						$user_roles = array_filter( array_map( 'trim', $user_roles ) );
3506
-					}
3507
-
3508
-					if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3509
-						if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3510
-							$current_user_roles = $current_user->roles;
3511
-
3512
-							foreach ( $user_roles as $role ) {
3513
-								if ( in_array( $role, $current_user_roles ) ) {
3514
-									$match = true;
3515
-								}
3516
-							}
3517
-						} else {
3518
-							// Logged out role.
3519
-							if ( in_array( 'logged_out', $user_roles ) ) {
3520
-								$match = true;
3521
-							}
3522
-						}
3523
-					}
3524
-				}
3525
-
3526
-				break;
3527
-			case 'gd_field':
3528
-				$match = sd_block_check_rule_gd_field( $rule );
3529
-
3530
-				break;
3531
-
3532
-			default:
3533
-				$match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3534
-				break;
3535
-		}
3536
-	}
3537
-
3538
-	return $match;
3478
+    global $post;
3479
+
3480
+    if ( $match && ! empty( $rule['type'] ) ) {
3481
+        switch ( $rule['type'] ) {
3482
+            case 'logged_in':
3483
+                $match = (bool) is_user_logged_in();
3484
+
3485
+                break;
3486
+            case 'logged_out':
3487
+                $match = ! is_user_logged_in();
3488
+
3489
+                break;
3490
+            case 'post_author':
3491
+                if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3492
+                    $match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3493
+                } else {
3494
+                    $match = false;
3495
+                }
3496
+
3497
+                break;
3498
+            case 'user_roles':
3499
+                $match = false;
3500
+
3501
+                if ( ! empty( $rule['user_roles'] ) ) {
3502
+                    $user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3503
+
3504
+                    if ( is_array( $user_roles ) ) {
3505
+                        $user_roles = array_filter( array_map( 'trim', $user_roles ) );
3506
+                    }
3507
+
3508
+                    if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3509
+                        if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3510
+                            $current_user_roles = $current_user->roles;
3511
+
3512
+                            foreach ( $user_roles as $role ) {
3513
+                                if ( in_array( $role, $current_user_roles ) ) {
3514
+                                    $match = true;
3515
+                                }
3516
+                            }
3517
+                        } else {
3518
+                            // Logged out role.
3519
+                            if ( in_array( 'logged_out', $user_roles ) ) {
3520
+                                $match = true;
3521
+                            }
3522
+                        }
3523
+                    }
3524
+                }
3525
+
3526
+                break;
3527
+            case 'gd_field':
3528
+                $match = sd_block_check_rule_gd_field( $rule );
3529
+
3530
+                break;
3531
+
3532
+            default:
3533
+                $match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3534
+                break;
3535
+        }
3536
+    }
3537
+
3538
+    return $match;
3539 3539
 }
3540 3540
 add_filter( 'sd_block_check_rule', 'sd_block_check_rule', 10, 2 );
3541 3541
 
3542 3542
 function sd_block_check_rule_gd_field( $rule ) {
3543
-	global $gd_post;
3544
-
3545
-	$match_found = false;
3546
-
3547
-	if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3548
-		$args['block_visibility'] = true;
3549
-		$args['key'] = $rule['field'];
3550
-		$args['condition'] = $rule['condition'];
3551
-		$args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3552
-
3553
-		if ( $args['key'] == 'street' ) {
3554
-			$args['key'] = 'address';
3555
-		}
3556
-
3557
-		$match_field = $_match_field = $args['key'];
3558
-
3559
-		if ( $match_field == 'address' ) {
3560
-			$match_field = 'street';
3561
-		} elseif ( $match_field == 'post_images' ) {
3562
-			$match_field = 'featured_image';
3563
-		}
3564
-
3565
-		$find_post = $gd_post;
3566
-		$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3567
-
3568
-		if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3569
-			$find_post = geodir_get_post_info( (int) $find_post->ID );
3570
-			$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3571
-		}
3572
-
3573
-		if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3574
-			$address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3575
-			$field = array();
3576
-			$empty_field = false;
3577
-
3578
-			$standard_fields = sd_visibility_gd_standard_fields();
3579
-
3580
-			if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3581
-				$package_id = geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
3582
-				$fields = geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
3583
-
3584
-				foreach ( $fields as $field_info ) {
3585
-					if ( $match_field == $field_info['htmlvar_name'] ) {
3586
-						$field = $field_info;
3587
-						break;
3588
-					} elseif( $_match_field == $field_info['htmlvar_name'] ) {
3589
-						$field = $field_info;
3590
-						break;
3591
-					}
3592
-				}
3593
-
3594
-				if ( empty( $field ) ) {
3595
-					$empty_field = true;
3596
-				}
3597
-			}
3598
-
3599
-			// Address fields.
3600
-			if ( in_array( $match_field, $address_fields ) && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3601
-				if ( ! empty( $address_fields[ $match_field ] ) ) {
3602
-					$field = $address_fields[ $match_field ];
3603
-				}
3604
-			} else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3605
-				if ( ! empty( $standard_fields[ $match_field ] ) ) {
3606
-					$field = $standard_fields[ $match_field ];
3607
-				}
3608
-			}
3609
-
3610
-			// Parse search.
3611
-			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3612
-
3613
-			$is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3614
-			$is_date = apply_filters( 'geodir_post_badge_is_date', $is_date, $match_field, $field, $args, $find_post );
3615
-
3616
-			$match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3617
-			$match_found = $match_field === '' ? true : false;
3618
-
3619
-			if ( ! $match_found ) {
3620
-				if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3621
-					if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3622
-						$search = '+' . $search;
3623
-					}
3624
-					$the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3625
-					$until_time = strtotime( $the_time . ' ' . $search . ' days' );
3626
-					$now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3627
-					if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3628
-						$match_found = true;
3629
-					} elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3630
-						$match_found = true;
3631
-					}
3632
-				} else {
3633
-					switch ( $args['condition'] ) {
3634
-						case 'is_equal':
3635
-							$match_found = (bool) ( $search != '' && $match_value == $search );
3636
-							break;
3637
-						case 'is_not_equal':
3638
-							$match_found = (bool) ( $search != '' && $match_value != $search );
3639
-							break;
3640
-						case 'is_greater_than':
3641
-							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3642
-							break;
3643
-						case 'is_less_than':
3644
-							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3645
-							break;
3646
-						case 'is_empty':
3647
-							$match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3648
-							break;
3649
-						case 'is_not_empty':
3650
-							$match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3651
-							break;
3652
-						case 'is_contains':
3653
-							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3654
-							break;
3655
-						case 'is_not_contains':
3656
-							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3657
-							break;
3658
-					}
3659
-				}
3660
-			}
3661
-
3662
-			$match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3663
-		} else {
3664
-			$field = array();
3665
-
3666
-			// Parse search.
3667
-			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3668
-
3669
-			$match_value = '';
3670
-			$match_found = $match_field === '' ? true : false;
3671
-
3672
-			if ( ! $match_found ) {
3673
-				switch ( $args['condition'] ) {
3674
-					case 'is_equal':
3675
-						$match_found = (bool) ( $search != '' && $match_value == $search );
3676
-						break;
3677
-					case 'is_not_equal':
3678
-						$match_found = (bool) ( $search != '' && $match_value != $search );
3679
-						break;
3680
-					case 'is_greater_than':
3681
-						$match_found = false;
3682
-						break;
3683
-					case 'is_less_than':
3684
-						$match_found = false;
3685
-						break;
3686
-					case 'is_empty':
3687
-						$match_found = true;
3688
-						break;
3689
-					case 'is_not_empty':
3690
-						$match_found = false;
3691
-						break;
3692
-					case 'is_contains':
3693
-						$match_found = false;
3694
-						break;
3695
-					case 'is_not_contains':
3696
-						$match_found = false;
3697
-						break;
3698
-				}
3699
-			}
3700
-
3701
-			$match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3702
-		}
3703
-	}
3704
-
3705
-	return $match_found;
3543
+    global $gd_post;
3544
+
3545
+    $match_found = false;
3546
+
3547
+    if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3548
+        $args['block_visibility'] = true;
3549
+        $args['key'] = $rule['field'];
3550
+        $args['condition'] = $rule['condition'];
3551
+        $args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3552
+
3553
+        if ( $args['key'] == 'street' ) {
3554
+            $args['key'] = 'address';
3555
+        }
3556
+
3557
+        $match_field = $_match_field = $args['key'];
3558
+
3559
+        if ( $match_field == 'address' ) {
3560
+            $match_field = 'street';
3561
+        } elseif ( $match_field == 'post_images' ) {
3562
+            $match_field = 'featured_image';
3563
+        }
3564
+
3565
+        $find_post = $gd_post;
3566
+        $find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3567
+
3568
+        if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3569
+            $find_post = geodir_get_post_info( (int) $find_post->ID );
3570
+            $find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3571
+        }
3572
+
3573
+        if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3574
+            $address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3575
+            $field = array();
3576
+            $empty_field = false;
3577
+
3578
+            $standard_fields = sd_visibility_gd_standard_fields();
3579
+
3580
+            if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3581
+                $package_id = geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
3582
+                $fields = geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
3583
+
3584
+                foreach ( $fields as $field_info ) {
3585
+                    if ( $match_field == $field_info['htmlvar_name'] ) {
3586
+                        $field = $field_info;
3587
+                        break;
3588
+                    } elseif( $_match_field == $field_info['htmlvar_name'] ) {
3589
+                        $field = $field_info;
3590
+                        break;
3591
+                    }
3592
+                }
3593
+
3594
+                if ( empty( $field ) ) {
3595
+                    $empty_field = true;
3596
+                }
3597
+            }
3598
+
3599
+            // Address fields.
3600
+            if ( in_array( $match_field, $address_fields ) && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3601
+                if ( ! empty( $address_fields[ $match_field ] ) ) {
3602
+                    $field = $address_fields[ $match_field ];
3603
+                }
3604
+            } else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3605
+                if ( ! empty( $standard_fields[ $match_field ] ) ) {
3606
+                    $field = $standard_fields[ $match_field ];
3607
+                }
3608
+            }
3609
+
3610
+            // Parse search.
3611
+            $search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3612
+
3613
+            $is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3614
+            $is_date = apply_filters( 'geodir_post_badge_is_date', $is_date, $match_field, $field, $args, $find_post );
3615
+
3616
+            $match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3617
+            $match_found = $match_field === '' ? true : false;
3618
+
3619
+            if ( ! $match_found ) {
3620
+                if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3621
+                    if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3622
+                        $search = '+' . $search;
3623
+                    }
3624
+                    $the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3625
+                    $until_time = strtotime( $the_time . ' ' . $search . ' days' );
3626
+                    $now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3627
+                    if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3628
+                        $match_found = true;
3629
+                    } elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3630
+                        $match_found = true;
3631
+                    }
3632
+                } else {
3633
+                    switch ( $args['condition'] ) {
3634
+                        case 'is_equal':
3635
+                            $match_found = (bool) ( $search != '' && $match_value == $search );
3636
+                            break;
3637
+                        case 'is_not_equal':
3638
+                            $match_found = (bool) ( $search != '' && $match_value != $search );
3639
+                            break;
3640
+                        case 'is_greater_than':
3641
+                            $match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3642
+                            break;
3643
+                        case 'is_less_than':
3644
+                            $match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3645
+                            break;
3646
+                        case 'is_empty':
3647
+                            $match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3648
+                            break;
3649
+                        case 'is_not_empty':
3650
+                            $match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3651
+                            break;
3652
+                        case 'is_contains':
3653
+                            $match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3654
+                            break;
3655
+                        case 'is_not_contains':
3656
+                            $match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3657
+                            break;
3658
+                    }
3659
+                }
3660
+            }
3661
+
3662
+            $match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3663
+        } else {
3664
+            $field = array();
3665
+
3666
+            // Parse search.
3667
+            $search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3668
+
3669
+            $match_value = '';
3670
+            $match_found = $match_field === '' ? true : false;
3671
+
3672
+            if ( ! $match_found ) {
3673
+                switch ( $args['condition'] ) {
3674
+                    case 'is_equal':
3675
+                        $match_found = (bool) ( $search != '' && $match_value == $search );
3676
+                        break;
3677
+                    case 'is_not_equal':
3678
+                        $match_found = (bool) ( $search != '' && $match_value != $search );
3679
+                        break;
3680
+                    case 'is_greater_than':
3681
+                        $match_found = false;
3682
+                        break;
3683
+                    case 'is_less_than':
3684
+                        $match_found = false;
3685
+                        break;
3686
+                    case 'is_empty':
3687
+                        $match_found = true;
3688
+                        break;
3689
+                    case 'is_not_empty':
3690
+                        $match_found = false;
3691
+                        break;
3692
+                    case 'is_contains':
3693
+                        $match_found = false;
3694
+                        break;
3695
+                    case 'is_not_contains':
3696
+                        $match_found = false;
3697
+                        break;
3698
+                }
3699
+            }
3700
+
3701
+            $match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3702
+        }
3703
+    }
3704
+
3705
+    return $match_found;
3706 3706
 }
3707 3707
 
3708 3708
 function sd_gd_field_rule_search( $search, $post_type, $rule, $field = array(), $gd_post = array() ) {
3709
-	global $post;
3710
-
3711
-	if ( ! $search ) {
3712
-		return $search;
3713
-	}
3714
-
3715
-	$orig_search = $search;
3716
-	$_search = strtolower( $search );
3717
-
3718
-	if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3719
-		if ( $search == 'current_user' ) {
3720
-			$search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3721
-		} else if ( $search == 'current_author' ) {
3722
-			$search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3723
-		}
3724
-	} else if ( $_search == 'date_today' ) {
3725
-		$search = date( 'Y-m-d' );
3726
-	} else if ( $_search == 'date_tomorrow' ) {
3727
-		$search = date( 'Y-m-d', strtotime( "+1 day" ) );
3728
-	} else if ( $_search == 'date_yesterday' ) {
3729
-		$search = date( 'Y-m-d', strtotime( "-1 day" ) );
3730
-	} else if ( $_search == 'time_his' ) {
3731
-		$search = date( 'H:i:s' );
3732
-	} else if ( $_search == 'time_hi' ) {
3733
-		$search = date( 'H:i' );
3734
-	} else if ( $_search == 'datetime_now' ) {
3735
-		$search = date( 'Y-m-d H:i:s' );
3736
-	} else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3737
-		$_searches = explode( 'datetime_after_', $_search, 2 );
3738
-
3739
-		if ( ! empty( $_searches[1] ) ) {
3740
-			$search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
-		} else {
3742
-			$search = date( 'Y-m-d H:i:s' );
3743
-		}
3744
-	} else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3745
-		$_searches = explode( 'datetime_before_', $_search, 2 );
3746
-
3747
-		if ( ! empty( $_searches[1] ) ) {
3748
-			$search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
-		} else {
3750
-			$search = date( 'Y-m-d H:i:s' );
3751
-		}
3752
-	} else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3753
-		$_searches = explode( 'date_after_', $_search, 2 );
3754
-
3755
-		if ( ! empty( $_searches[1] ) ) {
3756
-			$search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3757
-		} else {
3758
-			$search = date( 'Y-m-d' );
3759
-		}
3760
-	} else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3761
-		$_searches = explode( 'date_before_', $_search, 2 );
3762
-
3763
-		if ( ! empty( $_searches[1] ) ) {
3764
-			$search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3765
-		} else {
3766
-			$search = date( 'Y-m-d' );
3767
-		}
3768
-	}
3769
-
3770
-	return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3709
+    global $post;
3710
+
3711
+    if ( ! $search ) {
3712
+        return $search;
3713
+    }
3714
+
3715
+    $orig_search = $search;
3716
+    $_search = strtolower( $search );
3717
+
3718
+    if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3719
+        if ( $search == 'current_user' ) {
3720
+            $search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3721
+        } else if ( $search == 'current_author' ) {
3722
+            $search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3723
+        }
3724
+    } else if ( $_search == 'date_today' ) {
3725
+        $search = date( 'Y-m-d' );
3726
+    } else if ( $_search == 'date_tomorrow' ) {
3727
+        $search = date( 'Y-m-d', strtotime( "+1 day" ) );
3728
+    } else if ( $_search == 'date_yesterday' ) {
3729
+        $search = date( 'Y-m-d', strtotime( "-1 day" ) );
3730
+    } else if ( $_search == 'time_his' ) {
3731
+        $search = date( 'H:i:s' );
3732
+    } else if ( $_search == 'time_hi' ) {
3733
+        $search = date( 'H:i' );
3734
+    } else if ( $_search == 'datetime_now' ) {
3735
+        $search = date( 'Y-m-d H:i:s' );
3736
+    } else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3737
+        $_searches = explode( 'datetime_after_', $_search, 2 );
3738
+
3739
+        if ( ! empty( $_searches[1] ) ) {
3740
+            $search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
+        } else {
3742
+            $search = date( 'Y-m-d H:i:s' );
3743
+        }
3744
+    } else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3745
+        $_searches = explode( 'datetime_before_', $_search, 2 );
3746
+
3747
+        if ( ! empty( $_searches[1] ) ) {
3748
+            $search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
+        } else {
3750
+            $search = date( 'Y-m-d H:i:s' );
3751
+        }
3752
+    } else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3753
+        $_searches = explode( 'date_after_', $_search, 2 );
3754
+
3755
+        if ( ! empty( $_searches[1] ) ) {
3756
+            $search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3757
+        } else {
3758
+            $search = date( 'Y-m-d' );
3759
+        }
3760
+    } else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3761
+        $_searches = explode( 'date_before_', $_search, 2 );
3762
+
3763
+        if ( ! empty( $_searches[1] ) ) {
3764
+            $search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3765
+        } else {
3766
+            $search = date( 'Y-m-d' );
3767
+        }
3768
+    }
3769
+
3770
+    return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3771 3771
 }
3772 3772
 
3773 3773
 
3774 3774
 if(!function_exists('sd_blocks_render_blocks')){
3775
-	/**
3776
-	 * Add the shortcodes to the block content if set as an attribute.
3777
-	 *
3778
-	 * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3779
-	 *
3780
-	 * @param $block_content
3781
-	 * @param $parsed_block
3782
-	 * @param $thiss
3783
-	 * @return mixed|string
3784
-	 */
3785
-	function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
3786
-		// Check hide block visibility conditions.
3787
-		if ( ! empty( $parsed_block ) && ! empty( $parsed_block['attrs']['visibility_conditions'] ) && $block_content && strpos( strrev( $block_content ), strrev( ' sd-block-has-rule sd-block-hide-rule"></div>' ) ) === 0 && ! empty( $thiss ) && $thiss->name ) {
3788
-			$match_content = '<div class="' . esc_attr( wp_get_block_default_classname( $thiss->name ) ) . ' sd-block-has-rule sd-block-hide-rule"></div>';
3789
-
3790
-			// Return empty content to hide block.
3791
-			if ( $block_content == $match_content ) {
3792
-				return '';
3793
-			}
3794
-		}
3795
-
3796
-		// Check if ita a nested block that needs to be wrapped
3797
-		if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3798
-			$content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3799
-			$block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3800
-
3801
-			$block_content = do_shortcode($block_content);
3802
-
3803
-		}elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3804
-			$has_warp = false;
3805
-			if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3806
-				$parts = explode('></', $block_content);
3807
-				if(count($parts) === 2){
3808
-					$block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3809
-					$has_warp = true;
3810
-				}
3811
-			}
3812
-			if (!$has_warp) {
3813
-				// Add the shortcode if its not a wrapped block
3814
-				$block_content .= $parsed_block['attrs']['sd_shortcode'];
3815
-			}
3816
-
3817
-			$block_content = do_shortcode($block_content);
3818
-		}
3819
-		return  $block_content;
3820
-	}
3775
+    /**
3776
+     * Add the shortcodes to the block content if set as an attribute.
3777
+     *
3778
+     * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3779
+     *
3780
+     * @param $block_content
3781
+     * @param $parsed_block
3782
+     * @param $thiss
3783
+     * @return mixed|string
3784
+     */
3785
+    function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
3786
+        // Check hide block visibility conditions.
3787
+        if ( ! empty( $parsed_block ) && ! empty( $parsed_block['attrs']['visibility_conditions'] ) && $block_content && strpos( strrev( $block_content ), strrev( ' sd-block-has-rule sd-block-hide-rule"></div>' ) ) === 0 && ! empty( $thiss ) && $thiss->name ) {
3788
+            $match_content = '<div class="' . esc_attr( wp_get_block_default_classname( $thiss->name ) ) . ' sd-block-has-rule sd-block-hide-rule"></div>';
3789
+
3790
+            // Return empty content to hide block.
3791
+            if ( $block_content == $match_content ) {
3792
+                return '';
3793
+            }
3794
+        }
3795
+
3796
+        // Check if ita a nested block that needs to be wrapped
3797
+        if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3798
+            $content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3799
+            $block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3800
+
3801
+            $block_content = do_shortcode($block_content);
3802
+
3803
+        }elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3804
+            $has_warp = false;
3805
+            if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3806
+                $parts = explode('></', $block_content);
3807
+                if(count($parts) === 2){
3808
+                    $block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3809
+                    $has_warp = true;
3810
+                }
3811
+            }
3812
+            if (!$has_warp) {
3813
+                // Add the shortcode if its not a wrapped block
3814
+                $block_content .= $parsed_block['attrs']['sd_shortcode'];
3815
+            }
3816
+
3817
+            $block_content = do_shortcode($block_content);
3818
+        }
3819
+        return  $block_content;
3820
+    }
3821 3821
 }
3822 3822
 
3823 3823
 add_filter('render_block', 'sd_blocks_render_blocks',10,3);
Please login to merge, or discard this patch.
invoicing.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,16 +19,16 @@  discard block
 block discarded – undo
19 19
 
20 20
 // Define constants.
21 21
 if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
22
+    define( 'WPINV_PLUGIN_FILE', __FILE__ );
23 23
 }
24 24
 
25 25
 if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.32' );
26
+    define( 'WPINV_VERSION', '2.8.32' );
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30 30
 if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
31
+    require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
46
-	return $GLOBALS['invoicing'];
46
+    return $GLOBALS['invoicing'];
47 47
 }
48 48
 
49 49
 /**
Please login to merge, or discard this patch.