Passed
Pull Request — master (#817)
by Kiran
05:40
created
includes/class-wpinv.php 2 patches
Indentation   +616 added lines, -616 removed lines patch added patch discarded remove patch
@@ -14,620 +14,620 @@
 block discarded – undo
14 14
  */
15 15
 class WPInv_Plugin {
16 16
 
17
-	/**
18
-	 * GetPaid version.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	public $version;
23
-
24
-	/**
25
-	 * Data container.
26
-	 *
27
-	 * @var array
28
-	 */
29
-	protected $data = array();
30
-
31
-	/**
32
-	 * Form elements instance.
33
-	 *
34
-	 * @var WPInv_Payment_Form_Elements
35
-	 */
36
-	public $form_elements;
37
-
38
-	/**
39
-	 * @var array An array of payment gateways.
40
-	 */
41
-	public $gateways;
42
-
43
-	/**
44
-	 * Class constructor.
45
-	 */
46
-	public function __construct() {
47
-		$this->define_constants();
48
-		$this->includes();
49
-		$this->init_hooks();
50
-		$this->set_properties();
51
-	}
52
-
53
-	/**
54
-	 * Sets a custom data property.
55
-	 *
56
-	 * @param string $prop The prop to set.
57
-	 * @param mixed $value The value to retrieve.
58
-	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
61
-	}
62
-
63
-	/**
64
-	 * Gets a custom data property.
65
-	 *
66
-	 * @param string $prop The prop to set.
67
-	 * @return mixed The value.
68
-	 */
69
-	public function get( $prop ) {
70
-		if ( isset( $this->data[ $prop ] ) ) {
71
-			return $this->data[ $prop ];
72
-		}
73
-
74
-		return null;
75
-	}
76
-
77
-	/**
78
-	 * Define class properties.
79
-	 */
80
-	public function set_properties() {
81
-		// Sessions.
82
-		$this->set( 'session', new WPInv_Session_Handler() );
83
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
84
-		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
85
-
86
-		// Init other objects.
87
-		$this->set( 'notes', new WPInv_Notes() );
88
-		$this->set( 'api', new WPInv_API() );
89
-		$this->set( 'post_types', new GetPaid_Post_Types() );
90
-		$this->set( 'template', new GetPaid_Template() );
91
-		$this->set( 'admin', new GetPaid_Admin() );
92
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
93
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
94
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
95
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
96
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
97
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
98
-	}
99
-
100
-	 /**
101
-	 * Define plugin constants.
102
-	 */
103
-	public function define_constants() {
104
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
105
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
106
-		$this->version = WPINV_VERSION;
107
-	}
108
-
109
-	/**
110
-	 * Hook into actions and filters.
111
-	 *
112
-	 * @since 1.0.19
113
-	 */
114
-	protected function init_hooks() {
115
-		/* Internationalize the text strings used. */
116
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
117
-
118
-		// Init the plugin after WordPress inits.
119
-		add_action( 'init', array( $this, 'init' ), 1 );
120
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
121
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
122
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
123
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
124
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
125
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
126
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
127
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
128
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
129
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
130
-
131
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
132
-		add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
133
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
134
-
135
-		// Fires after registering actions.
136
-		do_action( 'wpinv_actions', $this );
137
-		do_action( 'getpaid_actions', $this );
138
-	}
139
-
140
-	public function plugins_loaded() {
141
-		/* Internationalize the text strings used. */
142
-		$this->load_textdomain();
143
-
144
-		do_action( 'wpinv_loaded' );
145
-
146
-		// Fix oxygen page builder conflict
147
-		if ( function_exists( 'ct_css_output' ) ) {
148
-			wpinv_oxygen_fix_conflict();
149
-		}
150
-	}
151
-
152
-	/**
153
-	 * Load Localisation files.
154
-	 *
155
-	 * Note: the first-loaded translation file overrides any following ones if the same translation is present.
156
-	 *
157
-	 * Locales found in:
158
-	 *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
159
-	 *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
160
-	 *
161
-	 * @since 1.0.0
162
-	 */
163
-	public function load_textdomain() {
164
-		// Determines the current locale.
165
-		if ( function_exists( 'determine_locale' ) ) {
166
-			$locale = determine_locale();
167
-		} else if ( function_exists( 'get_user_locale' ) ) {
168
-			$locale = get_user_locale();
169
-		} else {
170
-			$locale = get_locale();
171
-		}
172
-
173
-		/**
174
-		 * Filter the locale to use for translations.
175
-		 */
176
-		$locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );
177
-
178
-		unload_textdomain( 'invoicing', true );
179
-		load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );
180
-		load_plugin_textdomain( 'invoicing', false, plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' );
181
-	}
182
-
183
-	/**
184
-	 * Include required core files used in admin and on the frontend.
185
-	 */
186
-	public function includes() {
187
-		// Start with the settings.
188
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
189
-
190
-		// Packages/libraries.
191
-		require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
192
-		require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
193
-
194
-		// Load functions.
195
-		require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
196
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
197
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
198
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
199
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
200
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
201
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
202
-		require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
203
-		require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
204
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
205
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
206
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
207
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
208
-		require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
209
-		require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
210
-
211
-		// Register autoloader.
212
-		try {
213
-			spl_autoload_register( array( $this, 'autoload' ), true );
214
-		} catch ( Exception $e ) {
215
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
216
-		}
217
-
218
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
219
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
220
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
221
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
222
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
223
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
224
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
225
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
226
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
227
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
228
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
229
-		require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
230
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
231
-		require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
232
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
233
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
234
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
235
-		require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
236
-		require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
237
-		require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
238
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
239
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
240
-
241
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
242
-			GetPaid_Post_Types_Admin::init();
243
-
244
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
245
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
246
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
247
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
248
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
249
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
250
-			// load the user class only on the users.php page
251
-			global $pagenow;
252
-			if ( $pagenow == 'users.php' ) {
253
-				new WPInv_Admin_Users();
254
-			}
255
-		}
256
-
257
-		// Register cli commands
258
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
259
-			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
260
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
261
-		}
262
-	}
263
-
264
-	/**
265
-	 * Class autoloader
266
-	 *
267
-	 * @param       string $class_name The name of the class to load.
268
-	 * @access      public
269
-	 * @since       1.0.19
270
-	 * @return      void
271
-	 */
272
-	public function autoload( $class_name ) {
273
-		// Normalize the class name...
274
-		$class_name  = strtolower( $class_name );
275
-
276
-		// ... and make sure it is our class.
277
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
278
-			return;
279
-		}
280
-
281
-		// Next, prepare the file name from the class.
282
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
283
-
284
-		// Base path of the classes.
285
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
286
-
287
-		// And an array of possible locations in order of importance.
288
-		$locations = array(
289
-			"$plugin_path/includes",
290
-			"$plugin_path/includes/data-stores",
291
-			"$plugin_path/includes/gateways",
292
-			"$plugin_path/includes/payments",
293
-			"$plugin_path/includes/geolocation",
294
-			"$plugin_path/includes/reports",
295
-			"$plugin_path/includes/api",
296
-			"$plugin_path/includes/admin",
297
-			"$plugin_path/includes/admin/meta-boxes",
298
-		);
299
-
300
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
301
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
302
-				include trailingslashit( $location ) . $file_name;
303
-				break;
304
-			}
305
-		}
306
-	}
307
-
308
-	/**
309
-	 * Inits hooks etc.
310
-	 */
311
-	public function init() {
312
-		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
314
-
315
-		// Maybe upgrade.
316
-		$this->maybe_upgrade_database();
317
-
318
-		// Load default gateways.
319
-		$gateways = apply_filters(
320
-			'getpaid_default_gateways',
321
-			array(
322
-				'manual'        => 'GetPaid_Manual_Gateway',
323
-				'paypal'        => 'GetPaid_Paypal_Gateway',
324
-				'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
-				'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
-				'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
-			)
328
-		);
329
-
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
332
-		}
333
-
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
-			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
337
-		}
338
-
339
-		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
341
-	}
342
-
343
-	/**
344
-	 * Checks if this is an IPN request and processes it.
345
-	 */
346
-	public function maybe_process_ipn() {
347
-		// Ensure that this is an IPN request.
348
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
349
-			return;
350
-		}
351
-
352
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
353
-
354
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
355
-		do_action( "wpinv_verify_{$gateway}_ipn" );
356
-		exit;
357
-	}
358
-
359
-	public function enqueue_scripts() {
360
-		// Fires before adding scripts.
361
-		do_action( 'getpaid_enqueue_scripts' );
362
-
363
-		$localize                         = array();
364
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
365
-		$localize['thousands']            = wpinv_thousands_separator();
366
-		$localize['decimals']             = wpinv_decimal_separator();
367
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
368
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
369
-		$localize['UseTaxes']             = wpinv_use_taxes();
370
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
371
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
372
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
373
-		$localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
374
-
375
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
376
-
377
-		// reCaptcha.
378
-		if ( getpaid_is_recaptcha_enabled() && ( $recaptcha_js = getpaid_recaptcha_api_url() ) ) {
379
-			wp_enqueue_script( 'recaptcha', $recaptcha_js, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
380
-		}
381
-
382
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
383
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
384
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
385
-	}
386
-
387
-	public function wpinv_actions() {
388
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
389
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
390
-		}
391
-
392
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
393
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
394
-		}
395
-	}
396
-
397
-	/**
398
-	 * Fires an action after verifying that a user can fire them.
399
-	 *
400
-	 * Note: If the action is on an invoice, subscription etc, esure that the
401
-	 * current user owns the invoice/subscription.
402
-	 */
403
-	public function maybe_do_authenticated_action() {
404
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
405
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
-			$data = wp_unslash( $_REQUEST );
407
-
408
-			if ( is_user_logged_in() ) {
409
-				do_action( "getpaid_authenticated_action_$key", $data );
410
-			}
411
-
412
-			do_action( "getpaid_unauthenticated_action_$key", $data );
413
-		}
414
-	}
415
-
416
-	public function pre_get_posts( $wp_query ) {
417
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
418
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
419
-		}
420
-
421
-		return $wp_query;
422
-	}
423
-
424
-	/**
425
-	 * Register widgets
426
-	 *
427
-	 */
428
-	public function register_widgets() {
429
-		global $pagenow;
430
-
431
-		// Currently, UX Builder does not work particulaly well with SuperDuper.
432
-		// So we disable our widgets when editing a page with UX Builder.
433
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
434
-			return;
435
-		}
436
-
437
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
438
-
439
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
440
-			// don't initiate in these conditions.
441
-		} else {
442
-			// Only load allowed widgets.
443
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
444
-			$widgets = apply_filters(
445
-				'getpaid_widget_classes',
446
-				array(
447
-					'WPInv_Checkout_Widget',
448
-					'WPInv_History_Widget',
449
-					'WPInv_Receipt_Widget',
450
-					'WPInv_Subscriptions_Widget',
451
-					'WPInv_Buy_Item_Widget',
452
-					'WPInv_Messages_Widget',
453
-					'WPInv_GetPaid_Widget',
454
-					'WPInv_Invoice_Widget',
455
-				)
456
-			);
457
-
458
-			// For each widget...
459
-			foreach ( $widgets as $widget ) {
460
-				// Abort early if it is excluded for this page.
461
-				if ( in_array( $widget, $exclude ) ) {
462
-					continue;
463
-				}
464
-
465
-				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
466
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
467
-					register_widget( $widget );
468
-				} else {
469
-					new $widget();
470
-				}
471
-			}
472
-		}
473
-	}
474
-
475
-	/**
476
-	 * Upgrades the database.
477
-	 *
478
-	 * @since 2.0.2
479
-	 */
480
-	public function maybe_upgrade_database() {
481
-		// Ensure the database tables are up to date.
482
-		GetPaid_Installer::maybe_create_db_tables();
483
-
484
-		$wpi_version = get_option( 'wpinv_version', 0 );
485
-
486
-		if ( $wpi_version == WPINV_VERSION ) {
487
-			return;
488
-		}
489
-
490
-		$installer = new GetPaid_Installer();
491
-
492
-		if ( empty( $wpi_version ) ) {
493
-			return $installer->upgrade_db( 0 );
494
-		}
495
-
496
-		$upgrades  = array(
497
-			'0.0.5' => '004',
498
-			'1.0.3' => '102',
499
-			'2.0.0' => '118',
500
-			'2.8.0' => '279',
501
-		);
502
-
503
-		foreach ( $upgrades as $key => $method ) {
504
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
505
-				return $installer->upgrade_db( $method );
506
-			}
507
-		}
508
-	}
509
-
510
-	/**
511
-	 * Flushes the permalinks if needed.
512
-	 *
513
-	 * @since 2.0.8
514
-	 */
515
-	public function maybe_flush_permalinks() {
516
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
517
-
518
-		if ( ! empty( $flush ) ) {
519
-			flush_rewrite_rules();
520
-			delete_option( 'wpinv_flush_permalinks' );
521
-		}
522
-	}
523
-
524
-	/**
525
-	 * Remove our pages from yoast sitemaps.
526
-	 *
527
-	 * @since 1.0.19
528
-	 * @param int[] $excluded_posts_ids
529
-	 */
530
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
531
-		// Ensure that we have an array.
532
-		if ( ! is_array( $excluded_posts_ids ) ) {
533
-			$excluded_posts_ids = array();
534
-		}
535
-
536
-		// Prepare our pages.
537
-		$our_pages = array();
538
-
539
-		// Checkout page.
540
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
541
-
542
-		// Success page.
543
-		$our_pages[] = wpinv_get_option( 'success_page', false );
544
-
545
-		// Failure page.
546
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
547
-
548
-		// History page.
549
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
550
-
551
-		// Subscriptions page.
552
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
553
-
554
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
555
-
556
-		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
557
-
558
-		return array_unique( $excluded_posts_ids );
559
-	}
560
-
561
-	/**
562
-	 * Remove our pages from yoast sitemaps.
563
-	 *
564
-	 * @since 1.0.19
565
-	 * @param string[] $post_types
566
-	 */
567
-	public function exclude_invoicing_post_types( $post_types ) {
568
-		// Ensure that we have an array.
569
-		if ( ! is_array( $post_types ) ) {
570
-			$post_types = array();
571
-		}
572
-
573
-		// Remove our post types.
574
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
575
-	}
576
-
577
-	/**
578
-	 * Displays additional footer code.
579
-	 *
580
-	 * @since 2.0.0
581
-	 */
582
-	public function wp_footer() {
583
-		wpinv_get_template( 'frontend-footer.php' );
584
-	}
585
-
586
-	/**
587
-	 * Displays additional header code.
588
-	 *
589
-	 * @since 2.0.0
590
-	 */
591
-	public function wp_head() {
592
-		wpinv_get_template( 'frontend-head.php' );
593
-	}
594
-
595
-	/**
596
-	 * Custom query vars.
597
-	 *
598
-	 */
599
-	public function custom_query_vars( $vars ) {
600
-		$vars[] = 'getpaid-ipn';
601
-		return $vars;
602
-	}
603
-
604
-	/**
605
-	 * Add rewrite tags and rules.
606
-	 *
607
-	 */
608
-	public function add_rewrite_rule() {
609
-		$tag = 'getpaid-ipn';
610
-		add_rewrite_tag( "%$tag%", '([^&]+)' );
611
-		add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
612
-	}
613
-
614
-	/**
615
-	 * Processes non-query string ipns.
616
-	 *
617
-	 */
618
-	public function maybe_process_new_ipn( $query ) {
619
-		if ( is_admin() || ! $query->is_main_query() ) {
620
-			return;
621
-		}
622
-
623
-		$gateway = get_query_var( 'getpaid-ipn' );
624
-
625
-		if ( ! empty( $gateway ) ) {
626
-			$gateway = sanitize_text_field( $gateway );
627
-			nocache_headers();
628
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
629
-			do_action( "wpinv_verify_{$gateway}_ipn" );
630
-			exit;
631
-		}
632
-	}
17
+    /**
18
+     * GetPaid version.
19
+     *
20
+     * @var string
21
+     */
22
+    public $version;
23
+
24
+    /**
25
+     * Data container.
26
+     *
27
+     * @var array
28
+     */
29
+    protected $data = array();
30
+
31
+    /**
32
+     * Form elements instance.
33
+     *
34
+     * @var WPInv_Payment_Form_Elements
35
+     */
36
+    public $form_elements;
37
+
38
+    /**
39
+     * @var array An array of payment gateways.
40
+     */
41
+    public $gateways;
42
+
43
+    /**
44
+     * Class constructor.
45
+     */
46
+    public function __construct() {
47
+        $this->define_constants();
48
+        $this->includes();
49
+        $this->init_hooks();
50
+        $this->set_properties();
51
+    }
52
+
53
+    /**
54
+     * Sets a custom data property.
55
+     *
56
+     * @param string $prop The prop to set.
57
+     * @param mixed $value The value to retrieve.
58
+     */
59
+    public function set( $prop, $value ) {
60
+        $this->data[ $prop ] = $value;
61
+    }
62
+
63
+    /**
64
+     * Gets a custom data property.
65
+     *
66
+     * @param string $prop The prop to set.
67
+     * @return mixed The value.
68
+     */
69
+    public function get( $prop ) {
70
+        if ( isset( $this->data[ $prop ] ) ) {
71
+            return $this->data[ $prop ];
72
+        }
73
+
74
+        return null;
75
+    }
76
+
77
+    /**
78
+     * Define class properties.
79
+     */
80
+    public function set_properties() {
81
+        // Sessions.
82
+        $this->set( 'session', new WPInv_Session_Handler() );
83
+        $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
84
+        $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
85
+
86
+        // Init other objects.
87
+        $this->set( 'notes', new WPInv_Notes() );
88
+        $this->set( 'api', new WPInv_API() );
89
+        $this->set( 'post_types', new GetPaid_Post_Types() );
90
+        $this->set( 'template', new GetPaid_Template() );
91
+        $this->set( 'admin', new GetPaid_Admin() );
92
+        $this->set( 'subscriptions', new WPInv_Subscriptions() );
93
+        $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
94
+        $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
95
+        $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
96
+        $this->set( 'payment_forms', new GetPaid_Payment_Forms() );
97
+        $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
98
+    }
99
+
100
+        /**
101
+         * Define plugin constants.
102
+         */
103
+    public function define_constants() {
104
+        define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
105
+        define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
106
+        $this->version = WPINV_VERSION;
107
+    }
108
+
109
+    /**
110
+     * Hook into actions and filters.
111
+     *
112
+     * @since 1.0.19
113
+     */
114
+    protected function init_hooks() {
115
+        /* Internationalize the text strings used. */
116
+        add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
117
+
118
+        // Init the plugin after WordPress inits.
119
+        add_action( 'init', array( $this, 'init' ), 1 );
120
+        add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
121
+        add_action( 'init', array( $this, 'wpinv_actions' ) );
122
+        add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
123
+        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
124
+        add_action( 'wp_footer', array( $this, 'wp_footer' ) );
125
+        add_action( 'wp_head', array( $this, 'wp_head' ) );
126
+        add_action( 'widgets_init', array( $this, 'register_widgets' ) );
127
+        add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
128
+        add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
129
+        add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
130
+
131
+        add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
132
+        add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
133
+        add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
134
+
135
+        // Fires after registering actions.
136
+        do_action( 'wpinv_actions', $this );
137
+        do_action( 'getpaid_actions', $this );
138
+    }
139
+
140
+    public function plugins_loaded() {
141
+        /* Internationalize the text strings used. */
142
+        $this->load_textdomain();
143
+
144
+        do_action( 'wpinv_loaded' );
145
+
146
+        // Fix oxygen page builder conflict
147
+        if ( function_exists( 'ct_css_output' ) ) {
148
+            wpinv_oxygen_fix_conflict();
149
+        }
150
+    }
151
+
152
+    /**
153
+     * Load Localisation files.
154
+     *
155
+     * Note: the first-loaded translation file overrides any following ones if the same translation is present.
156
+     *
157
+     * Locales found in:
158
+     *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
159
+     *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
160
+     *
161
+     * @since 1.0.0
162
+     */
163
+    public function load_textdomain() {
164
+        // Determines the current locale.
165
+        if ( function_exists( 'determine_locale' ) ) {
166
+            $locale = determine_locale();
167
+        } else if ( function_exists( 'get_user_locale' ) ) {
168
+            $locale = get_user_locale();
169
+        } else {
170
+            $locale = get_locale();
171
+        }
172
+
173
+        /**
174
+         * Filter the locale to use for translations.
175
+         */
176
+        $locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );
177
+
178
+        unload_textdomain( 'invoicing', true );
179
+        load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );
180
+        load_plugin_textdomain( 'invoicing', false, plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' );
181
+    }
182
+
183
+    /**
184
+     * Include required core files used in admin and on the frontend.
185
+     */
186
+    public function includes() {
187
+        // Start with the settings.
188
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
189
+
190
+        // Packages/libraries.
191
+        require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
192
+        require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
193
+
194
+        // Load functions.
195
+        require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
196
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
197
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
198
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
199
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
200
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
201
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
202
+        require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
203
+        require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
204
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
205
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
206
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
207
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
208
+        require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
209
+        require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
210
+
211
+        // Register autoloader.
212
+        try {
213
+            spl_autoload_register( array( $this, 'autoload' ), true );
214
+        } catch ( Exception $e ) {
215
+            wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
216
+        }
217
+
218
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
219
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
220
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
221
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
222
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
223
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
224
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
225
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
226
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
227
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
228
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
229
+        require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
230
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
231
+        require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
232
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
233
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
234
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
235
+        require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
236
+        require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
237
+        require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
238
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
239
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
240
+
241
+        if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
242
+            GetPaid_Post_Types_Admin::init();
243
+
244
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
245
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
246
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
247
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
248
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
249
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
250
+            // load the user class only on the users.php page
251
+            global $pagenow;
252
+            if ( $pagenow == 'users.php' ) {
253
+                new WPInv_Admin_Users();
254
+            }
255
+        }
256
+
257
+        // Register cli commands
258
+        if ( defined( 'WP_CLI' ) && WP_CLI ) {
259
+            require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
260
+            WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
261
+        }
262
+    }
263
+
264
+    /**
265
+     * Class autoloader
266
+     *
267
+     * @param       string $class_name The name of the class to load.
268
+     * @access      public
269
+     * @since       1.0.19
270
+     * @return      void
271
+     */
272
+    public function autoload( $class_name ) {
273
+        // Normalize the class name...
274
+        $class_name  = strtolower( $class_name );
275
+
276
+        // ... and make sure it is our class.
277
+        if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
278
+            return;
279
+        }
280
+
281
+        // Next, prepare the file name from the class.
282
+        $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
283
+
284
+        // Base path of the classes.
285
+        $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
286
+
287
+        // And an array of possible locations in order of importance.
288
+        $locations = array(
289
+            "$plugin_path/includes",
290
+            "$plugin_path/includes/data-stores",
291
+            "$plugin_path/includes/gateways",
292
+            "$plugin_path/includes/payments",
293
+            "$plugin_path/includes/geolocation",
294
+            "$plugin_path/includes/reports",
295
+            "$plugin_path/includes/api",
296
+            "$plugin_path/includes/admin",
297
+            "$plugin_path/includes/admin/meta-boxes",
298
+        );
299
+
300
+        foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
301
+            if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
302
+                include trailingslashit( $location ) . $file_name;
303
+                break;
304
+            }
305
+        }
306
+    }
307
+
308
+    /**
309
+     * Inits hooks etc.
310
+     */
311
+    public function init() {
312
+        // Fires before getpaid inits.
313
+        do_action( 'before_getpaid_init', $this );
314
+
315
+        // Maybe upgrade.
316
+        $this->maybe_upgrade_database();
317
+
318
+        // Load default gateways.
319
+        $gateways = apply_filters(
320
+            'getpaid_default_gateways',
321
+            array(
322
+                'manual'        => 'GetPaid_Manual_Gateway',
323
+                'paypal'        => 'GetPaid_Paypal_Gateway',
324
+                'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
+                'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
+                'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
+            )
328
+        );
329
+
330
+        foreach ( $gateways as $id => $class ) {
331
+            $this->gateways[ $id ] = new $class();
332
+        }
333
+
334
+        if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
+            GetPaid_Installer::rename_gateways_label();
336
+            update_option( 'wpinv_renamed_gateways', 'yes' );
337
+        }
338
+
339
+        // Fires after getpaid inits.
340
+        do_action( 'getpaid_init', $this );
341
+    }
342
+
343
+    /**
344
+     * Checks if this is an IPN request and processes it.
345
+     */
346
+    public function maybe_process_ipn() {
347
+        // Ensure that this is an IPN request.
348
+        if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
349
+            return;
350
+        }
351
+
352
+        $gateway = sanitize_text_field( $_GET['wpi-gateway'] );
353
+
354
+        do_action( 'wpinv_verify_payment_ipn', $gateway );
355
+        do_action( "wpinv_verify_{$gateway}_ipn" );
356
+        exit;
357
+    }
358
+
359
+    public function enqueue_scripts() {
360
+        // Fires before adding scripts.
361
+        do_action( 'getpaid_enqueue_scripts' );
362
+
363
+        $localize                         = array();
364
+        $localize['ajax_url']             = admin_url( 'admin-ajax.php' );
365
+        $localize['thousands']            = wpinv_thousands_separator();
366
+        $localize['decimals']             = wpinv_decimal_separator();
367
+        $localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
368
+        $localize['txtComplete']          = __( 'Continue', 'invoicing' );
369
+        $localize['UseTaxes']             = wpinv_use_taxes();
370
+        $localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
371
+        $localize['loading']              = __( 'Loading...', 'invoicing' );
372
+        $localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
373
+        $localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
374
+
375
+        $localize = apply_filters( 'wpinv_front_js_localize', $localize );
376
+
377
+        // reCaptcha.
378
+        if ( getpaid_is_recaptcha_enabled() && ( $recaptcha_js = getpaid_recaptcha_api_url() ) ) {
379
+            wp_enqueue_script( 'recaptcha', $recaptcha_js, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
380
+        }
381
+
382
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
383
+        wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
384
+        wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
385
+    }
386
+
387
+    public function wpinv_actions() {
388
+        if ( isset( $_REQUEST['wpi_action'] ) ) {
389
+            do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
390
+        }
391
+
392
+        if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
393
+            include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
394
+        }
395
+    }
396
+
397
+    /**
398
+     * Fires an action after verifying that a user can fire them.
399
+     *
400
+     * Note: If the action is on an invoice, subscription etc, esure that the
401
+     * current user owns the invoice/subscription.
402
+     */
403
+    public function maybe_do_authenticated_action() {
404
+        if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
405
+            $key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
+            $data = wp_unslash( $_REQUEST );
407
+
408
+            if ( is_user_logged_in() ) {
409
+                do_action( "getpaid_authenticated_action_$key", $data );
410
+            }
411
+
412
+            do_action( "getpaid_unauthenticated_action_$key", $data );
413
+        }
414
+    }
415
+
416
+    public function pre_get_posts( $wp_query ) {
417
+        if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
418
+            $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
419
+        }
420
+
421
+        return $wp_query;
422
+    }
423
+
424
+    /**
425
+     * Register widgets
426
+     *
427
+     */
428
+    public function register_widgets() {
429
+        global $pagenow;
430
+
431
+        // Currently, UX Builder does not work particulaly well with SuperDuper.
432
+        // So we disable our widgets when editing a page with UX Builder.
433
+        if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
434
+            return;
435
+        }
436
+
437
+        $block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
438
+
439
+        if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
440
+            // don't initiate in these conditions.
441
+        } else {
442
+            // Only load allowed widgets.
443
+            $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
444
+            $widgets = apply_filters(
445
+                'getpaid_widget_classes',
446
+                array(
447
+                    'WPInv_Checkout_Widget',
448
+                    'WPInv_History_Widget',
449
+                    'WPInv_Receipt_Widget',
450
+                    'WPInv_Subscriptions_Widget',
451
+                    'WPInv_Buy_Item_Widget',
452
+                    'WPInv_Messages_Widget',
453
+                    'WPInv_GetPaid_Widget',
454
+                    'WPInv_Invoice_Widget',
455
+                )
456
+            );
457
+
458
+            // For each widget...
459
+            foreach ( $widgets as $widget ) {
460
+                // Abort early if it is excluded for this page.
461
+                if ( in_array( $widget, $exclude ) ) {
462
+                    continue;
463
+                }
464
+
465
+                // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
466
+                if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
467
+                    register_widget( $widget );
468
+                } else {
469
+                    new $widget();
470
+                }
471
+            }
472
+        }
473
+    }
474
+
475
+    /**
476
+     * Upgrades the database.
477
+     *
478
+     * @since 2.0.2
479
+     */
480
+    public function maybe_upgrade_database() {
481
+        // Ensure the database tables are up to date.
482
+        GetPaid_Installer::maybe_create_db_tables();
483
+
484
+        $wpi_version = get_option( 'wpinv_version', 0 );
485
+
486
+        if ( $wpi_version == WPINV_VERSION ) {
487
+            return;
488
+        }
489
+
490
+        $installer = new GetPaid_Installer();
491
+
492
+        if ( empty( $wpi_version ) ) {
493
+            return $installer->upgrade_db( 0 );
494
+        }
495
+
496
+        $upgrades  = array(
497
+            '0.0.5' => '004',
498
+            '1.0.3' => '102',
499
+            '2.0.0' => '118',
500
+            '2.8.0' => '279',
501
+        );
502
+
503
+        foreach ( $upgrades as $key => $method ) {
504
+            if ( version_compare( $wpi_version, $key, '<' ) ) {
505
+                return $installer->upgrade_db( $method );
506
+            }
507
+        }
508
+    }
509
+
510
+    /**
511
+     * Flushes the permalinks if needed.
512
+     *
513
+     * @since 2.0.8
514
+     */
515
+    public function maybe_flush_permalinks() {
516
+        $flush = get_option( 'wpinv_flush_permalinks', 0 );
517
+
518
+        if ( ! empty( $flush ) ) {
519
+            flush_rewrite_rules();
520
+            delete_option( 'wpinv_flush_permalinks' );
521
+        }
522
+    }
523
+
524
+    /**
525
+     * Remove our pages from yoast sitemaps.
526
+     *
527
+     * @since 1.0.19
528
+     * @param int[] $excluded_posts_ids
529
+     */
530
+    public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
531
+        // Ensure that we have an array.
532
+        if ( ! is_array( $excluded_posts_ids ) ) {
533
+            $excluded_posts_ids = array();
534
+        }
535
+
536
+        // Prepare our pages.
537
+        $our_pages = array();
538
+
539
+        // Checkout page.
540
+        $our_pages[] = wpinv_get_option( 'checkout_page', false );
541
+
542
+        // Success page.
543
+        $our_pages[] = wpinv_get_option( 'success_page', false );
544
+
545
+        // Failure page.
546
+        $our_pages[] = wpinv_get_option( 'failure_page', false );
547
+
548
+        // History page.
549
+        $our_pages[] = wpinv_get_option( 'invoice_history_page', false );
550
+
551
+        // Subscriptions page.
552
+        $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
553
+
554
+        $our_pages   = array_map( 'intval', array_filter( $our_pages ) );
555
+
556
+        $excluded_posts_ids = $excluded_posts_ids + $our_pages;
557
+
558
+        return array_unique( $excluded_posts_ids );
559
+    }
560
+
561
+    /**
562
+     * Remove our pages from yoast sitemaps.
563
+     *
564
+     * @since 1.0.19
565
+     * @param string[] $post_types
566
+     */
567
+    public function exclude_invoicing_post_types( $post_types ) {
568
+        // Ensure that we have an array.
569
+        if ( ! is_array( $post_types ) ) {
570
+            $post_types = array();
571
+        }
572
+
573
+        // Remove our post types.
574
+        return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
575
+    }
576
+
577
+    /**
578
+     * Displays additional footer code.
579
+     *
580
+     * @since 2.0.0
581
+     */
582
+    public function wp_footer() {
583
+        wpinv_get_template( 'frontend-footer.php' );
584
+    }
585
+
586
+    /**
587
+     * Displays additional header code.
588
+     *
589
+     * @since 2.0.0
590
+     */
591
+    public function wp_head() {
592
+        wpinv_get_template( 'frontend-head.php' );
593
+    }
594
+
595
+    /**
596
+     * Custom query vars.
597
+     *
598
+     */
599
+    public function custom_query_vars( $vars ) {
600
+        $vars[] = 'getpaid-ipn';
601
+        return $vars;
602
+    }
603
+
604
+    /**
605
+     * Add rewrite tags and rules.
606
+     *
607
+     */
608
+    public function add_rewrite_rule() {
609
+        $tag = 'getpaid-ipn';
610
+        add_rewrite_tag( "%$tag%", '([^&]+)' );
611
+        add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
612
+    }
613
+
614
+    /**
615
+     * Processes non-query string ipns.
616
+     *
617
+     */
618
+    public function maybe_process_new_ipn( $query ) {
619
+        if ( is_admin() || ! $query->is_main_query() ) {
620
+            return;
621
+        }
622
+
623
+        $gateway = get_query_var( 'getpaid-ipn' );
624
+
625
+        if ( ! empty( $gateway ) ) {
626
+            $gateway = sanitize_text_field( $gateway );
627
+            nocache_headers();
628
+            do_action( 'wpinv_verify_payment_ipn', $gateway );
629
+            do_action( "wpinv_verify_{$gateway}_ipn" );
630
+            exit;
631
+        }
632
+    }
633 633
 }
Please login to merge, or discard this patch.
Spacing   +141 added lines, -141 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Main Invoicing class.
@@ -56,8 +56,8 @@  discard block
 block discarded – undo
56 56
 	 * @param string $prop The prop to set.
57 57
 	 * @param mixed $value The value to retrieve.
58 58
 	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
59
+	public function set($prop, $value) {
60
+		$this->data[$prop] = $value;
61 61
 	}
62 62
 
63 63
 	/**
@@ -66,9 +66,9 @@  discard block
 block discarded – undo
66 66
 	 * @param string $prop The prop to set.
67 67
 	 * @return mixed The value.
68 68
 	 */
69
-	public function get( $prop ) {
70
-		if ( isset( $this->data[ $prop ] ) ) {
71
-			return $this->data[ $prop ];
69
+	public function get($prop) {
70
+		if (isset($this->data[$prop])) {
71
+			return $this->data[$prop];
72 72
 		}
73 73
 
74 74
 		return null;
@@ -79,30 +79,30 @@  discard block
 block discarded – undo
79 79
 	 */
80 80
 	public function set_properties() {
81 81
 		// Sessions.
82
-		$this->set( 'session', new WPInv_Session_Handler() );
83
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
82
+		$this->set('session', new WPInv_Session_Handler());
83
+		$GLOBALS['wpi_session'] = $this->get('session'); // Backwards compatibility.
84 84
 		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
85 85
 
86 86
 		// Init other objects.
87
-		$this->set( 'notes', new WPInv_Notes() );
88
-		$this->set( 'api', new WPInv_API() );
89
-		$this->set( 'post_types', new GetPaid_Post_Types() );
90
-		$this->set( 'template', new GetPaid_Template() );
91
-		$this->set( 'admin', new GetPaid_Admin() );
92
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
93
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
94
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
95
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
96
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
97
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
87
+		$this->set('notes', new WPInv_Notes());
88
+		$this->set('api', new WPInv_API());
89
+		$this->set('post_types', new GetPaid_Post_Types());
90
+		$this->set('template', new GetPaid_Template());
91
+		$this->set('admin', new GetPaid_Admin());
92
+		$this->set('subscriptions', new WPInv_Subscriptions());
93
+		$this->set('invoice_emails', new GetPaid_Invoice_Notification_Emails());
94
+		$this->set('subscription_emails', new GetPaid_Subscription_Notification_Emails());
95
+		$this->set('daily_maintenace', new GetPaid_Daily_Maintenance());
96
+		$this->set('payment_forms', new GetPaid_Payment_Forms());
97
+		$this->set('maxmind', new GetPaid_MaxMind_Geolocation());
98 98
 	}
99 99
 
100 100
 	 /**
101 101
 	 * Define plugin constants.
102 102
 	 */
103 103
 	public function define_constants() {
104
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
105
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
104
+		define('WPINV_PLUGIN_DIR', plugin_dir_path(WPINV_PLUGIN_FILE));
105
+		define('WPINV_PLUGIN_URL', plugin_dir_url(WPINV_PLUGIN_FILE));
106 106
 		$this->version = WPINV_VERSION;
107 107
 	}
108 108
 
@@ -113,38 +113,38 @@  discard block
 block discarded – undo
113 113
 	 */
114 114
 	protected function init_hooks() {
115 115
 		/* Internationalize the text strings used. */
116
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
116
+		add_action('plugins_loaded', array(&$this, 'plugins_loaded'));
117 117
 
118 118
 		// Init the plugin after WordPress inits.
119
-		add_action( 'init', array( $this, 'init' ), 1 );
120
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
121
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
122
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
123
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
124
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
125
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
126
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
127
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
128
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
129
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
130
-
131
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
132
-		add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
133
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
119
+		add_action('init', array($this, 'init'), 1);
120
+		add_action('init', array($this, 'maybe_process_ipn'), 10);
121
+		add_action('init', array($this, 'wpinv_actions'));
122
+		add_action('init', array($this, 'maybe_do_authenticated_action'), 100);
123
+		add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 11);
124
+		add_action('wp_footer', array($this, 'wp_footer'));
125
+		add_action('wp_head', array($this, 'wp_head'));
126
+		add_action('widgets_init', array($this, 'register_widgets'));
127
+		add_filter('wpseo_exclude_from_sitemap_by_post_ids', array($this, 'wpseo_exclude_from_sitemap_by_post_ids'));
128
+		add_filter('the_seo_framework_sitemap_supported_post_types', array($this, 'exclude_invoicing_post_types'));
129
+		add_filter('pre_get_posts', array(&$this, 'pre_get_posts'));
130
+
131
+		add_filter('query_vars', array($this, 'custom_query_vars'));
132
+		add_action('init', array($this, 'add_rewrite_rule'), 10, 0);
133
+		add_action('pre_get_posts', array($this, 'maybe_process_new_ipn'), 1);
134 134
 
135 135
 		// Fires after registering actions.
136
-		do_action( 'wpinv_actions', $this );
137
-		do_action( 'getpaid_actions', $this );
136
+		do_action('wpinv_actions', $this);
137
+		do_action('getpaid_actions', $this);
138 138
 	}
139 139
 
140 140
 	public function plugins_loaded() {
141 141
 		/* Internationalize the text strings used. */
142 142
 		$this->load_textdomain();
143 143
 
144
-		do_action( 'wpinv_loaded' );
144
+		do_action('wpinv_loaded');
145 145
 
146 146
 		// Fix oxygen page builder conflict
147
-		if ( function_exists( 'ct_css_output' ) ) {
147
+		if (function_exists('ct_css_output')) {
148 148
 			wpinv_oxygen_fix_conflict();
149 149
 		}
150 150
 	}
@@ -162,9 +162,9 @@  discard block
 block discarded – undo
162 162
 	 */
163 163
 	public function load_textdomain() {
164 164
 		// Determines the current locale.
165
-		if ( function_exists( 'determine_locale' ) ) {
165
+		if (function_exists('determine_locale')) {
166 166
 			$locale = determine_locale();
167
-		} else if ( function_exists( 'get_user_locale' ) ) {
167
+		} else if (function_exists('get_user_locale')) {
168 168
 			$locale = get_user_locale();
169 169
 		} else {
170 170
 			$locale = get_locale();
@@ -173,11 +173,11 @@  discard block
 block discarded – undo
173 173
 		/**
174 174
 		 * Filter the locale to use for translations.
175 175
 		 */
176
-		$locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );
176
+		$locale = apply_filters('plugin_locale', $locale, 'invoicing');
177 177
 
178
-		unload_textdomain( 'invoicing', true );
179
-		load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );
180
-		load_plugin_textdomain( 'invoicing', false, plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/' );
178
+		unload_textdomain('invoicing', true);
179
+		load_textdomain('invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo');
180
+		load_plugin_textdomain('invoicing', false, plugin_basename(dirname(WPINV_PLUGIN_FILE)) . '/languages/');
181 181
 	}
182 182
 
183 183
 	/**
@@ -210,9 +210,9 @@  discard block
 block discarded – undo
210 210
 
211 211
 		// Register autoloader.
212 212
 		try {
213
-			spl_autoload_register( array( $this, 'autoload' ), true );
214
-		} catch ( Exception $e ) {
215
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
213
+			spl_autoload_register(array($this, 'autoload'), true);
214
+		} catch (Exception $e) {
215
+			wpinv_error_log($e->getMessage(), '', __FILE__, 149, true);
216 216
 		}
217 217
 
218 218
 		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
 		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
239 239
 		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
240 240
 
241
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
241
+		if (is_admin() || (defined('WP_CLI') && WP_CLI)) {
242 242
 			GetPaid_Post_Types_Admin::init();
243 243
 
244 244
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
@@ -249,15 +249,15 @@  discard block
 block discarded – undo
249 249
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
250 250
 			// load the user class only on the users.php page
251 251
 			global $pagenow;
252
-			if ( $pagenow == 'users.php' ) {
252
+			if ($pagenow == 'users.php') {
253 253
 				new WPInv_Admin_Users();
254 254
 			}
255 255
 		}
256 256
 
257 257
 		// Register cli commands
258
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
258
+		if (defined('WP_CLI') && WP_CLI) {
259 259
 			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
260
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
260
+			WP_CLI::add_command('invoicing', 'WPInv_CLI');
261 261
 		}
262 262
 	}
263 263
 
@@ -269,20 +269,20 @@  discard block
 block discarded – undo
269 269
 	 * @since       1.0.19
270 270
 	 * @return      void
271 271
 	 */
272
-	public function autoload( $class_name ) {
272
+	public function autoload($class_name) {
273 273
 		// Normalize the class name...
274
-		$class_name  = strtolower( $class_name );
274
+		$class_name = strtolower($class_name);
275 275
 
276 276
 		// ... and make sure it is our class.
277
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
277
+		if (false === strpos($class_name, 'getpaid_') && false === strpos($class_name, 'wpinv_')) {
278 278
 			return;
279 279
 		}
280 280
 
281 281
 		// Next, prepare the file name from the class.
282
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
282
+		$file_name = 'class-' . str_replace('_', '-', $class_name) . '.php';
283 283
 
284 284
 		// Base path of the classes.
285
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
285
+		$plugin_path = untrailingslashit(WPINV_PLUGIN_DIR);
286 286
 
287 287
 		// And an array of possible locations in order of importance.
288 288
 		$locations = array(
@@ -297,9 +297,9 @@  discard block
 block discarded – undo
297 297
 			"$plugin_path/includes/admin/meta-boxes",
298 298
 		);
299 299
 
300
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
301
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
302
-				include trailingslashit( $location ) . $file_name;
300
+		foreach (apply_filters('getpaid_autoload_locations', $locations) as $location) {
301
+			if (file_exists(trailingslashit($location) . $file_name)) {
302
+				include trailingslashit($location) . $file_name;
303 303
 				break;
304 304
 			}
305 305
 		}
@@ -310,7 +310,7 @@  discard block
 block discarded – undo
310 310
 	 */
311 311
 	public function init() {
312 312
 		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
313
+		do_action('before_getpaid_init', $this);
314 314
 
315 315
 		// Maybe upgrade.
316 316
 		$this->maybe_upgrade_database();
@@ -327,17 +327,17 @@  discard block
 block discarded – undo
327 327
 			)
328 328
 		);
329 329
 
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
330
+		foreach ($gateways as $id => $class) {
331
+			$this->gateways[$id] = new $class();
332 332
 		}
333 333
 
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
334
+		if ('yes' != get_option('wpinv_renamed_gateways')) {
335 335
 			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
336
+			update_option('wpinv_renamed_gateways', 'yes');
337 337
 		}
338 338
 
339 339
 		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
340
+		do_action('getpaid_init', $this);
341 341
 	}
342 342
 
343 343
 	/**
@@ -345,52 +345,52 @@  discard block
 block discarded – undo
345 345
 	 */
346 346
 	public function maybe_process_ipn() {
347 347
 		// Ensure that this is an IPN request.
348
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
348
+		if (empty($_GET['wpi-listener']) || 'IPN' !== $_GET['wpi-listener'] || empty($_GET['wpi-gateway'])) {
349 349
 			return;
350 350
 		}
351 351
 
352
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
352
+		$gateway = sanitize_text_field($_GET['wpi-gateway']);
353 353
 
354
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
355
-		do_action( "wpinv_verify_{$gateway}_ipn" );
354
+		do_action('wpinv_verify_payment_ipn', $gateway);
355
+		do_action("wpinv_verify_{$gateway}_ipn");
356 356
 		exit;
357 357
 	}
358 358
 
359 359
 	public function enqueue_scripts() {
360 360
 		// Fires before adding scripts.
361
-		do_action( 'getpaid_enqueue_scripts' );
361
+		do_action('getpaid_enqueue_scripts');
362 362
 
363 363
 		$localize                         = array();
364
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
364
+		$localize['ajax_url']             = admin_url('admin-ajax.php');
365 365
 		$localize['thousands']            = wpinv_thousands_separator();
366 366
 		$localize['decimals']             = wpinv_decimal_separator();
367
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
368
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
367
+		$localize['nonce']                = wp_create_nonce('wpinv-nonce');
368
+		$localize['txtComplete']          = __('Continue', 'invoicing');
369 369
 		$localize['UseTaxes']             = wpinv_use_taxes();
370
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
371
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
372
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
370
+		$localize['formNonce']            = wp_create_nonce('getpaid_form_nonce');
371
+		$localize['loading']              = __('Loading...', 'invoicing');
372
+		$localize['connectionError']      = __('Could not establish a connection to the server.', 'invoicing');
373 373
 		$localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
374 374
 
375
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
375
+		$localize = apply_filters('wpinv_front_js_localize', $localize);
376 376
 
377 377
 		// reCaptcha.
378
-		if ( getpaid_is_recaptcha_enabled() && ( $recaptcha_js = getpaid_recaptcha_api_url() ) ) {
379
-			wp_enqueue_script( 'recaptcha', $recaptcha_js, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
378
+		if (getpaid_is_recaptcha_enabled() && ($recaptcha_js = getpaid_recaptcha_api_url())) {
379
+			wp_enqueue_script('recaptcha', $recaptcha_js, array(), null, true); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
380 380
 		}
381 381
 
382
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
383
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
384
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
382
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js');
383
+		wp_enqueue_script('wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array('jquery'), $version, true);
384
+		wp_localize_script('wpinv-front-script', 'WPInv', $localize);
385 385
 	}
386 386
 
387 387
 	public function wpinv_actions() {
388
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
389
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
388
+		if (isset($_REQUEST['wpi_action'])) {
389
+			do_action('wpinv_' . wpinv_sanitize_key($_REQUEST['wpi_action']), $_REQUEST);
390 390
 		}
391 391
 
392
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
393
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
392
+		if (defined('WP_ALL_IMPORT_ROOT_DIR')) {
393
+			include plugin_dir_path(__FILE__) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
394 394
 		}
395 395
 	}
396 396
 
@@ -401,21 +401,21 @@  discard block
 block discarded – undo
401 401
 	 * current user owns the invoice/subscription.
402 402
 	 */
403 403
 	public function maybe_do_authenticated_action() {
404
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
405
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
406
-			$data = wp_unslash( $_REQUEST );
404
+		if (isset($_REQUEST['getpaid-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
405
+			$key  = sanitize_key($_REQUEST['getpaid-action']);
406
+			$data = wp_unslash($_REQUEST);
407 407
 
408
-			if ( is_user_logged_in() ) {
409
-				do_action( "getpaid_authenticated_action_$key", $data );
408
+			if (is_user_logged_in()) {
409
+				do_action("getpaid_authenticated_action_$key", $data);
410 410
 			}
411 411
 
412
-			do_action( "getpaid_unauthenticated_action_$key", $data );
412
+			do_action("getpaid_unauthenticated_action_$key", $data);
413 413
 		}
414 414
 	}
415 415
 
416
-	public function pre_get_posts( $wp_query ) {
417
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
418
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
416
+	public function pre_get_posts($wp_query) {
417
+		if (!is_admin() && !empty($wp_query->query_vars['post_type']) && getpaid_is_invoice_post_type($wp_query->query_vars['post_type']) && is_user_logged_in() && is_single() && $wp_query->is_main_query()) {
418
+			$wp_query->query_vars['post_status'] = array_keys(wpinv_get_invoice_statuses(false, false, $wp_query->query_vars['post_type']));
419 419
 		}
420 420
 
421 421
 		return $wp_query;
@@ -430,17 +430,17 @@  discard block
 block discarded – undo
430 430
 
431 431
 		// Currently, UX Builder does not work particulaly well with SuperDuper.
432 432
 		// So we disable our widgets when editing a page with UX Builder.
433
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
433
+		if (function_exists('ux_builder_is_active') && ux_builder_is_active()) {
434 434
 			return;
435 435
 		}
436 436
 
437
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
437
+		$block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array();
438 438
 
439
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
439
+		if (is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) {
440 440
 			// don't initiate in these conditions.
441 441
 		} else {
442 442
 			// Only load allowed widgets.
443
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
443
+			$exclude = function_exists('sd_widget_exclude') ? sd_widget_exclude() : array();
444 444
 			$widgets = apply_filters(
445 445
 				'getpaid_widget_classes',
446 446
 				array(
@@ -456,15 +456,15 @@  discard block
 block discarded – undo
456 456
 			);
457 457
 
458 458
 			// For each widget...
459
-			foreach ( $widgets as $widget ) {
459
+			foreach ($widgets as $widget) {
460 460
 				// Abort early if it is excluded for this page.
461
-				if ( in_array( $widget, $exclude ) ) {
461
+				if (in_array($widget, $exclude)) {
462 462
 					continue;
463 463
 				}
464 464
 
465 465
 				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
466
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
467
-					register_widget( $widget );
466
+				if (is_subclass_of($widget, 'WP_Widget')) {
467
+					register_widget($widget);
468 468
 				} else {
469 469
 					new $widget();
470 470
 				}
@@ -481,28 +481,28 @@  discard block
 block discarded – undo
481 481
 		// Ensure the database tables are up to date.
482 482
 		GetPaid_Installer::maybe_create_db_tables();
483 483
 
484
-		$wpi_version = get_option( 'wpinv_version', 0 );
484
+		$wpi_version = get_option('wpinv_version', 0);
485 485
 
486
-		if ( $wpi_version == WPINV_VERSION ) {
486
+		if ($wpi_version == WPINV_VERSION) {
487 487
 			return;
488 488
 		}
489 489
 
490 490
 		$installer = new GetPaid_Installer();
491 491
 
492
-		if ( empty( $wpi_version ) ) {
493
-			return $installer->upgrade_db( 0 );
492
+		if (empty($wpi_version)) {
493
+			return $installer->upgrade_db(0);
494 494
 		}
495 495
 
496
-		$upgrades  = array(
496
+		$upgrades = array(
497 497
 			'0.0.5' => '004',
498 498
 			'1.0.3' => '102',
499 499
 			'2.0.0' => '118',
500 500
 			'2.8.0' => '279',
501 501
 		);
502 502
 
503
-		foreach ( $upgrades as $key => $method ) {
504
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
505
-				return $installer->upgrade_db( $method );
503
+		foreach ($upgrades as $key => $method) {
504
+			if (version_compare($wpi_version, $key, '<')) {
505
+				return $installer->upgrade_db($method);
506 506
 			}
507 507
 		}
508 508
 	}
@@ -513,11 +513,11 @@  discard block
 block discarded – undo
513 513
 	 * @since 2.0.8
514 514
 	 */
515 515
 	public function maybe_flush_permalinks() {
516
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
516
+		$flush = get_option('wpinv_flush_permalinks', 0);
517 517
 
518
-		if ( ! empty( $flush ) ) {
518
+		if (!empty($flush)) {
519 519
 			flush_rewrite_rules();
520
-			delete_option( 'wpinv_flush_permalinks' );
520
+			delete_option('wpinv_flush_permalinks');
521 521
 		}
522 522
 	}
523 523
 
@@ -527,9 +527,9 @@  discard block
 block discarded – undo
527 527
 	 * @since 1.0.19
528 528
 	 * @param int[] $excluded_posts_ids
529 529
 	 */
530
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
530
+	public function wpseo_exclude_from_sitemap_by_post_ids($excluded_posts_ids) {
531 531
 		// Ensure that we have an array.
532
-		if ( ! is_array( $excluded_posts_ids ) ) {
532
+		if (!is_array($excluded_posts_ids)) {
533 533
 			$excluded_posts_ids = array();
534 534
 		}
535 535
 
@@ -537,25 +537,25 @@  discard block
 block discarded – undo
537 537
 		$our_pages = array();
538 538
 
539 539
 		// Checkout page.
540
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
540
+		$our_pages[] = wpinv_get_option('checkout_page', false);
541 541
 
542 542
 		// Success page.
543
-		$our_pages[] = wpinv_get_option( 'success_page', false );
543
+		$our_pages[] = wpinv_get_option('success_page', false);
544 544
 
545 545
 		// Failure page.
546
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
546
+		$our_pages[] = wpinv_get_option('failure_page', false);
547 547
 
548 548
 		// History page.
549
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
549
+		$our_pages[] = wpinv_get_option('invoice_history_page', false);
550 550
 
551 551
 		// Subscriptions page.
552
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
552
+		$our_pages[] = wpinv_get_option('invoice_subscription_page', false);
553 553
 
554
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
554
+		$our_pages   = array_map('intval', array_filter($our_pages));
555 555
 
556 556
 		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
557 557
 
558
-		return array_unique( $excluded_posts_ids );
558
+		return array_unique($excluded_posts_ids);
559 559
 	}
560 560
 
561 561
 	/**
@@ -564,14 +564,14 @@  discard block
 block discarded – undo
564 564
 	 * @since 1.0.19
565 565
 	 * @param string[] $post_types
566 566
 	 */
567
-	public function exclude_invoicing_post_types( $post_types ) {
567
+	public function exclude_invoicing_post_types($post_types) {
568 568
 		// Ensure that we have an array.
569
-		if ( ! is_array( $post_types ) ) {
569
+		if (!is_array($post_types)) {
570 570
 			$post_types = array();
571 571
 		}
572 572
 
573 573
 		// Remove our post types.
574
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
574
+		return array_diff($post_types, array_keys(getpaid_get_invoice_post_types()));
575 575
 	}
576 576
 
577 577
 	/**
@@ -580,7 +580,7 @@  discard block
 block discarded – undo
580 580
 	 * @since 2.0.0
581 581
 	 */
582 582
 	public function wp_footer() {
583
-		wpinv_get_template( 'frontend-footer.php' );
583
+		wpinv_get_template('frontend-footer.php');
584 584
 	}
585 585
 
586 586
 	/**
@@ -589,14 +589,14 @@  discard block
 block discarded – undo
589 589
 	 * @since 2.0.0
590 590
 	 */
591 591
 	public function wp_head() {
592
-		wpinv_get_template( 'frontend-head.php' );
592
+		wpinv_get_template('frontend-head.php');
593 593
 	}
594 594
 
595 595
 	/**
596 596
 	 * Custom query vars.
597 597
 	 *
598 598
 	 */
599
-	public function custom_query_vars( $vars ) {
599
+	public function custom_query_vars($vars) {
600 600
 		$vars[] = 'getpaid-ipn';
601 601
 		return $vars;
602 602
 	}
@@ -607,26 +607,26 @@  discard block
 block discarded – undo
607 607
 	 */
608 608
 	public function add_rewrite_rule() {
609 609
 		$tag = 'getpaid-ipn';
610
-		add_rewrite_tag( "%$tag%", '([^&]+)' );
611
-		add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
610
+		add_rewrite_tag("%$tag%", '([^&]+)');
611
+		add_rewrite_rule("^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top');
612 612
 	}
613 613
 
614 614
 	/**
615 615
 	 * Processes non-query string ipns.
616 616
 	 *
617 617
 	 */
618
-	public function maybe_process_new_ipn( $query ) {
619
-		if ( is_admin() || ! $query->is_main_query() ) {
618
+	public function maybe_process_new_ipn($query) {
619
+		if (is_admin() || !$query->is_main_query()) {
620 620
 			return;
621 621
 		}
622 622
 
623
-		$gateway = get_query_var( 'getpaid-ipn' );
623
+		$gateway = get_query_var('getpaid-ipn');
624 624
 
625
-		if ( ! empty( $gateway ) ) {
626
-			$gateway = sanitize_text_field( $gateway );
625
+		if (!empty($gateway)) {
626
+			$gateway = sanitize_text_field($gateway);
627 627
 			nocache_headers();
628
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
629
-			do_action( "wpinv_verify_{$gateway}_ipn" );
628
+			do_action('wpinv_verify_payment_ipn', $gateway);
629
+			do_action("wpinv_verify_{$gateway}_ipn");
630 630
 			exit;
631 631
 		}
632 632
 	}
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php 3 patches
Indentation   +2390 added lines, -2390 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.29';
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.29';
119 39
 
120
-				add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
40
+        /**
41
+         * Class textdomain.
42
+         *
43
+         * @var string
44
+         */
45
+        public $textdomain = 'aui';
121 46
 
122
-				do_action( 'ayecode_ui_settings_loaded' );
123
-			}
47
+        /**
48
+         * Latest version of Bootstrap at time of publish published.
49
+         *
50
+         * @var string
51
+         */
52
+        public $latest = "5.2.2";
124 53
 
125
-			return self::$instance;
126
-		}
54
+        /**
55
+         * Current version of select2 being used.
56
+         *
57
+         * @var string
58
+         */
59
+        public $select2_version = "4.0.11";
127 60
 
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 ){
61
+        /**
62
+         * The title.
63
+         *
64
+         * @var string
65
+         */
66
+        public $name = 'AyeCode UI';
138 67
 
68
+        /**
69
+         * The relative url to the assets.
70
+         *
71
+         * @var string
72
+         */
73
+        public $url = '';
139 74
 
140
-			$setting = wp_get_global_settings();
75
+        /**
76
+         * Holds the settings values.
77
+         *
78
+         * @var array
79
+         */
80
+        private $settings;
141 81
 
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() {
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
+                }
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
+            }
566 564
 
567
-			/*
565
+            $output = ob_get_clean();
566
+
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,314 +611,314 @@  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 );
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
+                }
680 648
 
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' );
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() );
685 652
 
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
-
736
-		/**
737
-		 * Get the url path to the current folder.
738
-		 *
739
-		 * @return string
740
-		 */
741
-		public function get_url() {
742
-			$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
743
-			$content_url = untrailingslashit( WP_CONTENT_URL );
744
-
745
-			// Replace http:// to https://.
746
-			if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
747
-				$content_url = str_replace( 'http://', 'https://', $content_url );
748
-			}
749
-
750
-			// Check if we are inside a plugin
751
-			$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
752
-			$url = str_replace( $content_dir, $content_url, $file_dir );
753
-
754
-			return trailingslashit( $url );
755
-		}
756
-
757
-		/**
758
-		 * Get the url path to the current folder.
759
-		 *
760
-		 * @return string
761
-		 */
762
-		public function get_url_old() {
763
-
764
-			$url = '';
765
-			// check if we are inside a plugin
766
-			$file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
767
-
768
-			// add check in-case user has changed wp-content dir name.
769
-			$wp_content_folder_name = basename(WP_CONTENT_DIR);
770
-			$dir_parts = explode("/$wp_content_folder_name/",$file_dir);
771
-			$url_parts = explode("/$wp_content_folder_name/",plugins_url());
772
-
773
-			if(!empty($url_parts[0]) && !empty($dir_parts[1])){
774
-				$url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
775
-			}
776
-
777
-			return $url;
778
-		}
779
-
780
-		/**
781
-		 * Register the database settings with WordPress.
782
-		 */
783
-		public function register_settings() {
784
-			register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
785
-		}
786
-
787
-		/**
788
-		 * Add the WordPress settings menu item.
789
-		 * @since 1.0.10 Calling function name direct will fail theme check so we don't.
790
-		 */
791
-		public function menu_item() {
792
-			$menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
793
-			call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
794
-				$this,
795
-				'settings_page'
796
-			) );
797
-		}
798
-
799
-		/**
800
-		 * Get a list of themes and their default JS settings.
801
-		 *
802
-		 * @return array
803
-		 */
804
-		public function theme_js_settings(){
805
-			return array(
806
-				'ayetheme' => 'popper',
807
-				'listimia' => 'required',
808
-				'listimia_backend' => 'core-popper',
809
-				//'avada'    => 'required', // removed as we now add compatibility
810
-			);
811
-		}
812
-
813
-		/**
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
+
736
+        /**
737
+         * Get the url path to the current folder.
738
+         *
739
+         * @return string
740
+         */
741
+        public function get_url() {
742
+            $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
743
+            $content_url = untrailingslashit( WP_CONTENT_URL );
744
+
745
+            // Replace http:// to https://.
746
+            if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
747
+                $content_url = str_replace( 'http://', 'https://', $content_url );
748
+            }
749
+
750
+            // Check if we are inside a plugin
751
+            $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
752
+            $url = str_replace( $content_dir, $content_url, $file_dir );
753
+
754
+            return trailingslashit( $url );
755
+        }
756
+
757
+        /**
758
+         * Get the url path to the current folder.
759
+         *
760
+         * @return string
761
+         */
762
+        public function get_url_old() {
763
+
764
+            $url = '';
765
+            // check if we are inside a plugin
766
+            $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
767
+
768
+            // add check in-case user has changed wp-content dir name.
769
+            $wp_content_folder_name = basename(WP_CONTENT_DIR);
770
+            $dir_parts = explode("/$wp_content_folder_name/",$file_dir);
771
+            $url_parts = explode("/$wp_content_folder_name/",plugins_url());
772
+
773
+            if(!empty($url_parts[0]) && !empty($dir_parts[1])){
774
+                $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
775
+            }
776
+
777
+            return $url;
778
+        }
779
+
780
+        /**
781
+         * Register the database settings with WordPress.
782
+         */
783
+        public function register_settings() {
784
+            register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
785
+        }
786
+
787
+        /**
788
+         * Add the WordPress settings menu item.
789
+         * @since 1.0.10 Calling function name direct will fail theme check so we don't.
790
+         */
791
+        public function menu_item() {
792
+            $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
793
+            call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
794
+                $this,
795
+                'settings_page'
796
+            ) );
797
+        }
798
+
799
+        /**
800
+         * Get a list of themes and their default JS settings.
801
+         *
802
+         * @return array
803
+         */
804
+        public function theme_js_settings(){
805
+            return array(
806
+                'ayetheme' => 'popper',
807
+                'listimia' => 'required',
808
+                'listimia_backend' => 'core-popper',
809
+                //'avada'    => 'required', // removed as we now add compatibility
810
+            );
811
+        }
812
+
813
+        /**
814 814
          * Get the date the site was installed.
815 815
          *
816
-		 * @return false|string
817
-		 */
816
+         * @return false|string
817
+         */
818 818
         public function get_site_install_date() {
819
-	        global $wpdb; // This gives you access to the WordPress database object
819
+            global $wpdb; // This gives you access to the WordPress database object
820
+
821
+            // Prepare the SQL query to get the oldest registration date
822
+            $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
820 823
 
821
-	        // Prepare the SQL query to get the oldest registration date
822
-	        $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
824
+            // Execute the query
825
+            $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
823 826
 
824
-	        // Execute the query
825
-	        $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
827
+            return $date ? $date : false;
828
+        }
826 829
 
827
-	        return $date ? $date : false;
830
+        /**
831
+         * Show admin notice if backend scripts not loaded.
832
+         */
833
+        public function show_admin_version_notice(){
834
+            $fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
835
+            $button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
836
+            $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;
837
+            echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
828 838
         }
829 839
 
830
-		/**
831
-		 * Show admin notice if backend scripts not loaded.
832
-		 */
833
-		public function show_admin_version_notice(){
834
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
835
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
836
-			$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;
837
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
838
-		}
839
-
840
-		/**
841
-		 * Get the current Font Awesome output settings.
842
-		 *
843
-		 * @return array The array of settings.
844
-		 */
845
-		public function get_settings() {
846
-
847
-			$db_settings = get_option( 'ayecode-ui-settings' );
840
+        /**
841
+         * Get the current Font Awesome output settings.
842
+         *
843
+         * @return array The array of settings.
844
+         */
845
+        public function get_settings() {
846
+
847
+            $db_settings = get_option( 'ayecode-ui-settings' );
848 848
 
849 849
             // Maybe show default version notice
850
-			$site_install_date = new DateTime( self::get_site_install_date() );
851
-			$switch_over_date = new DateTime("2024-02-01");
852
-			if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) {
853
-				add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
854
-			}
855
-
856
-			$js_default = 'core-popper';
857
-			$js_default_backend = $js_default;
858
-
859
-			// maybe set defaults (if no settings set)
860
-			if(empty($db_settings)){
861
-				$active_theme = strtolower( get_template() ); // active parent theme.
862
-				$theme_js_settings = self::theme_js_settings();
863
-				if(isset($theme_js_settings[$active_theme])){
864
-					$js_default = $theme_js_settings[$active_theme];
865
-					$js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
866
-				}
867
-			}
850
+            $site_install_date = new DateTime( self::get_site_install_date() );
851
+            $switch_over_date = new DateTime("2024-02-01");
852
+            if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) {
853
+                add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
854
+            }
868 855
 
869
-			/**
870
-			 * Filter the default settings.
871
-			 */
872
-			$defaults = apply_filters( 'ayecode-ui-default-settings', array(
873
-				'css'            => 'compatibility', // core, compatibility
874
-				'js'             => $js_default, // js to load, core-popper, popper
875
-				'html_font_size' => '16', // js to load, core-popper, popper
876
-				'css_backend'    => 'compatibility', // core, compatibility
877
-				'js_backend'     => $js_default_backend, // js to load, core-popper, popper
878
-				'disable_admin'  => '', // URL snippets to disable loading on admin
856
+            $js_default = 'core-popper';
857
+            $js_default_backend = $js_default;
858
+
859
+            // maybe set defaults (if no settings set)
860
+            if(empty($db_settings)){
861
+                $active_theme = strtolower( get_template() ); // active parent theme.
862
+                $theme_js_settings = self::theme_js_settings();
863
+                if(isset($theme_js_settings[$active_theme])){
864
+                    $js_default = $theme_js_settings[$active_theme];
865
+                    $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
866
+                }
867
+            }
868
+
869
+            /**
870
+             * Filter the default settings.
871
+             */
872
+            $defaults = apply_filters( 'ayecode-ui-default-settings', array(
873
+                'css'            => 'compatibility', // core, compatibility
874
+                'js'             => $js_default, // js to load, core-popper, popper
875
+                'html_font_size' => '16', // js to load, core-popper, popper
876
+                'css_backend'    => 'compatibility', // core, compatibility
877
+                'js_backend'     => $js_default_backend, // js to load, core-popper, popper
878
+                'disable_admin'  => '', // URL snippets to disable loading on admin
879 879
                 'bs_ver'         => '5', // The default bootstrap version to sue by default
880
-			), $db_settings );
880
+            ), $db_settings );
881 881
 
882
-			$settings = wp_parse_args( $db_settings, $defaults );
882
+            $settings = wp_parse_args( $db_settings, $defaults );
883 883
 
884
-			/**
885
-			 * Filter the Bootstrap settings.
886
-			 *
887
-			 * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
888
-			 */
889
-			return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
890
-		}
884
+            /**
885
+             * Filter the Bootstrap settings.
886
+             *
887
+             * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
888
+             */
889
+            return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
890
+        }
891 891
 
892 892
 
893
-		/**
894
-		 * The settings page html output.
895
-		 */
896
-		public function settings_page() {
897
-			if ( ! current_user_can( 'manage_options' ) ) {
898
-				wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
899
-			}
893
+        /**
894
+         * The settings page html output.
895
+         */
896
+        public function settings_page() {
897
+            if ( ! current_user_can( 'manage_options' ) ) {
898
+                wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
899
+            }
900 900
             $overrides = apply_filters( 'ayecode-ui-settings', array(), array(), array() );
901 901
 
902
-			?>
902
+            ?>
903 903
             <div class="wrap">
904 904
                 <h1><?php echo esc_attr( $this->name ); ?></h1>
905 905
                 <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>
906 906
                 <form method="post" action="options.php">
907 907
 					<?php
908
-					settings_fields( 'ayecode-ui-settings' );
909
-					do_settings_sections( 'ayecode-ui-settings' );
910
-					?>
908
+                    settings_fields( 'ayecode-ui-settings' );
909
+                    do_settings_sections( 'ayecode-ui-settings' );
910
+                    ?>
911 911
 
912 912
                     <h2><?php esc_html_e( 'BootStrap Version', 'ayecode-connect' ); ?></h2>
913 913
                     <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>
914 914
 	                <div class="bsui"><?php
915
-	                if ( ! empty( $overrides ) ) {
916
-		                echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
917
-			                'type'=> 'info',
918
-			                'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
919
-		                ));
920
-	                }
921
-	                ?>
915
+                    if ( ! empty( $overrides ) ) {
916
+                        echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
917
+                            'type'=> 'info',
918
+                            'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
919
+                        ));
920
+                    }
921
+                    ?>
922 922
                     </div>
923 923
                     <table class="form-table wpbs-table-version-settings">
924 924
                         <tr valign="top">
@@ -1002,77 +1002,77 @@  discard block
 block discarded – undo
1002 1002
                     </table>
1003 1003
 
1004 1004
 					<?php
1005
-					submit_button();
1006
-					?>
1005
+                    submit_button();
1006
+                    ?>
1007 1007
                 </form>
1008 1008
                 <div id="wpbs-version" data-aui-source="<?php echo esc_attr( $this->get_load_source() ); ?>"><?php echo esc_html( $this->version ); ?></div>
1009 1009
             </div>
1010 1010
 			<?php
1011
-		}
1011
+        }
1012 1012
 
1013 1013
         public function get_load_source(){
1014
-	        $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
1015
-	        $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
1016
-
1017
-	        // Find source plugin/theme of SD
1018
-	        $source = array();
1019
-	        if ( strpos( $file, $plugins_dir ) !== false ) {
1020
-		        $source = explode( "/", plugin_basename( $file ) );
1021
-	        } else if ( function_exists( 'get_theme_root' ) ) {
1022
-		        $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1023
-
1024
-		        if ( strpos( $file, $themes_dir ) !== false ) {
1025
-			        $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1026
-		        }
1027
-	        }
1014
+            $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
1015
+            $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
1016
+
1017
+            // Find source plugin/theme of SD
1018
+            $source = array();
1019
+            if ( strpos( $file, $plugins_dir ) !== false ) {
1020
+                $source = explode( "/", plugin_basename( $file ) );
1021
+            } else if ( function_exists( 'get_theme_root' ) ) {
1022
+                $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1023
+
1024
+                if ( strpos( $file, $themes_dir ) !== false ) {
1025
+                    $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1026
+                }
1027
+            }
1028 1028
 
1029 1029
             return isset($source[0]) ? esc_attr($source[0]) : '';
1030 1030
         }
1031 1031
 
1032
-		public function customizer_settings($wp_customize){
1033
-			$wp_customize->add_section('aui_settings', array(
1034
-				'title'    => __('AyeCode UI', 'ayecode-connect' ),
1035
-				'priority' => 120,
1036
-			));
1037
-
1038
-			//  =============================
1039
-			//  = Color Picker              =
1040
-			//  =============================
1041
-			$wp_customize->add_setting('aui_options[color_primary]', array(
1042
-				'default'           => AUI_PRIMARY_COLOR,
1043
-				'sanitize_callback' => 'sanitize_hex_color',
1044
-				'capability'        => 'edit_theme_options',
1045
-				'type'              => 'option',
1046
-				'transport'         => 'refresh',
1047
-			));
1048
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1049
-				'label'    => __('Primary Color', 'ayecode-connect' ),
1050
-				'section'  => 'aui_settings',
1051
-				'settings' => 'aui_options[color_primary]',
1052
-			)));
1053
-
1054
-			$wp_customize->add_setting('aui_options[color_secondary]', array(
1055
-				'default'           => '#6c757d',
1056
-				'sanitize_callback' => 'sanitize_hex_color',
1057
-				'capability'        => 'edit_theme_options',
1058
-				'type'              => 'option',
1059
-				'transport'         => 'refresh',
1060
-			));
1061
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1062
-				'label'    => __('Secondary Color', 'ayecode-connect' ),
1063
-				'section'  => 'aui_settings',
1064
-				'settings' => 'aui_options[color_secondary]',
1065
-			)));
1066
-		}
1067
-
1068
-		/**
1069
-		 * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1070
-		 *
1071
-		 * @return mixed
1072
-		 */
1073
-		public static function bs3_compat_css() {
1074
-			ob_start();
1075
-			?>
1032
+        public function customizer_settings($wp_customize){
1033
+            $wp_customize->add_section('aui_settings', array(
1034
+                'title'    => __('AyeCode UI', 'ayecode-connect' ),
1035
+                'priority' => 120,
1036
+            ));
1037
+
1038
+            //  =============================
1039
+            //  = Color Picker              =
1040
+            //  =============================
1041
+            $wp_customize->add_setting('aui_options[color_primary]', array(
1042
+                'default'           => AUI_PRIMARY_COLOR,
1043
+                'sanitize_callback' => 'sanitize_hex_color',
1044
+                'capability'        => 'edit_theme_options',
1045
+                'type'              => 'option',
1046
+                'transport'         => 'refresh',
1047
+            ));
1048
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1049
+                'label'    => __('Primary Color', 'ayecode-connect' ),
1050
+                'section'  => 'aui_settings',
1051
+                'settings' => 'aui_options[color_primary]',
1052
+            )));
1053
+
1054
+            $wp_customize->add_setting('aui_options[color_secondary]', array(
1055
+                'default'           => '#6c757d',
1056
+                'sanitize_callback' => 'sanitize_hex_color',
1057
+                'capability'        => 'edit_theme_options',
1058
+                'type'              => 'option',
1059
+                'transport'         => 'refresh',
1060
+            ));
1061
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1062
+                'label'    => __('Secondary Color', 'ayecode-connect' ),
1063
+                'section'  => 'aui_settings',
1064
+                'settings' => 'aui_options[color_secondary]',
1065
+            )));
1066
+        }
1067
+
1068
+        /**
1069
+         * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1070
+         *
1071
+         * @return mixed
1072
+         */
1073
+        public static function bs3_compat_css() {
1074
+            ob_start();
1075
+            ?>
1076 1076
             <style>
1077 1077
                 /* Bootstrap 3 compatibility */
1078 1078
                 body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;}
@@ -1101,368 +1101,368 @@  discard block
 block discarded – undo
1101 1101
                 <?php } ?>
1102 1102
             </style>
1103 1103
 			<?php
1104
-			return str_replace( array(
1105
-				'<style>',
1106
-				'</style>'
1107
-			), '', self::minify_css( ob_get_clean() ) );
1108
-		}
1104
+            return str_replace( array(
1105
+                '<style>',
1106
+                '</style>'
1107
+            ), '', self::minify_css( ob_get_clean() ) );
1108
+        }
1109 1109
 
1110
-		public static function custom_css( $compatibility = true, $is_fse = false ) {
1111
-			global $aui_bs5;
1110
+        public static function custom_css( $compatibility = true, $is_fse = false ) {
1111
+            global $aui_bs5;
1112 1112
 
1113
-			$colors = array();
1113
+            $colors = array();
1114 1114
 
1115
-			if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1116
-				$setting = wp_get_global_settings();
1115
+            if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1116
+                $setting = wp_get_global_settings();
1117 1117
 
1118
-				if ( ! empty( $setting['color']['palette']['theme'] ) ) {
1119
-					foreach ( $setting['color']['palette']['theme'] as $color ) {
1120
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1121
-					}
1122
-				}
1118
+                if ( ! empty( $setting['color']['palette']['theme'] ) ) {
1119
+                    foreach ( $setting['color']['palette']['theme'] as $color ) {
1120
+                        $colors[$color['slug']] = esc_attr( $color['color'] );
1121
+                    }
1122
+                }
1123 1123
 
1124
-				if ( ! empty( $setting['color']['palette']['custom'] ) ) {
1125
-					foreach ( $setting['color']['palette']['custom'] as $color ) {
1126
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1127
-					}
1128
-				}
1129
-			} else {
1130
-				$settings = get_option( 'aui_options' );
1131
-
1132
-				$colors = array(
1133
-					'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1134
-					'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1135
-				);
1136
-			}
1137
-
1138
-			ob_start();
1139
-			?><style><?php
1140
-			// BS v3 compat
1141
-			if( self::is_bs3_compat() ){
1142
-				echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1143
-			}
1144
-
1145
-			//$is_fse = false;
1146
-			//if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
1147
-				//$is_fse = true;
1148
-			//}
1149
-
1150
-			$custom_front = ! is_admin() ? true : apply_filters('ayecode_ui_custom_front', false );
1151
-			$custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false );
1124
+                if ( ! empty( $setting['color']['palette']['custom'] ) ) {
1125
+                    foreach ( $setting['color']['palette']['custom'] as $color ) {
1126
+                        $colors[$color['slug']] = esc_attr( $color['color'] );
1127
+                    }
1128
+                }
1129
+            } else {
1130
+                $settings = get_option( 'aui_options' );
1131
+
1132
+                $colors = array(
1133
+                    'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1134
+                    'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1135
+                );
1136
+            }
1137
+
1138
+            ob_start();
1139
+            ?><style><?php
1140
+            // BS v3 compat
1141
+            if( self::is_bs3_compat() ){
1142
+                echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1143
+            }
1144
+
1145
+            //$is_fse = false;
1146
+            //if ( is_admin() && ( !empty($_REQUEST['postType']) || self::is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
1147
+                //$is_fse = true;
1148
+            //}
1149
+
1150
+            $custom_front = ! is_admin() ? true : apply_filters('ayecode_ui_custom_front', false );
1151
+            $custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false );
1152 1152
             $bs_custom_css = apply_filters( 'ayecode_ui_bs_custom_css', $custom_admin || $custom_front );
1153
-			//$bs_custom_css = true; // Force true to fix any color issue.
1153
+            //$bs_custom_css = true; // Force true to fix any color issue.
1154 1154
 
1155
-			$colors_css = '';
1156
-			if ( ! empty( $colors ) && $bs_custom_css ) {
1157
-				$d_colors = self::get_colors(true);
1155
+            $colors_css = '';
1156
+            if ( ! empty( $colors ) && $bs_custom_css ) {
1157
+                $d_colors = self::get_colors(true);
1158 1158
 
1159
-				foreach ( $colors as $key => $color ) {
1160
-					if ( ( empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) {
1161
-						$var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1162
-						$compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1159
+                foreach ( $colors as $key => $color ) {
1160
+                    if ( ( empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) {
1161
+                        $var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1162
+                        $compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1163 1163
 
1164
-						$colors_css .= $aui_bs5 ? self::css_overwrite_bs5( $key,$var, $compat, $color ) : self::css_overwrite( $key, $var, $compat, $color );
1165
-					}
1166
-				}
1167
-			}
1164
+                        $colors_css .= $aui_bs5 ? self::css_overwrite_bs5( $key,$var, $compat, $color ) : self::css_overwrite( $key, $var, $compat, $color );
1165
+                    }
1166
+                }
1167
+            }
1168 1168
 
1169
-			if ( $colors_css ) {
1170
-				echo $colors_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1171
-			}
1169
+            if ( $colors_css ) {
1170
+                echo $colors_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1171
+            }
1172 1172
 
1173
-			// Set admin bar z-index lower when modal is open.
1174
-			echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1173
+            // Set admin bar z-index lower when modal is open.
1174
+            echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1175 1175
 
1176
-			if ( is_admin() ) {
1177
-				echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1178
-			}
1176
+            if ( is_admin() ) {
1177
+                echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1178
+            }
1179 1179
 
1180
-			$custom_css = '';
1180
+            $custom_css = '';
1181 1181
 
1182
-			if ( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) && $bs_custom_css ) {
1183
-				$css = '';
1184
-				$theme_settings = wp_get_global_styles();
1182
+            if ( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) && $bs_custom_css ) {
1183
+                $css = '';
1184
+                $theme_settings = wp_get_global_styles();
1185 1185
 
1186
-				// Font face
1187
-				if( !empty( $theme_settings['typography']['fontFamily'] ) ){
1188
-					$t_fontface = str_replace( array('var:preset|','font-family|'), array('--wp--preset--','font-family--'), $theme_settings['typography']['fontFamily']  ); //var(--wp--preset--font-family--poppins)
1189
-					$css .= '--bs-body-font-family: ' . esc_attr($t_fontface) . ';';
1190
-				}
1186
+                // Font face
1187
+                if( !empty( $theme_settings['typography']['fontFamily'] ) ){
1188
+                    $t_fontface = str_replace( array('var:preset|','font-family|'), array('--wp--preset--','font-family--'), $theme_settings['typography']['fontFamily']  ); //var(--wp--preset--font-family--poppins)
1189
+                    $css .= '--bs-body-font-family: ' . esc_attr($t_fontface) . ';';
1190
+                }
1191 1191
 
1192
-				// font size
1193
-				if( !empty( $theme_settings['typography']['fontSize'] ) ){
1194
-					$css .= '--bs-body-font-size: ' . esc_attr( $theme_settings['typography']['fontSize'] ) . ' ;';
1195
-				}
1192
+                // font size
1193
+                if( !empty( $theme_settings['typography']['fontSize'] ) ){
1194
+                    $css .= '--bs-body-font-size: ' . esc_attr( $theme_settings['typography']['fontSize'] ) . ' ;';
1195
+                }
1196 1196
 
1197
-				// line height
1198
-				 if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1199
-					$css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1200
-				}
1197
+                // line height
1198
+                    if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1199
+                    $css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1200
+                }
1201 1201
 
1202 1202
 
1203
-				   // font weight
1204
-				 if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1205
-					$css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1206
-				}
1203
+                    // font weight
1204
+                    if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1205
+                    $css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1206
+                }
1207 1207
 
1208
-				// Background
1209
-				 if( !empty( $theme_settings['color']['background'] ) ){
1210
-					$css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1211
-				}
1208
+                // Background
1209
+                    if( !empty( $theme_settings['color']['background'] ) ){
1210
+                    $css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1211
+                }
1212 1212
 
1213
-				 // Background Gradient
1214
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1215
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1216
-				}
1213
+                    // Background Gradient
1214
+                    if( !empty( $theme_settings['color']['gradient'] ) ){
1215
+                    $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1216
+                }
1217 1217
 
1218
-				   // Background Gradient
1219
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1220
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1221
-				}
1218
+                    // Background Gradient
1219
+                    if( !empty( $theme_settings['color']['gradient'] ) ){
1220
+                    $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1221
+                }
1222 1222
 
1223
-				// text color
1224
-				if( !empty( $theme_settings['color']['text'] ) ){
1225
-					$css .= '--bs-body-color: ' . esc_attr( $theme_settings['color']['text'] ) . ';';
1226
-				}
1223
+                // text color
1224
+                if( !empty( $theme_settings['color']['text'] ) ){
1225
+                    $css .= '--bs-body-color: ' . esc_attr( $theme_settings['color']['text'] ) . ';';
1226
+                }
1227 1227
 
1228 1228
 
1229
-				// link colors
1230
-				if( !empty( $theme_settings['elements']['link']['color']['text'] ) ){
1231
-					$css .= '--bs-link-color: ' . esc_attr( $theme_settings['elements']['link']['color']['text'] ) . ';';
1232
-				}
1233
-				if( !empty( $theme_settings['elements']['link'][':hover']['color']['text'] ) ){
1234
-					$css .= '--bs-link-hover-color: ' . esc_attr( $theme_settings['elements']['link'][':hover']['color']['text'] ) . ';';
1235
-				}
1229
+                // link colors
1230
+                if( !empty( $theme_settings['elements']['link']['color']['text'] ) ){
1231
+                    $css .= '--bs-link-color: ' . esc_attr( $theme_settings['elements']['link']['color']['text'] ) . ';';
1232
+                }
1233
+                if( !empty( $theme_settings['elements']['link'][':hover']['color']['text'] ) ){
1234
+                    $css .= '--bs-link-hover-color: ' . esc_attr( $theme_settings['elements']['link'][':hover']['color']['text'] ) . ';';
1235
+                }
1236 1236
 
1237
-				if($css){
1238
-					$custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr( $css ) . '}' : 'body{' . esc_attr( $css ) . '}';
1239
-				}
1237
+                if($css){
1238
+                    $custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr( $css ) . '}' : 'body{' . esc_attr( $css ) . '}';
1239
+                }
1240 1240
 
1241
-				$bep = $is_fse ? 'body.editor-styles-wrapper ' : '';
1241
+                $bep = $is_fse ? 'body.editor-styles-wrapper ' : '';
1242 1242
 
1243
-				// Headings
1244
-				$headings_css = '';
1245
-				if( !empty( $theme_settings['elements']['heading']['color']['text'] ) ){
1246
-					$headings_css .= "color: " . esc_attr( $theme_settings['elements']['heading']['color']['text'] ) . ";";
1247
-				}
1243
+                // Headings
1244
+                $headings_css = '';
1245
+                if( !empty( $theme_settings['elements']['heading']['color']['text'] ) ){
1246
+                    $headings_css .= "color: " . esc_attr( $theme_settings['elements']['heading']['color']['text'] ) . ";";
1247
+                }
1248 1248
 
1249
-				// heading background
1250
-				if( !empty( $theme_settings['elements']['heading']['color']['background'] ) ){
1251
-					$headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1252
-				}
1249
+                // heading background
1250
+                if( !empty( $theme_settings['elements']['heading']['color']['background'] ) ){
1251
+                    $headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1252
+                }
1253 1253
 
1254
-				 // heading font family
1255
-				if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1256
-					$headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1257
-				}
1254
+                    // heading font family
1255
+                if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1256
+                    $headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1257
+                }
1258 1258
 
1259
-				if( $headings_css ){
1260
-					$custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr( $headings_css ) . "}";
1261
-				}
1259
+                if( $headings_css ){
1260
+                    $custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr( $headings_css ) . "}";
1261
+                }
1262 1262
 
1263
-				$hs = array('h1','h2','h3','h4','h5','h6');
1263
+                $hs = array('h1','h2','h3','h4','h5','h6');
1264 1264
 
1265
-				foreach($hs as $hn){
1266
-					$h_css = '';
1267
-					 if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1268
-						$h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1269
-					 }
1265
+                foreach($hs as $hn){
1266
+                    $h_css = '';
1267
+                        if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1268
+                        $h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1269
+                        }
1270 1270
 
1271
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1272
-						$h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1273
-					 }
1271
+                        if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1272
+                        $h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1273
+                        }
1274 1274
 
1275
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1276
-						$h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1277
-					 }
1275
+                        if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1276
+                        $h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1277
+                        }
1278 1278
 
1279
-					 if($h_css){
1280
-						$custom_css .= esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1281
-					 }
1282
-				}
1283
-			}
1279
+                        if($h_css){
1280
+                        $custom_css .= esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1281
+                        }
1282
+                }
1283
+            }
1284 1284
 			
1285
-			if ( $custom_css ) {
1286
-				echo $custom_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1287
-			}
1288
-
1289
-			// Pagination on Hello Elementor theme.
1290
-			if ( function_exists( 'hello_elementor_setup' ) ) {
1291
-				echo '.aui-nav-links .pagination{justify-content:inherit}';
1292
-			}
1293
-			?></style><?php
1294
-			$custom_css = ob_get_clean();
1295
-
1296
-			/*
1285
+            if ( $custom_css ) {
1286
+                echo $custom_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1287
+            }
1288
+
1289
+            // Pagination on Hello Elementor theme.
1290
+            if ( function_exists( 'hello_elementor_setup' ) ) {
1291
+                echo '.aui-nav-links .pagination{justify-content:inherit}';
1292
+            }
1293
+            ?></style><?php
1294
+            $custom_css = ob_get_clean();
1295
+
1296
+            /*
1297 1297
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1298 1298
 			 */
1299
-			return str_replace( array(
1300
-				'<style>',
1301
-				'</style>'
1302
-			), '', self::minify_css( $custom_css ) );
1303
-		}
1304
-
1305
-		/**
1306
-		 * Check if we should add booststrap 3 compatibility changes.
1307
-		 *
1308
-		 * @return bool
1309
-		 */
1310
-		public static function is_bs3_compat(){
1311
-			return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1312
-		}
1313
-
1314
-		public static function hex_to_rgb( $hex ) {
1315
-			// Remove '#' if present
1316
-			$hex = str_replace( '#', '', $hex );
1317
-
1318
-			// Check if input is RGB
1319
-			if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1320
-				$_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1321
-
1322
-				$rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1323
-				$rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1324
-				$rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1325
-
1326
-				return $rgb;
1327
-			}
1328
-
1329
-			// Convert 3-digit hex to 6-digit hex
1330
-			if ( strlen( $hex ) == 3 ) {
1331
-				$hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1332
-			}
1333
-
1334
-			// Convert hex to RGB
1335
-			$r = hexdec( substr( $hex, 0, 2 ) );
1336
-			$g = hexdec( substr( $hex, 2, 2 ) );
1337
-			$b = hexdec( substr( $hex, 4, 2 ) );
1338
-
1339
-			// Return RGB values as an array
1340
-			return $r . ',' . $g . ',' . $b;
1341
-		}
1342
-
1343
-		/**
1344
-		 * Build the CSS to overwrite a bootstrap color variable.
1345
-		 *
1346
-		 * @param $type
1347
-		 * @param $color_code
1348
-		 * @param $compatibility
1349
-		 *
1350
-		 * @return string
1351
-		 */
1352
-		public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1353
-			global $aui_bs5;
1354
-
1355
-			$is_var = false;
1356
-			$is_custom = strpos($type, 'custom-') !== false ? true : false;
1357
-			if(!$color_code){return '';}
1358
-			if(strpos($color_code, 'var') !== false){
1359
-				//if(!sanitize_hex_color($color_code)){
1360
-				$color_code = esc_attr($color_code);
1361
-				$is_var = true;
1299
+            return str_replace( array(
1300
+                '<style>',
1301
+                '</style>'
1302
+            ), '', self::minify_css( $custom_css ) );
1303
+        }
1304
+
1305
+        /**
1306
+         * Check if we should add booststrap 3 compatibility changes.
1307
+         *
1308
+         * @return bool
1309
+         */
1310
+        public static function is_bs3_compat(){
1311
+            return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1312
+        }
1313
+
1314
+        public static function hex_to_rgb( $hex ) {
1315
+            // Remove '#' if present
1316
+            $hex = str_replace( '#', '', $hex );
1317
+
1318
+            // Check if input is RGB
1319
+            if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1320
+                $_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1321
+
1322
+                $rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1323
+                $rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1324
+                $rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1325
+
1326
+                return $rgb;
1327
+            }
1328
+
1329
+            // Convert 3-digit hex to 6-digit hex
1330
+            if ( strlen( $hex ) == 3 ) {
1331
+                $hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1332
+            }
1333
+
1334
+            // Convert hex to RGB
1335
+            $r = hexdec( substr( $hex, 0, 2 ) );
1336
+            $g = hexdec( substr( $hex, 2, 2 ) );
1337
+            $b = hexdec( substr( $hex, 4, 2 ) );
1338
+
1339
+            // Return RGB values as an array
1340
+            return $r . ',' . $g . ',' . $b;
1341
+        }
1342
+
1343
+        /**
1344
+         * Build the CSS to overwrite a bootstrap color variable.
1345
+         *
1346
+         * @param $type
1347
+         * @param $color_code
1348
+         * @param $compatibility
1349
+         *
1350
+         * @return string
1351
+         */
1352
+        public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1353
+            global $aui_bs5;
1354
+
1355
+            $is_var = false;
1356
+            $is_custom = strpos($type, 'custom-') !== false ? true : false;
1357
+            if(!$color_code){return '';}
1358
+            if(strpos($color_code, 'var') !== false){
1359
+                //if(!sanitize_hex_color($color_code)){
1360
+                $color_code = esc_attr($color_code);
1361
+                $is_var = true;
1362 1362
 //				$color_code = "rgba($color_code, 0.5)";
1363 1363
 //                echo '###1'.$color_code.'###';//exit;
1364
-			}
1364
+            }
1365 1365
 
1366 1366
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1367 1367
 
1368
-			if(!$color_code){return '';}
1368
+            if(!$color_code){return '';}
1369 1369
 
1370
-			$rgb = self::hex_to_rgb($hex);
1370
+            $rgb = self::hex_to_rgb($hex);
1371 1371
 
1372
-			if($compatibility===true || $compatibility===1){
1373
-				$compatibility = '.bsui';
1374
-			}elseif(!$compatibility){
1375
-				$compatibility = '';
1376
-			}else{
1377
-				$compatibility = esc_attr($compatibility);
1378
-			}
1372
+            if($compatibility===true || $compatibility===1){
1373
+                $compatibility = '.bsui';
1374
+            }elseif(!$compatibility){
1375
+                $compatibility = '';
1376
+            }else{
1377
+                $compatibility = esc_attr($compatibility);
1378
+            }
1379 1379
 
1380
-			$prefix = $compatibility ? $compatibility . " " : "";
1380
+            $prefix = $compatibility ? $compatibility . " " : "";
1381 1381
 
1382 1382
 
1383 1383
             $output = '';
1384 1384
 
1385 1385
 //            echo '####'.$color_code;exit;
1386 1386
 
1387
-			$type = sanitize_html_class($type);
1387
+            $type = sanitize_html_class($type);
1388
+
1389
+            /**
1390
+             * c = color, b = background color, o = border-color, f = fill
1391
+             */
1392
+            $selectors = array(
1393
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1394
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1395
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1396
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1397
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1398
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1399
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1400
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1401
+                ".badge-{$type}"                                            => array( 'b' ),
1402
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1403
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1404
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1405
+                ".text-{$type}"                                     => array( 'c' ),
1406
+            );
1407
+
1408
+            if ( $aui_bs5 ) {
1409
+                unset($selectors[".alert-{$type}" ]);
1410
+            }
1388 1411
 
1389
-			/**
1390
-			 * c = color, b = background color, o = border-color, f = fill
1391
-			 */
1392
-			$selectors = array(
1393
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1394
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1395
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1396
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1397
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1398
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1399
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1400
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1401
-				".badge-{$type}"                                            => array( 'b' ),
1402
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1403
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1404
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1405
-				".text-{$type}"                                     => array( 'c' ),
1406
-			);
1407
-
1408
-			if ( $aui_bs5 ) {
1409
-				unset($selectors[".alert-{$type}" ]);
1410
-			}
1411
-
1412
-			if ( $type == 'primary' ) {
1413
-				$selectors = $selectors + array(
1414
-						'a'                                                                                                    => array( 'c' ),
1415
-						'.btn-link'                                                                                            => array( 'c' ),
1416
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1417
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1418
-							'b',
1419
-							'o'
1420
-						),
1421
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1422
-							'b',
1423
-							'o'
1424
-						),
1425
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1426
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1427
-						'.page-link'                                                                                           => array( 'c' ),
1428
-						'.page-item.active .page-link'                                                                         => array(
1429
-							'b',
1430
-							'o'
1431
-						),
1432
-						'.progress-bar'                                                                                        => array( 'b' ),
1433
-						'.list-group-item.active'                                                                              => array(
1434
-							'b',
1435
-							'o'
1436
-						),
1437
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1438
-					);
1439
-			}
1412
+            if ( $type == 'primary' ) {
1413
+                $selectors = $selectors + array(
1414
+                        'a'                                                                                                    => array( 'c' ),
1415
+                        '.btn-link'                                                                                            => array( 'c' ),
1416
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1417
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1418
+                            'b',
1419
+                            'o'
1420
+                        ),
1421
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1422
+                            'b',
1423
+                            'o'
1424
+                        ),
1425
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1426
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1427
+                        '.page-link'                                                                                           => array( 'c' ),
1428
+                        '.page-item.active .page-link'                                                                         => array(
1429
+                            'b',
1430
+                            'o'
1431
+                        ),
1432
+                        '.progress-bar'                                                                                        => array( 'b' ),
1433
+                        '.list-group-item.active'                                                                              => array(
1434
+                            'b',
1435
+                            'o'
1436
+                        ),
1437
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1438
+                    );
1439
+            }
1440 1440
 
1441 1441
 
1442 1442
 
1443 1443
             // link
1444
-			if ( $type === 'primary' ) {
1445
-				$output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1446
-				$output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1447
-				$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).'; }';
1444
+            if ( $type === 'primary' ) {
1445
+                $output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1446
+                $output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1447
+                $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).'; }';
1448 1448
 
1449
-				$output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1450
-				$output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1449
+                $output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1450
+                $output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1451 1451
 
1452 1452
                 // dropdown
1453
-				$output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1453
+                $output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1454 1454
 
1455 1455
                 // pagination
1456
-				$output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1456
+                $output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1457 1457
 
1458
-			}
1458
+            }
1459 1459
 
1460
-			$output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1461
-			$output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1460
+            $output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1461
+            $output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1462 1462
 
1463
-			//  buttons
1464
-			$output .= $prefix . ' .btn-'.esc_attr($type).'{';
1465
-			$output .= ' 
1463
+            //  buttons
1464
+            $output .= $prefix . ' .btn-'.esc_attr($type).'{';
1465
+            $output .= ' 
1466 1466
             --bs-btn-bg: '.esc_attr($color_code).';
1467 1467
             --bs-btn-border-color: '.esc_attr($color_code).';
1468 1468
             --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
@@ -1480,917 +1480,917 @@  discard block
 block discarded – undo
1480 1480
 //			--bs-btn-active-color: #fff;
1481 1481
 //			--bs-btn-disabled-color: #fff;
1482 1482
 //            ';
1483
-			$output .= '}';
1483
+            $output .= '}';
1484
+
1485
+            //  buttons outline
1486
+            $output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1487
+            $output .= ' 
1488
+			--bs-btn-color: '.esc_attr($color_code).';
1489
+            --bs-btn-border-color: '.esc_attr($color_code).';
1490
+            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1491
+            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1492
+            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type).'-rgb;
1493
+            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1494
+            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1495
+            --bs-btn-active-shadow: unset;
1496
+            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .5);
1497
+            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .1);
1498
+            ';
1499
+//			$output .= '
1500
+//		    --bs-btn-color: #fff;
1501
+//			--bs-btn-hover-color: #fff;
1502
+//			--bs-btn-active-color: #fff;
1503
+//			--bs-btn-disabled-color: #fff;
1504
+//            ';
1505
+            $output .= '}';
1506
+
1507
+
1508
+            // button hover
1509
+            $output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1510
+            $output .= ' 
1511
+            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);
1512
+            }
1513
+            ';
1514
+
1515
+
1516
+            if ( $aui_bs5 ) {
1517
+//				$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).'; }';
1518
+                $output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1519
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1520
+            }
1521
+
1522
+
1523
+            if ( $is_custom ) {
1524
+
1525
+//				echo '###'.$type;exit;
1526
+
1527
+                // build rules into each type
1528
+                foreach($selectors as $selector => $types){
1529
+                    $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1530
+                    $types = array_combine($types,$types);
1531
+                    if(isset($types['c'])){$color[] = $selector;}
1532
+                    if(isset($types['b'])){$background[] = $selector;}
1533
+                    if(isset($types['o'])){$border[] = $selector;}
1534
+                    if(isset($types['f'])){$fill[] = $selector;}
1535
+                }
1536
+
1537
+//				// build rules into each type
1538
+//				foreach($important_selectors as $selector => $types){
1539
+//					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1540
+//					$types = array_combine($types,$types);
1541
+//					if(isset($types['c'])){$color_i[] = $selector;}
1542
+//					if(isset($types['b'])){$background_i[] = $selector;}
1543
+//					if(isset($types['o'])){$border_i[] = $selector;}
1544
+//					if(isset($types['f'])){$fill_i[] = $selector;}
1545
+//				}
1546
+
1547
+                // add any color rules
1548
+                if(!empty($color)){
1549
+                    $output .= implode(",",$color) . "{color: $color_code;} ";
1550
+                }
1551
+                if(!empty($color_i)){
1552
+                    $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1553
+                }
1554
+
1555
+                // add any background color rules
1556
+                if(!empty($background)){
1557
+                    $output .= implode(",",$background) . "{background-color: $color_code;} ";
1558
+                }
1559
+                if(!empty($background_i)){
1560
+                    $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1561
+//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1562
+                }
1563
+
1564
+                // add any border color rules
1565
+                if(!empty($border)){
1566
+                    $output .= implode(",",$border) . "{border-color: $color_code;} ";
1567
+                }
1568
+                if(!empty($border_i)){
1569
+                    $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1570
+                }
1571
+
1572
+                // add any fill color rules
1573
+                if(!empty($fill)){
1574
+                    $output .= implode(",",$fill) . "{fill: $color_code;} ";
1575
+                }
1576
+                if(!empty($fill_i)){
1577
+                    $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1578
+                }
1579
+
1580
+            }
1581
+
1582
+
1583
+
1584
+
1585
+            $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;' : '';
1586
+            // darken
1587
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1588
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1589
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1590
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1591
+
1592
+            // lighten
1593
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1594
+
1595
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1596
+            $op_25 = $color_code."40"; // 25% opacity
1597
+
1598
+
1599
+            // button states
1600
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1601
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1602
+//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1603
+            $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;} ";
1604
+            $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.";} ";
1605
+            $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;} ";
1606
+            $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);} ";
1607
+
1608
+            // text
1609
+//			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
1610
+
1611
+
1612
+//			if ( $type == 'primary' ) {
1613
+//				// dropdown's
1614
+//				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1615
+//
1616
+//				// input states
1617
+//				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1618
+//
1619
+//				// page link
1620
+//				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1621
+//			}
1622
+
1623
+            // alerts
1624
+            if ( $aui_bs5 ) {
1625
+//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1626
+                $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;} ";
1627
+            }
1628
+
1629
+            return $output;
1630
+        }
1631
+
1632
+        /**
1633
+         * Build the CSS to overwrite a bootstrap color variable.
1634
+         *
1635
+         * @param $type
1636
+         * @param $color_code
1637
+         * @param $compatibility
1638
+         *
1639
+         * @return string
1640
+         */
1641
+        public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1642
+            global $aui_bs5;
1643
+
1644
+            $is_var = false;
1645
+            if(!$color_code){return '';}
1646
+            if(strpos($color_code, 'var') !== false){
1647
+                //if(!sanitize_hex_color($color_code)){
1648
+                $color_code = esc_attr($color_code);
1649
+                $is_var = true;
1650
+//				$color_code = "rgba($color_code, 0.5)";
1651
+//                echo '###1'.$color_code.'###';//exit;
1652
+            }
1653
+
1654
+//            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1655
+
1656
+            if(!$color_code){return '';}
1657
+
1658
+            $rgb = self::hex_to_rgb($hex);
1659
+
1660
+            if($compatibility===true || $compatibility===1){
1661
+                $compatibility = '.bsui';
1662
+            }elseif(!$compatibility){
1663
+                $compatibility = '';
1664
+            }else{
1665
+                $compatibility = esc_attr($compatibility);
1666
+            }
1667
+
1668
+
1669
+
1670
+//            echo '####'.$color_code;exit;
1671
+
1672
+            $type = sanitize_html_class($type);
1673
+
1674
+            /**
1675
+             * c = color, b = background color, o = border-color, f = fill
1676
+             */
1677
+            $selectors = array(
1678
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1679
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1680
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1681
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1682
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1683
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1684
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1685
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1686
+                ".badge-{$type}"                                            => array( 'b' ),
1687
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1688
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1689
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1690
+            );
1691
+
1692
+            if ( $aui_bs5 ) {
1693
+                unset($selectors[".alert-{$type}" ]);
1694
+            }
1695
+
1696
+            if ( $type == 'primary' ) {
1697
+                $selectors = $selectors + array(
1698
+                        'a'                                                                                                    => array( 'c' ),
1699
+                        '.btn-link'                                                                                            => array( 'c' ),
1700
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1701
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1702
+                            'b',
1703
+                            'o'
1704
+                        ),
1705
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1706
+                            'b',
1707
+                            'o'
1708
+                        ),
1709
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1710
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1711
+                        '.page-link'                                                                                           => array( 'c' ),
1712
+                        '.page-item.active .page-link'                                                                         => array(
1713
+                            'b',
1714
+                            'o'
1715
+                        ),
1716
+                        '.progress-bar'                                                                                        => array( 'b' ),
1717
+                        '.list-group-item.active'                                                                              => array(
1718
+                            'b',
1719
+                            'o'
1720
+                        ),
1721
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1722
+//				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1723
+//				    '.custom-range::-moz-range-thumb' => array('b'),
1724
+//				    '.custom-range::-ms-thumb' => array('b'),
1725
+                    );
1726
+            }
1727
+
1728
+            $important_selectors = array(
1729
+                ".bg-{$type}" => array('b','f'),
1730
+                ".border-{$type}" => array('o'),
1731
+                ".text-{$type}" => array('c'),
1732
+            );
1733
+
1734
+            $color = array();
1735
+            $color_i = array();
1736
+            $background = array();
1737
+            $background_i = array();
1738
+            $border = array();
1739
+            $border_i = array();
1740
+            $fill = array();
1741
+            $fill_i = array();
1742
+
1743
+            $output = '';
1744
+
1745
+            if ( $aui_bs5 ) {
1746
+//				$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).'; }';
1747
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1748
+            }
1749
+
1750
+            // build rules into each type
1751
+            foreach($selectors as $selector => $types){
1752
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1753
+                $types = array_combine($types,$types);
1754
+                if(isset($types['c'])){$color[] = $selector;}
1755
+                if(isset($types['b'])){$background[] = $selector;}
1756
+                if(isset($types['o'])){$border[] = $selector;}
1757
+                if(isset($types['f'])){$fill[] = $selector;}
1758
+            }
1759
+
1760
+            // build rules into each type
1761
+            foreach($important_selectors as $selector => $types){
1762
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1763
+                $types = array_combine($types,$types);
1764
+                if(isset($types['c'])){$color_i[] = $selector;}
1765
+                if(isset($types['b'])){$background_i[] = $selector;}
1766
+                if(isset($types['o'])){$border_i[] = $selector;}
1767
+                if(isset($types['f'])){$fill_i[] = $selector;}
1768
+            }
1769
+
1770
+            // add any color rules
1771
+            if(!empty($color)){
1772
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1773
+            }
1774
+            if(!empty($color_i)){
1775
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1776
+            }
1777
+
1778
+            // add any background color rules
1779
+            if(!empty($background)){
1780
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1781
+            }
1782
+            if(!empty($background_i)){
1783
+                $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1784
+//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1785
+            }
1786
+
1787
+            // add any border color rules
1788
+            if(!empty($border)){
1789
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1790
+            }
1791
+            if(!empty($border_i)){
1792
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1793
+            }
1794
+
1795
+            // add any fill color rules
1796
+            if(!empty($fill)){
1797
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1798
+            }
1799
+            if(!empty($fill_i)){
1800
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1801
+            }
1802
+
1803
+
1804
+            $prefix = $compatibility ? $compatibility . " " : "";
1805
+
1806
+            $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;' : '';
1807
+            // darken
1808
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1809
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1810
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1811
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1812
+
1813
+            // lighten
1814
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1815
+
1816
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1817
+            $op_25 = $color_code."40"; // 25% opacity
1818
+
1819
+
1820
+            // button states
1821
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1822
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1823
+//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1824
+            $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;} ";
1825
+            $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.";} ";
1826
+            $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;} ";
1827
+
1828
+            if ( $type == 'primary' ) {
1829
+                // dropdown's
1830
+                $output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1831
+
1832
+                // input states
1833
+                $output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1834
+
1835
+                // page link
1836
+                $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1837
+            }
1838
+
1839
+            // alerts
1840
+            if ( $aui_bs5 ) {
1841
+//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1842
+                $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;} ";
1843
+            }
1484 1844
 
1485
-			//  buttons outline
1486
-			$output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1487
-			$output .= ' 
1488
-			--bs-btn-color: '.esc_attr($color_code).';
1489
-            --bs-btn-border-color: '.esc_attr($color_code).';
1490
-            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1491
-            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1492
-            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type).'-rgb;
1493
-            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1494
-            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1495
-            --bs-btn-active-shadow: unset;
1496
-            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .5);
1497
-            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .1);
1498
-            ';
1499
-//			$output .= '
1500
-//		    --bs-btn-color: #fff;
1501
-//			--bs-btn-hover-color: #fff;
1502
-//			--bs-btn-active-color: #fff;
1503
-//			--bs-btn-disabled-color: #fff;
1504
-//            ';
1505
-			$output .= '}';
1845
+            return $output;
1846
+        }
1506 1847
 
1848
+        /**
1849
+         *
1850
+         * @deprecated 0.1.76 Use css_overwrite()
1851
+         *
1852
+         * @param $color_code
1853
+         * @param $compatibility
1854
+         * @param $use_variable
1855
+         *
1856
+         * @return string
1857
+         */
1858
+        public static function css_primary($color_code,$compatibility, $use_variable = false){
1507 1859
 
1508
-            // button hover
1509
-			$output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1510
-			$output .= ' 
1511
-            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);
1860
+            if(!$use_variable){
1861
+                $color_code = sanitize_hex_color($color_code);
1862
+                if(!$color_code){return '';}
1512 1863
             }
1513
-            ';
1514 1864
 
1865
+            /**
1866
+             * c = color, b = background color, o = border-color, f = fill
1867
+             */
1868
+            $selectors = array(
1869
+                'a' => array('c'),
1870
+                '.btn-primary' => array('b','o'),
1871
+                '.btn-primary.disabled' => array('b','o'),
1872
+                '.btn-primary:disabled' => array('b','o'),
1873
+                '.btn-outline-primary' => array('c','o'),
1874
+                '.btn-outline-primary:hover' => array('b','o'),
1875
+                '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1876
+                '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1877
+                '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1878
+                '.btn-link' => array('c'),
1879
+                '.dropdown-item.active' => array('b'),
1880
+                '.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1881
+                '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1882
+//				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1883
+//				'.custom-range::-moz-range-thumb' => array('b'),
1884
+//				'.custom-range::-ms-thumb' => array('b'),
1885
+                '.nav-pills .nav-link.active' => array('b'),
1886
+                '.nav-pills .show>.nav-link' => array('b'),
1887
+                '.page-link' => array('c'),
1888
+                '.page-item.active .page-link' => array('b','o'),
1889
+                '.badge-primary' => array('b'),
1890
+                '.alert-primary' => array('b','o'),
1891
+                '.progress-bar' => array('b'),
1892
+                '.list-group-item.active' => array('b','o'),
1893
+                '.bg-primary' => array('b','f'),
1894
+                '.btn-link.btn-primary' => array('c'),
1895
+                '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1896
+            );
1897
+
1898
+            $important_selectors = array(
1899
+                '.bg-primary' => array('b','f'),
1900
+                '.border-primary' => array('o'),
1901
+                '.text-primary' => array('c'),
1902
+            );
1903
+
1904
+            $color = array();
1905
+            $color_i = array();
1906
+            $background = array();
1907
+            $background_i = array();
1908
+            $border = array();
1909
+            $border_i = array();
1910
+            $fill = array();
1911
+            $fill_i = array();
1515 1912
 
1516
-			if ( $aui_bs5 ) {
1517
-//				$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).'; }';
1518
-				$output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1519
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1520
-			}
1913
+            $output = '';
1521 1914
 
1915
+            // build rules into each type
1916
+            foreach($selectors as $selector => $types){
1917
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1918
+                $types = array_combine($types,$types);
1919
+                if(isset($types['c'])){$color[] = $selector;}
1920
+                if(isset($types['b'])){$background[] = $selector;}
1921
+                if(isset($types['o'])){$border[] = $selector;}
1922
+                if(isset($types['f'])){$fill[] = $selector;}
1923
+            }
1522 1924
 
1523
-			if ( $is_custom ) {
1925
+            // build rules into each type
1926
+            foreach($important_selectors as $selector => $types){
1927
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1928
+                $types = array_combine($types,$types);
1929
+                if(isset($types['c'])){$color_i[] = $selector;}
1930
+                if(isset($types['b'])){$background_i[] = $selector;}
1931
+                if(isset($types['o'])){$border_i[] = $selector;}
1932
+                if(isset($types['f'])){$fill_i[] = $selector;}
1933
+            }
1524 1934
 
1525
-//				echo '###'.$type;exit;
1935
+            // add any color rules
1936
+            if(!empty($color)){
1937
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1938
+            }
1939
+            if(!empty($color_i)){
1940
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1941
+            }
1526 1942
 
1527
-				// build rules into each type
1528
-				foreach($selectors as $selector => $types){
1529
-					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1530
-					$types = array_combine($types,$types);
1531
-					if(isset($types['c'])){$color[] = $selector;}
1532
-					if(isset($types['b'])){$background[] = $selector;}
1533
-					if(isset($types['o'])){$border[] = $selector;}
1534
-					if(isset($types['f'])){$fill[] = $selector;}
1535
-				}
1943
+            // add any background color rules
1944
+            if(!empty($background)){
1945
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1946
+            }
1947
+            if(!empty($background_i)){
1948
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1949
+            }
1536 1950
 
1537
-//				// build rules into each type
1538
-//				foreach($important_selectors as $selector => $types){
1539
-//					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1540
-//					$types = array_combine($types,$types);
1541
-//					if(isset($types['c'])){$color_i[] = $selector;}
1542
-//					if(isset($types['b'])){$background_i[] = $selector;}
1543
-//					if(isset($types['o'])){$border_i[] = $selector;}
1544
-//					if(isset($types['f'])){$fill_i[] = $selector;}
1545
-//				}
1951
+            // add any border color rules
1952
+            if(!empty($border)){
1953
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1954
+            }
1955
+            if(!empty($border_i)){
1956
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1957
+            }
1546 1958
 
1547
-				// add any color rules
1548
-				if(!empty($color)){
1549
-					$output .= implode(",",$color) . "{color: $color_code;} ";
1550
-				}
1551
-				if(!empty($color_i)){
1552
-					$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1553
-				}
1959
+            // add any fill color rules
1960
+            if(!empty($fill)){
1961
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1962
+            }
1963
+            if(!empty($fill_i)){
1964
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1965
+            }
1554 1966
 
1555
-				// add any background color rules
1556
-				if(!empty($background)){
1557
-					$output .= implode(",",$background) . "{background-color: $color_code;} ";
1558
-				}
1559
-				if(!empty($background_i)){
1560
-					$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1561
-//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1562
-				}
1563 1967
 
1564
-				// add any border color rules
1565
-				if(!empty($border)){
1566
-					$output .= implode(",",$border) . "{border-color: $color_code;} ";
1567
-				}
1568
-				if(!empty($border_i)){
1569
-					$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1570
-				}
1968
+            $prefix = $compatibility ? ".bsui " : "";
1571 1969
 
1572
-				// add any fill color rules
1573
-				if(!empty($fill)){
1574
-					$output .= implode(",",$fill) . "{fill: $color_code;} ";
1575
-				}
1576
-				if(!empty($fill_i)){
1577
-					$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1578
-				}
1970
+            // darken
1971
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1972
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1973
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1579 1974
 
1580
-			}
1975
+            // lighten
1976
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1581 1977
 
1978
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1979
+            $op_25 = $color_code."40"; // 25% opacity
1582 1980
 
1583 1981
 
1982
+            // button states
1983
+            $output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1984
+            $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;} ";
1985
+            $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.";} ";
1986
+            $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;} ";
1584 1987
 
1585
-			$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;' : '';
1586
-			// darken
1587
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1588
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1589
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1590
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1591 1988
 
1592
-			// lighten
1593
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1989
+            // dropdown's
1990
+            $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1594 1991
 
1595
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1596
-			$op_25 = $color_code."40"; // 25% opacity
1597 1992
 
1993
+            // input states
1994
+            $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1598 1995
 
1599
-			// button states
1600
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1601
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1602
-//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1603
-			$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;} ";
1604
-			$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.";} ";
1605
-            $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;} ";
1606
-            $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);} ";
1996
+            // page link
1997
+            $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1607 1998
 
1608
-			// text
1609
-//			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
1999
+            return $output;
2000
+        }
1610 2001
 
2002
+        /**
2003
+         *
2004
+         * @deprecated 0.1.76 Use css_overwrite()
2005
+         *
2006
+         * @param $color_code
2007
+         * @param $compatibility
2008
+         *
2009
+         * @return string
2010
+         */
2011
+        public static function css_secondary($color_code,$compatibility){;
2012
+            $color_code = sanitize_hex_color($color_code);
2013
+            if(!$color_code){return '';}
2014
+            /**
2015
+             * c = color, b = background color, o = border-color, f = fill
2016
+             */
2017
+            $selectors = array(
2018
+                '.btn-secondary' => array('b','o'),
2019
+                '.btn-secondary.disabled' => array('b','o'),
2020
+                '.btn-secondary:disabled' => array('b','o'),
2021
+                '.btn-outline-secondary' => array('c','o'),
2022
+                '.btn-outline-secondary:hover' => array('b','o'),
2023
+                '.btn-outline-secondary.disabled' => array('c'),
2024
+                '.btn-outline-secondary:disabled' => array('c'),
2025
+                '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2026
+                '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2027
+                '.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2028
+                '.badge-secondary' => array('b'),
2029
+                '.alert-secondary' => array('b','o'),
2030
+                '.btn-link.btn-secondary' => array('c'),
2031
+            );
2032
+
2033
+            $important_selectors = array(
2034
+                '.bg-secondary' => array('b','f'),
2035
+                '.border-secondary' => array('o'),
2036
+                '.text-secondary' => array('c'),
2037
+            );
2038
+
2039
+            $color = array();
2040
+            $color_i = array();
2041
+            $background = array();
2042
+            $background_i = array();
2043
+            $border = array();
2044
+            $border_i = array();
2045
+            $fill = array();
2046
+            $fill_i = array();
1611 2047
 
1612
-//			if ( $type == 'primary' ) {
1613
-//				// dropdown's
1614
-//				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1615
-//
1616
-//				// input states
1617
-//				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1618
-//
1619
-//				// page link
1620
-//				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1621
-//			}
2048
+            $output = '';
1622 2049
 
1623
-			// alerts
1624
-			if ( $aui_bs5 ) {
1625
-//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1626
-				$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;} ";
1627
-			}
1628
-
1629
-			return $output;
1630
-		}
1631
-
1632
-		/**
1633
-		 * Build the CSS to overwrite a bootstrap color variable.
1634
-		 *
1635
-		 * @param $type
1636
-		 * @param $color_code
1637
-		 * @param $compatibility
1638
-		 *
1639
-		 * @return string
1640
-		 */
1641
-		public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1642
-            global $aui_bs5;
2050
+            // build rules into each type
2051
+            foreach($selectors as $selector => $types){
2052
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2053
+                $types = array_combine($types,$types);
2054
+                if(isset($types['c'])){$color[] = $selector;}
2055
+                if(isset($types['b'])){$background[] = $selector;}
2056
+                if(isset($types['o'])){$border[] = $selector;}
2057
+                if(isset($types['f'])){$fill[] = $selector;}
2058
+            }
1643 2059
 
1644
-			$is_var = false;
1645
-			if(!$color_code){return '';}
1646
-			if(strpos($color_code, 'var') !== false){
1647
-				//if(!sanitize_hex_color($color_code)){
1648
-				$color_code = esc_attr($color_code);
1649
-				$is_var = true;
1650
-//				$color_code = "rgba($color_code, 0.5)";
1651
-//                echo '###1'.$color_code.'###';//exit;
1652
-			}
2060
+            // build rules into each type
2061
+            foreach($important_selectors as $selector => $types){
2062
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2063
+                $types = array_combine($types,$types);
2064
+                if(isset($types['c'])){$color_i[] = $selector;}
2065
+                if(isset($types['b'])){$background_i[] = $selector;}
2066
+                if(isset($types['o'])){$border_i[] = $selector;}
2067
+                if(isset($types['f'])){$fill_i[] = $selector;}
2068
+            }
1653 2069
 
1654
-//            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
2070
+            // add any color rules
2071
+            if(!empty($color)){
2072
+                $output .= implode(",",$color) . "{color: $color_code;} ";
2073
+            }
2074
+            if(!empty($color_i)){
2075
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2076
+            }
1655 2077
 
1656
-			if(!$color_code){return '';}
2078
+            // add any background color rules
2079
+            if(!empty($background)){
2080
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
2081
+            }
2082
+            if(!empty($background_i)){
2083
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2084
+            }
1657 2085
 
1658
-            $rgb = self::hex_to_rgb($hex);
2086
+            // add any border color rules
2087
+            if(!empty($border)){
2088
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
2089
+            }
2090
+            if(!empty($border_i)){
2091
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2092
+            }
1659 2093
 
1660
-			if($compatibility===true || $compatibility===1){
1661
-				$compatibility = '.bsui';
1662
-			}elseif(!$compatibility){
1663
-				$compatibility = '';
1664
-			}else{
1665
-				$compatibility = esc_attr($compatibility);
1666
-			}
2094
+            // add any fill color rules
2095
+            if(!empty($fill)){
2096
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
2097
+            }
2098
+            if(!empty($fill_i)){
2099
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2100
+            }
1667 2101
 
1668 2102
 
2103
+            $prefix = $compatibility ? ".bsui " : "";
1669 2104
 
1670
-//            echo '####'.$color_code;exit;
2105
+            // darken
2106
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2107
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2108
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1671 2109
 
1672
-			$type = sanitize_html_class($type);
2110
+            // lighten
2111
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2112
+
2113
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
2114
+            $op_25 = $color_code."40"; // 25% opacity
1673 2115
 
1674
-			/**
1675
-			 * c = color, b = background color, o = border-color, f = fill
1676
-			 */
1677
-			$selectors = array(
1678
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1679
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1680
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1681
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1682
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1683
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1684
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1685
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1686
-				".badge-{$type}"                                            => array( 'b' ),
1687
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1688
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1689
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1690
-			);
1691
-
1692
-			if ( $aui_bs5 ) {
1693
-                unset($selectors[".alert-{$type}" ]);
1694
-			}
1695
-
1696
-			if ( $type == 'primary' ) {
1697
-				$selectors = $selectors + array(
1698
-						'a'                                                                                                    => array( 'c' ),
1699
-						'.btn-link'                                                                                            => array( 'c' ),
1700
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1701
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1702
-							'b',
1703
-							'o'
1704
-						),
1705
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1706
-							'b',
1707
-							'o'
1708
-						),
1709
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1710
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1711
-						'.page-link'                                                                                           => array( 'c' ),
1712
-						'.page-item.active .page-link'                                                                         => array(
1713
-							'b',
1714
-							'o'
1715
-						),
1716
-						'.progress-bar'                                                                                        => array( 'b' ),
1717
-						'.list-group-item.active'                                                                              => array(
1718
-							'b',
1719
-							'o'
1720
-						),
1721
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1722
-//				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1723
-//				    '.custom-range::-moz-range-thumb' => array('b'),
1724
-//				    '.custom-range::-ms-thumb' => array('b'),
1725
-					);
1726
-			}
1727
-
1728
-			$important_selectors = array(
1729
-				".bg-{$type}" => array('b','f'),
1730
-				".border-{$type}" => array('o'),
1731
-				".text-{$type}" => array('c'),
1732
-			);
1733
-
1734
-			$color = array();
1735
-			$color_i = array();
1736
-			$background = array();
1737
-			$background_i = array();
1738
-			$border = array();
1739
-			$border_i = array();
1740
-			$fill = array();
1741
-			$fill_i = array();
1742
-
1743
-			$output = '';
1744
-
1745
-			if ( $aui_bs5 ) {
1746
-//				$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).'; }';
1747
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1748
-			}
1749
-
1750
-			// build rules into each type
1751
-			foreach($selectors as $selector => $types){
1752
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1753
-				$types = array_combine($types,$types);
1754
-				if(isset($types['c'])){$color[] = $selector;}
1755
-				if(isset($types['b'])){$background[] = $selector;}
1756
-				if(isset($types['o'])){$border[] = $selector;}
1757
-				if(isset($types['f'])){$fill[] = $selector;}
1758
-			}
1759
-
1760
-			// build rules into each type
1761
-			foreach($important_selectors as $selector => $types){
1762
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1763
-				$types = array_combine($types,$types);
1764
-				if(isset($types['c'])){$color_i[] = $selector;}
1765
-				if(isset($types['b'])){$background_i[] = $selector;}
1766
-				if(isset($types['o'])){$border_i[] = $selector;}
1767
-				if(isset($types['f'])){$fill_i[] = $selector;}
1768
-			}
1769
-
1770
-			// add any color rules
1771
-			if(!empty($color)){
1772
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1773
-			}
1774
-			if(!empty($color_i)){
1775
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1776
-			}
1777
-
1778
-			// add any background color rules
1779
-			if(!empty($background)){
1780
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1781
-			}
1782
-			if(!empty($background_i)){
1783
-				$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1784
-//				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1785
-			}
1786 2116
 
1787
-			// add any border color rules
1788
-			if(!empty($border)){
1789
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1790
-			}
1791
-			if(!empty($border_i)){
1792
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1793
-			}
2117
+            // button states
2118
+            $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2119
+            $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;} ";
2120
+            $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.";} ";
2121
+            $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;} ";
1794 2122
 
1795
-			// add any fill color rules
1796
-			if(!empty($fill)){
1797
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1798
-			}
1799
-			if(!empty($fill_i)){
1800
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1801
-			}
1802 2123
 
2124
+            return $output;
2125
+        }
2126
+
2127
+        /**
2128
+         * Increases or decreases the brightness of a color by a percentage of the current brightness.
2129
+         *
2130
+         * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2131
+         * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2132
+         *
2133
+         * @return  string
2134
+         */
2135
+        public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2136
+            $hexCode = ltrim($hexCode, '#');
1803 2137
 
1804
-			$prefix = $compatibility ? $compatibility . " " : "";
2138
+            if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2139
+                return $hexCode;
2140
+            }
1805 2141
 
1806
-			$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;' : '';
1807
-			// darken
1808
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1809
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1810
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1811
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
2142
+            if (strlen($hexCode) == 3) {
2143
+                $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2144
+            }
1812 2145
 
1813
-			// lighten
1814
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
2146
+            $hexCode = array_map('hexdec', str_split($hexCode, 2));
1815 2147
 
1816
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1817
-			$op_25 = $color_code."40"; // 25% opacity
2148
+            foreach ($hexCode as & $color) {
2149
+                $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2150
+                $adjustAmount = ceil($adjustableLimit * $adjustPercent);
1818 2151
 
2152
+                $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2153
+            }
1819 2154
 
1820
-			// button states
1821
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1822
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1823
-//			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1824
-			$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;} ";
1825
-			$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.";} ";
1826
-			$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;} ";
2155
+            return '#' . implode($hexCode);
2156
+        }
1827 2157
 
1828
-			if ( $type == 'primary' ) {
1829
-				// dropdown's
1830
-				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
2158
+        /**
2159
+         * Check if we should display examples.
2160
+         */
2161
+        public function maybe_show_examples(){
2162
+            if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2163
+                echo "<head>";
2164
+                wp_head();
2165
+                echo "</head>";
2166
+                echo "<body>";
2167
+                echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2168
+                echo "</body>";
2169
+                exit;
2170
+            }
2171
+        }
1831 2172
 
1832
-				// input states
1833
-				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
2173
+        /**
2174
+         * Get developer examples.
2175
+         *
2176
+         * @return string
2177
+         */
2178
+        public function get_examples(){
2179
+            $output = '';
1834 2180
 
1835
-				// page link
1836
-				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1837
-			}
1838 2181
 
1839
-            // alerts
1840
-			if ( $aui_bs5 ) {
1841
-//				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1842
-				$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;} ";
1843
-			}
1844
-
1845
-			return $output;
1846
-		}
1847
-
1848
-		/**
1849
-		 *
1850
-		 * @deprecated 0.1.76 Use css_overwrite()
1851
-		 *
1852
-		 * @param $color_code
1853
-		 * @param $compatibility
1854
-		 * @param $use_variable
1855
-		 *
1856
-		 * @return string
1857
-		 */
1858
-		public static function css_primary($color_code,$compatibility, $use_variable = false){
1859
-
1860
-			if(!$use_variable){
1861
-				$color_code = sanitize_hex_color($color_code);
1862
-				if(!$color_code){return '';}
1863
-			}
1864
-
1865
-			/**
1866
-			 * c = color, b = background color, o = border-color, f = fill
1867
-			 */
1868
-			$selectors = array(
1869
-				'a' => array('c'),
1870
-				'.btn-primary' => array('b','o'),
1871
-				'.btn-primary.disabled' => array('b','o'),
1872
-				'.btn-primary:disabled' => array('b','o'),
1873
-				'.btn-outline-primary' => array('c','o'),
1874
-				'.btn-outline-primary:hover' => array('b','o'),
1875
-				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1876
-				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1877
-				'.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1878
-				'.btn-link' => array('c'),
1879
-				'.dropdown-item.active' => array('b'),
1880
-				'.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1881
-				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1882
-//				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1883
-//				'.custom-range::-moz-range-thumb' => array('b'),
1884
-//				'.custom-range::-ms-thumb' => array('b'),
1885
-				'.nav-pills .nav-link.active' => array('b'),
1886
-				'.nav-pills .show>.nav-link' => array('b'),
1887
-				'.page-link' => array('c'),
1888
-				'.page-item.active .page-link' => array('b','o'),
1889
-				'.badge-primary' => array('b'),
1890
-				'.alert-primary' => array('b','o'),
1891
-				'.progress-bar' => array('b'),
1892
-				'.list-group-item.active' => array('b','o'),
1893
-				'.bg-primary' => array('b','f'),
1894
-				'.btn-link.btn-primary' => array('c'),
1895
-				'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1896
-			);
1897
-
1898
-			$important_selectors = array(
1899
-				'.bg-primary' => array('b','f'),
1900
-				'.border-primary' => array('o'),
1901
-				'.text-primary' => array('c'),
1902
-			);
1903
-
1904
-			$color = array();
1905
-			$color_i = array();
1906
-			$background = array();
1907
-			$background_i = array();
1908
-			$border = array();
1909
-			$border_i = array();
1910
-			$fill = array();
1911
-			$fill_i = array();
1912
-
1913
-			$output = '';
1914
-
1915
-			// build rules into each type
1916
-			foreach($selectors as $selector => $types){
1917
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1918
-				$types = array_combine($types,$types);
1919
-				if(isset($types['c'])){$color[] = $selector;}
1920
-				if(isset($types['b'])){$background[] = $selector;}
1921
-				if(isset($types['o'])){$border[] = $selector;}
1922
-				if(isset($types['f'])){$fill[] = $selector;}
1923
-			}
1924
-
1925
-			// build rules into each type
1926
-			foreach($important_selectors as $selector => $types){
1927
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1928
-				$types = array_combine($types,$types);
1929
-				if(isset($types['c'])){$color_i[] = $selector;}
1930
-				if(isset($types['b'])){$background_i[] = $selector;}
1931
-				if(isset($types['o'])){$border_i[] = $selector;}
1932
-				if(isset($types['f'])){$fill_i[] = $selector;}
1933
-			}
1934
-
1935
-			// add any color rules
1936
-			if(!empty($color)){
1937
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1938
-			}
1939
-			if(!empty($color_i)){
1940
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1941
-			}
1942
-
1943
-			// add any background color rules
1944
-			if(!empty($background)){
1945
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1946
-			}
1947
-			if(!empty($background_i)){
1948
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1949
-			}
1950
-
1951
-			// add any border color rules
1952
-			if(!empty($border)){
1953
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1954
-			}
1955
-			if(!empty($border_i)){
1956
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1957
-			}
1958
-
1959
-			// add any fill color rules
1960
-			if(!empty($fill)){
1961
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1962
-			}
1963
-			if(!empty($fill_i)){
1964
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1965
-			}
1966
-
1967
-
1968
-			$prefix = $compatibility ? ".bsui " : "";
1969
-
1970
-			// darken
1971
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1972
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1973
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1974
-
1975
-			// lighten
1976
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1977
-
1978
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1979
-			$op_25 = $color_code."40"; // 25% opacity
1980
-
1981
-
1982
-			// button states
1983
-			$output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1984
-			$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;} ";
1985
-			$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.";} ";
1986
-			$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;} ";
1987
-
1988
-
1989
-			// dropdown's
1990
-			$output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1991
-
1992
-
1993
-			// input states
1994
-			$output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1995
-
1996
-			// page link
1997
-			$output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1998
-
1999
-			return $output;
2000
-		}
2001
-
2002
-		/**
2003
-		 *
2004
-		 * @deprecated 0.1.76 Use css_overwrite()
2005
-		 *
2006
-		 * @param $color_code
2007
-		 * @param $compatibility
2008
-		 *
2009
-		 * @return string
2010
-		 */
2011
-		public static function css_secondary($color_code,$compatibility){;
2012
-			$color_code = sanitize_hex_color($color_code);
2013
-			if(!$color_code){return '';}
2014
-			/**
2015
-			 * c = color, b = background color, o = border-color, f = fill
2016
-			 */
2017
-			$selectors = array(
2018
-				'.btn-secondary' => array('b','o'),
2019
-				'.btn-secondary.disabled' => array('b','o'),
2020
-				'.btn-secondary:disabled' => array('b','o'),
2021
-				'.btn-outline-secondary' => array('c','o'),
2022
-				'.btn-outline-secondary:hover' => array('b','o'),
2023
-				'.btn-outline-secondary.disabled' => array('c'),
2024
-				'.btn-outline-secondary:disabled' => array('c'),
2025
-				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2026
-				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2027
-				'.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2028
-				'.badge-secondary' => array('b'),
2029
-				'.alert-secondary' => array('b','o'),
2030
-				'.btn-link.btn-secondary' => array('c'),
2031
-			);
2032
-
2033
-			$important_selectors = array(
2034
-				'.bg-secondary' => array('b','f'),
2035
-				'.border-secondary' => array('o'),
2036
-				'.text-secondary' => array('c'),
2037
-			);
2038
-
2039
-			$color = array();
2040
-			$color_i = array();
2041
-			$background = array();
2042
-			$background_i = array();
2043
-			$border = array();
2044
-			$border_i = array();
2045
-			$fill = array();
2046
-			$fill_i = array();
2047
-
2048
-			$output = '';
2049
-
2050
-			// build rules into each type
2051
-			foreach($selectors as $selector => $types){
2052
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2053
-				$types = array_combine($types,$types);
2054
-				if(isset($types['c'])){$color[] = $selector;}
2055
-				if(isset($types['b'])){$background[] = $selector;}
2056
-				if(isset($types['o'])){$border[] = $selector;}
2057
-				if(isset($types['f'])){$fill[] = $selector;}
2058
-			}
2059
-
2060
-			// build rules into each type
2061
-			foreach($important_selectors as $selector => $types){
2062
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2063
-				$types = array_combine($types,$types);
2064
-				if(isset($types['c'])){$color_i[] = $selector;}
2065
-				if(isset($types['b'])){$background_i[] = $selector;}
2066
-				if(isset($types['o'])){$border_i[] = $selector;}
2067
-				if(isset($types['f'])){$fill_i[] = $selector;}
2068
-			}
2069
-
2070
-			// add any color rules
2071
-			if(!empty($color)){
2072
-				$output .= implode(",",$color) . "{color: $color_code;} ";
2073
-			}
2074
-			if(!empty($color_i)){
2075
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2076
-			}
2077
-
2078
-			// add any background color rules
2079
-			if(!empty($background)){
2080
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
2081
-			}
2082
-			if(!empty($background_i)){
2083
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2084
-			}
2085
-
2086
-			// add any border color rules
2087
-			if(!empty($border)){
2088
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
2089
-			}
2090
-			if(!empty($border_i)){
2091
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2092
-			}
2093
-
2094
-			// add any fill color rules
2095
-			if(!empty($fill)){
2096
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
2097
-			}
2098
-			if(!empty($fill_i)){
2099
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2100
-			}
2101
-
2102
-
2103
-			$prefix = $compatibility ? ".bsui " : "";
2104
-
2105
-			// darken
2106
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2107
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2108
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2109
-
2110
-			// lighten
2111
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2112
-
2113
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
2114
-			$op_25 = $color_code."40"; // 25% opacity
2115
-
2116
-
2117
-			// button states
2118
-			$output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2119
-			$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;} ";
2120
-			$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.";} ";
2121
-			$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;} ";
2122
-
2123
-
2124
-			return $output;
2125
-		}
2126
-
2127
-		/**
2128
-		 * Increases or decreases the brightness of a color by a percentage of the current brightness.
2129
-		 *
2130
-		 * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2131
-		 * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2132
-		 *
2133
-		 * @return  string
2134
-		 */
2135
-		public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2136
-			$hexCode = ltrim($hexCode, '#');
2137
-
2138
-			if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2139
-				return $hexCode;
2140
-			}
2141
-
2142
-			if (strlen($hexCode) == 3) {
2143
-				$hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2144
-			}
2145
-
2146
-			$hexCode = array_map('hexdec', str_split($hexCode, 2));
2147
-
2148
-			foreach ($hexCode as & $color) {
2149
-				$adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2150
-				$adjustAmount = ceil($adjustableLimit * $adjustPercent);
2151
-
2152
-				$color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2153
-			}
2154
-
2155
-			return '#' . implode($hexCode);
2156
-		}
2157
-
2158
-		/**
2159
-		 * Check if we should display examples.
2160
-		 */
2161
-		public function maybe_show_examples(){
2162
-			if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2163
-				echo "<head>";
2164
-				wp_head();
2165
-				echo "</head>";
2166
-				echo "<body>";
2167
-				echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2168
-				echo "</body>";
2169
-				exit;
2170
-			}
2171
-		}
2172
-
2173
-		/**
2174
-		 * Get developer examples.
2175
-		 *
2176
-		 * @return string
2177
-		 */
2178
-		public function get_examples(){
2179
-			$output = '';
2180
-
2181
-
2182
-			// open form
2183
-			$output .= "<form class='p-5 m-5 border rounded'>";
2184
-
2185
-			// input example
2186
-			$output .= aui()->input(array(
2187
-				'type'  =>  'text',
2188
-				'id'    =>  'text-example',
2189
-				'name'    =>  'text-example',
2190
-				'placeholder'   => 'text placeholder',
2191
-				'title'   => 'Text input example',
2192
-				'value' =>  '',
2193
-				'required'  => false,
2194
-				'help_text' => 'help text',
2195
-				'label' => 'Text input example label'
2196
-			));
2197
-
2198
-			// input example
2199
-			$output .= aui()->input(array(
2200
-				'type'  =>  'url',
2201
-				'id'    =>  'text-example2',
2202
-				'name'    =>  'text-example',
2203
-				'placeholder'   => 'url placeholder',
2204
-				'title'   => 'Text input example',
2205
-				'value' =>  '',
2206
-				'required'  => false,
2207
-				'help_text' => 'help text',
2208
-				'label' => 'Text input example label'
2209
-			));
2210
-
2211
-			// checkbox example
2212
-			$output .= aui()->input(array(
2213
-				'type'  =>  'checkbox',
2214
-				'id'    =>  'checkbox-example',
2215
-				'name'    =>  'checkbox-example',
2216
-				'placeholder'   => 'checkbox-example',
2217
-				'title'   => 'Checkbox example',
2218
-				'value' =>  '1',
2219
-				'checked'   => true,
2220
-				'required'  => false,
2221
-				'help_text' => 'help text',
2222
-				'label' => 'Checkbox checked'
2223
-			));
2224
-
2225
-			// checkbox example
2226
-			$output .= aui()->input(array(
2227
-				'type'  =>  'checkbox',
2228
-				'id'    =>  'checkbox-example2',
2229
-				'name'    =>  'checkbox-example2',
2230
-				'placeholder'   => 'checkbox-example',
2231
-				'title'   => 'Checkbox example',
2232
-				'value' =>  '1',
2233
-				'checked'   => false,
2234
-				'required'  => false,
2235
-				'help_text' => 'help text',
2236
-				'label' => 'Checkbox un-checked'
2237
-			));
2238
-
2239
-			// switch example
2240
-			$output .= aui()->input(array(
2241
-				'type'  =>  'checkbox',
2242
-				'id'    =>  'switch-example',
2243
-				'name'    =>  'switch-example',
2244
-				'placeholder'   => 'checkbox-example',
2245
-				'title'   => 'Switch example',
2246
-				'value' =>  '1',
2247
-				'checked'   => true,
2248
-				'switch'    => true,
2249
-				'required'  => false,
2250
-				'help_text' => 'help text',
2251
-				'label' => 'Switch on'
2252
-			));
2253
-
2254
-			// switch example
2255
-			$output .= aui()->input(array(
2256
-				'type'  =>  'checkbox',
2257
-				'id'    =>  'switch-example2',
2258
-				'name'    =>  'switch-example2',
2259
-				'placeholder'   => 'checkbox-example',
2260
-				'title'   => 'Switch example',
2261
-				'value' =>  '1',
2262
-				'checked'   => false,
2263
-				'switch'    => true,
2264
-				'required'  => false,
2265
-				'help_text' => 'help text',
2266
-				'label' => 'Switch off'
2267
-			));
2268
-
2269
-			// close form
2270
-			$output .= "</form>";
2271
-
2272
-			return $output;
2273
-		}
2274
-
2275
-		/**
2276
-		 * Calendar params.
2277
-		 *
2278
-		 * @since 0.1.44
2279
-		 *
2280
-		 * @return array Calendar params.
2281
-		 */
2282
-		public static function calendar_params() {
2283
-			$params = array(
2284
-				'month_long_1' => __( 'January', 'ayecode-connect' ),
2285
-				'month_long_2' => __( 'February', 'ayecode-connect' ),
2286
-				'month_long_3' => __( 'March', 'ayecode-connect' ),
2287
-				'month_long_4' => __( 'April', 'ayecode-connect' ),
2288
-				'month_long_5' => __( 'May', 'ayecode-connect' ),
2289
-				'month_long_6' => __( 'June', 'ayecode-connect' ),
2290
-				'month_long_7' => __( 'July', 'ayecode-connect' ),
2291
-				'month_long_8' => __( 'August', 'ayecode-connect' ),
2292
-				'month_long_9' => __( 'September', 'ayecode-connect' ),
2293
-				'month_long_10' => __( 'October', 'ayecode-connect' ),
2294
-				'month_long_11' => __( 'November', 'ayecode-connect' ),
2295
-				'month_long_12' => __( 'December', 'ayecode-connect' ),
2296
-				'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2297
-				'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2298
-				'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2299
-				'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2300
-				'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2301
-				'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2302
-				'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2303
-				'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2304
-				'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2305
-				'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2306
-				'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2307
-				'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2308
-				'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2309
-				'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2310
-				'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2311
-				'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2312
-				'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2313
-				'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2314
-				'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2315
-				'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2316
-				'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2317
-				'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2318
-				'day_s2_4' => __( 'We', 'ayecode-connect' ),
2319
-				'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2320
-				'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2321
-				'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2322
-				'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2323
-				'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2324
-				'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2325
-				'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2326
-				'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2327
-				'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2328
-				'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2329
-				'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2330
-				'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2331
-				'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2332
-				'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2333
-				'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2334
-				'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2335
-				'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2336
-				'am_lower' => __( 'am', 'ayecode-connect' ),
2337
-				'pm_lower' => __( 'pm', 'ayecode-connect' ),
2338
-				'am_upper' => __( 'AM', 'ayecode-connect' ),
2339
-				'pm_upper' => __( 'PM', 'ayecode-connect' ),
2340
-				'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2341
-				'time_24hr' => false,
2342
-				'year' => __( 'Year', 'ayecode-connect' ),
2343
-				'hour' => __( 'Hour', 'ayecode-connect' ),
2344
-				'minute' => __( 'Minute', 'ayecode-connect' ),
2345
-				'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2346
-				'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2347
-				'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2348
-				'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2349
-			);
2350
-
2351
-			return apply_filters( 'ayecode_ui_calendar_params', $params );
2352
-		}
2353
-
2354
-		/**
2355
-		 * Flatpickr calendar localize.
2356
-		 *
2357
-		 * @since 0.1.44
2358
-		 *
2359
-		 * @return string Calendar locale.
2360
-		 */
2361
-		public static function flatpickr_locale() {
2362
-			$params = self::calendar_params();
2363
-
2364
-			if ( is_string( $params ) ) {
2365
-				$params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2366
-			} else {
2367
-				foreach ( (array) $params as $key => $value ) {
2368
-					if ( ! is_scalar( $value ) ) {
2369
-						continue;
2370
-					}
2371
-
2372
-					$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2373
-				}
2374
-			}
2182
+            // open form
2183
+            $output .= "<form class='p-5 m-5 border rounded'>";
2184
+
2185
+            // input example
2186
+            $output .= aui()->input(array(
2187
+                'type'  =>  'text',
2188
+                'id'    =>  'text-example',
2189
+                'name'    =>  'text-example',
2190
+                'placeholder'   => 'text placeholder',
2191
+                'title'   => 'Text input example',
2192
+                'value' =>  '',
2193
+                'required'  => false,
2194
+                'help_text' => 'help text',
2195
+                'label' => 'Text input example label'
2196
+            ));
2197
+
2198
+            // input example
2199
+            $output .= aui()->input(array(
2200
+                'type'  =>  'url',
2201
+                'id'    =>  'text-example2',
2202
+                'name'    =>  'text-example',
2203
+                'placeholder'   => 'url placeholder',
2204
+                'title'   => 'Text input example',
2205
+                'value' =>  '',
2206
+                'required'  => false,
2207
+                'help_text' => 'help text',
2208
+                'label' => 'Text input example label'
2209
+            ));
2210
+
2211
+            // checkbox example
2212
+            $output .= aui()->input(array(
2213
+                'type'  =>  'checkbox',
2214
+                'id'    =>  'checkbox-example',
2215
+                'name'    =>  'checkbox-example',
2216
+                'placeholder'   => 'checkbox-example',
2217
+                'title'   => 'Checkbox example',
2218
+                'value' =>  '1',
2219
+                'checked'   => true,
2220
+                'required'  => false,
2221
+                'help_text' => 'help text',
2222
+                'label' => 'Checkbox checked'
2223
+            ));
2224
+
2225
+            // checkbox example
2226
+            $output .= aui()->input(array(
2227
+                'type'  =>  'checkbox',
2228
+                'id'    =>  'checkbox-example2',
2229
+                'name'    =>  'checkbox-example2',
2230
+                'placeholder'   => 'checkbox-example',
2231
+                'title'   => 'Checkbox example',
2232
+                'value' =>  '1',
2233
+                'checked'   => false,
2234
+                'required'  => false,
2235
+                'help_text' => 'help text',
2236
+                'label' => 'Checkbox un-checked'
2237
+            ));
2238
+
2239
+            // switch example
2240
+            $output .= aui()->input(array(
2241
+                'type'  =>  'checkbox',
2242
+                'id'    =>  'switch-example',
2243
+                'name'    =>  'switch-example',
2244
+                'placeholder'   => 'checkbox-example',
2245
+                'title'   => 'Switch example',
2246
+                'value' =>  '1',
2247
+                'checked'   => true,
2248
+                'switch'    => true,
2249
+                'required'  => false,
2250
+                'help_text' => 'help text',
2251
+                'label' => 'Switch on'
2252
+            ));
2253
+
2254
+            // switch example
2255
+            $output .= aui()->input(array(
2256
+                'type'  =>  'checkbox',
2257
+                'id'    =>  'switch-example2',
2258
+                'name'    =>  'switch-example2',
2259
+                'placeholder'   => 'checkbox-example',
2260
+                'title'   => 'Switch example',
2261
+                'value' =>  '1',
2262
+                'checked'   => false,
2263
+                'switch'    => true,
2264
+                'required'  => false,
2265
+                'help_text' => 'help text',
2266
+                'label' => 'Switch off'
2267
+            ));
2268
+
2269
+            // close form
2270
+            $output .= "</form>";
2271
+
2272
+            return $output;
2273
+        }
2274
+
2275
+        /**
2276
+         * Calendar params.
2277
+         *
2278
+         * @since 0.1.44
2279
+         *
2280
+         * @return array Calendar params.
2281
+         */
2282
+        public static function calendar_params() {
2283
+            $params = array(
2284
+                'month_long_1' => __( 'January', 'ayecode-connect' ),
2285
+                'month_long_2' => __( 'February', 'ayecode-connect' ),
2286
+                'month_long_3' => __( 'March', 'ayecode-connect' ),
2287
+                'month_long_4' => __( 'April', 'ayecode-connect' ),
2288
+                'month_long_5' => __( 'May', 'ayecode-connect' ),
2289
+                'month_long_6' => __( 'June', 'ayecode-connect' ),
2290
+                'month_long_7' => __( 'July', 'ayecode-connect' ),
2291
+                'month_long_8' => __( 'August', 'ayecode-connect' ),
2292
+                'month_long_9' => __( 'September', 'ayecode-connect' ),
2293
+                'month_long_10' => __( 'October', 'ayecode-connect' ),
2294
+                'month_long_11' => __( 'November', 'ayecode-connect' ),
2295
+                'month_long_12' => __( 'December', 'ayecode-connect' ),
2296
+                'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2297
+                'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2298
+                'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2299
+                'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2300
+                'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2301
+                'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2302
+                'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2303
+                'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2304
+                'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2305
+                'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2306
+                'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2307
+                'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2308
+                'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2309
+                'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2310
+                'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2311
+                'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2312
+                'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2313
+                'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2314
+                'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2315
+                'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2316
+                'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2317
+                'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2318
+                'day_s2_4' => __( 'We', 'ayecode-connect' ),
2319
+                'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2320
+                'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2321
+                'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2322
+                'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2323
+                'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2324
+                'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2325
+                'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2326
+                'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2327
+                'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2328
+                'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2329
+                'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2330
+                'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2331
+                'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2332
+                'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2333
+                'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2334
+                'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2335
+                'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2336
+                'am_lower' => __( 'am', 'ayecode-connect' ),
2337
+                'pm_lower' => __( 'pm', 'ayecode-connect' ),
2338
+                'am_upper' => __( 'AM', 'ayecode-connect' ),
2339
+                'pm_upper' => __( 'PM', 'ayecode-connect' ),
2340
+                'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2341
+                'time_24hr' => false,
2342
+                'year' => __( 'Year', 'ayecode-connect' ),
2343
+                'hour' => __( 'Hour', 'ayecode-connect' ),
2344
+                'minute' => __( 'Minute', 'ayecode-connect' ),
2345
+                'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2346
+                'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2347
+                'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2348
+                'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2349
+            );
2350
+
2351
+            return apply_filters( 'ayecode_ui_calendar_params', $params );
2352
+        }
2353
+
2354
+        /**
2355
+         * Flatpickr calendar localize.
2356
+         *
2357
+         * @since 0.1.44
2358
+         *
2359
+         * @return string Calendar locale.
2360
+         */
2361
+        public static function flatpickr_locale() {
2362
+            $params = self::calendar_params();
2363
+
2364
+            if ( is_string( $params ) ) {
2365
+                $params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2366
+            } else {
2367
+                foreach ( (array) $params as $key => $value ) {
2368
+                    if ( ! is_scalar( $value ) ) {
2369
+                        continue;
2370
+                    }
2371
+
2372
+                    $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2373
+                }
2374
+            }
2375 2375
 
2376
-			$day_s3 = array();
2377
-			$day_s5 = array();
2376
+            $day_s3 = array();
2377
+            $day_s5 = array();
2378 2378
 
2379
-			for ( $i = 1; $i <= 7; $i ++ ) {
2380
-				$day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2381
-				$day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2382
-			}
2379
+            for ( $i = 1; $i <= 7; $i ++ ) {
2380
+                $day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2381
+                $day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2382
+            }
2383 2383
 
2384
-			$month_s = array();
2385
-			$month_long = array();
2384
+            $month_s = array();
2385
+            $month_long = array();
2386 2386
 
2387
-			for ( $i = 1; $i <= 12; $i ++ ) {
2388
-				$month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2389
-				$month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2390
-			}
2387
+            for ( $i = 1; $i <= 12; $i ++ ) {
2388
+                $month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2389
+                $month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2390
+            }
2391 2391
 
2392
-			ob_start();
2393
-		if ( 0 ) { ?><script><?php } ?>
2392
+            ob_start();
2393
+        if ( 0 ) { ?><script><?php } ?>
2394 2394
                 {
2395 2395
                     weekdays: {
2396 2396
                         shorthand: ['<?php echo implode( "','", $day_s3 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
@@ -2429,189 +2429,189 @@  discard block
 block discarded – undo
2429 2429
                 }
2430 2430
 				<?php if ( 0 ) { ?></script><?php } ?>
2431 2431
 			<?php
2432
-			$locale = ob_get_clean();
2433
-
2434
-			return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2435
-		}
2436
-
2437
-		/**
2438
-		 * Select2 JS params.
2439
-		 *
2440
-		 * @since 0.1.44
2441
-		 *
2442
-		 * @return array Select2 JS params.
2443
-		 */
2444
-		public static function select2_params() {
2445
-			$params = array(
2446
-				'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2447
-				'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2448
-				'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2449
-				'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2450
-				'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2451
-				'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2452
-				'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2453
-				'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2454
-				'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2455
-				'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2456
-				'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2457
-			);
2458
-
2459
-			return apply_filters( 'ayecode_ui_select2_params', $params );
2460
-		}
2461
-
2462
-		/**
2463
-		 * Select2 JS localize.
2464
-		 *
2465
-		 * @since 0.1.44
2466
-		 *
2467
-		 * @return string Select2 JS locale.
2468
-		 */
2469
-		public static function select2_locale() {
2470
-			$params = self::select2_params();
2471
-
2472
-			foreach ( (array) $params as $key => $value ) {
2473
-				if ( ! is_scalar( $value ) ) {
2474
-					continue;
2475
-				}
2432
+            $locale = ob_get_clean();
2476 2433
 
2477
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2478
-			}
2479
-
2480
-			$locale = json_encode( $params );
2481
-
2482
-			return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2483
-		}
2484
-
2485
-		/**
2486
-		 * Time ago JS localize.
2487
-		 *
2488
-		 * @since 0.1.47
2489
-		 *
2490
-		 * @return string Time ago JS locale.
2491
-		 */
2492
-		public static function timeago_locale() {
2493
-			$params = array(
2494
-				'prefix_ago' => '',
2495
-				'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2496
-				'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2497
-				'suffix_after' => '',
2498
-				'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2499
-				'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2500
-				'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2501
-				'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2502
-				'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2503
-				'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2504
-				'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2505
-				'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2506
-				'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2507
-				'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2508
-				'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2509
-			);
2510
-
2511
-			$params = apply_filters( 'ayecode_ui_timeago_params', $params );
2512
-
2513
-			foreach ( (array) $params as $key => $value ) {
2514
-				if ( ! is_scalar( $value ) ) {
2515
-					continue;
2516
-				}
2434
+            return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2435
+        }
2436
+
2437
+        /**
2438
+         * Select2 JS params.
2439
+         *
2440
+         * @since 0.1.44
2441
+         *
2442
+         * @return array Select2 JS params.
2443
+         */
2444
+        public static function select2_params() {
2445
+            $params = array(
2446
+                'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2447
+                'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2448
+                'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2449
+                'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2450
+                'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2451
+                'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2452
+                'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2453
+                'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2454
+                'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2455
+                'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2456
+                'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2457
+            );
2458
+
2459
+            return apply_filters( 'ayecode_ui_select2_params', $params );
2460
+        }
2461
+
2462
+        /**
2463
+         * Select2 JS localize.
2464
+         *
2465
+         * @since 0.1.44
2466
+         *
2467
+         * @return string Select2 JS locale.
2468
+         */
2469
+        public static function select2_locale() {
2470
+            $params = self::select2_params();
2471
+
2472
+            foreach ( (array) $params as $key => $value ) {
2473
+                if ( ! is_scalar( $value ) ) {
2474
+                    continue;
2475
+                }
2476
+
2477
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2478
+            }
2479
+
2480
+            $locale = json_encode( $params );
2481
+
2482
+            return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2483
+        }
2484
+
2485
+        /**
2486
+         * Time ago JS localize.
2487
+         *
2488
+         * @since 0.1.47
2489
+         *
2490
+         * @return string Time ago JS locale.
2491
+         */
2492
+        public static function timeago_locale() {
2493
+            $params = array(
2494
+                'prefix_ago' => '',
2495
+                'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2496
+                'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2497
+                'suffix_after' => '',
2498
+                'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2499
+                'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2500
+                'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2501
+                'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2502
+                'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2503
+                'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2504
+                'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2505
+                'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2506
+                'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2507
+                'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2508
+                'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2509
+            );
2510
+
2511
+            $params = apply_filters( 'ayecode_ui_timeago_params', $params );
2512
+
2513
+            foreach ( (array) $params as $key => $value ) {
2514
+                if ( ! is_scalar( $value ) ) {
2515
+                    continue;
2516
+                }
2517
+
2518
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2519
+            }
2520
+
2521
+            $locale = json_encode( $params );
2522
+
2523
+            return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2524
+        }
2525
+
2526
+        /**
2527
+         * JavaScript Minifier
2528
+         *
2529
+         * @param $input
2530
+         *
2531
+         * @return mixed
2532
+         */
2533
+        public static function minify_js($input) {
2534
+            if(trim($input) === "") return $input;
2535
+            return preg_replace(
2536
+                array(
2537
+                    // Remove comment(s)
2538
+                    '#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2539
+                    // Remove white-space(s) outside the string and regex
2540
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2541
+                    // Remove the last semicolon
2542
+                    '#;+\}#',
2543
+                    // Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2544
+                    '#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2545
+                    // --ibid. From `foo['bar']` to `foo.bar`
2546
+                    '#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2547
+                ),
2548
+                array(
2549
+                    '$1',
2550
+                    '$1$2',
2551
+                    '}',
2552
+                    '$1$3',
2553
+                    '$1.$3'
2554
+                ),
2555
+                $input);
2556
+        }
2517 2557
 
2518
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2519
-			}
2520
-
2521
-			$locale = json_encode( $params );
2522
-
2523
-			return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2524
-		}
2525
-
2526
-		/**
2527
-		 * JavaScript Minifier
2528
-		 *
2529
-		 * @param $input
2530
-		 *
2531
-		 * @return mixed
2532
-		 */
2533
-		public static function minify_js($input) {
2534
-			if(trim($input) === "") return $input;
2535
-			return preg_replace(
2536
-				array(
2537
-					// Remove comment(s)
2538
-					'#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2539
-					// Remove white-space(s) outside the string and regex
2540
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2541
-					// Remove the last semicolon
2542
-					'#;+\}#',
2543
-					// Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2544
-					'#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2545
-					// --ibid. From `foo['bar']` to `foo.bar`
2546
-					'#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2547
-				),
2548
-				array(
2549
-					'$1',
2550
-					'$1$2',
2551
-					'}',
2552
-					'$1$3',
2553
-					'$1.$3'
2554
-				),
2555
-				$input);
2556
-		}
2557
-
2558
-		/**
2559
-		 * Minify CSS
2560
-		 *
2561
-		 * @param $input
2562
-		 *
2563
-		 * @return mixed
2564
-		 */
2565
-		public static function minify_css($input) {
2566
-			if(trim($input) === "") return $input;
2567
-			return preg_replace(
2568
-				array(
2569
-					// Remove comment(s)
2570
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2571
-					// Remove unused white-space(s)
2572
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2573
-					// Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2574
-					'#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2575
-					// Replace `:0 0 0 0` with `:0`
2576
-					'#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2577
-					// Replace `background-position:0` with `background-position:0 0`
2578
-					'#(background-position):0(?=[;\}])#si',
2579
-					// Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2580
-					'#(?<=[\s:,\-])0+\.(\d+)#s',
2581
-					// Minify string value
2582
-					'#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2583
-					'#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2584
-					// Minify HEX color code
2585
-					'#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2586
-					// Replace `(border|outline):none` with `(border|outline):0`
2587
-					'#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2588
-					// Remove empty selector(s)
2589
-					'#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2590
-				),
2591
-				array(
2592
-					'$1',
2593
-					'$1$2$3$4$5$6$7',
2594
-					'$1',
2595
-					':0',
2596
-					'$1:0 0',
2597
-					'.$1',
2598
-					'$1$3',
2599
-					'$1$2$4$5',
2600
-					'$1$2$3',
2601
-					'$1:0',
2602
-					'$1$2'
2603
-				),
2604
-				$input);
2605
-		}
2606
-
2607
-		/**
2608
-		 * Get the conditional fields JavaScript.
2609
-		 *
2610
-		 * @return mixed
2611
-		 */
2612
-		public function conditional_fields_js() {
2613
-			ob_start();
2614
-			?>
2558
+        /**
2559
+         * Minify CSS
2560
+         *
2561
+         * @param $input
2562
+         *
2563
+         * @return mixed
2564
+         */
2565
+        public static function minify_css($input) {
2566
+            if(trim($input) === "") return $input;
2567
+            return preg_replace(
2568
+                array(
2569
+                    // Remove comment(s)
2570
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2571
+                    // Remove unused white-space(s)
2572
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2573
+                    // Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2574
+                    '#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2575
+                    // Replace `:0 0 0 0` with `:0`
2576
+                    '#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2577
+                    // Replace `background-position:0` with `background-position:0 0`
2578
+                    '#(background-position):0(?=[;\}])#si',
2579
+                    // Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2580
+                    '#(?<=[\s:,\-])0+\.(\d+)#s',
2581
+                    // Minify string value
2582
+                    '#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2583
+                    '#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2584
+                    // Minify HEX color code
2585
+                    '#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2586
+                    // Replace `(border|outline):none` with `(border|outline):0`
2587
+                    '#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2588
+                    // Remove empty selector(s)
2589
+                    '#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2590
+                ),
2591
+                array(
2592
+                    '$1',
2593
+                    '$1$2$3$4$5$6$7',
2594
+                    '$1',
2595
+                    ':0',
2596
+                    '$1:0 0',
2597
+                    '.$1',
2598
+                    '$1$3',
2599
+                    '$1$2$4$5',
2600
+                    '$1$2$3',
2601
+                    '$1:0',
2602
+                    '$1$2'
2603
+                ),
2604
+                $input);
2605
+        }
2606
+
2607
+        /**
2608
+         * Get the conditional fields JavaScript.
2609
+         *
2610
+         * @return mixed
2611
+         */
2612
+        public function conditional_fields_js() {
2613
+            ob_start();
2614
+            ?>
2615 2615
             <script>
2616 2616
                 /**
2617 2617
                  * Conditional Fields
@@ -3146,237 +3146,237 @@  discard block
 block discarded – undo
3146 3146
 				<?php do_action( 'aui_conditional_fields_js', $this ); ?>
3147 3147
             </script>
3148 3148
 			<?php
3149
-			$output = ob_get_clean();
3150
-
3151
-			return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3152
-		}
3153
-
3154
-		/**
3155
-		 * Check if block editor page.
3156
-		 *
3157
-		 * @since 0.2.27
3158
-		 *
3159
-		 * @return bool
3160
-		 */
3161
-		public static function is_block_editor() {
3162
-			if ( is_admin() ) {
3163
-				$current_screen = function_exists('get_current_screen' ) ? get_current_screen() : array();
3164
-
3165
-				if ( ! empty( $current_screen ) && $current_screen->is_block_editor() ) {
3166
-					return true;
3167
-				}
3168
-			}
3169
-
3170
-			return false;
3171
-		}
3172
-
3173
-		/**
3174
-		 * Checks if the current call is a ajax call to get the block content.
3175
-		 *
3176
-		 * This can be used in your widget to return different content as the block content.
3177
-		 *
3178
-		 * @since 0.2.27
3179
-		 *
3180
-		 * @return bool
3181
-		 */
3182
-		public static function is_block_content_call() {
3183
-			$result = false;
3184
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
3185
-				$result = true;
3186
-			}
3187
-
3188
-			return $result;
3189
-		}
3190
-
3191
-		/**
3192
-		 * Tests if the current output is inside a Divi preview.
3193
-		 *
3194
-		 * @since 0.2.27
3195
-		 *
3196
-		 * @return bool
3197
-		 */
3198
-		public static function is_divi_preview() {
3199
-			$result = false;
3200
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
3201
-				$result = true;
3202
-			}
3203
-
3204
-			return $result;
3205
-		}
3206
-
3207
-		/**
3208
-		 * Tests if the current output is inside a elementor preview.
3209
-		 *
3210
-		 *
3211
-		 * @since 0.2.27
3212
-		 *
3213
-		 * @return bool
3214
-		 */
3215
-		public static function is_elementor_preview() {
3216
-			$result = false;
3217
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
3218
-				$result = true;
3219
-			}
3220
-
3221
-			return $result;
3222
-		}
3223
-
3224
-		/**
3225
-		 * Tests if the current output is inside a Beaver builder preview.
3226
-		 *
3227
-		 * @since 0.2.27
3228
-		 *
3229
-		 * @return bool
3230
-		 */
3231
-		public static function is_beaver_preview() {
3232
-			$result = false;
3233
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
3234
-				$result = true;
3235
-			}
3236
-
3237
-			return $result;
3238
-		}
3239
-
3240
-		/**
3241
-		 * Tests if the current output is inside a siteorigin builder preview.
3242
-		 *
3243
-		 * @since 0.2.27
3244
-		 *
3245
-		 * @return bool
3246
-		 */
3247
-		public static function is_siteorigin_preview() {
3248
-			$result = false;
3249
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
3250
-				$result = true;
3251
-			}
3252
-
3253
-			return $result;
3254
-		}
3255
-
3256
-		/**
3257
-		 * Tests if the current output is inside a cornerstone builder preview.
3258
-		 *
3259
-		 * @since 0.2.27
3260
-		 *
3261
-		 * @return bool
3262
-		 */
3263
-		public static function is_cornerstone_preview() {
3264
-			$result = false;
3265
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
3266
-				$result = true;
3267
-			}
3268
-
3269
-			return $result;
3270
-		}
3271
-
3272
-		/**
3273
-		 * Tests if the current output is inside a fusion builder preview.
3274
-		 *
3275
-		 * @return bool
3276
-		 *@since 1.1.0
3277
-		 */
3278
-		public static function is_fusion_preview() {
3279
-			$result = false;
3280
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
3281
-				$result = true;
3282
-			}
3283
-
3284
-			return $result;
3285
-		}
3286
-
3287
-		/**
3288
-		 * Tests if the current output is inside a Oxygen builder preview.
3289
-		 *
3290
-		 * @return bool
3291
-		 *@since 1.0.18
3292
-		 */
3293
-		public static function is_oxygen_preview() {
3294
-			$result = false;
3295
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
3296
-				$result = true;
3297
-			}
3298
-
3299
-			return $result;
3300
-		}
3301
-
3302
-		/**
3303
-		 * Check for Kallyas theme Zion builder preview.
3304
-		 *
3305
-		 * @since 0.2.27
3306
-		 *
3307
-		 * @return bool
3308
-		 */
3309
-		public static function is_kallyas_zion_preview() {
3310
-			$result = false;
3311
-
3312
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
3313
-				$result = true;
3314
-			}
3315
-
3316
-			return $result;
3317
-		}
3318
-
3319
-		/**
3320
-		 * Check for Bricks theme builder preview.
3321
-		 *
3322
-		 * @since 0.2.27
3323
-		 *
3324
-		 * @return bool
3325
-		 */
3326
-		public static function is_bricks_preview() {
3327
-			$result = false;
3328
-
3329
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
3330
-				$result = true;
3331
-			}
3332
-
3333
-			return $result;
3334
-		}
3335
-
3336
-		/**
3337
-		 * General function to check if we are in a preview situation.
3338
-		 *
3339
-		 * @since 0.2.27
3340
-		 *
3341
-		 * @return bool
3342
-		 */
3343
-		public static function is_preview() {
3344
-			$preview = false;
3345
-
3346
-			if ( self::is_block_editor() ) {
3347
-				return true;
3348
-			}
3349
-
3350
-			if( self::is_block_content_call() ) {
3351
-				$preview = true;
3352
-			} elseif ( self::is_divi_preview() ) {
3353
-				$preview = true;
3354
-			} elseif ( self::is_elementor_preview() ) {
3355
-				$preview = true;
3356
-			} elseif ( self::is_beaver_preview() ) {
3357
-				$preview = true;
3358
-			} elseif ( self::is_siteorigin_preview() ) {
3359
-				$preview = true;
3360
-			} elseif ( self::is_cornerstone_preview() ) {
3361
-				$preview = true;
3362
-			} elseif ( self::is_fusion_preview() ) {
3363
-				$preview = true;
3364
-			} elseif ( self::is_oxygen_preview() ) {
3365
-				$preview = true;
3366
-			} elseif( self::is_kallyas_zion_preview() ) {
3367
-				$preview = true;
3368
-			} elseif( self::is_bricks_preview() ) {
3369
-				$preview = true;
3370
-			}
3371
-
3372
-			return $preview;
3373
-		}
3374
-	}
3375
-
3376
-	global $ayecode_ui_settings;
3377
-
3378
-	/**
3379
-	 * Run the class if found.
3380
-	 */
3381
-	$ayecode_ui_settings = AyeCode_UI_Settings::instance();
3149
+            $output = ob_get_clean();
3150
+
3151
+            return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3152
+        }
3153
+
3154
+        /**
3155
+         * Check if block editor page.
3156
+         *
3157
+         * @since 0.2.27
3158
+         *
3159
+         * @return bool
3160
+         */
3161
+        public static function is_block_editor() {
3162
+            if ( is_admin() ) {
3163
+                $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : array();
3164
+
3165
+                if ( ! empty( $current_screen ) && $current_screen->is_block_editor() ) {
3166
+                    return true;
3167
+                }
3168
+            }
3169
+
3170
+            return false;
3171
+        }
3172
+
3173
+        /**
3174
+         * Checks if the current call is a ajax call to get the block content.
3175
+         *
3176
+         * This can be used in your widget to return different content as the block content.
3177
+         *
3178
+         * @since 0.2.27
3179
+         *
3180
+         * @return bool
3181
+         */
3182
+        public static function is_block_content_call() {
3183
+            $result = false;
3184
+            if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
3185
+                $result = true;
3186
+            }
3187
+
3188
+            return $result;
3189
+        }
3190
+
3191
+        /**
3192
+         * Tests if the current output is inside a Divi preview.
3193
+         *
3194
+         * @since 0.2.27
3195
+         *
3196
+         * @return bool
3197
+         */
3198
+        public static function is_divi_preview() {
3199
+            $result = false;
3200
+            if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
3201
+                $result = true;
3202
+            }
3203
+
3204
+            return $result;
3205
+        }
3206
+
3207
+        /**
3208
+         * Tests if the current output is inside a elementor preview.
3209
+         *
3210
+         *
3211
+         * @since 0.2.27
3212
+         *
3213
+         * @return bool
3214
+         */
3215
+        public static function is_elementor_preview() {
3216
+            $result = false;
3217
+            if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
3218
+                $result = true;
3219
+            }
3220
+
3221
+            return $result;
3222
+        }
3223
+
3224
+        /**
3225
+         * Tests if the current output is inside a Beaver builder preview.
3226
+         *
3227
+         * @since 0.2.27
3228
+         *
3229
+         * @return bool
3230
+         */
3231
+        public static function is_beaver_preview() {
3232
+            $result = false;
3233
+            if ( isset( $_REQUEST['fl_builder'] ) ) {
3234
+                $result = true;
3235
+            }
3236
+
3237
+            return $result;
3238
+        }
3239
+
3240
+        /**
3241
+         * Tests if the current output is inside a siteorigin builder preview.
3242
+         *
3243
+         * @since 0.2.27
3244
+         *
3245
+         * @return bool
3246
+         */
3247
+        public static function is_siteorigin_preview() {
3248
+            $result = false;
3249
+            if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
3250
+                $result = true;
3251
+            }
3252
+
3253
+            return $result;
3254
+        }
3255
+
3256
+        /**
3257
+         * Tests if the current output is inside a cornerstone builder preview.
3258
+         *
3259
+         * @since 0.2.27
3260
+         *
3261
+         * @return bool
3262
+         */
3263
+        public static function is_cornerstone_preview() {
3264
+            $result = false;
3265
+            if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
3266
+                $result = true;
3267
+            }
3268
+
3269
+            return $result;
3270
+        }
3271
+
3272
+        /**
3273
+         * Tests if the current output is inside a fusion builder preview.
3274
+         *
3275
+         * @return bool
3276
+         *@since 1.1.0
3277
+         */
3278
+        public static function is_fusion_preview() {
3279
+            $result = false;
3280
+            if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
3281
+                $result = true;
3282
+            }
3283
+
3284
+            return $result;
3285
+        }
3286
+
3287
+        /**
3288
+         * Tests if the current output is inside a Oxygen builder preview.
3289
+         *
3290
+         * @return bool
3291
+         *@since 1.0.18
3292
+         */
3293
+        public static function is_oxygen_preview() {
3294
+            $result = false;
3295
+            if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
3296
+                $result = true;
3297
+            }
3298
+
3299
+            return $result;
3300
+        }
3301
+
3302
+        /**
3303
+         * Check for Kallyas theme Zion builder preview.
3304
+         *
3305
+         * @since 0.2.27
3306
+         *
3307
+         * @return bool
3308
+         */
3309
+        public static function is_kallyas_zion_preview() {
3310
+            $result = false;
3311
+
3312
+            if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
3313
+                $result = true;
3314
+            }
3315
+
3316
+            return $result;
3317
+        }
3318
+
3319
+        /**
3320
+         * Check for Bricks theme builder preview.
3321
+         *
3322
+         * @since 0.2.27
3323
+         *
3324
+         * @return bool
3325
+         */
3326
+        public static function is_bricks_preview() {
3327
+            $result = false;
3328
+
3329
+            if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
3330
+                $result = true;
3331
+            }
3332
+
3333
+            return $result;
3334
+        }
3335
+
3336
+        /**
3337
+         * General function to check if we are in a preview situation.
3338
+         *
3339
+         * @since 0.2.27
3340
+         *
3341
+         * @return bool
3342
+         */
3343
+        public static function is_preview() {
3344
+            $preview = false;
3345
+
3346
+            if ( self::is_block_editor() ) {
3347
+                return true;
3348
+            }
3349
+
3350
+            if( self::is_block_content_call() ) {
3351
+                $preview = true;
3352
+            } elseif ( self::is_divi_preview() ) {
3353
+                $preview = true;
3354
+            } elseif ( self::is_elementor_preview() ) {
3355
+                $preview = true;
3356
+            } elseif ( self::is_beaver_preview() ) {
3357
+                $preview = true;
3358
+            } elseif ( self::is_siteorigin_preview() ) {
3359
+                $preview = true;
3360
+            } elseif ( self::is_cornerstone_preview() ) {
3361
+                $preview = true;
3362
+            } elseif ( self::is_fusion_preview() ) {
3363
+                $preview = true;
3364
+            } elseif ( self::is_oxygen_preview() ) {
3365
+                $preview = true;
3366
+            } elseif( self::is_kallyas_zion_preview() ) {
3367
+                $preview = true;
3368
+            } elseif( self::is_bricks_preview() ) {
3369
+                $preview = true;
3370
+            }
3371
+
3372
+            return $preview;
3373
+        }
3374
+    }
3375
+
3376
+    global $ayecode_ui_settings;
3377
+
3378
+    /**
3379
+     * Run the class if found.
3380
+     */
3381
+    $ayecode_ui_settings = AyeCode_UI_Settings::instance();
3382 3382
 }
3383 3383
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +797 added lines, -797 removed lines patch added patch discarded remove patch
@@ -12,14 +12,14 @@  discard block
 block discarded – undo
12 12
 /**
13 13
  * Bail if we are not in WP.
14 14
  */
15
-if ( ! defined( 'ABSPATH' ) ) {
15
+if (!defined('ABSPATH')) {
16 16
 	exit;
17 17
 }
18 18
 
19 19
 /**
20 20
  * Only add if the class does not already exist.
21 21
  */
22
-if ( ! class_exists( 'AyeCode_UI_Settings' ) ) {
22
+if (!class_exists('AyeCode_UI_Settings')) {
23 23
 
24 24
 	/**
25 25
 	 * A Class to be able to change settings for Font Awesome.
@@ -99,27 +99,27 @@  discard block
 block discarded – undo
99 99
 		 * @return AyeCode_UI_Settings - Main instance.
100 100
 		 */
101 101
 		public static function instance() {
102
-			if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
102
+			if (!isset(self::$instance) && !(self::$instance instanceof AyeCode_UI_Settings)) {
103 103
 
104 104
 				self::$instance = new AyeCode_UI_Settings;
105 105
 
106
-				add_action( 'init', array( self::$instance, 'init' ) ); // set settings
106
+				add_action('init', array(self::$instance, 'init')); // set settings
107 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' ) );
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 111
 
112 112
 					// Maybe show example page
113
-					add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
113
+					add_action('template_redirect', array(self::$instance, 'maybe_show_examples'));
114 114
 
115
-					if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
116
-						add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 );
115
+					if (defined('BLOCKSTRAP_VERSION')) {
116
+						add_filter('sd_aui_colors', array(self::$instance, 'sd_aui_colors'), 10, 3);
117 117
 					}
118 118
 				}
119 119
 
120
-				add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
120
+				add_action('customize_register', array(self::$instance, 'customizer_settings'));
121 121
 
122
-				do_action( 'ayecode_ui_settings_loaded' );
122
+				do_action('ayecode_ui_settings_loaded');
123 123
 			}
124 124
 
125 125
 			return self::$instance;
@@ -134,13 +134,13 @@  discard block
 block discarded – undo
134 134
 		 *
135 135
 		 * @return mixed
136 136
 		 */
137
-		public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){
137
+		public function sd_aui_colors($theme_colors, $include_outlines, $include_branding) {
138 138
 
139 139
 
140 140
 			$setting = wp_get_global_settings();
141 141
 
142
-			if(!empty($setting['color']['palette']['custom'])){
143
-				foreach($setting['color']['palette']['custom'] as $color){
142
+			if (!empty($setting['color']['palette']['custom'])) {
143
+				foreach ($setting['color']['palette']['custom'] as $color) {
144 144
 					$theme_colors[$color['slug']] = esc_attr($color['name']);
145 145
 				}
146 146
 			}
@@ -151,81 +151,81 @@  discard block
 block discarded – undo
151 151
 		/**
152 152
 		 * Setup some constants.
153 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' );
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 171
 
172
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
173
-				define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL );
172
+			if (!defined('AUI_PRIMARY_COLOR')) {
173
+				define('AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL);
174 174
 			}
175
-			if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) {
176
-				define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL );
175
+			if (!defined('AUI_SECONDARY_COLOR')) {
176
+				define('AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL);
177 177
 			}
178
-			if ( ! defined( 'AUI_INFO_COLOR' ) ) {
179
-				define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL );
178
+			if (!defined('AUI_INFO_COLOR')) {
179
+				define('AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL);
180 180
 			}
181
-			if ( ! defined( 'AUI_WARNING_COLOR' ) ) {
182
-				define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL );
181
+			if (!defined('AUI_WARNING_COLOR')) {
182
+				define('AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL);
183 183
 			}
184
-			if ( ! defined( 'AUI_DANGER_COLOR' ) ) {
185
-				define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL );
184
+			if (!defined('AUI_DANGER_COLOR')) {
185
+				define('AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL);
186 186
 			}
187
-			if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) {
188
-				define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL );
187
+			if (!defined('AUI_SUCCESS_COLOR')) {
188
+				define('AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL);
189 189
 			}
190
-			if ( ! defined( 'AUI_LIGHT_COLOR' ) ) {
191
-				define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL );
190
+			if (!defined('AUI_LIGHT_COLOR')) {
191
+				define('AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL);
192 192
 			}
193
-			if ( ! defined( 'AUI_DARK_COLOR' ) ) {
194
-				define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL );
193
+			if (!defined('AUI_DARK_COLOR')) {
194
+				define('AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL);
195 195
 			}
196
-			if ( ! defined( 'AUI_WHITE_COLOR' ) ) {
197
-				define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL );
196
+			if (!defined('AUI_WHITE_COLOR')) {
197
+				define('AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL);
198 198
 			}
199
-			if ( ! defined( 'AUI_PURPLE_COLOR' ) ) {
200
-				define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL );
199
+			if (!defined('AUI_PURPLE_COLOR')) {
200
+				define('AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL);
201 201
 			}
202
-			if ( ! defined( 'AUI_SALMON_COLOR' ) ) {
203
-				define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL );
202
+			if (!defined('AUI_SALMON_COLOR')) {
203
+				define('AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL);
204 204
 			}
205
-			if ( ! defined( 'AUI_CYAN_COLOR' ) ) {
206
-				define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL );
205
+			if (!defined('AUI_CYAN_COLOR')) {
206
+				define('AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL);
207 207
 			}
208
-			if ( ! defined( 'AUI_GRAY_COLOR' ) ) {
209
-				define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL );
208
+			if (!defined('AUI_GRAY_COLOR')) {
209
+				define('AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL);
210 210
 			}
211
-			if ( ! defined( 'AUI_INDIGO_COLOR' ) ) {
212
-				define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL );
211
+			if (!defined('AUI_INDIGO_COLOR')) {
212
+				define('AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL);
213 213
 			}
214
-			if ( ! defined( 'AUI_ORANGE_COLOR' ) ) {
215
-				define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL );
214
+			if (!defined('AUI_ORANGE_COLOR')) {
215
+				define('AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL);
216 216
 			}
217
-			if ( ! defined( 'AUI_BLACK_COLOR' ) ) {
218
-				define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL );
217
+			if (!defined('AUI_BLACK_COLOR')) {
218
+				define('AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL);
219 219
 			}
220 220
 
221 221
 		}
222 222
 
223
-		public static function get_colors( $original = false){
223
+		public static function get_colors($original = false) {
224 224
 
225
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
225
+			if (!defined('AUI_PRIMARY_COLOR')) {
226 226
 				return array();
227 227
 			}
228
-			if ( $original ) {
228
+			if ($original) {
229 229
 				return array(
230 230
 					'primary'   => AUI_PRIMARY_COLOR_ORIGINAL,
231 231
 					'secondary' => AUI_SECONDARY_COLOR_ORIGINAL,
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
 		 *
274 274
 		 * @return mixed
275 275
 		 */
276
-		public function add_bs5_admin_body_class( $classes = '' ) {
276
+		public function add_bs5_admin_body_class($classes = '') {
277 277
 			$classes .= ' aui_bs5';
278 278
 
279 279
 			return $classes;
@@ -286,7 +286,7 @@  discard block
 block discarded – undo
286 286
 		 *
287 287
 		 * @return mixed
288 288
 		 */
289
-		public function add_bs5_body_class( $classes ) {
289
+		public function add_bs5_body_class($classes) {
290 290
 			$classes[] = 'aui_bs5';
291 291
 
292 292
 			return $classes;
@@ -299,12 +299,12 @@  discard block
 block discarded – undo
299 299
             global $aui_bs5;
300 300
 
301 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 ) ) {
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 305
 					$db_settings['css_backend'] = 'compatibility';
306 306
 					$db_settings['js_backend'] = 'core-popper';
307
-					update_option( 'ayecode-ui-settings', $db_settings );
307
+					update_option('ayecode-ui-settings', $db_settings);
308 308
 					wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true"));
309 309
 				}
310 310
 			}
@@ -316,10 +316,10 @@  discard block
 block discarded – undo
316 316
             // define the version
317 317
 			$aui_bs5 = $this->settings['bs_ver'] === '5';
318 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' ) );
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 323
 			}
324 324
 
325 325
 			/**
@@ -327,32 +327,32 @@  discard block
 block discarded – undo
327 327
 			 *
328 328
 			 * We load super early in case there is a theme version that might change the colors
329 329
 			 */
330
-			if ( $this->settings['css'] ) {
330
+			if ($this->settings['css']) {
331 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 );
333
+				add_action('wp_enqueue_scripts', array($this, 'enqueue_style'), $priority);
334 334
 			}
335
-			if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
336
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
335
+			if ($this->settings['css_backend'] && $this->load_admin_scripts()) {
336
+				add_action('admin_enqueue_scripts', array($this, 'enqueue_style'), 1);
337 337
 			}
338 338
 
339 339
 			// maybe load JS
340
-			if ( $this->settings['js'] ) {
340
+			if ($this->settings['js']) {
341 341
 				$priority = $this->is_bs3_compat() ? 100 : 1;
342
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority );
342
+				add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), $priority);
343 343
 			}
344
-			if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
345
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
344
+			if ($this->settings['js_backend'] && $this->load_admin_scripts()) {
345
+				add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'), 1);
346 346
 			}
347 347
 
348 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 );
349
+			if ($this->settings['html_font_size']) {
350
+				add_action('wp_footer', array($this, 'html_font_size'), 10);
351 351
 			}
352 352
 
353 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' ) );
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 356
 			}
357 357
 
358 358
 		}
@@ -360,11 +360,11 @@  discard block
 block discarded – undo
360 360
 		/**
361 361
 		 * Show admin notice if backend scripts not loaded.
362 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>';
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 368
 		}
369 369
 
370 370
 		/**
@@ -372,14 +372,14 @@  discard block
 block discarded – undo
372 372
 		 *
373 373
 		 * @return bool
374 374
 		 */
375
-		public function load_admin_scripts(){
375
+		public function load_admin_scripts() {
376 376
 			$result = true;
377 377
 
378 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 ){
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 383
 						return false; // return early, no point checking further
384 384
 					}
385 385
 				}
@@ -391,9 +391,9 @@  discard block
 block discarded – undo
391 391
 		/**
392 392
 		 * Add a html font size to the footer.
393 393
 		 */
394
-		public function html_font_size(){
394
+		public function html_font_size() {
395 395
 			$this->settings = $this->get_settings();
396
-			echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
396
+			echo "<style>html{font-size:" . absint($this->settings['html_font_size']) . "px;}</style>";
397 397
 		}
398 398
 
399 399
 		/**
@@ -401,11 +401,11 @@  discard block
 block discarded – undo
401 401
 		 *
402 402
 		 * @return bool
403 403
 		 */
404
-		public function is_aui_screen(){
404
+		public function is_aui_screen() {
405 405
 //			echo '###';exit;
406 406
 			$load = false;
407 407
 			// check if we should load or not
408
-			if ( is_admin() ) {
408
+			if (is_admin()) {
409 409
 				// Only enable on set pages
410 410
 				$aui_screens = array(
411 411
 					'page',
@@ -417,26 +417,26 @@  discard block
 block discarded – undo
417 417
 					'ayecode-ui-settings',
418 418
 					'site-editor'
419 419
 				);
420
-				$screen_ids = apply_filters( 'aui_screen_ids', $aui_screens );
420
+				$screen_ids = apply_filters('aui_screen_ids', $aui_screens);
421 421
 
422 422
 				$screen = get_current_screen();
423 423
 
424 424
 //				echo '###'.$screen->id;
425 425
 
426 426
 				// check if we are on a AUI screen
427
-				if ( $screen && in_array( $screen->id, $screen_ids ) ) {
427
+				if ($screen && in_array($screen->id, $screen_ids)) {
428 428
 					$load = true;
429 429
 				}
430 430
 
431 431
 				//load for widget previews in WP 5.8
432
-				if( !empty($_REQUEST['legacy-widget-preview'])){
432
+				if (!empty($_REQUEST['legacy-widget-preview'])) {
433 433
 					$load = true;
434 434
 				}
435 435
 			}
436 436
 
437 437
 
438 438
 
439
-			return apply_filters( 'aui_load_on_admin' , $load );
439
+			return apply_filters('aui_load_on_admin', $load);
440 440
 		}
441 441
 
442 442
 		/**
@@ -445,7 +445,7 @@  discard block
 block discarded – undo
445 445
 		 * @return bool
446 446
 		 */
447 447
 		public static function is_block_theme() {
448
-			if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) {
448
+			if (function_exists('wp_is_block_theme' && wp_is_block_theme())) {
449 449
 				return true;
450 450
 			}
451 451
 
@@ -460,32 +460,32 @@  discard block
 block discarded – undo
460 460
 
461 461
             $load_fse = false;
462 462
 
463
-			if ( is_admin() && ! $this->is_aui_screen() ) {
463
+			if (is_admin() && !$this->is_aui_screen()) {
464 464
 				// Don't add wp-admin scripts if not requested to.
465 465
 			} else {
466 466
 				$css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
467
-				$rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : '';
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' );
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 481
 						$load_fse = true;
482 482
 					}
483 483
 
484 484
 					// flatpickr
485
-					wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version );
485
+					wp_register_style('flatpickr', $this->url . 'assets' . $bs_ver . '/css/flatpickr.min.css', array(), $this->version);
486 486
 
487 487
 					// fix some wp-admin issues
488
-					if(is_admin()){
488
+					if (is_admin()) {
489 489
 						$custom_css = "
490 490
                 body{
491 491
                     background-color: #f1f1f1;
@@ -532,14 +532,14 @@  discard block
 block discarded – undo
532 532
 						    padding: 0;
533 533
 						}
534 534
 					";
535
-						wp_add_inline_style( 'ayecode-ui', $custom_css );
535
+						wp_add_inline_style('ayecode-ui', $custom_css);
536 536
 					}
537 537
 
538 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) );
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 543
 					}
544 544
 				}
545 545
 			}
@@ -556,10 +556,10 @@  discard block
 block discarded – undo
556 556
 			$flatpickr_locale = self::flatpickr_locale();
557 557
 
558 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' );
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 563
             }
564 564
 
565 565
 			$output = ob_get_clean();
@@ -567,10 +567,10 @@  discard block
 block discarded – undo
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(
570
+			return str_replace(array(
571 571
 				'<script>',
572 572
 				'</script>'
573
-			), '', self::minify_js($output) );
573
+			), '', self::minify_js($output));
574 574
 		}
575 575
 
576 576
 
@@ -584,13 +584,13 @@  discard block
 block discarded – undo
584 584
 			ob_start();
585 585
 			?>
586 586
             <script>
587
-				<?php if( defined( 'FUSION_BUILDER_VERSION' ) ){ ?>
587
+				<?php if (defined('FUSION_BUILDER_VERSION')) { ?>
588 588
                 /* With Avada builder */
589 589
 
590 590
 				<?php } ?>
591 591
             </script>
592 592
 			<?php
593
-			return str_replace( array(
593
+			return str_replace(array(
594 594
 				'<script>',
595 595
 				'</script>'
596 596
 			), '', ob_get_clean());
@@ -601,7 +601,7 @@  discard block
 block discarded – undo
601 601
 		 *
602 602
 		 * If this remains small then its best to use this than to add another JS file.
603 603
 		 */
604
-		public function inline_script_file_browser(){
604
+		public function inline_script_file_browser() {
605 605
 			ob_start();
606 606
 			?>
607 607
             <script>
@@ -616,17 +616,17 @@  discard block
 block discarded – undo
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(
619
+			return str_replace(array(
620 620
 				'<script>',
621 621
 				'</script>'
622
-			), '', $output );
622
+			), '', $output);
623 623
 		}
624 624
 
625 625
 		/**
626 626
 		 * Adds the Font Awesome JS.
627 627
 		 */
628 628
 		public function enqueue_scripts() {
629
-			if( is_admin() && !$this->is_aui_screen()){
629
+			if (is_admin() && !$this->is_aui_screen()) {
630 630
 				// Don't add wp-admin scripts if not requested to.
631 631
 			} else {
632 632
 				$js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
@@ -634,57 +634,57 @@  discard block
 block discarded – undo
634 634
 				$bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
635 635
 
636 636
 				// select2
637
-				wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version );
637
+				wp_register_script('select2', $this->url . 'assets/js/select2.min.js', array('jquery'), $this->select2_version);
638 638
 
639 639
 				// flatpickr
640
-				wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version );
640
+				wp_register_script('flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version);
641 641
 
642 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 );
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 647
 				}
648 648
 
649 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() );
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 652
 
653 653
 				$load_inline = false;
654 654
 
655 655
 				// Load select2 only when required.
656
-				if ( $this->force_load_select2() ) {
657
-					$dependency = array( 'select2', 'jquery' );
656
+				if ($this->force_load_select2()) {
657
+					$dependency = array('select2', 'jquery');
658 658
 				} else {
659
-					$dependency = array( 'jquery' );
659
+					$dependency = array('jquery');
660 660
 				}
661 661
 
662
-				if ( $this->settings[ $js_setting ] == 'core-popper' ) {
662
+				if ($this->settings[$js_setting] == 'core-popper') {
663 663
 					// Bootstrap bundle
664 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() );
665
+					wp_register_script('bootstrap-js-bundle', $url, $dependency, $this->version, $this->is_bs3_compat());
666 666
 
667 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' );
668
+					is_admin() ? wp_enqueue_script('bootstrap-js-bundle', '', null, null, true) : wp_enqueue_script('bootstrap-js-bundle');
669 669
 
670 670
 					$script = $this->inline_script();
671
-					wp_add_inline_script( 'bootstrap-js-bundle', $script );
672
-				} elseif ( $this->settings[ $js_setting ] == 'popper' ) {
671
+					wp_add_inline_script('bootstrap-js-bundle', $script);
672
+				} elseif ($this->settings[$js_setting] == 'popper') {
673 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' );
674
+					wp_register_script('bootstrap-js-popper', $url, $dependency, $this->version);
675
+					wp_enqueue_script('bootstrap-js-popper');
676 676
 					$load_inline = true;
677 677
 				} else {
678 678
 					$load_inline = true;
679 679
 				}
680 680
 
681 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' );
682
+				if ($load_inline) {
683
+					wp_register_script('bootstrap-dummy', '', $dependency);
684
+					wp_enqueue_script('bootstrap-dummy');
685 685
 
686 686
 					$script = $this->inline_script();
687
-					wp_add_inline_script( 'bootstrap-dummy', $script );
687
+					wp_add_inline_script('bootstrap-dummy', $script);
688 688
 				}
689 689
 			}
690 690
 		}
@@ -697,15 +697,15 @@  discard block
 block discarded – undo
697 697
 		public function force_load_select2() {
698 698
 			global $aui_select2_enqueued;
699 699
 
700
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
700
+			$conditional_select2 = apply_filters('aui_is_conditional_select2', true);
701 701
 
702
-			if ( $conditional_select2 !== true ) {
702
+			if ($conditional_select2 !== true) {
703 703
 				return true;
704 704
 			}
705 705
 
706
-			$load = is_admin() && ! $aui_select2_enqueued;
706
+			$load = is_admin() && !$aui_select2_enqueued;
707 707
 
708
-			return apply_filters( 'aui_force_load_select2', $load );
708
+			return apply_filters('aui_force_load_select2', $load);
709 709
 		}
710 710
 
711 711
 		/**
@@ -714,23 +714,23 @@  discard block
 block discarded – undo
714 714
 		 * @since 0.2.29
715 715
 		 */
716 716
 		public function enqueue_select2() {
717
-			wp_enqueue_script( 'select2' );
717
+			wp_enqueue_script('select2');
718 718
 		}
719 719
 
720 720
 		/**
721 721
 		 * Enqueue flatpickr if called.
722 722
 		 */
723
-		public function enqueue_flatpickr(){
724
-			wp_enqueue_style( 'flatpickr' );
725
-			wp_enqueue_script( 'flatpickr' );
723
+		public function enqueue_flatpickr() {
724
+			wp_enqueue_style('flatpickr');
725
+			wp_enqueue_script('flatpickr');
726 726
 		}
727 727
 
728 728
 		/**
729 729
 		 * Enqueue iconpicker if called.
730 730
 		 */
731
-		public function enqueue_iconpicker(){
732
-			wp_enqueue_style( 'iconpicker' );
733
-			wp_enqueue_script( 'iconpicker' );
731
+		public function enqueue_iconpicker() {
732
+			wp_enqueue_style('iconpicker');
733
+			wp_enqueue_script('iconpicker');
734 734
 		}
735 735
 
736 736
 		/**
@@ -739,19 +739,19 @@  discard block
 block discarded – undo
739 739
 		 * @return string
740 740
 		 */
741 741
 		public function get_url() {
742
-			$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
743
-			$content_url = untrailingslashit( WP_CONTENT_URL );
742
+			$content_dir = wp_normalize_path(untrailingslashit(WP_CONTENT_DIR));
743
+			$content_url = untrailingslashit(WP_CONTENT_URL);
744 744
 
745 745
 			// Replace http:// to https://.
746
-			if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
747
-				$content_url = str_replace( 'http://', 'https://', $content_url );
746
+			if (strpos($content_url, 'http://') === 0 && strpos(plugins_url(), 'https://') === 0) {
747
+				$content_url = str_replace('http://', 'https://', $content_url);
748 748
 			}
749 749
 
750 750
 			// Check if we are inside a plugin
751
-			$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
752
-			$url = str_replace( $content_dir, $content_url, $file_dir );
751
+			$file_dir = str_replace("/includes", "", wp_normalize_path(dirname(__FILE__)));
752
+			$url = str_replace($content_dir, $content_url, $file_dir);
753 753
 
754
-			return trailingslashit( $url );
754
+			return trailingslashit($url);
755 755
 		}
756 756
 
757 757
 		/**
@@ -763,15 +763,15 @@  discard block
 block discarded – undo
763 763
 
764 764
 			$url = '';
765 765
 			// check if we are inside a plugin
766
-			$file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
766
+			$file_dir = str_replace("/includes", "", wp_normalize_path(dirname(__FILE__)));
767 767
 
768 768
 			// add check in-case user has changed wp-content dir name.
769 769
 			$wp_content_folder_name = basename(WP_CONTENT_DIR);
770
-			$dir_parts = explode("/$wp_content_folder_name/",$file_dir);
771
-			$url_parts = explode("/$wp_content_folder_name/",plugins_url());
770
+			$dir_parts = explode("/$wp_content_folder_name/", $file_dir);
771
+			$url_parts = explode("/$wp_content_folder_name/", plugins_url());
772 772
 
773
-			if(!empty($url_parts[0]) && !empty($dir_parts[1])){
774
-				$url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
773
+			if (!empty($url_parts[0]) && !empty($dir_parts[1])) {
774
+				$url = trailingslashit($url_parts[0] . "/$wp_content_folder_name/" . $dir_parts[1]);
775 775
 			}
776 776
 
777 777
 			return $url;
@@ -781,7 +781,7 @@  discard block
 block discarded – undo
781 781
 		 * Register the database settings with WordPress.
782 782
 		 */
783 783
 		public function register_settings() {
784
-			register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
784
+			register_setting('ayecode-ui-settings', 'ayecode-ui-settings');
785 785
 		}
786 786
 
787 787
 		/**
@@ -790,10 +790,10 @@  discard block
 block discarded – undo
790 790
 		 */
791 791
 		public function menu_item() {
792 792
 			$menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
793
-			call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
793
+			call_user_func($menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
794 794
 				$this,
795 795
 				'settings_page'
796
-			) );
796
+			));
797 797
 		}
798 798
 
799 799
 		/**
@@ -801,7 +801,7 @@  discard block
 block discarded – undo
801 801
 		 *
802 802
 		 * @return array
803 803
 		 */
804
-		public function theme_js_settings(){
804
+		public function theme_js_settings() {
805 805
 			return array(
806 806
 				'ayetheme' => 'popper',
807 807
 				'listimia' => 'required',
@@ -822,7 +822,7 @@  discard block
 block discarded – undo
822 822
 	        $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
823 823
 
824 824
 	        // Execute the query
825
-	        $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
825
+	        $date = $wpdb->get_var($query); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
826 826
 
827 827
 	        return $date ? $date : false;
828 828
         }
@@ -830,11 +830,11 @@  discard block
 block discarded – undo
830 830
 		/**
831 831
 		 * Show admin notice if backend scripts not loaded.
832 832
 		 */
833
-		public function show_admin_version_notice(){
834
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
835
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
836
-			$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;
837
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
833
+		public function show_admin_version_notice() {
834
+			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings");
835
+			$button = '<a href="' . esc_url($fix_url) . '" class="button-primary">View Settings</a>';
836
+			$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;
837
+			echo '<div class="notice notice-error aui-settings-error-notice"><p>' . wp_kses_post($message) . '</p></div>';
838 838
 		}
839 839
 
840 840
 		/**
@@ -844,32 +844,32 @@  discard block
 block discarded – undo
844 844
 		 */
845 845
 		public function get_settings() {
846 846
 
847
-			$db_settings = get_option( 'ayecode-ui-settings' );
847
+			$db_settings = get_option('ayecode-ui-settings');
848 848
 
849 849
             // Maybe show default version notice
850
-			$site_install_date = new DateTime( self::get_site_install_date() );
850
+			$site_install_date = new DateTime(self::get_site_install_date());
851 851
 			$switch_over_date = new DateTime("2024-02-01");
852
-			if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) {
853
-				add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
852
+			if (empty($db_settings) && $site_install_date < $switch_over_date) {
853
+				add_action('admin_notices', array($this, 'show_admin_version_notice'));
854 854
 			}
855 855
 
856 856
 			$js_default = 'core-popper';
857 857
 			$js_default_backend = $js_default;
858 858
 
859 859
 			// maybe set defaults (if no settings set)
860
-			if(empty($db_settings)){
861
-				$active_theme = strtolower( get_template() ); // active parent theme.
860
+			if (empty($db_settings)) {
861
+				$active_theme = strtolower(get_template()); // active parent theme.
862 862
 				$theme_js_settings = self::theme_js_settings();
863
-				if(isset($theme_js_settings[$active_theme])){
863
+				if (isset($theme_js_settings[$active_theme])) {
864 864
 					$js_default = $theme_js_settings[$active_theme];
865
-					$js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
865
+					$js_default_backend = isset($theme_js_settings[$active_theme . "_backend"]) ? $theme_js_settings[$active_theme . "_backend"] : $js_default;
866 866
 				}
867 867
 			}
868 868
 
869 869
 			/**
870 870
 			 * Filter the default settings.
871 871
 			 */
872
-			$defaults = apply_filters( 'ayecode-ui-default-settings', array(
872
+			$defaults = apply_filters('ayecode-ui-default-settings', array(
873 873
 				'css'            => 'compatibility', // core, compatibility
874 874
 				'js'             => $js_default, // js to load, core-popper, popper
875 875
 				'html_font_size' => '16', // js to load, core-popper, popper
@@ -877,16 +877,16 @@  discard block
 block discarded – undo
877 877
 				'js_backend'     => $js_default_backend, // js to load, core-popper, popper
878 878
 				'disable_admin'  => '', // URL snippets to disable loading on admin
879 879
                 'bs_ver'         => '5', // The default bootstrap version to sue by default
880
-			), $db_settings );
880
+			), $db_settings);
881 881
 
882
-			$settings = wp_parse_args( $db_settings, $defaults );
882
+			$settings = wp_parse_args($db_settings, $defaults);
883 883
 
884 884
 			/**
885 885
 			 * Filter the Bootstrap settings.
886 886
 			 *
887 887
 			 * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
888 888
 			 */
889
-			return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
889
+			return $this->settings = apply_filters('ayecode-ui-settings', $settings, $db_settings, $defaults);
890 890
 		}
891 891
 
892 892
 
@@ -894,109 +894,109 @@  discard block
 block discarded – undo
894 894
 		 * The settings page html output.
895 895
 		 */
896 896
 		public function settings_page() {
897
-			if ( ! current_user_can( 'manage_options' ) ) {
898
-				wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
897
+			if (!current_user_can('manage_options')) {
898
+				wp_die(esc_attr__('You do not have sufficient permissions to access this page.', 'ayecode-connect'));
899 899
 			}
900
-            $overrides = apply_filters( 'ayecode-ui-settings', array(), array(), array() );
900
+            $overrides = apply_filters('ayecode-ui-settings', array(), array(), array());
901 901
 
902 902
 			?>
903 903
             <div class="wrap">
904
-                <h1><?php echo esc_attr( $this->name ); ?></h1>
905
-                <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>
904
+                <h1><?php echo esc_attr($this->name); ?></h1>
905
+                <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>
906 906
                 <form method="post" action="options.php">
907 907
 					<?php
908
-					settings_fields( 'ayecode-ui-settings' );
909
-					do_settings_sections( 'ayecode-ui-settings' );
908
+					settings_fields('ayecode-ui-settings');
909
+					do_settings_sections('ayecode-ui-settings');
910 910
 					?>
911 911
 
912
-                    <h2><?php esc_html_e( 'BootStrap Version', 'ayecode-connect' ); ?></h2>
913
-                    <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>
912
+                    <h2><?php esc_html_e('BootStrap Version', 'ayecode-connect'); ?></h2>
913
+                    <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>
914 914
 	                <div class="bsui"><?php
915
-	                if ( ! empty( $overrides ) ) {
915
+	                if (!empty($overrides)) {
916 916
 		                echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
917 917
 			                'type'=> 'info',
918
-			                'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
918
+			                'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect')
919 919
 		                ));
920 920
 	                }
921 921
 	                ?>
922 922
                     </div>
923 923
                     <table class="form-table wpbs-table-version-settings">
924 924
                         <tr valign="top">
925
-                            <th scope="row"><label for="wpbs-css"><?php esc_html_e( 'Version', 'ayecode-connect' ); ?></label></th>
925
+                            <th scope="row"><label for="wpbs-css"><?php esc_html_e('Version', 'ayecode-connect'); ?></label></th>
926 926
                             <td>
927 927
                                 <select name="ayecode-ui-settings[bs_ver]" id="wpbs-css" <?php echo !empty($overrides['bs_ver']) ? 'disabled' : ''; ?>>
928
-                                    <option	value="5" <?php selected( $this->settings['bs_ver'], '5' ); ?>><?php esc_html_e( 'v5 (recommended)', 'ayecode-connect' ); ?></option>
929
-                                    <option value="4" <?php selected( $this->settings['bs_ver'], '4' ); ?>><?php esc_html_e( 'v4 (legacy)', 'ayecode-connect' ); ?></option>
928
+                                    <option	value="5" <?php selected($this->settings['bs_ver'], '5'); ?>><?php esc_html_e('v5 (recommended)', 'ayecode-connect'); ?></option>
929
+                                    <option value="4" <?php selected($this->settings['bs_ver'], '4'); ?>><?php esc_html_e('v4 (legacy)', 'ayecode-connect'); ?></option>
930 930
                                 </select>
931 931
                             </td>
932 932
                         </tr>
933 933
                     </table>
934 934
 
935
-                    <h2><?php esc_html_e( 'Frontend', 'ayecode-connect' ); ?></h2>
935
+                    <h2><?php esc_html_e('Frontend', 'ayecode-connect'); ?></h2>
936 936
                     <table class="form-table wpbs-table-settings">
937 937
                         <tr valign="top">
938
-                            <th scope="row"><label for="wpbs-css"><?php esc_html_e( 'Load CSS', 'ayecode-connect' ); ?></label></th>
938
+                            <th scope="row"><label for="wpbs-css"><?php esc_html_e('Load CSS', 'ayecode-connect'); ?></label></th>
939 939
                             <td>
940 940
                                 <select name="ayecode-ui-settings[css]" id="wpbs-css" <?php echo !empty($overrides['css']) ? 'disabled' : ''; ?>>
941
-                                    <option	value="compatibility" <?php selected( $this->settings['css'], 'compatibility' ); ?>><?php esc_html_e( 'Compatibility Mode (default)', 'ayecode-connect' ); ?></option>
942
-                                    <option value="core" <?php selected( $this->settings['css'], 'core' ); ?>><?php esc_html_e( 'Full Mode', 'ayecode-connect' ); ?></option>
943
-                                    <option	value="" <?php selected( $this->settings['css'], '' ); ?>><?php esc_html_e( 'Disabled', 'ayecode-connect' ); ?></option>
941
+                                    <option	value="compatibility" <?php selected($this->settings['css'], 'compatibility'); ?>><?php esc_html_e('Compatibility Mode (default)', 'ayecode-connect'); ?></option>
942
+                                    <option value="core" <?php selected($this->settings['css'], 'core'); ?>><?php esc_html_e('Full Mode', 'ayecode-connect'); ?></option>
943
+                                    <option	value="" <?php selected($this->settings['css'], ''); ?>><?php esc_html_e('Disabled', 'ayecode-connect'); ?></option>
944 944
                                 </select>
945 945
                             </td>
946 946
                         </tr>
947 947
 
948 948
                         <tr valign="top">
949
-                            <th scope="row"><label for="wpbs-js"><?php esc_html_e( 'Load JS', 'ayecode-connect' ); ?></label></th>
949
+                            <th scope="row"><label for="wpbs-js"><?php esc_html_e('Load JS', 'ayecode-connect'); ?></label></th>
950 950
                             <td>
951 951
                                 <select name="ayecode-ui-settings[js]" id="wpbs-js" <?php echo !empty($overrides['js']) ? 'disabled' : ''; ?>>
952
-                                    <option	value="core-popper" <?php selected( $this->settings['js'], 'core-popper' ); ?>><?php esc_html_e( 'Core + Popper (default)', 'ayecode-connect' ); ?></option>
953
-                                    <option value="popper" <?php selected( $this->settings['js'], 'popper' ); ?>><?php esc_html_e( 'Popper', 'ayecode-connect' ); ?></option>
954
-                                    <option value="required" <?php selected( $this->settings['js'], 'required' ); ?>><?php esc_html_e( 'Required functions only', 'ayecode-connect' ); ?></option>
955
-                                    <option	value="" <?php selected( $this->settings['js'], '' ); ?>><?php esc_html_e( 'Disabled (not recommended)', 'ayecode-connect' ); ?></option>
952
+                                    <option	value="core-popper" <?php selected($this->settings['js'], 'core-popper'); ?>><?php esc_html_e('Core + Popper (default)', 'ayecode-connect'); ?></option>
953
+                                    <option value="popper" <?php selected($this->settings['js'], 'popper'); ?>><?php esc_html_e('Popper', 'ayecode-connect'); ?></option>
954
+                                    <option value="required" <?php selected($this->settings['js'], 'required'); ?>><?php esc_html_e('Required functions only', 'ayecode-connect'); ?></option>
955
+                                    <option	value="" <?php selected($this->settings['js'], ''); ?>><?php esc_html_e('Disabled (not recommended)', 'ayecode-connect'); ?></option>
956 956
                                 </select>
957 957
                             </td>
958 958
                         </tr>
959 959
 
960 960
                         <tr valign="top">
961
-                            <th scope="row"><label for="wpbs-font_size"><?php esc_html_e( 'HTML Font Size (px)', 'ayecode-connect' ); ?></label></th>
961
+                            <th scope="row"><label for="wpbs-font_size"><?php esc_html_e('HTML Font Size (px)', 'ayecode-connect'); ?></label></th>
962 962
                             <td>
963
-                                <input type="number" name="ayecode-ui-settings[html_font_size]" id="wpbs-font_size" value="<?php echo absint( $this->settings['html_font_size']); ?>" placeholder="16" <?php echo !empty($overrides['html_font_size']) ? 'disabled' : ''; ?> />
964
-                                <p class="description" ><?php esc_html_e("Our font sizing is rem (responsive based) here you can set the html font size in-case your theme is setting it too low.", 'ayecode-connect' );?></p>
963
+                                <input type="number" name="ayecode-ui-settings[html_font_size]" id="wpbs-font_size" value="<?php echo absint($this->settings['html_font_size']); ?>" placeholder="16" <?php echo !empty($overrides['html_font_size']) ? 'disabled' : ''; ?> />
964
+                                <p class="description" ><?php esc_html_e("Our font sizing is rem (responsive based) here you can set the html font size in-case your theme is setting it too low.", 'ayecode-connect'); ?></p>
965 965
                             </td>
966 966
                         </tr>
967 967
 
968 968
                     </table>
969 969
 
970
-                    <h2><?php esc_html_e( 'Backend', 'ayecode-connect' ); ?> (wp-admin)</h2>
970
+                    <h2><?php esc_html_e('Backend', 'ayecode-connect'); ?> (wp-admin)</h2>
971 971
                     <table class="form-table wpbs-table-settings">
972 972
                         <tr valign="top">
973
-                            <th scope="row"><label for="wpbs-css-admin"><?php esc_html_e( 'Load CSS', 'ayecode-connect' ); ?></label></th>
973
+                            <th scope="row"><label for="wpbs-css-admin"><?php esc_html_e('Load CSS', 'ayecode-connect'); ?></label></th>
974 974
                             <td>
975 975
                                 <select name="ayecode-ui-settings[css_backend]" id="wpbs-css-admin" <?php echo !empty($overrides['css_backend']) ? 'disabled' : ''; ?>>
976
-                                    <option	value="compatibility" <?php selected( $this->settings['css_backend'], 'compatibility' ); ?>><?php esc_html_e( 'Compatibility Mode (default)', 'ayecode-connect' ); ?></option>
977
-                                    <option value="core" <?php selected( $this->settings['css_backend'], 'core' ); ?>><?php esc_html_e( 'Full Mode (will cause style issues)', 'ayecode-connect' ); ?></option>
978
-                                    <option	value="" <?php selected( $this->settings['css_backend'], '' ); ?>><?php esc_html_e( 'Disabled', 'ayecode-connect' ); ?></option>
976
+                                    <option	value="compatibility" <?php selected($this->settings['css_backend'], 'compatibility'); ?>><?php esc_html_e('Compatibility Mode (default)', 'ayecode-connect'); ?></option>
977
+                                    <option value="core" <?php selected($this->settings['css_backend'], 'core'); ?>><?php esc_html_e('Full Mode (will cause style issues)', 'ayecode-connect'); ?></option>
978
+                                    <option	value="" <?php selected($this->settings['css_backend'], ''); ?>><?php esc_html_e('Disabled', 'ayecode-connect'); ?></option>
979 979
                                 </select>
980 980
                             </td>
981 981
                         </tr>
982 982
 
983 983
                         <tr valign="top">
984
-                            <th scope="row"><label for="wpbs-js-admin"><?php esc_html_e( 'Load JS', 'ayecode-connect' ); ?></label></th>
984
+                            <th scope="row"><label for="wpbs-js-admin"><?php esc_html_e('Load JS', 'ayecode-connect'); ?></label></th>
985 985
                             <td>
986 986
                                 <select name="ayecode-ui-settings[js_backend]" id="wpbs-js-admin" <?php echo !empty($overrides['js_backend']) ? 'disabled' : ''; ?>>
987
-                                    <option	value="core-popper" <?php selected( $this->settings['js_backend'], 'core-popper' ); ?>><?php esc_html_e( 'Core + Popper (default)', 'ayecode-connect' ); ?></option>
988
-                                    <option value="popper" <?php selected( $this->settings['js_backend'], 'popper' ); ?>><?php esc_html_e( 'Popper', 'ayecode-connect' ); ?></option>
989
-                                    <option value="required" <?php selected( $this->settings['js_backend'], 'required' ); ?>><?php esc_html_e( 'Required functions only', 'ayecode-connect' ); ?></option>
990
-                                    <option	value="" <?php selected( $this->settings['js_backend'], '' ); ?>><?php esc_html_e( 'Disabled (not recommended)', 'ayecode-connect' ); ?></option>
987
+                                    <option	value="core-popper" <?php selected($this->settings['js_backend'], 'core-popper'); ?>><?php esc_html_e('Core + Popper (default)', 'ayecode-connect'); ?></option>
988
+                                    <option value="popper" <?php selected($this->settings['js_backend'], 'popper'); ?>><?php esc_html_e('Popper', 'ayecode-connect'); ?></option>
989
+                                    <option value="required" <?php selected($this->settings['js_backend'], 'required'); ?>><?php esc_html_e('Required functions only', 'ayecode-connect'); ?></option>
990
+                                    <option	value="" <?php selected($this->settings['js_backend'], ''); ?>><?php esc_html_e('Disabled (not recommended)', 'ayecode-connect'); ?></option>
991 991
                                 </select>
992 992
                             </td>
993 993
                         </tr>
994 994
 
995 995
                         <tr valign="top">
996
-                            <th scope="row"><label for="wpbs-disable-admin"><?php esc_html_e( 'Disable load on URL', 'ayecode-connect' ); ?></label></th>
996
+                            <th scope="row"><label for="wpbs-disable-admin"><?php esc_html_e('Disable load on URL', 'ayecode-connect'); ?></label></th>
997 997
                             <td>
998
-                                <p><?php esc_html_e( 'If you have backend conflict you can enter a partial URL argument that will disable the loading of AUI on those pages. Add each argument on a new line.', 'ayecode-connect' ); ?></p>
999
-                                <textarea name="ayecode-ui-settings[disable_admin]" rows="10" cols="50" id="wpbs-disable-admin" class="large-text code" spellcheck="false" placeholder="myplugin.php &#10;action=go"><?php echo esc_textarea( $this->settings['disable_admin'] );?></textarea>
998
+                                <p><?php esc_html_e('If you have backend conflict you can enter a partial URL argument that will disable the loading of AUI on those pages. Add each argument on a new line.', 'ayecode-connect'); ?></p>
999
+                                <textarea name="ayecode-ui-settings[disable_admin]" rows="10" cols="50" id="wpbs-disable-admin" class="large-text code" spellcheck="false" placeholder="myplugin.php &#10;action=go"><?php echo esc_textarea($this->settings['disable_admin']); ?></textarea>
1000 1000
                             </td>
1001 1001
                         </tr>
1002 1002
                     </table>
@@ -1005,33 +1005,33 @@  discard block
 block discarded – undo
1005 1005
 					submit_button();
1006 1006
 					?>
1007 1007
                 </form>
1008
-                <div id="wpbs-version" data-aui-source="<?php echo esc_attr( $this->get_load_source() ); ?>"><?php echo esc_html( $this->version ); ?></div>
1008
+                <div id="wpbs-version" data-aui-source="<?php echo esc_attr($this->get_load_source()); ?>"><?php echo esc_html($this->version); ?></div>
1009 1009
             </div>
1010 1010
 			<?php
1011 1011
 		}
1012 1012
 
1013
-        public function get_load_source(){
1014
-	        $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
1015
-	        $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
1013
+        public function get_load_source() {
1014
+	        $file = str_replace(array("/", "\\"), "/", realpath(__FILE__));
1015
+	        $plugins_dir = str_replace(array("/", "\\"), "/", realpath(WP_PLUGIN_DIR));
1016 1016
 
1017 1017
 	        // Find source plugin/theme of SD
1018 1018
 	        $source = array();
1019
-	        if ( strpos( $file, $plugins_dir ) !== false ) {
1020
-		        $source = explode( "/", plugin_basename( $file ) );
1021
-	        } else if ( function_exists( 'get_theme_root' ) ) {
1022
-		        $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1019
+	        if (strpos($file, $plugins_dir) !== false) {
1020
+		        $source = explode("/", plugin_basename($file));
1021
+	        } else if (function_exists('get_theme_root')) {
1022
+		        $themes_dir = str_replace(array("/", "\\"), "/", realpath(get_theme_root()));
1023 1023
 
1024
-		        if ( strpos( $file, $themes_dir ) !== false ) {
1025
-			        $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1024
+		        if (strpos($file, $themes_dir) !== false) {
1025
+			        $source = explode("/", ltrim(str_replace($themes_dir, "", $file), "/"));
1026 1026
 		        }
1027 1027
 	        }
1028 1028
 
1029 1029
             return isset($source[0]) ? esc_attr($source[0]) : '';
1030 1030
         }
1031 1031
 
1032
-		public function customizer_settings($wp_customize){
1032
+		public function customizer_settings($wp_customize) {
1033 1033
 			$wp_customize->add_section('aui_settings', array(
1034
-				'title'    => __('AyeCode UI', 'ayecode-connect' ),
1034
+				'title'    => __('AyeCode UI', 'ayecode-connect'),
1035 1035
 				'priority' => 120,
1036 1036
 			));
1037 1037
 
@@ -1045,8 +1045,8 @@  discard block
 block discarded – undo
1045 1045
 				'type'              => 'option',
1046 1046
 				'transport'         => 'refresh',
1047 1047
 			));
1048
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1049
-				'label'    => __('Primary Color', 'ayecode-connect' ),
1048
+			$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1049
+				'label'    => __('Primary Color', 'ayecode-connect'),
1050 1050
 				'section'  => 'aui_settings',
1051 1051
 				'settings' => 'aui_options[color_primary]',
1052 1052
 			)));
@@ -1058,8 +1058,8 @@  discard block
 block discarded – undo
1058 1058
 				'type'              => 'option',
1059 1059
 				'transport'         => 'refresh',
1060 1060
 			));
1061
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1062
-				'label'    => __('Secondary Color', 'ayecode-connect' ),
1061
+			$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1062
+				'label'    => __('Secondary Color', 'ayecode-connect'),
1063 1063
 				'section'  => 'aui_settings',
1064 1064
 				'settings' => 'aui_options[color_secondary]',
1065 1065
 			)));
@@ -1085,12 +1085,12 @@  discard block
 block discarded – undo
1085 1085
                 .collapse.show:not(.in){display: inherit;}
1086 1086
                 .fade.show{opacity: 1;}
1087 1087
 
1088
-                <?php if( defined( 'SVQ_THEME_VERSION' ) ){ ?>
1088
+                <?php if (defined('SVQ_THEME_VERSION')) { ?>
1089 1089
                 /* KLEO theme specific */
1090 1090
                 .kleo-main-header .navbar-collapse.collapse.show:not(.in){display: block !important;}
1091 1091
                 <?php } ?>
1092 1092
 
1093
-                <?php if( defined( 'FUSION_BUILDER_VERSION' ) ){ ?>
1093
+                <?php if (defined('FUSION_BUILDER_VERSION')) { ?>
1094 1094
                 /* With Avada builder */
1095 1095
                 body.modal-open .modal.in  {opacity:1;z-index: 99999}
1096 1096
                 body.modal-open .modal.bsui.in .modal-content  {box-shadow: none;}
@@ -1101,44 +1101,44 @@  discard block
 block discarded – undo
1101 1101
                 <?php } ?>
1102 1102
             </style>
1103 1103
 			<?php
1104
-			return str_replace( array(
1104
+			return str_replace(array(
1105 1105
 				'<style>',
1106 1106
 				'</style>'
1107
-			), '', self::minify_css( ob_get_clean() ) );
1107
+			), '', self::minify_css(ob_get_clean()));
1108 1108
 		}
1109 1109
 
1110
-		public static function custom_css( $compatibility = true, $is_fse = false ) {
1110
+		public static function custom_css($compatibility = true, $is_fse = false) {
1111 1111
 			global $aui_bs5;
1112 1112
 
1113 1113
 			$colors = array();
1114 1114
 
1115
-			if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1115
+			if (defined('BLOCKSTRAP_VERSION')) {
1116 1116
 				$setting = wp_get_global_settings();
1117 1117
 
1118
-				if ( ! empty( $setting['color']['palette']['theme'] ) ) {
1119
-					foreach ( $setting['color']['palette']['theme'] as $color ) {
1120
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1118
+				if (!empty($setting['color']['palette']['theme'])) {
1119
+					foreach ($setting['color']['palette']['theme'] as $color) {
1120
+						$colors[$color['slug']] = esc_attr($color['color']);
1121 1121
 					}
1122 1122
 				}
1123 1123
 
1124
-				if ( ! empty( $setting['color']['palette']['custom'] ) ) {
1125
-					foreach ( $setting['color']['palette']['custom'] as $color ) {
1126
-						$colors[$color['slug']] = esc_attr( $color['color'] );
1124
+				if (!empty($setting['color']['palette']['custom'])) {
1125
+					foreach ($setting['color']['palette']['custom'] as $color) {
1126
+						$colors[$color['slug']] = esc_attr($color['color']);
1127 1127
 					}
1128 1128
 				}
1129 1129
 			} else {
1130
-				$settings = get_option( 'aui_options' );
1130
+				$settings = get_option('aui_options');
1131 1131
 
1132 1132
 				$colors = array(
1133
-					'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1134
-					'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1133
+					'primary'   => !empty($settings['color_primary']) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1134
+					'secondary' => !empty($settings['color_secondary']) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1135 1135
 				);
1136 1136
 			}
1137 1137
 
1138 1138
 			ob_start();
1139 1139
 			?><style><?php
1140 1140
 			// BS v3 compat
1141
-			if( self::is_bs3_compat() ){
1141
+			if (self::is_bs3_compat()) {
1142 1142
 				echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1143 1143
 			}
1144 1144
 
@@ -1147,147 +1147,147 @@  discard block
 block discarded – undo
1147 1147
 				//$is_fse = true;
1148 1148
 			//}
1149 1149
 
1150
-			$custom_front = ! is_admin() ? true : apply_filters('ayecode_ui_custom_front', false );
1151
-			$custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false );
1152
-            $bs_custom_css = apply_filters( 'ayecode_ui_bs_custom_css', $custom_admin || $custom_front );
1150
+			$custom_front = !is_admin() ? true : apply_filters('ayecode_ui_custom_front', false);
1151
+			$custom_admin = $is_fse || self::is_preview() ? true : apply_filters('ayecode_ui_custom_admin', false);
1152
+            $bs_custom_css = apply_filters('ayecode_ui_bs_custom_css', $custom_admin || $custom_front);
1153 1153
 			//$bs_custom_css = true; // Force true to fix any color issue.
1154 1154
 
1155 1155
 			$colors_css = '';
1156
-			if ( ! empty( $colors ) && $bs_custom_css ) {
1156
+			if (!empty($colors) && $bs_custom_css) {
1157 1157
 				$d_colors = self::get_colors(true);
1158 1158
 
1159
-				foreach ( $colors as $key => $color ) {
1160
-					if ( ( empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) {
1159
+				foreach ($colors as $key => $color) {
1160
+					if ((empty($d_colors[$key]) || $d_colors[$key] != $color) || $is_fse) {
1161 1161
 						$var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1162 1162
 						$compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1163 1163
 
1164
-						$colors_css .= $aui_bs5 ? self::css_overwrite_bs5( $key,$var, $compat, $color ) : self::css_overwrite( $key, $var, $compat, $color );
1164
+						$colors_css .= $aui_bs5 ? self::css_overwrite_bs5($key, $var, $compat, $color) : self::css_overwrite($key, $var, $compat, $color);
1165 1165
 					}
1166 1166
 				}
1167 1167
 			}
1168 1168
 
1169
-			if ( $colors_css ) {
1169
+			if ($colors_css) {
1170 1170
 				echo $colors_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1171 1171
 			}
1172 1172
 
1173 1173
 			// Set admin bar z-index lower when modal is open.
1174 1174
 			echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1175 1175
 
1176
-			if ( is_admin() ) {
1176
+			if (is_admin()) {
1177 1177
 				echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1178 1178
 			}
1179 1179
 
1180 1180
 			$custom_css = '';
1181 1181
 
1182
-			if ( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) && $bs_custom_css ) {
1182
+			if ($aui_bs5 && defined('BLOCKSTRAP_VERSION') && $bs_custom_css) {
1183 1183
 				$css = '';
1184 1184
 				$theme_settings = wp_get_global_styles();
1185 1185
 
1186 1186
 				// Font face
1187
-				if( !empty( $theme_settings['typography']['fontFamily'] ) ){
1188
-					$t_fontface = str_replace( array('var:preset|','font-family|'), array('--wp--preset--','font-family--'), $theme_settings['typography']['fontFamily']  ); //var(--wp--preset--font-family--poppins)
1187
+				if (!empty($theme_settings['typography']['fontFamily'])) {
1188
+					$t_fontface = str_replace(array('var:preset|', 'font-family|'), array('--wp--preset--', 'font-family--'), $theme_settings['typography']['fontFamily']); //var(--wp--preset--font-family--poppins)
1189 1189
 					$css .= '--bs-body-font-family: ' . esc_attr($t_fontface) . ';';
1190 1190
 				}
1191 1191
 
1192 1192
 				// font size
1193
-				if( !empty( $theme_settings['typography']['fontSize'] ) ){
1194
-					$css .= '--bs-body-font-size: ' . esc_attr( $theme_settings['typography']['fontSize'] ) . ' ;';
1193
+				if (!empty($theme_settings['typography']['fontSize'])) {
1194
+					$css .= '--bs-body-font-size: ' . esc_attr($theme_settings['typography']['fontSize']) . ' ;';
1195 1195
 				}
1196 1196
 
1197 1197
 				// line height
1198
-				 if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1199
-					$css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1198
+				 if (!empty($theme_settings['typography']['lineHeight'])) {
1199
+					$css .= '--bs-body-line-height: ' . esc_attr($theme_settings['typography']['lineHeight']) . ';';
1200 1200
 				}
1201 1201
 
1202 1202
 
1203 1203
 				   // font weight
1204
-				 if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1205
-					$css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1204
+				 if (!empty($theme_settings['typography']['fontWeight'])) {
1205
+					$css .= '--bs-body-font-weight: ' . esc_attr($theme_settings['typography']['fontWeight']) . ';';
1206 1206
 				}
1207 1207
 
1208 1208
 				// Background
1209
-				 if( !empty( $theme_settings['color']['background'] ) ){
1210
-					$css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1209
+				 if (!empty($theme_settings['color']['background'])) {
1210
+					$css .= '--bs-body-bg: ' . esc_attr($theme_settings['color']['background']) . ';';
1211 1211
 				}
1212 1212
 
1213 1213
 				 // Background Gradient
1214
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1215
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1214
+				 if (!empty($theme_settings['color']['gradient'])) {
1215
+					$css .= 'background: ' . esc_attr($theme_settings['color']['gradient']) . ';';
1216 1216
 				}
1217 1217
 
1218 1218
 				   // Background Gradient
1219
-				 if( !empty( $theme_settings['color']['gradient'] ) ){
1220
-					$css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1219
+				 if (!empty($theme_settings['color']['gradient'])) {
1220
+					$css .= 'background: ' . esc_attr($theme_settings['color']['gradient']) . ';';
1221 1221
 				}
1222 1222
 
1223 1223
 				// text color
1224
-				if( !empty( $theme_settings['color']['text'] ) ){
1225
-					$css .= '--bs-body-color: ' . esc_attr( $theme_settings['color']['text'] ) . ';';
1224
+				if (!empty($theme_settings['color']['text'])) {
1225
+					$css .= '--bs-body-color: ' . esc_attr($theme_settings['color']['text']) . ';';
1226 1226
 				}
1227 1227
 
1228 1228
 
1229 1229
 				// link colors
1230
-				if( !empty( $theme_settings['elements']['link']['color']['text'] ) ){
1231
-					$css .= '--bs-link-color: ' . esc_attr( $theme_settings['elements']['link']['color']['text'] ) . ';';
1230
+				if (!empty($theme_settings['elements']['link']['color']['text'])) {
1231
+					$css .= '--bs-link-color: ' . esc_attr($theme_settings['elements']['link']['color']['text']) . ';';
1232 1232
 				}
1233
-				if( !empty( $theme_settings['elements']['link'][':hover']['color']['text'] ) ){
1234
-					$css .= '--bs-link-hover-color: ' . esc_attr( $theme_settings['elements']['link'][':hover']['color']['text'] ) . ';';
1233
+				if (!empty($theme_settings['elements']['link'][':hover']['color']['text'])) {
1234
+					$css .= '--bs-link-hover-color: ' . esc_attr($theme_settings['elements']['link'][':hover']['color']['text']) . ';';
1235 1235
 				}
1236 1236
 
1237
-				if($css){
1238
-					$custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr( $css ) . '}' : 'body{' . esc_attr( $css ) . '}';
1237
+				if ($css) {
1238
+					$custom_css .= $is_fse ? 'body.editor-styles-wrapper{' . esc_attr($css) . '}' : 'body{' . esc_attr($css) . '}';
1239 1239
 				}
1240 1240
 
1241 1241
 				$bep = $is_fse ? 'body.editor-styles-wrapper ' : '';
1242 1242
 
1243 1243
 				// Headings
1244 1244
 				$headings_css = '';
1245
-				if( !empty( $theme_settings['elements']['heading']['color']['text'] ) ){
1246
-					$headings_css .= "color: " . esc_attr( $theme_settings['elements']['heading']['color']['text'] ) . ";";
1245
+				if (!empty($theme_settings['elements']['heading']['color']['text'])) {
1246
+					$headings_css .= "color: " . esc_attr($theme_settings['elements']['heading']['color']['text']) . ";";
1247 1247
 				}
1248 1248
 
1249 1249
 				// heading background
1250
-				if( !empty( $theme_settings['elements']['heading']['color']['background'] ) ){
1251
-					$headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1250
+				if (!empty($theme_settings['elements']['heading']['color']['background'])) {
1251
+					$headings_css .= 'background: ' . esc_attr($theme_settings['elements']['heading']['color']['background']) . ';';
1252 1252
 				}
1253 1253
 
1254 1254
 				 // heading font family
1255
-				if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1256
-					$headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1255
+				if (!empty($theme_settings['elements']['heading']['typography']['fontFamily'])) {
1256
+					$headings_css .= 'font-family: ' . esc_attr($theme_settings['elements']['heading']['typography']['fontFamily']) . ';';
1257 1257
 				}
1258 1258
 
1259
-				if( $headings_css ){
1260
-					$custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr( $headings_css ) . "}";
1259
+				if ($headings_css) {
1260
+					$custom_css .= "$bep h1,$bep h2,$bep h3, $bep h4,$bep h5,$bep h6{ " . esc_attr($headings_css) . "}";
1261 1261
 				}
1262 1262
 
1263
-				$hs = array('h1','h2','h3','h4','h5','h6');
1263
+				$hs = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6');
1264 1264
 
1265
-				foreach($hs as $hn){
1265
+				foreach ($hs as $hn) {
1266 1266
 					$h_css = '';
1267
-					 if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1268
-						$h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1267
+					 if (!empty($theme_settings['elements'][$hn]['color']['text'])) {
1268
+						$h_css .= 'color: ' . esc_attr($theme_settings['elements'][$hn]['color']['text']) . ';';
1269 1269
 					 }
1270 1270
 
1271
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1272
-						$h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1271
+					  if (!empty($theme_settings['elements'][$hn]['typography']['fontSize'])) {
1272
+						$h_css .= 'font-size: ' . esc_attr($theme_settings['elements'][$hn]['typography']['fontSize']) . ';';
1273 1273
 					 }
1274 1274
 
1275
-					  if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1276
-						$h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1275
+					  if (!empty($theme_settings['elements'][$hn]['typography']['fontFamily'])) {
1276
+						$h_css .= 'font-family: ' . esc_attr($theme_settings['elements'][$hn]['typography']['fontFamily']) . ';';
1277 1277
 					 }
1278 1278
 
1279
-					 if($h_css){
1280
-						$custom_css .= esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1279
+					 if ($h_css) {
1280
+						$custom_css .= esc_attr($bep . $hn) . '{' . esc_attr($h_css) . '}';
1281 1281
 					 }
1282 1282
 				}
1283 1283
 			}
1284 1284
 			
1285
-			if ( $custom_css ) {
1285
+			if ($custom_css) {
1286 1286
 				echo $custom_css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1287 1287
 			}
1288 1288
 
1289 1289
 			// Pagination on Hello Elementor theme.
1290
-			if ( function_exists( 'hello_elementor_setup' ) ) {
1290
+			if (function_exists('hello_elementor_setup')) {
1291 1291
 				echo '.aui-nav-links .pagination{justify-content:inherit}';
1292 1292
 			}
1293 1293
 			?></style><?php
@@ -1296,10 +1296,10 @@  discard block
 block discarded – undo
1296 1296
 			/*
1297 1297
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1298 1298
 			 */
1299
-			return str_replace( array(
1299
+			return str_replace(array(
1300 1300
 				'<style>',
1301 1301
 				'</style>'
1302
-			), '', self::minify_css( $custom_css ) );
1302
+			), '', self::minify_css($custom_css));
1303 1303
 		}
1304 1304
 
1305 1305
 		/**
@@ -1307,34 +1307,34 @@  discard block
 block discarded – undo
1307 1307
 		 *
1308 1308
 		 * @return bool
1309 1309
 		 */
1310
-		public static function is_bs3_compat(){
1310
+		public static function is_bs3_compat() {
1311 1311
 			return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1312 1312
 		}
1313 1313
 
1314
-		public static function hex_to_rgb( $hex ) {
1314
+		public static function hex_to_rgb($hex) {
1315 1315
 			// Remove '#' if present
1316
-			$hex = str_replace( '#', '', $hex );
1316
+			$hex = str_replace('#', '', $hex);
1317 1317
 
1318 1318
 			// Check if input is RGB
1319
-			if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1320
-				$_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1319
+			if (strpos($hex, 'rgba(') === 0 || strpos($hex, 'rgb(') === 0) {
1320
+				$_rgb = explode(',', str_replace(array('rgba(', 'rgb(', ')'), '', $hex));
1321 1321
 
1322
-				$rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1323
-				$rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1324
-				$rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1322
+				$rgb = (isset($_rgb[0]) ? (int) trim($_rgb[0]) : '0') . ',';
1323
+				$rgb .= (isset($_rgb[1]) ? (int) trim($_rgb[1]) : '0') . ',';
1324
+				$rgb .= (isset($_rgb[2]) ? (int) trim($_rgb[2]) : '0');
1325 1325
 
1326 1326
 				return $rgb;
1327 1327
 			}
1328 1328
 
1329 1329
 			// Convert 3-digit hex to 6-digit hex
1330
-			if ( strlen( $hex ) == 3 ) {
1331
-				$hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1330
+			if (strlen($hex) == 3) {
1331
+				$hex = str_repeat(substr($hex, 0, 1), 2) . str_repeat(substr($hex, 1, 1), 2) . str_repeat(substr($hex, 2, 1), 2);
1332 1332
 			}
1333 1333
 
1334 1334
 			// Convert hex to RGB
1335
-			$r = hexdec( substr( $hex, 0, 2 ) );
1336
-			$g = hexdec( substr( $hex, 2, 2 ) );
1337
-			$b = hexdec( substr( $hex, 4, 2 ) );
1335
+			$r = hexdec(substr($hex, 0, 2));
1336
+			$g = hexdec(substr($hex, 2, 2));
1337
+			$b = hexdec(substr($hex, 4, 2));
1338 1338
 
1339 1339
 			// Return RGB values as an array
1340 1340
 			return $r . ',' . $g . ',' . $b;
@@ -1349,13 +1349,13 @@  discard block
 block discarded – undo
1349 1349
 		 *
1350 1350
 		 * @return string
1351 1351
 		 */
1352
-		public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1352
+		public static function css_overwrite_bs5($type, $color_code, $compatibility, $hex = '') {
1353 1353
 			global $aui_bs5;
1354 1354
 
1355 1355
 			$is_var = false;
1356 1356
 			$is_custom = strpos($type, 'custom-') !== false ? true : false;
1357
-			if(!$color_code){return '';}
1358
-			if(strpos($color_code, 'var') !== false){
1357
+			if (!$color_code) {return ''; }
1358
+			if (strpos($color_code, 'var') !== false) {
1359 1359
 				//if(!sanitize_hex_color($color_code)){
1360 1360
 				$color_code = esc_attr($color_code);
1361 1361
 				$is_var = true;
@@ -1365,15 +1365,15 @@  discard block
 block discarded – undo
1365 1365
 
1366 1366
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1367 1367
 
1368
-			if(!$color_code){return '';}
1368
+			if (!$color_code) {return ''; }
1369 1369
 
1370 1370
 			$rgb = self::hex_to_rgb($hex);
1371 1371
 
1372
-			if($compatibility===true || $compatibility===1){
1372
+			if ($compatibility === true || $compatibility === 1) {
1373 1373
 				$compatibility = '.bsui';
1374
-			}elseif(!$compatibility){
1374
+			}elseif (!$compatibility) {
1375 1375
 				$compatibility = '';
1376
-			}else{
1376
+			} else {
1377 1377
 				$compatibility = esc_attr($compatibility);
1378 1378
 			}
1379 1379
 
@@ -1390,30 +1390,30 @@  discard block
 block discarded – undo
1390 1390
 			 * c = color, b = background color, o = border-color, f = fill
1391 1391
 			 */
1392 1392
 			$selectors = array(
1393
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1394
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1395
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1396
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1397
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1398
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1399
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1400
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1401
-				".badge-{$type}"                                            => array( 'b' ),
1402
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1403
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1404
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1405
-				".text-{$type}"                                     => array( 'c' ),
1393
+				".btn-{$type}"                                              => array('b', 'o'),
1394
+				".btn-{$type}.disabled"                                     => array('b', 'o'),
1395
+				".btn-{$type}:disabled"                                     => array('b', 'o'),
1396
+				".btn-outline-{$type}"                                      => array('c', 'o'),
1397
+				".btn-outline-{$type}:hover"                                => array('b', 'o'),
1398
+				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array('b', 'o'),
1399
+				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array('b', 'o'),
1400
+				".show>.btn-outline-{$type}.dropdown-toggle"                => array('b', 'o'),
1401
+				".badge-{$type}"                                            => array('b'),
1402
+				".alert-{$type}"                                            => array('b', 'o'),
1403
+				".bg-{$type}"                                               => array('b', 'f'),
1404
+				".btn-link.btn-{$type}"                                     => array('c'),
1405
+				".text-{$type}"                                     => array('c'),
1406 1406
 			);
1407 1407
 
1408
-			if ( $aui_bs5 ) {
1409
-				unset($selectors[".alert-{$type}" ]);
1408
+			if ($aui_bs5) {
1409
+				unset($selectors[".alert-{$type}"]);
1410 1410
 			}
1411 1411
 
1412
-			if ( $type == 'primary' ) {
1412
+			if ($type == 'primary') {
1413 1413
 				$selectors = $selectors + array(
1414
-						'a'                                                                                                    => array( 'c' ),
1415
-						'.btn-link'                                                                                            => array( 'c' ),
1416
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1414
+						'a'                                                                                                    => array('c'),
1415
+						'.btn-link'                                                                                            => array('c'),
1416
+						'.dropdown-item.active'                                                                                => array('b'),
1417 1417
 						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1418 1418
 							'b',
1419 1419
 							'o'
@@ -1422,57 +1422,57 @@  discard block
 block discarded – undo
1422 1422
 							'b',
1423 1423
 							'o'
1424 1424
 						),
1425
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1426
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1427
-						'.page-link'                                                                                           => array( 'c' ),
1425
+						'.nav-pills .nav-link.active'                                                                          => array('b'),
1426
+						'.nav-pills .show>.nav-link'                                                                           => array('b'),
1427
+						'.page-link'                                                                                           => array('c'),
1428 1428
 						'.page-item.active .page-link'                                                                         => array(
1429 1429
 							'b',
1430 1430
 							'o'
1431 1431
 						),
1432
-						'.progress-bar'                                                                                        => array( 'b' ),
1432
+						'.progress-bar'                                                                                        => array('b'),
1433 1433
 						'.list-group-item.active'                                                                              => array(
1434 1434
 							'b',
1435 1435
 							'o'
1436 1436
 						),
1437
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1437
+						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1438 1438
 					);
1439 1439
 			}
1440 1440
 
1441 1441
 
1442 1442
 
1443 1443
             // link
1444
-			if ( $type === 'primary' ) {
1445
-				$output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1446
-				$output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1447
-				$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).'; }';
1444
+			if ($type === 'primary') {
1445
+				$output .= 'html body {--bs-link-hover-color: rgba(var(--bs-' . esc_attr($type) . '-rgb), .75); --bs-link-color: var(--bs-' . esc_attr($type) . '); }';
1446
+				$output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: ' . esc_attr($color_code) . ';  }';
1447
+				$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) . '; }';
1448 1448
 
1449
-				$output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1450
-				$output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1449
+				$output .= $prefix . ' a{color: var(--bs-' . esc_attr($type) . ');}';
1450
+				$output .= $prefix . ' .text-primary{color: var(--bs-' . esc_attr($type) . ') !important;}';
1451 1451
 
1452 1452
                 // dropdown
1453
-				$output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1453
+				$output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-' . esc_attr($type) . '); --bs-dropdown-link-active-color: var(--bs-' . esc_attr($type) . ');}';
1454 1454
 
1455 1455
                 // pagination
1456
-				$output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1456
+				$output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-' . esc_attr($type) . '); --bs-pagination-active-bg: var(--bs-' . esc_attr($type) . ');}';
1457 1457
 
1458 1458
 			}
1459 1459
 
1460
-			$output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1461
-			$output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1460
+			$output .= $prefix . ' .link-' . esc_attr($type) . ' {color: var(--bs-' . esc_attr($type) . '-rgb) !important;}';
1461
+			$output .= $prefix . ' .link-' . esc_attr($type) . ':hover {color: rgba(var(--bs-' . esc_attr($type) . '-rgb), .8) !important;}';
1462 1462
 
1463 1463
 			//  buttons
1464
-			$output .= $prefix . ' .btn-'.esc_attr($type).'{';
1464
+			$output .= $prefix . ' .btn-' . esc_attr($type) . '{';
1465 1465
 			$output .= ' 
1466
-            --bs-btn-bg: '.esc_attr($color_code).';
1467
-            --bs-btn-border-color: '.esc_attr($color_code).';
1468
-            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1469
-            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1470
-            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type).'-rgb;
1471
-            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1472
-            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1466
+            --bs-btn-bg: '.esc_attr($color_code) . ';
1467
+            --bs-btn-border-color: '.esc_attr($color_code) . ';
1468
+            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1469
+            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1470
+            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type) . '-rgb;
1471
+            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1472
+            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1473 1473
             --bs-btn-active-shadow: unset;
1474
-            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .5);
1475
-            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .1);
1474
+            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .5);
1475
+            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .1);
1476 1476
             ';
1477 1477
 //			$output .= '
1478 1478
 //		    --bs-btn-color: #fff;
@@ -1483,18 +1483,18 @@  discard block
 block discarded – undo
1483 1483
 			$output .= '}';
1484 1484
 
1485 1485
 			//  buttons outline
1486
-			$output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1486
+			$output .= $prefix . ' .btn-outline-' . esc_attr($type) . '{';
1487 1487
 			$output .= ' 
1488
-			--bs-btn-color: '.esc_attr($color_code).';
1489
-            --bs-btn-border-color: '.esc_attr($color_code).';
1490
-            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1491
-            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1492
-            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type).'-rgb;
1493
-            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1494
-            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
1488
+			--bs-btn-color: '.esc_attr($color_code) . ';
1489
+            --bs-btn-border-color: '.esc_attr($color_code) . ';
1490
+            --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1491
+            --bs-btn-hover-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1492
+            --bs-btn-focus-shadow-rgb: --bs-'.esc_attr($type) . '-rgb;
1493
+            --bs-btn-active-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1494
+            --bs-btn-active-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .9);
1495 1495
             --bs-btn-active-shadow: unset;
1496
-            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .5);
1497
-            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .1);
1496
+            --bs-btn-disabled-bg: rgba(var(--bs-'.esc_attr($type) . '-rgb), .5);
1497
+            --bs-btn-disabled-border-color: rgba(var(--bs-'.esc_attr($type) . '-rgb), .1);
1498 1498
             ';
1499 1499
 //			$output .= '
1500 1500
 //		    --bs-btn-color: #fff;
@@ -1506,32 +1506,32 @@  discard block
 block discarded – undo
1506 1506
 
1507 1507
 
1508 1508
             // button hover
1509
-			$output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1509
+			$output .= $prefix . ' .btn-' . esc_attr($type) . ':hover{';
1510 1510
 			$output .= ' 
1511
-            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);
1511
+            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);
1512 1512
             }
1513 1513
             ';
1514 1514
 
1515 1515
 
1516
-			if ( $aui_bs5 ) {
1516
+			if ($aui_bs5) {
1517 1517
 //				$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).'; }';
1518
-				$output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1519
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1518
+				$output .= 'html body {--bs-' . esc_attr($type) . ': ' . esc_attr($color_code) . '; }';
1519
+				$output .= 'html body {--bs-' . esc_attr($type) . '-rgb: ' . $rgb . '; }';
1520 1520
 			}
1521 1521
 
1522 1522
 
1523
-			if ( $is_custom ) {
1523
+			if ($is_custom) {
1524 1524
 
1525 1525
 //				echo '###'.$type;exit;
1526 1526
 
1527 1527
 				// build rules into each type
1528
-				foreach($selectors as $selector => $types){
1529
-					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1530
-					$types = array_combine($types,$types);
1531
-					if(isset($types['c'])){$color[] = $selector;}
1532
-					if(isset($types['b'])){$background[] = $selector;}
1533
-					if(isset($types['o'])){$border[] = $selector;}
1534
-					if(isset($types['f'])){$fill[] = $selector;}
1528
+				foreach ($selectors as $selector => $types) {
1529
+					$selector = $compatibility ? $compatibility . " " . $selector : $selector;
1530
+					$types = array_combine($types, $types);
1531
+					if (isset($types['c'])) {$color[] = $selector; }
1532
+					if (isset($types['b'])) {$background[] = $selector; }
1533
+					if (isset($types['o'])) {$border[] = $selector; }
1534
+					if (isset($types['f'])) {$fill[] = $selector; }
1535 1535
 				}
1536 1536
 
1537 1537
 //				// build rules into each type
@@ -1545,36 +1545,36 @@  discard block
 block discarded – undo
1545 1545
 //				}
1546 1546
 
1547 1547
 				// add any color rules
1548
-				if(!empty($color)){
1549
-					$output .= implode(",",$color) . "{color: $color_code;} ";
1548
+				if (!empty($color)) {
1549
+					$output .= implode(",", $color) . "{color: $color_code;} ";
1550 1550
 				}
1551
-				if(!empty($color_i)){
1552
-					$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1551
+				if (!empty($color_i)) {
1552
+					$output .= implode(",", $color_i) . "{color: $color_code !important;} ";
1553 1553
 				}
1554 1554
 
1555 1555
 				// add any background color rules
1556
-				if(!empty($background)){
1557
-					$output .= implode(",",$background) . "{background-color: $color_code;} ";
1556
+				if (!empty($background)) {
1557
+					$output .= implode(",", $background) . "{background-color: $color_code;} ";
1558 1558
 				}
1559
-				if(!empty($background_i)){
1560
-					$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1559
+				if (!empty($background_i)) {
1560
+					$output .= $aui_bs5 ? '' : implode(",", $background_i) . "{background-color: $color_code !important;} ";
1561 1561
 //				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1562 1562
 				}
1563 1563
 
1564 1564
 				// add any border color rules
1565
-				if(!empty($border)){
1566
-					$output .= implode(",",$border) . "{border-color: $color_code;} ";
1565
+				if (!empty($border)) {
1566
+					$output .= implode(",", $border) . "{border-color: $color_code;} ";
1567 1567
 				}
1568
-				if(!empty($border_i)){
1569
-					$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1568
+				if (!empty($border_i)) {
1569
+					$output .= implode(",", $border_i) . "{border-color: $color_code !important;} ";
1570 1570
 				}
1571 1571
 
1572 1572
 				// add any fill color rules
1573
-				if(!empty($fill)){
1574
-					$output .= implode(",",$fill) . "{fill: $color_code;} ";
1573
+				if (!empty($fill)) {
1574
+					$output .= implode(",", $fill) . "{fill: $color_code;} ";
1575 1575
 				}
1576
-				if(!empty($fill_i)){
1577
-					$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1576
+				if (!empty($fill_i)) {
1577
+					$output .= implode(",", $fill_i) . "{fill: $color_code !important;} ";
1578 1578
 				}
1579 1579
 
1580 1580
 			}
@@ -1584,26 +1584,26 @@  discard block
 block discarded – undo
1584 1584
 
1585 1585
 			$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;' : '';
1586 1586
 			// darken
1587
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1588
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1589
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1590
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1587
+			$darker_075 = $is_var ? $color_code . ';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code, "-0.075");
1588
+			$darker_10 = $is_var ? $color_code . ';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code, "-0.10");
1589
+			$darker_125 = $is_var ? $color_code . ';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code, "-0.125");
1590
+			$darker_40 = $is_var ? $color_code . ';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code, "-0.4");
1591 1591
 
1592 1592
 			// lighten
1593
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1593
+			$lighten_25 = $is_var ? $color_code . ';filter:brightness(1.25)' : self::css_hex_lighten_darken($color_code, "0.25");
1594 1594
 
1595 1595
 			// opacity see https://css-tricks.com/8-digit-hex-codes/
1596
-			$op_25 = $color_code."40"; // 25% opacity
1596
+			$op_25 = $color_code . "40"; // 25% opacity
1597 1597
 
1598 1598
 
1599 1599
 			// button states
1600
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1601
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1600
+			$output .= $is_var ? $prefix . " .btn-{$type}{{$transition }} " : '';
1601
+			$output .= $prefix . " .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: " . $darker_075 . ";    border-color: " . $darker_10 . ";} ";
1602 1602
 //			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1603
-			$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;} ";
1604
-			$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.";} ";
1605
-            $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;} ";
1606
-            $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);} ";
1603
+			$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;} ";
1604
+			$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 . ";} ";
1605
+            $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;} ";
1606
+            $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);} ";
1607 1607
 
1608 1608
 			// text
1609 1609
 //			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
@@ -1621,9 +1621,9 @@  discard block
 block discarded – undo
1621 1621
 //			}
1622 1622
 
1623 1623
 			// alerts
1624
-			if ( $aui_bs5 ) {
1624
+			if ($aui_bs5) {
1625 1625
 //				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1626
-				$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;} ";
1626
+				$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;} ";
1627 1627
 			}
1628 1628
 
1629 1629
 			return $output;
@@ -1638,12 +1638,12 @@  discard block
 block discarded – undo
1638 1638
 		 *
1639 1639
 		 * @return string
1640 1640
 		 */
1641
-		public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1641
+		public static function css_overwrite($type, $color_code, $compatibility, $hex = '') {
1642 1642
             global $aui_bs5;
1643 1643
 
1644 1644
 			$is_var = false;
1645
-			if(!$color_code){return '';}
1646
-			if(strpos($color_code, 'var') !== false){
1645
+			if (!$color_code) {return ''; }
1646
+			if (strpos($color_code, 'var') !== false) {
1647 1647
 				//if(!sanitize_hex_color($color_code)){
1648 1648
 				$color_code = esc_attr($color_code);
1649 1649
 				$is_var = true;
@@ -1653,15 +1653,15 @@  discard block
 block discarded – undo
1653 1653
 
1654 1654
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1655 1655
 
1656
-			if(!$color_code){return '';}
1656
+			if (!$color_code) {return ''; }
1657 1657
 
1658 1658
             $rgb = self::hex_to_rgb($hex);
1659 1659
 
1660
-			if($compatibility===true || $compatibility===1){
1660
+			if ($compatibility === true || $compatibility === 1) {
1661 1661
 				$compatibility = '.bsui';
1662
-			}elseif(!$compatibility){
1662
+			}elseif (!$compatibility) {
1663 1663
 				$compatibility = '';
1664
-			}else{
1664
+			} else {
1665 1665
 				$compatibility = esc_attr($compatibility);
1666 1666
 			}
1667 1667
 
@@ -1675,29 +1675,29 @@  discard block
 block discarded – undo
1675 1675
 			 * c = color, b = background color, o = border-color, f = fill
1676 1676
 			 */
1677 1677
 			$selectors = array(
1678
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1679
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1680
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1681
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1682
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1683
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1684
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1685
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1686
-				".badge-{$type}"                                            => array( 'b' ),
1687
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1688
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1689
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1678
+				".btn-{$type}"                                              => array('b', 'o'),
1679
+				".btn-{$type}.disabled"                                     => array('b', 'o'),
1680
+				".btn-{$type}:disabled"                                     => array('b', 'o'),
1681
+				".btn-outline-{$type}"                                      => array('c', 'o'),
1682
+				".btn-outline-{$type}:hover"                                => array('b', 'o'),
1683
+				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array('b', 'o'),
1684
+				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array('b', 'o'),
1685
+				".show>.btn-outline-{$type}.dropdown-toggle"                => array('b', 'o'),
1686
+				".badge-{$type}"                                            => array('b'),
1687
+				".alert-{$type}"                                            => array('b', 'o'),
1688
+				".bg-{$type}"                                               => array('b', 'f'),
1689
+				".btn-link.btn-{$type}"                                     => array('c'),
1690 1690
 			);
1691 1691
 
1692
-			if ( $aui_bs5 ) {
1693
-                unset($selectors[".alert-{$type}" ]);
1692
+			if ($aui_bs5) {
1693
+                unset($selectors[".alert-{$type}"]);
1694 1694
 			}
1695 1695
 
1696
-			if ( $type == 'primary' ) {
1696
+			if ($type == 'primary') {
1697 1697
 				$selectors = $selectors + array(
1698
-						'a'                                                                                                    => array( 'c' ),
1699
-						'.btn-link'                                                                                            => array( 'c' ),
1700
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1698
+						'a'                                                                                                    => array('c'),
1699
+						'.btn-link'                                                                                            => array('c'),
1700
+						'.dropdown-item.active'                                                                                => array('b'),
1701 1701
 						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1702 1702
 							'b',
1703 1703
 							'o'
@@ -1706,19 +1706,19 @@  discard block
 block discarded – undo
1706 1706
 							'b',
1707 1707
 							'o'
1708 1708
 						),
1709
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1710
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1711
-						'.page-link'                                                                                           => array( 'c' ),
1709
+						'.nav-pills .nav-link.active'                                                                          => array('b'),
1710
+						'.nav-pills .show>.nav-link'                                                                           => array('b'),
1711
+						'.page-link'                                                                                           => array('c'),
1712 1712
 						'.page-item.active .page-link'                                                                         => array(
1713 1713
 							'b',
1714 1714
 							'o'
1715 1715
 						),
1716
-						'.progress-bar'                                                                                        => array( 'b' ),
1716
+						'.progress-bar'                                                                                        => array('b'),
1717 1717
 						'.list-group-item.active'                                                                              => array(
1718 1718
 							'b',
1719 1719
 							'o'
1720 1720
 						),
1721
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1721
+						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1722 1722
 //				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1723 1723
 //				    '.custom-range::-moz-range-thumb' => array('b'),
1724 1724
 //				    '.custom-range::-ms-thumb' => array('b'),
@@ -1726,7 +1726,7 @@  discard block
 block discarded – undo
1726 1726
 			}
1727 1727
 
1728 1728
 			$important_selectors = array(
1729
-				".bg-{$type}" => array('b','f'),
1729
+				".bg-{$type}" => array('b', 'f'),
1730 1730
 				".border-{$type}" => array('o'),
1731 1731
 				".text-{$type}" => array('c'),
1732 1732
 			);
@@ -1742,62 +1742,62 @@  discard block
 block discarded – undo
1742 1742
 
1743 1743
 			$output = '';
1744 1744
 
1745
-			if ( $aui_bs5 ) {
1745
+			if ($aui_bs5) {
1746 1746
 //				$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).'; }';
1747
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1747
+				$output .= 'html body {--bs-' . esc_attr($type) . '-rgb: ' . $rgb . '; }';
1748 1748
 			}
1749 1749
 
1750 1750
 			// build rules into each type
1751
-			foreach($selectors as $selector => $types){
1752
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1753
-				$types = array_combine($types,$types);
1754
-				if(isset($types['c'])){$color[] = $selector;}
1755
-				if(isset($types['b'])){$background[] = $selector;}
1756
-				if(isset($types['o'])){$border[] = $selector;}
1757
-				if(isset($types['f'])){$fill[] = $selector;}
1751
+			foreach ($selectors as $selector => $types) {
1752
+				$selector = $compatibility ? $compatibility . " " . $selector : $selector;
1753
+				$types = array_combine($types, $types);
1754
+				if (isset($types['c'])) {$color[] = $selector; }
1755
+				if (isset($types['b'])) {$background[] = $selector; }
1756
+				if (isset($types['o'])) {$border[] = $selector; }
1757
+				if (isset($types['f'])) {$fill[] = $selector; }
1758 1758
 			}
1759 1759
 
1760 1760
 			// build rules into each type
1761
-			foreach($important_selectors as $selector => $types){
1762
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1763
-				$types = array_combine($types,$types);
1764
-				if(isset($types['c'])){$color_i[] = $selector;}
1765
-				if(isset($types['b'])){$background_i[] = $selector;}
1766
-				if(isset($types['o'])){$border_i[] = $selector;}
1767
-				if(isset($types['f'])){$fill_i[] = $selector;}
1761
+			foreach ($important_selectors as $selector => $types) {
1762
+				$selector = $compatibility ? $compatibility . " " . $selector : $selector;
1763
+				$types = array_combine($types, $types);
1764
+				if (isset($types['c'])) {$color_i[] = $selector; }
1765
+				if (isset($types['b'])) {$background_i[] = $selector; }
1766
+				if (isset($types['o'])) {$border_i[] = $selector; }
1767
+				if (isset($types['f'])) {$fill_i[] = $selector; }
1768 1768
 			}
1769 1769
 
1770 1770
 			// add any color rules
1771
-			if(!empty($color)){
1772
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1771
+			if (!empty($color)) {
1772
+				$output .= implode(",", $color) . "{color: $color_code;} ";
1773 1773
 			}
1774
-			if(!empty($color_i)){
1775
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1774
+			if (!empty($color_i)) {
1775
+				$output .= implode(",", $color_i) . "{color: $color_code !important;} ";
1776 1776
 			}
1777 1777
 
1778 1778
 			// add any background color rules
1779
-			if(!empty($background)){
1780
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1779
+			if (!empty($background)) {
1780
+				$output .= implode(",", $background) . "{background-color: $color_code;} ";
1781 1781
 			}
1782
-			if(!empty($background_i)){
1783
-				$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1782
+			if (!empty($background_i)) {
1783
+				$output .= $aui_bs5 ? '' : implode(",", $background_i) . "{background-color: $color_code !important;} ";
1784 1784
 //				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1785 1785
 			}
1786 1786
 
1787 1787
 			// add any border color rules
1788
-			if(!empty($border)){
1789
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1788
+			if (!empty($border)) {
1789
+				$output .= implode(",", $border) . "{border-color: $color_code;} ";
1790 1790
 			}
1791
-			if(!empty($border_i)){
1792
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1791
+			if (!empty($border_i)) {
1792
+				$output .= implode(",", $border_i) . "{border-color: $color_code !important;} ";
1793 1793
 			}
1794 1794
 
1795 1795
 			// add any fill color rules
1796
-			if(!empty($fill)){
1797
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1796
+			if (!empty($fill)) {
1797
+				$output .= implode(",", $fill) . "{fill: $color_code;} ";
1798 1798
 			}
1799
-			if(!empty($fill_i)){
1800
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1799
+			if (!empty($fill_i)) {
1800
+				$output .= implode(",", $fill_i) . "{fill: $color_code !important;} ";
1801 1801
 			}
1802 1802
 
1803 1803
 
@@ -1805,27 +1805,27 @@  discard block
 block discarded – undo
1805 1805
 
1806 1806
 			$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;' : '';
1807 1807
 			// darken
1808
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1809
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1810
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1811
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1808
+			$darker_075 = $is_var ? $color_code . ';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code, "-0.075");
1809
+			$darker_10 = $is_var ? $color_code . ';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code, "-0.10");
1810
+			$darker_125 = $is_var ? $color_code . ';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code, "-0.125");
1811
+			$darker_40 = $is_var ? $color_code . ';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code, "-0.4");
1812 1812
 
1813 1813
 			// lighten
1814
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1814
+			$lighten_25 = $is_var ? $color_code . ';filter:brightness(1.25)' : self::css_hex_lighten_darken($color_code, "0.25");
1815 1815
 
1816 1816
 			// opacity see https://css-tricks.com/8-digit-hex-codes/
1817
-			$op_25 = $color_code."40"; // 25% opacity
1817
+			$op_25 = $color_code . "40"; // 25% opacity
1818 1818
 
1819 1819
 
1820 1820
 			// button states
1821
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1822
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1821
+			$output .= $is_var ? $prefix . " .btn-{$type}{{$transition }} " : '';
1822
+			$output .= $prefix . " .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: " . $darker_075 . ";    border-color: " . $darker_10 . ";} ";
1823 1823
 //			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1824
-			$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;} ";
1825
-			$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.";} ";
1826
-			$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;} ";
1824
+			$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;} ";
1825
+			$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 . ";} ";
1826
+			$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;} ";
1827 1827
 
1828
-			if ( $type == 'primary' ) {
1828
+			if ($type == 'primary') {
1829 1829
 				// dropdown's
1830 1830
 				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1831 1831
 
@@ -1837,9 +1837,9 @@  discard block
 block discarded – undo
1837 1837
 			}
1838 1838
 
1839 1839
             // alerts
1840
-			if ( $aui_bs5 ) {
1840
+			if ($aui_bs5) {
1841 1841
 //				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1842
-				$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;} ";
1842
+				$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;} ";
1843 1843
 			}
1844 1844
 
1845 1845
 			return $output;
@@ -1855,11 +1855,11 @@  discard block
 block discarded – undo
1855 1855
 		 *
1856 1856
 		 * @return string
1857 1857
 		 */
1858
-		public static function css_primary($color_code,$compatibility, $use_variable = false){
1858
+		public static function css_primary($color_code, $compatibility, $use_variable = false) {
1859 1859
 
1860
-			if(!$use_variable){
1860
+			if (!$use_variable) {
1861 1861
 				$color_code = sanitize_hex_color($color_code);
1862
-				if(!$color_code){return '';}
1862
+				if (!$color_code) {return ''; }
1863 1863
 			}
1864 1864
 
1865 1865
 			/**
@@ -1867,36 +1867,36 @@  discard block
 block discarded – undo
1867 1867
 			 */
1868 1868
 			$selectors = array(
1869 1869
 				'a' => array('c'),
1870
-				'.btn-primary' => array('b','o'),
1871
-				'.btn-primary.disabled' => array('b','o'),
1872
-				'.btn-primary:disabled' => array('b','o'),
1873
-				'.btn-outline-primary' => array('c','o'),
1874
-				'.btn-outline-primary:hover' => array('b','o'),
1875
-				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1876
-				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1877
-				'.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1870
+				'.btn-primary' => array('b', 'o'),
1871
+				'.btn-primary.disabled' => array('b', 'o'),
1872
+				'.btn-primary:disabled' => array('b', 'o'),
1873
+				'.btn-outline-primary' => array('c', 'o'),
1874
+				'.btn-outline-primary:hover' => array('b', 'o'),
1875
+				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b', 'o'),
1876
+				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b', 'o'),
1877
+				'.show>.btn-outline-primary.dropdown-toggle' => array('b', 'o'),
1878 1878
 				'.btn-link' => array('c'),
1879 1879
 				'.dropdown-item.active' => array('b'),
1880
-				'.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1881
-				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1880
+				'.custom-control-input:checked~.custom-control-label::before' => array('b', 'o'),
1881
+				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b', 'o'),
1882 1882
 //				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1883 1883
 //				'.custom-range::-moz-range-thumb' => array('b'),
1884 1884
 //				'.custom-range::-ms-thumb' => array('b'),
1885 1885
 				'.nav-pills .nav-link.active' => array('b'),
1886 1886
 				'.nav-pills .show>.nav-link' => array('b'),
1887 1887
 				'.page-link' => array('c'),
1888
-				'.page-item.active .page-link' => array('b','o'),
1888
+				'.page-item.active .page-link' => array('b', 'o'),
1889 1889
 				'.badge-primary' => array('b'),
1890
-				'.alert-primary' => array('b','o'),
1890
+				'.alert-primary' => array('b', 'o'),
1891 1891
 				'.progress-bar' => array('b'),
1892
-				'.list-group-item.active' => array('b','o'),
1893
-				'.bg-primary' => array('b','f'),
1892
+				'.list-group-item.active' => array('b', 'o'),
1893
+				'.bg-primary' => array('b', 'f'),
1894 1894
 				'.btn-link.btn-primary' => array('c'),
1895 1895
 				'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1896 1896
 			);
1897 1897
 
1898 1898
 			$important_selectors = array(
1899
-				'.bg-primary' => array('b','f'),
1899
+				'.bg-primary' => array('b', 'f'),
1900 1900
 				'.border-primary' => array('o'),
1901 1901
 				'.text-primary' => array('c'),
1902 1902
 			);
@@ -1913,88 +1913,88 @@  discard block
 block discarded – undo
1913 1913
 			$output = '';
1914 1914
 
1915 1915
 			// build rules into each type
1916
-			foreach($selectors as $selector => $types){
1917
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1918
-				$types = array_combine($types,$types);
1919
-				if(isset($types['c'])){$color[] = $selector;}
1920
-				if(isset($types['b'])){$background[] = $selector;}
1921
-				if(isset($types['o'])){$border[] = $selector;}
1922
-				if(isset($types['f'])){$fill[] = $selector;}
1916
+			foreach ($selectors as $selector => $types) {
1917
+				$selector = $compatibility ? ".bsui " . $selector : $selector;
1918
+				$types = array_combine($types, $types);
1919
+				if (isset($types['c'])) {$color[] = $selector; }
1920
+				if (isset($types['b'])) {$background[] = $selector; }
1921
+				if (isset($types['o'])) {$border[] = $selector; }
1922
+				if (isset($types['f'])) {$fill[] = $selector; }
1923 1923
 			}
1924 1924
 
1925 1925
 			// build rules into each type
1926
-			foreach($important_selectors as $selector => $types){
1927
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1928
-				$types = array_combine($types,$types);
1929
-				if(isset($types['c'])){$color_i[] = $selector;}
1930
-				if(isset($types['b'])){$background_i[] = $selector;}
1931
-				if(isset($types['o'])){$border_i[] = $selector;}
1932
-				if(isset($types['f'])){$fill_i[] = $selector;}
1926
+			foreach ($important_selectors as $selector => $types) {
1927
+				$selector = $compatibility ? ".bsui " . $selector : $selector;
1928
+				$types = array_combine($types, $types);
1929
+				if (isset($types['c'])) {$color_i[] = $selector; }
1930
+				if (isset($types['b'])) {$background_i[] = $selector; }
1931
+				if (isset($types['o'])) {$border_i[] = $selector; }
1932
+				if (isset($types['f'])) {$fill_i[] = $selector; }
1933 1933
 			}
1934 1934
 
1935 1935
 			// add any color rules
1936
-			if(!empty($color)){
1937
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1936
+			if (!empty($color)) {
1937
+				$output .= implode(",", $color) . "{color: $color_code;} ";
1938 1938
 			}
1939
-			if(!empty($color_i)){
1940
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1939
+			if (!empty($color_i)) {
1940
+				$output .= implode(",", $color_i) . "{color: $color_code !important;} ";
1941 1941
 			}
1942 1942
 
1943 1943
 			// add any background color rules
1944
-			if(!empty($background)){
1945
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1944
+			if (!empty($background)) {
1945
+				$output .= implode(",", $background) . "{background-color: $color_code;} ";
1946 1946
 			}
1947
-			if(!empty($background_i)){
1948
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1947
+			if (!empty($background_i)) {
1948
+				$output .= implode(",", $background_i) . "{background-color: $color_code !important;} ";
1949 1949
 			}
1950 1950
 
1951 1951
 			// add any border color rules
1952
-			if(!empty($border)){
1953
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1952
+			if (!empty($border)) {
1953
+				$output .= implode(",", $border) . "{border-color: $color_code;} ";
1954 1954
 			}
1955
-			if(!empty($border_i)){
1956
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1955
+			if (!empty($border_i)) {
1956
+				$output .= implode(",", $border_i) . "{border-color: $color_code !important;} ";
1957 1957
 			}
1958 1958
 
1959 1959
 			// add any fill color rules
1960
-			if(!empty($fill)){
1961
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1960
+			if (!empty($fill)) {
1961
+				$output .= implode(",", $fill) . "{fill: $color_code;} ";
1962 1962
 			}
1963
-			if(!empty($fill_i)){
1964
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1963
+			if (!empty($fill_i)) {
1964
+				$output .= implode(",", $fill_i) . "{fill: $color_code !important;} ";
1965 1965
 			}
1966 1966
 
1967 1967
 
1968 1968
 			$prefix = $compatibility ? ".bsui " : "";
1969 1969
 
1970 1970
 			// darken
1971
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1972
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1973
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1971
+			$darker_075 = self::css_hex_lighten_darken($color_code, "-0.075");
1972
+			$darker_10 = self::css_hex_lighten_darken($color_code, "-0.10");
1973
+			$darker_125 = self::css_hex_lighten_darken($color_code, "-0.125");
1974 1974
 
1975 1975
 			// lighten
1976
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1976
+			$lighten_25 = self::css_hex_lighten_darken($color_code, "0.25");
1977 1977
 
1978 1978
 			// opacity see https://css-tricks.com/8-digit-hex-codes/
1979
-			$op_25 = $color_code."40"; // 25% opacity
1979
+			$op_25 = $color_code . "40"; // 25% opacity
1980 1980
 
1981 1981
 
1982 1982
 			// button states
1983
-			$output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1984
-			$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;} ";
1985
-			$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.";} ";
1986
-			$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;} ";
1983
+			$output .= $prefix . " .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: " . $darker_075 . ";    border-color: " . $darker_10 . ";} ";
1984
+			$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;} ";
1985
+			$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 . ";} ";
1986
+			$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;} ";
1987 1987
 
1988 1988
 
1989 1989
 			// dropdown's
1990
-			$output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1990
+			$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1991 1991
 
1992 1992
 
1993 1993
 			// input states
1994
-			$output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1994
+			$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1995 1995
 
1996 1996
 			// page link
1997
-			$output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1997
+			$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1998 1998
 
1999 1999
 			return $output;
2000 2000
 		}
@@ -2008,30 +2008,30 @@  discard block
 block discarded – undo
2008 2008
 		 *
2009 2009
 		 * @return string
2010 2010
 		 */
2011
-		public static function css_secondary($color_code,$compatibility){;
2011
+		public static function css_secondary($color_code, $compatibility) {;
2012 2012
 			$color_code = sanitize_hex_color($color_code);
2013
-			if(!$color_code){return '';}
2013
+			if (!$color_code) {return ''; }
2014 2014
 			/**
2015 2015
 			 * c = color, b = background color, o = border-color, f = fill
2016 2016
 			 */
2017 2017
 			$selectors = array(
2018
-				'.btn-secondary' => array('b','o'),
2019
-				'.btn-secondary.disabled' => array('b','o'),
2020
-				'.btn-secondary:disabled' => array('b','o'),
2021
-				'.btn-outline-secondary' => array('c','o'),
2022
-				'.btn-outline-secondary:hover' => array('b','o'),
2018
+				'.btn-secondary' => array('b', 'o'),
2019
+				'.btn-secondary.disabled' => array('b', 'o'),
2020
+				'.btn-secondary:disabled' => array('b', 'o'),
2021
+				'.btn-outline-secondary' => array('c', 'o'),
2022
+				'.btn-outline-secondary:hover' => array('b', 'o'),
2023 2023
 				'.btn-outline-secondary.disabled' => array('c'),
2024 2024
 				'.btn-outline-secondary:disabled' => array('c'),
2025
-				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2026
-				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2027
-				'.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2025
+				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b', 'o'),
2026
+				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b', 'o'),
2027
+				'.btn-outline-secondary.dropdown-toggle' => array('b', 'o'),
2028 2028
 				'.badge-secondary' => array('b'),
2029
-				'.alert-secondary' => array('b','o'),
2029
+				'.alert-secondary' => array('b', 'o'),
2030 2030
 				'.btn-link.btn-secondary' => array('c'),
2031 2031
 			);
2032 2032
 
2033 2033
 			$important_selectors = array(
2034
-				'.bg-secondary' => array('b','f'),
2034
+				'.bg-secondary' => array('b', 'f'),
2035 2035
 				'.border-secondary' => array('o'),
2036 2036
 				'.text-secondary' => array('c'),
2037 2037
 			);
@@ -2048,77 +2048,77 @@  discard block
 block discarded – undo
2048 2048
 			$output = '';
2049 2049
 
2050 2050
 			// build rules into each type
2051
-			foreach($selectors as $selector => $types){
2052
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2053
-				$types = array_combine($types,$types);
2054
-				if(isset($types['c'])){$color[] = $selector;}
2055
-				if(isset($types['b'])){$background[] = $selector;}
2056
-				if(isset($types['o'])){$border[] = $selector;}
2057
-				if(isset($types['f'])){$fill[] = $selector;}
2051
+			foreach ($selectors as $selector => $types) {
2052
+				$selector = $compatibility ? ".bsui " . $selector : $selector;
2053
+				$types = array_combine($types, $types);
2054
+				if (isset($types['c'])) {$color[] = $selector; }
2055
+				if (isset($types['b'])) {$background[] = $selector; }
2056
+				if (isset($types['o'])) {$border[] = $selector; }
2057
+				if (isset($types['f'])) {$fill[] = $selector; }
2058 2058
 			}
2059 2059
 
2060 2060
 			// build rules into each type
2061
-			foreach($important_selectors as $selector => $types){
2062
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2063
-				$types = array_combine($types,$types);
2064
-				if(isset($types['c'])){$color_i[] = $selector;}
2065
-				if(isset($types['b'])){$background_i[] = $selector;}
2066
-				if(isset($types['o'])){$border_i[] = $selector;}
2067
-				if(isset($types['f'])){$fill_i[] = $selector;}
2061
+			foreach ($important_selectors as $selector => $types) {
2062
+				$selector = $compatibility ? ".bsui " . $selector : $selector;
2063
+				$types = array_combine($types, $types);
2064
+				if (isset($types['c'])) {$color_i[] = $selector; }
2065
+				if (isset($types['b'])) {$background_i[] = $selector; }
2066
+				if (isset($types['o'])) {$border_i[] = $selector; }
2067
+				if (isset($types['f'])) {$fill_i[] = $selector; }
2068 2068
 			}
2069 2069
 
2070 2070
 			// add any color rules
2071
-			if(!empty($color)){
2072
-				$output .= implode(",",$color) . "{color: $color_code;} ";
2071
+			if (!empty($color)) {
2072
+				$output .= implode(",", $color) . "{color: $color_code;} ";
2073 2073
 			}
2074
-			if(!empty($color_i)){
2075
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2074
+			if (!empty($color_i)) {
2075
+				$output .= implode(",", $color_i) . "{color: $color_code !important;} ";
2076 2076
 			}
2077 2077
 
2078 2078
 			// add any background color rules
2079
-			if(!empty($background)){
2080
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
2079
+			if (!empty($background)) {
2080
+				$output .= implode(",", $background) . "{background-color: $color_code;} ";
2081 2081
 			}
2082
-			if(!empty($background_i)){
2083
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2082
+			if (!empty($background_i)) {
2083
+				$output .= implode(",", $background_i) . "{background-color: $color_code !important;} ";
2084 2084
 			}
2085 2085
 
2086 2086
 			// add any border color rules
2087
-			if(!empty($border)){
2088
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
2087
+			if (!empty($border)) {
2088
+				$output .= implode(",", $border) . "{border-color: $color_code;} ";
2089 2089
 			}
2090
-			if(!empty($border_i)){
2091
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2090
+			if (!empty($border_i)) {
2091
+				$output .= implode(",", $border_i) . "{border-color: $color_code !important;} ";
2092 2092
 			}
2093 2093
 
2094 2094
 			// add any fill color rules
2095
-			if(!empty($fill)){
2096
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
2095
+			if (!empty($fill)) {
2096
+				$output .= implode(",", $fill) . "{fill: $color_code;} ";
2097 2097
 			}
2098
-			if(!empty($fill_i)){
2099
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2098
+			if (!empty($fill_i)) {
2099
+				$output .= implode(",", $fill_i) . "{fill: $color_code !important;} ";
2100 2100
 			}
2101 2101
 
2102 2102
 
2103 2103
 			$prefix = $compatibility ? ".bsui " : "";
2104 2104
 
2105 2105
 			// darken
2106
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2107
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2108
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2106
+			$darker_075 = self::css_hex_lighten_darken($color_code, "-0.075");
2107
+			$darker_10 = self::css_hex_lighten_darken($color_code, "-0.10");
2108
+			$darker_125 = self::css_hex_lighten_darken($color_code, "-0.125");
2109 2109
 
2110 2110
 			// lighten
2111
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2111
+			$lighten_25 = self::css_hex_lighten_darken($color_code, "0.25");
2112 2112
 
2113 2113
 			// opacity see https://css-tricks.com/8-digit-hex-codes/
2114
-			$op_25 = $color_code."40"; // 25% opacity
2114
+			$op_25 = $color_code . "40"; // 25% opacity
2115 2115
 
2116 2116
 
2117 2117
 			// button states
2118
-			$output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2119
-			$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;} ";
2120
-			$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.";} ";
2121
-			$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;} ";
2118
+			$output .= $prefix . " .btn-secondary:hover{background-color: " . $darker_075 . ";    border-color: " . $darker_10 . ";} ";
2119
+			$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;} ";
2120
+			$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 . ";} ";
2121
+			$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;} ";
2122 2122
 
2123 2123
 
2124 2124
 			return $output;
@@ -2135,7 +2135,7 @@  discard block
 block discarded – undo
2135 2135
 		public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2136 2136
 			$hexCode = ltrim($hexCode, '#');
2137 2137
 
2138
-			if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2138
+			if (strpos($hexCode, 'rgba(') !== false || strpos($hexCode, 'rgb(') !== false) {
2139 2139
 				return $hexCode;
2140 2140
 			}
2141 2141
 
@@ -2158,8 +2158,8 @@  discard block
 block discarded – undo
2158 2158
 		/**
2159 2159
 		 * Check if we should display examples.
2160 2160
 		 */
2161
-		public function maybe_show_examples(){
2162
-			if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2161
+		public function maybe_show_examples() {
2162
+			if (current_user_can('manage_options') && isset($_REQUEST['preview-aui'])) {
2163 2163
 				echo "<head>";
2164 2164
 				wp_head();
2165 2165
 				echo "</head>";
@@ -2175,7 +2175,7 @@  discard block
 block discarded – undo
2175 2175
 		 *
2176 2176
 		 * @return string
2177 2177
 		 */
2178
-		public function get_examples(){
2178
+		public function get_examples() {
2179 2179
 			$output = '';
2180 2180
 
2181 2181
 
@@ -2281,74 +2281,74 @@  discard block
 block discarded – undo
2281 2281
 		 */
2282 2282
 		public static function calendar_params() {
2283 2283
 			$params = array(
2284
-				'month_long_1' => __( 'January', 'ayecode-connect' ),
2285
-				'month_long_2' => __( 'February', 'ayecode-connect' ),
2286
-				'month_long_3' => __( 'March', 'ayecode-connect' ),
2287
-				'month_long_4' => __( 'April', 'ayecode-connect' ),
2288
-				'month_long_5' => __( 'May', 'ayecode-connect' ),
2289
-				'month_long_6' => __( 'June', 'ayecode-connect' ),
2290
-				'month_long_7' => __( 'July', 'ayecode-connect' ),
2291
-				'month_long_8' => __( 'August', 'ayecode-connect' ),
2292
-				'month_long_9' => __( 'September', 'ayecode-connect' ),
2293
-				'month_long_10' => __( 'October', 'ayecode-connect' ),
2294
-				'month_long_11' => __( 'November', 'ayecode-connect' ),
2295
-				'month_long_12' => __( 'December', 'ayecode-connect' ),
2296
-				'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2297
-				'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2298
-				'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2299
-				'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2300
-				'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2301
-				'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2302
-				'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2303
-				'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2304
-				'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2305
-				'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2306
-				'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2307
-				'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2308
-				'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2309
-				'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2310
-				'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2311
-				'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2312
-				'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2313
-				'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2314
-				'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2315
-				'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2316
-				'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2317
-				'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2318
-				'day_s2_4' => __( 'We', 'ayecode-connect' ),
2319
-				'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2320
-				'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2321
-				'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2322
-				'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2323
-				'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2324
-				'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2325
-				'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2326
-				'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2327
-				'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2328
-				'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2329
-				'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2330
-				'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2331
-				'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2332
-				'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2333
-				'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2334
-				'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2335
-				'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2336
-				'am_lower' => __( 'am', 'ayecode-connect' ),
2337
-				'pm_lower' => __( 'pm', 'ayecode-connect' ),
2338
-				'am_upper' => __( 'AM', 'ayecode-connect' ),
2339
-				'pm_upper' => __( 'PM', 'ayecode-connect' ),
2340
-				'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2284
+				'month_long_1' => __('January', 'ayecode-connect'),
2285
+				'month_long_2' => __('February', 'ayecode-connect'),
2286
+				'month_long_3' => __('March', 'ayecode-connect'),
2287
+				'month_long_4' => __('April', 'ayecode-connect'),
2288
+				'month_long_5' => __('May', 'ayecode-connect'),
2289
+				'month_long_6' => __('June', 'ayecode-connect'),
2290
+				'month_long_7' => __('July', 'ayecode-connect'),
2291
+				'month_long_8' => __('August', 'ayecode-connect'),
2292
+				'month_long_9' => __('September', 'ayecode-connect'),
2293
+				'month_long_10' => __('October', 'ayecode-connect'),
2294
+				'month_long_11' => __('November', 'ayecode-connect'),
2295
+				'month_long_12' => __('December', 'ayecode-connect'),
2296
+				'month_s_1' => _x('Jan', 'January abbreviation', 'ayecode-connect'),
2297
+				'month_s_2' => _x('Feb', 'February abbreviation', 'ayecode-connect'),
2298
+				'month_s_3' => _x('Mar', 'March abbreviation', 'ayecode-connect'),
2299
+				'month_s_4' => _x('Apr', 'April abbreviation', 'ayecode-connect'),
2300
+				'month_s_5' => _x('May', 'May abbreviation', 'ayecode-connect'),
2301
+				'month_s_6' => _x('Jun', 'June abbreviation', 'ayecode-connect'),
2302
+				'month_s_7' => _x('Jul', 'July abbreviation', 'ayecode-connect'),
2303
+				'month_s_8' => _x('Aug', 'August abbreviation', 'ayecode-connect'),
2304
+				'month_s_9' => _x('Sep', 'September abbreviation', 'ayecode-connect'),
2305
+				'month_s_10' => _x('Oct', 'October abbreviation', 'ayecode-connect'),
2306
+				'month_s_11' => _x('Nov', 'November abbreviation', 'ayecode-connect'),
2307
+				'month_s_12' => _x('Dec', 'December abbreviation', 'ayecode-connect'),
2308
+				'day_s1_1' => _x('S', 'Sunday initial', 'ayecode-connect'),
2309
+				'day_s1_2' => _x('M', 'Monday initial', 'ayecode-connect'),
2310
+				'day_s1_3' => _x('T', 'Tuesday initial', 'ayecode-connect'),
2311
+				'day_s1_4' => _x('W', 'Wednesday initial', 'ayecode-connect'),
2312
+				'day_s1_5' => _x('T', 'Friday initial', 'ayecode-connect'),
2313
+				'day_s1_6' => _x('F', 'Thursday initial', 'ayecode-connect'),
2314
+				'day_s1_7' => _x('S', 'Saturday initial', 'ayecode-connect'),
2315
+				'day_s2_1' => __('Su', 'ayecode-connect'),
2316
+				'day_s2_2' => __('Mo', 'ayecode-connect'),
2317
+				'day_s2_3' => __('Tu', 'ayecode-connect'),
2318
+				'day_s2_4' => __('We', 'ayecode-connect'),
2319
+				'day_s2_5' => __('Th', 'ayecode-connect'),
2320
+				'day_s2_6' => __('Fr', 'ayecode-connect'),
2321
+				'day_s2_7' => __('Sa', 'ayecode-connect'),
2322
+				'day_s3_1' => __('Sun', 'ayecode-connect'),
2323
+				'day_s3_2' => __('Mon', 'ayecode-connect'),
2324
+				'day_s3_3' => __('Tue', 'ayecode-connect'),
2325
+				'day_s3_4' => __('Wed', 'ayecode-connect'),
2326
+				'day_s3_5' => __('Thu', 'ayecode-connect'),
2327
+				'day_s3_6' => __('Fri', 'ayecode-connect'),
2328
+				'day_s3_7' => __('Sat', 'ayecode-connect'),
2329
+				'day_s5_1' => __('Sunday', 'ayecode-connect'),
2330
+				'day_s5_2' => __('Monday', 'ayecode-connect'),
2331
+				'day_s5_3' => __('Tuesday', 'ayecode-connect'),
2332
+				'day_s5_4' => __('Wednesday', 'ayecode-connect'),
2333
+				'day_s5_5' => __('Thursday', 'ayecode-connect'),
2334
+				'day_s5_6' => __('Friday', 'ayecode-connect'),
2335
+				'day_s5_7' => __('Saturday', 'ayecode-connect'),
2336
+				'am_lower' => __('am', 'ayecode-connect'),
2337
+				'pm_lower' => __('pm', 'ayecode-connect'),
2338
+				'am_upper' => __('AM', 'ayecode-connect'),
2339
+				'pm_upper' => __('PM', 'ayecode-connect'),
2340
+				'firstDayOfWeek' => (int) get_option('start_of_week'),
2341 2341
 				'time_24hr' => false,
2342
-				'year' => __( 'Year', 'ayecode-connect' ),
2343
-				'hour' => __( 'Hour', 'ayecode-connect' ),
2344
-				'minute' => __( 'Minute', 'ayecode-connect' ),
2345
-				'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2346
-				'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2347
-				'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2348
-				'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2342
+				'year' => __('Year', 'ayecode-connect'),
2343
+				'hour' => __('Hour', 'ayecode-connect'),
2344
+				'minute' => __('Minute', 'ayecode-connect'),
2345
+				'weekAbbreviation' => __('Wk', 'ayecode-connect'),
2346
+				'rangeSeparator' => __(' to ', 'ayecode-connect'),
2347
+				'scrollTitle' => __('Scroll to increment', 'ayecode-connect'),
2348
+				'toggleTitle' => __('Click to toggle', 'ayecode-connect')
2349 2349
 			);
2350 2350
 
2351
-			return apply_filters( 'ayecode_ui_calendar_params', $params );
2351
+			return apply_filters('ayecode_ui_calendar_params', $params);
2352 2352
 		}
2353 2353
 
2354 2354
 		/**
@@ -2361,47 +2361,47 @@  discard block
 block discarded – undo
2361 2361
 		public static function flatpickr_locale() {
2362 2362
 			$params = self::calendar_params();
2363 2363
 
2364
-			if ( is_string( $params ) ) {
2365
-				$params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2364
+			if (is_string($params)) {
2365
+				$params = html_entity_decode($params, ENT_QUOTES, 'UTF-8');
2366 2366
 			} else {
2367
-				foreach ( (array) $params as $key => $value ) {
2368
-					if ( ! is_scalar( $value ) ) {
2367
+				foreach ((array) $params as $key => $value) {
2368
+					if (!is_scalar($value)) {
2369 2369
 						continue;
2370 2370
 					}
2371 2371
 
2372
-					$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2372
+					$params[$key] = html_entity_decode((string) $value, ENT_QUOTES, 'UTF-8');
2373 2373
 				}
2374 2374
 			}
2375 2375
 
2376 2376
 			$day_s3 = array();
2377 2377
 			$day_s5 = array();
2378 2378
 
2379
-			for ( $i = 1; $i <= 7; $i ++ ) {
2380
-				$day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2381
-				$day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2379
+			for ($i = 1; $i <= 7; $i++) {
2380
+				$day_s3[] = addslashes($params['day_s3_' . $i]); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2381
+				$day_s5[] = addslashes($params['day_s3_' . $i]); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2382 2382
 			}
2383 2383
 
2384 2384
 			$month_s = array();
2385 2385
 			$month_long = array();
2386 2386
 
2387
-			for ( $i = 1; $i <= 12; $i ++ ) {
2388
-				$month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2389
-				$month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2387
+			for ($i = 1; $i <= 12; $i++) {
2388
+				$month_s[] = addslashes($params['month_s_' . $i]); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2389
+				$month_long[] = addslashes($params['month_long_' . $i]); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2390 2390
 			}
2391 2391
 
2392 2392
 			ob_start();
2393
-		if ( 0 ) { ?><script><?php } ?>
2393
+		if (0) { ?><script><?php } ?>
2394 2394
                 {
2395 2395
                     weekdays: {
2396
-                        shorthand: ['<?php echo implode( "','", $day_s3 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2397
-                            longhand: ['<?php echo implode( "','", $day_s5 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2396
+                        shorthand: ['<?php echo implode("','", $day_s3); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2397
+                            longhand: ['<?php echo implode("','", $day_s5); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2398 2398
                     },
2399 2399
                     months: {
2400
-                        shorthand: ['<?php echo implode( "','", $month_s ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2401
-                            longhand: ['<?php echo implode( "','", $month_long ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2400
+                        shorthand: ['<?php echo implode("','", $month_s); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2401
+                            longhand: ['<?php echo implode("','", $month_long); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
2402 2402
                     },
2403 2403
                     daysInMonth: [31,28,31,30,31,30,31,31,30,31,30,31],
2404
-                        firstDayOfWeek: <?php echo (int) $params[ 'firstDayOfWeek' ]; ?>,
2404
+                        firstDayOfWeek: <?php echo (int) $params['firstDayOfWeek']; ?>,
2405 2405
                     ordinal: function (nth) {
2406 2406
                         var s = nth % 100;
2407 2407
                         if (s > 3 && s < 21)
@@ -2417,21 +2417,21 @@  discard block
 block discarded – undo
2417 2417
                                 return "th";
2418 2418
                         }
2419 2419
                     },
2420
-                    rangeSeparator: '<?php echo esc_attr( $params[ 'rangeSeparator' ] ); ?>',
2421
-                        weekAbbreviation: '<?php echo esc_attr( $params[ 'weekAbbreviation' ] ); ?>',
2422
-                    scrollTitle: '<?php echo esc_attr( $params[ 'scrollTitle' ] ); ?>',
2423
-                    toggleTitle: '<?php echo esc_attr( $params[ 'toggleTitle' ] ); ?>',
2424
-                    amPM: ['<?php echo esc_attr( $params[ 'am_upper' ] ); ?>','<?php echo esc_attr( $params[ 'pm_upper' ] ); ?>'],
2425
-                    yearAriaLabel: '<?php echo esc_attr( $params[ 'year' ] ); ?>',
2426
-                    hourAriaLabel: '<?php echo esc_attr( $params[ 'hour' ] ); ?>',
2427
-                    minuteAriaLabel: '<?php echo esc_attr( $params[ 'minute' ] ); ?>',
2428
-                    time_24hr: <?php echo ( $params[ 'time_24hr' ] ? 'true' : 'false' ) ; ?>
2420
+                    rangeSeparator: '<?php echo esc_attr($params['rangeSeparator']); ?>',
2421
+                        weekAbbreviation: '<?php echo esc_attr($params['weekAbbreviation']); ?>',
2422
+                    scrollTitle: '<?php echo esc_attr($params['scrollTitle']); ?>',
2423
+                    toggleTitle: '<?php echo esc_attr($params['toggleTitle']); ?>',
2424
+                    amPM: ['<?php echo esc_attr($params['am_upper']); ?>','<?php echo esc_attr($params['pm_upper']); ?>'],
2425
+                    yearAriaLabel: '<?php echo esc_attr($params['year']); ?>',
2426
+                    hourAriaLabel: '<?php echo esc_attr($params['hour']); ?>',
2427
+                    minuteAriaLabel: '<?php echo esc_attr($params['minute']); ?>',
2428
+                    time_24hr: <?php echo ($params['time_24hr'] ? 'true' : 'false'); ?>
2429 2429
                 }
2430
-				<?php if ( 0 ) { ?></script><?php } ?>
2430
+				<?php if (0) { ?></script><?php } ?>
2431 2431
 			<?php
2432 2432
 			$locale = ob_get_clean();
2433 2433
 
2434
-			return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2434
+			return apply_filters('ayecode_ui_flatpickr_locale', trim($locale));
2435 2435
 		}
2436 2436
 
2437 2437
 		/**
@@ -2443,20 +2443,20 @@  discard block
 block discarded – undo
2443 2443
 		 */
2444 2444
 		public static function select2_params() {
2445 2445
 			$params = array(
2446
-				'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2447
-				'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2448
-				'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2449
-				'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2450
-				'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2451
-				'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2452
-				'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2453
-				'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2454
-				'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2455
-				'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2456
-				'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2446
+				'i18n_select_state_text'    => esc_attr__('Select an option&hellip;', 'ayecode-connect'),
2447
+				'i18n_no_matches'           => _x('No matches found', 'enhanced select', 'ayecode-connect'),
2448
+				'i18n_ajax_error'           => _x('Loading failed', 'enhanced select', 'ayecode-connect'),
2449
+				'i18n_input_too_short_1'    => _x('Please enter 1 or more characters', 'enhanced select', 'ayecode-connect'),
2450
+				'i18n_input_too_short_n'    => _x('Please enter %item% or more characters', 'enhanced select', 'ayecode-connect'),
2451
+				'i18n_input_too_long_1'     => _x('Please delete 1 character', 'enhanced select', 'ayecode-connect'),
2452
+				'i18n_input_too_long_n'     => _x('Please delete %item% characters', 'enhanced select', 'ayecode-connect'),
2453
+				'i18n_selection_too_long_1' => _x('You can only select 1 item', 'enhanced select', 'ayecode-connect'),
2454
+				'i18n_selection_too_long_n' => _x('You can only select %item% items', 'enhanced select', 'ayecode-connect'),
2455
+				'i18n_load_more'            => _x('Loading more results&hellip;', 'enhanced select', 'ayecode-connect'),
2456
+				'i18n_searching'            => _x('Searching&hellip;', 'enhanced select', 'ayecode-connect')
2457 2457
 			);
2458 2458
 
2459
-			return apply_filters( 'ayecode_ui_select2_params', $params );
2459
+			return apply_filters('ayecode_ui_select2_params', $params);
2460 2460
 		}
2461 2461
 
2462 2462
 		/**
@@ -2469,17 +2469,17 @@  discard block
 block discarded – undo
2469 2469
 		public static function select2_locale() {
2470 2470
 			$params = self::select2_params();
2471 2471
 
2472
-			foreach ( (array) $params as $key => $value ) {
2473
-				if ( ! is_scalar( $value ) ) {
2472
+			foreach ((array) $params as $key => $value) {
2473
+				if (!is_scalar($value)) {
2474 2474
 					continue;
2475 2475
 				}
2476 2476
 
2477
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2477
+				$params[$key] = html_entity_decode((string) $value, ENT_QUOTES, 'UTF-8');
2478 2478
 			}
2479 2479
 
2480
-			$locale = json_encode( $params );
2480
+			$locale = json_encode($params);
2481 2481
 
2482
-			return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2482
+			return apply_filters('ayecode_ui_select2_locale', trim($locale));
2483 2483
 		}
2484 2484
 
2485 2485
 		/**
@@ -2492,35 +2492,35 @@  discard block
 block discarded – undo
2492 2492
 		public static function timeago_locale() {
2493 2493
 			$params = array(
2494 2494
 				'prefix_ago' => '',
2495
-				'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2496
-				'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2495
+				'suffix_ago' => ' ' . _x('ago', 'time ago', 'ayecode-connect'),
2496
+				'prefix_after' => _x('after', 'time ago', 'ayecode-connect') . ' ',
2497 2497
 				'suffix_after' => '',
2498
-				'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2499
-				'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2500
-				'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2501
-				'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2502
-				'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2503
-				'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2504
-				'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2505
-				'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2506
-				'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2507
-				'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2508
-				'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2498
+				'seconds' => _x('less than a minute', 'time ago', 'ayecode-connect'),
2499
+				'minute' => _x('about a minute', 'time ago', 'ayecode-connect'),
2500
+				'minutes' => _x('%d minutes', 'time ago', 'ayecode-connect'),
2501
+				'hour' => _x('about an hour', 'time ago', 'ayecode-connect'),
2502
+				'hours' => _x('about %d hours', 'time ago', 'ayecode-connect'),
2503
+				'day' => _x('a day', 'time ago', 'ayecode-connect'),
2504
+				'days' => _x('%d days', 'time ago', 'ayecode-connect'),
2505
+				'month' => _x('about a month', 'time ago', 'ayecode-connect'),
2506
+				'months' => _x('%d months', 'time ago', 'ayecode-connect'),
2507
+				'year' => _x('about a year', 'time ago', 'ayecode-connect'),
2508
+				'years' => _x('%d years', 'time ago', 'ayecode-connect'),
2509 2509
 			);
2510 2510
 
2511
-			$params = apply_filters( 'ayecode_ui_timeago_params', $params );
2511
+			$params = apply_filters('ayecode_ui_timeago_params', $params);
2512 2512
 
2513
-			foreach ( (array) $params as $key => $value ) {
2514
-				if ( ! is_scalar( $value ) ) {
2513
+			foreach ((array) $params as $key => $value) {
2514
+				if (!is_scalar($value)) {
2515 2515
 					continue;
2516 2516
 				}
2517 2517
 
2518
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2518
+				$params[$key] = html_entity_decode((string) $value, ENT_QUOTES, 'UTF-8');
2519 2519
 			}
2520 2520
 
2521
-			$locale = json_encode( $params );
2521
+			$locale = json_encode($params);
2522 2522
 
2523
-			return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2523
+			return apply_filters('ayecode_ui_timeago_locale', trim($locale));
2524 2524
 		}
2525 2525
 
2526 2526
 		/**
@@ -2531,7 +2531,7 @@  discard block
 block discarded – undo
2531 2531
 		 * @return mixed
2532 2532
 		 */
2533 2533
 		public static function minify_js($input) {
2534
-			if(trim($input) === "") return $input;
2534
+			if (trim($input) === "") return $input;
2535 2535
 			return preg_replace(
2536 2536
 				array(
2537 2537
 					// Remove comment(s)
@@ -2563,7 +2563,7 @@  discard block
 block discarded – undo
2563 2563
 		 * @return mixed
2564 2564
 		 */
2565 2565
 		public static function minify_css($input) {
2566
-			if(trim($input) === "") return $input;
2566
+			if (trim($input) === "") return $input;
2567 2567
 			return preg_replace(
2568 2568
 				array(
2569 2569
 					// Remove comment(s)
@@ -3143,12 +3143,12 @@  discard block
 block discarded – undo
3143 3143
                         });
3144 3144
                     }
3145 3145
                 }
3146
-				<?php do_action( 'aui_conditional_fields_js', $this ); ?>
3146
+				<?php do_action('aui_conditional_fields_js', $this); ?>
3147 3147
             </script>
3148 3148
 			<?php
3149 3149
 			$output = ob_get_clean();
3150 3150
 
3151
-			return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3151
+			return str_replace(array('<script>', '</script>'), '', self::minify_js($output));
3152 3152
 		}
3153 3153
 
3154 3154
 		/**
@@ -3159,10 +3159,10 @@  discard block
 block discarded – undo
3159 3159
 		 * @return bool
3160 3160
 		 */
3161 3161
 		public static function is_block_editor() {
3162
-			if ( is_admin() ) {
3163
-				$current_screen = function_exists('get_current_screen' ) ? get_current_screen() : array();
3162
+			if (is_admin()) {
3163
+				$current_screen = function_exists('get_current_screen') ? get_current_screen() : array();
3164 3164
 
3165
-				if ( ! empty( $current_screen ) && $current_screen->is_block_editor() ) {
3165
+				if (!empty($current_screen) && $current_screen->is_block_editor()) {
3166 3166
 					return true;
3167 3167
 				}
3168 3168
 			}
@@ -3181,7 +3181,7 @@  discard block
 block discarded – undo
3181 3181
 		 */
3182 3182
 		public static function is_block_content_call() {
3183 3183
 			$result = false;
3184
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
3184
+			if (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'super_duper_output_shortcode') {
3185 3185
 				$result = true;
3186 3186
 			}
3187 3187
 
@@ -3197,7 +3197,7 @@  discard block
 block discarded – undo
3197 3197
 		 */
3198 3198
 		public static function is_divi_preview() {
3199 3199
 			$result = false;
3200
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
3200
+			if (isset($_REQUEST['et_fb']) || isset($_REQUEST['et_pb_preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor')) {
3201 3201
 				$result = true;
3202 3202
 			}
3203 3203
 
@@ -3214,7 +3214,7 @@  discard block
 block discarded – undo
3214 3214
 		 */
3215 3215
 		public static function is_elementor_preview() {
3216 3216
 			$result = false;
3217
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
3217
+			if (isset($_REQUEST['elementor-preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor_ajax')) {
3218 3218
 				$result = true;
3219 3219
 			}
3220 3220
 
@@ -3230,7 +3230,7 @@  discard block
 block discarded – undo
3230 3230
 		 */
3231 3231
 		public static function is_beaver_preview() {
3232 3232
 			$result = false;
3233
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
3233
+			if (isset($_REQUEST['fl_builder'])) {
3234 3234
 				$result = true;
3235 3235
 			}
3236 3236
 
@@ -3246,7 +3246,7 @@  discard block
 block discarded – undo
3246 3246
 		 */
3247 3247
 		public static function is_siteorigin_preview() {
3248 3248
 			$result = false;
3249
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
3249
+			if (!empty($_REQUEST['siteorigin_panels_live_editor'])) {
3250 3250
 				$result = true;
3251 3251
 			}
3252 3252
 
@@ -3262,7 +3262,7 @@  discard block
 block discarded – undo
3262 3262
 		 */
3263 3263
 		public static function is_cornerstone_preview() {
3264 3264
 			$result = false;
3265
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
3265
+			if (!empty($_REQUEST['cornerstone_preview']) || basename($_SERVER['REQUEST_URI']) == 'cornerstone-endpoint') {
3266 3266
 				$result = true;
3267 3267
 			}
3268 3268
 
@@ -3277,7 +3277,7 @@  discard block
 block discarded – undo
3277 3277
 		 */
3278 3278
 		public static function is_fusion_preview() {
3279 3279
 			$result = false;
3280
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
3280
+			if (!empty($_REQUEST['fb-edit']) || !empty($_REQUEST['fusion_load_nonce'])) {
3281 3281
 				$result = true;
3282 3282
 			}
3283 3283
 
@@ -3292,7 +3292,7 @@  discard block
 block discarded – undo
3292 3292
 		 */
3293 3293
 		public static function is_oxygen_preview() {
3294 3294
 			$result = false;
3295
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
3295
+			if (!empty($_REQUEST['ct_builder']) || (!empty($_REQUEST['action']) && (substr($_REQUEST['action'], 0, 11) === "oxy_render_" || substr($_REQUEST['action'], 0, 10) === "ct_render_"))) {
3296 3296
 				$result = true;
3297 3297
 			}
3298 3298
 
@@ -3309,7 +3309,7 @@  discard block
 block discarded – undo
3309 3309
 		public static function is_kallyas_zion_preview() {
3310 3310
 			$result = false;
3311 3311
 
3312
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
3312
+			if (function_exists('znhg_kallyas_theme_config') && !empty($_REQUEST['zn_pb_edit'])) {
3313 3313
 				$result = true;
3314 3314
 			}
3315 3315
 
@@ -3326,7 +3326,7 @@  discard block
 block discarded – undo
3326 3326
 		public static function is_bricks_preview() {
3327 3327
 			$result = false;
3328 3328
 
3329
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
3329
+			if (function_exists('bricks_is_builder') && (bricks_is_builder() || bricks_is_builder_call())) {
3330 3330
 				$result = true;
3331 3331
 			}
3332 3332
 
@@ -3343,29 +3343,29 @@  discard block
 block discarded – undo
3343 3343
 		public static function is_preview() {
3344 3344
 			$preview = false;
3345 3345
 
3346
-			if ( self::is_block_editor() ) {
3346
+			if (self::is_block_editor()) {
3347 3347
 				return true;
3348 3348
 			}
3349 3349
 
3350
-			if( self::is_block_content_call() ) {
3350
+			if (self::is_block_content_call()) {
3351 3351
 				$preview = true;
3352
-			} elseif ( self::is_divi_preview() ) {
3352
+			} elseif (self::is_divi_preview()) {
3353 3353
 				$preview = true;
3354
-			} elseif ( self::is_elementor_preview() ) {
3354
+			} elseif (self::is_elementor_preview()) {
3355 3355
 				$preview = true;
3356
-			} elseif ( self::is_beaver_preview() ) {
3356
+			} elseif (self::is_beaver_preview()) {
3357 3357
 				$preview = true;
3358
-			} elseif ( self::is_siteorigin_preview() ) {
3358
+			} elseif (self::is_siteorigin_preview()) {
3359 3359
 				$preview = true;
3360
-			} elseif ( self::is_cornerstone_preview() ) {
3360
+			} elseif (self::is_cornerstone_preview()) {
3361 3361
 				$preview = true;
3362
-			} elseif ( self::is_fusion_preview() ) {
3362
+			} elseif (self::is_fusion_preview()) {
3363 3363
 				$preview = true;
3364
-			} elseif ( self::is_oxygen_preview() ) {
3364
+			} elseif (self::is_oxygen_preview()) {
3365 3365
 				$preview = true;
3366
-			} elseif( self::is_kallyas_zion_preview() ) {
3366
+			} elseif (self::is_kallyas_zion_preview()) {
3367 3367
 				$preview = true;
3368
-			} elseif( self::is_bricks_preview() ) {
3368
+			} elseif (self::is_bricks_preview()) {
3369 3369
 				$preview = true;
3370 3370
 			}
3371 3371
 
Please login to merge, or discard this patch.
Braces   +13 added lines, -9 removed lines patch added patch discarded remove patch
@@ -538,7 +538,7 @@  discard block
 block discarded – undo
538 538
 					// custom changes
539 539
 					if ( $load_fse ) {
540 540
 						wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility, true) );
541
-					}else{
541
+					} else{
542 542
 						wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
543 543
 					}
544 544
 				}
@@ -558,7 +558,7 @@  discard block
 block discarded – undo
558 558
 			ob_start();
559 559
 			if ( $aui_bs5 ) {
560 560
 				include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' );
561
-			}else{
561
+			} else{
562 562
 				include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' );
563 563
             }
564 564
 
@@ -642,7 +642,7 @@  discard block
 block discarded – undo
642 642
 				// iconpicker
643 643
 				if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) {
644 644
 					wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version );
645
-				}else{
645
+				} else{
646 646
 					wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version );
647 647
 				}
648 648
 
@@ -1371,9 +1371,9 @@  discard block
 block discarded – undo
1371 1371
 
1372 1372
 			if($compatibility===true || $compatibility===1){
1373 1373
 				$compatibility = '.bsui';
1374
-			}elseif(!$compatibility){
1374
+			} elseif(!$compatibility){
1375 1375
 				$compatibility = '';
1376
-			}else{
1376
+			} else{
1377 1377
 				$compatibility = esc_attr($compatibility);
1378 1378
 			}
1379 1379
 
@@ -1659,9 +1659,9 @@  discard block
 block discarded – undo
1659 1659
 
1660 1660
 			if($compatibility===true || $compatibility===1){
1661 1661
 				$compatibility = '.bsui';
1662
-			}elseif(!$compatibility){
1662
+			} elseif(!$compatibility){
1663 1663
 				$compatibility = '';
1664
-			}else{
1664
+			} else{
1665 1665
 				$compatibility = esc_attr($compatibility);
1666 1666
 			}
1667 1667
 
@@ -2531,7 +2531,9 @@  discard block
 block discarded – undo
2531 2531
 		 * @return mixed
2532 2532
 		 */
2533 2533
 		public static function minify_js($input) {
2534
-			if(trim($input) === "") return $input;
2534
+			if(trim($input) === "") {
2535
+			    return $input;
2536
+			}
2535 2537
 			return preg_replace(
2536 2538
 				array(
2537 2539
 					// Remove comment(s)
@@ -2563,7 +2565,9 @@  discard block
 block discarded – undo
2563 2565
 		 * @return mixed
2564 2566
 		 */
2565 2567
 		public static function minify_css($input) {
2566
-			if(trim($input) === "") return $input;
2568
+			if(trim($input) === "") {
2569
+			    return $input;
2570
+			}
2567 2571
 			return preg_replace(
2568 2572
 				array(
2569 2573
 					// Remove comment(s)
Please login to merge, or discard this patch.
ayecode/wp-ayecode-ui/includes/components/class-aui-component-input.php 2 patches
Indentation   +1282 added lines, -1282 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
4
+    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -11,1305 +11,1305 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class AUI_Component_Input {
13 13
 
14
-	/**
15
-	 * Build the component.
16
-	 *
17
-	 * @param array $args
18
-	 *
19
-	 * @return string The rendered component.
20
-	 */
21
-	public static function input( $args = array() ) {
22
-		global $aui_bs5;
23
-
24
-		$defaults = array(
25
-			'type'                     => 'text',
26
-			'name'                     => '',
27
-			'class'                    => '',
28
-			'wrap_class'               => '',
29
-			'id'                       => '',
30
-			'placeholder'              => '',
31
-			'title'                    => '',
32
-			'value'                    => '',
33
-			'required'                 => false,
34
-			'size'                     => '', // sm, lg, small, large
35
-			'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
-			'with_hidden'              => false, // Append hidden field for single checkbox.
37
-			'label'                    => '',
38
-			'label_after'              => false,
39
-			'label_class'              => '',
40
-			'label_col'                => '2',
41
-			'label_type'               => '', // top, horizontal, empty = hidden
42
-			'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
-			'help_text'                => '',
45
-			'validation_text'          => '',
46
-			'validation_pattern'       => '',
47
-			'no_wrap'                  => false,
48
-			'input_group_right'        => '',
49
-			'input_group_left'         => '',
50
-			'input_group_right_inside' => false,
51
-			// forces the input group inside the input
52
-			'input_group_left_inside'  => false,
53
-			// forces the input group inside the input
54
-			'form_group_class'         => '',
55
-			'step'                     => '',
56
-			'switch'                   => false,
57
-			// to show checkbox as a switch
58
-			'checked'                  => false,
59
-			// set a checkbox or radio as selected
60
-			'password_toggle'          => true,
61
-			// toggle view/hide password
62
-			'element_require'          => '',
63
-			// [%element_id%] == "1"
64
-			'extra_attributes'         => array(),
65
-			// an array of extra attributes
66
-			'wrap_attributes'          => array()
67
-		);
68
-
69
-		/**
70
-		 * Parse incoming $args into an array and merge it with $defaults
71
-		 */
72
-		$args   = wp_parse_args( $args, $defaults );
73
-		$output = '';
74
-		if ( ! empty( $args['type'] ) ) {
75
-			// hidden label option needs to be empty
76
-			$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
-
78
-			$type = sanitize_html_class( $args['type'] );
79
-
80
-			$help_text   = '';
81
-			$label       = '';
82
-			$label_after = $args['label_after'];
83
-			$label_args  = array(
84
-				'title'      => $args['label'],
85
-				'for'        => $args['id'],
86
-				'class'      => $args['label_class'] . " ",
87
-				'label_type' => $args['label_type'],
88
-				'label_col'  => $args['label_col']
89
-			);
90
-
91
-			// floating labels need label after
92
-			if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
-				$label_after         = true;
94
-				$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
-			}
96
-
97
-			// size
98
-			$size = '';
99
-			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
-				$size = 'lg';
101
-				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
-				$size = 'sm';
104
-				$args['class'] .= ' form-control-sm';
105
-			}
106
-
107
-			// clear function
108
-			$clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
-
110
-			// Some special sauce for files
111
-			if ( $type == 'file' ) {
112
-				$label_after = true; // if type file we need the label after
113
-				$args['class'] .= ' custom-file-input ';
114
-			} elseif ( $type == 'checkbox' ) {
115
-				$label_after = true; // if type file we need the label after
116
-				$args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
-			} elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
-				$orig_type = $type;
119
-				$type = 'text';
120
-				$args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
-				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
-
123
-				$args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
-
125
-				// Disable native datetime inputs.
126
-				$disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
-				$disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
-
129
-				$args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
-
131
-				// set a way to clear field if empty
132
-				if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
-					$args['input_group_right_inside'] = true;
134
-					$args['clear_icon'] = true;
135
-				}
136
-
137
-				// enqueue the script
138
-				$aui_settings = AyeCode_UI_Settings::instance();
139
-				$aui_settings->enqueue_flatpickr();
140
-			} elseif ( $type == 'iconpicker' ) {
141
-				$type = 'text';
142
-				//$args['class'] .= ' aui-flatpickr bg-initial ';
14
+    /**
15
+     * Build the component.
16
+     *
17
+     * @param array $args
18
+     *
19
+     * @return string The rendered component.
20
+     */
21
+    public static function input( $args = array() ) {
22
+        global $aui_bs5;
23
+
24
+        $defaults = array(
25
+            'type'                     => 'text',
26
+            'name'                     => '',
27
+            'class'                    => '',
28
+            'wrap_class'               => '',
29
+            'id'                       => '',
30
+            'placeholder'              => '',
31
+            'title'                    => '',
32
+            'value'                    => '',
33
+            'required'                 => false,
34
+            'size'                     => '', // sm, lg, small, large
35
+            'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
+            'with_hidden'              => false, // Append hidden field for single checkbox.
37
+            'label'                    => '',
38
+            'label_after'              => false,
39
+            'label_class'              => '',
40
+            'label_col'                => '2',
41
+            'label_type'               => '', // top, horizontal, empty = hidden
42
+            'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
+            'help_text'                => '',
45
+            'validation_text'          => '',
46
+            'validation_pattern'       => '',
47
+            'no_wrap'                  => false,
48
+            'input_group_right'        => '',
49
+            'input_group_left'         => '',
50
+            'input_group_right_inside' => false,
51
+            // forces the input group inside the input
52
+            'input_group_left_inside'  => false,
53
+            // forces the input group inside the input
54
+            'form_group_class'         => '',
55
+            'step'                     => '',
56
+            'switch'                   => false,
57
+            // to show checkbox as a switch
58
+            'checked'                  => false,
59
+            // set a checkbox or radio as selected
60
+            'password_toggle'          => true,
61
+            // toggle view/hide password
62
+            'element_require'          => '',
63
+            // [%element_id%] == "1"
64
+            'extra_attributes'         => array(),
65
+            // an array of extra attributes
66
+            'wrap_attributes'          => array()
67
+        );
68
+
69
+        /**
70
+         * Parse incoming $args into an array and merge it with $defaults
71
+         */
72
+        $args   = wp_parse_args( $args, $defaults );
73
+        $output = '';
74
+        if ( ! empty( $args['type'] ) ) {
75
+            // hidden label option needs to be empty
76
+            $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
+
78
+            $type = sanitize_html_class( $args['type'] );
79
+
80
+            $help_text   = '';
81
+            $label       = '';
82
+            $label_after = $args['label_after'];
83
+            $label_args  = array(
84
+                'title'      => $args['label'],
85
+                'for'        => $args['id'],
86
+                'class'      => $args['label_class'] . " ",
87
+                'label_type' => $args['label_type'],
88
+                'label_col'  => $args['label_col']
89
+            );
90
+
91
+            // floating labels need label after
92
+            if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
+                $label_after         = true;
94
+                $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
+            }
96
+
97
+            // size
98
+            $size = '';
99
+            if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
+                $size = 'lg';
101
+                $args['class'] .= ' form-control-lg';
102
+            }elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
+                $size = 'sm';
104
+                $args['class'] .= ' form-control-sm';
105
+            }
106
+
107
+            // clear function
108
+            $clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
+
110
+            // Some special sauce for files
111
+            if ( $type == 'file' ) {
112
+                $label_after = true; // if type file we need the label after
113
+                $args['class'] .= ' custom-file-input ';
114
+            } elseif ( $type == 'checkbox' ) {
115
+                $label_after = true; // if type file we need the label after
116
+                $args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
+            } elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
+                $orig_type = $type;
119
+                $type = 'text';
120
+                $args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
+                $clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
+
123
+                $args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
+
125
+                // Disable native datetime inputs.
126
+                $disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
+                $disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
+
129
+                $args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
+
131
+                // set a way to clear field if empty
132
+                if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
+                    $args['input_group_right_inside'] = true;
134
+                    $args['clear_icon'] = true;
135
+                }
136
+
137
+                // enqueue the script
138
+                $aui_settings = AyeCode_UI_Settings::instance();
139
+                $aui_settings->enqueue_flatpickr();
140
+            } elseif ( $type == 'iconpicker' ) {
141
+                $type = 'text';
142
+                //$args['class'] .= ' aui-flatpickr bg-initial ';
143 143
 //				$args['class'] .= ' bg-initial ';
144 144
 
145
-				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
-				$args['extra_attributes']['data-placement'] = 'bottomRight';
145
+                $args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
+                $args['extra_attributes']['data-placement'] = 'bottomRight';
147 147
 
148
-				$args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
148
+                $args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
149 149
 //				$args['input_group_right_inside'] = true;
150
-				// enqueue the script
151
-				$aui_settings = AyeCode_UI_Settings::instance();
152
-				$aui_settings->enqueue_iconpicker();
153
-			}
154
-
155
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
-			}
158
-
159
-			// allow clear icon
160
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
-				$args['input_group_right_inside'] = true;
163
-				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
-				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
165
-			}
166
-
167
-			// open/type
168
-			$output .= '<input type="' . $type . '" ';
169
-
170
-			// name
171
-			if ( ! empty( $args['name'] ) ) {
172
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
-			}
174
-
175
-			// id
176
-			if ( ! empty( $args['id'] ) ) {
177
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
-			}
179
-
180
-			// placeholder
181
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
-			}
184
-
185
-			// title
186
-			if ( ! empty( $args['title'] ) ) {
187
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
-			}
189
-
190
-			// value
191
-			if ( ! empty( $args['value'] ) ) {
192
-				$output .= AUI_Component_Helper::value( $args['value'] );
193
-			}
194
-
195
-			// checked, for radio and checkboxes
196
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
-				$output .= ' checked ';
198
-			}
199
-
200
-			// validation text
201
-			if ( ! empty( $args['validation_text'] ) ) {
202
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
-			}
205
-
206
-			// validation_pattern
207
-			if ( ! empty( $args['validation_pattern'] ) ) {
208
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
-			}
210
-
211
-			// step (for numbers)
212
-			if ( ! empty( $args['step'] ) ) {
213
-				$output .= ' step="' . $args['step'] . '" ';
214
-			}
215
-
216
-			// required
217
-			if ( ! empty( $args['required'] ) ) {
218
-				$output .= ' required ';
219
-			}
220
-
221
-			// class
222
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
-
225
-			// data-attributes
226
-			$output .= AUI_Component_Helper::data_attributes( $args );
227
-
228
-			// extra attributes
229
-			if ( ! empty( $args['extra_attributes'] ) ) {
230
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
-			}
232
-
233
-			// close
234
-			$output .= ' >';
235
-
236
-			// help text
237
-			if ( ! empty( $args['help_text'] ) ) {
238
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
-			}
240
-
241
-			// label
242
-			if ( ! empty( $args['label'] ) ) {
243
-				$label_base_class = '';
244
-				if ( $type == 'file' ) {
245
-					$label_base_class = ' custom-file-label';
246
-				} elseif ( $type == 'checkbox' ) {
247
-					if ( ! empty( $args['label_force_left'] ) ) {
248
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
249
-						$help_text = '';
250
-						//$label_args['class'] .= ' d-inline ';
251
-						$args['wrap_class'] .= ' align-items-center ';
252
-					}else{
253
-
254
-					}
255
-
256
-					$label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
-				}
258
-				$label_args['class'] .= $label_base_class;
259
-				$temp_label_args = $label_args;
260
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
-				$label = self::label( $temp_label_args, $type );
262
-			}
263
-
264
-
265
-
266
-
267
-			// set help text in the correct position
268
-			if ( $label_after ) {
269
-				$output .= $label . $help_text;
270
-			}
271
-
272
-			// some input types need a separate wrap
273
-			if ( $type == 'file' ) {
274
-				$output = self::wrap( array(
275
-					'content' => $output,
276
-					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
-				) );
278
-			} elseif ( $type == 'checkbox' ) {
279
-
280
-				$label_args['title'] = $args['label'];
281
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
-				if ( $aui_bs5 ) {
285
-					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
-				}else{
287
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
-				}
289
-				if ( ! empty( $args['label_force_left'] ) ) {
290
-					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
-				}
293
-				$output     = self::wrap( array(
294
-					'content' => $output,
295
-					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
-				) );
297
-
298
-				if ( $args['label_type'] == 'horizontal' ) {
299
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
-					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
-				}
302
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
-
304
-
305
-				// allow password field to toggle view
306
-				$args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
150
+                // enqueue the script
151
+                $aui_settings = AyeCode_UI_Settings::instance();
152
+                $aui_settings->enqueue_iconpicker();
153
+            }
154
+
155
+            if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
+                $output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
+            }
158
+
159
+            // allow clear icon
160
+            if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
+                $font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
+                $args['input_group_right_inside'] = true;
163
+                $align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
+                $args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
165
+            }
166
+
167
+            // open/type
168
+            $output .= '<input type="' . $type . '" ';
169
+
170
+            // name
171
+            if ( ! empty( $args['name'] ) ) {
172
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
+            }
174
+
175
+            // id
176
+            if ( ! empty( $args['id'] ) ) {
177
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
+            }
179
+
180
+            // placeholder
181
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
+            }
184
+
185
+            // title
186
+            if ( ! empty( $args['title'] ) ) {
187
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
+            }
189
+
190
+            // value
191
+            if ( ! empty( $args['value'] ) ) {
192
+                $output .= AUI_Component_Helper::value( $args['value'] );
193
+            }
194
+
195
+            // checked, for radio and checkboxes
196
+            if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
+                $output .= ' checked ';
198
+            }
199
+
200
+            // validation text
201
+            if ( ! empty( $args['validation_text'] ) ) {
202
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
+            }
205
+
206
+            // validation_pattern
207
+            if ( ! empty( $args['validation_pattern'] ) ) {
208
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
+            }
210
+
211
+            // step (for numbers)
212
+            if ( ! empty( $args['step'] ) ) {
213
+                $output .= ' step="' . $args['step'] . '" ';
214
+            }
215
+
216
+            // required
217
+            if ( ! empty( $args['required'] ) ) {
218
+                $output .= ' required ';
219
+            }
220
+
221
+            // class
222
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
+            $output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
+
225
+            // data-attributes
226
+            $output .= AUI_Component_Helper::data_attributes( $args );
227
+
228
+            // extra attributes
229
+            if ( ! empty( $args['extra_attributes'] ) ) {
230
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
+            }
232
+
233
+            // close
234
+            $output .= ' >';
235
+
236
+            // help text
237
+            if ( ! empty( $args['help_text'] ) ) {
238
+                $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
+            }
240
+
241
+            // label
242
+            if ( ! empty( $args['label'] ) ) {
243
+                $label_base_class = '';
244
+                if ( $type == 'file' ) {
245
+                    $label_base_class = ' custom-file-label';
246
+                } elseif ( $type == 'checkbox' ) {
247
+                    if ( ! empty( $args['label_force_left'] ) ) {
248
+                        $label_args['title'] = wp_kses_post( $args['help_text'] );
249
+                        $help_text = '';
250
+                        //$label_args['class'] .= ' d-inline ';
251
+                        $args['wrap_class'] .= ' align-items-center ';
252
+                    }else{
253
+
254
+                    }
255
+
256
+                    $label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
+                }
258
+                $label_args['class'] .= $label_base_class;
259
+                $temp_label_args = $label_args;
260
+                if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
+                $label = self::label( $temp_label_args, $type );
262
+            }
263
+
264
+
265
+
266
+
267
+            // set help text in the correct position
268
+            if ( $label_after ) {
269
+                $output .= $label . $help_text;
270
+            }
271
+
272
+            // some input types need a separate wrap
273
+            if ( $type == 'file' ) {
274
+                $output = self::wrap( array(
275
+                    'content' => $output,
276
+                    'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
+                ) );
278
+            } elseif ( $type == 'checkbox' ) {
279
+
280
+                $label_args['title'] = $args['label'];
281
+                $label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
+                $label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
+                $switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
+                if ( $aui_bs5 ) {
285
+                    $wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
+                }else{
287
+                    $wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
+                }
289
+                if ( ! empty( $args['label_force_left'] ) ) {
290
+                    $wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
+                    $label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
+                }
293
+                $output     = self::wrap( array(
294
+                    'content' => $output,
295
+                    'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
+                ) );
297
+
298
+                if ( $args['label_type'] == 'horizontal' ) {
299
+                    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
+                    $output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
+                }
302
+            } elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
+
304
+
305
+                // allow password field to toggle view
306
+                $args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
307 307
 onclick="var $el = jQuery(this).find(\'i\');$el.toggleClass(\'fa-eye fa-eye-slash\');
308 308
 var $eli = jQuery(this).parent().parent().find(\'input\');
309 309
 if($el.hasClass(\'fa-eye\'))
310 310
 {$eli.attr(\'type\',\'text\');}
311 311
 else{$eli.attr(\'type\',\'password\');}"
312 312
 ><i class="far fa-fw fa-eye-slash"></i></span>';
313
-			}
314
-
315
-			// input group wraps
316
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
-				$group_size = $size == 'lg' ? ' input-group-lg' : '';
319
-				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
-
321
-				if ( $args['input_group_left'] ) {
322
-					$output = self::wrap( array(
323
-						'content'                 => $output,
324
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
-						'input_group_left'        => $args['input_group_left'],
326
-						'input_group_left_inside' => $args['input_group_left_inside']
327
-					) );
328
-				}
329
-				if ( $args['input_group_right'] ) {
330
-					$output = self::wrap( array(
331
-						'content'                  => $output,
332
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
-						'input_group_right'        => $args['input_group_right'],
334
-						'input_group_right_inside' => $args['input_group_right_inside']
335
-					) );
336
-				}
337
-
338
-			}
339
-
340
-			if ( ! $label_after ) {
341
-				$output .= $help_text;
342
-			}
343
-
344
-
345
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
-				$output = self::wrap( array(
347
-					'content' => $output,
348
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
-				) );
350
-			}
351
-
352
-			if ( ! $label_after ) {
353
-				$output = $label . $output;
354
-			}
355
-
356
-			// wrap
357
-			if ( ! $args['no_wrap'] ) {
358
-				if ( ! empty( $args['form_group_class'] ) ) {
359
-					$fg_class = esc_attr( $args['form_group_class'] );
360
-				}else{
361
-					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
-				}
363
-				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
-				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
-				$output           = self::wrap( array(
367
-					'content'         => $output,
368
-					'class'           => $wrap_class,
369
-					'element_require' => $args['element_require'],
370
-					'argument_id'     => $args['id'],
371
-					'wrap_attributes' => $args['wrap_attributes'],
372
-				) );
373
-			}
374
-		}
375
-
376
-		return $output;
377
-	}
378
-
379
-	public static function label( $args = array(), $type = '' ) {
380
-		global $aui_bs5;
381
-		//<label for="exampleInputEmail1">Email address</label>
382
-		$defaults = array(
383
-			'title'      => 'div',
384
-			'for'        => '',
385
-			'class'      => '',
386
-			'label_type' => '', // empty = hidden, top, horizontal
387
-			'label_col'  => '',
388
-		);
389
-
390
-		/**
391
-		 * Parse incoming $args into an array and merge it with $defaults
392
-		 */
393
-		$args   = wp_parse_args( $args, $defaults );
394
-		$output = '';
395
-
396
-		if ( $args['title'] ) {
397
-
398
-			// maybe hide labels //@todo set a global option for visibility class
399
-			if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
-				$class = $args['class'];
401
-			} else {
402
-				$class = 'sr-only ' . $args['class'];
403
-			}
404
-
405
-			// maybe horizontal
406
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
-				$class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label '.$type;
408
-			}
409
-
410
-			if( $aui_bs5 ){ $class .= ' form-label'; }
411
-
412
-			// open
413
-			$output .= '<label ';
414
-
415
-			// for
416
-			if ( ! empty( $args['for'] ) ) {
417
-				$output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
-			}
419
-
420
-			// class
421
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
-			$output .= ' class="' . $class . '" ';
423
-
424
-			// close
425
-			$output .= '>';
426
-
427
-
428
-			// title, don't escape fully as can contain html
429
-			if ( ! empty( $args['title'] ) ) {
430
-				$output .= wp_kses_post( $args['title'] );
431
-			}
432
-
433
-			// close wrap
434
-			$output .= '</label>';
435
-
436
-
437
-		}
438
-
439
-
440
-		return $output;
441
-	}
442
-
443
-	/**
444
-	 * Wrap some content in a HTML wrapper.
445
-	 *
446
-	 * @param array $args
447
-	 *
448
-	 * @return string
449
-	 */
450
-	public static function wrap( $args = array() ) {
451
-		global $aui_bs5;
452
-		$defaults = array(
453
-			'type'                     => 'div',
454
-			'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
-			'content'                  => '',
456
-			'input_group_left'         => '',
457
-			'input_group_right'        => '',
458
-			'input_group_left_inside'  => false,
459
-			'input_group_right_inside' => false,
460
-			'element_require'          => '',
461
-			'argument_id'              => '',
462
-			'wrap_attributes'          => array()
463
-		);
464
-
465
-		/**
466
-		 * Parse incoming $args into an array and merge it with $defaults
467
-		 */
468
-		$args   = wp_parse_args( $args, $defaults );
469
-		$output = '';
470
-		if ( $args['type'] ) {
471
-
472
-			// open
473
-			$output .= '<' . sanitize_html_class( $args['type'] );
474
-
475
-			// element require
476
-			if ( ! empty( $args['element_require'] ) ) {
477
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
-				$args['class'] .= " aui-conditional-field";
479
-			}
480
-
481
-			// argument_id
482
-			if ( ! empty( $args['argument_id'] ) ) {
483
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
-			}
485
-
486
-			// class
487
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
-			$output .= ' class="' . $class . '" ';
489
-
490
-			// Attributes
491
-			if ( ! empty( $args['wrap_attributes'] ) ) {
492
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
-			}
494
-
495
-			// close wrap
496
-			$output .= ' >';
497
-
498
-
499
-			// Input group left
500
-			if ( ! empty( $args['input_group_left'] ) ) {
501
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
-				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
313
+            }
314
+
315
+            // input group wraps
316
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
+                $group_size = $size == 'lg' ? ' input-group-lg' : '';
319
+                $group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
+
321
+                if ( $args['input_group_left'] ) {
322
+                    $output = self::wrap( array(
323
+                        'content'                 => $output,
324
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
+                        'input_group_left'        => $args['input_group_left'],
326
+                        'input_group_left_inside' => $args['input_group_left_inside']
327
+                    ) );
328
+                }
329
+                if ( $args['input_group_right'] ) {
330
+                    $output = self::wrap( array(
331
+                        'content'                  => $output,
332
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
+                        'input_group_right'        => $args['input_group_right'],
334
+                        'input_group_right_inside' => $args['input_group_right_inside']
335
+                    ) );
336
+                }
337
+
338
+            }
339
+
340
+            if ( ! $label_after ) {
341
+                $output .= $help_text;
342
+            }
343
+
344
+
345
+            if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
+                $output = self::wrap( array(
347
+                    'content' => $output,
348
+                    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
+                ) );
350
+            }
351
+
352
+            if ( ! $label_after ) {
353
+                $output = $label . $output;
354
+            }
355
+
356
+            // wrap
357
+            if ( ! $args['no_wrap'] ) {
358
+                if ( ! empty( $args['form_group_class'] ) ) {
359
+                    $fg_class = esc_attr( $args['form_group_class'] );
360
+                }else{
361
+                    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
+                }
363
+                $form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
+                $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
+                $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
+                $output           = self::wrap( array(
367
+                    'content'         => $output,
368
+                    'class'           => $wrap_class,
369
+                    'element_require' => $args['element_require'],
370
+                    'argument_id'     => $args['id'],
371
+                    'wrap_attributes' => $args['wrap_attributes'],
372
+                ) );
373
+            }
374
+        }
375
+
376
+        return $output;
377
+    }
378
+
379
+    public static function label( $args = array(), $type = '' ) {
380
+        global $aui_bs5;
381
+        //<label for="exampleInputEmail1">Email address</label>
382
+        $defaults = array(
383
+            'title'      => 'div',
384
+            'for'        => '',
385
+            'class'      => '',
386
+            'label_type' => '', // empty = hidden, top, horizontal
387
+            'label_col'  => '',
388
+        );
389
+
390
+        /**
391
+         * Parse incoming $args into an array and merge it with $defaults
392
+         */
393
+        $args   = wp_parse_args( $args, $defaults );
394
+        $output = '';
395
+
396
+        if ( $args['title'] ) {
397
+
398
+            // maybe hide labels //@todo set a global option for visibility class
399
+            if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
+                $class = $args['class'];
401
+            } else {
402
+                $class = 'sr-only ' . $args['class'];
403
+            }
404
+
405
+            // maybe horizontal
406
+            if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
+                $class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label '.$type;
408
+            }
409
+
410
+            if( $aui_bs5 ){ $class .= ' form-label'; }
411
+
412
+            // open
413
+            $output .= '<label ';
414
+
415
+            // for
416
+            if ( ! empty( $args['for'] ) ) {
417
+                $output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
+            }
419
+
420
+            // class
421
+            $class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
+            $output .= ' class="' . $class . '" ';
423
+
424
+            // close
425
+            $output .= '>';
426
+
427
+
428
+            // title, don't escape fully as can contain html
429
+            if ( ! empty( $args['title'] ) ) {
430
+                $output .= wp_kses_post( $args['title'] );
431
+            }
432
+
433
+            // close wrap
434
+            $output .= '</label>';
435
+
436
+
437
+        }
438
+
439
+
440
+        return $output;
441
+    }
442
+
443
+    /**
444
+     * Wrap some content in a HTML wrapper.
445
+     *
446
+     * @param array $args
447
+     *
448
+     * @return string
449
+     */
450
+    public static function wrap( $args = array() ) {
451
+        global $aui_bs5;
452
+        $defaults = array(
453
+            'type'                     => 'div',
454
+            'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
+            'content'                  => '',
456
+            'input_group_left'         => '',
457
+            'input_group_right'        => '',
458
+            'input_group_left_inside'  => false,
459
+            'input_group_right_inside' => false,
460
+            'element_require'          => '',
461
+            'argument_id'              => '',
462
+            'wrap_attributes'          => array()
463
+        );
464
+
465
+        /**
466
+         * Parse incoming $args into an array and merge it with $defaults
467
+         */
468
+        $args   = wp_parse_args( $args, $defaults );
469
+        $output = '';
470
+        if ( $args['type'] ) {
471
+
472
+            // open
473
+            $output .= '<' . sanitize_html_class( $args['type'] );
474
+
475
+            // element require
476
+            if ( ! empty( $args['element_require'] ) ) {
477
+                $output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
+                $args['class'] .= " aui-conditional-field";
479
+            }
480
+
481
+            // argument_id
482
+            if ( ! empty( $args['argument_id'] ) ) {
483
+                $output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
+            }
485
+
486
+            // class
487
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
+            $output .= ' class="' . $class . '" ';
489
+
490
+            // Attributes
491
+            if ( ! empty( $args['wrap_attributes'] ) ) {
492
+                $output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
+            }
494
+
495
+            // close wrap
496
+            $output .= ' >';
497
+
498
+
499
+            // Input group left
500
+            if ( ! empty( $args['input_group_left'] ) ) {
501
+                $position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
+                $input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
+                $output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504 504
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505
-			}
505
+            }
506 506
 
507
-			// content
508
-			$output .= $args['content'];
507
+            // content
508
+            $output .= $args['content'];
509 509
 
510
-			// Input group right
511
-			if ( ! empty( $args['input_group_right'] ) ) {
512
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
-				$output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
510
+            // Input group right
511
+            if ( ! empty( $args['input_group_right'] ) ) {
512
+                $position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
+                $input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
+                $output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
515 515
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516
-			}
517
-
518
-
519
-			// close wrap
520
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
521
-
522
-
523
-		} else {
524
-			$output = $args['content'];
525
-		}
526
-
527
-		return $output;
528
-	}
529
-
530
-	/**
531
-	 * Build the component.
532
-	 *
533
-	 * @param array $args
534
-	 *
535
-	 * @return string The rendered component.
536
-	 */
537
-	public static function textarea( $args = array() ) {
538
-		global $aui_bs5;
539
-
540
-		$defaults = array(
541
-			'name'               => '',
542
-			'class'              => '',
543
-			'wrap_class'         => '',
544
-			'id'                 => '',
545
-			'placeholder'        => '',
546
-			'title'              => '',
547
-			'value'              => '',
548
-			'required'           => false,
549
-			'label'              => '',
550
-			'label_after'        => false,
551
-			'label_class'        => '',
552
-			'label_type'         => '',
553
-			'label_col'          => '',
554
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
-			'input_group_right'        => '',
556
-			'input_group_left'         => '',
557
-			'input_group_right_inside' => false,
558
-			'form_group_class'      => '',
559
-			'help_text'          => '',
560
-			'validation_text'    => '',
561
-			'validation_pattern' => '',
562
-			'no_wrap'            => false,
563
-			'rows'               => '',
564
-			'wysiwyg'            => false,
565
-			'allow_tags'         => false,
566
-			// Allow HTML tags
567
-			'element_require'    => '',
568
-			// [%element_id%] == "1"
569
-			'extra_attributes'   => array(),
570
-			// an array of extra attributes
571
-			'wrap_attributes'    => array(),
572
-		);
573
-
574
-		/**
575
-		 * Parse incoming $args into an array and merge it with $defaults
576
-		 */
577
-		$args   = wp_parse_args( $args, $defaults );
578
-		$output = '';
579
-		$label = '';
580
-
581
-		// hidden label option needs to be empty
582
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
-
584
-		// floating labels don't work with wysiwyg so set it as top
585
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
-			$args['label_type'] = 'top';
587
-		}
588
-
589
-		$label_after = $args['label_after'];
590
-
591
-		// floating labels need label after
592
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
-			$label_after         = true;
594
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
-		}
596
-
597
-		// label
598
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
-			$label_args = array(
601
-				'title'      => $args['label'],
602
-				'for'        => $args['id'],
603
-				'class'      => $args['label_class'] . " ",
604
-				'label_type' => $args['label_type'],
605
-				'label_col'  => $args['label_col']
606
-			);
607
-			$label .= self::label( $label_args );
608
-		}
609
-
610
-		// maybe horizontal label
611
-		if ( $args['label_type'] == 'horizontal' ) {
612
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
-			$label .= '<div class="' . $input_col . '">';
614
-		}
615
-
616
-		if ( ! empty( $args['wysiwyg'] ) ) {
617
-			ob_start();
618
-			$content   = $args['value'];
619
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
-			$settings  = array(
621
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
-				'quicktags'     => false,
623
-				'media_buttons' => false,
624
-				'editor_class'  => 'form-control',
625
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
-				'teeny'         => true,
627
-			);
628
-
629
-			// maybe set settings if array
630
-			if ( is_array( $args['wysiwyg'] ) ) {
631
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
632
-			}
633
-
634
-			wp_editor( $content, $editor_id, $settings );
635
-			$output .= ob_get_clean();
636
-		} else {
637
-
638
-			// open
639
-			$output .= '<textarea ';
640
-
641
-			// name
642
-			if ( ! empty( $args['name'] ) ) {
643
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
-			}
645
-
646
-			// id
647
-			if ( ! empty( $args['id'] ) ) {
648
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
-			}
650
-
651
-			// placeholder
652
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
-			}
655
-
656
-			// title
657
-			if ( ! empty( $args['title'] ) ) {
658
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
-			}
660
-
661
-			// validation text
662
-			if ( ! empty( $args['validation_text'] ) ) {
663
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
-			}
666
-
667
-			// validation_pattern
668
-			if ( ! empty( $args['validation_pattern'] ) ) {
669
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
-			}
671
-
672
-			// required
673
-			if ( ! empty( $args['required'] ) ) {
674
-				$output .= ' required ';
675
-			}
676
-
677
-			// rows
678
-			if ( ! empty( $args['rows'] ) ) {
679
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
-			}
681
-
682
-
683
-			// class
684
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
685
-			$output .= ' class="form-control ' . $class . '" ';
686
-
687
-			// extra attributes
688
-			if ( ! empty( $args['extra_attributes'] ) ) {
689
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
-			}
691
-
692
-			// close tag
693
-			$output .= ' >';
694
-
695
-			// value
696
-			if ( ! empty( $args['value'] ) ) {
697
-				if ( ! empty( $args['allow_tags'] ) ) {
698
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
-				} else {
700
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
-				}
702
-			}
703
-
704
-			// closing tag
705
-			$output .= '</textarea>';
706
-
707
-
708
-			// input group wraps
709
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
-				if ( $args['input_group_left'] ) {
712
-					$output = self::wrap( array(
713
-						'content'                 => $output,
714
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
-						'input_group_left'        => $args['input_group_left'],
716
-						'input_group_left_inside' => $args['input_group_left_inside']
717
-					) );
718
-				}
719
-				if ( $args['input_group_right'] ) {
720
-					$output = self::wrap( array(
721
-						'content'                  => $output,
722
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
-						'input_group_right'        => $args['input_group_right'],
724
-						'input_group_right_inside' => $args['input_group_right_inside']
725
-					) );
726
-				}
727
-
728
-			}
729
-
730
-
731
-		}
732
-
733
-		if ( ! empty( $args['label'] ) && $label_after ) {
734
-			$label_args = array(
735
-				'title'      => $args['label'],
736
-				'for'        => $args['id'],
737
-				'class'      => $args['label_class'] . " ",
738
-				'label_type' => $args['label_type'],
739
-				'label_col'  => $args['label_col']
740
-			);
741
-			$output .= self::label( $label_args );
742
-		}
743
-
744
-		// help text
745
-		if ( ! empty( $args['help_text'] ) ) {
746
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
-		}
748
-
749
-		if ( ! $label_after ) {
750
-			$output = $label . $output;
751
-		}
752
-
753
-		// maybe horizontal label
754
-		if ( $args['label_type'] == 'horizontal' ) {
755
-			$output .= '</div>';
756
-		}
757
-
758
-
759
-		// wrap
760
-		if ( ! $args['no_wrap'] ) {
761
-			if ( ! empty( $args['form_group_class'] ) ) {
762
-				$fg_class = esc_attr( $args['form_group_class'] );
763
-			}else{
764
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
-			}
766
-			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
-			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
-			$output           = self::wrap( array(
770
-				'content'         => $output,
771
-				'class'           => $wrap_class,
772
-				'element_require' => $args['element_require'],
773
-				'argument_id'     => $args['id'],
774
-				'wrap_attributes' => $args['wrap_attributes'],
775
-			) );
776
-		}
777
-
778
-
779
-		return $output;
780
-	}
781
-
782
-	/**
783
-	 * Build the component.
784
-	 *
785
-	 * @param array $args
786
-	 *
787
-	 * @return string The rendered component.
788
-	 */
789
-	public static function select( $args = array() ) {
790
-		global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
791
-
792
-		$defaults = array(
793
-			'class'            => '',
794
-			'wrap_class'       => '',
795
-			'id'               => '',
796
-			'title'            => '',
797
-			'value'            => '',
798
-			// can be an array or a string
799
-			'required'         => false,
800
-			'label'            => '',
801
-			'label_after'      => false,
802
-			'label_type'       => '',
803
-			'label_col'        => '',
804
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
805
-			'label_class'      => '',
806
-			'help_text'        => '',
807
-			'placeholder'      => '',
808
-			'options'          => array(),
809
-			// array or string
810
-			'icon'             => '',
811
-			'multiple'         => false,
812
-			'select2'          => false,
813
-			'no_wrap'          => false,
814
-			'input_group_right' => '',
815
-			'input_group_left' => '',
816
-			'input_group_right_inside' => false, // forces the input group inside the input
817
-			'input_group_left_inside' => false, // forces the input group inside the input
818
-			'form_group_class'  => '',
819
-			'element_require'  => '',
820
-			// [%element_id%] == "1"
821
-			'extra_attributes' => array(),
822
-			// an array of extra attributes
823
-			'wrap_attributes'  => array(),
824
-		);
825
-
826
-		/**
827
-		 * Parse incoming $args into an array and merge it with $defaults
828
-		 */
829
-		$args   = wp_parse_args( $args, $defaults );
830
-		$output = '';
831
-
832
-		// for now lets hide floating labels
833
-		if ( $args['label_type'] == 'floating' ) {
834
-			$args['label_type'] = 'hidden';
835
-		}
836
-
837
-		// hidden label option needs to be empty
838
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
839
-
840
-
841
-		$label_after = $args['label_after'];
842
-
843
-		// floating labels need label after
844
-		if ( $args['label_type'] == 'floating' ) {
845
-			$label_after         = true;
846
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
847
-		}
848
-
849
-		// Maybe setup select2
850
-		$is_select2 = false;
851
-		if ( ! empty( $args['select2'] ) ) {
852
-			$args['class'] .= ' aui-select2';
853
-			$is_select2 = true;
854
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
855
-			$is_select2 = true;
856
-		}
857
-
858
-		if ( $is_select2 && ! $aui_has_select2 ) {
859
-			$aui_has_select2 = true;
860
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
861
-
862
-			// Enqueue the script,
863
-			if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
864
-				$aui_select2_enqueued = true;
865
-
866
-				$aui_settings = AyeCode_UI_Settings::instance();
867
-				$aui_settings->enqueue_select2();
868
-			}
869
-		}
870
-
871
-		// select2 tags
872
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
873
-			$args['data-tags']             = 'true';
874
-			$args['data-token-separators'] = "[',']";
875
-			$args['multiple']              = true;
876
-		}
877
-
878
-		// select2 placeholder
879
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
880
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
881
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
882
-		}
883
-
884
-		// Set hidden input to save empty value for multiselect.
885
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
886
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
887
-		}
888
-
889
-		// open/type
890
-		$output .= '<select ';
891
-
892
-		// style
893
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
894
-			$output .= " style='width:100%;' ";
895
-		}
896
-
897
-		// element require
898
-		if ( ! empty( $args['element_require'] ) ) {
899
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
900
-			$args['class'] .= " aui-conditional-field";
901
-		}
902
-
903
-		// class
904
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
905
-		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
906
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
907
-
908
-		// name
909
-		if ( ! empty( $args['name'] ) ) {
910
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
911
-		}
912
-
913
-		// id
914
-		if ( ! empty( $args['id'] ) ) {
915
-			$output .= AUI_Component_Helper::id( $args['id'] );
916
-		}
917
-
918
-		// title
919
-		if ( ! empty( $args['title'] ) ) {
920
-			$output .= AUI_Component_Helper::title( $args['title'] );
921
-		}
922
-
923
-		// data-attributes
924
-		$output .= AUI_Component_Helper::data_attributes( $args );
925
-
926
-		// aria-attributes
927
-		$output .= AUI_Component_Helper::aria_attributes( $args );
928
-
929
-		// extra attributes
930
-		if ( ! empty( $args['extra_attributes'] ) ) {
931
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
932
-		}
933
-
934
-		// required
935
-		if ( ! empty( $args['required'] ) ) {
936
-			$output .= ' required ';
937
-		}
938
-
939
-		// multiple
940
-		if ( ! empty( $args['multiple'] ) ) {
941
-			$output .= ' multiple ';
942
-		}
943
-
944
-		// close opening tag
945
-		$output .= ' >';
946
-
947
-		// placeholder
948
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
949
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
950
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
951
-			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
952
-		}
953
-
954
-		// Options
955
-		if ( ! empty( $args['options'] ) ) {
956
-
957
-			if ( ! is_array( $args['options'] ) ) {
958
-				$output .= $args['options']; // not the preferred way but an option
959
-			} else {
960
-				foreach ( $args['options'] as $val => $name ) {
961
-					$selected = '';
962
-					if ( is_array( $name ) ) {
963
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
964
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
965
-
966
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
967
-						} else {
968
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
969
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
970
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
971
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
972
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
973
-							} elseif ( ! empty( $args['value'] ) ) {
974
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
975
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
976
-								$selected = selected( $option_value, $args['value'], false );
977
-							}
978
-
979
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
980
-						}
981
-					} else {
982
-						if ( ! empty( $args['value'] ) ) {
983
-							if ( is_array( $args['value'] ) ) {
984
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
985
-							} elseif ( ! empty( $args['value'] ) ) {
986
-								$selected = selected( $args['value'], $val, false );
987
-							}
988
-						} elseif ( $args['value'] === $val ) {
989
-							$selected = selected( $args['value'], $val, false );
990
-						}
991
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
992
-					}
993
-				}
994
-			}
995
-
996
-		}
997
-
998
-		// closing tag
999
-		$output .= '</select>';
1000
-
1001
-		$label = '';
1002
-		$help_text = '';
1003
-		// label
1004
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1005
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1006
-			$label_args = array(
1007
-				'title'      => $args['label'],
1008
-				'for'        => $args['id'],
1009
-				'class'      => $args['label_class'] . " ",
1010
-				'label_type' => $args['label_type'],
1011
-				'label_col'  => $args['label_col']
1012
-			);
1013
-			$label = self::label( $label_args );
1014
-		}
1015
-
1016
-		// help text
1017
-		if ( ! empty( $args['help_text'] ) ) {
1018
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1019
-		}
1020
-
1021
-		// input group wraps
1022
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1023
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1024
-			if ( $args['input_group_left'] ) {
1025
-				$output = self::wrap( array(
1026
-					'content'                 => $output,
1027
-					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1028
-					'input_group_left'        => $args['input_group_left'],
1029
-					'input_group_left_inside' => $args['input_group_left_inside']
1030
-				) );
1031
-			}
1032
-			if ( $args['input_group_right'] ) {
1033
-				$output = self::wrap( array(
1034
-					'content'                  => $output,
1035
-					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1036
-					'input_group_right'        => $args['input_group_right'],
1037
-					'input_group_right_inside' => $args['input_group_right_inside']
1038
-				) );
1039
-			}
1040
-
1041
-		}
1042
-
1043
-		if ( ! $label_after ) {
1044
-			$output .= $help_text;
1045
-		}
1046
-
1047
-
1048
-		if ( $args['label_type'] == 'horizontal' ) {
1049
-			$output = self::wrap( array(
1050
-				'content' => $output,
1051
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1052
-			) );
1053
-		}
1054
-
1055
-		if ( ! $label_after ) {
1056
-			$output = $label . $output;
1057
-		}
1058
-
1059
-		// maybe horizontal label
516
+            }
517
+
518
+
519
+            // close wrap
520
+            $output .= '</' . sanitize_html_class( $args['type'] ) . '>';
521
+
522
+
523
+        } else {
524
+            $output = $args['content'];
525
+        }
526
+
527
+        return $output;
528
+    }
529
+
530
+    /**
531
+     * Build the component.
532
+     *
533
+     * @param array $args
534
+     *
535
+     * @return string The rendered component.
536
+     */
537
+    public static function textarea( $args = array() ) {
538
+        global $aui_bs5;
539
+
540
+        $defaults = array(
541
+            'name'               => '',
542
+            'class'              => '',
543
+            'wrap_class'         => '',
544
+            'id'                 => '',
545
+            'placeholder'        => '',
546
+            'title'              => '',
547
+            'value'              => '',
548
+            'required'           => false,
549
+            'label'              => '',
550
+            'label_after'        => false,
551
+            'label_class'        => '',
552
+            'label_type'         => '',
553
+            'label_col'          => '',
554
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
+            'input_group_right'        => '',
556
+            'input_group_left'         => '',
557
+            'input_group_right_inside' => false,
558
+            'form_group_class'      => '',
559
+            'help_text'          => '',
560
+            'validation_text'    => '',
561
+            'validation_pattern' => '',
562
+            'no_wrap'            => false,
563
+            'rows'               => '',
564
+            'wysiwyg'            => false,
565
+            'allow_tags'         => false,
566
+            // Allow HTML tags
567
+            'element_require'    => '',
568
+            // [%element_id%] == "1"
569
+            'extra_attributes'   => array(),
570
+            // an array of extra attributes
571
+            'wrap_attributes'    => array(),
572
+        );
573
+
574
+        /**
575
+         * Parse incoming $args into an array and merge it with $defaults
576
+         */
577
+        $args   = wp_parse_args( $args, $defaults );
578
+        $output = '';
579
+        $label = '';
580
+
581
+        // hidden label option needs to be empty
582
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
+
584
+        // floating labels don't work with wysiwyg so set it as top
585
+        if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
+            $args['label_type'] = 'top';
587
+        }
588
+
589
+        $label_after = $args['label_after'];
590
+
591
+        // floating labels need label after
592
+        if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
+            $label_after         = true;
594
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
+        }
596
+
597
+        // label
598
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
+            $label_args = array(
601
+                'title'      => $args['label'],
602
+                'for'        => $args['id'],
603
+                'class'      => $args['label_class'] . " ",
604
+                'label_type' => $args['label_type'],
605
+                'label_col'  => $args['label_col']
606
+            );
607
+            $label .= self::label( $label_args );
608
+        }
609
+
610
+        // maybe horizontal label
611
+        if ( $args['label_type'] == 'horizontal' ) {
612
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
+            $label .= '<div class="' . $input_col . '">';
614
+        }
615
+
616
+        if ( ! empty( $args['wysiwyg'] ) ) {
617
+            ob_start();
618
+            $content   = $args['value'];
619
+            $editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
+            $settings  = array(
621
+                'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
+                'quicktags'     => false,
623
+                'media_buttons' => false,
624
+                'editor_class'  => 'form-control',
625
+                'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
+                'teeny'         => true,
627
+            );
628
+
629
+            // maybe set settings if array
630
+            if ( is_array( $args['wysiwyg'] ) ) {
631
+                $settings = wp_parse_args( $args['wysiwyg'], $settings );
632
+            }
633
+
634
+            wp_editor( $content, $editor_id, $settings );
635
+            $output .= ob_get_clean();
636
+        } else {
637
+
638
+            // open
639
+            $output .= '<textarea ';
640
+
641
+            // name
642
+            if ( ! empty( $args['name'] ) ) {
643
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
+            }
645
+
646
+            // id
647
+            if ( ! empty( $args['id'] ) ) {
648
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
+            }
650
+
651
+            // placeholder
652
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
+            }
655
+
656
+            // title
657
+            if ( ! empty( $args['title'] ) ) {
658
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
+            }
660
+
661
+            // validation text
662
+            if ( ! empty( $args['validation_text'] ) ) {
663
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
+            }
666
+
667
+            // validation_pattern
668
+            if ( ! empty( $args['validation_pattern'] ) ) {
669
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
+            }
671
+
672
+            // required
673
+            if ( ! empty( $args['required'] ) ) {
674
+                $output .= ' required ';
675
+            }
676
+
677
+            // rows
678
+            if ( ! empty( $args['rows'] ) ) {
679
+                $output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
+            }
681
+
682
+
683
+            // class
684
+            $class = ! empty( $args['class'] ) ? $args['class'] : '';
685
+            $output .= ' class="form-control ' . $class . '" ';
686
+
687
+            // extra attributes
688
+            if ( ! empty( $args['extra_attributes'] ) ) {
689
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
+            }
691
+
692
+            // close tag
693
+            $output .= ' >';
694
+
695
+            // value
696
+            if ( ! empty( $args['value'] ) ) {
697
+                if ( ! empty( $args['allow_tags'] ) ) {
698
+                    $output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
+                } else {
700
+                    $output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
+                }
702
+            }
703
+
704
+            // closing tag
705
+            $output .= '</textarea>';
706
+
707
+
708
+            // input group wraps
709
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
+                if ( $args['input_group_left'] ) {
712
+                    $output = self::wrap( array(
713
+                        'content'                 => $output,
714
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
+                        'input_group_left'        => $args['input_group_left'],
716
+                        'input_group_left_inside' => $args['input_group_left_inside']
717
+                    ) );
718
+                }
719
+                if ( $args['input_group_right'] ) {
720
+                    $output = self::wrap( array(
721
+                        'content'                  => $output,
722
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
+                        'input_group_right'        => $args['input_group_right'],
724
+                        'input_group_right_inside' => $args['input_group_right_inside']
725
+                    ) );
726
+                }
727
+
728
+            }
729
+
730
+
731
+        }
732
+
733
+        if ( ! empty( $args['label'] ) && $label_after ) {
734
+            $label_args = array(
735
+                'title'      => $args['label'],
736
+                'for'        => $args['id'],
737
+                'class'      => $args['label_class'] . " ",
738
+                'label_type' => $args['label_type'],
739
+                'label_col'  => $args['label_col']
740
+            );
741
+            $output .= self::label( $label_args );
742
+        }
743
+
744
+        // help text
745
+        if ( ! empty( $args['help_text'] ) ) {
746
+            $output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
+        }
748
+
749
+        if ( ! $label_after ) {
750
+            $output = $label . $output;
751
+        }
752
+
753
+        // maybe horizontal label
754
+        if ( $args['label_type'] == 'horizontal' ) {
755
+            $output .= '</div>';
756
+        }
757
+
758
+
759
+        // wrap
760
+        if ( ! $args['no_wrap'] ) {
761
+            if ( ! empty( $args['form_group_class'] ) ) {
762
+                $fg_class = esc_attr( $args['form_group_class'] );
763
+            }else{
764
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
+            }
766
+            $form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
+            $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
+            $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
+            $output           = self::wrap( array(
770
+                'content'         => $output,
771
+                'class'           => $wrap_class,
772
+                'element_require' => $args['element_require'],
773
+                'argument_id'     => $args['id'],
774
+                'wrap_attributes' => $args['wrap_attributes'],
775
+            ) );
776
+        }
777
+
778
+
779
+        return $output;
780
+    }
781
+
782
+    /**
783
+     * Build the component.
784
+     *
785
+     * @param array $args
786
+     *
787
+     * @return string The rendered component.
788
+     */
789
+    public static function select( $args = array() ) {
790
+        global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
791
+
792
+        $defaults = array(
793
+            'class'            => '',
794
+            'wrap_class'       => '',
795
+            'id'               => '',
796
+            'title'            => '',
797
+            'value'            => '',
798
+            // can be an array or a string
799
+            'required'         => false,
800
+            'label'            => '',
801
+            'label_after'      => false,
802
+            'label_type'       => '',
803
+            'label_col'        => '',
804
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
805
+            'label_class'      => '',
806
+            'help_text'        => '',
807
+            'placeholder'      => '',
808
+            'options'          => array(),
809
+            // array or string
810
+            'icon'             => '',
811
+            'multiple'         => false,
812
+            'select2'          => false,
813
+            'no_wrap'          => false,
814
+            'input_group_right' => '',
815
+            'input_group_left' => '',
816
+            'input_group_right_inside' => false, // forces the input group inside the input
817
+            'input_group_left_inside' => false, // forces the input group inside the input
818
+            'form_group_class'  => '',
819
+            'element_require'  => '',
820
+            // [%element_id%] == "1"
821
+            'extra_attributes' => array(),
822
+            // an array of extra attributes
823
+            'wrap_attributes'  => array(),
824
+        );
825
+
826
+        /**
827
+         * Parse incoming $args into an array and merge it with $defaults
828
+         */
829
+        $args   = wp_parse_args( $args, $defaults );
830
+        $output = '';
831
+
832
+        // for now lets hide floating labels
833
+        if ( $args['label_type'] == 'floating' ) {
834
+            $args['label_type'] = 'hidden';
835
+        }
836
+
837
+        // hidden label option needs to be empty
838
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
839
+
840
+
841
+        $label_after = $args['label_after'];
842
+
843
+        // floating labels need label after
844
+        if ( $args['label_type'] == 'floating' ) {
845
+            $label_after         = true;
846
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
847
+        }
848
+
849
+        // Maybe setup select2
850
+        $is_select2 = false;
851
+        if ( ! empty( $args['select2'] ) ) {
852
+            $args['class'] .= ' aui-select2';
853
+            $is_select2 = true;
854
+        } elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
855
+            $is_select2 = true;
856
+        }
857
+
858
+        if ( $is_select2 && ! $aui_has_select2 ) {
859
+            $aui_has_select2 = true;
860
+            $conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
861
+
862
+            // Enqueue the script,
863
+            if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
864
+                $aui_select2_enqueued = true;
865
+
866
+                $aui_settings = AyeCode_UI_Settings::instance();
867
+                $aui_settings->enqueue_select2();
868
+            }
869
+        }
870
+
871
+        // select2 tags
872
+        if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
873
+            $args['data-tags']             = 'true';
874
+            $args['data-token-separators'] = "[',']";
875
+            $args['multiple']              = true;
876
+        }
877
+
878
+        // select2 placeholder
879
+        if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
880
+            $args['data-placeholder'] = esc_attr( $args['placeholder'] );
881
+            $args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
882
+        }
883
+
884
+        // Set hidden input to save empty value for multiselect.
885
+        if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
886
+            $output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
887
+        }
888
+
889
+        // open/type
890
+        $output .= '<select ';
891
+
892
+        // style
893
+        if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
894
+            $output .= " style='width:100%;' ";
895
+        }
896
+
897
+        // element require
898
+        if ( ! empty( $args['element_require'] ) ) {
899
+            $output .= AUI_Component_Helper::element_require( $args['element_require'] );
900
+            $args['class'] .= " aui-conditional-field";
901
+        }
902
+
903
+        // class
904
+        $class = ! empty( $args['class'] ) ? $args['class'] : '';
905
+        $select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
906
+        $output .= AUI_Component_Helper::class_attr( $select_class . $class );
907
+
908
+        // name
909
+        if ( ! empty( $args['name'] ) ) {
910
+            $output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
911
+        }
912
+
913
+        // id
914
+        if ( ! empty( $args['id'] ) ) {
915
+            $output .= AUI_Component_Helper::id( $args['id'] );
916
+        }
917
+
918
+        // title
919
+        if ( ! empty( $args['title'] ) ) {
920
+            $output .= AUI_Component_Helper::title( $args['title'] );
921
+        }
922
+
923
+        // data-attributes
924
+        $output .= AUI_Component_Helper::data_attributes( $args );
925
+
926
+        // aria-attributes
927
+        $output .= AUI_Component_Helper::aria_attributes( $args );
928
+
929
+        // extra attributes
930
+        if ( ! empty( $args['extra_attributes'] ) ) {
931
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
932
+        }
933
+
934
+        // required
935
+        if ( ! empty( $args['required'] ) ) {
936
+            $output .= ' required ';
937
+        }
938
+
939
+        // multiple
940
+        if ( ! empty( $args['multiple'] ) ) {
941
+            $output .= ' multiple ';
942
+        }
943
+
944
+        // close opening tag
945
+        $output .= ' >';
946
+
947
+        // placeholder
948
+        if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
949
+            $output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
950
+        } elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
951
+            $output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
952
+        }
953
+
954
+        // Options
955
+        if ( ! empty( $args['options'] ) ) {
956
+
957
+            if ( ! is_array( $args['options'] ) ) {
958
+                $output .= $args['options']; // not the preferred way but an option
959
+            } else {
960
+                foreach ( $args['options'] as $val => $name ) {
961
+                    $selected = '';
962
+                    if ( is_array( $name ) ) {
963
+                        if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
964
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
965
+
966
+                            $output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
967
+                        } else {
968
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
969
+                            $option_value = isset( $name['value'] ) ? $name['value'] : '';
970
+                            $extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
971
+                            if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
972
+                                $selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
973
+                            } elseif ( ! empty( $args['value'] ) ) {
974
+                                $selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
975
+                            } elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
976
+                                $selected = selected( $option_value, $args['value'], false );
977
+                            }
978
+
979
+                            $output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
980
+                        }
981
+                    } else {
982
+                        if ( ! empty( $args['value'] ) ) {
983
+                            if ( is_array( $args['value'] ) ) {
984
+                                $selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
985
+                            } elseif ( ! empty( $args['value'] ) ) {
986
+                                $selected = selected( $args['value'], $val, false );
987
+                            }
988
+                        } elseif ( $args['value'] === $val ) {
989
+                            $selected = selected( $args['value'], $val, false );
990
+                        }
991
+                        $output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
992
+                    }
993
+                }
994
+            }
995
+
996
+        }
997
+
998
+        // closing tag
999
+        $output .= '</select>';
1000
+
1001
+        $label = '';
1002
+        $help_text = '';
1003
+        // label
1004
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1005
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1006
+            $label_args = array(
1007
+                'title'      => $args['label'],
1008
+                'for'        => $args['id'],
1009
+                'class'      => $args['label_class'] . " ",
1010
+                'label_type' => $args['label_type'],
1011
+                'label_col'  => $args['label_col']
1012
+            );
1013
+            $label = self::label( $label_args );
1014
+        }
1015
+
1016
+        // help text
1017
+        if ( ! empty( $args['help_text'] ) ) {
1018
+            $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1019
+        }
1020
+
1021
+        // input group wraps
1022
+        if ( $args['input_group_left'] || $args['input_group_right'] ) {
1023
+            $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1024
+            if ( $args['input_group_left'] ) {
1025
+                $output = self::wrap( array(
1026
+                    'content'                 => $output,
1027
+                    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1028
+                    'input_group_left'        => $args['input_group_left'],
1029
+                    'input_group_left_inside' => $args['input_group_left_inside']
1030
+                ) );
1031
+            }
1032
+            if ( $args['input_group_right'] ) {
1033
+                $output = self::wrap( array(
1034
+                    'content'                  => $output,
1035
+                    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1036
+                    'input_group_right'        => $args['input_group_right'],
1037
+                    'input_group_right_inside' => $args['input_group_right_inside']
1038
+                ) );
1039
+            }
1040
+
1041
+        }
1042
+
1043
+        if ( ! $label_after ) {
1044
+            $output .= $help_text;
1045
+        }
1046
+
1047
+
1048
+        if ( $args['label_type'] == 'horizontal' ) {
1049
+            $output = self::wrap( array(
1050
+                'content' => $output,
1051
+                'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1052
+            ) );
1053
+        }
1054
+
1055
+        if ( ! $label_after ) {
1056
+            $output = $label . $output;
1057
+        }
1058
+
1059
+        // maybe horizontal label
1060 1060
 //		if ( $args['label_type'] == 'horizontal' ) {
1061 1061
 //			$output .= '</div>';
1062 1062
 //		}
1063 1063
 
1064 1064
 
1065
-		// wrap
1066
-		if ( ! $args['no_wrap'] ) {
1067
-			if ( ! empty( $args['form_group_class'] ) ) {
1068
-				$fg_class = esc_attr( $args['form_group_class'] );
1069
-			}else{
1070
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1071
-			}
1072
-			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1073
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1074
-			$output     = self::wrap( array(
1075
-				'content'         => $output,
1076
-				'class'           => $wrap_class,
1077
-				'element_require' => $args['element_require'],
1078
-				'argument_id'     => $args['id'],
1079
-				'wrap_attributes' => $args['wrap_attributes'],
1080
-			) );
1081
-		}
1082
-
1083
-
1084
-		return $output;
1085
-	}
1086
-
1087
-	/**
1088
-	 * Build the component.
1089
-	 *
1090
-	 * @param array $args
1091
-	 *
1092
-	 * @return string The rendered component.
1093
-	 */
1094
-	public static function radio( $args = array() ) {
1095
-		global $aui_bs5;
1096
-
1097
-		$defaults = array(
1098
-			'class'            => '',
1099
-			'wrap_class'       => '',
1100
-			'id'               => '',
1101
-			'title'            => '',
1102
-			'horizontal'       => false,
1103
-			// sets the lable horizontal
1104
-			'value'            => '',
1105
-			'label'            => '',
1106
-			'label_class'      => '',
1107
-			'label_type'       => '',
1108
-			'label_col'        => '',
1109
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1110
-			'help_text'        => '',
1111
-			'inline'           => true,
1112
-			'required'         => false,
1113
-			'options'          => array(),
1114
-			'icon'             => '',
1115
-			'no_wrap'          => false,
1116
-			'element_require'  => '',
1117
-			// [%element_id%] == "1"
1118
-			'extra_attributes' => array(),
1119
-			// an array of extra attributes
1120
-			'wrap_attributes'  => array()
1121
-		);
1122
-
1123
-		/**
1124
-		 * Parse incoming $args into an array and merge it with $defaults
1125
-		 */
1126
-		$args = wp_parse_args( $args, $defaults );
1127
-
1128
-		// for now lets use horizontal for floating
1129
-		if ( $args['label_type'] == 'floating' ) {
1130
-			$args['label_type'] = 'horizontal';
1131
-		}
1132
-
1133
-		$label_args = array(
1134
-			'title'      => $args['label'],
1135
-			'class'      => $args['label_class'] . " pt-0 ",
1136
-			'label_type' => $args['label_type'],
1137
-			'label_col'  => $args['label_col']
1138
-		);
1139
-
1140
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1141
-			$label_args['class'] .= 'd-block ';
1142
-
1143
-			if ( $args['label_type'] == 'hidden' ) {
1144
-				$label_args['class'] .= 'sr-only ';
1145
-			}
1146
-		}
1147
-
1148
-		$output = '';
1149
-
1150
-		// label before
1151
-		if ( ! empty( $args['label'] ) ) {
1152
-			$output .= self::label( $label_args, 'radio' );
1153
-		}
1154
-
1155
-		// maybe horizontal label
1156
-		if ( $args['label_type'] == 'horizontal' ) {
1157
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1158
-			$output .= '<div class="' . $input_col . '">';
1159
-		}
1160
-
1161
-		if ( ! empty( $args['options'] ) ) {
1162
-			$count = 0;
1163
-			foreach ( $args['options'] as $value => $label ) {
1164
-				$option_args            = $args;
1165
-				$option_args['value']   = $value;
1166
-				$option_args['label']   = $label;
1167
-				$option_args['checked'] = $value == $args['value'] ? true : false;
1168
-				$output .= self::radio_option( $option_args, $count );
1169
-				$count ++;
1170
-			}
1171
-		}
1172
-
1173
-		// help text
1174
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1175
-		$output .= $help_text;
1176
-
1177
-		// maybe horizontal label
1178
-		if ( $args['label_type'] == 'horizontal' ) {
1179
-			$output .= '</div>';
1180
-		}
1181
-
1182
-		// wrap
1183
-		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1184
-		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1185
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1186
-		$output     = self::wrap( array(
1187
-			'content'         => $output,
1188
-			'class'           => $wrap_class,
1189
-			'element_require' => $args['element_require'],
1190
-			'argument_id'     => $args['id'],
1191
-			'wrap_attributes' => $args['wrap_attributes'],
1192
-		) );
1193
-
1194
-
1195
-		return $output;
1196
-	}
1197
-
1198
-	/**
1199
-	 * Build the component.
1200
-	 *
1201
-	 * @param array $args
1202
-	 *
1203
-	 * @return string The rendered component.
1204
-	 */
1205
-	public static function radio_option( $args = array(), $count = '' ) {
1206
-		$defaults = array(
1207
-			'class'            => '',
1208
-			'id'               => '',
1209
-			'title'            => '',
1210
-			'value'            => '',
1211
-			'required'         => false,
1212
-			'inline'           => true,
1213
-			'label'            => '',
1214
-			'options'          => array(),
1215
-			'icon'             => '',
1216
-			'no_wrap'          => false,
1217
-			'extra_attributes' => array() // an array of extra attributes
1218
-		);
1219
-
1220
-		/**
1221
-		 * Parse incoming $args into an array and merge it with $defaults
1222
-		 */
1223
-		$args = wp_parse_args( $args, $defaults );
1224
-
1225
-		$output = '';
1226
-
1227
-		// open/type
1228
-		$output .= '<input type="radio"';
1229
-
1230
-		// class
1231
-		$output .= ' class="form-check-input" ';
1232
-
1233
-		// name
1234
-		if ( ! empty( $args['name'] ) ) {
1235
-			$output .= AUI_Component_Helper::name( $args['name'] );
1236
-		}
1237
-
1238
-		// id
1239
-		if ( ! empty( $args['id'] ) ) {
1240
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1241
-		}
1242
-
1243
-		// title
1244
-		if ( ! empty( $args['title'] ) ) {
1245
-			$output .= AUI_Component_Helper::title( $args['title'] );
1246
-		}
1247
-
1248
-		// value
1249
-		if ( isset( $args['value'] ) ) {
1250
-			$output .= AUI_Component_Helper::value( $args['value'] );
1251
-		}
1252
-
1253
-		// checked, for radio and checkboxes
1254
-		if ( $args['checked'] ) {
1255
-			$output .= ' checked ';
1256
-		}
1257
-
1258
-		// data-attributes
1259
-		$output .= AUI_Component_Helper::data_attributes( $args );
1260
-
1261
-		// aria-attributes
1262
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1263
-
1264
-		// extra attributes
1265
-		if ( ! empty( $args['extra_attributes'] ) ) {
1266
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1267
-		}
1268
-
1269
-		// required
1270
-		if ( ! empty( $args['required'] ) ) {
1271
-			$output .= ' required ';
1272
-		}
1273
-
1274
-		// close opening tag
1275
-		$output .= ' >';
1276
-
1277
-		// label
1278
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1279
-		} elseif ( ! empty( $args['label'] ) ) {
1280
-			$output .= self::label( array(
1281
-				'title' => $args['label'],
1282
-				'for'   => $args['id'] . $count,
1283
-				'class' => 'form-check-label'
1284
-			), 'radio' );
1285
-		}
1286
-
1287
-		// wrap
1288
-		if ( ! $args['no_wrap'] ) {
1289
-			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1290
-
1291
-			// Unique wrap class
1292
-			$uniq_class = 'fwrap';
1293
-			if ( ! empty( $args['name'] ) ) {
1294
-				$uniq_class .= '-' . $args['name'];
1295
-			} else if ( ! empty( $args['id'] ) ) {
1296
-				$uniq_class .= '-' . $args['id'];
1297
-			}
1298
-
1299
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1300
-				$uniq_class .= '-' . $args['value'];
1301
-			} else {
1302
-				$uniq_class .= '-' . $count;
1303
-			}
1304
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1305
-
1306
-			$output = self::wrap( array(
1307
-				'content' => $output,
1308
-				'class'   => $wrap_class
1309
-			) );
1310
-		}
1311
-
1312
-		return $output;
1313
-	}
1065
+        // wrap
1066
+        if ( ! $args['no_wrap'] ) {
1067
+            if ( ! empty( $args['form_group_class'] ) ) {
1068
+                $fg_class = esc_attr( $args['form_group_class'] );
1069
+            }else{
1070
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1071
+            }
1072
+            $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1073
+            $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1074
+            $output     = self::wrap( array(
1075
+                'content'         => $output,
1076
+                'class'           => $wrap_class,
1077
+                'element_require' => $args['element_require'],
1078
+                'argument_id'     => $args['id'],
1079
+                'wrap_attributes' => $args['wrap_attributes'],
1080
+            ) );
1081
+        }
1082
+
1083
+
1084
+        return $output;
1085
+    }
1086
+
1087
+    /**
1088
+     * Build the component.
1089
+     *
1090
+     * @param array $args
1091
+     *
1092
+     * @return string The rendered component.
1093
+     */
1094
+    public static function radio( $args = array() ) {
1095
+        global $aui_bs5;
1096
+
1097
+        $defaults = array(
1098
+            'class'            => '',
1099
+            'wrap_class'       => '',
1100
+            'id'               => '',
1101
+            'title'            => '',
1102
+            'horizontal'       => false,
1103
+            // sets the lable horizontal
1104
+            'value'            => '',
1105
+            'label'            => '',
1106
+            'label_class'      => '',
1107
+            'label_type'       => '',
1108
+            'label_col'        => '',
1109
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1110
+            'help_text'        => '',
1111
+            'inline'           => true,
1112
+            'required'         => false,
1113
+            'options'          => array(),
1114
+            'icon'             => '',
1115
+            'no_wrap'          => false,
1116
+            'element_require'  => '',
1117
+            // [%element_id%] == "1"
1118
+            'extra_attributes' => array(),
1119
+            // an array of extra attributes
1120
+            'wrap_attributes'  => array()
1121
+        );
1122
+
1123
+        /**
1124
+         * Parse incoming $args into an array and merge it with $defaults
1125
+         */
1126
+        $args = wp_parse_args( $args, $defaults );
1127
+
1128
+        // for now lets use horizontal for floating
1129
+        if ( $args['label_type'] == 'floating' ) {
1130
+            $args['label_type'] = 'horizontal';
1131
+        }
1132
+
1133
+        $label_args = array(
1134
+            'title'      => $args['label'],
1135
+            'class'      => $args['label_class'] . " pt-0 ",
1136
+            'label_type' => $args['label_type'],
1137
+            'label_col'  => $args['label_col']
1138
+        );
1139
+
1140
+        if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1141
+            $label_args['class'] .= 'd-block ';
1142
+
1143
+            if ( $args['label_type'] == 'hidden' ) {
1144
+                $label_args['class'] .= 'sr-only ';
1145
+            }
1146
+        }
1147
+
1148
+        $output = '';
1149
+
1150
+        // label before
1151
+        if ( ! empty( $args['label'] ) ) {
1152
+            $output .= self::label( $label_args, 'radio' );
1153
+        }
1154
+
1155
+        // maybe horizontal label
1156
+        if ( $args['label_type'] == 'horizontal' ) {
1157
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1158
+            $output .= '<div class="' . $input_col . '">';
1159
+        }
1160
+
1161
+        if ( ! empty( $args['options'] ) ) {
1162
+            $count = 0;
1163
+            foreach ( $args['options'] as $value => $label ) {
1164
+                $option_args            = $args;
1165
+                $option_args['value']   = $value;
1166
+                $option_args['label']   = $label;
1167
+                $option_args['checked'] = $value == $args['value'] ? true : false;
1168
+                $output .= self::radio_option( $option_args, $count );
1169
+                $count ++;
1170
+            }
1171
+        }
1172
+
1173
+        // help text
1174
+        $help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1175
+        $output .= $help_text;
1176
+
1177
+        // maybe horizontal label
1178
+        if ( $args['label_type'] == 'horizontal' ) {
1179
+            $output .= '</div>';
1180
+        }
1181
+
1182
+        // wrap
1183
+        $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1184
+        $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1185
+        $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1186
+        $output     = self::wrap( array(
1187
+            'content'         => $output,
1188
+            'class'           => $wrap_class,
1189
+            'element_require' => $args['element_require'],
1190
+            'argument_id'     => $args['id'],
1191
+            'wrap_attributes' => $args['wrap_attributes'],
1192
+        ) );
1193
+
1194
+
1195
+        return $output;
1196
+    }
1197
+
1198
+    /**
1199
+     * Build the component.
1200
+     *
1201
+     * @param array $args
1202
+     *
1203
+     * @return string The rendered component.
1204
+     */
1205
+    public static function radio_option( $args = array(), $count = '' ) {
1206
+        $defaults = array(
1207
+            'class'            => '',
1208
+            'id'               => '',
1209
+            'title'            => '',
1210
+            'value'            => '',
1211
+            'required'         => false,
1212
+            'inline'           => true,
1213
+            'label'            => '',
1214
+            'options'          => array(),
1215
+            'icon'             => '',
1216
+            'no_wrap'          => false,
1217
+            'extra_attributes' => array() // an array of extra attributes
1218
+        );
1219
+
1220
+        /**
1221
+         * Parse incoming $args into an array and merge it with $defaults
1222
+         */
1223
+        $args = wp_parse_args( $args, $defaults );
1224
+
1225
+        $output = '';
1226
+
1227
+        // open/type
1228
+        $output .= '<input type="radio"';
1229
+
1230
+        // class
1231
+        $output .= ' class="form-check-input" ';
1232
+
1233
+        // name
1234
+        if ( ! empty( $args['name'] ) ) {
1235
+            $output .= AUI_Component_Helper::name( $args['name'] );
1236
+        }
1237
+
1238
+        // id
1239
+        if ( ! empty( $args['id'] ) ) {
1240
+            $output .= AUI_Component_Helper::id( $args['id'] . $count );
1241
+        }
1242
+
1243
+        // title
1244
+        if ( ! empty( $args['title'] ) ) {
1245
+            $output .= AUI_Component_Helper::title( $args['title'] );
1246
+        }
1247
+
1248
+        // value
1249
+        if ( isset( $args['value'] ) ) {
1250
+            $output .= AUI_Component_Helper::value( $args['value'] );
1251
+        }
1252
+
1253
+        // checked, for radio and checkboxes
1254
+        if ( $args['checked'] ) {
1255
+            $output .= ' checked ';
1256
+        }
1257
+
1258
+        // data-attributes
1259
+        $output .= AUI_Component_Helper::data_attributes( $args );
1260
+
1261
+        // aria-attributes
1262
+        $output .= AUI_Component_Helper::aria_attributes( $args );
1263
+
1264
+        // extra attributes
1265
+        if ( ! empty( $args['extra_attributes'] ) ) {
1266
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1267
+        }
1268
+
1269
+        // required
1270
+        if ( ! empty( $args['required'] ) ) {
1271
+            $output .= ' required ';
1272
+        }
1273
+
1274
+        // close opening tag
1275
+        $output .= ' >';
1276
+
1277
+        // label
1278
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1279
+        } elseif ( ! empty( $args['label'] ) ) {
1280
+            $output .= self::label( array(
1281
+                'title' => $args['label'],
1282
+                'for'   => $args['id'] . $count,
1283
+                'class' => 'form-check-label'
1284
+            ), 'radio' );
1285
+        }
1286
+
1287
+        // wrap
1288
+        if ( ! $args['no_wrap'] ) {
1289
+            $wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1290
+
1291
+            // Unique wrap class
1292
+            $uniq_class = 'fwrap';
1293
+            if ( ! empty( $args['name'] ) ) {
1294
+                $uniq_class .= '-' . $args['name'];
1295
+            } else if ( ! empty( $args['id'] ) ) {
1296
+                $uniq_class .= '-' . $args['id'];
1297
+            }
1298
+
1299
+            if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1300
+                $uniq_class .= '-' . $args['value'];
1301
+            } else {
1302
+                $uniq_class .= '-' . $count;
1303
+            }
1304
+            $wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1305
+
1306
+            $output = self::wrap( array(
1307
+                'content' => $output,
1308
+                'class'   => $wrap_class
1309
+            ) );
1310
+        }
1311
+
1312
+        return $output;
1313
+    }
1314 1314
 
1315 1315
 }
1316 1316
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +313 added lines, -313 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
 	exit; // Exit if accessed directly
5 5
 }
6 6
 
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 	 *
19 19
 	 * @return string The rendered component.
20 20
 	 */
21
-	public static function input( $args = array() ) {
21
+	public static function input($args = array()) {
22 22
 		global $aui_bs5;
23 23
 
24 24
 		$defaults = array(
@@ -69,13 +69,13 @@  discard block
 block discarded – undo
69 69
 		/**
70 70
 		 * Parse incoming $args into an array and merge it with $defaults
71 71
 		 */
72
-		$args   = wp_parse_args( $args, $defaults );
72
+		$args   = wp_parse_args($args, $defaults);
73 73
 		$output = '';
74
-		if ( ! empty( $args['type'] ) ) {
74
+		if (!empty($args['type'])) {
75 75
 			// hidden label option needs to be empty
76 76
 			$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77 77
 
78
-			$type = sanitize_html_class( $args['type'] );
78
+			$type = sanitize_html_class($args['type']);
79 79
 
80 80
 			$help_text   = '';
81 81
 			$label       = '';
@@ -89,17 +89,17 @@  discard block
 block discarded – undo
89 89
 			);
90 90
 
91 91
 			// floating labels need label after
92
-			if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
92
+			if ($args['label_type'] == 'floating' && $type != 'checkbox') {
93 93
 				$label_after         = true;
94 94
 				$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95 95
 			}
96 96
 
97 97
 			// size
98 98
 			$size = '';
99
-			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
99
+			if ($args['size'] == 'lg' || $args['size'] == 'large') {
100 100
 				$size = 'lg';
101 101
 				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
102
+			}elseif ($args['size'] == 'sm' || $args['size'] == 'small') {
103 103
 				$size = 'sm';
104 104
 				$args['class'] .= ' form-control-sm';
105 105
 			}
@@ -108,28 +108,28 @@  discard block
 block discarded – undo
108 108
 			$clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109 109
 
110 110
 			// Some special sauce for files
111
-			if ( $type == 'file' ) {
111
+			if ($type == 'file') {
112 112
 				$label_after = true; // if type file we need the label after
113 113
 				$args['class'] .= ' custom-file-input ';
114
-			} elseif ( $type == 'checkbox' ) {
114
+			} elseif ($type == 'checkbox') {
115 115
 				$label_after = true; // if type file we need the label after
116 116
 				$args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
-			} elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
117
+			} elseif ($type == 'datepicker' || $type == 'timepicker') {
118 118
 				$orig_type = $type;
119 119
 				$type = 'text';
120 120
 				$args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
-				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
121
+				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr($args['name']) . "\']').trigger('change');";
122 122
 
123 123
 				$args['extra_attributes']['data-aui-init'] = 'flatpickr';
124 124
 
125 125
 				// Disable native datetime inputs.
126
-				$disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
-				$disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
126
+				$disable_mobile_attr = isset($args['extra_attributes']['data-disable-mobile']) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
+				$disable_mobile_attr = apply_filters('aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args);
128 128
 
129 129
 				$args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130 130
 
131 131
 				// set a way to clear field if empty
132
-				if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
132
+				if ($args['input_group_right'] === '' && $args['clear_icon'] !== false) {
133 133
 					$args['input_group_right_inside'] = true;
134 134
 					$args['clear_icon'] = true;
135 135
 				}
@@ -137,7 +137,7 @@  discard block
 block discarded – undo
137 137
 				// enqueue the script
138 138
 				$aui_settings = AyeCode_UI_Settings::instance();
139 139
 				$aui_settings->enqueue_flatpickr();
140
-			} elseif ( $type == 'iconpicker' ) {
140
+			} elseif ($type == 'iconpicker') {
141 141
 				$type = 'text';
142 142
 				//$args['class'] .= ' aui-flatpickr bg-initial ';
143 143
 //				$args['class'] .= ' bg-initial ';
@@ -152,104 +152,104 @@  discard block
 block discarded – undo
152 152
 				$aui_settings->enqueue_iconpicker();
153 153
 			}
154 154
 
155
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
155
+			if ($type == 'checkbox' && ((!empty($args['name']) && strpos($args['name'], '[') === false) || !empty($args['with_hidden']))) {
156
+				$output .= '<input type="hidden" name="' . esc_attr($args['name']) . '" value="0" />';
157 157
 			}
158 158
 
159 159
 			// allow clear icon
160
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
160
+			if ($args['input_group_right'] === '' && $args['clear_icon']) {
161
+				$font_size = $size == 'sm' ? '1.3' : ($size == 'lg' ? '1.65' : '1.5');
162 162
 				$args['input_group_right_inside'] = true;
163 163
 				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
-				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
164
+				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ($aui_bs5 ? 'btn-close' : 'close') . '">' . ($aui_bs5 ? '' : '&times;') . '</span></span>';
165 165
 			}
166 166
 
167 167
 			// open/type
168 168
 			$output .= '<input type="' . $type . '" ';
169 169
 
170 170
 			// name
171
-			if ( ! empty( $args['name'] ) ) {
172
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
171
+			if (!empty($args['name'])) {
172
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
173 173
 			}
174 174
 
175 175
 			// id
176
-			if ( ! empty( $args['id'] ) ) {
177
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
176
+			if (!empty($args['id'])) {
177
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
178 178
 			}
179 179
 
180 180
 			// placeholder
181
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
181
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
182
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
183 183
 			}
184 184
 
185 185
 			// title
186
-			if ( ! empty( $args['title'] ) ) {
187
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
186
+			if (!empty($args['title'])) {
187
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
188 188
 			}
189 189
 
190 190
 			// value
191
-			if ( ! empty( $args['value'] ) ) {
192
-				$output .= AUI_Component_Helper::value( $args['value'] );
191
+			if (!empty($args['value'])) {
192
+				$output .= AUI_Component_Helper::value($args['value']);
193 193
 			}
194 194
 
195 195
 			// checked, for radio and checkboxes
196
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
196
+			if (($type == 'checkbox' || $type == 'radio') && $args['checked']) {
197 197
 				$output .= ' checked ';
198 198
 			}
199 199
 
200 200
 			// validation text
201
-			if ( ! empty( $args['validation_text'] ) ) {
202
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
201
+			if (!empty($args['validation_text'])) {
202
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
203 203
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204 204
 			}
205 205
 
206 206
 			// validation_pattern
207
-			if ( ! empty( $args['validation_pattern'] ) ) {
208
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
207
+			if (!empty($args['validation_pattern'])) {
208
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
209 209
 			}
210 210
 
211 211
 			// step (for numbers)
212
-			if ( ! empty( $args['step'] ) ) {
212
+			if (!empty($args['step'])) {
213 213
 				$output .= ' step="' . $args['step'] . '" ';
214 214
 			}
215 215
 
216 216
 			// required
217
-			if ( ! empty( $args['required'] ) ) {
217
+			if (!empty($args['required'])) {
218 218
 				$output .= ' required ';
219 219
 			}
220 220
 
221 221
 			// class
222
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
222
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
223
+			$output .= $aui_bs5 && $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224 224
 
225 225
 			// data-attributes
226
-			$output .= AUI_Component_Helper::data_attributes( $args );
226
+			$output .= AUI_Component_Helper::data_attributes($args);
227 227
 
228 228
 			// extra attributes
229
-			if ( ! empty( $args['extra_attributes'] ) ) {
230
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
229
+			if (!empty($args['extra_attributes'])) {
230
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
231 231
 			}
232 232
 
233 233
 			// close
234 234
 			$output .= ' >';
235 235
 
236 236
 			// help text
237
-			if ( ! empty( $args['help_text'] ) ) {
238
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
237
+			if (!empty($args['help_text'])) {
238
+				$help_text = AUI_Component_Helper::help_text($args['help_text']);
239 239
 			}
240 240
 
241 241
 			// label
242
-			if ( ! empty( $args['label'] ) ) {
242
+			if (!empty($args['label'])) {
243 243
 				$label_base_class = '';
244
-				if ( $type == 'file' ) {
244
+				if ($type == 'file') {
245 245
 					$label_base_class = ' custom-file-label';
246
-				} elseif ( $type == 'checkbox' ) {
247
-					if ( ! empty( $args['label_force_left'] ) ) {
248
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
246
+				} elseif ($type == 'checkbox') {
247
+					if (!empty($args['label_force_left'])) {
248
+						$label_args['title'] = wp_kses_post($args['help_text']);
249 249
 						$help_text = '';
250 250
 						//$label_args['class'] .= ' d-inline ';
251 251
 						$args['wrap_class'] .= ' align-items-center ';
252
-					}else{
252
+					} else {
253 253
 
254 254
 					}
255 255
 
@@ -257,49 +257,49 @@  discard block
 block discarded – undo
257 257
 				}
258 258
 				$label_args['class'] .= $label_base_class;
259 259
 				$temp_label_args = $label_args;
260
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
-				$label = self::label( $temp_label_args, $type );
260
+				if (!empty($args['label_force_left'])) {$temp_label_args['class'] = $label_base_class . " text-muted"; }
261
+				$label = self::label($temp_label_args, $type);
262 262
 			}
263 263
 
264 264
 
265 265
 
266 266
 
267 267
 			// set help text in the correct position
268
-			if ( $label_after ) {
268
+			if ($label_after) {
269 269
 				$output .= $label . $help_text;
270 270
 			}
271 271
 
272 272
 			// some input types need a separate wrap
273
-			if ( $type == 'file' ) {
274
-				$output = self::wrap( array(
273
+			if ($type == 'file') {
274
+				$output = self::wrap(array(
275 275
 					'content' => $output,
276 276
 					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
-				) );
278
-			} elseif ( $type == 'checkbox' ) {
277
+				));
278
+			} elseif ($type == 'checkbox') {
279 279
 
280 280
 				$label_args['title'] = $args['label'];
281
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
-				if ( $aui_bs5 ) {
281
+				$label_col = AUI_Component_Helper::get_column_class($args['label_col'], 'label');
282
+				$label = !empty($args['label_force_left']) ? self::label($label_args, 'cb') : '<div class="' . $label_col . ' col-form-label"></div>';
283
+				$switch_size_class = $args['switch'] && !is_bool($args['switch']) ? ' custom-switch-' . esc_attr($args['switch']) : '';
284
+				if ($aui_bs5) {
285 285
 					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
-				}else{
287
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
286
+				} else {
287
+					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class : 'custom-checkbox';
288 288
 				}
289
-				if ( ! empty( $args['label_force_left'] ) ) {
289
+				if (!empty($args['label_force_left'])) {
290 290
 					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
291
+					$label = str_replace(array("form-check-label", "custom-control-label"), "", self::label($label_args, 'cb'));
292 292
 				}
293
-				$output     = self::wrap( array(
293
+				$output = self::wrap(array(
294 294
 					'content' => $output,
295 295
 					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
-				) );
296
+				));
297 297
 
298
-				if ( $args['label_type'] == 'horizontal' ) {
299
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
298
+				if ($args['label_type'] == 'horizontal') {
299
+					$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
300 300
 					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301 301
 				}
302
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
302
+			} elseif ($type == 'password' && $args['password_toggle'] && !$args['input_group_right']) {
303 303
 
304 304
 
305 305
 				// allow password field to toggle view
@@ -313,70 +313,70 @@  discard block
 block discarded – undo
313 313
 			}
314 314
 
315 315
 			// input group wraps
316
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
316
+			if ($args['input_group_left'] || $args['input_group_right']) {
317
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
318 318
 				$group_size = $size == 'lg' ? ' input-group-lg' : '';
319 319
 				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320 320
 
321
-				if ( $args['input_group_left'] ) {
322
-					$output = self::wrap( array(
321
+				if ($args['input_group_left']) {
322
+					$output = self::wrap(array(
323 323
 						'content'                 => $output,
324 324
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325 325
 						'input_group_left'        => $args['input_group_left'],
326 326
 						'input_group_left_inside' => $args['input_group_left_inside']
327
-					) );
327
+					));
328 328
 				}
329
-				if ( $args['input_group_right'] ) {
330
-					$output = self::wrap( array(
329
+				if ($args['input_group_right']) {
330
+					$output = self::wrap(array(
331 331
 						'content'                  => $output,
332 332
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333 333
 						'input_group_right'        => $args['input_group_right'],
334 334
 						'input_group_right_inside' => $args['input_group_right_inside']
335
-					) );
335
+					));
336 336
 				}
337 337
 
338 338
 			}
339 339
 
340
-			if ( ! $label_after ) {
340
+			if (!$label_after) {
341 341
 				$output .= $help_text;
342 342
 			}
343 343
 
344 344
 
345
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
-				$output = self::wrap( array(
345
+			if ($args['label_type'] == 'horizontal' && $type != 'checkbox') {
346
+				$output = self::wrap(array(
347 347
 					'content' => $output,
348
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
-				) );
348
+					'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
349
+				));
350 350
 			}
351 351
 
352
-			if ( ! $label_after ) {
352
+			if (!$label_after) {
353 353
 				$output = $label . $output;
354 354
 			}
355 355
 
356 356
 			// wrap
357
-			if ( ! $args['no_wrap'] ) {
358
-				if ( ! empty( $args['form_group_class'] ) ) {
359
-					$fg_class = esc_attr( $args['form_group_class'] );
360
-				}else{
357
+			if (!$args['no_wrap']) {
358
+				if (!empty($args['form_group_class'])) {
359
+					$fg_class = esc_attr($args['form_group_class']);
360
+				} else {
361 361
 					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362 362
 				}
363 363
 				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364 364
 				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
-				$output           = self::wrap( array(
365
+				$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
+				$output           = self::wrap(array(
367 367
 					'content'         => $output,
368 368
 					'class'           => $wrap_class,
369 369
 					'element_require' => $args['element_require'],
370 370
 					'argument_id'     => $args['id'],
371 371
 					'wrap_attributes' => $args['wrap_attributes'],
372
-				) );
372
+				));
373 373
 			}
374 374
 		}
375 375
 
376 376
 		return $output;
377 377
 	}
378 378
 
379
-	public static function label( $args = array(), $type = '' ) {
379
+	public static function label($args = array(), $type = '') {
380 380
 		global $aui_bs5;
381 381
 		//<label for="exampleInputEmail1">Email address</label>
382 382
 		$defaults = array(
@@ -390,35 +390,35 @@  discard block
 block discarded – undo
390 390
 		/**
391 391
 		 * Parse incoming $args into an array and merge it with $defaults
392 392
 		 */
393
-		$args   = wp_parse_args( $args, $defaults );
393
+		$args   = wp_parse_args($args, $defaults);
394 394
 		$output = '';
395 395
 
396
-		if ( $args['title'] ) {
396
+		if ($args['title']) {
397 397
 
398 398
 			// maybe hide labels //@todo set a global option for visibility class
399
-			if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
399
+			if ($type == 'file' || $type == 'checkbox' || $type == 'radio' || !empty($args['label_type'])) {
400 400
 				$class = $args['class'];
401 401
 			} else {
402 402
 				$class = 'sr-only ' . $args['class'];
403 403
 			}
404 404
 
405 405
 			// maybe horizontal
406
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
-				$class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label '.$type;
406
+			if ($args['label_type'] == 'horizontal' && $type != 'checkbox') {
407
+				$class .= ' ' . AUI_Component_Helper::get_column_class($args['label_col'], 'label') . ' col-form-label ' . $type;
408 408
 			}
409 409
 
410
-			if( $aui_bs5 ){ $class .= ' form-label'; }
410
+			if ($aui_bs5) { $class .= ' form-label'; }
411 411
 
412 412
 			// open
413 413
 			$output .= '<label ';
414 414
 
415 415
 			// for
416
-			if ( ! empty( $args['for'] ) ) {
417
-				$output .= ' for="' . esc_attr( $args['for'] ) . '" ';
416
+			if (!empty($args['for'])) {
417
+				$output .= ' for="' . esc_attr($args['for']) . '" ';
418 418
 			}
419 419
 
420 420
 			// class
421
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
421
+			$class = $class ? AUI_Component_Helper::esc_classes($class) : '';
422 422
 			$output .= ' class="' . $class . '" ';
423 423
 
424 424
 			// close
@@ -426,8 +426,8 @@  discard block
 block discarded – undo
426 426
 
427 427
 
428 428
 			// title, don't escape fully as can contain html
429
-			if ( ! empty( $args['title'] ) ) {
430
-				$output .= wp_kses_post( $args['title'] );
429
+			if (!empty($args['title'])) {
430
+				$output .= wp_kses_post($args['title']);
431 431
 			}
432 432
 
433 433
 			// close wrap
@@ -447,7 +447,7 @@  discard block
 block discarded – undo
447 447
 	 *
448 448
 	 * @return string
449 449
 	 */
450
-	public static function wrap( $args = array() ) {
450
+	public static function wrap($args = array()) {
451 451
 		global $aui_bs5;
452 452
 		$defaults = array(
453 453
 			'type'                     => 'div',
@@ -465,31 +465,31 @@  discard block
 block discarded – undo
465 465
 		/**
466 466
 		 * Parse incoming $args into an array and merge it with $defaults
467 467
 		 */
468
-		$args   = wp_parse_args( $args, $defaults );
468
+		$args   = wp_parse_args($args, $defaults);
469 469
 		$output = '';
470
-		if ( $args['type'] ) {
470
+		if ($args['type']) {
471 471
 
472 472
 			// open
473
-			$output .= '<' . sanitize_html_class( $args['type'] );
473
+			$output .= '<' . sanitize_html_class($args['type']);
474 474
 
475 475
 			// element require
476
-			if ( ! empty( $args['element_require'] ) ) {
477
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
+			if (!empty($args['element_require'])) {
477
+				$output .= AUI_Component_Helper::element_require($args['element_require']);
478 478
 				$args['class'] .= " aui-conditional-field";
479 479
 			}
480 480
 
481 481
 			// argument_id
482
-			if ( ! empty( $args['argument_id'] ) ) {
483
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
+			if (!empty($args['argument_id'])) {
483
+				$output .= ' data-argument="' . esc_attr($args['argument_id']) . '"';
484 484
 			}
485 485
 
486 486
 			// class
487
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
487
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
488 488
 			$output .= ' class="' . $class . '" ';
489 489
 
490 490
 			// Attributes
491
-			if ( ! empty( $args['wrap_attributes'] ) ) {
492
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
+			if (!empty($args['wrap_attributes'])) {
492
+				$output .= AUI_Component_Helper::extra_attributes($args['wrap_attributes']);
493 493
 			}
494 494
 
495 495
 			// close wrap
@@ -497,9 +497,9 @@  discard block
 block discarded – undo
497 497
 
498 498
 
499 499
 			// Input group left
500
-			if ( ! empty( $args['input_group_left'] ) ) {
501
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
500
+			if (!empty($args['input_group_left'])) {
501
+				$position_class   = !empty($args['input_group_left_inside']) ? 'position-absolute h-100' : '';
502
+				$input_group_left = strpos($args['input_group_left'], '<') !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503 503
 				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504 504
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505 505
 			}
@@ -508,16 +508,16 @@  discard block
 block discarded – undo
508 508
 			$output .= $args['content'];
509 509
 
510 510
 			// Input group right
511
-			if ( ! empty( $args['input_group_right'] ) ) {
512
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
-				$output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
511
+			if (!empty($args['input_group_right'])) {
512
+				$position_class    = !empty($args['input_group_right_inside']) ? 'position-absolute h-100' : '';
513
+				$input_group_right = strpos($args['input_group_right'], '<') !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
+				$output .= $aui_bs5 ? str_replace('input-group-text', 'input-group-text top-0 end-0', $input_group_right) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
515 515
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516 516
 			}
517 517
 
518 518
 
519 519
 			// close wrap
520
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
520
+			$output .= '</' . sanitize_html_class($args['type']) . '>';
521 521
 
522 522
 
523 523
 		} else {
@@ -534,7 +534,7 @@  discard block
 block discarded – undo
534 534
 	 *
535 535
 	 * @return string The rendered component.
536 536
 	 */
537
-	public static function textarea( $args = array() ) {
537
+	public static function textarea($args = array()) {
538 538
 		global $aui_bs5;
539 539
 
540 540
 		$defaults = array(
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
 		/**
575 575
 		 * Parse incoming $args into an array and merge it with $defaults
576 576
 		 */
577
-		$args   = wp_parse_args( $args, $defaults );
577
+		$args   = wp_parse_args($args, $defaults);
578 578
 		$output = '';
579 579
 		$label = '';
580 580
 
@@ -582,21 +582,21 @@  discard block
 block discarded – undo
582 582
 		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583 583
 
584 584
 		// floating labels don't work with wysiwyg so set it as top
585
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
585
+		if ($args['label_type'] == 'floating' && !empty($args['wysiwyg'])) {
586 586
 			$args['label_type'] = 'top';
587 587
 		}
588 588
 
589 589
 		$label_after = $args['label_after'];
590 590
 
591 591
 		// floating labels need label after
592
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
592
+		if ($args['label_type'] == 'floating' && empty($args['wysiwyg'])) {
593 593
 			$label_after         = true;
594 594
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595 595
 		}
596 596
 
597 597
 		// label
598
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
+		if (!empty($args['label']) && is_array($args['label'])) {
599
+		} elseif (!empty($args['label']) && !$label_after) {
600 600
 			$label_args = array(
601 601
 				'title'      => $args['label'],
602 602
 				'for'        => $args['id'],
@@ -604,34 +604,34 @@  discard block
 block discarded – undo
604 604
 				'label_type' => $args['label_type'],
605 605
 				'label_col'  => $args['label_col']
606 606
 			);
607
-			$label .= self::label( $label_args );
607
+			$label .= self::label($label_args);
608 608
 		}
609 609
 
610 610
 		// maybe horizontal label
611
-		if ( $args['label_type'] == 'horizontal' ) {
612
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
+		if ($args['label_type'] == 'horizontal') {
612
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
613 613
 			$label .= '<div class="' . $input_col . '">';
614 614
 		}
615 615
 
616
-		if ( ! empty( $args['wysiwyg'] ) ) {
616
+		if (!empty($args['wysiwyg'])) {
617 617
 			ob_start();
618 618
 			$content   = $args['value'];
619
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
619
+			$editor_id = !empty($args['id']) ? sanitize_html_class($args['id']) : 'wp_editor';
620 620
 			$settings  = array(
621
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
621
+				'textarea_rows' => !empty(absint($args['rows'])) ? absint($args['rows']) : 4,
622 622
 				'quicktags'     => false,
623 623
 				'media_buttons' => false,
624 624
 				'editor_class'  => 'form-control',
625
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
625
+				'textarea_name' => !empty($args['name']) ? sanitize_html_class($args['name']) : sanitize_html_class($args['id']),
626 626
 				'teeny'         => true,
627 627
 			);
628 628
 
629 629
 			// maybe set settings if array
630
-			if ( is_array( $args['wysiwyg'] ) ) {
631
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
630
+			if (is_array($args['wysiwyg'])) {
631
+				$settings = wp_parse_args($args['wysiwyg'], $settings);
632 632
 			}
633 633
 
634
-			wp_editor( $content, $editor_id, $settings );
634
+			wp_editor($content, $editor_id, $settings);
635 635
 			$output .= ob_get_clean();
636 636
 		} else {
637 637
 
@@ -639,65 +639,65 @@  discard block
 block discarded – undo
639 639
 			$output .= '<textarea ';
640 640
 
641 641
 			// name
642
-			if ( ! empty( $args['name'] ) ) {
643
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
+			if (!empty($args['name'])) {
643
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
644 644
 			}
645 645
 
646 646
 			// id
647
-			if ( ! empty( $args['id'] ) ) {
648
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
+			if (!empty($args['id'])) {
648
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
649 649
 			}
650 650
 
651 651
 			// placeholder
652
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
653
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
654 654
 			}
655 655
 
656 656
 			// title
657
-			if ( ! empty( $args['title'] ) ) {
658
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
+			if (!empty($args['title'])) {
658
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
659 659
 			}
660 660
 
661 661
 			// validation text
662
-			if ( ! empty( $args['validation_text'] ) ) {
663
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
+			if (!empty($args['validation_text'])) {
663
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
664 664
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665 665
 			}
666 666
 
667 667
 			// validation_pattern
668
-			if ( ! empty( $args['validation_pattern'] ) ) {
669
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
+			if (!empty($args['validation_pattern'])) {
669
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
670 670
 			}
671 671
 
672 672
 			// required
673
-			if ( ! empty( $args['required'] ) ) {
673
+			if (!empty($args['required'])) {
674 674
 				$output .= ' required ';
675 675
 			}
676 676
 
677 677
 			// rows
678
-			if ( ! empty( $args['rows'] ) ) {
679
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
+			if (!empty($args['rows'])) {
679
+				$output .= ' rows="' . absint($args['rows']) . '" ';
680 680
 			}
681 681
 
682 682
 
683 683
 			// class
684
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
684
+			$class = !empty($args['class']) ? $args['class'] : '';
685 685
 			$output .= ' class="form-control ' . $class . '" ';
686 686
 
687 687
 			// extra attributes
688
-			if ( ! empty( $args['extra_attributes'] ) ) {
689
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
+			if (!empty($args['extra_attributes'])) {
689
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
690 690
 			}
691 691
 
692 692
 			// close tag
693 693
 			$output .= ' >';
694 694
 
695 695
 			// value
696
-			if ( ! empty( $args['value'] ) ) {
697
-				if ( ! empty( $args['allow_tags'] ) ) {
698
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
696
+			if (!empty($args['value'])) {
697
+				if (!empty($args['allow_tags'])) {
698
+					$output .= AUI_Component_Helper::sanitize_html_field($args['value'], $args); // Sanitize HTML.
699 699
 				} else {
700
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
700
+					$output .= AUI_Component_Helper::sanitize_textarea_field($args['value']);
701 701
 				}
702 702
 			}
703 703
 
@@ -706,23 +706,23 @@  discard block
 block discarded – undo
706 706
 
707 707
 
708 708
 			// input group wraps
709
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
-				if ( $args['input_group_left'] ) {
712
-					$output = self::wrap( array(
709
+			if ($args['input_group_left'] || $args['input_group_right']) {
710
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
711
+				if ($args['input_group_left']) {
712
+					$output = self::wrap(array(
713 713
 						'content'                 => $output,
714 714
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715 715
 						'input_group_left'        => $args['input_group_left'],
716 716
 						'input_group_left_inside' => $args['input_group_left_inside']
717
-					) );
717
+					));
718 718
 				}
719
-				if ( $args['input_group_right'] ) {
720
-					$output = self::wrap( array(
719
+				if ($args['input_group_right']) {
720
+					$output = self::wrap(array(
721 721
 						'content'                  => $output,
722 722
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723 723
 						'input_group_right'        => $args['input_group_right'],
724 724
 						'input_group_right_inside' => $args['input_group_right_inside']
725
-					) );
725
+					));
726 726
 				}
727 727
 
728 728
 			}
@@ -730,7 +730,7 @@  discard block
 block discarded – undo
730 730
 
731 731
 		}
732 732
 
733
-		if ( ! empty( $args['label'] ) && $label_after ) {
733
+		if (!empty($args['label']) && $label_after) {
734 734
 			$label_args = array(
735 735
 				'title'      => $args['label'],
736 736
 				'for'        => $args['id'],
@@ -738,41 +738,41 @@  discard block
 block discarded – undo
738 738
 				'label_type' => $args['label_type'],
739 739
 				'label_col'  => $args['label_col']
740 740
 			);
741
-			$output .= self::label( $label_args );
741
+			$output .= self::label($label_args);
742 742
 		}
743 743
 
744 744
 		// help text
745
-		if ( ! empty( $args['help_text'] ) ) {
746
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
+		if (!empty($args['help_text'])) {
746
+			$output .= AUI_Component_Helper::help_text($args['help_text']);
747 747
 		}
748 748
 
749
-		if ( ! $label_after ) {
749
+		if (!$label_after) {
750 750
 			$output = $label . $output;
751 751
 		}
752 752
 
753 753
 		// maybe horizontal label
754
-		if ( $args['label_type'] == 'horizontal' ) {
754
+		if ($args['label_type'] == 'horizontal') {
755 755
 			$output .= '</div>';
756 756
 		}
757 757
 
758 758
 
759 759
 		// wrap
760
-		if ( ! $args['no_wrap'] ) {
761
-			if ( ! empty( $args['form_group_class'] ) ) {
762
-				$fg_class = esc_attr( $args['form_group_class'] );
763
-			}else{
760
+		if (!$args['no_wrap']) {
761
+			if (!empty($args['form_group_class'])) {
762
+				$fg_class = esc_attr($args['form_group_class']);
763
+			} else {
764 764
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765 765
 			}
766 766
 			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767 767
 			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
-			$output           = self::wrap( array(
768
+			$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
+			$output           = self::wrap(array(
770 770
 				'content'         => $output,
771 771
 				'class'           => $wrap_class,
772 772
 				'element_require' => $args['element_require'],
773 773
 				'argument_id'     => $args['id'],
774 774
 				'wrap_attributes' => $args['wrap_attributes'],
775
-			) );
775
+			));
776 776
 		}
777 777
 
778 778
 
@@ -786,7 +786,7 @@  discard block
 block discarded – undo
786 786
 	 *
787 787
 	 * @return string The rendered component.
788 788
 	 */
789
-	public static function select( $args = array() ) {
789
+	public static function select($args = array()) {
790 790
 		global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
791 791
 
792 792
 		$defaults = array(
@@ -826,11 +826,11 @@  discard block
 block discarded – undo
826 826
 		/**
827 827
 		 * Parse incoming $args into an array and merge it with $defaults
828 828
 		 */
829
-		$args   = wp_parse_args( $args, $defaults );
829
+		$args   = wp_parse_args($args, $defaults);
830 830
 		$output = '';
831 831
 
832 832
 		// for now lets hide floating labels
833
-		if ( $args['label_type'] == 'floating' ) {
833
+		if ($args['label_type'] == 'floating') {
834 834
 			$args['label_type'] = 'hidden';
835 835
 		}
836 836
 
@@ -841,26 +841,26 @@  discard block
 block discarded – undo
841 841
 		$label_after = $args['label_after'];
842 842
 
843 843
 		// floating labels need label after
844
-		if ( $args['label_type'] == 'floating' ) {
844
+		if ($args['label_type'] == 'floating') {
845 845
 			$label_after         = true;
846 846
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
847 847
 		}
848 848
 
849 849
 		// Maybe setup select2
850 850
 		$is_select2 = false;
851
-		if ( ! empty( $args['select2'] ) ) {
851
+		if (!empty($args['select2'])) {
852 852
 			$args['class'] .= ' aui-select2';
853 853
 			$is_select2 = true;
854
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
854
+		} elseif (strpos($args['class'], 'aui-select2') !== false) {
855 855
 			$is_select2 = true;
856 856
 		}
857 857
 
858
-		if ( $is_select2 && ! $aui_has_select2 ) {
858
+		if ($is_select2 && !$aui_has_select2) {
859 859
 			$aui_has_select2 = true;
860
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
860
+			$conditional_select2 = apply_filters('aui_is_conditional_select2', true);
861 861
 
862 862
 			// Enqueue the script,
863
-			if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
863
+			if (empty($aui_select2_enqueued) && $conditional_select2 === true) {
864 864
 				$aui_select2_enqueued = true;
865 865
 
866 866
 				$aui_settings = AyeCode_UI_Settings::instance();
@@ -869,75 +869,75 @@  discard block
 block discarded – undo
869 869
 		}
870 870
 
871 871
 		// select2 tags
872
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
872
+		if (!empty($args['select2']) && $args['select2'] === 'tags') { // triple equals needed here for some reason
873 873
 			$args['data-tags']             = 'true';
874 874
 			$args['data-token-separators'] = "[',']";
875 875
 			$args['multiple']              = true;
876 876
 		}
877 877
 
878 878
 		// select2 placeholder
879
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
880
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
881
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
879
+		if ($is_select2 && isset($args['placeholder']) && '' != $args['placeholder'] && empty($args['data-placeholder'])) {
880
+			$args['data-placeholder'] = esc_attr($args['placeholder']);
881
+			$args['data-allow-clear'] = isset($args['data-allow-clear']) ? (bool) $args['data-allow-clear'] : true;
882 882
 		}
883 883
 
884 884
 		// Set hidden input to save empty value for multiselect.
885
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
886
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
885
+		if (!empty($args['multiple']) && !empty($args['name'])) {
886
+			$output .= '<input type="hidden" ' . AUI_Component_Helper::name($args['name']) . ' value="" data-ignore-rule/>';
887 887
 		}
888 888
 
889 889
 		// open/type
890 890
 		$output .= '<select ';
891 891
 
892 892
 		// style
893
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
893
+		if ($is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
894 894
 			$output .= " style='width:100%;' ";
895 895
 		}
896 896
 
897 897
 		// element require
898
-		if ( ! empty( $args['element_require'] ) ) {
899
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
898
+		if (!empty($args['element_require'])) {
899
+			$output .= AUI_Component_Helper::element_require($args['element_require']);
900 900
 			$args['class'] .= " aui-conditional-field";
901 901
 		}
902 902
 
903 903
 		// class
904
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
904
+		$class = !empty($args['class']) ? $args['class'] : '';
905 905
 		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
906
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
906
+		$output .= AUI_Component_Helper::class_attr($select_class . $class);
907 907
 
908 908
 		// name
909
-		if ( ! empty( $args['name'] ) ) {
910
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
909
+		if (!empty($args['name'])) {
910
+			$output .= AUI_Component_Helper::name($args['name'], $args['multiple']);
911 911
 		}
912 912
 
913 913
 		// id
914
-		if ( ! empty( $args['id'] ) ) {
915
-			$output .= AUI_Component_Helper::id( $args['id'] );
914
+		if (!empty($args['id'])) {
915
+			$output .= AUI_Component_Helper::id($args['id']);
916 916
 		}
917 917
 
918 918
 		// title
919
-		if ( ! empty( $args['title'] ) ) {
920
-			$output .= AUI_Component_Helper::title( $args['title'] );
919
+		if (!empty($args['title'])) {
920
+			$output .= AUI_Component_Helper::title($args['title']);
921 921
 		}
922 922
 
923 923
 		// data-attributes
924
-		$output .= AUI_Component_Helper::data_attributes( $args );
924
+		$output .= AUI_Component_Helper::data_attributes($args);
925 925
 
926 926
 		// aria-attributes
927
-		$output .= AUI_Component_Helper::aria_attributes( $args );
927
+		$output .= AUI_Component_Helper::aria_attributes($args);
928 928
 
929 929
 		// extra attributes
930
-		if ( ! empty( $args['extra_attributes'] ) ) {
931
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
930
+		if (!empty($args['extra_attributes'])) {
931
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
932 932
 		}
933 933
 
934 934
 		// required
935
-		if ( ! empty( $args['required'] ) ) {
935
+		if (!empty($args['required'])) {
936 936
 			$output .= ' required ';
937 937
 		}
938 938
 
939 939
 		// multiple
940
-		if ( ! empty( $args['multiple'] ) ) {
940
+		if (!empty($args['multiple'])) {
941 941
 			$output .= ' multiple ';
942 942
 		}
943 943
 
@@ -945,50 +945,50 @@  discard block
 block discarded – undo
945 945
 		$output .= ' >';
946 946
 
947 947
 		// placeholder
948
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
949
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
950
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
948
+		if (isset($args['placeholder']) && '' != $args['placeholder'] && !$is_select2) {
949
+			$output .= '<option value="" disabled selected hidden>' . esc_attr($args['placeholder']) . '</option>';
950
+		} elseif ($is_select2 && !empty($args['placeholder'])) {
951 951
 			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
952 952
 		}
953 953
 
954 954
 		// Options
955
-		if ( ! empty( $args['options'] ) ) {
955
+		if (!empty($args['options'])) {
956 956
 
957
-			if ( ! is_array( $args['options'] ) ) {
957
+			if (!is_array($args['options'])) {
958 958
 				$output .= $args['options']; // not the preferred way but an option
959 959
 			} else {
960
-				foreach ( $args['options'] as $val => $name ) {
960
+				foreach ($args['options'] as $val => $name) {
961 961
 					$selected = '';
962
-					if ( is_array( $name ) ) {
963
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
964
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
962
+					if (is_array($name)) {
963
+						if (isset($name['optgroup']) && ($name['optgroup'] == 'start' || $name['optgroup'] == 'end')) {
964
+							$option_label = isset($name['label']) ? $name['label'] : '';
965 965
 
966
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
966
+							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr($option_label) . '">' : '</optgroup>';
967 967
 						} else {
968
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
969
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
970
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
971
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
972
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
973
-							} elseif ( ! empty( $args['value'] ) ) {
974
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
975
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
976
-								$selected = selected( $option_value, $args['value'], false );
968
+							$option_label = isset($name['label']) ? $name['label'] : '';
969
+							$option_value = isset($name['value']) ? $name['value'] : '';
970
+							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes($name['extra_attributes']) : '';
971
+							if (!empty($args['multiple']) && !empty($args['value']) && is_array($args['value'])) {
972
+								$selected = in_array($option_value, stripslashes_deep($args['value'])) ? "selected" : "";
973
+							} elseif (!empty($args['value'])) {
974
+								$selected = selected($option_value, stripslashes_deep($args['value']), false);
975
+							} elseif (empty($args['value']) && $args['value'] === $option_value) {
976
+								$selected = selected($option_value, $args['value'], false);
977 977
 							}
978 978
 
979
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
979
+							$output .= '<option value="' . esc_attr($option_value) . '" ' . $selected . ' ' . $extra_attributes . '>' . $option_label . '</option>';
980 980
 						}
981 981
 					} else {
982
-						if ( ! empty( $args['value'] ) ) {
983
-							if ( is_array( $args['value'] ) ) {
984
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
985
-							} elseif ( ! empty( $args['value'] ) ) {
986
-								$selected = selected( $args['value'], $val, false );
982
+						if (!empty($args['value'])) {
983
+							if (is_array($args['value'])) {
984
+								$selected = in_array($val, $args['value']) ? 'selected="selected"' : '';
985
+							} elseif (!empty($args['value'])) {
986
+								$selected = selected($args['value'], $val, false);
987 987
 							}
988
-						} elseif ( $args['value'] === $val ) {
989
-							$selected = selected( $args['value'], $val, false );
988
+						} elseif ($args['value'] === $val) {
989
+							$selected = selected($args['value'], $val, false);
990 990
 						}
991
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
991
+						$output .= '<option value="' . esc_attr($val) . '" ' . $selected . '>' . esc_attr($name) . '</option>';
992 992
 					}
993 993
 				}
994 994
 			}
@@ -1001,8 +1001,8 @@  discard block
 block discarded – undo
1001 1001
 		$label = '';
1002 1002
 		$help_text = '';
1003 1003
 		// label
1004
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1005
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1004
+		if (!empty($args['label']) && is_array($args['label'])) {
1005
+		} elseif (!empty($args['label']) && !$label_after) {
1006 1006
 			$label_args = array(
1007 1007
 				'title'      => $args['label'],
1008 1008
 				'for'        => $args['id'],
@@ -1010,49 +1010,49 @@  discard block
 block discarded – undo
1010 1010
 				'label_type' => $args['label_type'],
1011 1011
 				'label_col'  => $args['label_col']
1012 1012
 			);
1013
-			$label = self::label( $label_args );
1013
+			$label = self::label($label_args);
1014 1014
 		}
1015 1015
 
1016 1016
 		// help text
1017
-		if ( ! empty( $args['help_text'] ) ) {
1018
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1017
+		if (!empty($args['help_text'])) {
1018
+			$help_text = AUI_Component_Helper::help_text($args['help_text']);
1019 1019
 		}
1020 1020
 
1021 1021
 		// input group wraps
1022
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1023
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1024
-			if ( $args['input_group_left'] ) {
1025
-				$output = self::wrap( array(
1022
+		if ($args['input_group_left'] || $args['input_group_right']) {
1023
+			$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
1024
+			if ($args['input_group_left']) {
1025
+				$output = self::wrap(array(
1026 1026
 					'content'                 => $output,
1027 1027
 					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1028 1028
 					'input_group_left'        => $args['input_group_left'],
1029 1029
 					'input_group_left_inside' => $args['input_group_left_inside']
1030
-				) );
1030
+				));
1031 1031
 			}
1032
-			if ( $args['input_group_right'] ) {
1033
-				$output = self::wrap( array(
1032
+			if ($args['input_group_right']) {
1033
+				$output = self::wrap(array(
1034 1034
 					'content'                  => $output,
1035 1035
 					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1036 1036
 					'input_group_right'        => $args['input_group_right'],
1037 1037
 					'input_group_right_inside' => $args['input_group_right_inside']
1038
-				) );
1038
+				));
1039 1039
 			}
1040 1040
 
1041 1041
 		}
1042 1042
 
1043
-		if ( ! $label_after ) {
1043
+		if (!$label_after) {
1044 1044
 			$output .= $help_text;
1045 1045
 		}
1046 1046
 
1047 1047
 
1048
-		if ( $args['label_type'] == 'horizontal' ) {
1049
-			$output = self::wrap( array(
1048
+		if ($args['label_type'] == 'horizontal') {
1049
+			$output = self::wrap(array(
1050 1050
 				'content' => $output,
1051
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1052
-			) );
1051
+				'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
1052
+			));
1053 1053
 		}
1054 1054
 
1055
-		if ( ! $label_after ) {
1055
+		if (!$label_after) {
1056 1056
 			$output = $label . $output;
1057 1057
 		}
1058 1058
 
@@ -1063,21 +1063,21 @@  discard block
 block discarded – undo
1063 1063
 
1064 1064
 
1065 1065
 		// wrap
1066
-		if ( ! $args['no_wrap'] ) {
1067
-			if ( ! empty( $args['form_group_class'] ) ) {
1068
-				$fg_class = esc_attr( $args['form_group_class'] );
1069
-			}else{
1066
+		if (!$args['no_wrap']) {
1067
+			if (!empty($args['form_group_class'])) {
1068
+				$fg_class = esc_attr($args['form_group_class']);
1069
+			} else {
1070 1070
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1071 1071
 			}
1072 1072
 			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1073
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1074
-			$output     = self::wrap( array(
1073
+			$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1074
+			$output     = self::wrap(array(
1075 1075
 				'content'         => $output,
1076 1076
 				'class'           => $wrap_class,
1077 1077
 				'element_require' => $args['element_require'],
1078 1078
 				'argument_id'     => $args['id'],
1079 1079
 				'wrap_attributes' => $args['wrap_attributes'],
1080
-			) );
1080
+			));
1081 1081
 		}
1082 1082
 
1083 1083
 
@@ -1091,7 +1091,7 @@  discard block
 block discarded – undo
1091 1091
 	 *
1092 1092
 	 * @return string The rendered component.
1093 1093
 	 */
1094
-	public static function radio( $args = array() ) {
1094
+	public static function radio($args = array()) {
1095 1095
 		global $aui_bs5;
1096 1096
 
1097 1097
 		$defaults = array(
@@ -1123,10 +1123,10 @@  discard block
 block discarded – undo
1123 1123
 		/**
1124 1124
 		 * Parse incoming $args into an array and merge it with $defaults
1125 1125
 		 */
1126
-		$args = wp_parse_args( $args, $defaults );
1126
+		$args = wp_parse_args($args, $defaults);
1127 1127
 
1128 1128
 		// for now lets use horizontal for floating
1129
-		if ( $args['label_type'] == 'floating' ) {
1129
+		if ($args['label_type'] == 'floating') {
1130 1130
 			$args['label_type'] = 'horizontal';
1131 1131
 		}
1132 1132
 
@@ -1137,10 +1137,10 @@  discard block
 block discarded – undo
1137 1137
 			'label_col'  => $args['label_col']
1138 1138
 		);
1139 1139
 
1140
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1140
+		if ($args['label_type'] == 'top' || $args['label_type'] == 'hidden') {
1141 1141
 			$label_args['class'] .= 'd-block ';
1142 1142
 
1143
-			if ( $args['label_type'] == 'hidden' ) {
1143
+			if ($args['label_type'] == 'hidden') {
1144 1144
 				$label_args['class'] .= 'sr-only ';
1145 1145
 			}
1146 1146
 		}
@@ -1148,48 +1148,48 @@  discard block
 block discarded – undo
1148 1148
 		$output = '';
1149 1149
 
1150 1150
 		// label before
1151
-		if ( ! empty( $args['label'] ) ) {
1152
-			$output .= self::label( $label_args, 'radio' );
1151
+		if (!empty($args['label'])) {
1152
+			$output .= self::label($label_args, 'radio');
1153 1153
 		}
1154 1154
 
1155 1155
 		// maybe horizontal label
1156
-		if ( $args['label_type'] == 'horizontal' ) {
1157
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1156
+		if ($args['label_type'] == 'horizontal') {
1157
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
1158 1158
 			$output .= '<div class="' . $input_col . '">';
1159 1159
 		}
1160 1160
 
1161
-		if ( ! empty( $args['options'] ) ) {
1161
+		if (!empty($args['options'])) {
1162 1162
 			$count = 0;
1163
-			foreach ( $args['options'] as $value => $label ) {
1163
+			foreach ($args['options'] as $value => $label) {
1164 1164
 				$option_args            = $args;
1165 1165
 				$option_args['value']   = $value;
1166 1166
 				$option_args['label']   = $label;
1167 1167
 				$option_args['checked'] = $value == $args['value'] ? true : false;
1168
-				$output .= self::radio_option( $option_args, $count );
1169
-				$count ++;
1168
+				$output .= self::radio_option($option_args, $count);
1169
+				$count++;
1170 1170
 			}
1171 1171
 		}
1172 1172
 
1173 1173
 		// help text
1174
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1174
+		$help_text = !empty($args['help_text']) ? AUI_Component_Helper::help_text($args['help_text']) : '';
1175 1175
 		$output .= $help_text;
1176 1176
 
1177 1177
 		// maybe horizontal label
1178
-		if ( $args['label_type'] == 'horizontal' ) {
1178
+		if ($args['label_type'] == 'horizontal') {
1179 1179
 			$output .= '</div>';
1180 1180
 		}
1181 1181
 
1182 1182
 		// wrap
1183 1183
 		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1184 1184
 		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1185
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1186
-		$output     = self::wrap( array(
1185
+		$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1186
+		$output     = self::wrap(array(
1187 1187
 			'content'         => $output,
1188 1188
 			'class'           => $wrap_class,
1189 1189
 			'element_require' => $args['element_require'],
1190 1190
 			'argument_id'     => $args['id'],
1191 1191
 			'wrap_attributes' => $args['wrap_attributes'],
1192
-		) );
1192
+		));
1193 1193
 
1194 1194
 
1195 1195
 		return $output;
@@ -1202,7 +1202,7 @@  discard block
 block discarded – undo
1202 1202
 	 *
1203 1203
 	 * @return string The rendered component.
1204 1204
 	 */
1205
-	public static function radio_option( $args = array(), $count = '' ) {
1205
+	public static function radio_option($args = array(), $count = '') {
1206 1206
 		$defaults = array(
1207 1207
 			'class'            => '',
1208 1208
 			'id'               => '',
@@ -1220,7 +1220,7 @@  discard block
 block discarded – undo
1220 1220
 		/**
1221 1221
 		 * Parse incoming $args into an array and merge it with $defaults
1222 1222
 		 */
1223
-		$args = wp_parse_args( $args, $defaults );
1223
+		$args = wp_parse_args($args, $defaults);
1224 1224
 
1225 1225
 		$output = '';
1226 1226
 
@@ -1231,43 +1231,43 @@  discard block
 block discarded – undo
1231 1231
 		$output .= ' class="form-check-input" ';
1232 1232
 
1233 1233
 		// name
1234
-		if ( ! empty( $args['name'] ) ) {
1235
-			$output .= AUI_Component_Helper::name( $args['name'] );
1234
+		if (!empty($args['name'])) {
1235
+			$output .= AUI_Component_Helper::name($args['name']);
1236 1236
 		}
1237 1237
 
1238 1238
 		// id
1239
-		if ( ! empty( $args['id'] ) ) {
1240
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1239
+		if (!empty($args['id'])) {
1240
+			$output .= AUI_Component_Helper::id($args['id'] . $count);
1241 1241
 		}
1242 1242
 
1243 1243
 		// title
1244
-		if ( ! empty( $args['title'] ) ) {
1245
-			$output .= AUI_Component_Helper::title( $args['title'] );
1244
+		if (!empty($args['title'])) {
1245
+			$output .= AUI_Component_Helper::title($args['title']);
1246 1246
 		}
1247 1247
 
1248 1248
 		// value
1249
-		if ( isset( $args['value'] ) ) {
1250
-			$output .= AUI_Component_Helper::value( $args['value'] );
1249
+		if (isset($args['value'])) {
1250
+			$output .= AUI_Component_Helper::value($args['value']);
1251 1251
 		}
1252 1252
 
1253 1253
 		// checked, for radio and checkboxes
1254
-		if ( $args['checked'] ) {
1254
+		if ($args['checked']) {
1255 1255
 			$output .= ' checked ';
1256 1256
 		}
1257 1257
 
1258 1258
 		// data-attributes
1259
-		$output .= AUI_Component_Helper::data_attributes( $args );
1259
+		$output .= AUI_Component_Helper::data_attributes($args);
1260 1260
 
1261 1261
 		// aria-attributes
1262
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1262
+		$output .= AUI_Component_Helper::aria_attributes($args);
1263 1263
 
1264 1264
 		// extra attributes
1265
-		if ( ! empty( $args['extra_attributes'] ) ) {
1266
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1265
+		if (!empty($args['extra_attributes'])) {
1266
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
1267 1267
 		}
1268 1268
 
1269 1269
 		// required
1270
-		if ( ! empty( $args['required'] ) ) {
1270
+		if (!empty($args['required'])) {
1271 1271
 			$output .= ' required ';
1272 1272
 		}
1273 1273
 
@@ -1275,38 +1275,38 @@  discard block
 block discarded – undo
1275 1275
 		$output .= ' >';
1276 1276
 
1277 1277
 		// label
1278
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1279
-		} elseif ( ! empty( $args['label'] ) ) {
1280
-			$output .= self::label( array(
1278
+		if (!empty($args['label']) && is_array($args['label'])) {
1279
+		} elseif (!empty($args['label'])) {
1280
+			$output .= self::label(array(
1281 1281
 				'title' => $args['label'],
1282 1282
 				'for'   => $args['id'] . $count,
1283 1283
 				'class' => 'form-check-label'
1284
-			), 'radio' );
1284
+			), 'radio');
1285 1285
 		}
1286 1286
 
1287 1287
 		// wrap
1288
-		if ( ! $args['no_wrap'] ) {
1288
+		if (!$args['no_wrap']) {
1289 1289
 			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1290 1290
 
1291 1291
 			// Unique wrap class
1292 1292
 			$uniq_class = 'fwrap';
1293
-			if ( ! empty( $args['name'] ) ) {
1293
+			if (!empty($args['name'])) {
1294 1294
 				$uniq_class .= '-' . $args['name'];
1295
-			} else if ( ! empty( $args['id'] ) ) {
1295
+			} else if (!empty($args['id'])) {
1296 1296
 				$uniq_class .= '-' . $args['id'];
1297 1297
 			}
1298 1298
 
1299
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1299
+			if (isset($args['value']) || $args['value'] !== "") {
1300 1300
 				$uniq_class .= '-' . $args['value'];
1301 1301
 			} else {
1302 1302
 				$uniq_class .= '-' . $count;
1303 1303
 			}
1304
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1304
+			$wrap_class .= ' ' . sanitize_html_class($uniq_class);
1305 1305
 
1306
-			$output = self::wrap( array(
1306
+			$output = self::wrap(array(
1307 1307
 				'content' => $output,
1308 1308
 				'class'   => $wrap_class
1309
-			) );
1309
+			));
1310 1310
 		}
1311 1311
 
1312 1312
 		return $output;
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php 2 patches
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.29";
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.29";
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.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -6,39 +6,39 @@
 block discarded – undo
6 6
 /**
7 7
  * Bail if we are not in WP.
8 8
  */
9
-if ( ! defined( 'ABSPATH' ) ) {
9
+if (!defined('ABSPATH')) {
10 10
 	exit;
11 11
 }
12 12
 
13 13
 /**
14 14
  * Set the version only if its the current newest while loading.
15 15
  */
16
-add_action('after_setup_theme', function () {
17
-	global $ayecode_ui_version,$ayecode_ui_file_key;
16
+add_action('after_setup_theme', function() {
17
+	global $ayecode_ui_version, $ayecode_ui_file_key;
18 18
 	$this_version = "0.2.29";
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__ );
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 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
-add_action('after_setup_theme', function () {
28
+add_action('after_setup_theme', function() {
29 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' );
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 33
 	}
34 34
 },1);
35 35
 
36 36
 /**
37 37
  * Add the function that calls the class.
38 38
  */
39
-if(!function_exists('aui')){
40
-	function aui(){
41
-		if(!class_exists("AUI",false)){
39
+if (!function_exists('aui')) {
40
+	function aui() {
41
+		if (!class_exists("AUI", false)) {
42 42
 			return false;
43 43
 		}
44 44
 		return AUI::instance();
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/includes/class-super-duper-bricks-element.php 3 patches
Indentation   +199 added lines, -199 removed lines patch added patch discarded remove patch
@@ -6,204 +6,204 @@  discard block
 block discarded – undo
6 6
 
7 7
 class Super_Duper_Bricks_Element extends \Bricks\Element {
8 8
 
9
-	public $widget;
9
+    public $widget;
10 10
 
11
-	public function __construct( $element = null ) {
11
+    public function __construct( $element = null ) {
12 12
 
13 13
 
14
-		$block_icon = !empty($this->widget->options['block-icon']) ? $this->widget->options['block-icon'] : '';
14
+        $block_icon = !empty($this->widget->options['block-icon']) ? $this->widget->options['block-icon'] : '';
15 15
 
16 16
 
17
-		$this->category = !empty($this->widget->options['textdomain']) ? esc_attr( $this->widget->options['textdomain'] ) : 'Super Duper';
18
-		$this->name     = $this->widget->id_base;
19
-		$this->icon     = (strpos($block_icon, 'fa') === 0) ? esc_attr($this->widget->options['block-icon']) : 'fas fa-globe-americas';
17
+        $this->category = !empty($this->widget->options['textdomain']) ? esc_attr( $this->widget->options['textdomain'] ) : 'Super Duper';
18
+        $this->name     = $this->widget->id_base;
19
+        $this->icon     = (strpos($block_icon, 'fa') === 0) ? esc_attr($this->widget->options['block-icon']) : 'fas fa-globe-americas';
20 20
 //		$this->scripts  = [ 'bricksIsotope' ];
21 21
 
22
-		parent::__construct($element);
23
-	}
24
-
25
-	/**
26
-	 * Set the element name.
27
-	 *
28
-	 * @return array|string|string[]|null
29
-	 */
30
-	public function get_label() {
31
-		$escaped_text = esc_attr( $this->widget->name );
32
-		return str_replace( ' &gt; ', ' > ', $escaped_text ); // keep our > but have it safe
33
-	}
34
-
35
-	/**
36
-	 * Bricks function to set the controls
37
-	 *
38
-	 * @return void
39
-	 */
40
-	public function set_controls() {
41
-		$args = $this->sd_convert_arguments($this->widget);
42
-
43
-		if (!empty($args)) {
44
-			$this->controls = $this->controls + $args;
45
-		}
46
-
47
-	}
48
-
49
-	/**
50
-	 * Set the bricks control groups from the GD ones.
51
-	 *
52
-	 * @return void
53
-	 */
54
-	public function set_control_groups() {
55
-		$args = $this->sd_get_arguments();
56
-
57
-		$groups = array();
58
-		if(!empty($args)) {
59
-			foreach ($args as $k => $v) {
60
-				$g_slug = !empty($v['group']) ? sanitize_title( $v['group'] ) : '';
61
-				if($g_slug && empty($groups[$g_slug])) {
62
-					$groups[$g_slug] = array(
63
-						'title' => esc_html( $v['group'] ),
64
-						'tab' => 'content',
65
-					);
66
-				}
67
-			}
68
-		}
69
-
70
-		if(!empty($groups)) {
71
-			$this->control_groups = $this->control_groups + $groups;
72
-		}
73
-
74
-	}
75
-
76
-	/**
77
-	 * Get the setting input arguments.
78
-	 *
79
-	 * @return mixed
80
-	 */
81
-	public function sd_get_arguments() {
82
-		$args = $this->widget->set_arguments();
83
-		$arg_keys_subtract = $this->sd_remove_arguments();
84
-
85
-		if ( ! empty( $arg_keys_subtract ) ) {
86
-			foreach($arg_keys_subtract as $key ){
87
-				unset($args[$key]);
88
-			}
89
-		}
90
-
91
-		return $args;
92
-	}
93
-
94
-
95
-	/**
96
-	 * Simply use our own render function for the output.
97
-	 *
98
-	 * @return void
99
-	 */
100
-	public function render() {
101
-		$settings   = $this->settings;
102
-
103
-
104
-		// we might need to add a placeholder here for previews.
105
-		echo $this->widget->output($settings);
106
-	}
107
-
108
-	/**
109
-	 * Convert SD arguments to Bricks arguments.
110
-	 *
111
-	 * @param $widget
112
-	 *
113
-	 * @return array
114
-	 */
115
-	public function sd_convert_arguments()
116
-	{
117
-		$bricks_args = array();
118
-
119
-		$args = $this->sd_get_arguments();
120
-
121
-		if (!empty($args)) {
122
-			foreach ($args as $key => $arg) {
123
-
124
-				// convert title
125
-				if (!empty($arg['title'])) {
126
-					$arg['label'] = $arg['title'];
127
-					unset($arg['title']);
128
-				}
129
-
130
-				// set fields not to use dynamic data
131
-				$arg['hasDynamicData'] = false;
132
-
133
-				if (!empty($arg['group'])) {
134
-					$arg['group'] =  sanitize_title($arg['group']);
135
-				}
136
-
137
-				$arg['rerender'] = true;
138
-
139
-				// required
140
-				if(!empty($arg['element_require'])) {
141
-					$arg['required'] = $this->sd_convert_required($arg['element_require']);
142
-					unset($arg['element_require']);
143
-				}
144
-
145
-				$bricks_args[$key] = $arg;
146
-
147
-			}
148
-
149
-		}
150
-
151
-		return $bricks_args;
152
-
153
-	}
154
-
155
-	/**
156
-	 * Convert the SD element_required to the Bricks required syntax.
157
-	 *
158
-	 * @param $element_require
159
-	 * @return array
160
-	 */
161
-	public function sd_convert_required($element_require) {
162
-		$bricks_required = [];
163
-
164
-		// Handle logical OR (||) for multiple values
165
-		if (strpos($element_require, '||') !== false) {
166
-			preg_match('/\[%(.+?)%\] *== *"(.*?)"/', $element_require, $matches);
167
-			if ($matches) {
168
-				$control_id = $matches[1];
169
-				preg_match_all('/\[%.*?%\] *== *"(.*?)"/', $element_require, $value_matches);
170
-				$values = $value_matches[1];
171
-				$bricks_required[] = [$control_id, '=', $values];
172
-			}
173
-			return $bricks_required;
174
-		}
175
-
176
-		// Match individual conditions
177
-		preg_match_all('/(!)?\[%(.*?)%\](?:\s*([!=<>]=?)\s*(".*?"|\'.*?\'|\d+))?/', $element_require, $matches, PREG_SET_ORDER);
178
-
179
-		foreach ($matches as $match) {
180
-			$is_negation = isset($match[1]) && $match[1] === '!';
181
-			$control_id = $match[2];
182
-			$operator = isset($match[3]) ? str_replace('==', '=', $match[3]) : ($is_negation ? '=' : '!=');
183
-			$value = isset($match[4]) ? trim($match[4], '"\'') : ($is_negation ? '' : '');
184
-
185
-			// Adjust for negation without explicit operator
186
-			if ($is_negation && !isset($match[3])) {
187
-				$operator = '=';
188
-				$value = '';
189
-			}
190
-
191
-			$bricks_required[] = [$control_id, $operator, $value];
192
-		}
193
-
194
-		return $bricks_required;
195
-	}
196
-
197
-
198
-	/**
199
-	 * A way to remove some settings by keys.
200
-	 *
201
-	 * @return array
202
-	 */
203
-	public function sd_remove_arguments()
204
-	{
205
-		return array();
206
-	}
22
+        parent::__construct($element);
23
+    }
24
+
25
+    /**
26
+     * Set the element name.
27
+     *
28
+     * @return array|string|string[]|null
29
+     */
30
+    public function get_label() {
31
+        $escaped_text = esc_attr( $this->widget->name );
32
+        return str_replace( ' &gt; ', ' > ', $escaped_text ); // keep our > but have it safe
33
+    }
34
+
35
+    /**
36
+     * Bricks function to set the controls
37
+     *
38
+     * @return void
39
+     */
40
+    public function set_controls() {
41
+        $args = $this->sd_convert_arguments($this->widget);
42
+
43
+        if (!empty($args)) {
44
+            $this->controls = $this->controls + $args;
45
+        }
46
+
47
+    }
48
+
49
+    /**
50
+     * Set the bricks control groups from the GD ones.
51
+     *
52
+     * @return void
53
+     */
54
+    public function set_control_groups() {
55
+        $args = $this->sd_get_arguments();
56
+
57
+        $groups = array();
58
+        if(!empty($args)) {
59
+            foreach ($args as $k => $v) {
60
+                $g_slug = !empty($v['group']) ? sanitize_title( $v['group'] ) : '';
61
+                if($g_slug && empty($groups[$g_slug])) {
62
+                    $groups[$g_slug] = array(
63
+                        'title' => esc_html( $v['group'] ),
64
+                        'tab' => 'content',
65
+                    );
66
+                }
67
+            }
68
+        }
69
+
70
+        if(!empty($groups)) {
71
+            $this->control_groups = $this->control_groups + $groups;
72
+        }
73
+
74
+    }
75
+
76
+    /**
77
+     * Get the setting input arguments.
78
+     *
79
+     * @return mixed
80
+     */
81
+    public function sd_get_arguments() {
82
+        $args = $this->widget->set_arguments();
83
+        $arg_keys_subtract = $this->sd_remove_arguments();
84
+
85
+        if ( ! empty( $arg_keys_subtract ) ) {
86
+            foreach($arg_keys_subtract as $key ){
87
+                unset($args[$key]);
88
+            }
89
+        }
90
+
91
+        return $args;
92
+    }
93
+
94
+
95
+    /**
96
+     * Simply use our own render function for the output.
97
+     *
98
+     * @return void
99
+     */
100
+    public function render() {
101
+        $settings   = $this->settings;
102
+
103
+
104
+        // we might need to add a placeholder here for previews.
105
+        echo $this->widget->output($settings);
106
+    }
107
+
108
+    /**
109
+     * Convert SD arguments to Bricks arguments.
110
+     *
111
+     * @param $widget
112
+     *
113
+     * @return array
114
+     */
115
+    public function sd_convert_arguments()
116
+    {
117
+        $bricks_args = array();
118
+
119
+        $args = $this->sd_get_arguments();
120
+
121
+        if (!empty($args)) {
122
+            foreach ($args as $key => $arg) {
123
+
124
+                // convert title
125
+                if (!empty($arg['title'])) {
126
+                    $arg['label'] = $arg['title'];
127
+                    unset($arg['title']);
128
+                }
129
+
130
+                // set fields not to use dynamic data
131
+                $arg['hasDynamicData'] = false;
132
+
133
+                if (!empty($arg['group'])) {
134
+                    $arg['group'] =  sanitize_title($arg['group']);
135
+                }
136
+
137
+                $arg['rerender'] = true;
138
+
139
+                // required
140
+                if(!empty($arg['element_require'])) {
141
+                    $arg['required'] = $this->sd_convert_required($arg['element_require']);
142
+                    unset($arg['element_require']);
143
+                }
144
+
145
+                $bricks_args[$key] = $arg;
146
+
147
+            }
148
+
149
+        }
150
+
151
+        return $bricks_args;
152
+
153
+    }
154
+
155
+    /**
156
+     * Convert the SD element_required to the Bricks required syntax.
157
+     *
158
+     * @param $element_require
159
+     * @return array
160
+     */
161
+    public function sd_convert_required($element_require) {
162
+        $bricks_required = [];
163
+
164
+        // Handle logical OR (||) for multiple values
165
+        if (strpos($element_require, '||') !== false) {
166
+            preg_match('/\[%(.+?)%\] *== *"(.*?)"/', $element_require, $matches);
167
+            if ($matches) {
168
+                $control_id = $matches[1];
169
+                preg_match_all('/\[%.*?%\] *== *"(.*?)"/', $element_require, $value_matches);
170
+                $values = $value_matches[1];
171
+                $bricks_required[] = [$control_id, '=', $values];
172
+            }
173
+            return $bricks_required;
174
+        }
175
+
176
+        // Match individual conditions
177
+        preg_match_all('/(!)?\[%(.*?)%\](?:\s*([!=<>]=?)\s*(".*?"|\'.*?\'|\d+))?/', $element_require, $matches, PREG_SET_ORDER);
178
+
179
+        foreach ($matches as $match) {
180
+            $is_negation = isset($match[1]) && $match[1] === '!';
181
+            $control_id = $match[2];
182
+            $operator = isset($match[3]) ? str_replace('==', '=', $match[3]) : ($is_negation ? '=' : '!=');
183
+            $value = isset($match[4]) ? trim($match[4], '"\'') : ($is_negation ? '' : '');
184
+
185
+            // Adjust for negation without explicit operator
186
+            if ($is_negation && !isset($match[3])) {
187
+                $operator = '=';
188
+                $value = '';
189
+            }
190
+
191
+            $bricks_required[] = [$control_id, $operator, $value];
192
+        }
193
+
194
+        return $bricks_required;
195
+    }
196
+
197
+
198
+    /**
199
+     * A way to remove some settings by keys.
200
+     *
201
+     * @return array
202
+     */
203
+    public function sd_remove_arguments()
204
+    {
205
+        return array();
206
+    }
207 207
 
208 208
 }
209 209
 
@@ -213,12 +213,12 @@  discard block
 block discarded – undo
213 213
  */
214 214
 add_action( 'wp_enqueue_scripts', function() {
215 215
 
216
-	// Check if we're in the Bricks Editor
217
-	if ( isset( $_GET['bricks'] ) && $_GET['bricks'] && bricks_is_builder_main() ) {
218
-		// Add inline script to the 'bricks-builder' script
219
-		wp_add_inline_script(
220
-			'bricks-builder',
221
-			"
216
+    // Check if we're in the Bricks Editor
217
+    if ( isset( $_GET['bricks'] ) && $_GET['bricks'] && bricks_is_builder_main() ) {
218
+        // Add inline script to the 'bricks-builder' script
219
+        wp_add_inline_script(
220
+            'bricks-builder',
221
+            "
222 222
 
223 223
 (function () {
224 224
     // Function to get the current breakpoint from the #bricks-preview class
@@ -425,6 +425,6 @@  discard block
 block discarded – undo
425 425
     addIconsToLabels();
426 426
 })();
427 427
 "
428
-		);
429
-	}
428
+        );
429
+    }
430 430
 });
Please login to merge, or discard this patch.
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -1,20 +1,20 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 
4
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+if (!defined('ABSPATH')) exit; // Exit if accessed directly
5 5
 
6 6
 
7 7
 class Super_Duper_Bricks_Element extends \Bricks\Element {
8 8
 
9 9
 	public $widget;
10 10
 
11
-	public function __construct( $element = null ) {
11
+	public function __construct($element = null) {
12 12
 
13 13
 
14 14
 		$block_icon = !empty($this->widget->options['block-icon']) ? $this->widget->options['block-icon'] : '';
15 15
 
16 16
 
17
-		$this->category = !empty($this->widget->options['textdomain']) ? esc_attr( $this->widget->options['textdomain'] ) : 'Super Duper';
17
+		$this->category = !empty($this->widget->options['textdomain']) ? esc_attr($this->widget->options['textdomain']) : 'Super Duper';
18 18
 		$this->name     = $this->widget->id_base;
19 19
 		$this->icon     = (strpos($block_icon, 'fa') === 0) ? esc_attr($this->widget->options['block-icon']) : 'fas fa-globe-americas';
20 20
 //		$this->scripts  = [ 'bricksIsotope' ];
@@ -28,8 +28,8 @@  discard block
 block discarded – undo
28 28
 	 * @return array|string|string[]|null
29 29
 	 */
30 30
 	public function get_label() {
31
-		$escaped_text = esc_attr( $this->widget->name );
32
-		return str_replace( ' &gt; ', ' > ', $escaped_text ); // keep our > but have it safe
31
+		$escaped_text = esc_attr($this->widget->name);
32
+		return str_replace(' &gt; ', ' > ', $escaped_text); // keep our > but have it safe
33 33
 	}
34 34
 
35 35
 	/**
@@ -55,19 +55,19 @@  discard block
 block discarded – undo
55 55
 		$args = $this->sd_get_arguments();
56 56
 
57 57
 		$groups = array();
58
-		if(!empty($args)) {
58
+		if (!empty($args)) {
59 59
 			foreach ($args as $k => $v) {
60
-				$g_slug = !empty($v['group']) ? sanitize_title( $v['group'] ) : '';
61
-				if($g_slug && empty($groups[$g_slug])) {
60
+				$g_slug = !empty($v['group']) ? sanitize_title($v['group']) : '';
61
+				if ($g_slug && empty($groups[$g_slug])) {
62 62
 					$groups[$g_slug] = array(
63
-						'title' => esc_html( $v['group'] ),
63
+						'title' => esc_html($v['group']),
64 64
 						'tab' => 'content',
65 65
 					);
66 66
 				}
67 67
 			}
68 68
 		}
69 69
 
70
-		if(!empty($groups)) {
70
+		if (!empty($groups)) {
71 71
 			$this->control_groups = $this->control_groups + $groups;
72 72
 		}
73 73
 
@@ -82,8 +82,8 @@  discard block
 block discarded – undo
82 82
 		$args = $this->widget->set_arguments();
83 83
 		$arg_keys_subtract = $this->sd_remove_arguments();
84 84
 
85
-		if ( ! empty( $arg_keys_subtract ) ) {
86
-			foreach($arg_keys_subtract as $key ){
85
+		if (!empty($arg_keys_subtract)) {
86
+			foreach ($arg_keys_subtract as $key) {
87 87
 				unset($args[$key]);
88 88
 			}
89 89
 		}
@@ -98,7 +98,7 @@  discard block
 block discarded – undo
98 98
 	 * @return void
99 99
 	 */
100 100
 	public function render() {
101
-		$settings   = $this->settings;
101
+		$settings = $this->settings;
102 102
 
103 103
 
104 104
 		// we might need to add a placeholder here for previews.
@@ -131,13 +131,13 @@  discard block
 block discarded – undo
131 131
 				$arg['hasDynamicData'] = false;
132 132
 
133 133
 				if (!empty($arg['group'])) {
134
-					$arg['group'] =  sanitize_title($arg['group']);
134
+					$arg['group'] = sanitize_title($arg['group']);
135 135
 				}
136 136
 
137 137
 				$arg['rerender'] = true;
138 138
 
139 139
 				// required
140
-				if(!empty($arg['element_require'])) {
140
+				if (!empty($arg['element_require'])) {
141 141
 					$arg['required'] = $this->sd_convert_required($arg['element_require']);
142 142
 					unset($arg['element_require']);
143 143
 				}
@@ -211,10 +211,10 @@  discard block
 block discarded – undo
211 211
 /**
212 212
  * This implements the desktop, tablet and mobile breakpoints views with our fields that are hidden on these types and adda the icon after the label to show which it applies to.
213 213
  */
214
-add_action( 'wp_enqueue_scripts', function() {
214
+add_action('wp_enqueue_scripts', function() {
215 215
 
216 216
 	// Check if we're in the Bricks Editor
217
-	if ( isset( $_GET['bricks'] ) && $_GET['bricks'] && bricks_is_builder_main() ) {
217
+	if (isset($_GET['bricks']) && $_GET['bricks'] && bricks_is_builder_main()) {
218 218
 		// Add inline script to the 'bricks-builder' script
219 219
 		wp_add_inline_script(
220 220
 			'bricks-builder',
Please login to merge, or discard this patch.
Braces   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,7 +1,10 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 
4
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
+if ( ! defined( 'ABSPATH' ) ) {
5
+    exit;
6
+}
7
+// Exit if accessed directly
5 8
 
6 9
 
7 10
 class Super_Duper_Bricks_Element extends \Bricks\Element {
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/wp-super-duper.php 2 patches
Indentation   +2637 added lines, -2637 removed lines patch added patch discarded remove patch
@@ -1,147 +1,147 @@  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.15' );
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.15' );
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
-				}
118
-				/* Load script on Divi theme builder page */
119
-				if ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) {
120
-					add_thickbox();
121
-					add_action( 'admin_footer', array( $this, 'shortcode_insert_button_script' ) );
122
-				}
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
+                /* Load script on Divi theme builder page */
119
+                if ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) {
120
+                    add_thickbox();
121
+                    add_action( 'admin_footer', array( $this, 'shortcode_insert_button_script' ) );
122
+                }
123 123
 
124
-				if ( $this->is_preview() ) {
125
-					add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
126
-					// this makes the insert button work for elementor
127
-					add_action( 'elementor/editor/after_enqueue_scripts', array(
128
-						$this,
129
-						'shortcode_insert_button_script'
130
-					) ); // for elementor
131
-				}
132
-				// this makes the insert button work for cornerstone
133
-				add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_cornerstone_builder' ) );
124
+                if ( $this->is_preview() ) {
125
+                    add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
126
+                    // this makes the insert button work for elementor
127
+                    add_action( 'elementor/editor/after_enqueue_scripts', array(
128
+                        $this,
129
+                        'shortcode_insert_button_script'
130
+                    ) ); // for elementor
131
+                }
132
+                // this makes the insert button work for cornerstone
133
+                add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_cornerstone_builder' ) );
134 134
 
135
-				add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
136
-				add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
135
+                add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
136
+                add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
137 137
 
138
-				// add generator text to head
139
-				add_action( 'admin_head', array( $this, 'generator' ), 99 );
140
-				add_action( 'wp_head', array( $this, 'generator' ), 99 );
141
-			}
138
+                // add generator text to head
139
+                add_action( 'admin_head', array( $this, 'generator' ), 99 );
140
+                add_action( 'wp_head', array( $this, 'generator' ), 99 );
141
+            }
142 142
 
143
-			do_action( 'wp_super_duper_widget_init', $options, $this );
144
-		}
143
+            do_action( 'wp_super_duper_widget_init', $options, $this );
144
+        }
145 145
 
146 146
         /**
147 147
          * Load the Bricks conversion class if we are running Bricks.
@@ -151,163 +151,163 @@  discard block
 block discarded – undo
151 151
                     include_once __DIR__ . '/includes/class-super-duper-bricks-element.php';
152 152
         }
153 153
 
154
-		/**
155
-		 * The register widget function
156
-		 * @return void
157
-		 */
158
-		public function _register() {
159
-			if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
160
-				parent::_register();
161
-			}
162
-		}
163
-
164
-		/**
165
-		 * Add our widget CSS to elementor editor.
166
-		 */
167
-		public function elementor_editor_styles() {
168
-			wp_add_inline_style( 'elementor-editor', $this->widget_css( false ) );
169
-		}
170
-
171
-		public function register_fusion_element() {
172
-
173
-			$options = $this->options;
174
-
175
-			if ( $this->base_id ) {
176
-
177
-				$params = $this->get_fusion_params();
178
-
179
-				$args = array(
180
-					'name'            => $options['name'],
181
-					'shortcode'       => $this->base_id,
182
-					'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
183
-					'allow_generator' => true,
184
-				);
185
-
186
-				if ( ! empty( $params ) ) {
187
-					$args['params'] = $params;
188
-				}
189
-
190
-				fusion_builder_map( $args );
191
-			}
154
+        /**
155
+         * The register widget function
156
+         * @return void
157
+         */
158
+        public function _register() {
159
+            if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
160
+                parent::_register();
161
+            }
162
+        }
192 163
 
193
-		}
164
+        /**
165
+         * Add our widget CSS to elementor editor.
166
+         */
167
+        public function elementor_editor_styles() {
168
+            wp_add_inline_style( 'elementor-editor', $this->widget_css( false ) );
169
+        }
194 170
 
195
-		public function get_fusion_params() {
196
-			$params    = array();
197
-			$arguments = $this->get_arguments();
198
-
199
-			if ( ! empty( $arguments ) ) {
200
-				foreach ( $arguments as $key => $val ) {
201
-					$param = array();
202
-					// type
203
-					$param['type'] = str_replace(
204
-						array(
205
-							"text",
206
-							"number",
207
-							"email",
208
-							"color",
209
-							"checkbox"
210
-						),
211
-						array(
212
-							"textfield",
213
-							"textfield",
214
-							"textfield",
215
-							"colorpicker",
216
-							"select",
171
+        public function register_fusion_element() {
217 172
 
218
-						),
219
-						$val['type'] );
173
+            $options = $this->options;
220 174
 
221
-					// multiselect
222
-					if ( $val['type'] == 'multiselect' || ( ( $param['type'] == 'select' || $val['type'] == 'select' ) && ! empty( $val['multiple'] ) ) ) {
223
-						$param['type']     = 'multiple_select';
224
-						$param['multiple'] = true;
225
-					}
175
+            if ( $this->base_id ) {
226 176
 
227
-					// heading
228
-					$param['heading'] = isset( $val['title'] ) ? $val['title'] : '';
177
+                $params = $this->get_fusion_params();
229 178
 
230
-					// description
231
-					$param['description'] = isset( $val['desc'] ) ? $val['desc'] : '';
179
+                $args = array(
180
+                    'name'            => $options['name'],
181
+                    'shortcode'       => $this->base_id,
182
+                    'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
183
+                    'allow_generator' => true,
184
+                );
232 185
 
233
-					// param_name
234
-					$param['param_name'] = $key;
186
+                if ( ! empty( $params ) ) {
187
+                    $args['params'] = $params;
188
+                }
235 189
 
236
-					// Default
237
-					$param['default'] = isset( $val['default'] ) ? $val['default'] : '';
190
+                fusion_builder_map( $args );
191
+            }
238 192
 
239
-					// Group
240
-					if ( isset( $val['group'] ) ) {
241
-						$param['group'] = $val['group'];
242
-					}
193
+        }
243 194
 
244
-					// value
245
-					if ( $val['type'] == 'checkbox' ) {
246
-						if ( isset( $val['default'] ) && $val['default'] == '0' ) {
247
-							unset( $param['default'] );
248
-						}
249
-						$param['value'] = array( '0' => __( "No", 'ayecode-connect' ), '1' => __( "Yes", 'ayecode-connect' ) );
250
-					} elseif ( $param['type'] == 'select' || $param['type'] == 'multiple_select' ) {
251
-						$param['value'] = isset( $val['options'] ) ? $val['options'] : array();
252
-					} else {
253
-						$param['value'] = isset( $val['default'] ) ? $val['default'] : '';
254
-					}
195
+        public function get_fusion_params() {
196
+            $params    = array();
197
+            $arguments = $this->get_arguments();
198
+
199
+            if ( ! empty( $arguments ) ) {
200
+                foreach ( $arguments as $key => $val ) {
201
+                    $param = array();
202
+                    // type
203
+                    $param['type'] = str_replace(
204
+                        array(
205
+                            "text",
206
+                            "number",
207
+                            "email",
208
+                            "color",
209
+                            "checkbox"
210
+                        ),
211
+                        array(
212
+                            "textfield",
213
+                            "textfield",
214
+                            "textfield",
215
+                            "colorpicker",
216
+                            "select",
217
+
218
+                        ),
219
+                        $val['type'] );
220
+
221
+                    // multiselect
222
+                    if ( $val['type'] == 'multiselect' || ( ( $param['type'] == 'select' || $val['type'] == 'select' ) && ! empty( $val['multiple'] ) ) ) {
223
+                        $param['type']     = 'multiple_select';
224
+                        $param['multiple'] = true;
225
+                    }
226
+
227
+                    // heading
228
+                    $param['heading'] = isset( $val['title'] ) ? $val['title'] : '';
229
+
230
+                    // description
231
+                    $param['description'] = isset( $val['desc'] ) ? $val['desc'] : '';
232
+
233
+                    // param_name
234
+                    $param['param_name'] = $key;
235
+
236
+                    // Default
237
+                    $param['default'] = isset( $val['default'] ) ? $val['default'] : '';
238
+
239
+                    // Group
240
+                    if ( isset( $val['group'] ) ) {
241
+                        $param['group'] = $val['group'];
242
+                    }
243
+
244
+                    // value
245
+                    if ( $val['type'] == 'checkbox' ) {
246
+                        if ( isset( $val['default'] ) && $val['default'] == '0' ) {
247
+                            unset( $param['default'] );
248
+                        }
249
+                        $param['value'] = array( '0' => __( "No", 'ayecode-connect' ), '1' => __( "Yes", 'ayecode-connect' ) );
250
+                    } elseif ( $param['type'] == 'select' || $param['type'] == 'multiple_select' ) {
251
+                        $param['value'] = isset( $val['options'] ) ? $val['options'] : array();
252
+                    } else {
253
+                        $param['value'] = isset( $val['default'] ) ? $val['default'] : '';
254
+                    }
255
+
256
+                    // setup the param
257
+                    $params[] = $param;
255 258
 
256
-					// setup the param
257
-					$params[] = $param;
259
+                }
260
+            }
258 261
 
259
-				}
260
-			}
261 262
 
263
+            return $params;
264
+        }
262 265
 
263
-			return $params;
264
-		}
266
+        /**
267
+         * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
268
+         */
269
+        public static function maybe_cornerstone_builder() {
270
+            if ( did_action( 'cornerstone_before_boot_app' ) ) {
271
+                self::shortcode_insert_button_script();
272
+            }
273
+        }
265 274
 
266
-		/**
267
-		 * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
268
-		 */
269
-		public static function maybe_cornerstone_builder() {
270
-			if ( did_action( 'cornerstone_before_boot_app' ) ) {
271
-				self::shortcode_insert_button_script();
272
-			}
273
-		}
275
+        /**
276
+         * A function to ge the shortcode builder picker html.
277
+         *
278
+         * @param string $editor_id
279
+         *
280
+         * @return string
281
+         */
282
+        public static function get_picker( $editor_id = '' ) {
274 283
 
275
-		/**
276
-		 * A function to ge the shortcode builder picker html.
277
-		 *
278
-		 * @param string $editor_id
279
-		 *
280
-		 * @return string
281
-		 */
282
-		public static function get_picker( $editor_id = '' ) {
283
-
284
-			ob_start();
285
-			if ( isset( $_POST['editor_id'] ) ) {
286
-				$editor_id = esc_attr( $_POST['editor_id'] );
287
-			} elseif ( isset( $_REQUEST['et_fb'] ) ) {
288
-				$editor_id = 'main_content_content_vb_tiny_mce';
289
-			}
284
+            ob_start();
285
+            if ( isset( $_POST['editor_id'] ) ) {
286
+                $editor_id = esc_attr( $_POST['editor_id'] );
287
+            } elseif ( isset( $_REQUEST['et_fb'] ) ) {
288
+                $editor_id = 'main_content_content_vb_tiny_mce';
289
+            }
290 290
 
291
-			global $sd_widgets;
291
+            global $sd_widgets;
292 292
 
293 293
 //			print_r($sd_widgets);exit;
294
-			?>
294
+            ?>
295 295
 
296 296
 			<div class="sd-shortcode-left-wrap">
297 297
 				<?php
298
-				ksort( $sd_widgets );
299
-				//				print_r($sd_widgets);exit;
300
-				if ( ! empty( $sd_widgets ) ) {
301
-					echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
302
-					echo "<option>" . __( 'Select shortcode', 'ayecode-connect' ) . "</option>";
303
-					foreach ( $sd_widgets as $shortcode => $class ) {
304
-						if(!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])){ continue; }
305
-						echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
306
-					}
307
-					echo "</select>";
298
+                ksort( $sd_widgets );
299
+                //				print_r($sd_widgets);exit;
300
+                if ( ! empty( $sd_widgets ) ) {
301
+                    echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
302
+                    echo "<option>" . __( 'Select shortcode', 'ayecode-connect' ) . "</option>";
303
+                    foreach ( $sd_widgets as $shortcode => $class ) {
304
+                        if(!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])){ continue; }
305
+                        echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
306
+                    }
307
+                    echo "</select>";
308 308
 
309
-				}
310
-				?>
309
+                }
310
+                ?>
311 311
 				<div class="sd-shortcode-settings"></div>
312 312
 
313 313
 			</div>
@@ -318,8 +318,8 @@  discard block
 block discarded – undo
318 318
 					<?php if ( $editor_id != '' ) { ?>
319 319
 						<button class="button sd-insert-shortcode-button"
320 320
 								onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) {
321
-									echo "'" . $editor_id . "'";
322
-								} ?>)"><?php _e( 'Insert shortcode', 'ayecode-connect' ); ?></button>
321
+                                    echo "'" . $editor_id . "'";
322
+                                } ?>)"><?php _e( 'Insert shortcode', 'ayecode-connect' ); ?></button>
323 323
 					<?php } ?>
324 324
 					<button class="button"
325 325
 							onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button>
@@ -327,150 +327,150 @@  discard block
 block discarded – undo
327 327
 			</div>
328 328
 			<?php
329 329
 
330
-			$html = ob_get_clean();
331
-
332
-			if ( wp_doing_ajax() ) {
333
-				echo $html;
334
-				$should_die = true;
330
+            $html = ob_get_clean();
335 331
 
336
-				// some builder get the editor via ajax so we should not die on those occasions
337
-				$dont_die = array(
338
-					'parent_tag',// WP Bakery
339
-					'avia_request' // enfold
340
-				);
341
-
342
-				foreach ( $dont_die as $request ) {
343
-					if ( isset( $_REQUEST[ $request ] ) ) {
344
-						$should_die = false;
345
-					}
346
-				}
332
+            if ( wp_doing_ajax() ) {
333
+                echo $html;
334
+                $should_die = true;
347 335
 
348
-				if ( $should_die ) {
349
-					wp_die();
350
-				}
336
+                // some builder get the editor via ajax so we should not die on those occasions
337
+                $dont_die = array(
338
+                    'parent_tag',// WP Bakery
339
+                    'avia_request' // enfold
340
+                );
351 341
 
352
-			} else {
353
-				return $html;
354
-			}
342
+                foreach ( $dont_die as $request ) {
343
+                    if ( isset( $_REQUEST[ $request ] ) ) {
344
+                        $should_die = false;
345
+                    }
346
+                }
355 347
 
356
-			return '';
348
+                if ( $should_die ) {
349
+                    wp_die();
350
+                }
357 351
 
358
-		}
352
+            } else {
353
+                return $html;
354
+            }
359 355
 
360
-		/**
361
-		 * Output the version in the header.
362
-		 */
363
-		public function generator() {
364
-			$file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
365
-			$plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
366
-
367
-			// Find source plugin/theme of SD
368
-			$source = array();
369
-			if ( strpos( $file, $plugins_dir ) !== false ) {
370
-				$source = explode( "/", plugin_basename( $file ) );
371
-			} else if ( function_exists( 'get_theme_root' ) ) {
372
-				$themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
373
-
374
-				if ( strpos( $file, $themes_dir ) !== false ) {
375
-					$source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
376
-				}
377
-			}
356
+            return '';
378 357
 
379
-			echo '<meta name="generator" content="WP Super Duper v' . esc_attr( $this->version ) . '"' . ( ! empty( $source[0] ) ? ' data-sd-source="' . esc_attr( $source[0] ) . '"' : '' ) . ' />';
380
-		}
358
+        }
381 359
 
382
-		/**
383
-		 * Get widget settings.
384
-		 *
385
-		 * @since 1.0.0
386
-		 */
387
-		public static function get_widget_settings() {
388
-			global $sd_widgets;
389
-
390
-			$shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
391
-			if ( ! $shortcode ) {
392
-				wp_die();
393
-			}
394
-			$widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
395
-			if ( ! $widget_args ) {
396
-				wp_die();
397
-			}
398
-			$class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
399
-			if ( ! $class_name ) {
400
-				wp_die();
401
-			}
360
+        /**
361
+         * Output the version in the header.
362
+         */
363
+        public function generator() {
364
+            $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
365
+            $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
366
+
367
+            // Find source plugin/theme of SD
368
+            $source = array();
369
+            if ( strpos( $file, $plugins_dir ) !== false ) {
370
+                $source = explode( "/", plugin_basename( $file ) );
371
+            } else if ( function_exists( 'get_theme_root' ) ) {
372
+                $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
373
+
374
+                if ( strpos( $file, $themes_dir ) !== false ) {
375
+                    $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
376
+                }
377
+            }
402 378
 
403
-			// invoke an instance method
404
-			$widget = new $class_name;
379
+            echo '<meta name="generator" content="WP Super Duper v' . esc_attr( $this->version ) . '"' . ( ! empty( $source[0] ) ? ' data-sd-source="' . esc_attr( $source[0] ) . '"' : '' ) . ' />';
380
+        }
405 381
 
406
-			ob_start();
407
-			$widget->form( array() );
408
-			$form = ob_get_clean();
409
-			echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
410
-			echo "<style>" . $widget->widget_css() . "</style>";
411
-			echo "<script>" . $widget->widget_js() . "</script>";
412
-			?>
382
+        /**
383
+         * Get widget settings.
384
+         *
385
+         * @since 1.0.0
386
+         */
387
+        public static function get_widget_settings() {
388
+            global $sd_widgets;
389
+
390
+            $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
391
+            if ( ! $shortcode ) {
392
+                wp_die();
393
+            }
394
+            $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
395
+            if ( ! $widget_args ) {
396
+                wp_die();
397
+            }
398
+            $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
399
+            if ( ! $class_name ) {
400
+                wp_die();
401
+            }
402
+
403
+            // invoke an instance method
404
+            $widget = new $class_name;
405
+
406
+            ob_start();
407
+            $widget->form( array() );
408
+            $form = ob_get_clean();
409
+            echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
410
+            echo "<style>" . $widget->widget_css() . "</style>";
411
+            echo "<script>" . $widget->widget_js() . "</script>";
412
+            ?>
413 413
 			<?php
414
-			wp_die();
415
-		}
416
-
417
-		/**
418
-		 * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
419
-		 *
420
-		 * @param string $editor_id Optional. Shortcode editor id. Default null.
421
-		 * @param string $insert_shortcode_function Optional. Insert shortcode function. Default null.
422
-		 *
423
-		 *@since 1.0.0
424
-		 *
425
-		 */
426
-		public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
427
-			global $sd_widgets, $shortcode_insert_button_once;
428
-			if ( $shortcode_insert_button_once ) {
429
-				return;
430
-			}
431
-			add_thickbox();
432
-
433
-
434
-			/**
435
-			 * Cornerstone makes us play dirty tricks :/
436
-			 * 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.
437
-			 */
438
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
439
-				echo '<span id="insert-media-button">';
440
-			}
441
-
442
-			echo self::shortcode_button( 'this', 'true' );
443
-
444
-			// see opening note
445
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
446
-				echo '</span>'; // end #insert-media-button
447
-			}
448
-
449
-			// Add separate script for generatepress theme sections
450
-			if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
451
-			} else {
452
-				self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
453
-			}
414
+            wp_die();
415
+        }
454 416
 
455
-			$shortcode_insert_button_once = true;
456
-		}
417
+        /**
418
+         * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
419
+         *
420
+         * @param string $editor_id Optional. Shortcode editor id. Default null.
421
+         * @param string $insert_shortcode_function Optional. Insert shortcode function. Default null.
422
+         *
423
+         *@since 1.0.0
424
+         *
425
+         */
426
+        public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
427
+            global $sd_widgets, $shortcode_insert_button_once;
428
+            if ( $shortcode_insert_button_once ) {
429
+                return;
430
+            }
431
+            add_thickbox();
432
+
433
+
434
+            /**
435
+             * Cornerstone makes us play dirty tricks :/
436
+             * 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.
437
+             */
438
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
439
+                echo '<span id="insert-media-button">';
440
+            }
441
+
442
+            echo self::shortcode_button( 'this', 'true' );
443
+
444
+            // see opening note
445
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
446
+                echo '</span>'; // end #insert-media-button
447
+            }
448
+
449
+            // Add separate script for generatepress theme sections
450
+            if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
451
+            } else {
452
+                self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
453
+            }
454
+
455
+            $shortcode_insert_button_once = true;
456
+        }
457 457
 
458
-		/**
459
-		 * Gets the shortcode insert button html.
460
-		 *
461
-		 * @param string $id
462
-		 * @param string $search_for_id
463
-		 *
464
-		 * @return mixed
465
-		 */
466
-		public static function shortcode_button( $id = '', $search_for_id = '' ) {
467
-			ob_start();
468
-			?>
458
+        /**
459
+         * Gets the shortcode insert button html.
460
+         *
461
+         * @param string $id
462
+         * @param string $search_for_id
463
+         *
464
+         * @return mixed
465
+         */
466
+        public static function shortcode_button( $id = '', $search_for_id = '' ) {
467
+            ob_start();
468
+            ?>
469 469
 			<span class="sd-lable-shortcode-inserter">
470 470
 				<a onclick="sd_ajax_get_picker(<?php echo $id;
471
-				if ( $search_for_id ) {
472
-					echo "," . $search_for_id;
473
-				} ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
471
+                if ( $search_for_id ) {
472
+                    echo "," . $search_for_id;
473
+                } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
474 474
 				   class="thickbox button super-duper-content-open" title="Add Shortcode">
475 475
 					<span style="vertical-align: middle;line-height: 18px;font-size: 20px;"
476 476
 						  class="dashicons dashicons-screenoptions"></span>
@@ -481,21 +481,21 @@  discard block
 block discarded – undo
481 481
 			</span>
482 482
 
483 483
 			<?php
484
-			$html = ob_get_clean();
484
+            $html = ob_get_clean();
485 485
 
486
-			// remove line breaks so we can use it in js
487
-			return preg_replace( "/\r|\n/", "", trim( $html ) );
488
-		}
486
+            // remove line breaks so we can use it in js
487
+            return preg_replace( "/\r|\n/", "", trim( $html ) );
488
+        }
489 489
 
490
-		/**
491
-		 * Makes SD work with the siteOrigin page builder.
492
-		 *
493
-		 * @return mixed
494
-		 *@since 1.0.6
495
-		 */
496
-		public static function siteorigin_js() {
497
-			ob_start();
498
-			?>
490
+        /**
491
+         * Makes SD work with the siteOrigin page builder.
492
+         *
493
+         * @return mixed
494
+         *@since 1.0.6
495
+         */
496
+        public static function siteorigin_js() {
497
+            ob_start();
498
+            ?>
499 499
 			<script>
500 500
 				/**
501 501
 				 * Check a form to see what items should be shown or hidden.
@@ -571,29 +571,29 @@  discard block
 block discarded – undo
571 571
 				});
572 572
 			</script>
573 573
 			<?php
574
-			$output = ob_get_clean();
574
+            $output = ob_get_clean();
575 575
 
576
-			/*
576
+            /*
577 577
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
578 578
 			 */
579 579
 
580
-			return str_replace( array(
581
-				'<script>',
582
-				'</script>'
583
-			), '', $output );
584
-		}
580
+            return str_replace( array(
581
+                '<script>',
582
+                '</script>'
583
+            ), '', $output );
584
+        }
585 585
 
586
-		/**
587
-		 * Output the JS and CSS for the shortcode insert button.
588
-		 *
589
-		 * @param string $editor_id
590
-		 * @param string $insert_shortcode_function
591
-		 *
592
-		 *@since 1.0.6
593
-		 *
594
-		 */
595
-		public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
596
-			?>
586
+        /**
587
+         * Output the JS and CSS for the shortcode insert button.
588
+         *
589
+         * @param string $editor_id
590
+         * @param string $insert_shortcode_function
591
+         *
592
+         *@since 1.0.6
593
+         *
594
+         */
595
+        public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
596
+            ?>
597 597
 			<style>
598 598
 				.sd-shortcode-left-wrap {
599 599
 					float: left;
@@ -721,35 +721,35 @@  discard block
 block discarded – undo
721 721
 				<?php } ?>
722 722
 			</style>
723 723
 			<?php
724
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
725
-				echo "<script>" . self::siteorigin_js() . "</script>";
726
-			}
727
-			?>
724
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
725
+                echo "<script>" . self::siteorigin_js() . "</script>";
726
+            }
727
+            ?>
728 728
 			<script>
729 729
 				<?php
730
-				if(! empty( $insert_shortcode_function )){
731
-					echo $insert_shortcode_function;
732
-				}else{
733
-
734
-				/**
735
-				 * Function for super duper insert shortcode.
736
-				 *
737
-				 * @since 1.0.0
738
-				 */
739
-				?>
730
+                if(! empty( $insert_shortcode_function )){
731
+                    echo $insert_shortcode_function;
732
+                }else{
733
+
734
+                /**
735
+                 * Function for super duper insert shortcode.
736
+                 *
737
+                 * @since 1.0.0
738
+                 */
739
+                ?>
740 740
 				function sd_insert_shortcode($editor_id) {
741 741
 					$shortcode = jQuery('#TB_ajaxContent #sd-shortcode-output').val();
742 742
 					if ($shortcode) {
743 743
 						if (!$editor_id) {
744 744
 							<?php
745
-							if ( isset( $_REQUEST['et_fb'] ) ) {
746
-								echo '$editor_id = "#main_content_content_vb_tiny_mce";';
747
-							} elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
748
-								echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
749
-							} else {
750
-								echo '$editor_id = "#wp-content-editor-container textarea";';
751
-							}
752
-							?>
745
+                            if ( isset( $_REQUEST['et_fb'] ) ) {
746
+                                echo '$editor_id = "#main_content_content_vb_tiny_mce";';
747
+                            } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
748
+                                echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
749
+                            } else {
750
+                                echo '$editor_id = "#wp-content-editor-container textarea";';
751
+                            }
752
+                            ?>
753 753
 						} else {
754 754
 							$editor_id = '#' + $editor_id;
755 755
 						}
@@ -1063,18 +1063,18 @@  discard block
 block discarded – undo
1063 1063
 				}
1064 1064
 			</script>
1065 1065
 			<?php
1066
-		}
1066
+        }
1067 1067
 
1068
-		/**
1069
-		 * Gets some CSS for the widgets screen.
1070
-		 *
1071
-		 * @param bool $advanced If we should include advanced CSS.
1072
-		 *
1073
-		 * @return mixed
1074
-		 */
1075
-		public function widget_css( $advanced = true ) {
1076
-			ob_start();
1077
-			?>
1068
+        /**
1069
+         * Gets some CSS for the widgets screen.
1070
+         *
1071
+         * @param bool $advanced If we should include advanced CSS.
1072
+         *
1073
+         * @return mixed
1074
+         */
1075
+        public function widget_css( $advanced = true ) {
1076
+            ob_start();
1077
+            ?>
1078 1078
 			<style>
1079 1079
 				<?php if( $advanced ){ ?>
1080 1080
 				.sd-advanced-setting {
@@ -1114,26 +1114,26 @@  discard block
 block discarded – undo
1114 1114
 				.elementor-control .sd-argument select[multiple] option{padding:3px}
1115 1115
 			</style>
1116 1116
 			<?php
1117
-			$output = ob_get_clean();
1117
+            $output = ob_get_clean();
1118 1118
 
1119
-			/*
1119
+            /*
1120 1120
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1121 1121
 			 */
1122 1122
 
1123
-			return str_replace( array(
1124
-				'<style>',
1125
-				'</style>'
1126
-			), '', $output );
1127
-		}
1123
+            return str_replace( array(
1124
+                '<style>',
1125
+                '</style>'
1126
+            ), '', $output );
1127
+        }
1128 1128
 
1129
-		/**
1130
-		 * Gets some JS for the widgets screen.
1131
-		 *
1132
-		 * @return mixed
1133
-		 */
1134
-		public function widget_js() {
1135
-			ob_start();
1136
-			?>
1129
+        /**
1130
+         * Gets some JS for the widgets screen.
1131
+         *
1132
+         * @return mixed
1133
+         */
1134
+        public function widget_js() {
1135
+            ob_start();
1136
+            ?>
1137 1137
 			<script>
1138 1138
 
1139 1139
 				/**
@@ -1284,513 +1284,513 @@  discard block
 block discarded – undo
1284 1284
 				<?php do_action( 'wp_super_duper_widget_js', $this ); ?>
1285 1285
 			</script>
1286 1286
 			<?php
1287
-			$output = ob_get_clean();
1287
+            $output = ob_get_clean();
1288 1288
 
1289
-			/*
1289
+            /*
1290 1290
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1291 1291
 			 */
1292 1292
 
1293
-			return str_replace( array(
1294
-				'<script>',
1295
-				'</script>'
1296
-			), '', $output );
1297
-		}
1293
+            return str_replace( array(
1294
+                '<script>',
1295
+                '</script>'
1296
+            ), '', $output );
1297
+        }
1298 1298
 
1299 1299
 
1300
-		/**
1301
-		 * Set the name from the argument key.
1302
-		 *
1303
-		 * @param $options
1304
-		 *
1305
-		 * @return mixed
1306
-		 */
1307
-		private function add_name_from_key( $options, $arguments = false ) {
1308
-			if ( ! empty( $options['arguments'] ) ) {
1309
-				foreach ( $options['arguments'] as $key => $val ) {
1310
-					$options['arguments'][ $key ]['name'] = $key;
1311
-				}
1312
-			} elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1313
-				foreach ( $options as $key => $val ) {
1314
-					$options[ $key ]['name'] = $key;
1315
-				}
1316
-			}
1300
+        /**
1301
+         * Set the name from the argument key.
1302
+         *
1303
+         * @param $options
1304
+         *
1305
+         * @return mixed
1306
+         */
1307
+        private function add_name_from_key( $options, $arguments = false ) {
1308
+            if ( ! empty( $options['arguments'] ) ) {
1309
+                foreach ( $options['arguments'] as $key => $val ) {
1310
+                    $options['arguments'][ $key ]['name'] = $key;
1311
+                }
1312
+            } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1313
+                foreach ( $options as $key => $val ) {
1314
+                    $options[ $key ]['name'] = $key;
1315
+                }
1316
+            }
1317 1317
 
1318
-			return $options;
1319
-		}
1318
+            return $options;
1319
+        }
1320 1320
 
1321
-		/**
1322
-		 * Register the parent shortcode.
1323
-		 *
1324
-		 * @since 1.0.0
1325
-		 */
1326
-		public function register_shortcode() {
1327
-			add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1328
-			add_action( 'wp_ajax_super_duper_output_shortcode', array( $this, 'render_shortcode' ) );
1329
-		}
1321
+        /**
1322
+         * Register the parent shortcode.
1323
+         *
1324
+         * @since 1.0.0
1325
+         */
1326
+        public function register_shortcode() {
1327
+            add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1328
+            add_action( 'wp_ajax_super_duper_output_shortcode', array( $this, 'render_shortcode' ) );
1329
+        }
1330 1330
 
1331
-		/**
1332
-		 * Render the shortcode via ajax so we can return it to Gutenberg.
1333
-		 *
1334
-		 * @since 1.0.0
1335
-		 */
1336
-		public function render_shortcode() {
1337
-			check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1338
-			if ( ! current_user_can( 'manage_options' ) ) {
1339
-				wp_die();
1340
-			}
1331
+        /**
1332
+         * Render the shortcode via ajax so we can return it to Gutenberg.
1333
+         *
1334
+         * @since 1.0.0
1335
+         */
1336
+        public function render_shortcode() {
1337
+            check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1338
+            if ( ! current_user_can( 'manage_options' ) ) {
1339
+                wp_die();
1340
+            }
1341
+
1342
+            // we might need the $post value here so lets set it.
1343
+            if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1344
+                $post_obj = get_post( absint( $_POST['post_id'] ) );
1345
+                if ( ! empty( $post_obj ) && empty( $post ) ) {
1346
+                    global $post;
1347
+                    $post = $post_obj;
1348
+                }
1349
+            }
1350
+
1351
+            if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1352
+                $is_preview = $this->is_preview();
1353
+                $shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1354
+                $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1355
+                $attributes       = '';
1356
+                if ( ! empty( $attributes_array ) ) {
1357
+                    foreach ( $attributes_array as $key => $value ) {
1358
+                        if ( is_array( $value ) ) {
1359
+                            $value = implode( ",", $value );
1360
+                        }
1361
+
1362
+                        if ( ! empty( $value ) ) {
1363
+                            $value = wp_unslash( $value );
1364
+
1365
+                            // Encode [ and ].
1366
+                            if ( $is_preview ) {
1367
+                                $value = $this->encode_shortcodes( $value );
1368
+                            }
1369
+                        }
1370
+                        $attributes .= " " . esc_attr( sanitize_title_with_dashes( $key ) ) . "='" . esc_attr( $value ) . "' ";
1371
+                    }
1372
+                }
1341 1373
 
1342
-			// we might need the $post value here so lets set it.
1343
-			if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1344
-				$post_obj = get_post( absint( $_POST['post_id'] ) );
1345
-				if ( ! empty( $post_obj ) && empty( $post ) ) {
1346
-					global $post;
1347
-					$post = $post_obj;
1348
-				}
1349
-			}
1374
+                $shortcode = "[" . esc_attr( $shortcode_name ) . " " . $attributes . "]";
1350 1375
 
1351
-			if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1352
-				$is_preview = $this->is_preview();
1353
-				$shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1354
-				$attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1355
-				$attributes       = '';
1356
-				if ( ! empty( $attributes_array ) ) {
1357
-					foreach ( $attributes_array as $key => $value ) {
1358
-						if ( is_array( $value ) ) {
1359
-							$value = implode( ",", $value );
1360
-						}
1376
+                $content = do_shortcode( $shortcode );
1361 1377
 
1362
-						if ( ! empty( $value ) ) {
1363
-							$value = wp_unslash( $value );
1378
+                // Decode [ and ].
1379
+                if ( ! empty( $content ) && $is_preview ) {
1380
+                    $content = $this->decode_shortcodes( $content );
1381
+                }
1364 1382
 
1365
-							// Encode [ and ].
1366
-							if ( $is_preview ) {
1367
-								$value = $this->encode_shortcodes( $value );
1368
-							}
1369
-						}
1370
-						$attributes .= " " . esc_attr( sanitize_title_with_dashes( $key ) ) . "='" . esc_attr( $value ) . "' ";
1371
-					}
1372
-				}
1383
+                echo $content;
1384
+            }
1385
+            wp_die();
1386
+        }
1373 1387
 
1374
-				$shortcode = "[" . esc_attr( $shortcode_name ) . " " . $attributes . "]";
1388
+        /**
1389
+         * Output the shortcode.
1390
+         *
1391
+         * @param array $args
1392
+         * @param string $content
1393
+         *
1394
+         * @return string
1395
+         */
1396
+        public function shortcode_output( $args = array(), $content = '' ) {
1397
+            $_instance = $args;
1398
+
1399
+            $args = $this->argument_values( $args );
1400
+
1401
+            // add extra argument so we know its a output to gutenberg
1402
+            //$args
1403
+            $args = $this->string_to_bool( $args );
1404
+
1405
+            // if we have a enclosed shortcode we add it to the special `html` argument
1406
+            if ( ! empty( $content ) ) {
1407
+                $args['html'] = $content;
1408
+            }
1409
+
1410
+            if ( ! $this->is_preview() ) {
1411
+                /**
1412
+                 * Filters the settings for a particular widget args.
1413
+                 *
1414
+                 * @param array          $args      The current widget instance's settings.
1415
+                 * @param WP_Super_Duper $widget    The current widget settings.
1416
+                 * @param array          $_instance An array of default widget arguments.
1417
+                 *
1418
+                 *@since 1.0.28
1419
+                 *
1420
+                 */
1421
+                $args = apply_filters( 'wp_super_duper_widget_display_callback', $args, $this, $_instance );
1422
+
1423
+                if ( ! is_array( $args ) ) {
1424
+                    return $args;
1425
+                }
1426
+            }
1427
+
1428
+            $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1429
+            $class .= " sdel-".$this->get_instance_hash();
1430
+
1431
+            $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1432
+            $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1433
+
1434
+            $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1435
+            $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
1436
+
1437
+            $shortcode_args = array();
1438
+            $output         = '';
1439
+            $no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1440
+            if ( isset( $args['no_wrap'] ) && $args['no_wrap'] ) {
1441
+                $no_wrap = true;
1442
+            }
1443
+            $main_content = $this->output( $args, $shortcode_args, $content );
1444
+            if ( $main_content && ! $no_wrap ) {
1445
+                // wrap the shortcode in a div with the same class as the widget
1446
+                $output .= '<div class="' . $class . '" ' . $attrs . '>';
1447
+                if ( ! empty( $args['title'] ) ) {
1448
+                    // if its a shortcode and there is a title try to grab the title wrappers
1449
+                    $shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1450
+                    if ( empty( $instance ) ) {
1451
+                        global $wp_registered_sidebars;
1452
+                        if ( ! empty( $wp_registered_sidebars ) ) {
1453
+                            foreach ( $wp_registered_sidebars as $sidebar ) {
1454
+                                if ( ! empty( $sidebar['before_title'] ) ) {
1455
+                                    $shortcode_args['before_title'] = $sidebar['before_title'];
1456
+                                    $shortcode_args['after_title']  = $sidebar['after_title'];
1457
+                                    break;
1458
+                                }
1459
+                            }
1460
+                        }
1461
+                    }
1462
+                    $output .= $this->output_title( $shortcode_args, $args );
1463
+                }
1464
+                $output .= $main_content;
1465
+                $output .= '</div>';
1466
+            } elseif ( $main_content && $no_wrap ) {
1467
+                $output .= $main_content;
1468
+            }
1469
+
1470
+            // if preview show a placeholder if empty
1471
+            if ( $this->is_preview() && $output == '' ) {
1472
+                $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
1473
+            }
1474
+
1475
+            return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1476
+        }
1375 1477
 
1376
-				$content = do_shortcode( $shortcode );
1478
+        /**
1479
+         * Placeholder text to show if output is empty and we are on a preview/builder page.
1480
+         *
1481
+         * @param string $name
1482
+         *
1483
+         * @return string
1484
+         */
1485
+        public function preview_placeholder_text( $name = '' ) {
1486
+            return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf( __( 'Placeholder for: %s', 'ayecode-connect' ), $name ) . "</div>";
1487
+        }
1377 1488
 
1378
-				// Decode [ and ].
1379
-				if ( ! empty( $content ) && $is_preview ) {
1380
-					$content = $this->decode_shortcodes( $content );
1381
-				}
1489
+        /**
1490
+         * Sometimes booleans values can be turned to strings, so we fix that.
1491
+         *
1492
+         * @param $options
1493
+         *
1494
+         * @return mixed
1495
+         */
1496
+        public function string_to_bool( $options ) {
1497
+            // convert bool strings to booleans
1498
+            foreach ( $options as $key => $val ) {
1499
+                if ( $val == 'false' ) {
1500
+                    $options[ $key ] = false;
1501
+                } elseif ( $val == 'true' ) {
1502
+                    $options[ $key ] = true;
1503
+                }
1504
+            }
1382 1505
 
1383
-				echo $content;
1384
-			}
1385
-			wp_die();
1386
-		}
1506
+            return $options;
1507
+        }
1387 1508
 
1388
-		/**
1389
-		 * Output the shortcode.
1390
-		 *
1391
-		 * @param array $args
1392
-		 * @param string $content
1393
-		 *
1394
-		 * @return string
1395
-		 */
1396
-		public function shortcode_output( $args = array(), $content = '' ) {
1397
-			$_instance = $args;
1398
-
1399
-			$args = $this->argument_values( $args );
1400
-
1401
-			// add extra argument so we know its a output to gutenberg
1402
-			//$args
1403
-			$args = $this->string_to_bool( $args );
1404
-
1405
-			// if we have a enclosed shortcode we add it to the special `html` argument
1406
-			if ( ! empty( $content ) ) {
1407
-				$args['html'] = $content;
1408
-			}
1509
+        /**
1510
+         * Get the argument values that are also filterable.
1511
+         *
1512
+         * @param $instance
1513
+         *
1514
+         * @return array
1515
+         *@since 1.0.12 Don't set checkbox default value if the value is empty.
1516
+         *
1517
+         */
1518
+        public function argument_values( $instance ) {
1519
+            $argument_values = array();
1520
+
1521
+            // set widget instance
1522
+            $this->instance = $instance;
1523
+
1524
+            if ( empty( $this->arguments ) ) {
1525
+                $this->arguments = $this->get_arguments();
1526
+            }
1527
+
1528
+            if ( ! empty( $this->arguments ) ) {
1529
+                foreach ( $this->arguments as $key => $args ) {
1530
+                    // set the input name from the key
1531
+                    $args['name'] = $key;
1532
+                    //
1533
+                    $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1534
+                    if ( $args['type'] == 'checkbox' && $argument_values[ $key ] == '' ) {
1535
+                        // don't set default for an empty checkbox
1536
+                    } elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1537
+                        $argument_values[ $key ] = $args['default'];
1538
+                    }
1539
+                }
1540
+            }
1409 1541
 
1410
-			if ( ! $this->is_preview() ) {
1411
-				/**
1412
-				 * Filters the settings for a particular widget args.
1413
-				 *
1414
-				 * @param array          $args      The current widget instance's settings.
1415
-				 * @param WP_Super_Duper $widget    The current widget settings.
1416
-				 * @param array          $_instance An array of default widget arguments.
1417
-				 *
1418
-				 *@since 1.0.28
1419
-				 *
1420
-				 */
1421
-				$args = apply_filters( 'wp_super_duper_widget_display_callback', $args, $this, $_instance );
1542
+            return $argument_values;
1543
+        }
1422 1544
 
1423
-				if ( ! is_array( $args ) ) {
1424
-					return $args;
1425
-				}
1426
-			}
1545
+        /**
1546
+         * Set arguments in super duper.
1547
+         *
1548
+         * @return array Set arguments.
1549
+         *@since 1.0.0
1550
+         *
1551
+         */
1552
+        public function set_arguments() {
1553
+            return $this->arguments;
1554
+        }
1427 1555
 
1428
-			$class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1429
-			$class .= " sdel-".$this->get_instance_hash();
1556
+        /**
1557
+         * Get arguments in super duper.
1558
+         *
1559
+         * @return array Get arguments.
1560
+         *@since 1.0.0
1561
+         *
1562
+         */
1563
+        public function get_arguments() {
1564
+            if ( empty( $this->arguments ) ) {
1565
+                $this->arguments = $this->set_arguments();
1566
+            }
1430 1567
 
1431
-			$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1432
-			$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1568
+            $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1569
+            $this->arguments = $this->add_name_from_key( $this->arguments, true );
1433 1570
 
1434
-			$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1435
-			$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
1571
+            return $this->arguments;
1572
+        }
1436 1573
 
1437
-			$shortcode_args = array();
1438
-			$output         = '';
1439
-			$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1440
-			if ( isset( $args['no_wrap'] ) && $args['no_wrap'] ) {
1441
-				$no_wrap = true;
1442
-			}
1443
-			$main_content = $this->output( $args, $shortcode_args, $content );
1444
-			if ( $main_content && ! $no_wrap ) {
1445
-				// wrap the shortcode in a div with the same class as the widget
1446
-				$output .= '<div class="' . $class . '" ' . $attrs . '>';
1447
-				if ( ! empty( $args['title'] ) ) {
1448
-					// if its a shortcode and there is a title try to grab the title wrappers
1449
-					$shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1450
-					if ( empty( $instance ) ) {
1451
-						global $wp_registered_sidebars;
1452
-						if ( ! empty( $wp_registered_sidebars ) ) {
1453
-							foreach ( $wp_registered_sidebars as $sidebar ) {
1454
-								if ( ! empty( $sidebar['before_title'] ) ) {
1455
-									$shortcode_args['before_title'] = $sidebar['before_title'];
1456
-									$shortcode_args['after_title']  = $sidebar['after_title'];
1457
-									break;
1458
-								}
1459
-							}
1460
-						}
1461
-					}
1462
-					$output .= $this->output_title( $shortcode_args, $args );
1463
-				}
1464
-				$output .= $main_content;
1465
-				$output .= '</div>';
1466
-			} elseif ( $main_content && $no_wrap ) {
1467
-				$output .= $main_content;
1468
-			}
1574
+        /**
1575
+         * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1576
+         *
1577
+         * @param array $args
1578
+         * @param array $widget_args
1579
+         * @param string $content
1580
+         */
1581
+        public function output( $args = array(), $widget_args = array(), $content = '' ) {
1469 1582
 
1470
-			// if preview show a placeholder if empty
1471
-			if ( $this->is_preview() && $output == '' ) {
1472
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
1473
-			}
1583
+        }
1474 1584
 
1475
-			return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1476
-		}
1585
+        /**
1586
+         * Add the dynamic block code inline when the wp-block in enqueued.
1587
+         */
1588
+        public function register_block() {
1589
+            wp_add_inline_script( 'wp-blocks', $this->block() );
1590
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
1591
+                wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1592
+            }
1593
+        }
1477 1594
 
1478
-		/**
1479
-		 * Placeholder text to show if output is empty and we are on a preview/builder page.
1480
-		 *
1481
-		 * @param string $name
1482
-		 *
1483
-		 * @return string
1484
-		 */
1485
-		public function preview_placeholder_text( $name = '' ) {
1486
-			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf( __( 'Placeholder for: %s', 'ayecode-connect' ), $name ) . "</div>";
1487
-		}
1595
+        /**
1596
+         * Check if we need to show advanced options.
1597
+         *
1598
+         * @return bool
1599
+         */
1600
+        public function block_show_advanced() {
1488 1601
 
1489
-		/**
1490
-		 * Sometimes booleans values can be turned to strings, so we fix that.
1491
-		 *
1492
-		 * @param $options
1493
-		 *
1494
-		 * @return mixed
1495
-		 */
1496
-		public function string_to_bool( $options ) {
1497
-			// convert bool strings to booleans
1498
-			foreach ( $options as $key => $val ) {
1499
-				if ( $val == 'false' ) {
1500
-					$options[ $key ] = false;
1501
-				} elseif ( $val == 'true' ) {
1502
-					$options[ $key ] = true;
1503
-				}
1504
-			}
1602
+            $show      = false;
1603
+            $arguments = $this->get_arguments();
1505 1604
 
1506
-			return $options;
1507
-		}
1605
+            if ( ! empty( $arguments ) ) {
1606
+                foreach ( $arguments as $argument ) {
1607
+                    if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1608
+                        $show = true;
1609
+                        break; // no need to continue if we know we have it
1610
+                    }
1611
+                }
1612
+            }
1508 1613
 
1509
-		/**
1510
-		 * Get the argument values that are also filterable.
1511
-		 *
1512
-		 * @param $instance
1513
-		 *
1514
-		 * @return array
1515
-		 *@since 1.0.12 Don't set checkbox default value if the value is empty.
1516
-		 *
1517
-		 */
1518
-		public function argument_values( $instance ) {
1519
-			$argument_values = array();
1520
-
1521
-			// set widget instance
1522
-			$this->instance = $instance;
1523
-
1524
-			if ( empty( $this->arguments ) ) {
1525
-				$this->arguments = $this->get_arguments();
1526
-			}
1614
+            return $show;
1615
+        }
1527 1616
 
1528
-			if ( ! empty( $this->arguments ) ) {
1529
-				foreach ( $this->arguments as $key => $args ) {
1530
-					// set the input name from the key
1531
-					$args['name'] = $key;
1532
-					//
1533
-					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1534
-					if ( $args['type'] == 'checkbox' && $argument_values[ $key ] == '' ) {
1535
-						// don't set default for an empty checkbox
1536
-					} elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1537
-						$argument_values[ $key ] = $args['default'];
1538
-					}
1539
-				}
1540
-			}
1617
+        /**
1618
+         * Get the url path to the current folder.
1619
+         *
1620
+         * @return string
1621
+         */
1622
+        public function get_url() {
1623
+            $url = $this->url;
1541 1624
 
1542
-			return $argument_values;
1543
-		}
1625
+            if ( ! $url ) {
1626
+                $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
1627
+                $content_url = untrailingslashit( WP_CONTENT_URL );
1544 1628
 
1545
-		/**
1546
-		 * Set arguments in super duper.
1547
-		 *
1548
-		 * @return array Set arguments.
1549
-		 *@since 1.0.0
1550
-		 *
1551
-		 */
1552
-		public function set_arguments() {
1553
-			return $this->arguments;
1554
-		}
1629
+                // Replace http:// to https://.
1630
+                if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
1631
+                    $content_url = str_replace( 'http://', 'https://', $content_url );
1632
+                }
1555 1633
 
1556
-		/**
1557
-		 * Get arguments in super duper.
1558
-		 *
1559
-		 * @return array Get arguments.
1560
-		 *@since 1.0.0
1561
-		 *
1562
-		 */
1563
-		public function get_arguments() {
1564
-			if ( empty( $this->arguments ) ) {
1565
-				$this->arguments = $this->set_arguments();
1566
-			}
1634
+                // Check if we are inside a plugin
1635
+                $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
1636
+                $url = str_replace( $content_dir, $content_url, $file_dir );
1637
+                $url = trailingslashit( $url );
1638
+                $this->url = $url;
1639
+            }
1567 1640
 
1568
-			$this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1569
-			$this->arguments = $this->add_name_from_key( $this->arguments, true );
1641
+            return $url;
1642
+        }
1570 1643
 
1571
-			return $this->arguments;
1572
-		}
1644
+        /**
1645
+         * Get the url path to the current folder.
1646
+         *
1647
+         * @return string
1648
+         */
1649
+        public function get_url_old() {
1573 1650
 
1574
-		/**
1575
-		 * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1576
-		 *
1577
-		 * @param array $args
1578
-		 * @param array $widget_args
1579
-		 * @param string $content
1580
-		 */
1581
-		public function output( $args = array(), $widget_args = array(), $content = '' ) {
1651
+            $url = $this->url;
1582 1652
 
1583
-		}
1653
+            if ( ! $url ) {
1654
+                // check if we are inside a plugin
1655
+                $file_dir = str_replace( "/includes", "", dirname( __FILE__ ) );
1584 1656
 
1585
-		/**
1586
-		 * Add the dynamic block code inline when the wp-block in enqueued.
1587
-		 */
1588
-		public function register_block() {
1589
-			wp_add_inline_script( 'wp-blocks', $this->block() );
1590
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
1591
-				wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1592
-			}
1593
-		}
1657
+                $dir_parts = explode( "/wp-content/", $file_dir );
1658
+                $url_parts = explode( "/wp-content/", plugins_url() );
1594 1659
 
1595
-		/**
1596
-		 * Check if we need to show advanced options.
1597
-		 *
1598
-		 * @return bool
1599
-		 */
1600
-		public function block_show_advanced() {
1601
-
1602
-			$show      = false;
1603
-			$arguments = $this->get_arguments();
1604
-
1605
-			if ( ! empty( $arguments ) ) {
1606
-				foreach ( $arguments as $argument ) {
1607
-					if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1608
-						$show = true;
1609
-						break; // no need to continue if we know we have it
1610
-					}
1611
-				}
1612
-			}
1660
+                if ( ! empty( $url_parts[0] ) && ! empty( $dir_parts[1] ) ) {
1661
+                    $url       = trailingslashit( $url_parts[0] . "/wp-content/" . $dir_parts[1] );
1662
+                    $this->url = $url;
1663
+                }
1664
+            }
1613 1665
 
1614
-			return $show;
1615
-		}
1616 1666
 
1617
-		/**
1618
-		 * Get the url path to the current folder.
1619
-		 *
1620
-		 * @return string
1621
-		 */
1622
-		public function get_url() {
1623
-			$url = $this->url;
1624
-
1625
-			if ( ! $url ) {
1626
-				$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
1627
-				$content_url = untrailingslashit( WP_CONTENT_URL );
1628
-
1629
-				// Replace http:// to https://.
1630
-				if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
1631
-					$content_url = str_replace( 'http://', 'https://', $content_url );
1632
-				}
1667
+            return $url;
1668
+        }
1633 1669
 
1634
-				// Check if we are inside a plugin
1635
-				$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
1636
-				$url = str_replace( $content_dir, $content_url, $file_dir );
1637
-				$url = trailingslashit( $url );
1638
-				$this->url = $url;
1639
-			}
1670
+        /**
1671
+         * Generate the block icon.
1672
+         *
1673
+         * Enables the use of Font Awesome icons.
1674
+         *
1675
+         * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1676
+         *
1677
+         * @param $icon
1678
+         *
1679
+         * @return string
1680
+         *@since 1.1.0
1681
+         */
1682
+        public function get_block_icon( $icon ) {
1683
+
1684
+            // check if we have a Font Awesome icon
1685
+            $fa_type = '';
1686
+            if ( substr( $icon, 0, 7 ) === "fas fa-" ) {
1687
+                $fa_type = 'solid';
1688
+            } elseif ( substr( $icon, 0, 7 ) === "far fa-" ) {
1689
+                $fa_type = 'regular';
1690
+            } elseif ( substr( $icon, 0, 7 ) === "fab fa-" ) {
1691
+                $fa_type = 'brands';
1692
+            } else {
1693
+                $icon = "'" . $icon . "'";
1694
+            }
1695
+
1696
+            // set the icon if we found one
1697
+            if ( $fa_type ) {
1698
+                $fa_icon = str_replace( array( "fas fa-", "far fa-", "fab fa-" ), "", $icon );
1699
+                $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 . "'}))";
1700
+            }
1701
+
1702
+            return $icon;
1703
+        }
1640 1704
 
1641
-			return $url;
1642
-		}
1705
+        public function group_arguments( $arguments ) {
1706
+            if ( ! empty( $arguments ) ) {
1707
+                $temp_arguments = array();
1708
+                $general        = __( "General", 'ayecode-connect' );
1709
+                $add_sections   = false;
1710
+                foreach ( $arguments as $key => $args ) {
1711
+                    if ( isset( $args['group'] ) ) {
1712
+                        $temp_arguments[ $args['group'] ][ $key ] = $args;
1713
+                        $add_sections                             = true;
1714
+                    } else {
1715
+                        $temp_arguments[ $general ][ $key ] = $args;
1716
+                    }
1717
+                }
1643 1718
 
1644
-		/**
1645
-		 * Get the url path to the current folder.
1646
-		 *
1647
-		 * @return string
1648
-		 */
1649
-		public function get_url_old() {
1650
-
1651
-			$url = $this->url;
1652
-
1653
-			if ( ! $url ) {
1654
-				// check if we are inside a plugin
1655
-				$file_dir = str_replace( "/includes", "", dirname( __FILE__ ) );
1656
-
1657
-				$dir_parts = explode( "/wp-content/", $file_dir );
1658
-				$url_parts = explode( "/wp-content/", plugins_url() );
1659
-
1660
-				if ( ! empty( $url_parts[0] ) && ! empty( $dir_parts[1] ) ) {
1661
-					$url       = trailingslashit( $url_parts[0] . "/wp-content/" . $dir_parts[1] );
1662
-					$this->url = $url;
1663
-				}
1664
-			}
1665
-
1666
-
1667
-			return $url;
1668
-		}
1669
-
1670
-		/**
1671
-		 * Generate the block icon.
1672
-		 *
1673
-		 * Enables the use of Font Awesome icons.
1674
-		 *
1675
-		 * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1676
-		 *
1677
-		 * @param $icon
1678
-		 *
1679
-		 * @return string
1680
-		 *@since 1.1.0
1681
-		 */
1682
-		public function get_block_icon( $icon ) {
1683
-
1684
-			// check if we have a Font Awesome icon
1685
-			$fa_type = '';
1686
-			if ( substr( $icon, 0, 7 ) === "fas fa-" ) {
1687
-				$fa_type = 'solid';
1688
-			} elseif ( substr( $icon, 0, 7 ) === "far fa-" ) {
1689
-				$fa_type = 'regular';
1690
-			} elseif ( substr( $icon, 0, 7 ) === "fab fa-" ) {
1691
-				$fa_type = 'brands';
1692
-			} else {
1693
-				$icon = "'" . $icon . "'";
1694
-			}
1695
-
1696
-			// set the icon if we found one
1697
-			if ( $fa_type ) {
1698
-				$fa_icon = str_replace( array( "fas fa-", "far fa-", "fab fa-" ), "", $icon );
1699
-				$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 . "'}))";
1700
-			}
1701
-
1702
-			return $icon;
1703
-		}
1719
+                // only add sections if more than one
1720
+                if ( $add_sections ) {
1721
+                    $arguments = $temp_arguments;
1722
+                }
1723
+            }
1704 1724
 
1705
-		public function group_arguments( $arguments ) {
1706
-			if ( ! empty( $arguments ) ) {
1707
-				$temp_arguments = array();
1708
-				$general        = __( "General", 'ayecode-connect' );
1709
-				$add_sections   = false;
1710
-				foreach ( $arguments as $key => $args ) {
1711
-					if ( isset( $args['group'] ) ) {
1712
-						$temp_arguments[ $args['group'] ][ $key ] = $args;
1713
-						$add_sections                             = true;
1714
-					} else {
1715
-						$temp_arguments[ $general ][ $key ] = $args;
1716
-					}
1717
-				}
1725
+            return $arguments;
1726
+        }
1718 1727
 
1719
-				// only add sections if more than one
1720
-				if ( $add_sections ) {
1721
-					$arguments = $temp_arguments;
1722
-				}
1723
-			}
1728
+        /**
1729
+         * Parse used group tabs.
1730
+         *
1731
+         * @since 1.1.17
1732
+         */
1733
+        public function group_block_tabs( $tabs, $arguments ) {
1734
+            if ( ! empty( $tabs ) && ! empty( $arguments ) ) {
1735
+                $has_sections = false;
1736
+
1737
+                foreach ( $this->arguments as $key => $args ) {
1738
+                    if ( isset( $args['group'] ) ) {
1739
+                        $has_sections = true;
1740
+                        break;
1741
+                    }
1742
+                }
1724 1743
 
1725
-			return $arguments;
1726
-		}
1744
+                if ( ! $has_sections ) {
1745
+                    return $tabs;
1746
+                }
1727 1747
 
1728
-		/**
1729
-		 * Parse used group tabs.
1730
-		 *
1731
-		 * @since 1.1.17
1732
-		 */
1733
-		public function group_block_tabs( $tabs, $arguments ) {
1734
-			if ( ! empty( $tabs ) && ! empty( $arguments ) ) {
1735
-				$has_sections = false;
1736
-
1737
-				foreach ( $this->arguments as $key => $args ) {
1738
-					if ( isset( $args['group'] ) ) {
1739
-						$has_sections = true;
1740
-						break;
1741
-					}
1742
-				}
1748
+                $new_tabs = array();
1743 1749
 
1744
-				if ( ! $has_sections ) {
1745
-					return $tabs;
1746
-				}
1750
+                foreach ( $tabs as $tab_key => $tab ) {
1751
+                    $new_groups = array();
1747 1752
 
1748
-				$new_tabs = array();
1753
+                    if ( ! empty( $tab['groups'] ) && is_array( $tab['groups'] ) ) {
1754
+                        foreach ( $tab['groups'] as $group ) {
1755
+                            if ( isset( $arguments[ $group ] ) ) {
1756
+                                $new_groups[] = $group;
1757
+                            }
1758
+                        }
1759
+                    }
1749 1760
 
1750
-				foreach ( $tabs as $tab_key => $tab ) {
1751
-					$new_groups = array();
1761
+                    if ( ! empty( $new_groups ) ) {
1762
+                        $tab['groups'] = $new_groups;
1752 1763
 
1753
-					if ( ! empty( $tab['groups'] ) && is_array( $tab['groups'] ) ) {
1754
-						foreach ( $tab['groups'] as $group ) {
1755
-							if ( isset( $arguments[ $group ] ) ) {
1756
-								$new_groups[] = $group;
1757
-							}
1758
-						}
1759
-					}
1764
+                        $new_tabs[ $tab_key ] = $tab;
1765
+                    }
1766
+                }
1760 1767
 
1761
-					if ( ! empty( $new_groups ) ) {
1762
-						$tab['groups'] = $new_groups;
1768
+                $tabs = $new_tabs;
1769
+            }
1763 1770
 
1764
-						$new_tabs[ $tab_key ] = $tab;
1765
-					}
1766
-				}
1771
+            return $tabs;
1772
+        }
1767 1773
 
1768
-				$tabs = $new_tabs;
1769
-			}
1774
+        /**
1775
+         * Output the JS for building the dynamic Guntenberg block.
1776
+         *
1777
+         * @return mixed
1778
+         *@since 1.0.9 Save numbers as numbers and not strings.
1779
+         * @since 1.1.0 Font Awesome classes can be used for icons.
1780
+         * @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.
1781
+         */
1782
+        public function block() {
1783
+            global $sd_is_js_functions_loaded, $aui_bs5;
1770 1784
 
1771
-			return $tabs;
1772
-		}
1785
+            $show_advanced = $this->block_show_advanced();
1773 1786
 
1774
-		/**
1775
-		 * Output the JS for building the dynamic Guntenberg block.
1776
-		 *
1777
-		 * @return mixed
1778
-		 *@since 1.0.9 Save numbers as numbers and not strings.
1779
-		 * @since 1.1.0 Font Awesome classes can be used for icons.
1780
-		 * @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.
1781
-		 */
1782
-		public function block() {
1783
-			global $sd_is_js_functions_loaded, $aui_bs5;
1784
-
1785
-			$show_advanced = $this->block_show_advanced();
1786
-
1787
-			ob_start();
1788
-			?>
1787
+            ob_start();
1788
+            ?>
1789 1789
 			<script>
1790 1790
 			<?php
1791
-			if ( ! $sd_is_js_functions_loaded ) {
1792
-				$sd_is_js_functions_loaded = true;
1793
-			?>
1791
+            if ( ! $sd_is_js_functions_loaded ) {
1792
+                $sd_is_js_functions_loaded = true;
1793
+            ?>
1794 1794
 function sd_show_view_options($this){
1795 1795
 	if(jQuery($this).html().length){
1796 1796
 		jQuery($this).html('');
@@ -2244,8 +2244,8 @@  discard block
 block discarded – undo
2244 2244
 				$classes = [];
2245 2245
 
2246 2246
 				<?php
2247
-				if($aui_bs5){
2248
-					?>
2247
+                if($aui_bs5){
2248
+                    ?>
2249 2249
 				$aui_bs5 = true;
2250 2250
 				$p_ml = 'ms-';
2251 2251
 				$p_mr = 'me-';
@@ -2253,8 +2253,8 @@  discard block
 block discarded – undo
2253 2253
 				$p_pl = 'ps-';
2254 2254
 				$p_pr = 'pe-';
2255 2255
 					<?php
2256
-				}else{
2257
-						?>
2256
+                }else{
2257
+                        ?>
2258 2258
 				$aui_bs5 = false;
2259 2259
 				$p_ml = 'ml-';
2260 2260
 				$p_mr = 'mr-';
@@ -2262,8 +2262,8 @@  discard block
 block discarded – undo
2262 2262
 				$p_pl = 'pl-';
2263 2263
 				$p_pr = 'pr-';
2264 2264
 					<?php
2265
-				}
2266
-				?>
2265
+                }
2266
+                ?>
2267 2267
 
2268 2268
 				// margins
2269 2269
 				if ( $args['mt'] !== undefined && $args['mt'] !== '' ) { $classes.push( "mt-" + $args['mt'] );  $mt = $args['mt']; }else{$mt = null;}
@@ -2447,12 +2447,12 @@  discard block
 block discarded – undo
2447 2447
 			<?php
2448 2448
 
2449 2449
 
2450
-			}
2450
+            }
2451 2451
 
2452
-			if(method_exists($this,'block_global_js')){
2453
-					echo $this->block_global_js();
2454
-			}
2455
-			?>
2452
+            if(method_exists($this,'block_global_js')){
2453
+                    echo $this->block_global_js();
2454
+            }
2455
+            ?>
2456 2456
 
2457 2457
 jQuery(function() {
2458 2458
 
@@ -2505,13 +2505,13 @@  discard block
 block discarded – undo
2505 2505
 						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/.
2506 2506
 						supports: {
2507 2507
 							<?php
2508
-							if(!isset($this->options['block-supports']['renaming'])){
2509
-								$this->options['block-supports']['renaming'] = false;
2510
-							}
2511
-							if ( isset( $this->options['block-supports'] ) ) {
2512
-								echo $this->array_to_attributes( $this->options['block-supports'] );
2513
-							}
2514
-							?>
2508
+                            if(!isset($this->options['block-supports']['renaming'])){
2509
+                                $this->options['block-supports']['renaming'] = false;
2510
+                            }
2511
+                            if ( isset( $this->options['block-supports'] ) ) {
2512
+                                echo $this->array_to_attributes( $this->options['block-supports'] );
2513
+                            }
2514
+                            ?>
2515 2515
 						},
2516 2516
 						__experimentalLabel( attributes, { context } ) {
2517 2517
 							var visibility_html = attributes && attributes.visibility_conditions ? ' &#128065;' : '';
@@ -2521,174 +2521,174 @@  discard block
 block discarded – undo
2521 2521
 						},
2522 2522
 						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.
2523 2523
 						<?php if ( isset( $this->options['block-keywords'] ) ) {
2524
-						echo "keywords : " . $this->options['block-keywords'] . ",";
2525
-						}
2526
-
2527
-
2528
-						// block hover preview.
2529
-						$example_args = array();
2530
-						if(!empty($this->arguments)){
2531
-							foreach($this->arguments as $key => $a_args){
2532
-								if(isset($a_args['example'])){
2533
-									$example_args[$key] = $a_args['example'];
2534
-								}
2535
-							}
2536
-						}
2537
-						$viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: '.absint($this->options['example']['viewportWidth']) : '';
2538
-						$example_inner_blocks = !empty($this->options['example']['innerBlocks']) && is_array($this->options['example']['innerBlocks']) ? 'innerBlocks: ' . wp_json_encode($this->options['example']['innerBlocks']) : '';
2539
-						if( isset( $this->options['example'] ) && $this->options['example'] === false ){
2540
-							// no preview if set to false
2541
-						}elseif( !empty( $example_args ) ){
2542
-							echo "example : {attributes:{".$this->array_to_attributes( $example_args )."},$viewport_width},";
2543
-						}elseif( !empty( $this->options['example'] ) ){
2544
-							unset($this->options['example']['viewportWidth']);
2545
-							unset($this->options['example']['innerBlocks']);
2546
-							$example_atts = $this->array_to_attributes( $this->options['example'] );
2547
-							$example_parts = array();
2548
-							if($example_atts){
2549
-								$example_parts[] = rtrim($example_atts,",");
2550
-							}
2551
-							if($viewport_width){
2552
-								$example_parts[] = $viewport_width;
2553
-							}
2554
-							if($example_inner_blocks){
2555
-								$example_parts[] = $example_inner_blocks;
2556
-							}
2557
-							if(!empty($example_parts)){
2558
-								echo "example : {".implode(',', $example_parts)."},";
2559
-							}
2560
-						}else{
2561
-							echo 'example : {viewportWidth: 500},';
2562
-						}
2563
-
2564
-
2565
-
2566
-						// limit to parent
2567
-						if( !empty( $this->options['parent'] ) ){
2568
-							echo "parent : " . wp_json_encode( $this->options['parent'] ) . ",";
2569
-						}
2570
-
2571
-						// limit allowed blocks
2572
-						if( !empty( $this->options['allowed-blocks'] ) ){
2573
-							echo "allowedBlocks : " . wp_json_encode( $this->options['allowed-blocks'] ) . ",";
2574
-						}
2575
-
2576
-						// maybe set no_wrap
2577
-						$no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
2578
-						if ( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ) {
2579
-							$no_wrap = true;
2580
-						}
2581
-						if ( $no_wrap ) {
2582
-							$this->options['block-wrap'] = '';
2583
-						}
2584
-
2585
-						// maybe load the drag/drop functions.
2586
-						$img_drag_drop = false;
2587
-
2588
-						$show_alignment = false;
2589
-						// align feature
2590
-						/*echo "supports: {";
2524
+                        echo "keywords : " . $this->options['block-keywords'] . ",";
2525
+                        }
2526
+
2527
+
2528
+                        // block hover preview.
2529
+                        $example_args = array();
2530
+                        if(!empty($this->arguments)){
2531
+                            foreach($this->arguments as $key => $a_args){
2532
+                                if(isset($a_args['example'])){
2533
+                                    $example_args[$key] = $a_args['example'];
2534
+                                }
2535
+                            }
2536
+                        }
2537
+                        $viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: '.absint($this->options['example']['viewportWidth']) : '';
2538
+                        $example_inner_blocks = !empty($this->options['example']['innerBlocks']) && is_array($this->options['example']['innerBlocks']) ? 'innerBlocks: ' . wp_json_encode($this->options['example']['innerBlocks']) : '';
2539
+                        if( isset( $this->options['example'] ) && $this->options['example'] === false ){
2540
+                            // no preview if set to false
2541
+                        }elseif( !empty( $example_args ) ){
2542
+                            echo "example : {attributes:{".$this->array_to_attributes( $example_args )."},$viewport_width},";
2543
+                        }elseif( !empty( $this->options['example'] ) ){
2544
+                            unset($this->options['example']['viewportWidth']);
2545
+                            unset($this->options['example']['innerBlocks']);
2546
+                            $example_atts = $this->array_to_attributes( $this->options['example'] );
2547
+                            $example_parts = array();
2548
+                            if($example_atts){
2549
+                                $example_parts[] = rtrim($example_atts,",");
2550
+                            }
2551
+                            if($viewport_width){
2552
+                                $example_parts[] = $viewport_width;
2553
+                            }
2554
+                            if($example_inner_blocks){
2555
+                                $example_parts[] = $example_inner_blocks;
2556
+                            }
2557
+                            if(!empty($example_parts)){
2558
+                                echo "example : {".implode(',', $example_parts)."},";
2559
+                            }
2560
+                        }else{
2561
+                            echo 'example : {viewportWidth: 500},';
2562
+                        }
2563
+
2564
+
2565
+
2566
+                        // limit to parent
2567
+                        if( !empty( $this->options['parent'] ) ){
2568
+                            echo "parent : " . wp_json_encode( $this->options['parent'] ) . ",";
2569
+                        }
2570
+
2571
+                        // limit allowed blocks
2572
+                        if( !empty( $this->options['allowed-blocks'] ) ){
2573
+                            echo "allowedBlocks : " . wp_json_encode( $this->options['allowed-blocks'] ) . ",";
2574
+                        }
2575
+
2576
+                        // maybe set no_wrap
2577
+                        $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
2578
+                        if ( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ) {
2579
+                            $no_wrap = true;
2580
+                        }
2581
+                        if ( $no_wrap ) {
2582
+                            $this->options['block-wrap'] = '';
2583
+                        }
2584
+
2585
+                        // maybe load the drag/drop functions.
2586
+                        $img_drag_drop = false;
2587
+
2588
+                        $show_alignment = false;
2589
+                        // align feature
2590
+                        /*echo "supports: {";
2591 2591
 						echo "	align: true,";
2592 2592
 						echo "  html: false";
2593 2593
 						echo "},";*/
2594 2594
 
2595 2595
 
2596
-							echo "attributes : {";
2597
-
2598
-							if ( $show_advanced ) {
2599
-								echo "show_advanced: {";
2600
-								echo "	type: 'boolean',";
2601
-								echo "  default: false,";
2602
-								echo "},";
2603
-							}
2604
-
2605
-							// block wrap element
2606
-							if ( ! empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
2607
-								echo "block_wrap: {";
2608
-								echo "	type: 'string',";
2609
-								echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
2610
-								echo "},";
2611
-							}
2612
-
2613
-
2614
-							if ( ! empty( $this->arguments ) ) {
2615
-
2616
-								foreach ( $this->arguments as $key => $args ) {
2617
-
2618
-									if( $args['type'] == 'image' ||  $args['type'] == 'images' ){
2619
-										$img_drag_drop = true;
2620
-									}
2621
-
2622
-									// set if we should show alignment
2623
-									if ( $key == 'alignment' ) {
2624
-										$show_alignment = true;
2625
-									}
2626
-
2627
-									$extra = '';
2628
-
2629
-									if ( $args['type'] == 'notice' ||  $args['type'] == 'tab' ) {
2630
-										continue;
2631
-									}
2632
-									elseif ( $args['type'] == 'checkbox' ) {
2633
-										$type    = 'boolean';
2634
-										$default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
2635
-									} elseif ( $args['type'] == 'number' ) {
2636
-										$type    = 'number';
2637
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2638
-									} elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
2639
-										$type = 'array';
2640
-										if ( isset( $args['default'] ) && is_array( $args['default'] ) ) {
2641
-											$default = ! empty( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
2642
-										} else {
2643
-											$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2644
-										}
2645
-									} elseif ( $args['type'] == 'tagselect' ) {
2646
-										$type    = 'array';
2647
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2648
-									} elseif ( $args['type'] == 'multiselect' ) {
2649
-										$type    = 'array';
2650
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2651
-									} elseif ( $args['type'] == 'image_xy' ) {
2652
-										$type    = 'object';
2653
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2654
-									} elseif ( $args['type'] == 'image' ) {
2655
-										$type    = 'string';
2656
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2657
-
2658
-										// add a field for ID
2659
-	//                                    echo $key . "_id : {";
2660
-	//                                    echo "type : 'number',";
2661
-	//                                    echo "},";
2662
-	//                                    echo $key . "_xy : {";
2663
-	//                                    echo "type : 'object',";
2664
-	//                                    echo "},";
2665
-
2666
-									} else {
2667
-										$type    = !empty($args['hidden_type']) ? esc_attr($args['hidden_type']) : 'string';
2668
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2669
-
2670
-									}
2671
-									echo $key . " : {";
2672
-									echo "type : '$type',";
2673
-									echo "default : $default,";
2674
-									echo "},";
2675
-								}
2676
-							}
2677
-
2678
-							echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
2679
-							echo "sd_shortcode : {type : 'string',default: ''},";
2680
-
2681
-							if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
2682
-								echo "sd_shortcode_close : {type : 'string',default: ''},";
2683
-							}
2684
-
2685
-							echo "className: { type: 'string', default: '' },";
2686
-
2687
-							echo "},";
2688
-
2689
-
2690
-
2691
-						?>
2596
+                            echo "attributes : {";
2597
+
2598
+                            if ( $show_advanced ) {
2599
+                                echo "show_advanced: {";
2600
+                                echo "	type: 'boolean',";
2601
+                                echo "  default: false,";
2602
+                                echo "},";
2603
+                            }
2604
+
2605
+                            // block wrap element
2606
+                            if ( ! empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
2607
+                                echo "block_wrap: {";
2608
+                                echo "	type: 'string',";
2609
+                                echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
2610
+                                echo "},";
2611
+                            }
2612
+
2613
+
2614
+                            if ( ! empty( $this->arguments ) ) {
2615
+
2616
+                                foreach ( $this->arguments as $key => $args ) {
2617
+
2618
+                                    if( $args['type'] == 'image' ||  $args['type'] == 'images' ){
2619
+                                        $img_drag_drop = true;
2620
+                                    }
2621
+
2622
+                                    // set if we should show alignment
2623
+                                    if ( $key == 'alignment' ) {
2624
+                                        $show_alignment = true;
2625
+                                    }
2626
+
2627
+                                    $extra = '';
2628
+
2629
+                                    if ( $args['type'] == 'notice' ||  $args['type'] == 'tab' ) {
2630
+                                        continue;
2631
+                                    }
2632
+                                    elseif ( $args['type'] == 'checkbox' ) {
2633
+                                        $type    = 'boolean';
2634
+                                        $default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
2635
+                                    } elseif ( $args['type'] == 'number' ) {
2636
+                                        $type    = 'number';
2637
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2638
+                                    } elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
2639
+                                        $type = 'array';
2640
+                                        if ( isset( $args['default'] ) && is_array( $args['default'] ) ) {
2641
+                                            $default = ! empty( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
2642
+                                        } else {
2643
+                                            $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2644
+                                        }
2645
+                                    } elseif ( $args['type'] == 'tagselect' ) {
2646
+                                        $type    = 'array';
2647
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2648
+                                    } elseif ( $args['type'] == 'multiselect' ) {
2649
+                                        $type    = 'array';
2650
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2651
+                                    } elseif ( $args['type'] == 'image_xy' ) {
2652
+                                        $type    = 'object';
2653
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2654
+                                    } elseif ( $args['type'] == 'image' ) {
2655
+                                        $type    = 'string';
2656
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2657
+
2658
+                                        // add a field for ID
2659
+    //                                    echo $key . "_id : {";
2660
+    //                                    echo "type : 'number',";
2661
+    //                                    echo "},";
2662
+    //                                    echo $key . "_xy : {";
2663
+    //                                    echo "type : 'object',";
2664
+    //                                    echo "},";
2665
+
2666
+                                    } else {
2667
+                                        $type    = !empty($args['hidden_type']) ? esc_attr($args['hidden_type']) : 'string';
2668
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2669
+
2670
+                                    }
2671
+                                    echo $key . " : {";
2672
+                                    echo "type : '$type',";
2673
+                                    echo "default : $default,";
2674
+                                    echo "},";
2675
+                                }
2676
+                            }
2677
+
2678
+                            echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
2679
+                            echo "sd_shortcode : {type : 'string',default: ''},";
2680
+
2681
+                            if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
2682
+                                echo "sd_shortcode_close : {type : 'string',default: ''},";
2683
+                            }
2684
+
2685
+                            echo "className: { type: 'string', default: '' },";
2686
+
2687
+                            echo "},";
2688
+
2689
+
2690
+
2691
+                        ?>
2692 2692
 
2693 2693
 						// The "edit" property must be a valid function.
2694 2694
 						edit: function (props) {
@@ -2763,10 +2763,10 @@  discard block
 block discarded – undo
2763 2763
 							}
2764 2764
 
2765 2765
 							<?php
2766
-							if(!empty($this->options['block-edit-raw'])) {
2767
-								echo $this->options['block-edit-raw']; // strings have to be in single quotes, may cause issues
2768
-							}else{
2769
-							?>
2766
+                            if(!empty($this->options['block-edit-raw'])) {
2767
+                                echo $this->options['block-edit-raw']; // strings have to be in single quotes, may cause issues
2768
+                            }else{
2769
+                            ?>
2770 2770
 
2771 2771
 function hasSelectedInnerBlock(props) {
2772 2772
 	const select = wp.data.select('core/editor');
@@ -2788,9 +2788,9 @@  discard block
 block discarded – undo
2788 2788
 
2789 2789
 	var $value = '';
2790 2790
 	<?php
2791
-	// if we have a post_type and a category then link them
2792
-	if( isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked']) ){
2793
-	?>
2791
+    // if we have a post_type and a category then link them
2792
+    if( isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked']) ){
2793
+    ?>
2794 2794
 	if(typeof(prev_attributes[props.clientId]) != 'undefined' && selectedBlock && selectedBlock.clientId === props.clientId){
2795 2795
 		$pt = props.attributes.post_type;
2796 2796
 		if(post_type_rest_slugs.length){
@@ -2803,11 +2803,11 @@  discard block
 block discarded – undo
2803 2803
 			term_query_type = $pt;
2804 2804
 		}
2805 2805
 <?php
2806
-	$cat_path = '';
2807
-	if ( ! empty( $this->arguments['post_type']['onchange_rest']['path'] ) ) {
2808
-		$cat_path = esc_js( strip_tags( $this->arguments['post_type']['onchange_rest']['path'] ) );
2809
-		$cat_path = str_replace( array( '&quot;', '&#039;' ), array( '"', "'" ), $cat_path );
2810
-	}
2806
+    $cat_path = '';
2807
+    if ( ! empty( $this->arguments['post_type']['onchange_rest']['path'] ) ) {
2808
+        $cat_path = esc_js( strip_tags( $this->arguments['post_type']['onchange_rest']['path'] ) );
2809
+        $cat_path = str_replace( array( '&quot;', '&#039;' ), array( '"', "'" ), $cat_path );
2810
+    }
2811 2811
 ?>
2812 2812
 		/* taxonomies */
2813 2813
 		if($value && 'post_type' in prev_attributes[props.clientId] && 'category' in prev_attributes[props.clientId] && run){
@@ -2899,7 +2899,7 @@  discard block
 block discarded – undo
2899 2899
 <?php
2900 2900
 $current_screen = function_exists('get_current_screen') ? get_current_screen() : '';
2901 2901
 if(!empty($current_screen->base) && $current_screen->base==='widgets'){
2902
-	echo 'const { deviceType } = "";';
2902
+    echo 'const { deviceType } = "";';
2903 2903
 }else{
2904 2904
 ?>
2905 2905
 /** Get device type const. */
@@ -2963,8 +2963,8 @@  discard block
 block discarded – undo
2963 2963
 										'attributes': props.attributes,
2964 2964
 										'block_parent_name': parentBlocks.length ? parentBlocks[parentBlocks.length - 1].name : '',
2965 2965
 										'post_id': <?php global $post; if ( isset( $post->ID ) ) {
2966
-										echo $post->ID;
2967
-									}else{echo '0';}?>,
2966
+                                        echo $post->ID;
2967
+                                    }else{echo '0';}?>,
2968 2968
 										'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
2969 2969
 									};
2970 2970
 
@@ -2978,20 +2978,20 @@  discard block
 block discarded – undo
2978 2978
 										}
2979 2979
 
2980 2980
 										 <?php
2981
-										if(!empty($this->options['nested-block'])){
2982
-											?>
2981
+                                        if(!empty($this->options['nested-block'])){
2982
+                                            ?>
2983 2983
 											// props.setAttributes({content: env});
2984 2984
 										is_fetching = false;
2985 2985
 										prev_attributes[props.clientId] = props.attributes;
2986 2986
 											 <?php
2987
-										}else{
2988
-										?>
2987
+                                        }else{
2988
+                                        ?>
2989 2989
 										props.setAttributes({content: env});
2990 2990
 										is_fetching = false;
2991 2991
 										prev_attributes[props.clientId] = props.attributes;
2992 2992
 										<?php
2993
-										}
2994
-										?>
2993
+                                        }
2994
+                                        ?>
2995 2995
 
2996 2996
 
2997 2997
 										// if AUI is active call the js init function
@@ -3010,31 +3010,31 @@  discard block
 block discarded – undo
3010 3010
 							}
3011 3011
 
3012 3012
 							<?php
3013
-							if(!empty($this->options['block-edit-js'])) {
3014
-								echo  $this->options['block-edit-js'] ; // strings have to be in single quotes, may cause issues
3015
-							}
3013
+                            if(!empty($this->options['block-edit-js'])) {
3014
+                                echo  $this->options['block-edit-js'] ; // strings have to be in single quotes, may cause issues
3015
+                            }
3016 3016
 
3017 3017
 
3018 3018
 
3019 3019
 
3020
-							if(empty($this->options['block-save-return'])){
3021
-							?>
3020
+                            if(empty($this->options['block-save-return'])){
3021
+                            ?>
3022 3022
 								///////////////////////////////////////////////////////////////////////
3023 3023
 
3024 3024
 									 // build the shortcode.
3025 3025
 								shortcode = "[<?php echo $this->options['base_id'];?>";
3026 3026
 								<?php
3027 3027
 
3028
-								if(! empty( $this->arguments )){
3028
+                                if(! empty( $this->arguments )){
3029 3029
 
3030
-								foreach($this->arguments as $key => $args){
3031
-								   // if($args['type']=='tabs'){continue;}
3030
+                                foreach($this->arguments as $key => $args){
3031
+                                    // if($args['type']=='tabs'){continue;}
3032 3032
 
3033
-								   // don't add metadata arguments
3034
-								   if (substr($key, 0, 9 ) === 'metadata_') {
3035
-									   continue;
3036
-								   }
3037
-								?>
3033
+                                    // don't add metadata arguments
3034
+                                    if (substr($key, 0, 9 ) === 'metadata_') {
3035
+                                        continue;
3036
+                                    }
3037
+                                ?>
3038 3038
 								if (props.attributes.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3039 3039
 									if ('<?php echo esc_attr( $key );?>' == 'html') {
3040 3040
 									} else if ('<?php echo esc_attr( $args['type'] );?>' == 'image_xy') {
@@ -3045,10 +3045,10 @@  discard block
 block discarded – undo
3045 3045
 									}
3046 3046
 								}
3047 3047
 								<?php
3048
-								}
3049
-								}
3048
+                                }
3049
+                                }
3050 3050
 
3051
-								?>
3051
+                                ?>
3052 3052
 								shortcode += "]";
3053 3053
 
3054 3054
 								if(shortcode){
@@ -3060,17 +3060,17 @@  discard block
 block discarded – undo
3060 3060
 
3061 3061
 
3062 3062
 									<?php
3063
-									if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
3064
-										echo "props.setAttributes({sd_shortcode_close: '[/".esc_attr( $this->options['base_id'] )."]'});";
3065
-									}
3066
-									?>
3063
+                                    if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
3064
+                                        echo "props.setAttributes({sd_shortcode_close: '[/".esc_attr( $this->options['base_id'] )."]'});";
3065
+                                    }
3066
+                                    ?>
3067 3067
 								}
3068 3068
 
3069 3069
 
3070 3070
 							///////////////////////////////////////////////////////////////////////
3071 3071
 							<?php
3072
-							} // end nested block check
3073
-							?>
3072
+                            } // end nested block check
3073
+                            ?>
3074 3074
 
3075 3075
 							return [
3076 3076
 
@@ -3094,10 +3094,10 @@  discard block
 block discarded – undo
3094 3094
 
3095 3095
 									<?php
3096 3096
 
3097
-									if(! empty( $this->arguments )){
3097
+                                    if(! empty( $this->arguments )){
3098 3098
 
3099
-									if ( $show_advanced ) {
3100
-									?>
3099
+                                    if ( $show_advanced ) {
3100
+                                    ?>
3101 3101
 									el('div', {
3102 3102
 											style: {'padding-left': '16px','padding-right': '16px'}
3103 3103
 										},
@@ -3114,119 +3114,119 @@  discard block
 block discarded – undo
3114 3114
 									)
3115 3115
 									,
3116 3116
 									<?php
3117
-									}
3118
-
3119
-									$arguments = $this->group_arguments( $this->arguments );
3120
-									$block_group_tabs = ! empty( $this->options['block_group_tabs'] ) ? $this->group_block_tabs( $this->options['block_group_tabs'], $arguments ) : array();
3121
-
3122
-									// Do we have sections?
3123
-									$has_sections = $arguments == $this->arguments ? false : true;
3124
-
3125
-									if($has_sections){
3126
-									$panel_count = 0;
3127
-									$open_tab = '';
3128
-
3129
-									$open_tab_groups = array();
3130
-									$used_tabs = array();
3131
-
3132
-									foreach ( $arguments as $key => $args ) {
3133
-										$close_tab = false;
3134
-										$close_tabs = false;
3135
-
3136
-										 if ( ! empty( $block_group_tabs ) ) {
3137
-											foreach ( $block_group_tabs as $tab_name => $tab_args ) {
3138
-												if ( in_array( $key, $tab_args['groups'] ) ) {
3139
-													$open_tab_groups[] = $key;
3140
-
3141
-													if ( $open_tab != $tab_name ) {
3142
-														$tab_args['tab']['tabs_open'] = $open_tab == '' ? true : false;
3143
-														$tab_args['tab']['open'] = true;
3144
-
3145
-														$this->block_tab_start( '', $tab_args );
3146
-														$open_tab = $tab_name;
3147
-														$used_tabs[] = $tab_name;
3148
-													}
3149
-
3150
-													if ( $open_tab_groups == $tab_args['groups'] ) {
3151
-														$close_tab = true;
3152
-														$open_tab_groups = array();
3153
-
3154
-														if ( $used_tabs == array_keys( $block_group_tabs ) ) {
3155
-															$close_tabs = true;
3156
-														}
3157
-													}
3158
-												}
3159
-											}
3160
-										}
3161
-										?>
3117
+                                    }
3118
+
3119
+                                    $arguments = $this->group_arguments( $this->arguments );
3120
+                                    $block_group_tabs = ! empty( $this->options['block_group_tabs'] ) ? $this->group_block_tabs( $this->options['block_group_tabs'], $arguments ) : array();
3121
+
3122
+                                    // Do we have sections?
3123
+                                    $has_sections = $arguments == $this->arguments ? false : true;
3124
+
3125
+                                    if($has_sections){
3126
+                                    $panel_count = 0;
3127
+                                    $open_tab = '';
3128
+
3129
+                                    $open_tab_groups = array();
3130
+                                    $used_tabs = array();
3131
+
3132
+                                    foreach ( $arguments as $key => $args ) {
3133
+                                        $close_tab = false;
3134
+                                        $close_tabs = false;
3135
+
3136
+                                            if ( ! empty( $block_group_tabs ) ) {
3137
+                                            foreach ( $block_group_tabs as $tab_name => $tab_args ) {
3138
+                                                if ( in_array( $key, $tab_args['groups'] ) ) {
3139
+                                                    $open_tab_groups[] = $key;
3140
+
3141
+                                                    if ( $open_tab != $tab_name ) {
3142
+                                                        $tab_args['tab']['tabs_open'] = $open_tab == '' ? true : false;
3143
+                                                        $tab_args['tab']['open'] = true;
3144
+
3145
+                                                        $this->block_tab_start( '', $tab_args );
3146
+                                                        $open_tab = $tab_name;
3147
+                                                        $used_tabs[] = $tab_name;
3148
+                                                    }
3149
+
3150
+                                                    if ( $open_tab_groups == $tab_args['groups'] ) {
3151
+                                                        $close_tab = true;
3152
+                                                        $open_tab_groups = array();
3153
+
3154
+                                                        if ( $used_tabs == array_keys( $block_group_tabs ) ) {
3155
+                                                            $close_tabs = true;
3156
+                                                        }
3157
+                                                    }
3158
+                                                }
3159
+                                            }
3160
+                                        }
3161
+                                        ?>
3162 3162
 										el(wp.components.PanelBody, {
3163 3163
 												title: '<?php esc_attr_e( $key ); ?>',
3164 3164
 												initialOpen: <?php if ( $panel_count ) {
3165
-												echo "false";
3166
-											} else {
3167
-												echo "true";
3168
-											}?>
3165
+                                                echo "false";
3166
+                                            } else {
3167
+                                                echo "true";
3168
+                                            }?>
3169 3169
 											},
3170 3170
 											<?php
3171
-											foreach ( $args as $k => $a ) {
3172
-												$this->block_tab_start( $k, $a );
3173
-												$this->block_row_start( $k, $a );
3174
-												$this->build_block_arguments( $k, $a );
3175
-												$this->block_row_end( $k, $a );
3176
-												$this->block_tab_end( $k, $a );
3177
-											}
3178
-											?>
3171
+                                            foreach ( $args as $k => $a ) {
3172
+                                                $this->block_tab_start( $k, $a );
3173
+                                                $this->block_row_start( $k, $a );
3174
+                                                $this->build_block_arguments( $k, $a );
3175
+                                                $this->block_row_end( $k, $a );
3176
+                                                $this->block_tab_end( $k, $a );
3177
+                                            }
3178
+                                            ?>
3179 3179
 										),
3180 3180
 										<?php
3181
-										$panel_count ++;
3181
+                                        $panel_count ++;
3182 3182
 
3183
-										if($close_tab || $close_tabs){
3184
-											$tab_args = array(
3185
-												'tab'	=> array(
3186
-													'tabs_close' => $close_tabs,
3187
-												'close' => true,
3188
-												)
3183
+                                        if($close_tab || $close_tabs){
3184
+                                            $tab_args = array(
3185
+                                                'tab'	=> array(
3186
+                                                    'tabs_close' => $close_tabs,
3187
+                                                'close' => true,
3188
+                                                )
3189 3189
 
3190
-											);
3191
-											$this->block_tab_end( '', $tab_args );
3190
+                                            );
3191
+                                            $this->block_tab_end( '', $tab_args );
3192 3192
 //											echo '###close'; print_r($tab_args);
3193
-											$panel_count = 0;
3194
-										}
3193
+                                            $panel_count = 0;
3194
+                                        }
3195 3195
 //
3196 3196
 
3197
-									}
3198
-									}else {
3199
-									?>
3197
+                                    }
3198
+                                    }else {
3199
+                                    ?>
3200 3200
 									el(wp.components.PanelBody, {
3201 3201
 											title: '<?php esc_attr_e( "Settings", 'ayecode-connect' ); ?>',
3202 3202
 											initialOpen: true
3203 3203
 										},
3204 3204
 										<?php
3205
-										foreach ( $this->arguments as $key => $args ) {
3206
-											$this->block_row_start( $key, $args );
3207
-											$this->build_block_arguments( $key, $args );
3208
-											$this->block_row_end( $key, $args );
3209
-										}
3210
-										?>
3205
+                                        foreach ( $this->arguments as $key => $args ) {
3206
+                                            $this->block_row_start( $key, $args );
3207
+                                            $this->build_block_arguments( $key, $args );
3208
+                                            $this->block_row_end( $key, $args );
3209
+                                        }
3210
+                                        ?>
3211 3211
 									),
3212 3212
 									<?php
3213
-									}
3213
+                                    }
3214 3214
 
3215
-									}
3216
-									?>
3215
+                                    }
3216
+                                    ?>
3217 3217
 
3218 3218
 								),
3219 3219
 
3220 3220
 								<?php
3221
-								// If the user sets block-output array then build it
3222
-								if ( ! empty( $this->options['block-output'] ) ) {
3223
-								$this->block_element( $this->options['block-output'] );
3224
-							}elseif(!empty($this->options['block-edit-return'])){
3225
-								   echo $this->options['block-edit-return'];
3226
-							}else{
3227
-								// if no block-output is set then we try and get the shortcode html output via ajax.
3228
-								$block_edit_wrap_tag = !empty($this->options['block_edit_wrap_tag']) ? esc_attr($this->options['block_edit_wrap_tag']) : 'div';
3229
-								?>
3221
+                                // If the user sets block-output array then build it
3222
+                                if ( ! empty( $this->options['block-output'] ) ) {
3223
+                                $this->block_element( $this->options['block-output'] );
3224
+                            }elseif(!empty($this->options['block-edit-return'])){
3225
+                                    echo $this->options['block-edit-return'];
3226
+                            }else{
3227
+                                // if no block-output is set then we try and get the shortcode html output via ajax.
3228
+                                $block_edit_wrap_tag = !empty($this->options['block_edit_wrap_tag']) ? esc_attr($this->options['block_edit_wrap_tag']) : 'div';
3229
+                                ?>
3230 3230
 								el('<?php echo esc_attr($block_edit_wrap_tag); ?>', wp.blockEditor.useBlockProps({
3231 3231
 									dangerouslySetInnerHTML: {__html: onChangeContent()},
3232 3232
 									className: props.className,
@@ -3234,13 +3234,13 @@  discard block
 block discarded – undo
3234 3234
 									style: {'minHeight': '30px'}
3235 3235
 								}))
3236 3236
 								<?php
3237
-								}
3238
-								?>
3237
+                                }
3238
+                                ?>
3239 3239
 							]; // end return
3240 3240
 
3241 3241
 							<?php
3242
-							} // end block-edit-raw else
3243
-							?>
3242
+                            } // end block-edit-raw else
3243
+                            ?>
3244 3244
 						},
3245 3245
 
3246 3246
 						// The "save" property must be specified and must be a valid function.
@@ -3254,16 +3254,16 @@  discard block
 block discarded – undo
3254 3254
 							$html = '';
3255 3255
 							<?php
3256 3256
 
3257
-							if(! empty( $this->arguments )){
3257
+                            if(! empty( $this->arguments )){
3258 3258
 
3259
-							foreach($this->arguments as $key => $args){
3260
-							   // if($args['type']=='tabs'){continue;}
3259
+                            foreach($this->arguments as $key => $args){
3260
+                                // if($args['type']=='tabs'){continue;}
3261 3261
 
3262
-							   // don't add metadata arguments
3263
-							   if (substr($key, 0, 9 ) === 'metadata_') {
3264
-								   continue;
3265
-							   }
3266
-							?>
3262
+                                // don't add metadata arguments
3263
+                                if (substr($key, 0, 9 ) === 'metadata_') {
3264
+                                    continue;
3265
+                                }
3266
+                            ?>
3267 3267
 							if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3268 3268
 								if ('<?php echo esc_attr( $key );?>' == 'html') {
3269 3269
 									$html = attr.<?php echo esc_attr( $key );?>;
@@ -3274,10 +3274,10 @@  discard block
 block discarded – undo
3274 3274
 								}
3275 3275
 							}
3276 3276
 							<?php
3277
-							}
3278
-							}
3277
+                            }
3278
+                            }
3279 3279
 
3280
-							?>
3280
+                            ?>
3281 3281
 							content += "]";
3282 3282
 							 content = '';
3283 3283
 
@@ -3287,7 +3287,7 @@  discard block
 block discarded – undo
3287 3287
 //                                $html = 'el( InnerBlocks.Content )';
3288 3288
 //                                <?php
3289 3289
 //                            }
3290
-							?>
3290
+                            ?>
3291 3291
 							// if has html element
3292 3292
 							if ($html) {
3293 3293
 								//content += $html + "[/<?php echo $this->options['base_id'];?>]";
@@ -3320,12 +3320,12 @@  discard block
 block discarded – undo
3320 3320
 //                                <x?php
3321 3321
 //							}else
3322 3322
 
3323
-							if(!empty($this->options['block-output'])){
3323
+                            if(!empty($this->options['block-output'])){
3324 3324
 //                               echo "return";
3325 3325
 //                               $this->block_element( $this->options['block-output'], true );
3326 3326
 //                               echo ";";
3327 3327
 
3328
-							   ?>
3328
+                                ?>
3329 3329
 							  return el(
3330 3330
 								   '',
3331 3331
 								   {},
@@ -3335,10 +3335,10 @@  discard block
 block discarded – undo
3335 3335
 							   );
3336 3336
 								<?php
3337 3337
 
3338
-							}elseif(!empty($this->options['block-save-return'])){
3339
-								   echo 'return ' . $this->options['block-save-return'];
3340
-							}elseif(!empty($this->options['nested-block'])){
3341
-								?>
3338
+                            }elseif(!empty($this->options['block-save-return'])){
3339
+                                    echo 'return ' . $this->options['block-save-return'];
3340
+                            }elseif(!empty($this->options['nested-block'])){
3341
+                                ?>
3342 3342
 							  return el(
3343 3343
 								   '',
3344 3344
 								   {},
@@ -3347,22 +3347,22 @@  discard block
 block discarded – undo
3347 3347
 								 //  el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id'];?>]"}})
3348 3348
 							   );
3349 3349
 								<?php
3350
-							}elseif(!empty( $this->options['block-save-return'] ) ){
3351
-								echo "return ". $this->options['block-edit-return'].";";
3352
-							}elseif(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
3353
-							?>
3350
+                            }elseif(!empty( $this->options['block-save-return'] ) ){
3351
+                                echo "return ". $this->options['block-edit-return'].";";
3352
+                            }elseif(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
3353
+                            ?>
3354 3354
 							return content;
3355 3355
 							<?php
3356
-							}else{
3357
-							?>
3356
+                            }else{
3357
+                            ?>
3358 3358
 							var block_wrap = 'div';
3359 3359
 							if (attr.hasOwnProperty("block_wrap")) {
3360 3360
 								block_wrap = attr.block_wrap;
3361 3361
 							}
3362 3362
 							return el(block_wrap, wp.blockEditor.useBlockProps.save( {dangerouslySetInnerHTML: {__html: content}, className: align} ));
3363 3363
 							<?php
3364
-							}
3365
-							?>
3364
+                            }
3365
+                            ?>
3366 3366
 
3367 3367
 
3368 3368
 						}
@@ -3376,43 +3376,43 @@  discard block
 block discarded – undo
3376 3376
 				});
3377 3377
 			</script>
3378 3378
 			<?php
3379
-			$output = ob_get_clean();
3379
+            $output = ob_get_clean();
3380 3380
 
3381
-			/*
3381
+            /*
3382 3382
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
3383 3383
 			 */
3384 3384
 
3385
-			return str_replace( array(
3386
-				'<script>',
3387
-				'</script>'
3388
-			), '', $output );
3389
-		}
3385
+            return str_replace( array(
3386
+                '<script>',
3387
+                '</script>'
3388
+            ), '', $output );
3389
+        }
3390 3390
 
3391 3391
 
3392 3392
 
3393
-		public function block_row_start($key, $args){
3393
+        public function block_row_start($key, $args){
3394 3394
 
3395
-			// check for row
3396
-			if(!empty($args['row'])){
3395
+            // check for row
3396
+            if(!empty($args['row'])){
3397 3397
 
3398
-				if(!empty($args['row']['open'])){
3398
+                if(!empty($args['row']['open'])){
3399 3399
 
3400
-				// element require
3401
-				$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3402
-				$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3403
-				$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3404
-				$device_type_icon = '';
3405
-				if($device_type=='Desktop'){
3406
-					$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3407
-				}elseif($device_type=='Tablet'){
3408
-					$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3409
-				}elseif($device_type=='Mobile'){
3410
-					$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3411
-				}
3412
-				echo $element_require;
3413
-				echo $device_type_require;
3400
+                // element require
3401
+                $element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3402
+                $device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3403
+                $device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3404
+                $device_type_icon = '';
3405
+                if($device_type=='Desktop'){
3406
+                    $device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3407
+                }elseif($device_type=='Tablet'){
3408
+                    $device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3409
+                }elseif($device_type=='Mobile'){
3410
+                    $device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3411
+                }
3412
+                echo $element_require;
3413
+                echo $device_type_require;
3414 3414
 
3415
-					if(false){?><script><?php }?>
3415
+                    if(false){?><script><?php }?>
3416 3416
 						el('div', {
3417 3417
 								className: 'bsui components-base-control',
3418 3418
 							},
@@ -3425,8 +3425,8 @@  discard block
 block discarded – undo
3425 3425
 								<?php if($device_type_icon){ ?>
3426 3426
 									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)"}})
3427 3427
 								<?php
3428
-								}
3429
-								?>
3428
+                                }
3429
+                                ?>
3430 3430
 
3431 3431
 
3432 3432
 							),
@@ -3450,51 +3450,51 @@  discard block
 block discarded – undo
3450 3450
 									},
3451 3451
 
3452 3452
 					<?php
3453
-					if(false){?></script><?php }
3454
-				}elseif(!empty($args['row']['close'])){
3455
-					if(false){?><script><?php }?>
3453
+                    if(false){?></script><?php }
3454
+                }elseif(!empty($args['row']['close'])){
3455
+                    if(false){?><script><?php }?>
3456 3456
 						el(
3457 3457
 							'div',
3458 3458
 							{
3459 3459
 								className: 'col pl-0 ps-0',
3460 3460
 							},
3461 3461
 					<?php
3462
-					if(false){?></script><?php }
3463
-				}else{
3464
-					if(false){?><script><?php }?>
3462
+                    if(false){?></script><?php }
3463
+                }else{
3464
+                    if(false){?><script><?php }?>
3465 3465
 						el(
3466 3466
 							'div',
3467 3467
 							{
3468 3468
 								className: 'col pl-0 ps-0 pr-2 pe-2',
3469 3469
 							},
3470 3470
 					<?php
3471
-					if(false){?></script><?php }
3472
-				}
3471
+                    if(false){?></script><?php }
3472
+                }
3473 3473
 
3474
-			}
3474
+            }
3475 3475
 
3476
-		}
3476
+        }
3477 3477
 
3478
-		public function block_row_end($key, $args){
3478
+        public function block_row_end($key, $args){
3479 3479
 
3480
-			if(!empty($args['row'])){
3481
-				// maybe close
3482
-				if(!empty($args['row']['close'])){
3483
-					echo "))";
3484
-				}
3480
+            if(!empty($args['row'])){
3481
+                // maybe close
3482
+                if(!empty($args['row']['close'])){
3483
+                    echo "))";
3484
+                }
3485 3485
 
3486
-				echo "),";
3487
-			}
3488
-		}
3486
+                echo "),";
3487
+            }
3488
+        }
3489 3489
 
3490
-		public function block_tab_start($key, $args){
3490
+        public function block_tab_start($key, $args){
3491 3491
 
3492
-			// check for row
3493
-			if(!empty($args['tab'])){
3492
+            // check for row
3493
+            if(!empty($args['tab'])){
3494 3494
 
3495
-				if(!empty($args['tab']['tabs_open'])){
3495
+                if(!empty($args['tab']['tabs_open'])){
3496 3496
 
3497
-					if(false){?><script><?php }?>
3497
+                    if(false){?><script><?php }?>
3498 3498
 
3499 3499
 el('div',{className: 'bsui'},
3500 3500
 
@@ -3507,12 +3507,12 @@  discard block
 block discarded – undo
3507 3507
 										tabs: [
3508 3508
 
3509 3509
 					<?php
3510
-					if(false){?></script><?php }
3511
-				}
3510
+                    if(false){?></script><?php }
3511
+                }
3512 3512
 
3513
-				if(!empty($args['tab']['open'])){
3513
+                if(!empty($args['tab']['open'])){
3514 3514
 
3515
-					if(false){?><script><?php }?>
3515
+                    if(false){?><script><?php }?>
3516 3516
 							{
3517 3517
 												name: '<?php echo addslashes( esc_attr( $args['tab']['key']) ); ?>',
3518 3518
 												title: el('div', {dangerouslySetInnerHTML: {__html: '<?php echo addslashes( esc_attr( $args['tab']['title']) ); ?>'}}),
@@ -3521,93 +3521,93 @@  discard block
 block discarded – undo
3521 3521
 									className: 'components-base-control__help mb-0',
3522 3522
 									dangerouslySetInnerHTML: {__html:'<?php echo addslashes( $args['tab']['desc'] ); ?>'}
3523 3523
 								}),<?php }
3524
-					if(false){?></script><?php }
3525
-				}
3524
+                    if(false){?></script><?php }
3525
+                }
3526 3526
 
3527
-			}
3527
+            }
3528 3528
 
3529
-		}
3529
+        }
3530 3530
 
3531
-		public function block_tab_end($key, $args){
3531
+        public function block_tab_end($key, $args){
3532 3532
 
3533
-			if(!empty($args['tab'])){
3534
-				// maybe close
3535
-				if(!empty($args['tab']['close'])){
3536
-					echo ")}, /* tab close */";
3537
-				}
3533
+            if(!empty($args['tab'])){
3534
+                // maybe close
3535
+                if(!empty($args['tab']['close'])){
3536
+                    echo ")}, /* tab close */";
3537
+                }
3538 3538
 
3539
-				if(!empty($args['tab']['tabs_close'])){
3540
-					if(false){?><script><?php }?>
3539
+                if(!empty($args['tab']['tabs_close'])){
3540
+                    if(false){?><script><?php }?>
3541 3541
 						]}, ( tab ) => {
3542 3542
 								return tab.content;
3543 3543
 							}
3544 3544
 						)), /* tabs close */
3545 3545
 					<?php if(false){ ?></script><?php }
3546
-				}
3547
-			}
3548
-		}
3549
-
3550
-		public function build_block_arguments( $key, $args ) {
3551
-			$custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
3552
-			$options           = '';
3553
-			$extra             = '';
3554
-			$require           = '';
3555
-			$inside_elements   = '';
3556
-			$after_elements	   = '';
3557
-
3558
-			// `content` is a protected and special argument
3559
-			if ( $key == 'content' ) {
3560
-				return;
3561
-			}
3562
-
3563
-			$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3564
-			$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3565
-			$device_type_icon = '';
3566
-			if($device_type=='Desktop'){
3567
-				$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3568
-			}elseif($device_type=='Tablet'){
3569
-				$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3570
-			}elseif($device_type=='Mobile'){
3571
-				$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3572
-			}
3573
-
3574
-			// icon
3575
-			$icon = '';
3576
-			if( !empty( $args['icon'] ) ){
3577
-				$icon .= "el('div', {";
3578
-									$icon .= "dangerouslySetInnerHTML: {__html: '".self::get_widget_icon( esc_attr($args['icon']))."'},";
3579
-									$icon .= "className: 'text-center',";
3580
-									$icon .= "title: '".addslashes( $args['title'] )."',";
3581
-								$icon .= "}),";
3582
-
3583
-				// blank title as its added to the icon.
3584
-				$args['title'] = '';
3585
-			}
3586
-
3587
-			// require advanced
3588
-			$require_advanced = ! empty( $args['advanced'] ) ? "props.attributes.show_advanced && " : "";
3589
-
3590
-			// element require
3591
-			$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3592
-
3546
+                }
3547
+            }
3548
+        }
3593 3549
 
3594
-			$onchange  = "props.setAttributes({ $key: $key } )";
3595
-			$onchangecomplete  = "";
3596
-			$value     = "props.attributes.$key";
3597
-			$text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'colorx','range' );
3598
-			if ( in_array( $args['type'], $text_type ) ) {
3599
-				$type = 'TextControl';
3600
-				// Save numbers as numbers and not strings
3601
-				if ( $args['type'] == 'number' ) {
3602
-					$onchange = "props.setAttributes({ $key: $key ? Number($key) : '' } )";
3603
-				}
3550
+        public function build_block_arguments( $key, $args ) {
3551
+            $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
3552
+            $options           = '';
3553
+            $extra             = '';
3554
+            $require           = '';
3555
+            $inside_elements   = '';
3556
+            $after_elements	   = '';
3557
+
3558
+            // `content` is a protected and special argument
3559
+            if ( $key == 'content' ) {
3560
+                return;
3561
+            }
3562
+
3563
+            $device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3564
+            $device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3565
+            $device_type_icon = '';
3566
+            if($device_type=='Desktop'){
3567
+                $device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3568
+            }elseif($device_type=='Tablet'){
3569
+                $device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3570
+            }elseif($device_type=='Mobile'){
3571
+                $device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3572
+            }
3573
+
3574
+            // icon
3575
+            $icon = '';
3576
+            if( !empty( $args['icon'] ) ){
3577
+                $icon .= "el('div', {";
3578
+                                    $icon .= "dangerouslySetInnerHTML: {__html: '".self::get_widget_icon( esc_attr($args['icon']))."'},";
3579
+                                    $icon .= "className: 'text-center',";
3580
+                                    $icon .= "title: '".addslashes( $args['title'] )."',";
3581
+                                $icon .= "}),";
3582
+
3583
+                // blank title as its added to the icon.
3584
+                $args['title'] = '';
3585
+            }
3586
+
3587
+            // require advanced
3588
+            $require_advanced = ! empty( $args['advanced'] ) ? "props.attributes.show_advanced && " : "";
3589
+
3590
+            // element require
3591
+            $element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3592
+
3593
+
3594
+            $onchange  = "props.setAttributes({ $key: $key } )";
3595
+            $onchangecomplete  = "";
3596
+            $value     = "props.attributes.$key";
3597
+            $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'colorx','range' );
3598
+            if ( in_array( $args['type'], $text_type ) ) {
3599
+                $type = 'TextControl';
3600
+                // Save numbers as numbers and not strings
3601
+                if ( $args['type'] == 'number' ) {
3602
+                    $onchange = "props.setAttributes({ $key: $key ? Number($key) : '' } )";
3603
+                }
3604 3604
 
3605
-				if (substr($key, 0, 9 ) === 'metadata_') {
3606
-					$real_key = str_replace('metadata_','', $key );
3607
-					$onchange = "props.setAttributes({ metadata: { $real_key: $key } } )";
3608
-					$value     = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3609
-				}
3610
-			}
3605
+                if (substr($key, 0, 9 ) === 'metadata_') {
3606
+                    $real_key = str_replace('metadata_','', $key );
3607
+                    $onchange = "props.setAttributes({ metadata: { $real_key: $key } } )";
3608
+                    $value     = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3609
+                }
3610
+            }
3611 3611
 //			else if ( $args['type'] == 'popup' ) {
3612 3612
 //				$type = 'TextControl';
3613 3613
 //				$args['type'] == 'text';
@@ -3625,21 +3625,21 @@  discard block
 block discarded – undo
3625 3625
 //
3626 3626
 //				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3627 3627
 //			}
3628
-			else if ( $args['type'] == 'styleid' ) {
3629
-				$type = 'TextControl';
3630
-				$args['type'] == 'text';
3631
-				// Save numbers as numbers and not strings
3632
-				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3633
-			}else if ( $args['type'] == 'notice' ) {
3634
-
3635
-				$notice_message = !empty($args['desc']) ? addslashes($args['desc']) : '';
3636
-				$notice_status = !empty($args['status']) ? esc_attr($args['status']) : 'info';
3637
-
3638
-				$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'}}))),";
3639
-				echo $notice_message ? $element_require . $notice : '';
3640
-				return;
3641
-			}
3642
-			/*
3628
+            else if ( $args['type'] == 'styleid' ) {
3629
+                $type = 'TextControl';
3630
+                $args['type'] == 'text';
3631
+                // Save numbers as numbers and not strings
3632
+                $value     = "props.attributes.$key ? props.attributes.$key : ''";
3633
+            }else if ( $args['type'] == 'notice' ) {
3634
+
3635
+                $notice_message = !empty($args['desc']) ? addslashes($args['desc']) : '';
3636
+                $notice_status = !empty($args['status']) ? esc_attr($args['status']) : 'info';
3637
+
3638
+                $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'}}))),";
3639
+                echo $notice_message ? $element_require . $notice : '';
3640
+                return;
3641
+            }
3642
+            /*
3643 3643
 			 * https://www.wptricks.com/question/set-current-tab-on-a-gutenberg-tabpanel-component-from-outside-that-component/ es5 layout
3644 3644
 						elseif($args['type']=='tabs'){
3645 3645
 							?>
@@ -3692,22 +3692,22 @@  discard block
 block discarded – undo
3692 3692
 							return;
3693 3693
 						}
3694 3694
 */
3695
-			elseif ( $args['type'] == 'color' ) {
3696
-				$type = 'ColorPicker';
3697
-				$onchange = "";
3698
-				$extra = "color: $value,";
3699
-				if(!empty($args['disable_alpha'])){
3700
-					$extra .= "disableAlpha: true,";
3701
-				}
3702
-				$onchangecomplete = "onChangeComplete: function($key) {
3695
+            elseif ( $args['type'] == 'color' ) {
3696
+                $type = 'ColorPicker';
3697
+                $onchange = "";
3698
+                $extra = "color: $value,";
3699
+                if(!empty($args['disable_alpha'])){
3700
+                    $extra .= "disableAlpha: true,";
3701
+                }
3702
+                $onchangecomplete = "onChangeComplete: function($key) {
3703 3703
 				value =  $key.rgb.a && $key.rgb.a < 1 ? \"rgba(\"+$key.rgb.r+\",\"+$key.rgb.g+\",\"+$key.rgb.b+\",\"+$key.rgb.a+\")\" : $key.hex;
3704 3704
 						props.setAttributes({
3705 3705
 							$key: value
3706 3706
 						});
3707 3707
 					},";
3708
-			}elseif ( $args['type'] == 'gradient' ) {
3709
-				$type = 'GradientPicker';
3710
-				$extra .= "gradients: [{
3708
+            }elseif ( $args['type'] == 'gradient' ) {
3709
+                $type = 'GradientPicker';
3710
+                $extra .= "gradients: [{
3711 3711
 			name: 'Vivid cyan blue to vivid purple',
3712 3712
 			gradient:
3713 3713
 				'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
@@ -3744,10 +3744,10 @@  discard block
 block discarded – undo
3744 3744
 			slug: 'cool-to-warm-spectrum',
3745 3745
 		}],";
3746 3746
 
3747
-			}elseif ( $args['type'] == 'image' ) {
3747
+            }elseif ( $args['type'] == 'image' ) {
3748 3748
 //                print_r($args);
3749 3749
 
3750
-				$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,{
3750
+                $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,{
3751 3751
 							url:  props.attributes.{$key}_use_featured === true ? 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxzdmcgYmFzZVByb2ZpbGU9InRpbnkiIGhlaWdodD0iNDAwIiB2ZXJzaW9uPSIxLjIiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6ZXY9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEveG1sLWV2ZW50cyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzIC8+PHJlY3QgZmlsbD0iI2QzZDNkMyIgaGVpZ2h0PSI0MDAiIHdpZHRoPSI0MDAiIHg9IjAiIHk9IjAiIC8+PGxpbmUgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMCIgeDE9IjAiIHgyPSI0MDAiIHkxPSIwIiB5Mj0iNDAwIiAvPjxsaW5lIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMTAiIHgxPSIwIiB4Mj0iNDAwIiB5MT0iNDAwIiB5Mj0iMCIgLz48cmVjdCBmaWxsPSIjZDNkM2QzIiBoZWlnaHQ9IjUwIiB3aWR0aD0iMjE4LjAiIHg9IjkxLjAiIHk9IjE3NS4wIiAvPjx0ZXh0IGZpbGw9IndoaXRlIiBmb250LXNpemU9IjMwIiBmb250LXdlaWdodD0iYm9sZCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iMjAwLjAiIHk9IjIwNy41Ij5QTEFDRUhPTERFUjwvdGV4dD48L3N2Zz4='  : props.attributes.$key,
3752 3752
 							value: props.attributes.{$key}_xy.x !== undefined && props.attributes.{$key}_xy.x >= 0 ? props.attributes.{$key}_xy  : {x: 0.5,y: 0.5,},
3753 3753
 //                            value: props.attributes.{$key}_xy,
@@ -3768,16 +3768,16 @@  discard block
 block discarded – undo
3768 3768
 						}), ";
3769 3769
 
3770 3770
 
3771
-				$value = '""';
3772
-				$type = 'MediaUpload';
3773
-				$extra .= "onSelect: function(media){
3771
+                $value = '""';
3772
+                $type = 'MediaUpload';
3773
+                $extra .= "onSelect: function(media){
3774 3774
 					  return props.setAttributes({
3775 3775
 						  $key: media.url,
3776 3776
 						  {$key}_id: media.id
3777 3777
 						});
3778 3778
 					  },";
3779
-				   $extra .= "type: 'image',";
3780
-				   $extra .= "render: function (obj) {
3779
+                    $extra .= "type: 'image',";
3780
+                    $extra .= "render: function (obj) {
3781 3781
 						return el( 'div',{},
3782 3782
 						( !props.attributes.$key && !props.attributes.{$key}_use_featured ) && el( wp.components.Button, {
3783 3783
 						  className: 'components-button components-circular-option-picker__clear is-primary is-smallx',
@@ -3803,11 +3803,11 @@  discard block
 block discarded – undo
3803 3803
 
3804 3804
 
3805 3805
 					  }";
3806
-				$onchange = "";
3806
+                $onchange = "";
3807 3807
 
3808
-				//$inside_elements = ",el('div',{},'file upload')";
3809
-			} else if ( $args['type'] == 'images' ) {
3810
-				$img_preview = "props.attributes.$key && (function() {
3808
+                //$inside_elements = ",el('div',{},'file upload')";
3809
+            } else if ( $args['type'] == 'images' ) {
3810
+                $img_preview = "props.attributes.$key && (function() {
3811 3811
 	let uploads = JSON.parse('['+props.attributes.$key+']');
3812 3812
 	let images = [];
3813 3813
 	uploads.map((upload, index) => (
@@ -3834,9 +3834,9 @@  discard block
 block discarded – undo
3834 3834
 })(),";
3835 3835
 
3836 3836
 
3837
-				$value = '""';
3838
-				$type = 'MediaUpload';
3839
-				$extra .= "onSelect: function(media){
3837
+                $value = '""';
3838
+                $type = 'MediaUpload';
3839
+                $extra .= "onSelect: function(media){
3840 3840
 	let slim_images = props.attributes.$key ? JSON.parse('['+props.attributes.$key+']') : [];
3841 3841
 	if(media.length){
3842 3842
 		for (var i=0; i < media.length; i++) {
@@ -3849,9 +3849,9 @@  discard block
 block discarded – undo
3849 3849
 	}
3850 3850
 	return props.setAttributes({ $key: slimImagesV});
3851 3851
 },";
3852
-				$extra .= "type: 'image',";
3853
-				$extra .= "multiple: true,";
3854
-				$extra .= "render: function (obj) {
3852
+                $extra .= "type: 'image',";
3853
+                $extra .= "multiple: true,";
3854
+                $extra .= "render: function (obj) {
3855 3855
 	/* Init the sort */
3856 3856
 	enableDragSort('sd-sortable');
3857 3857
 	return el( 'div',{},
@@ -3878,40 +3878,40 @@  discard block
 block discarded – undo
3878 3878
 		)
3879 3879
 	)
3880 3880
 }";
3881
-				$onchange = "";
3882
-
3883
-				//$inside_elements = ",el('div',{},'file upload')";
3884
-			}
3885
-			elseif ( $args['type'] == 'checkbox' ) {
3886
-				$type = 'CheckboxControl';
3887
-				$extra .= "checked: props.attributes.$key,";
3888
-				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
3889
-			} elseif ( $args['type'] == 'textarea' ) {
3890
-				$type = 'TextareaControl';
3891
-
3892
-			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
3893
-				$type = 'SelectControl';
3894
-
3895
-				if($args['name'] == 'category' && !empty($args['post_type_linked'])){
3896
-					$options .= "options: taxonomies_".str_replace("-","_", $this->id).",";
3897
-				}elseif($args['name'] == 'sort_by' && !empty($args['post_type_linked'])){
3898
-					$options .= "options: sort_by_".str_replace("-","_", $this->id).",";
3899
-				}else {
3900
-
3901
-					if ( ! empty( $args['options'] ) ) {
3902
-						$options .= "options: [";
3903
-						foreach ( $args['options'] as $option_val => $option_label ) {
3904
-							$options .= "{ value: '" . esc_attr( $option_val ) . "', label: '" . esc_js( addslashes( $option_label ) ) . "' },";
3905
-						}
3906
-						$options .= "],";
3907
-					}
3908
-				}
3909
-				if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3910
-					$extra .= ' multiple:true,style:{height:"auto",paddingRight:"8px","overflow-y":"auto"}, ';
3911
-				}
3881
+                $onchange = "";
3882
+
3883
+                //$inside_elements = ",el('div',{},'file upload')";
3884
+            }
3885
+            elseif ( $args['type'] == 'checkbox' ) {
3886
+                $type = 'CheckboxControl';
3887
+                $extra .= "checked: props.attributes.$key,";
3888
+                $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
3889
+            } elseif ( $args['type'] == 'textarea' ) {
3890
+                $type = 'TextareaControl';
3891
+
3892
+            } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
3893
+                $type = 'SelectControl';
3894
+
3895
+                if($args['name'] == 'category' && !empty($args['post_type_linked'])){
3896
+                    $options .= "options: taxonomies_".str_replace("-","_", $this->id).",";
3897
+                }elseif($args['name'] == 'sort_by' && !empty($args['post_type_linked'])){
3898
+                    $options .= "options: sort_by_".str_replace("-","_", $this->id).",";
3899
+                }else {
3900
+
3901
+                    if ( ! empty( $args['options'] ) ) {
3902
+                        $options .= "options: [";
3903
+                        foreach ( $args['options'] as $option_val => $option_label ) {
3904
+                            $options .= "{ value: '" . esc_attr( $option_val ) . "', label: '" . esc_js( addslashes( $option_label ) ) . "' },";
3905
+                        }
3906
+                        $options .= "],";
3907
+                    }
3908
+                }
3909
+                if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3910
+                    $extra .= ' multiple:true,style:{height:"auto",paddingRight:"8px","overflow-y":"auto"}, ';
3911
+                }
3912 3912
 
3913
-				if($args['type'] == 'multiselect' ||  ( isset( $args['multiple'] ) && $args['multiple'] ) ){
3914
-					$after_elements	 .= "props.attributes.$key && el( wp.components.Button, {
3913
+                if($args['type'] == 'multiselect' ||  ( isset( $args['multiple'] ) && $args['multiple'] ) ){
3914
+                    $after_elements	 .= "props.attributes.$key && el( wp.components.Button, {
3915 3915
 									  className: 'components-button components-circular-option-picker__clear is-secondary is-small',
3916 3916
 									  style: {margin:'-8px 0 8px 0',display: 'block'},
3917 3917
 									  onClick: function(){
@@ -3922,8 +3922,8 @@  discard block
 block discarded – undo
3922 3922
 									},
3923 3923
 									'Clear'
3924 3924
 							),";
3925
-				}
3926
-			} elseif ( $args['type'] == 'tagselect' ) {
3925
+                }
3926
+            } elseif ( $args['type'] == 'tagselect' ) {
3927 3927
 //				$type = 'FormTokenField';
3928 3928
 //
3929 3929
 //				if ( ! empty( $args['options'] ) ) {
@@ -3958,20 +3958,20 @@  discard block
 block discarded – undo
3958 3958
 //				$value     = "[]";
3959 3959
 //				$extra .= ' __experimentalExpandOnFocus: true,';
3960 3960
 
3961
-			} else if ( $args['type'] == 'alignment' ) {
3962
-				$type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
3963
-			} else if ( $args['type'] == 'margins' ) {
3964
-
3965
-			} else if ( $args['type'] == 'visibility_conditions' && ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
3966
-				$type = 'TextControl';
3967
-				$value = "(props.attributes.$key ? props.attributes.$key : '')";
3968
-				$args['type'] = 'text';
3969
-				$options .= 'disabled:true,';
3970
-				$bsvc_title = esc_attr( addslashes( $args['title'] ) );
3971
-				$bsvc_body = $this->block_visibility_fields( $args );
3972
-				// @TODO reset button
3973
-				$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>';
3974
-				$after_elements .= "el('div', {className: 'components-base-control bs-vc-button-wrap'}, el(wp.components.Button, {
3961
+            } else if ( $args['type'] == 'alignment' ) {
3962
+                $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
3963
+            } else if ( $args['type'] == 'margins' ) {
3964
+
3965
+            } else if ( $args['type'] == 'visibility_conditions' && ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
3966
+                $type = 'TextControl';
3967
+                $value = "(props.attributes.$key ? props.attributes.$key : '')";
3968
+                $args['type'] = 'text';
3969
+                $options .= 'disabled:true,';
3970
+                $bsvc_title = esc_attr( addslashes( $args['title'] ) );
3971
+                $bsvc_body = $this->block_visibility_fields( $args );
3972
+                // @TODO reset button
3973
+                $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>';
3974
+                $after_elements .= "el('div', {className: 'components-base-control bs-vc-button-wrap'}, el(wp.components.Button, {
3975 3975
 						className: 'components-button components-circular-option-picker__clear is-primary is-smallx',
3976 3976
 						onClick: function() {
3977 3977
 							var sValue = props.attributes." . $key . ";
@@ -3997,39 +3997,39 @@  discard block
 block discarded – undo
3997 3997
 					},
3998 3998
 					'" . addslashes( ! empty( $args['button_title'] ) ? $args['button_title'] : $args['title'] ) . "'
3999 3999
 				) ),";
4000
-			} else {
4001
-				return;// if we have not implemented the control then don't break the JS.
4002
-			}
4003
-
4004
-			// color input does not show the labels so we add them
4005
-			if($args['type']=='color'){
4006
-				// add show only if advanced
4007
-				echo $require_advanced;
4008
-				// add setting require if defined
4009
-				echo $element_require;
4010
-				echo "el('div', {style: {'marginBottom': '8px'}}, '".addslashes( $args['title'] )."'),";
4011
-			}
4012
-
4013
-			// add show only if advanced
4014
-			echo $require_advanced;
4015
-			// add setting require if defined
4016
-			echo $element_require;
4017
-			echo $device_type_require;
4018
-
4019
-			// icon
4020
-			echo $icon;
4021
-			?>
4000
+            } else {
4001
+                return;// if we have not implemented the control then don't break the JS.
4002
+            }
4003
+
4004
+            // color input does not show the labels so we add them
4005
+            if($args['type']=='color'){
4006
+                // add show only if advanced
4007
+                echo $require_advanced;
4008
+                // add setting require if defined
4009
+                echo $element_require;
4010
+                echo "el('div', {style: {'marginBottom': '8px'}}, '".addslashes( $args['title'] )."'),";
4011
+            }
4012
+
4013
+            // add show only if advanced
4014
+            echo $require_advanced;
4015
+            // add setting require if defined
4016
+            echo $element_require;
4017
+            echo $device_type_require;
4018
+
4019
+            // icon
4020
+            echo $icon;
4021
+            ?>
4022 4022
 			el( <?php echo $args['type'] == 'image' || $args['type'] == 'images' ? $type  : "wp.components.".$type; ?>, {
4023 4023
 			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
4024
-			} else { ?>'<?php echo addslashes( trim( esc_html( $args['title'] ) ) ); ?>'<?php } ?>,
4024
+            } else { ?>'<?php echo addslashes( trim( esc_html( $args['title'] ) ) ); ?>'<?php } ?>,
4025 4025
 			help: <?php echo ( isset( $args['desc'] ) ? "el('span', {dangerouslySetInnerHTML: {__html: '" . trim( wp_kses_post( addslashes( $args['desc'] ) ) ) . "'}})" : "''" ); ?>,
4026 4026
 			value: <?php echo $value; ?>,
4027 4027
 			<?php if ( $type == 'TextControl' && $args['type'] != 'text' ) {
4028
-				echo "type: '" . addslashes( $args['type'] ) . "',";
4029
-			} ?>
4028
+                echo "type: '" . addslashes( $args['type'] ) . "',";
4029
+            } ?>
4030 4030
 			<?php if ( ! empty( $args['placeholder'] ) ) {
4031
-				echo "placeholder: '" . esc_js( addslashes( trim( esc_html( $args['placeholder'] ) ) ) ) . "',";
4032
-			} ?>
4031
+                echo "placeholder: '" . esc_js( addslashes( trim( esc_html( $args['placeholder'] ) ) ) ) . "',";
4032
+            } ?>
4033 4033
 			<?php echo $options; ?>
4034 4034
 			<?php echo $extra; ?>
4035 4035
 			<?php echo $custom_attributes; ?>
@@ -4041,1266 +4041,1266 @@  discard block
 block discarded – undo
4041 4041
 			<?php } ?>
4042 4042
 		} <?php echo $inside_elements; ?> ),
4043 4043
 			<?php
4044
-			echo $after_elements;
4045
-		}
4044
+            echo $after_elements;
4045
+        }
4046 4046
 
4047
-		/**
4048
-		 * Convert an array of attributes to block string.
4049
-		 *
4050
-		 * @param $custom_attributes
4051
-		 *
4052
-		 * @return string
4053
-		 *@todo there is prob a faster way to do this, also we could add some validation here.
4054
-		 *
4055
-		 */
4056
-		public function array_to_attributes( $custom_attributes, $html = false ) {
4057
-			$attributes = '';
4058
-			if ( ! empty( $custom_attributes ) ) {
4059
-
4060
-				foreach ( $custom_attributes as $key => $val ) {
4061
-					if(is_array($val)){
4062
-						$attributes .= $key.': {'.$this->array_to_attributes( $val, $html ).'},';
4063
-					}else{
4064
-						$attributes .= $html ?  " $key='$val' " : "'$key': '$val',";
4065
-					}
4066
-				}
4047
+        /**
4048
+         * Convert an array of attributes to block string.
4049
+         *
4050
+         * @param $custom_attributes
4051
+         *
4052
+         * @return string
4053
+         *@todo there is prob a faster way to do this, also we could add some validation here.
4054
+         *
4055
+         */
4056
+        public function array_to_attributes( $custom_attributes, $html = false ) {
4057
+            $attributes = '';
4058
+            if ( ! empty( $custom_attributes ) ) {
4059
+
4060
+                foreach ( $custom_attributes as $key => $val ) {
4061
+                    if(is_array($val)){
4062
+                        $attributes .= $key.': {'.$this->array_to_attributes( $val, $html ).'},';
4063
+                    }else{
4064
+                        $attributes .= $html ?  " $key='$val' " : "'$key': '$val',";
4065
+                    }
4066
+                }
4067 4067
 
4068
-			}
4068
+            }
4069 4069
 
4070
-			return $attributes;
4071
-		}
4070
+            return $attributes;
4071
+        }
4072 4072
 
4073 4073
 
4074 4074
 
4075
-		/**
4076
-		 * A self looping function to create the output for JS block elements.
4077
-		 *
4078
-		 * This is what is output in the WP Editor visual view.
4079
-		 *
4080
-		 * @param $args
4081
-		 */
4082
-		public function block_element( $args, $save = false ) {
4075
+        /**
4076
+         * A self looping function to create the output for JS block elements.
4077
+         *
4078
+         * This is what is output in the WP Editor visual view.
4079
+         *
4080
+         * @param $args
4081
+         */
4082
+        public function block_element( $args, $save = false ) {
4083 4083
 
4084 4084
 //            print_r($args);echo '###';exit;
4085 4085
 
4086
-			if ( ! empty( $args ) ) {
4087
-				foreach ( $args as $element => $new_args ) {
4086
+            if ( ! empty( $args ) ) {
4087
+                foreach ( $args as $element => $new_args ) {
4088 4088
 
4089
-					if ( is_array( $new_args ) ) { // its an element
4089
+                    if ( is_array( $new_args ) ) { // its an element
4090 4090
 
4091 4091
 
4092
-						if ( isset( $new_args['element'] ) ) {
4092
+                        if ( isset( $new_args['element'] ) ) {
4093 4093
 
4094
-							if ( isset( $new_args['element_require'] ) ) {
4095
-								echo str_replace( array(
4096
-										"'+",
4097
-										"+'"
4098
-									), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
4099
-								unset( $new_args['element_require'] );
4100
-							}
4094
+                            if ( isset( $new_args['element_require'] ) ) {
4095
+                                echo str_replace( array(
4096
+                                        "'+",
4097
+                                        "+'"
4098
+                                    ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
4099
+                                unset( $new_args['element_require'] );
4100
+                            }
4101 4101
 
4102
-							if($new_args['element']=='InnerBlocks'){
4103
-								echo "\n el( InnerBlocks, {";
4104
-							}elseif($new_args['element']=='innerBlocksProps'){
4105
-								$element = isset($new_args['inner_element']) ? esc_attr($new_args['inner_element']) : 'div';
4106
-							  //  echo "\n el( 'section', wp.blockEditor.useInnerBlocksProps( blockProps, {";
4102
+                            if($new_args['element']=='InnerBlocks'){
4103
+                                echo "\n el( InnerBlocks, {";
4104
+                            }elseif($new_args['element']=='innerBlocksProps'){
4105
+                                $element = isset($new_args['inner_element']) ? esc_attr($new_args['inner_element']) : 'div';
4106
+                                //  echo "\n el( 'section', wp.blockEditor.useInnerBlocksProps( blockProps, {";
4107 4107
 //                                echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4108
-								echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4109
-								echo $save ? "wp.blockEditor.useBlockProps.save( {" : "wp.blockEditor.useBlockProps( {";
4110
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4111
-
4112
-								echo "} ), {";
4113
-								echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element( $new_args['innerBlocksProps'],$save ) : '';
4114
-							//    echo '###';
4115
-
4116
-							  //  echo '###';
4117
-							}elseif($new_args['element']=='BlocksProps'){
4118
-
4119
-								if ( isset($new_args['if_inner_element']) ) {
4120
-									$element = $new_args['if_inner_element'];
4121
-								}else {
4122
-									$element = isset($new_args['inner_element']) ? "'".esc_attr($new_args['inner_element'])."'" : "'div'";
4123
-								}
4124
-
4125
-								unset($new_args['inner_element']);
4126
-								echo $save ? "\n el( $element, wp.blockEditor.useBlockProps.save( {" : "\n el( $element, wp.blockEditor.useBlockProps( {";
4127
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4128
-
4129
-
4130
-							   // echo "} ),";
4131
-
4132
-							}else{
4133
-								echo "\n el( '" . $new_args['element'] . "', {";
4134
-							}
4135
-
4136
-
4137
-							// get the attributes
4138
-							foreach ( $new_args as $new_key => $new_value ) {
4139
-
4140
-
4141
-								if ( $new_key == 'element' || $new_key == 'content'|| $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
4142
-									// do nothing
4143
-								} else {
4144
-									echo $this->block_element( array( $new_key => $new_value ),$save );
4145
-								}
4146
-							}
4147
-
4148
-							echo $new_args['element']=='BlocksProps' ? '} ),' : "},";// end attributes
4149
-
4150
-							// get the content
4151
-							$first_item = 0;
4152
-							foreach ( $new_args as $new_key => $new_value ) {
4153
-								if ( $new_key === 'content' || $new_key === 'if_content' || is_array( $new_value ) ) {
4154
-
4155
-									if ( $new_key === 'content' ) {
4156
-										echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
4157
-									}else if ( $new_key === 'if_content' ) {
4158
-										echo  $this->block_props_replace(  $new_value  );
4159
-									}
4160
-
4161
-									if ( is_array( $new_value ) ) {
4162
-
4163
-										if ( isset( $new_value['element_require'] ) ) {
4164
-											echo str_replace( array(
4165
-													"'+",
4166
-													"+'"
4167
-												), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
4168
-											unset( $new_value['element_require'] );
4169
-										}
4170
-
4171
-										if ( isset( $new_value['element_repeat'] ) ) {
4172
-											$x = 1;
4173
-											while ( $x <= absint( $new_value['element_repeat'] ) ) {
4174
-												$this->block_element( array( '' => $new_value ),$save );
4175
-												$x ++;
4176
-											}
4177
-										} else {
4178
-											$this->block_element( array( '' => $new_value ),$save );
4179
-										}
4180
-									}
4181
-									$first_item ++;
4182
-								}
4183
-							}
4184
-
4185
-							if($new_args['element']=='innerBlocksProps' || $new_args['element']=='xBlocksProps'){
4186
-								echo "))";// end content
4187
-							}else{
4188
-								echo ")";// end content
4189
-							}
4190
-
4191
-
4192
-							echo ", \n";
4193
-
4194
-						}
4195
-					} else {
4196
-
4197
-						if ( substr( $element, 0, 3 ) === "if_" ) {
4198
-							$extra = '';
4199
-							if( strpos($new_args, '[%WrapClass%]') !== false ){
4200
-								$new_args = str_replace('[%WrapClass%]"','" + sd_build_aui_class(props.attributes)',$new_args);
4201
-								$new_args = str_replace('[%WrapClass%]','+ sd_build_aui_class(props.attributes)',$new_args);
4202
-							}
4203
-							echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
4204
-						} elseif ( $element == 'style' &&  strpos($new_args, '[%WrapStyle%]') !== false ) {
4205
-							$new_args = str_replace('[%WrapStyle%]','',$new_args);
4206
-							echo $element . ": {..." . $this->block_props_replace( $new_args ) . " , ...sd_build_aui_styles(props.attributes) },";
4108
+                                echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4109
+                                echo $save ? "wp.blockEditor.useBlockProps.save( {" : "wp.blockEditor.useBlockProps( {";
4110
+                                echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4111
+
4112
+                                echo "} ), {";
4113
+                                echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element( $new_args['innerBlocksProps'],$save ) : '';
4114
+                            //    echo '###';
4115
+
4116
+                                //  echo '###';
4117
+                            }elseif($new_args['element']=='BlocksProps'){
4118
+
4119
+                                if ( isset($new_args['if_inner_element']) ) {
4120
+                                    $element = $new_args['if_inner_element'];
4121
+                                }else {
4122
+                                    $element = isset($new_args['inner_element']) ? "'".esc_attr($new_args['inner_element'])."'" : "'div'";
4123
+                                }
4124
+
4125
+                                unset($new_args['inner_element']);
4126
+                                echo $save ? "\n el( $element, wp.blockEditor.useBlockProps.save( {" : "\n el( $element, wp.blockEditor.useBlockProps( {";
4127
+                                echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4128
+
4129
+
4130
+                                // echo "} ),";
4131
+
4132
+                            }else{
4133
+                                echo "\n el( '" . $new_args['element'] . "', {";
4134
+                            }
4135
+
4136
+
4137
+                            // get the attributes
4138
+                            foreach ( $new_args as $new_key => $new_value ) {
4139
+
4140
+
4141
+                                if ( $new_key == 'element' || $new_key == 'content'|| $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
4142
+                                    // do nothing
4143
+                                } else {
4144
+                                    echo $this->block_element( array( $new_key => $new_value ),$save );
4145
+                                }
4146
+                            }
4147
+
4148
+                            echo $new_args['element']=='BlocksProps' ? '} ),' : "},";// end attributes
4149
+
4150
+                            // get the content
4151
+                            $first_item = 0;
4152
+                            foreach ( $new_args as $new_key => $new_value ) {
4153
+                                if ( $new_key === 'content' || $new_key === 'if_content' || is_array( $new_value ) ) {
4154
+
4155
+                                    if ( $new_key === 'content' ) {
4156
+                                        echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
4157
+                                    }else if ( $new_key === 'if_content' ) {
4158
+                                        echo  $this->block_props_replace(  $new_value  );
4159
+                                    }
4160
+
4161
+                                    if ( is_array( $new_value ) ) {
4162
+
4163
+                                        if ( isset( $new_value['element_require'] ) ) {
4164
+                                            echo str_replace( array(
4165
+                                                    "'+",
4166
+                                                    "+'"
4167
+                                                ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
4168
+                                            unset( $new_value['element_require'] );
4169
+                                        }
4170
+
4171
+                                        if ( isset( $new_value['element_repeat'] ) ) {
4172
+                                            $x = 1;
4173
+                                            while ( $x <= absint( $new_value['element_repeat'] ) ) {
4174
+                                                $this->block_element( array( '' => $new_value ),$save );
4175
+                                                $x ++;
4176
+                                            }
4177
+                                        } else {
4178
+                                            $this->block_element( array( '' => $new_value ),$save );
4179
+                                        }
4180
+                                    }
4181
+                                    $first_item ++;
4182
+                                }
4183
+                            }
4184
+
4185
+                            if($new_args['element']=='innerBlocksProps' || $new_args['element']=='xBlocksProps'){
4186
+                                echo "))";// end content
4187
+                            }else{
4188
+                                echo ")";// end content
4189
+                            }
4190
+
4191
+
4192
+                            echo ", \n";
4193
+
4194
+                        }
4195
+                    } else {
4196
+
4197
+                        if ( substr( $element, 0, 3 ) === "if_" ) {
4198
+                            $extra = '';
4199
+                            if( strpos($new_args, '[%WrapClass%]') !== false ){
4200
+                                $new_args = str_replace('[%WrapClass%]"','" + sd_build_aui_class(props.attributes)',$new_args);
4201
+                                $new_args = str_replace('[%WrapClass%]','+ sd_build_aui_class(props.attributes)',$new_args);
4202
+                            }
4203
+                            echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
4204
+                        } elseif ( $element == 'style' &&  strpos($new_args, '[%WrapStyle%]') !== false ) {
4205
+                            $new_args = str_replace('[%WrapStyle%]','',$new_args);
4206
+                            echo $element . ": {..." . $this->block_props_replace( $new_args ) . " , ...sd_build_aui_styles(props.attributes) },";
4207 4207
 //                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4208
-						} elseif ( $element == 'style' ) {
4209
-							echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4210
-						} elseif ( ( $element == 'class' || $element == 'className'  ) &&  strpos($new_args, '[%WrapClass%]') !== false ) {
4211
-							$new_args = str_replace('[%WrapClass%]','',$new_args);
4212
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "' + sd_build_aui_class(props.attributes),";
4213
-						} elseif ( $element == 'template' && $new_args ) {
4214
-							echo $element . ": $new_args,";
4215
-						} else {
4216
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
4217
-						}
4218
-
4219
-					}
4220
-				}
4221
-			}
4222
-		}
4223
-
4224
-		/**
4225
-		 * Replace block attributes placeholders with the proper naming.
4226
-		 *
4227
-		 * @param $string
4228
-		 *
4229
-		 * @return mixed
4230
-		 */
4231
-		public function block_props_replace( $string, $no_wrap = false ) {
4232
-			if ( $no_wrap ) {
4233
-				$string = str_replace( array( "[%", "%]", "%:checked]" ), array( "props.attributes.", "", "" ), $string );
4234
-			} else {
4235
-				$string = str_replace( array( "![%", "[%", "%]", "%:checked]" ), array( "'+!props.attributes.", "'+props.attributes.", "+'", "+'" ), $string );
4236
-			}
4237
-
4238
-			return $string;
4239
-		}
4240
-
4241
-		/**
4242
-		 * Outputs the content of the widget
4243
-		 *
4244
-		 * @param array $args
4245
-		 * @param array $instance
4246
-		 */
4247
-		public function widget( $args, $instance ) {
4248
-			if ( ! is_array( $args ) ) {
4249
-				$args = array();
4250
-			}
4251
-
4252
-			// Get the filtered values
4253
-			$argument_values = $this->argument_values( $instance );
4254
-			$argument_values = $this->string_to_bool( $argument_values );
4255
-			$output          = $this->output( $argument_values, $args );
4256
-
4257
-			$no_wrap = false;
4258
-			if ( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ) {
4259
-				$no_wrap = true;
4260
-			}
4261
-
4262
-			ob_start();
4263
-			if ( $output && ! $no_wrap ) {
4264
-
4265
-				$class_original = $this->options['widget_ops']['classname'];
4266
-				$class = $this->options['widget_ops']['classname']." sdel-".$this->get_instance_hash();
4267
-
4268
-				// Before widget
4269
-				$before_widget = ! empty( $args['before_widget'] ) ? $args['before_widget'] : '';
4270
-				$before_widget = $before_widget ? str_replace( $class_original, $class, $before_widget ) : $before_widget;
4271
-				$before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
4272
-				$before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
4273
-
4274
-				// After widget
4275
-				$after_widget = ! empty( $args['after_widget'] ) ? $args['after_widget'] : '';
4276
-				$after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
4277
-				$after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
4278
-
4279
-				echo $before_widget;
4280
-				// elementor strips the widget wrapping div so we check for and add it back if needed
4281
-				if ( $this->is_elementor_widget_output() ) {
4282
-					// Filter class & attrs for elementor widget output.
4283
-					$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
4284
-					$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
4285
-
4286
-					$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
4287
-					$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
4288
-
4289
-					echo "<span class='" . esc_attr( $class  ) . "' " . $attrs . ">";
4290
-				}
4291
-				echo $this->output_title( $args, $instance );
4292
-				echo $output;
4293
-				if ( $this->is_elementor_widget_output() ) {
4294
-					echo "</span>";
4295
-				}
4296
-				echo $after_widget;
4297
-			} elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
4298
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
4299
-				echo $output;
4300
-			} elseif ( $output && $no_wrap ) {
4301
-				echo $output;
4302
-			}
4303
-			$output = ob_get_clean();
4304
-
4305
-			$output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
4208
+                        } elseif ( $element == 'style' ) {
4209
+                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4210
+                        } elseif ( ( $element == 'class' || $element == 'className'  ) &&  strpos($new_args, '[%WrapClass%]') !== false ) {
4211
+                            $new_args = str_replace('[%WrapClass%]','',$new_args);
4212
+                            echo $element . ": '" . $this->block_props_replace( $new_args ) . "' + sd_build_aui_class(props.attributes),";
4213
+                        } elseif ( $element == 'template' && $new_args ) {
4214
+                            echo $element . ": $new_args,";
4215
+                        } else {
4216
+                            echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
4217
+                        }
4218
+
4219
+                    }
4220
+                }
4221
+            }
4222
+        }
4306 4223
 
4307
-			echo $output;
4308
-		}
4224
+        /**
4225
+         * Replace block attributes placeholders with the proper naming.
4226
+         *
4227
+         * @param $string
4228
+         *
4229
+         * @return mixed
4230
+         */
4231
+        public function block_props_replace( $string, $no_wrap = false ) {
4232
+            if ( $no_wrap ) {
4233
+                $string = str_replace( array( "[%", "%]", "%:checked]" ), array( "props.attributes.", "", "" ), $string );
4234
+            } else {
4235
+                $string = str_replace( array( "![%", "[%", "%]", "%:checked]" ), array( "'+!props.attributes.", "'+props.attributes.", "+'", "+'" ), $string );
4236
+            }
4237
+
4238
+            return $string;
4239
+        }
4309 4240
 
4310
-		/**
4311
-		 * Tests if the current output is inside a elementor container.
4312
-		 *
4313
-		 * @return bool
4314
-		 *@since 1.0.4
4315
-		 */
4316
-		public function is_elementor_widget_output() {
4317
-			$result = false;
4318
-			if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
4319
-				$result = true;
4320
-			}
4241
+        /**
4242
+         * Outputs the content of the widget
4243
+         *
4244
+         * @param array $args
4245
+         * @param array $instance
4246
+         */
4247
+        public function widget( $args, $instance ) {
4248
+            if ( ! is_array( $args ) ) {
4249
+                $args = array();
4250
+            }
4251
+
4252
+            // Get the filtered values
4253
+            $argument_values = $this->argument_values( $instance );
4254
+            $argument_values = $this->string_to_bool( $argument_values );
4255
+            $output          = $this->output( $argument_values, $args );
4256
+
4257
+            $no_wrap = false;
4258
+            if ( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ) {
4259
+                $no_wrap = true;
4260
+            }
4261
+
4262
+            ob_start();
4263
+            if ( $output && ! $no_wrap ) {
4264
+
4265
+                $class_original = $this->options['widget_ops']['classname'];
4266
+                $class = $this->options['widget_ops']['classname']." sdel-".$this->get_instance_hash();
4267
+
4268
+                // Before widget
4269
+                $before_widget = ! empty( $args['before_widget'] ) ? $args['before_widget'] : '';
4270
+                $before_widget = $before_widget ? str_replace( $class_original, $class, $before_widget ) : $before_widget;
4271
+                $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
4272
+                $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
4273
+
4274
+                // After widget
4275
+                $after_widget = ! empty( $args['after_widget'] ) ? $args['after_widget'] : '';
4276
+                $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
4277
+                $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
4278
+
4279
+                echo $before_widget;
4280
+                // elementor strips the widget wrapping div so we check for and add it back if needed
4281
+                if ( $this->is_elementor_widget_output() ) {
4282
+                    // Filter class & attrs for elementor widget output.
4283
+                    $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
4284
+                    $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
4285
+
4286
+                    $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
4287
+                    $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
4288
+
4289
+                    echo "<span class='" . esc_attr( $class  ) . "' " . $attrs . ">";
4290
+                }
4291
+                echo $this->output_title( $args, $instance );
4292
+                echo $output;
4293
+                if ( $this->is_elementor_widget_output() ) {
4294
+                    echo "</span>";
4295
+                }
4296
+                echo $after_widget;
4297
+            } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
4298
+                $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
4299
+                echo $output;
4300
+            } elseif ( $output && $no_wrap ) {
4301
+                echo $output;
4302
+            }
4303
+            $output = ob_get_clean();
4304
+
4305
+            $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
4306
+
4307
+            echo $output;
4308
+        }
4321 4309
 
4322
-			return $result;
4323
-		}
4310
+        /**
4311
+         * Tests if the current output is inside a elementor container.
4312
+         *
4313
+         * @return bool
4314
+         *@since 1.0.4
4315
+         */
4316
+        public function is_elementor_widget_output() {
4317
+            $result = false;
4318
+            if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
4319
+                $result = true;
4320
+            }
4324 4321
 
4325
-		/**
4326
-		 * Tests if the current output is inside a elementor preview.
4327
-		 *
4328
-		 * @return bool
4329
-		 *@since 1.0.4
4330
-		 */
4331
-		public function is_elementor_preview() {
4332
-			$result = false;
4333
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
4334
-				$result = true;
4335
-			}
4322
+            return $result;
4323
+        }
4336 4324
 
4337
-			return $result;
4338
-		}
4325
+        /**
4326
+         * Tests if the current output is inside a elementor preview.
4327
+         *
4328
+         * @return bool
4329
+         *@since 1.0.4
4330
+         */
4331
+        public function is_elementor_preview() {
4332
+            $result = false;
4333
+            if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
4334
+                $result = true;
4335
+            }
4339 4336
 
4340
-		/**
4341
-		 * Tests if the current output is inside a Divi preview.
4342
-		 *
4343
-		 * @return bool
4344
-		 *@since 1.0.6
4345
-		 */
4346
-		public function is_divi_preview() {
4347
-			$result = false;
4348
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
4349
-				$result = true;
4350
-			}
4337
+            return $result;
4338
+        }
4351 4339
 
4352
-			return $result;
4353
-		}
4340
+        /**
4341
+         * Tests if the current output is inside a Divi preview.
4342
+         *
4343
+         * @return bool
4344
+         *@since 1.0.6
4345
+         */
4346
+        public function is_divi_preview() {
4347
+            $result = false;
4348
+            if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
4349
+                $result = true;
4350
+            }
4354 4351
 
4355
-		/**
4356
-		 * Tests if the current output is inside a Beaver builder preview.
4357
-		 *
4358
-		 * @return bool
4359
-		 *@since 1.0.6
4360
-		 */
4361
-		public function is_beaver_preview() {
4362
-			$result = false;
4363
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
4364
-				$result = true;
4365
-			}
4352
+            return $result;
4353
+        }
4366 4354
 
4367
-			return $result;
4368
-		}
4355
+        /**
4356
+         * Tests if the current output is inside a Beaver builder preview.
4357
+         *
4358
+         * @return bool
4359
+         *@since 1.0.6
4360
+         */
4361
+        public function is_beaver_preview() {
4362
+            $result = false;
4363
+            if ( isset( $_REQUEST['fl_builder'] ) ) {
4364
+                $result = true;
4365
+            }
4369 4366
 
4370
-		/**
4371
-		 * Tests if the current output is inside a siteorigin builder preview.
4372
-		 *
4373
-		 * @return bool
4374
-		 *@since 1.0.6
4375
-		 */
4376
-		public function is_siteorigin_preview() {
4377
-			$result = false;
4378
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
4379
-				$result = true;
4380
-			}
4367
+            return $result;
4368
+        }
4381 4369
 
4382
-			return $result;
4383
-		}
4370
+        /**
4371
+         * Tests if the current output is inside a siteorigin builder preview.
4372
+         *
4373
+         * @return bool
4374
+         *@since 1.0.6
4375
+         */
4376
+        public function is_siteorigin_preview() {
4377
+            $result = false;
4378
+            if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
4379
+                $result = true;
4380
+            }
4384 4381
 
4385
-		/**
4386
-		 * Tests if the current output is inside a cornerstone builder preview.
4387
-		 *
4388
-		 * @return bool
4389
-		 *@since 1.0.8
4390
-		 */
4391
-		public function is_cornerstone_preview() {
4392
-			$result = false;
4393
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
4394
-				$result = true;
4395
-			}
4382
+            return $result;
4383
+        }
4396 4384
 
4397
-			return $result;
4398
-		}
4385
+        /**
4386
+         * Tests if the current output is inside a cornerstone builder preview.
4387
+         *
4388
+         * @return bool
4389
+         *@since 1.0.8
4390
+         */
4391
+        public function is_cornerstone_preview() {
4392
+            $result = false;
4393
+            if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
4394
+                $result = true;
4395
+            }
4399 4396
 
4400
-		/**
4401
-		 * Tests if the current output is inside a fusion builder preview.
4402
-		 *
4403
-		 * @return bool
4404
-		 *@since 1.1.0
4405
-		 */
4406
-		public function is_fusion_preview() {
4407
-			$result = false;
4408
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
4409
-				$result = true;
4410
-			}
4397
+            return $result;
4398
+        }
4411 4399
 
4412
-			return $result;
4413
-		}
4400
+        /**
4401
+         * Tests if the current output is inside a fusion builder preview.
4402
+         *
4403
+         * @return bool
4404
+         *@since 1.1.0
4405
+         */
4406
+        public function is_fusion_preview() {
4407
+            $result = false;
4408
+            if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
4409
+                $result = true;
4410
+            }
4414 4411
 
4415
-		/**
4416
-		 * Tests if the current output is inside a Oxygen builder preview.
4417
-		 *
4418
-		 * @return bool
4419
-		 *@since 1.0.18
4420
-		 */
4421
-		public function is_oxygen_preview() {
4422
-			$result = false;
4423
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
4424
-				$result = true;
4425
-			}
4412
+            return $result;
4413
+        }
4426 4414
 
4427
-			return $result;
4428
-		}
4415
+        /**
4416
+         * Tests if the current output is inside a Oxygen builder preview.
4417
+         *
4418
+         * @return bool
4419
+         *@since 1.0.18
4420
+         */
4421
+        public function is_oxygen_preview() {
4422
+            $result = false;
4423
+            if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
4424
+                $result = true;
4425
+            }
4429 4426
 
4430
-		/**
4431
-		 * Check for Kallyas theme Zion builder preview.
4432
-		 *
4433
-		 * @since 1.1.22
4434
-		 *
4435
-		 * @return bool True when preview page otherwise false.
4436
-		 */
4437
-		public function is_kallyas_zion_preview() {
4438
-			$result = false;
4439
-
4440
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
4441
-				$result = true;
4442
-			}
4427
+            return $result;
4428
+        }
4443 4429
 
4444
-			return $result;
4445
-		}
4430
+        /**
4431
+         * Check for Kallyas theme Zion builder preview.
4432
+         *
4433
+         * @since 1.1.22
4434
+         *
4435
+         * @return bool True when preview page otherwise false.
4436
+         */
4437
+        public function is_kallyas_zion_preview() {
4438
+            $result = false;
4446 4439
 
4447
-		/**
4448
-		 * Check for Bricks theme builder preview.
4449
-		 *
4450
-		 * @since 1.1.31
4451
-		 *
4452
-		 * @return bool True when preview page otherwise false.
4453
-		 */
4454
-		public function is_bricks_preview() {
4455
-			$result = false;
4456
-
4457
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
4458
-				$result = true;
4459
-			}
4440
+            if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
4441
+                $result = true;
4442
+            }
4460 4443
 
4461
-			return $result;
4462
-		}
4444
+            return $result;
4445
+        }
4463 4446
 
4464
-		/**
4465
-		 * General function to check if we are in a preview situation.
4466
-		 *
4467
-		 * @return bool
4468
-		 *@since 1.0.6
4469
-		 */
4470
-		public function is_preview() {
4471
-			$preview = false;
4472
-			if ( $this->is_divi_preview() ) {
4473
-				$preview = true;
4474
-			} elseif ( $this->is_elementor_preview() ) {
4475
-				$preview = true;
4476
-			} elseif ( $this->is_beaver_preview() ) {
4477
-				$preview = true;
4478
-			} elseif ( $this->is_siteorigin_preview() ) {
4479
-				$preview = true;
4480
-			} elseif ( $this->is_cornerstone_preview() ) {
4481
-				$preview = true;
4482
-			} elseif ( $this->is_fusion_preview() ) {
4483
-				$preview = true;
4484
-			} elseif ( $this->is_oxygen_preview() ) {
4485
-				$preview = true;
4486
-			} elseif( $this->is_kallyas_zion_preview() ) {
4487
-				$preview = true;
4488
-			} elseif( $this->is_block_content_call() ) {
4489
-				$preview = true;
4490
-			} elseif( $this->is_bricks_preview() ) {
4491
-				$preview = true;
4492
-			}
4447
+        /**
4448
+         * Check for Bricks theme builder preview.
4449
+         *
4450
+         * @since 1.1.31
4451
+         *
4452
+         * @return bool True when preview page otherwise false.
4453
+         */
4454
+        public function is_bricks_preview() {
4455
+            $result = false;
4493 4456
 
4494
-			return $preview;
4495
-		}
4457
+            if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
4458
+                $result = true;
4459
+            }
4496 4460
 
4497
-		/**
4498
-		 * Output the super title.
4499
-		 *
4500
-		 * @param $args
4501
-		 * @param array $instance
4502
-		 *
4503
-		 * @return string
4504
-		 */
4505
-		public function output_title( $args, $instance = array() ) {
4506
-			$output = '';
4507
-			if ( ! empty( $instance['title'] ) ) {
4508
-				/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
4509
-				$title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
4510
-
4511
-				if ( empty( $instance['widget_title_tag'] ) ) {
4512
-					if ( ! isset( $args['before_title'] ) ) {
4513
-						$args['before_title'] = '';
4514
-					}
4461
+            return $result;
4462
+        }
4515 4463
 
4516
-					if ( ! isset( $args['after_title'] ) ) {
4517
-						$args['after_title'] = '';
4518
-					}
4464
+        /**
4465
+         * General function to check if we are in a preview situation.
4466
+         *
4467
+         * @return bool
4468
+         *@since 1.0.6
4469
+         */
4470
+        public function is_preview() {
4471
+            $preview = false;
4472
+            if ( $this->is_divi_preview() ) {
4473
+                $preview = true;
4474
+            } elseif ( $this->is_elementor_preview() ) {
4475
+                $preview = true;
4476
+            } elseif ( $this->is_beaver_preview() ) {
4477
+                $preview = true;
4478
+            } elseif ( $this->is_siteorigin_preview() ) {
4479
+                $preview = true;
4480
+            } elseif ( $this->is_cornerstone_preview() ) {
4481
+                $preview = true;
4482
+            } elseif ( $this->is_fusion_preview() ) {
4483
+                $preview = true;
4484
+            } elseif ( $this->is_oxygen_preview() ) {
4485
+                $preview = true;
4486
+            } elseif( $this->is_kallyas_zion_preview() ) {
4487
+                $preview = true;
4488
+            } elseif( $this->is_block_content_call() ) {
4489
+                $preview = true;
4490
+            } elseif( $this->is_bricks_preview() ) {
4491
+                $preview = true;
4492
+            }
4493
+
4494
+            return $preview;
4495
+        }
4519 4496
 
4520
-					$output = $args['before_title'] . $title . $args['after_title'];
4521
-				} else {
4522
-					$tag 			= esc_attr( $instance['widget_title_tag'] );
4523
-					$allowed_tags 	= array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p' );
4524
-					$title_tag      = in_array( $tag, $allowed_tags, true ) ? esc_attr( $tag ) : 'h2';
4525
-
4526
-					// classes
4527
-					$title_classes = array();
4528
-					$title_classes[] = !empty( $instance['widget_title_size_class'] ) ? sanitize_html_class( $instance['widget_title_size_class'] ) : '';
4529
-					$title_classes[] = !empty( $instance['widget_title_align_class'] ) ? sanitize_html_class( $instance['widget_title_align_class'] ) : '';
4530
-					$title_classes[] = !empty( $instance['widget_title_color_class'] ) ? "text-".sanitize_html_class( $instance['widget_title_color_class'] ) : '';
4531
-					$title_classes[] = !empty( $instance['widget_title_border_class'] ) ? sanitize_html_class( $instance['widget_title_border_class'] ) : '';
4532
-					$title_classes[] = !empty( $instance['widget_title_border_color_class'] ) ? "border-".sanitize_html_class( $instance['widget_title_border_color_class'] ) : '';
4533
-					$title_classes[] = !empty( $instance['widget_title_mt_class'] ) ? "mt-".absint( $instance['widget_title_mt_class'] ) : '';
4534
-					$title_classes[] = !empty( $instance['widget_title_mr_class'] ) ? "mr-".absint( $instance['widget_title_mr_class'] ) : '';
4535
-					$title_classes[] = !empty( $instance['widget_title_mb_class'] ) ? "mb-".absint( $instance['widget_title_mb_class'] ) : '';
4536
-					$title_classes[] = !empty( $instance['widget_title_ml_class'] ) ? "ml-".absint( $instance['widget_title_ml_class'] ) : '';
4537
-					$title_classes[] = !empty( $instance['widget_title_pt_class'] ) ? "pt-".absint( $instance['widget_title_pt_class'] ) : '';
4538
-					$title_classes[] = !empty( $instance['widget_title_pr_class'] ) ? "pr-".absint( $instance['widget_title_pr_class'] ) : '';
4539
-					$title_classes[] = !empty( $instance['widget_title_pb_class'] ) ? "pb-".absint( $instance['widget_title_pb_class'] ) : '';
4540
-					$title_classes[] = !empty( $instance['widget_title_pl_class'] ) ? "pl-".absint( $instance['widget_title_pl_class'] ) : '';
4541
-
4542
-					$class = !empty( $title_classes ) ? implode(" ",$title_classes) : '';
4543
-					$output = "<$title_tag class='$class' >$title</$title_tag>";
4544
-				}
4497
+        /**
4498
+         * Output the super title.
4499
+         *
4500
+         * @param $args
4501
+         * @param array $instance
4502
+         *
4503
+         * @return string
4504
+         */
4505
+        public function output_title( $args, $instance = array() ) {
4506
+            $output = '';
4507
+            if ( ! empty( $instance['title'] ) ) {
4508
+                /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
4509
+                $title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
4510
+
4511
+                if ( empty( $instance['widget_title_tag'] ) ) {
4512
+                    if ( ! isset( $args['before_title'] ) ) {
4513
+                        $args['before_title'] = '';
4514
+                    }
4515
+
4516
+                    if ( ! isset( $args['after_title'] ) ) {
4517
+                        $args['after_title'] = '';
4518
+                    }
4519
+
4520
+                    $output = $args['before_title'] . $title . $args['after_title'];
4521
+                } else {
4522
+                    $tag 			= esc_attr( $instance['widget_title_tag'] );
4523
+                    $allowed_tags 	= array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p' );
4524
+                    $title_tag      = in_array( $tag, $allowed_tags, true ) ? esc_attr( $tag ) : 'h2';
4525
+
4526
+                    // classes
4527
+                    $title_classes = array();
4528
+                    $title_classes[] = !empty( $instance['widget_title_size_class'] ) ? sanitize_html_class( $instance['widget_title_size_class'] ) : '';
4529
+                    $title_classes[] = !empty( $instance['widget_title_align_class'] ) ? sanitize_html_class( $instance['widget_title_align_class'] ) : '';
4530
+                    $title_classes[] = !empty( $instance['widget_title_color_class'] ) ? "text-".sanitize_html_class( $instance['widget_title_color_class'] ) : '';
4531
+                    $title_classes[] = !empty( $instance['widget_title_border_class'] ) ? sanitize_html_class( $instance['widget_title_border_class'] ) : '';
4532
+                    $title_classes[] = !empty( $instance['widget_title_border_color_class'] ) ? "border-".sanitize_html_class( $instance['widget_title_border_color_class'] ) : '';
4533
+                    $title_classes[] = !empty( $instance['widget_title_mt_class'] ) ? "mt-".absint( $instance['widget_title_mt_class'] ) : '';
4534
+                    $title_classes[] = !empty( $instance['widget_title_mr_class'] ) ? "mr-".absint( $instance['widget_title_mr_class'] ) : '';
4535
+                    $title_classes[] = !empty( $instance['widget_title_mb_class'] ) ? "mb-".absint( $instance['widget_title_mb_class'] ) : '';
4536
+                    $title_classes[] = !empty( $instance['widget_title_ml_class'] ) ? "ml-".absint( $instance['widget_title_ml_class'] ) : '';
4537
+                    $title_classes[] = !empty( $instance['widget_title_pt_class'] ) ? "pt-".absint( $instance['widget_title_pt_class'] ) : '';
4538
+                    $title_classes[] = !empty( $instance['widget_title_pr_class'] ) ? "pr-".absint( $instance['widget_title_pr_class'] ) : '';
4539
+                    $title_classes[] = !empty( $instance['widget_title_pb_class'] ) ? "pb-".absint( $instance['widget_title_pb_class'] ) : '';
4540
+                    $title_classes[] = !empty( $instance['widget_title_pl_class'] ) ? "pl-".absint( $instance['widget_title_pl_class'] ) : '';
4541
+
4542
+                    $class = !empty( $title_classes ) ? implode(" ",$title_classes) : '';
4543
+                    $output = "<$title_tag class='$class' >$title</$title_tag>";
4544
+                }
4545 4545
 
4546
-			}
4546
+            }
4547 4547
 
4548
-			return $output;
4549
-		}
4548
+            return $output;
4549
+        }
4550 4550
 
4551
-		/**
4552
-		 * Outputs the options form inputs for the widget.
4553
-		 *
4554
-		 * @param array $instance The widget options.
4555
-		 */
4556
-		public function form( $instance ) {
4551
+        /**
4552
+         * Outputs the options form inputs for the widget.
4553
+         *
4554
+         * @param array $instance The widget options.
4555
+         */
4556
+        public function form( $instance ) {
4557 4557
 
4558
-			// set widget instance
4559
-			$this->instance = $instance;
4558
+            // set widget instance
4559
+            $this->instance = $instance;
4560 4560
 
4561
-			// set it as a SD widget
4562
-			echo $this->widget_advanced_toggle();
4561
+            // set it as a SD widget
4562
+            echo $this->widget_advanced_toggle();
4563 4563
 
4564
-			echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
4565
-			$arguments_raw = $this->get_arguments();
4564
+            echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
4565
+            $arguments_raw = $this->get_arguments();
4566 4566
 
4567
-			if ( is_array( $arguments_raw ) ) {
4567
+            if ( is_array( $arguments_raw ) ) {
4568 4568
 
4569
-				$arguments = $this->group_arguments( $arguments_raw );
4569
+                $arguments = $this->group_arguments( $arguments_raw );
4570 4570
 
4571
-				// Do we have sections?
4572
-				$has_sections = $arguments == $arguments_raw ? false : true;
4571
+                // Do we have sections?
4572
+                $has_sections = $arguments == $arguments_raw ? false : true;
4573 4573
 
4574 4574
 
4575
-				if ( $has_sections ) {
4576
-					$panel_count = 0;
4577
-					foreach ( $arguments as $key => $args ) {
4575
+                if ( $has_sections ) {
4576
+                    $panel_count = 0;
4577
+                    foreach ( $arguments as $key => $args ) {
4578 4578
 
4579
-						?>
4579
+                        ?>
4580 4580
 						<script>
4581 4581
 							//							jQuery(this).find("i").toggleClass("fas fa-chevron-up fas fa-chevron-down");jQuery(this).next().toggle();
4582 4582
 						</script>
4583 4583
 						<?php
4584 4584
 
4585
-						$hide       = $panel_count ? ' style="display:none;" ' : '';
4586
-						$icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
4587
-						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>";
4588
-						echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes( $key ) . "' $hide>";
4585
+                        $hide       = $panel_count ? ' style="display:none;" ' : '';
4586
+                        $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
4587
+                        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>";
4588
+                        echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes( $key ) . "' $hide>";
4589 4589
 
4590
-						foreach ( $args as $k => $a ) {
4590
+                        foreach ( $args as $k => $a ) {
4591 4591
 
4592
-							$this->widget_inputs_row_start($k, $a);
4593
-							$this->widget_inputs( $a, $instance );
4594
-							$this->widget_inputs_row_end($k, $a);
4592
+                            $this->widget_inputs_row_start($k, $a);
4593
+                            $this->widget_inputs( $a, $instance );
4594
+                            $this->widget_inputs_row_end($k, $a);
4595 4595
 
4596
-						}
4596
+                        }
4597 4597
 
4598
-						echo "</div>";
4598
+                        echo "</div>";
4599 4599
 
4600
-						$panel_count ++;
4600
+                        $panel_count ++;
4601 4601
 
4602
-					}
4603
-				} else {
4604
-					foreach ( $arguments as $key => $args ) {
4605
-						$this->widget_inputs_row_start($key, $args);
4606
-						$this->widget_inputs( $args, $instance );
4607
-						$this->widget_inputs_row_end($key, $args);
4608
-					}
4609
-				}
4602
+                    }
4603
+                } else {
4604
+                    foreach ( $arguments as $key => $args ) {
4605
+                        $this->widget_inputs_row_start($key, $args);
4606
+                        $this->widget_inputs( $args, $instance );
4607
+                        $this->widget_inputs_row_end($key, $args);
4608
+                    }
4609
+                }
4610 4610
 
4611
-			}
4612
-		}
4611
+            }
4612
+        }
4613 4613
 
4614
-		public function widget_inputs_row_start( $key, $args ) {
4615
-			if ( ! empty( $args['row'] ) ) {
4616
-				// Maybe open
4617
-				if ( ! empty( $args['row']['open'] ) ) {
4618
-					?>
4614
+        public function widget_inputs_row_start( $key, $args ) {
4615
+            if ( ! empty( $args['row'] ) ) {
4616
+                // Maybe open
4617
+                if ( ! empty( $args['row']['open'] ) ) {
4618
+                    ?>
4619 4619
 					<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'] ) : '' ); ?>'>
4620 4620
 					<?php if ( ! empty( $args['row']['title'] ) ) { ?>
4621 4621
 					<?php
4622
-						if ( isset( $args['row']['icon'] ) ) {
4623
-							$args['row']['icon'] = '';
4624
-						}
4625
-
4626
-						if ( ! isset( $args['row']['device_type'] ) && isset( $args['device_type'] ) ) {
4627
-							$args['row']['device_type'] = $args['device_type'];
4628
-						}
4629
-					?>
4622
+                        if ( isset( $args['row']['icon'] ) ) {
4623
+                            $args['row']['icon'] = '';
4624
+                        }
4625
+
4626
+                        if ( ! isset( $args['row']['device_type'] ) && isset( $args['device_type'] ) ) {
4627
+                            $args['row']['device_type'] = $args['device_type'];
4628
+                        }
4629
+                    ?>
4630 4630
 					<label class="mb-0"><?php echo $this->widget_field_title( $args['row'] ); ?><?php echo $this->widget_field_desc( $args['row'] ); ?></label>
4631 4631
 					<?php } ?>
4632 4632
 					<div class='row<?php echo ( ! empty( $args['row']['class'] ) ? ' ' . esc_attr( $args['row']['class'] ) : '' ); ?>'>
4633 4633
 					<div class='col pr-2'>
4634 4634
 					<?php
4635
-				} else if ( ! empty( $args['row']['close'] ) ) {
4636
-					echo "<div class='col pl-0 ps-0'>";
4637
-				} else {
4638
-					echo "<div class='col pl-0 ps-0 pr-2 pe-2'>";
4639
-				}
4640
-			}
4641
-		}
4642
-
4643
-		public function widget_inputs_row_end( $key, $args ) {
4644
-			if ( ! empty( $args['row'] ) ) {
4645
-				// Maybe close
4646
-				if ( ! empty( $args['row']['close'] ) ) {
4647
-					echo "</div></div>";
4648
-				}
4649
-				echo "</div>";
4650
-			}
4651
-		}
4652
-
4653
-		/**
4654
-		 * Get the hidden input that when added makes the advanced button show on widget settings.
4655
-		 *
4656
-		 * @return string
4657
-		 */
4658
-		public function widget_advanced_toggle() {
4659
-
4660
-			$output = '';
4661
-			if ( $this->block_show_advanced() ) {
4662
-				$val = 1;
4663
-			} else {
4664
-				$val = 0;
4665
-			}
4635
+                } else if ( ! empty( $args['row']['close'] ) ) {
4636
+                    echo "<div class='col pl-0 ps-0'>";
4637
+                } else {
4638
+                    echo "<div class='col pl-0 ps-0 pr-2 pe-2'>";
4639
+                }
4640
+            }
4641
+        }
4666 4642
 
4667
-			$output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
4643
+        public function widget_inputs_row_end( $key, $args ) {
4644
+            if ( ! empty( $args['row'] ) ) {
4645
+                // Maybe close
4646
+                if ( ! empty( $args['row']['close'] ) ) {
4647
+                    echo "</div></div>";
4648
+                }
4649
+                echo "</div>";
4650
+            }
4651
+        }
4668 4652
 
4669
-			return $output;
4670
-		}
4653
+        /**
4654
+         * Get the hidden input that when added makes the advanced button show on widget settings.
4655
+         *
4656
+         * @return string
4657
+         */
4658
+        public function widget_advanced_toggle() {
4671 4659
 
4672
-		/**
4673
-		 * Convert require element.
4674
-		 *
4675
-		 * @param string $input Input element.
4676
-		 *
4677
-		 * @return string $output
4678
-		 *@since 1.0.0
4679
-		 *
4680
-		 */
4681
-		public function convert_element_require( $input ) {
4682
-			$input = str_replace( "'", '"', $input );// we only want double quotes
4683
-
4684
-			$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
4685
-				"jQuery(form).find('[data-argument=\"",
4686
-				"\"]').find('input,select,textarea').val()",
4687
-				"\"]').find('input:checked').val()"
4688
-			), $input ) );
4689
-
4690
-			return $output;
4691
-		}
4660
+            $output = '';
4661
+            if ( $this->block_show_advanced() ) {
4662
+                $val = 1;
4663
+            } else {
4664
+                $val = 0;
4665
+            }
4692 4666
 
4693
-		/**
4694
-		 * Builds the inputs for the widget options.
4695
-		 *
4696
-		 * @param $args
4697
-		 * @param $instance
4698
-		 */
4699
-		public function widget_inputs( $args, $instance ) {
4700
-
4701
-			$class             = "";
4702
-			$element_require   = "";
4703
-			$custom_attributes = "";
4704
-
4705
-			// get value
4706
-			if ( isset( $instance[ $args['name'] ] ) ) {
4707
-				$value = $instance[ $args['name'] ];
4708
-			} elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
4709
-				$value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
4710
-			} else {
4711
-				$value = '';
4712
-			}
4667
+            $output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
4713 4668
 
4714
-			// get placeholder
4715
-			if ( ! empty( $args['placeholder'] ) ) {
4716
-				$placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
4717
-			} else {
4718
-				$placeholder = '';
4719
-			}
4669
+            return $output;
4670
+        }
4720 4671
 
4721
-			// get if advanced
4722
-			if ( isset( $args['advanced'] ) && $args['advanced'] ) {
4723
-				$class .= " sd-advanced-setting ";
4724
-			}
4672
+        /**
4673
+         * Convert require element.
4674
+         *
4675
+         * @param string $input Input element.
4676
+         *
4677
+         * @return string $output
4678
+         *@since 1.0.0
4679
+         *
4680
+         */
4681
+        public function convert_element_require( $input ) {
4682
+            $input = str_replace( "'", '"', $input );// we only want double quotes
4725 4683
 
4726
-			// element_require
4727
-			if ( isset( $args['element_require'] ) && $args['element_require'] ) {
4728
-				$element_require = $args['element_require'];
4729
-			}
4684
+            $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
4685
+                "jQuery(form).find('[data-argument=\"",
4686
+                "\"]').find('input,select,textarea').val()",
4687
+                "\"]').find('input:checked').val()"
4688
+            ), $input ) );
4730 4689
 
4731
-			// custom_attributes
4732
-			if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
4733
-				$custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
4734
-			}
4690
+            return $output;
4691
+        }
4735 4692
 
4736
-			// before wrapper
4737
-			?>
4693
+        /**
4694
+         * Builds the inputs for the widget options.
4695
+         *
4696
+         * @param $args
4697
+         * @param $instance
4698
+         */
4699
+        public function widget_inputs( $args, $instance ) {
4700
+
4701
+            $class             = "";
4702
+            $element_require   = "";
4703
+            $custom_attributes = "";
4704
+
4705
+            // get value
4706
+            if ( isset( $instance[ $args['name'] ] ) ) {
4707
+                $value = $instance[ $args['name'] ];
4708
+            } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
4709
+                $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
4710
+            } else {
4711
+                $value = '';
4712
+            }
4713
+
4714
+            // get placeholder
4715
+            if ( ! empty( $args['placeholder'] ) ) {
4716
+                $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
4717
+            } else {
4718
+                $placeholder = '';
4719
+            }
4720
+
4721
+            // get if advanced
4722
+            if ( isset( $args['advanced'] ) && $args['advanced'] ) {
4723
+                $class .= " sd-advanced-setting ";
4724
+            }
4725
+
4726
+            // element_require
4727
+            if ( isset( $args['element_require'] ) && $args['element_require'] ) {
4728
+                $element_require = $args['element_require'];
4729
+            }
4730
+
4731
+            // custom_attributes
4732
+            if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
4733
+                $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
4734
+            }
4735
+
4736
+            // before wrapper
4737
+            ?>
4738 4738
 			<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 );} ?>'>
4739 4739
 			<?php
4740
-			switch ( $args['type'] ) {
4741
-				//array('text','password','number','email','tel','url','color')
4742
-				case "text":
4743
-				case "password":
4744
-				case "number":
4745
-				case "email":
4746
-				case "tel":
4747
-				case "url":
4748
-				case "color":
4749
-					?>
4740
+            switch ( $args['type'] ) {
4741
+                //array('text','password','number','email','tel','url','color')
4742
+                case "text":
4743
+                case "password":
4744
+                case "number":
4745
+                case "email":
4746
+                case "tel":
4747
+                case "url":
4748
+                case "color":
4749
+                    ?>
4750 4750
 					<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>
4751 4751
 					<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 ); ?>">
4752 4752
 					<?php
4753 4753
 
4754
-					break;
4755
-				case "select":
4756
-					$multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
4757
-					if ( $multiple ) {
4758
-						if ( empty( $value ) ) {
4759
-							$value = array();
4760
-						}
4761
-					}
4762
-					?>
4754
+                    break;
4755
+                case "select":
4756
+                    $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
4757
+                    if ( $multiple ) {
4758
+                        if ( empty( $value ) ) {
4759
+                            $value = array();
4760
+                        }
4761
+                    }
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
 					<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 "[]"; } ?>"
4765 4765
 						<?php if ( $multiple ) {
4766
-							echo "multiple";
4767
-						} //@todo not implemented yet due to gutenberg not supporting it
4768
-						?>>
4766
+                            echo "multiple";
4767
+                        } //@todo not implemented yet due to gutenberg not supporting it
4768
+                        ?>>
4769 4769
 						<?php
4770 4770
 
4771
-						if ( ! empty( $args['options'] ) ) {
4772
-							foreach ( $args['options'] as $val => $label ) {
4773
-								if ( $multiple ) {
4774
-									$selected = in_array( $val, $value ) ? 'selected="selected"' : '';
4775
-								} else {
4776
-									$selected = selected( $value, $val, false );
4777
-								}
4778
-								echo "<option value='$val' " . $selected . ">$label</option>";
4779
-							}
4780
-						}
4781
-						?>
4771
+                        if ( ! empty( $args['options'] ) ) {
4772
+                            foreach ( $args['options'] as $val => $label ) {
4773
+                                if ( $multiple ) {
4774
+                                    $selected = in_array( $val, $value ) ? 'selected="selected"' : '';
4775
+                                } else {
4776
+                                    $selected = selected( $value, $val, false );
4777
+                                }
4778
+                                echo "<option value='$val' " . $selected . ">$label</option>";
4779
+                            }
4780
+                        }
4781
+                        ?>
4782 4782
 					</select>
4783 4783
 					<?php
4784
-					break;
4785
-				case "checkbox":
4786
-					?>
4784
+                    break;
4785
+                case "checkbox":
4786
+                    ?>
4787 4787
 					<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">
4788 4788
 					<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>
4789 4789
 					<?php
4790
-					break;
4791
-				case "textarea":
4792
-					?>
4790
+                    break;
4791
+                case "textarea":
4792
+                    ?>
4793 4793
 					<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>
4794 4794
 					<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>
4795 4795
 					<?php
4796 4796
 
4797
-					break;
4798
-				case "hidden":
4799
-					?>
4797
+                    break;
4798
+                case "hidden":
4799
+                    ?>
4800 4800
 					<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 ); ?>">
4801 4801
 					<?php
4802
-					break;
4803
-				default:
4804
-					echo "No input type found!"; // @todo we need to add more input types.
4805
-			}
4806
-			// after wrapper
4807
-			?></p><?php
4808
-		}
4802
+                    break;
4803
+                default:
4804
+                    echo "No input type found!"; // @todo we need to add more input types.
4805
+            }
4806
+            // after wrapper
4807
+            ?></p><?php
4808
+        }
4809 4809
 
4810
-		public function get_widget_icon($icon = 'box-top', $title = ''){
4811
-			if($icon=='box-top'){
4812
-				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>';
4813
-			}elseif($icon=='box-right'){
4814
-				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>';
4815
-			}elseif($icon=='box-bottom'){
4816
-				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>';
4817
-			}elseif($icon=='box-left'){
4818
-				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>';
4819
-			}
4820
-		}
4810
+        public function get_widget_icon($icon = 'box-top', $title = ''){
4811
+            if($icon=='box-top'){
4812
+                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>';
4813
+            }elseif($icon=='box-right'){
4814
+                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>';
4815
+            }elseif($icon=='box-bottom'){
4816
+                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>';
4817
+            }elseif($icon=='box-left'){
4818
+                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>';
4819
+            }
4820
+        }
4821 4821
 
4822
-		/**
4823
-		 * Get the widget input description html.
4824
-		 *
4825
-		 * @param $args
4826
-		 *
4827
-		 * @return string
4828
-		 * @todo, need to make its own tooltip script
4829
-		 */
4830
-		public function widget_field_desc( $args ) {
4831
-
4832
-			$description = '';
4833
-			if ( isset( $args['desc'] ) && $args['desc'] ) {
4834
-				if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
4835
-					$description = $this->desc_tip( $args['desc'] );
4836
-				} else {
4837
-					$description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
4838
-				}
4839
-			}
4822
+        /**
4823
+         * Get the widget input description html.
4824
+         *
4825
+         * @param $args
4826
+         *
4827
+         * @return string
4828
+         * @todo, need to make its own tooltip script
4829
+         */
4830
+        public function widget_field_desc( $args ) {
4831
+
4832
+            $description = '';
4833
+            if ( isset( $args['desc'] ) && $args['desc'] ) {
4834
+                if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
4835
+                    $description = $this->desc_tip( $args['desc'] );
4836
+                } else {
4837
+                    $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
4838
+                }
4839
+            }
4840 4840
 
4841
-			return $description;
4842
-		}
4841
+            return $description;
4842
+        }
4843 4843
 
4844
-		/**
4845
-		 * Get the widget input title html.
4846
-		 *
4847
-		 * @param $args
4848
-		 *
4849
-		 * @return string
4850
-		 */
4851
-		public function widget_field_title( $args ) {
4852
-			$title = '';
4853
-
4854
-			if ( isset( $args['title'] ) && $args['title'] ) {
4855
-				if ( ! empty( $args['device_type'] ) ) {
4856
-					$args['title'] .= ' (' . $args['device_type'] . ')'; // Append device type to title.
4857
-				}
4844
+        /**
4845
+         * Get the widget input title html.
4846
+         *
4847
+         * @param $args
4848
+         *
4849
+         * @return string
4850
+         */
4851
+        public function widget_field_title( $args ) {
4852
+            $title = '';
4858 4853
 
4859
-				if ( isset( $args['icon'] ) && $args['icon'] ) {
4860
-					$title = self::get_widget_icon( $args['icon'], $args['title']  );
4861
-				} else {
4862
-					$title = esc_attr( $args['title'] );
4863
-				}
4864
-			}
4854
+            if ( isset( $args['title'] ) && $args['title'] ) {
4855
+                if ( ! empty( $args['device_type'] ) ) {
4856
+                    $args['title'] .= ' (' . $args['device_type'] . ')'; // Append device type to title.
4857
+                }
4865 4858
 
4866
-			return $title;
4867
-		}
4859
+                if ( isset( $args['icon'] ) && $args['icon'] ) {
4860
+                    $title = self::get_widget_icon( $args['icon'], $args['title']  );
4861
+                } else {
4862
+                    $title = esc_attr( $args['title'] );
4863
+                }
4864
+            }
4868 4865
 
4869
-		/**
4870
-		 * Get the tool tip html.
4871
-		 *
4872
-		 * @param $tip
4873
-		 * @param bool $allow_html
4874
-		 *
4875
-		 * @return string
4876
-		 */
4877
-		function desc_tip( $tip, $allow_html = false ) {
4878
-			if ( $allow_html ) {
4879
-				$tip = $this->sanitize_tooltip( $tip );
4880
-			} else {
4881
-				$tip = esc_attr( $tip );
4882
-			}
4866
+            return $title;
4867
+        }
4883 4868
 
4884
-			return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
4885
-		}
4869
+        /**
4870
+         * Get the tool tip html.
4871
+         *
4872
+         * @param $tip
4873
+         * @param bool $allow_html
4874
+         *
4875
+         * @return string
4876
+         */
4877
+        function desc_tip( $tip, $allow_html = false ) {
4878
+            if ( $allow_html ) {
4879
+                $tip = $this->sanitize_tooltip( $tip );
4880
+            } else {
4881
+                $tip = esc_attr( $tip );
4882
+            }
4883
+
4884
+            return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
4885
+        }
4886 4886
 
4887
-		/**
4888
-		 * Sanitize a string destined to be a tooltip.
4889
-		 *
4890
-		 * @param string $var
4891
-		 *
4892
-		 * @return string
4893
-		 */
4894
-		public function sanitize_tooltip( $var ) {
4895
-			return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
4896
-				'br'     => array(),
4897
-				'em'     => array(),
4898
-				'strong' => array(),
4899
-				'small'  => array(),
4900
-				'span'   => array(),
4901
-				'ul'     => array(),
4902
-				'li'     => array(),
4903
-				'ol'     => array(),
4904
-				'p'      => array(),
4905
-			) ) );
4906
-		}
4887
+        /**
4888
+         * Sanitize a string destined to be a tooltip.
4889
+         *
4890
+         * @param string $var
4891
+         *
4892
+         * @return string
4893
+         */
4894
+        public function sanitize_tooltip( $var ) {
4895
+            return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
4896
+                'br'     => array(),
4897
+                'em'     => array(),
4898
+                'strong' => array(),
4899
+                'small'  => array(),
4900
+                'span'   => array(),
4901
+                'ul'     => array(),
4902
+                'li'     => array(),
4903
+                'ol'     => array(),
4904
+                'p'      => array(),
4905
+            ) ) );
4906
+        }
4907 4907
 
4908
-		/**
4909
-		 * Processing widget options on save
4910
-		 *
4911
-		 * @param array $new_instance The new options
4912
-		 * @param array $old_instance The previous options
4913
-		 *
4914
-		 * @return array
4915
-		 * @todo we should add some sanitation here.
4916
-		 */
4917
-		public function update( $new_instance, $old_instance ) {
4918
-
4919
-			//save the widget
4920
-			$instance = array_merge( (array) $old_instance, (array) $new_instance );
4921
-
4922
-			// set widget instance
4923
-			$this->instance = $instance;
4924
-
4925
-			if ( empty( $this->arguments ) ) {
4926
-				$this->get_arguments();
4927
-			}
4908
+        /**
4909
+         * Processing widget options on save
4910
+         *
4911
+         * @param array $new_instance The new options
4912
+         * @param array $old_instance The previous options
4913
+         *
4914
+         * @return array
4915
+         * @todo we should add some sanitation here.
4916
+         */
4917
+        public function update( $new_instance, $old_instance ) {
4928 4918
 
4929
-			// check for checkboxes
4930
-			if ( ! empty( $this->arguments ) ) {
4931
-				foreach ( $this->arguments as $argument ) {
4932
-					if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
4933
-						$instance[ $argument['name'] ] = '0';
4934
-					}
4935
-				}
4936
-			}
4919
+            //save the widget
4920
+            $instance = array_merge( (array) $old_instance, (array) $new_instance );
4937 4921
 
4938
-			return $instance;
4939
-		}
4922
+            // set widget instance
4923
+            $this->instance = $instance;
4940 4924
 
4941
-		/**
4942
-		 * Checks if the current call is a ajax call to get the block content.
4943
-		 *
4944
-		 * This can be used in your widget to return different content as the block content.
4945
-		 *
4946
-		 * @return bool
4947
-		 *@since 1.0.3
4948
-		 */
4949
-		public function is_block_content_call() {
4950
-			$result = false;
4951
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
4952
-				$result = true;
4953
-			}
4925
+            if ( empty( $this->arguments ) ) {
4926
+                $this->get_arguments();
4927
+            }
4954 4928
 
4955
-			return $result;
4956
-		}
4929
+            // check for checkboxes
4930
+            if ( ! empty( $this->arguments ) ) {
4931
+                foreach ( $this->arguments as $argument ) {
4932
+                    if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
4933
+                        $instance[ $argument['name'] ] = '0';
4934
+                    }
4935
+                }
4936
+            }
4957 4937
 
4958
-		/**
4959
-		 * Get an instance hash that will be unique to the type and settings.
4960
-		 *
4961
-		 * @return string
4962
-		 *@since 1.0.20
4963
-		 */
4964
-		public function get_instance_hash(){
4965
-			$instance_string = $this->base_id.serialize($this->instance);
4966
-			return hash('crc32b',$instance_string);
4967
-		}
4938
+            return $instance;
4939
+        }
4968 4940
 
4969
-		/**
4970
-		 * Generate and return inline styles from CSS rules that will match the unique class of the instance.
4971
-		 *
4972
-		 * @param array $rules
4973
-		 *
4974
-		 * @return string
4975
-		 *@since 1.0.20
4976
-		 */
4977
-		public function get_instance_style($rules = array()){
4978
-			$css = '';
4979
-
4980
-			if(!empty($rules)){
4981
-				$rules = array_unique($rules);
4982
-				$instance_hash = $this->get_instance_hash();
4983
-				$css .= "<style>";
4984
-				foreach($rules as $rule){
4985
-					$css .= ".sdel-$instance_hash $rule";
4986
-				}
4987
-				$css .= "</style>";
4988
-			}
4941
+        /**
4942
+         * Checks if the current call is a ajax call to get the block content.
4943
+         *
4944
+         * This can be used in your widget to return different content as the block content.
4945
+         *
4946
+         * @return bool
4947
+         *@since 1.0.3
4948
+         */
4949
+        public function is_block_content_call() {
4950
+            $result = false;
4951
+            if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
4952
+                $result = true;
4953
+            }
4989 4954
 
4990
-			return $css;
4991
-		}
4955
+            return $result;
4956
+        }
4957
+
4958
+        /**
4959
+         * Get an instance hash that will be unique to the type and settings.
4960
+         *
4961
+         * @return string
4962
+         *@since 1.0.20
4963
+         */
4964
+        public function get_instance_hash(){
4965
+            $instance_string = $this->base_id.serialize($this->instance);
4966
+            return hash('crc32b',$instance_string);
4967
+        }
4968
+
4969
+        /**
4970
+         * Generate and return inline styles from CSS rules that will match the unique class of the instance.
4971
+         *
4972
+         * @param array $rules
4973
+         *
4974
+         * @return string
4975
+         *@since 1.0.20
4976
+         */
4977
+        public function get_instance_style($rules = array()){
4978
+            $css = '';
4979
+
4980
+            if(!empty($rules)){
4981
+                $rules = array_unique($rules);
4982
+                $instance_hash = $this->get_instance_hash();
4983
+                $css .= "<style>";
4984
+                foreach($rules as $rule){
4985
+                    $css .= ".sdel-$instance_hash $rule";
4986
+                }
4987
+                $css .= "</style>";
4988
+            }
4989
+
4990
+            return $css;
4991
+        }
4992 4992
 
4993
-		/**
4994
-		 * Encode shortcodes tags.
4995
-		 *
4996
-		 * @param string $content Content to search for shortcode tags.
4997
-		 *
4993
+        /**
4994
+         * Encode shortcodes tags.
4995
+         *
4996
+         * @param string $content Content to search for shortcode tags.
4997
+         *
4998 4998
 *@return string Content with shortcode tags removed.
4999
-		 *@since 1.0.28
5000
-		 *
5001
-		 */
5002
-		public function encode_shortcodes( $content ) {
5003
-			// Avoids existing encoded tags.
5004
-			$trans   = array(
5005
-				'&#91;' => '&#091;',
5006
-				'&#93;' => '&#093;',
5007
-				'&amp;#91;' => '&#091;',
5008
-				'&amp;#93;' => '&#093;',
5009
-				'&lt;' => '&0lt;',
5010
-				'&gt;' => '&0gt;',
5011
-				'&amp;lt;' => '&0lt;',
5012
-				'&amp;gt;' => '&0gt;',
5013
-			);
5014
-
5015
-			$content = strtr( $content, $trans );
5016
-
5017
-			$trans   = array(
5018
-				'[' => '&#91;',
5019
-				']' => '&#93;',
5020
-				'<' => '&lt;',
5021
-				'>' => '&gt;',
5022
-				'"' => '&quot;',
5023
-				"'" => '&#39;',
5024
-			);
5025
-
5026
-			$content = strtr( $content, $trans );
5027
-
5028
-			return $content;
5029
-		}
4999
+         *@since 1.0.28
5000
+         *
5001
+         */
5002
+        public function encode_shortcodes( $content ) {
5003
+            // Avoids existing encoded tags.
5004
+            $trans   = array(
5005
+                '&#91;' => '&#091;',
5006
+                '&#93;' => '&#093;',
5007
+                '&amp;#91;' => '&#091;',
5008
+                '&amp;#93;' => '&#093;',
5009
+                '&lt;' => '&0lt;',
5010
+                '&gt;' => '&0gt;',
5011
+                '&amp;lt;' => '&0lt;',
5012
+                '&amp;gt;' => '&0gt;',
5013
+            );
5014
+
5015
+            $content = strtr( $content, $trans );
5016
+
5017
+            $trans   = array(
5018
+                '[' => '&#91;',
5019
+                ']' => '&#93;',
5020
+                '<' => '&lt;',
5021
+                '>' => '&gt;',
5022
+                '"' => '&quot;',
5023
+                "'" => '&#39;',
5024
+            );
5025
+
5026
+            $content = strtr( $content, $trans );
5027
+
5028
+            return $content;
5029
+        }
5030 5030
 
5031
-		/**
5032
-		 * Remove encoded shortcod tags.
5033
-		 *
5034
-		 * @param string $content Content to search for shortcode tags.
5035
-		 *
5031
+        /**
5032
+         * Remove encoded shortcod tags.
5033
+         *
5034
+         * @param string $content Content to search for shortcode tags.
5035
+         *
5036 5036
 *@return string Content with decoded shortcode tags.
5037
-		 *@since 1.0.28
5038
-		 *
5039
-		 */
5040
-		public function decode_shortcodes( $content ) {
5041
-			$trans   = array(
5042
-				'&#91;' => '[',
5043
-				'&#93;' => ']',
5044
-				'&amp;#91;' => '[',
5045
-				'&amp;#93;' => ']',
5046
-				'&lt;' => '<',
5047
-				'&gt;' => '>',
5048
-				'&amp;lt;' => '<',
5049
-				'&amp;gt;' => '>',
5050
-				'&quot;' => '"',
5051
-				'&apos;' => "'",
5052
-			);
5053
-
5054
-			$content = strtr( $content, $trans );
5055
-
5056
-			$trans   = array(
5057
-				'&#091;' => '&#91;',
5058
-				'&#093;' => '&#93;',
5059
-				'&amp;#091;' => '&#91;',
5060
-				'&amp;#093;' => '&#93;',
5061
-				'&0lt;' => '&lt;',
5062
-				'&0gt;' => '&gt;',
5063
-				'&amp;0lt;' => '&lt;',
5064
-				'&amp;0gt;' => '&gt;',
5065
-			);
5066
-
5067
-			$content = strtr( $content, $trans );
5068
-
5069
-			return $content;
5070
-		}
5071
-
5072
-		public function block_visibility_fields( $args ) {
5073
-			$value = ! empty( $args['value'] ) ? esc_attr( $args['value'] ) : '';
5074
-			$content = '<div class="bs-vc-rule-template d-none">';
5075
-				$content .= '<div class="p-3 pb-0 mb-3 border border-1 rounded-1 position-relative bs-vc-rule" data-bs-index="BSVCINDEX" >';
5076
-					$content .= '<div class="row">';
5077
-						$content .= '<div class="col-sm-12">';
5078
-							$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>';
5079
-							$content .= aui()->select(
5080
-								array(
5081
-									'id'          => 'bsvc_rule_BSVCINDEX',
5082
-									'name'        => 'bsvc_rule_BSVCINDEX',
5083
-									'label'       => __( 'Rule', 'ayecode-connect' ),
5084
-									'placeholder' => __( 'Select Rule...', 'ayecode-connect' ),
5085
-									'class'       => 'bsvc_rule form-select-sm no-select2 mw-100',
5086
-									'options'     => sd_visibility_rules_options(),
5087
-									'default'     => '',
5088
-									'value'       => '',
5089
-									'label_type'  => '',
5090
-									'select2'     => false,
5091
-									'input_group_left' => __( 'Rule:', 'ayecode-connect' ),
5092
-									'extra_attributes' => array(
5093
-										'data-minimum-results-for-search' => '-1'
5094
-									)
5095
-								)
5096
-							);
5097
-
5098
-						$content .= '</div>';
5099
-
5100
-						if ( class_exists( 'GeoDirectory' ) ) {
5101
-							$content .= '<div class="col-md-7 col-sm-12">';
5102
-
5103
-								$content .= aui()->select(
5104
-									array(
5105
-										'id'          => 'bsvc_gd_field_BSVCINDEX',
5106
-										'name'        => 'bsvc_gd_field_BSVCINDEX',
5107
-										'label'       => __( 'FIELD', 'ayecode-connect' ),
5108
-										'placeholder' => __( 'FIELD', 'ayecode-connect' ),
5109
-										'class'       => 'bsvc_gd_field form-select-sm no-select2 mw-100',
5110
-										'options'     => sd_visibility_gd_field_options(),
5111
-										'default'     => '',
5112
-										'value'       => '',
5113
-										'label_type'  => '',
5114
-										'select2'     => false,
5115
-										'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5116
-										'extra_attributes' => array(
5117
-											'data-minimum-results-for-search' => '-1'
5118
-										)
5119
-									)
5120
-								);
5121
-
5122
-							$content .= '</div>';
5123
-							$content .= '<div class="col-md-5 col-sm-12">';
5124
-
5125
-								$content .= aui()->select(
5126
-									array(
5127
-										'id'          => 'bsvc_gd_field_condition_BSVCINDEX',
5128
-										'name'        => 'bsvc_gd_field_condition_BSVCINDEX',
5129
-										'label'       => __( 'CONDITION', 'ayecode-connect' ),
5130
-										'placeholder' => __( 'CONDITION', 'ayecode-connect' ),
5131
-										'class'       => 'bsvc_gd_field_condition form-select-sm no-select2 mw-100',
5132
-										'options'     => sd_visibility_field_condition_options(),
5133
-										'default'     => '',
5134
-										'value'       => '',
5135
-										'label_type'  => '',
5136
-										'select2'     => false,
5137
-										'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5138
-										'extra_attributes' => array(
5139
-											'data-minimum-results-for-search' => '-1'
5140
-										)
5141
-									)
5142
-								);
5143
-
5144
-							$content .= '</div>';
5145
-							$content .= '<div class="col-sm-12">';
5146
-
5147
-								$content .= aui()->input(
5148
-									array(
5149
-										'type'            => 'text',
5150
-										'id'              => 'bsvc_gd_field_search_BSVCINDEX',
5151
-										'name'            => 'bsvc_gd_field_search_BSVCINDEX',
5152
-										'label'           => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5153
-										'class'           => 'bsvc_gd_field_search form-control-sm',
5154
-										'placeholder'     => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5155
-										'label_type'      => '',
5156
-										'value'           => '',
5157
-										'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")'
5158
-									)
5159
-								);
5037
+         *@since 1.0.28
5038
+         *
5039
+         */
5040
+        public function decode_shortcodes( $content ) {
5041
+            $trans   = array(
5042
+                '&#91;' => '[',
5043
+                '&#93;' => ']',
5044
+                '&amp;#91;' => '[',
5045
+                '&amp;#93;' => ']',
5046
+                '&lt;' => '<',
5047
+                '&gt;' => '>',
5048
+                '&amp;lt;' => '<',
5049
+                '&amp;gt;' => '>',
5050
+                '&quot;' => '"',
5051
+                '&apos;' => "'",
5052
+            );
5053
+
5054
+            $content = strtr( $content, $trans );
5055
+
5056
+            $trans   = array(
5057
+                '&#091;' => '&#91;',
5058
+                '&#093;' => '&#93;',
5059
+                '&amp;#091;' => '&#91;',
5060
+                '&amp;#093;' => '&#93;',
5061
+                '&0lt;' => '&lt;',
5062
+                '&0gt;' => '&gt;',
5063
+                '&amp;0lt;' => '&lt;',
5064
+                '&amp;0gt;' => '&gt;',
5065
+            );
5066
+
5067
+            $content = strtr( $content, $trans );
5068
+
5069
+            return $content;
5070
+        }
5160 5071
 
5161
-							$content .= '</div>';
5162
-						}
5072
+        public function block_visibility_fields( $args ) {
5073
+            $value = ! empty( $args['value'] ) ? esc_attr( $args['value'] ) : '';
5074
+            $content = '<div class="bs-vc-rule-template d-none">';
5075
+                $content .= '<div class="p-3 pb-0 mb-3 border border-1 rounded-1 position-relative bs-vc-rule" data-bs-index="BSVCINDEX" >';
5076
+                    $content .= '<div class="row">';
5077
+                        $content .= '<div class="col-sm-12">';
5078
+                            $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>';
5079
+                            $content .= aui()->select(
5080
+                                array(
5081
+                                    'id'          => 'bsvc_rule_BSVCINDEX',
5082
+                                    'name'        => 'bsvc_rule_BSVCINDEX',
5083
+                                    'label'       => __( 'Rule', 'ayecode-connect' ),
5084
+                                    'placeholder' => __( 'Select Rule...', 'ayecode-connect' ),
5085
+                                    'class'       => 'bsvc_rule form-select-sm no-select2 mw-100',
5086
+                                    'options'     => sd_visibility_rules_options(),
5087
+                                    'default'     => '',
5088
+                                    'value'       => '',
5089
+                                    'label_type'  => '',
5090
+                                    'select2'     => false,
5091
+                                    'input_group_left' => __( 'Rule:', 'ayecode-connect' ),
5092
+                                    'extra_attributes' => array(
5093
+                                        'data-minimum-results-for-search' => '-1'
5094
+                                    )
5095
+                                )
5096
+                            );
5097
+
5098
+                        $content .= '</div>';
5099
+
5100
+                        if ( class_exists( 'GeoDirectory' ) ) {
5101
+                            $content .= '<div class="col-md-7 col-sm-12">';
5102
+
5103
+                                $content .= aui()->select(
5104
+                                    array(
5105
+                                        'id'          => 'bsvc_gd_field_BSVCINDEX',
5106
+                                        'name'        => 'bsvc_gd_field_BSVCINDEX',
5107
+                                        'label'       => __( 'FIELD', 'ayecode-connect' ),
5108
+                                        'placeholder' => __( 'FIELD', 'ayecode-connect' ),
5109
+                                        'class'       => 'bsvc_gd_field form-select-sm no-select2 mw-100',
5110
+                                        'options'     => sd_visibility_gd_field_options(),
5111
+                                        'default'     => '',
5112
+                                        'value'       => '',
5113
+                                        'label_type'  => '',
5114
+                                        'select2'     => false,
5115
+                                        'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5116
+                                        'extra_attributes' => array(
5117
+                                            'data-minimum-results-for-search' => '-1'
5118
+                                        )
5119
+                                    )
5120
+                                );
5121
+
5122
+                            $content .= '</div>';
5123
+                            $content .= '<div class="col-md-5 col-sm-12">';
5124
+
5125
+                                $content .= aui()->select(
5126
+                                    array(
5127
+                                        'id'          => 'bsvc_gd_field_condition_BSVCINDEX',
5128
+                                        'name'        => 'bsvc_gd_field_condition_BSVCINDEX',
5129
+                                        'label'       => __( 'CONDITION', 'ayecode-connect' ),
5130
+                                        'placeholder' => __( 'CONDITION', 'ayecode-connect' ),
5131
+                                        'class'       => 'bsvc_gd_field_condition form-select-sm no-select2 mw-100',
5132
+                                        'options'     => sd_visibility_field_condition_options(),
5133
+                                        'default'     => '',
5134
+                                        'value'       => '',
5135
+                                        'label_type'  => '',
5136
+                                        'select2'     => false,
5137
+                                        'element_require'  => '[%bsvc_rule_BSVCINDEX%]=="gd_field"',
5138
+                                        'extra_attributes' => array(
5139
+                                            'data-minimum-results-for-search' => '-1'
5140
+                                        )
5141
+                                    )
5142
+                                );
5143
+
5144
+                            $content .= '</div>';
5145
+                            $content .= '<div class="col-sm-12">';
5146
+
5147
+                                $content .= aui()->input(
5148
+                                    array(
5149
+                                        'type'            => 'text',
5150
+                                        'id'              => 'bsvc_gd_field_search_BSVCINDEX',
5151
+                                        'name'            => 'bsvc_gd_field_search_BSVCINDEX',
5152
+                                        'label'           => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5153
+                                        'class'           => 'bsvc_gd_field_search form-control-sm',
5154
+                                        'placeholder'     => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5155
+                                        'label_type'      => '',
5156
+                                        'value'           => '',
5157
+                                        '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")'
5158
+                                    )
5159
+                                );
5160
+
5161
+                            $content .= '</div>';
5162
+                        }
5163
+
5164
+                    $content .= '</div>';
5165
+
5166
+                    $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>';
5167
+                        $role_options = sd_user_roles_options();
5168
+
5169
+                        $role_option_i = 0;
5170
+                        foreach ( $role_options as $role_option_key => $role_option_name ) {
5171
+                            $role_option_i++;
5172
+
5173
+                            $content .= '<div class="col-sm-6">';
5174
+                            $content .= aui()->input(
5175
+                                array(
5176
+                                    'id'               => 'bsvc_user_roles_BSVCINDEX_' . $role_option_i,
5177
+                                    'name'             => 'bsvc_user_roles_BSVCINDEX[]',
5178
+                                    'type'             => 'checkbox',
5179
+                                    'label'            => $role_option_name,
5180
+                                    'label_type'       => 'hidden',
5181
+                                    'class'            => 'bsvc_user_roles',
5182
+                                    'value'            => $role_option_key,
5183
+                                    'switch'           => 'md',
5184
+                                    'no_wrap'          => true
5185
+                                )
5186
+                            );
5187
+                            $content .= '</div>';
5188
+                        }
5189
+                    $content .= '</div>';
5190
+                $content .= '</div>';
5191
+            $content .= '</div>';
5192
+            $content .= '<form id="bs-vc-modal-form" class="bs-vc-modal-form">';
5193
+            $content .= '<div class="bs-vc-rule-sets"></div>';
5194
+            $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>';
5195
+            $content .= '<div class="row"><div class="col-md-6 col-sm-12">';
5196
+            $content .= aui()->select(
5197
+                array(
5198
+                    'id'          => 'bsvc_output',
5199
+                    'name'        => 'bsvc_output',
5200
+                    'label'       => __( 'What should happen if rules met.', 'ayecode-connect' ),
5201
+                    'placeholder' => __( 'Default Output', 'ayecode-connect' ),
5202
+                    'class'       => 'bsvc_output form-select-sm no-select2 mw-100',
5203
+                    'options'     => sd_visibility_output_options(),
5204
+                    'default'     => '',
5205
+                    'value'       => '',
5206
+                    'label_type'  => 'top',
5207
+                    'select2'     => false,
5208
+                    'extra_attributes' => array(
5209
+                        'data-minimum-results-for-search' => '-1'
5210
+                    )
5211
+                )
5212
+            );
5213
+
5214
+            $content .= '</div><div class="col-md-6 col-sm-12">';
5215
+
5216
+            $content .= aui()->select(
5217
+                array(
5218
+                    'id'              => 'bsvc_page',
5219
+                    'name'            => 'bsvc_page',
5220
+                    'label'           => __( 'Page Content', 'ayecode-connect' ),
5221
+                    'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5222
+                    'class'           => 'bsvc_page form-select-sm no-select2 mw-100',
5223
+                    'options'         => sd_template_page_options(),
5224
+                    'default'         => '',
5225
+                    'value'           => '',
5226
+                    'label_type'      => 'top',
5227
+                    'select2'         => false,
5228
+                    'element_require' => '[%bsvc_output%]=="page"'
5229
+                )
5230
+            );
5231
+
5232
+            $content .= aui()->select(
5233
+                array(
5234
+                    'id'          => 'bsvc_tmpl_part',
5235
+                    'name'        => 'bsvc_tmpl_part',
5236
+                    'label'       => __( 'Template Part', 'ayecode-connect' ),
5237
+                    'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5238
+                    'class'       => 'bsvc_tmpl_part form-select-sm no-select2 mw-100',
5239
+                    'options'     => sd_template_part_options(),
5240
+                    'default'     => '',
5241
+                    'value'       => '',
5242
+                    'label_type'  => 'top',
5243
+                    'select2'     => false,
5244
+                    'element_require'  => '[%bsvc_output%]=="template_part"',
5245
+                    'extra_attributes' => array(
5246
+                        'data-minimum-results-for-search' => '-1'
5247
+                    )
5248
+                )
5249
+            );
5250
+
5251
+            $content .= aui()->select(
5252
+                array(
5253
+                    'id'               => 'bsvc_message_type',
5254
+                    'name'             => 'bsvc_message_type',
5255
+                    'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5256
+                    'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5257
+                    'class'            => 'bsvc_message_type form-select-sm no-select2 mw-100',
5258
+                    'options'          => sd_aui_colors(),
5259
+                    'default'          => '',
5260
+                    'value'            => '',
5261
+                    'label_type'       => 'top',
5262
+                    'select2'          => false,
5263
+                    'element_require'  => '[%bsvc_output%]=="message"',
5264
+                    'extra_attributes' => array(
5265
+                        'data-minimum-results-for-search' => '-1'
5266
+                    )
5267
+                )
5268
+            );
5269
+
5270
+            $content .= '</div><div class="col-sm-12">';
5271
+
5272
+            $content .= aui()->input(
5273
+                array(
5274
+                    'type'            => 'text',
5275
+                    'id'              => 'bsvc_message',
5276
+                    'name'            => 'bsvc_message',
5277
+                    'label'           => '',
5278
+                    'class'           => 'bsvc_message form-control-sm',
5279
+                    'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5280
+                    'label_type'      => '',
5281
+                    'value'           => '',
5282
+                    'form_group_class' => ' ',
5283
+                    'element_require' => '[%bsvc_output%]=="message"',
5284
+                )
5285
+            );
5286
+
5287
+            $content .= '</div></div></form><input type="hidden" id="bsvc_raw_value" name="bsvc_raw_value" value="' . $value . '">';
5288
+
5289
+            return $content;
5290
+        }
5163 5291
 
5164
-					$content .= '</div>';
5165
-
5166
-					$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>';
5167
-						$role_options = sd_user_roles_options();
5168
-
5169
-						$role_option_i = 0;
5170
-						foreach ( $role_options as $role_option_key => $role_option_name ) {
5171
-							$role_option_i++;
5172
-
5173
-							$content .= '<div class="col-sm-6">';
5174
-							$content .= aui()->input(
5175
-								array(
5176
-									'id'               => 'bsvc_user_roles_BSVCINDEX_' . $role_option_i,
5177
-									'name'             => 'bsvc_user_roles_BSVCINDEX[]',
5178
-									'type'             => 'checkbox',
5179
-									'label'            => $role_option_name,
5180
-									'label_type'       => 'hidden',
5181
-									'class'            => 'bsvc_user_roles',
5182
-									'value'            => $role_option_key,
5183
-									'switch'           => 'md',
5184
-									'no_wrap'          => true
5185
-								)
5186
-							);
5187
-							$content .= '</div>';
5188
-						}
5189
-					$content .= '</div>';
5190
-				$content .= '</div>';
5191
-			$content .= '</div>';
5192
-			$content .= '<form id="bs-vc-modal-form" class="bs-vc-modal-form">';
5193
-			$content .= '<div class="bs-vc-rule-sets"></div>';
5194
-			$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>';
5195
-			$content .= '<div class="row"><div class="col-md-6 col-sm-12">';
5196
-			$content .= aui()->select(
5197
-				array(
5198
-					'id'          => 'bsvc_output',
5199
-					'name'        => 'bsvc_output',
5200
-					'label'       => __( 'What should happen if rules met.', 'ayecode-connect' ),
5201
-					'placeholder' => __( 'Default Output', 'ayecode-connect' ),
5202
-					'class'       => 'bsvc_output form-select-sm no-select2 mw-100',
5203
-					'options'     => sd_visibility_output_options(),
5204
-					'default'     => '',
5205
-					'value'       => '',
5206
-					'label_type'  => 'top',
5207
-					'select2'     => false,
5208
-					'extra_attributes' => array(
5209
-						'data-minimum-results-for-search' => '-1'
5210
-					)
5211
-				)
5212
-			);
5213
-
5214
-			$content .= '</div><div class="col-md-6 col-sm-12">';
5215
-
5216
-			$content .= aui()->select(
5217
-				array(
5218
-					'id'              => 'bsvc_page',
5219
-					'name'            => 'bsvc_page',
5220
-					'label'           => __( 'Page Content', 'ayecode-connect' ),
5221
-					'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5222
-					'class'           => 'bsvc_page form-select-sm no-select2 mw-100',
5223
-					'options'         => sd_template_page_options(),
5224
-					'default'         => '',
5225
-					'value'           => '',
5226
-					'label_type'      => 'top',
5227
-					'select2'         => false,
5228
-					'element_require' => '[%bsvc_output%]=="page"'
5229
-				)
5230
-			);
5231
-
5232
-			$content .= aui()->select(
5233
-				array(
5234
-					'id'          => 'bsvc_tmpl_part',
5235
-					'name'        => 'bsvc_tmpl_part',
5236
-					'label'       => __( 'Template Part', 'ayecode-connect' ),
5237
-					'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5238
-					'class'       => 'bsvc_tmpl_part form-select-sm no-select2 mw-100',
5239
-					'options'     => sd_template_part_options(),
5240
-					'default'     => '',
5241
-					'value'       => '',
5242
-					'label_type'  => 'top',
5243
-					'select2'     => false,
5244
-					'element_require'  => '[%bsvc_output%]=="template_part"',
5245
-					'extra_attributes' => array(
5246
-						'data-minimum-results-for-search' => '-1'
5247
-					)
5248
-				)
5249
-			);
5250
-
5251
-			$content .= aui()->select(
5252
-				array(
5253
-					'id'               => 'bsvc_message_type',
5254
-					'name'             => 'bsvc_message_type',
5255
-					'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5256
-					'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5257
-					'class'            => 'bsvc_message_type form-select-sm no-select2 mw-100',
5258
-					'options'          => sd_aui_colors(),
5259
-					'default'          => '',
5260
-					'value'            => '',
5261
-					'label_type'       => 'top',
5262
-					'select2'          => false,
5263
-					'element_require'  => '[%bsvc_output%]=="message"',
5264
-					'extra_attributes' => array(
5265
-						'data-minimum-results-for-search' => '-1'
5266
-					)
5267
-				)
5268
-			);
5269
-
5270
-			$content .= '</div><div class="col-sm-12">';
5271
-
5272
-			$content .= aui()->input(
5273
-				array(
5274
-					'type'            => 'text',
5275
-					'id'              => 'bsvc_message',
5276
-					'name'            => 'bsvc_message',
5277
-					'label'           => '',
5278
-					'class'           => 'bsvc_message form-control-sm',
5279
-					'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5280
-					'label_type'      => '',
5281
-					'value'           => '',
5282
-					'form_group_class' => ' ',
5283
-					'element_require' => '[%bsvc_output%]=="message"',
5284
-				)
5285
-			);
5286
-
5287
-			$content .= '</div></div></form><input type="hidden" id="bsvc_raw_value" name="bsvc_raw_value" value="' . $value . '">';
5288
-
5289
-			return $content;
5290
-		}
5292
+        /**
5293
+         * Handle media_buttons hook.
5294
+         *
5295
+         * @since 1.2.7
5296
+         */
5297
+        public function wp_media_buttons() {
5298
+            global $shortcode_insert_button_once;
5291 5299
 
5292
-		/**
5293
-		 * Handle media_buttons hook.
5294
-		 *
5295
-		 * @since 1.2.7
5296
-		 */
5297
-		public function wp_media_buttons() {
5298
-			global $shortcode_insert_button_once;
5299
-
5300
-			// Fix conflicts with UpSolution Core in header template edit element.
5301
-			if ( defined( 'US_CORE_DIR' ) && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html' ) {
5302
-				$shortcode_insert_button_once = true;
5303
-			}
5304
-		}
5305
-	}
5300
+            // Fix conflicts with UpSolution Core in header template edit element.
5301
+            if ( defined( 'US_CORE_DIR' ) && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html' ) {
5302
+                $shortcode_insert_button_once = true;
5303
+            }
5304
+        }
5305
+    }
5306 5306
 }
Please login to merge, or discard this patch.
Spacing   +820 added lines, -820 removed lines patch added patch discarded remove patch
@@ -1,11 +1,11 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
6
-if ( ! class_exists( 'WP_Super_Duper' ) ) {
6
+if (!class_exists('WP_Super_Duper')) {
7 7
 
8
-	define( 'SUPER_DUPER_VER', '1.2.15' );
8
+	define('SUPER_DUPER_VER', '1.2.15');
9 9
 
10 10
 	/**
11 11
 	 * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress.
@@ -38,40 +38,40 @@  discard block
 block discarded – undo
38 38
 		/**
39 39
 		 * Take the array options and use them to build.
40 40
 		 */
41
-		public function __construct( $options ) {
41
+		public function __construct($options) {
42 42
 			global $sd_widgets;
43 43
 
44
-			$sd_widgets[ $options['base_id'] ] = array(
44
+			$sd_widgets[$options['base_id']] = array(
45 45
 				'name'       => $options['name'],
46 46
 				'class_name' => $options['class_name'],
47 47
 				'output_types' => !empty($options['output_types']) ? $options['output_types'] : array()
48 48
 			);
49
-			$this->base_id                     = $options['base_id'];
49
+			$this->base_id = $options['base_id'];
50 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 );
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 54
 			$this->options = $options;
55 55
 
56 56
 			$this->base_id   = $options['base_id'];
57
-			$this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
57
+			$this->arguments = isset($options['arguments']) ? $options['arguments'] : array();
58 58
 
59 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');
60
+			if (!empty($this->options['nested-block'])) {
61
+				if (empty($this->options['output_types'])) {
62
+					$this->options['output_types'] = array('shortcode', 'block');
63 63
 				}elseif (($key = array_search('widget', $this->options['output_types'])) !== false) {
64 64
 					unset($this->options['output_types'][$key]);
65 65
 				}
66 66
 			}
67 67
 
68 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'] );
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 71
 			}
72 72
 
73 73
 
74
-			if ( isset( $options['class_name'] ) ) {
74
+			if (isset($options['class_name'])) {
75 75
 				// register widget
76 76
 				$this->class_name = $options['class_name'];
77 77
 
@@ -80,67 +80,67 @@  discard block
 block discarded – undo
80 80
 
81 81
 
82 82
 				// Fusion Builder (avada) support
83
-				if ( function_exists( 'fusion_builder_map' ) ) {
84
-					add_action( 'init', array( $this, 'register_fusion_element' ) );
83
+				if (function_exists('fusion_builder_map')) {
84
+					add_action('init', array($this, 'register_fusion_element'));
85 85
 				}
86 86
 
87 87
                 // maybe load the Bricks transformer class
88
-                if( class_exists('\Bricks\Elements', false) ){
89
-					add_action( 'init', array( $this, 'load_bricks_element_class' ) );
88
+                if (class_exists('\Bricks\Elements', false)) {
89
+					add_action('init', array($this, 'load_bricks_element_class'));
90 90
                 }
91 91
 
92 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' ) );
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 95
 				}
96 96
 			}
97 97
 
98 98
 			// add the CSS and JS we need ONCE
99 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 106
 				// maybe add elementor editor styles
107
-				add_action( 'elementor/editor/after_enqueue_styles', array( $this, 'elementor_editor_styles' ) );
107
+				add_action('elementor/editor/after_enqueue_styles', array($this, 'elementor_editor_styles'));
108 108
 
109 109
 				$sd_widget_scripts = true;
110 110
 
111 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' ) );
112
+				add_action('media_buttons', array($this, 'wp_media_buttons'), 1);
113
+				add_action('media_buttons', array($this, 'shortcode_insert_button'));
114 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' ) );
115
+				if (function_exists('generate_sections_sections_metabox')) {
116
+					add_action('generate_sections_metabox', array($this, 'shortcode_insert_button_script'));
117 117
 				}
118 118
 				/* Load script on Divi theme builder page */
119
-				if ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) {
119
+				if (function_exists('et_builder_is_tb_admin_screen') && et_builder_is_tb_admin_screen()) {
120 120
 					add_thickbox();
121
-					add_action( 'admin_footer', array( $this, 'shortcode_insert_button_script' ) );
121
+					add_action('admin_footer', array($this, 'shortcode_insert_button_script'));
122 122
 				}
123 123
 
124
-				if ( $this->is_preview() ) {
125
-					add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
124
+				if ($this->is_preview()) {
125
+					add_action('wp_footer', array($this, 'shortcode_insert_button_script'));
126 126
 					// this makes the insert button work for elementor
127
-					add_action( 'elementor/editor/after_enqueue_scripts', array(
127
+					add_action('elementor/editor/after_enqueue_scripts', array(
128 128
 						$this,
129 129
 						'shortcode_insert_button_script'
130
-					) ); // for elementor
130
+					)); // for elementor
131 131
 				}
132 132
 				// this makes the insert button work for cornerstone
133
-				add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_cornerstone_builder' ) );
133
+				add_action('wp_print_footer_scripts', array(__CLASS__, 'maybe_cornerstone_builder'));
134 134
 
135
-				add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
136
-				add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
135
+				add_action('wp_ajax_super_duper_get_widget_settings', array(__CLASS__, 'get_widget_settings'));
136
+				add_action('wp_ajax_super_duper_get_picker', array(__CLASS__, 'get_picker'));
137 137
 
138 138
 				// add generator text to head
139
-				add_action( 'admin_head', array( $this, 'generator' ), 99 );
140
-				add_action( 'wp_head', array( $this, 'generator' ), 99 );
139
+				add_action('admin_head', array($this, 'generator'), 99);
140
+				add_action('wp_head', array($this, 'generator'), 99);
141 141
 			}
142 142
 
143
-			do_action( 'wp_super_duper_widget_init', $options, $this );
143
+			do_action('wp_super_duper_widget_init', $options, $this);
144 144
 		}
145 145
 
146 146
         /**
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
 		 * @return void
157 157
 		 */
158 158
 		public function _register() {
159
-			if(empty($this->options['output_types']) || in_array('widget',$this->options['output_types'])){
159
+			if (empty($this->options['output_types']) || in_array('widget', $this->options['output_types'])) {
160 160
 				parent::_register();
161 161
 			}
162 162
 		}
@@ -165,14 +165,14 @@  discard block
 block discarded – undo
165 165
 		 * Add our widget CSS to elementor editor.
166 166
 		 */
167 167
 		public function elementor_editor_styles() {
168
-			wp_add_inline_style( 'elementor-editor', $this->widget_css( false ) );
168
+			wp_add_inline_style('elementor-editor', $this->widget_css(false));
169 169
 		}
170 170
 
171 171
 		public function register_fusion_element() {
172 172
 
173 173
 			$options = $this->options;
174 174
 
175
-			if ( $this->base_id ) {
175
+			if ($this->base_id) {
176 176
 
177 177
 				$params = $this->get_fusion_params();
178 178
 
@@ -183,11 +183,11 @@  discard block
 block discarded – undo
183 183
 					'allow_generator' => true,
184 184
 				);
185 185
 
186
-				if ( ! empty( $params ) ) {
186
+				if (!empty($params)) {
187 187
 					$args['params'] = $params;
188 188
 				}
189 189
 
190
-				fusion_builder_map( $args );
190
+				fusion_builder_map($args);
191 191
 			}
192 192
 
193 193
 		}
@@ -196,8 +196,8 @@  discard block
 block discarded – undo
196 196
 			$params    = array();
197 197
 			$arguments = $this->get_arguments();
198 198
 
199
-			if ( ! empty( $arguments ) ) {
200
-				foreach ( $arguments as $key => $val ) {
199
+			if (!empty($arguments)) {
200
+				foreach ($arguments as $key => $val) {
201 201
 					$param = array();
202 202
 					// type
203 203
 					$param['type'] = str_replace(
@@ -219,38 +219,38 @@  discard block
 block discarded – undo
219 219
 						$val['type'] );
220 220
 
221 221
 					// multiselect
222
-					if ( $val['type'] == 'multiselect' || ( ( $param['type'] == 'select' || $val['type'] == 'select' ) && ! empty( $val['multiple'] ) ) ) {
222
+					if ($val['type'] == 'multiselect' || (($param['type'] == 'select' || $val['type'] == 'select') && !empty($val['multiple']))) {
223 223
 						$param['type']     = 'multiple_select';
224 224
 						$param['multiple'] = true;
225 225
 					}
226 226
 
227 227
 					// heading
228
-					$param['heading'] = isset( $val['title'] ) ? $val['title'] : '';
228
+					$param['heading'] = isset($val['title']) ? $val['title'] : '';
229 229
 
230 230
 					// description
231
-					$param['description'] = isset( $val['desc'] ) ? $val['desc'] : '';
231
+					$param['description'] = isset($val['desc']) ? $val['desc'] : '';
232 232
 
233 233
 					// param_name
234 234
 					$param['param_name'] = $key;
235 235
 
236 236
 					// Default
237
-					$param['default'] = isset( $val['default'] ) ? $val['default'] : '';
237
+					$param['default'] = isset($val['default']) ? $val['default'] : '';
238 238
 
239 239
 					// Group
240
-					if ( isset( $val['group'] ) ) {
240
+					if (isset($val['group'])) {
241 241
 						$param['group'] = $val['group'];
242 242
 					}
243 243
 
244 244
 					// value
245
-					if ( $val['type'] == 'checkbox' ) {
246
-						if ( isset( $val['default'] ) && $val['default'] == '0' ) {
247
-							unset( $param['default'] );
245
+					if ($val['type'] == 'checkbox') {
246
+						if (isset($val['default']) && $val['default'] == '0') {
247
+							unset($param['default']);
248 248
 						}
249
-						$param['value'] = array( '0' => __( "No", 'ayecode-connect' ), '1' => __( "Yes", 'ayecode-connect' ) );
250
-					} elseif ( $param['type'] == 'select' || $param['type'] == 'multiple_select' ) {
251
-						$param['value'] = isset( $val['options'] ) ? $val['options'] : array();
249
+						$param['value'] = array('0' => __("No", 'ayecode-connect'), '1' => __("Yes", 'ayecode-connect'));
250
+					} elseif ($param['type'] == 'select' || $param['type'] == 'multiple_select') {
251
+						$param['value'] = isset($val['options']) ? $val['options'] : array();
252 252
 					} else {
253
-						$param['value'] = isset( $val['default'] ) ? $val['default'] : '';
253
+						$param['value'] = isset($val['default']) ? $val['default'] : '';
254 254
 					}
255 255
 
256 256
 					// setup the param
@@ -267,7 +267,7 @@  discard block
 block discarded – undo
267 267
 		 * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
268 268
 		 */
269 269
 		public static function maybe_cornerstone_builder() {
270
-			if ( did_action( 'cornerstone_before_boot_app' ) ) {
270
+			if (did_action('cornerstone_before_boot_app')) {
271 271
 				self::shortcode_insert_button_script();
272 272
 			}
273 273
 		}
@@ -279,12 +279,12 @@  discard block
 block discarded – undo
279 279
 		 *
280 280
 		 * @return string
281 281
 		 */
282
-		public static function get_picker( $editor_id = '' ) {
282
+		public static function get_picker($editor_id = '') {
283 283
 
284 284
 			ob_start();
285
-			if ( isset( $_POST['editor_id'] ) ) {
286
-				$editor_id = esc_attr( $_POST['editor_id'] );
287
-			} elseif ( isset( $_REQUEST['et_fb'] ) ) {
285
+			if (isset($_POST['editor_id'])) {
286
+				$editor_id = esc_attr($_POST['editor_id']);
287
+			} elseif (isset($_REQUEST['et_fb'])) {
288 288
 				$editor_id = 'main_content_content_vb_tiny_mce';
289 289
 			}
290 290
 
@@ -295,14 +295,14 @@  discard block
 block discarded – undo
295 295
 
296 296
 			<div class="sd-shortcode-left-wrap">
297 297
 				<?php
298
-				ksort( $sd_widgets );
298
+				ksort($sd_widgets);
299 299
 				//				print_r($sd_widgets);exit;
300
-				if ( ! empty( $sd_widgets ) ) {
300
+				if (!empty($sd_widgets)) {
301 301
 					echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
302
-					echo "<option>" . __( 'Select shortcode', 'ayecode-connect' ) . "</option>";
303
-					foreach ( $sd_widgets as $shortcode => $class ) {
304
-						if(!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])){ continue; }
305
-						echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
302
+					echo "<option>" . __('Select shortcode', 'ayecode-connect') . "</option>";
303
+					foreach ($sd_widgets as $shortcode => $class) {
304
+						if (!empty($class['output_types']) && !in_array('shortcode', $class['output_types'])) { continue; }
305
+						echo "<option value='" . esc_attr($shortcode) . "'>" . esc_attr($shortcode) . " (" . esc_attr($class['name']) . ")</option>";
306 306
 					}
307 307
 					echo "</select>";
308 308
 
@@ -315,37 +315,37 @@  discard block
 block discarded – undo
315 315
 			<div class="sd-shortcode-right-wrap">
316 316
 				<textarea id='sd-shortcode-output' disabled></textarea>
317 317
 				<div id='sd-shortcode-output-actions'>
318
-					<?php if ( $editor_id != '' ) { ?>
318
+					<?php if ($editor_id != '') { ?>
319 319
 						<button class="button sd-insert-shortcode-button"
320
-								onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) {
320
+								onclick="sd_insert_shortcode(<?php if (!empty($editor_id)) {
321 321
 									echo "'" . $editor_id . "'";
322
-								} ?>)"><?php _e( 'Insert shortcode', 'ayecode-connect' ); ?></button>
322
+								} ?>)"><?php _e('Insert shortcode', 'ayecode-connect'); ?></button>
323 323
 					<?php } ?>
324 324
 					<button class="button"
325
-							onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button>
325
+							onclick="sd_copy_to_clipboard()"><?php _e('Copy shortcode'); ?></button>
326 326
 				</div>
327 327
 			</div>
328 328
 			<?php
329 329
 
330 330
 			$html = ob_get_clean();
331 331
 
332
-			if ( wp_doing_ajax() ) {
332
+			if (wp_doing_ajax()) {
333 333
 				echo $html;
334 334
 				$should_die = true;
335 335
 
336 336
 				// some builder get the editor via ajax so we should not die on those occasions
337 337
 				$dont_die = array(
338
-					'parent_tag',// WP Bakery
338
+					'parent_tag', // WP Bakery
339 339
 					'avia_request' // enfold
340 340
 				);
341 341
 
342
-				foreach ( $dont_die as $request ) {
343
-					if ( isset( $_REQUEST[ $request ] ) ) {
342
+				foreach ($dont_die as $request) {
343
+					if (isset($_REQUEST[$request])) {
344 344
 						$should_die = false;
345 345
 					}
346 346
 				}
347 347
 
348
-				if ( $should_die ) {
348
+				if ($should_die) {
349 349
 					wp_die();
350 350
 				}
351 351
 
@@ -361,22 +361,22 @@  discard block
 block discarded – undo
361 361
 		 * Output the version in the header.
362 362
 		 */
363 363
 		public function generator() {
364
-			$file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
365
-			$plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
364
+			$file = str_replace(array("/", "\\"), "/", realpath(__FILE__));
365
+			$plugins_dir = str_replace(array("/", "\\"), "/", realpath(WP_PLUGIN_DIR));
366 366
 
367 367
 			// Find source plugin/theme of SD
368 368
 			$source = array();
369
-			if ( strpos( $file, $plugins_dir ) !== false ) {
370
-				$source = explode( "/", plugin_basename( $file ) );
371
-			} else if ( function_exists( 'get_theme_root' ) ) {
372
-				$themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
369
+			if (strpos($file, $plugins_dir) !== false) {
370
+				$source = explode("/", plugin_basename($file));
371
+			} else if (function_exists('get_theme_root')) {
372
+				$themes_dir = str_replace(array("/", "\\"), "/", realpath(get_theme_root()));
373 373
 
374
-				if ( strpos( $file, $themes_dir ) !== false ) {
375
-					$source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
374
+				if (strpos($file, $themes_dir) !== false) {
375
+					$source = explode("/", ltrim(str_replace($themes_dir, "", $file), "/"));
376 376
 				}
377 377
 			}
378 378
 
379
-			echo '<meta name="generator" content="WP Super Duper v' . esc_attr( $this->version ) . '"' . ( ! empty( $source[0] ) ? ' data-sd-source="' . esc_attr( $source[0] ) . '"' : '' ) . ' />';
379
+			echo '<meta name="generator" content="WP Super Duper v' . esc_attr($this->version) . '"' . (!empty($source[0]) ? ' data-sd-source="' . esc_attr($source[0]) . '"' : '') . ' />';
380 380
 		}
381 381
 
382 382
 		/**
@@ -387,16 +387,16 @@  discard block
 block discarded – undo
387 387
 		public static function get_widget_settings() {
388 388
 			global $sd_widgets;
389 389
 
390
-			$shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
391
-			if ( ! $shortcode ) {
390
+			$shortcode = isset($_REQUEST['shortcode']) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes($_REQUEST['shortcode']) : '';
391
+			if (!$shortcode) {
392 392
 				wp_die();
393 393
 			}
394
-			$widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
395
-			if ( ! $widget_args ) {
394
+			$widget_args = isset($sd_widgets[$shortcode]) ? $sd_widgets[$shortcode] : '';
395
+			if (!$widget_args) {
396 396
 				wp_die();
397 397
 			}
398
-			$class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
399
-			if ( ! $class_name ) {
398
+			$class_name = isset($widget_args['class_name']) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
399
+			if (!$class_name) {
400 400
 				wp_die();
401 401
 			}
402 402
 
@@ -404,7 +404,7 @@  discard block
 block discarded – undo
404 404
 			$widget = new $class_name;
405 405
 
406 406
 			ob_start();
407
-			$widget->form( array() );
407
+			$widget->form(array());
408 408
 			$form = ob_get_clean();
409 409
 			echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
410 410
 			echo "<style>" . $widget->widget_css() . "</style>";
@@ -423,9 +423,9 @@  discard block
 block discarded – undo
423 423
 		 *@since 1.0.0
424 424
 		 *
425 425
 		 */
426
-		public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
426
+		public static function shortcode_insert_button($editor_id = '', $insert_shortcode_function = '') {
427 427
 			global $sd_widgets, $shortcode_insert_button_once;
428
-			if ( $shortcode_insert_button_once ) {
428
+			if ($shortcode_insert_button_once) {
429 429
 				return;
430 430
 			}
431 431
 			add_thickbox();
@@ -435,21 +435,21 @@  discard block
 block discarded – undo
435 435
 			 * Cornerstone makes us play dirty tricks :/
436 436
 			 * 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.
437 437
 			 */
438
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
438
+			if (function_exists('cornerstone_plugin_init') && !is_admin()) {
439 439
 				echo '<span id="insert-media-button">';
440 440
 			}
441 441
 
442
-			echo self::shortcode_button( 'this', 'true' );
442
+			echo self::shortcode_button('this', 'true');
443 443
 
444 444
 			// see opening note
445
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
445
+			if (function_exists('cornerstone_plugin_init') && !is_admin()) {
446 446
 				echo '</span>'; // end #insert-media-button
447 447
 			}
448 448
 
449 449
 			// Add separate script for generatepress theme sections
450
-			if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
450
+			if (function_exists('generate_sections_sections_metabox') && did_action('generate_sections_metabox')) {
451 451
 			} else {
452
-				self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
452
+				self::shortcode_insert_button_script($editor_id, $insert_shortcode_function);
453 453
 			}
454 454
 
455 455
 			$shortcode_insert_button_once = true;
@@ -463,12 +463,12 @@  discard block
 block discarded – undo
463 463
 		 *
464 464
 		 * @return mixed
465 465
 		 */
466
-		public static function shortcode_button( $id = '', $search_for_id = '' ) {
466
+		public static function shortcode_button($id = '', $search_for_id = '') {
467 467
 			ob_start();
468 468
 			?>
469 469
 			<span class="sd-lable-shortcode-inserter">
470 470
 				<a onclick="sd_ajax_get_picker(<?php echo $id;
471
-				if ( $search_for_id ) {
471
+				if ($search_for_id) {
472 472
 					echo "," . $search_for_id;
473 473
 				} ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
474 474
 				   class="thickbox button super-duper-content-open" title="Add Shortcode">
@@ -484,7 +484,7 @@  discard block
 block discarded – undo
484 484
 			$html = ob_get_clean();
485 485
 
486 486
 			// remove line breaks so we can use it in js
487
-			return preg_replace( "/\r|\n/", "", trim( $html ) );
487
+			return preg_replace("/\r|\n/", "", trim($html));
488 488
 		}
489 489
 
490 490
 		/**
@@ -542,7 +542,7 @@  discard block
 block discarded – undo
542 542
 						jQuery($this).data('sd-widget-enabled', true);
543 543
 					}
544 544
 
545
-					var $button = '<button title="<?php _e( 'Advanced Settings', 'ayecode-connect' );?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>';
545
+					var $button = '<button title="<?php _e('Advanced Settings', 'ayecode-connect'); ?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>';
546 546
 					var form = jQuery($this).parents('' + $selector + '');
547 547
 
548 548
 					if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) {
@@ -577,10 +577,10 @@  discard block
 block discarded – undo
577 577
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
578 578
 			 */
579 579
 
580
-			return str_replace( array(
580
+			return str_replace(array(
581 581
 				'<script>',
582 582
 				'</script>'
583
-			), '', $output );
583
+			), '', $output);
584 584
 		}
585 585
 
586 586
 		/**
@@ -592,7 +592,7 @@  discard block
 block discarded – undo
592 592
 		 *@since 1.0.6
593 593
 		 *
594 594
 		 */
595
-		public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
595
+		public static function shortcode_insert_button_script($editor_id = '', $insert_shortcode_function = '') {
596 596
 			?>
597 597
 			<style>
598 598
 				.sd-shortcode-left-wrap {
@@ -711,25 +711,25 @@  discard block
 block discarded – undo
711 711
 					width: 100%;
712 712
 				}
713 713
 
714
-				<?php if ( function_exists( 'generate_sections_sections_metabox' ) ) { ?>
714
+				<?php if (function_exists('generate_sections_sections_metabox')) { ?>
715 715
 				.generate-sections-modal #custom-media-buttons > .sd-lable-shortcode-inserter {
716 716
 					display: inline;
717 717
 				}
718 718
 				<?php } ?>
719
-				<?php if ( function_exists( 'et_builder_is_tb_admin_screen' ) && et_builder_is_tb_admin_screen() ) { ?>
719
+				<?php if (function_exists('et_builder_is_tb_admin_screen') && et_builder_is_tb_admin_screen()) { ?>
720 720
 				body.divi_page_et_theme_builder div#TB_window.gd-tb-window{z-index:9999999}
721 721
 				<?php } ?>
722 722
 			</style>
723 723
 			<?php
724
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
724
+			if (class_exists('SiteOrigin_Panels')) {
725 725
 				echo "<script>" . self::siteorigin_js() . "</script>";
726 726
 			}
727 727
 			?>
728 728
 			<script>
729 729
 				<?php
730
-				if(! empty( $insert_shortcode_function )){
730
+				if (!empty($insert_shortcode_function)) {
731 731
 					echo $insert_shortcode_function;
732
-				}else{
732
+				} else {
733 733
 
734 734
 				/**
735 735
 				 * Function for super duper insert shortcode.
@@ -742,9 +742,9 @@  discard block
 block discarded – undo
742 742
 					if ($shortcode) {
743 743
 						if (!$editor_id) {
744 744
 							<?php
745
-							if ( isset( $_REQUEST['et_fb'] ) ) {
745
+							if (isset($_REQUEST['et_fb'])) {
746 746
 								echo '$editor_id = "#main_content_content_vb_tiny_mce";';
747
-							} elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
747
+							} elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') {
748 748
 								echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
749 749
 							} else {
750 750
 								echo '$editor_id = "#wp-content-editor-container textarea";';
@@ -827,11 +827,11 @@  discard block
 block discarded – undo
827 827
 							'shortcode': $short_code,
828 828
 							'attributes': 123,
829 829
 							'post_id': 321,
830
-							'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
830
+							'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>'
831 831
 						};
832 832
 
833 833
 						if (typeof ajaxurl === 'undefined') {
834
-							var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' );?>";
834
+							var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
835 835
 						}
836 836
 
837 837
 						jQuery.post(ajaxurl, data, function (response) {
@@ -1030,11 +1030,11 @@  discard block
 block discarded – undo
1030 1030
 					var data = {
1031 1031
 						'action': 'super_duper_get_picker',
1032 1032
 						'editor_id': $id,
1033
-						'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_picker' );?>'
1033
+						'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_picker'); ?>'
1034 1034
 					};
1035 1035
 
1036 1036
 					if (!ajaxurl) {
1037
-						var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
1037
+						var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
1038 1038
 					}
1039 1039
 
1040 1040
 					jQuery.post(ajaxurl, data, function (response) {
@@ -1056,9 +1056,9 @@  discard block
 block discarded – undo
1056 1056
 				 */
1057 1057
 				function sd_shortcode_button($id) {
1058 1058
 					if ($id) {
1059
-						return '<?php echo self::shortcode_button( "\\''+\$id+'\\'" );?>';
1059
+						return '<?php echo self::shortcode_button("\\''+\$id+'\\'"); ?>';
1060 1060
 					} else {
1061
-						return '<?php echo self::shortcode_button();?>';
1061
+						return '<?php echo self::shortcode_button(); ?>';
1062 1062
 					}
1063 1063
 				}
1064 1064
 			</script>
@@ -1072,11 +1072,11 @@  discard block
 block discarded – undo
1072 1072
 		 *
1073 1073
 		 * @return mixed
1074 1074
 		 */
1075
-		public function widget_css( $advanced = true ) {
1075
+		public function widget_css($advanced = true) {
1076 1076
 			ob_start();
1077 1077
 			?>
1078 1078
 			<style>
1079
-				<?php if( $advanced ){ ?>
1079
+				<?php if ($advanced) { ?>
1080 1080
 				.sd-advanced-setting {
1081 1081
 					display: none;
1082 1082
 				}
@@ -1120,10 +1120,10 @@  discard block
 block discarded – undo
1120 1120
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1121 1121
 			 */
1122 1122
 
1123
-			return str_replace( array(
1123
+			return str_replace(array(
1124 1124
 				'<style>',
1125 1125
 				'</style>'
1126
-			), '', $output );
1126
+			), '', $output);
1127 1127
 		}
1128 1128
 
1129 1129
 		/**
@@ -1190,7 +1190,7 @@  discard block
 block discarded – undo
1190 1190
 						jQuery($this).data('sd-widget-enabled', true);
1191 1191
 					}
1192 1192
 
1193
-					var $button = '<button title="<?php _e( 'Advanced Settings', 'ayecode-connect' );?>" style="line-height: 28px;" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>';
1193
+					var $button = '<button title="<?php _e('Advanced Settings', 'ayecode-connect'); ?>" style="line-height: 28px;" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>';
1194 1194
 					var form = $form ? $form : jQuery($this).parents('' + $selector + '');
1195 1195
 
1196 1196
 					if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) {
@@ -1281,7 +1281,7 @@  discard block
 block discarded – undo
1281 1281
 					});
1282 1282
 
1283 1283
 				}
1284
-				<?php do_action( 'wp_super_duper_widget_js', $this ); ?>
1284
+				<?php do_action('wp_super_duper_widget_js', $this); ?>
1285 1285
 			</script>
1286 1286
 			<?php
1287 1287
 			$output = ob_get_clean();
@@ -1290,10 +1290,10 @@  discard block
 block discarded – undo
1290 1290
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1291 1291
 			 */
1292 1292
 
1293
-			return str_replace( array(
1293
+			return str_replace(array(
1294 1294
 				'<script>',
1295 1295
 				'</script>'
1296
-			), '', $output );
1296
+			), '', $output);
1297 1297
 		}
1298 1298
 
1299 1299
 
@@ -1304,14 +1304,14 @@  discard block
 block discarded – undo
1304 1304
 		 *
1305 1305
 		 * @return mixed
1306 1306
 		 */
1307
-		private function add_name_from_key( $options, $arguments = false ) {
1308
-			if ( ! empty( $options['arguments'] ) ) {
1309
-				foreach ( $options['arguments'] as $key => $val ) {
1310
-					$options['arguments'][ $key ]['name'] = $key;
1307
+		private function add_name_from_key($options, $arguments = false) {
1308
+			if (!empty($options['arguments'])) {
1309
+				foreach ($options['arguments'] as $key => $val) {
1310
+					$options['arguments'][$key]['name'] = $key;
1311 1311
 				}
1312
-			} elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1313
-				foreach ( $options as $key => $val ) {
1314
-					$options[ $key ]['name'] = $key;
1312
+			} elseif ($arguments && is_array($options) && !empty($options)) {
1313
+				foreach ($options as $key => $val) {
1314
+					$options[$key]['name'] = $key;
1315 1315
 				}
1316 1316
 			}
1317 1317
 
@@ -1324,8 +1324,8 @@  discard block
 block discarded – undo
1324 1324
 		 * @since 1.0.0
1325 1325
 		 */
1326 1326
 		public function register_shortcode() {
1327
-			add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1328
-			add_action( 'wp_ajax_super_duper_output_shortcode', array( $this, 'render_shortcode' ) );
1327
+			add_shortcode($this->base_id, array($this, 'shortcode_output'));
1328
+			add_action('wp_ajax_super_duper_output_shortcode', array($this, 'render_shortcode'));
1329 1329
 		}
1330 1330
 
1331 1331
 		/**
@@ -1334,50 +1334,50 @@  discard block
 block discarded – undo
1334 1334
 		 * @since 1.0.0
1335 1335
 		 */
1336 1336
 		public function render_shortcode() {
1337
-			check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1338
-			if ( ! current_user_can( 'manage_options' ) ) {
1337
+			check_ajax_referer('super_duper_output_shortcode', '_ajax_nonce', true);
1338
+			if (!current_user_can('manage_options')) {
1339 1339
 				wp_die();
1340 1340
 			}
1341 1341
 
1342 1342
 			// we might need the $post value here so lets set it.
1343
-			if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1344
-				$post_obj = get_post( absint( $_POST['post_id'] ) );
1345
-				if ( ! empty( $post_obj ) && empty( $post ) ) {
1343
+			if (isset($_POST['post_id']) && $_POST['post_id']) {
1344
+				$post_obj = get_post(absint($_POST['post_id']));
1345
+				if (!empty($post_obj) && empty($post)) {
1346 1346
 					global $post;
1347 1347
 					$post = $post_obj;
1348 1348
 				}
1349 1349
 			}
1350 1350
 
1351
-			if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1351
+			if (isset($_POST['shortcode']) && $_POST['shortcode']) {
1352 1352
 				$is_preview = $this->is_preview();
1353
-				$shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1354
-				$attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1353
+				$shortcode_name   = sanitize_title_with_dashes($_POST['shortcode']);
1354
+				$attributes_array = isset($_POST['attributes']) && $_POST['attributes'] ? $_POST['attributes'] : array();
1355 1355
 				$attributes       = '';
1356
-				if ( ! empty( $attributes_array ) ) {
1357
-					foreach ( $attributes_array as $key => $value ) {
1358
-						if ( is_array( $value ) ) {
1359
-							$value = implode( ",", $value );
1356
+				if (!empty($attributes_array)) {
1357
+					foreach ($attributes_array as $key => $value) {
1358
+						if (is_array($value)) {
1359
+							$value = implode(",", $value);
1360 1360
 						}
1361 1361
 
1362
-						if ( ! empty( $value ) ) {
1363
-							$value = wp_unslash( $value );
1362
+						if (!empty($value)) {
1363
+							$value = wp_unslash($value);
1364 1364
 
1365 1365
 							// Encode [ and ].
1366
-							if ( $is_preview ) {
1367
-								$value = $this->encode_shortcodes( $value );
1366
+							if ($is_preview) {
1367
+								$value = $this->encode_shortcodes($value);
1368 1368
 							}
1369 1369
 						}
1370
-						$attributes .= " " . esc_attr( sanitize_title_with_dashes( $key ) ) . "='" . esc_attr( $value ) . "' ";
1370
+						$attributes .= " " . esc_attr(sanitize_title_with_dashes($key)) . "='" . esc_attr($value) . "' ";
1371 1371
 					}
1372 1372
 				}
1373 1373
 
1374
-				$shortcode = "[" . esc_attr( $shortcode_name ) . " " . $attributes . "]";
1374
+				$shortcode = "[" . esc_attr($shortcode_name) . " " . $attributes . "]";
1375 1375
 
1376
-				$content = do_shortcode( $shortcode );
1376
+				$content = do_shortcode($shortcode);
1377 1377
 
1378 1378
 				// Decode [ and ].
1379
-				if ( ! empty( $content ) && $is_preview ) {
1380
-					$content = $this->decode_shortcodes( $content );
1379
+				if (!empty($content) && $is_preview) {
1380
+					$content = $this->decode_shortcodes($content);
1381 1381
 				}
1382 1382
 
1383 1383
 				echo $content;
@@ -1393,21 +1393,21 @@  discard block
 block discarded – undo
1393 1393
 		 *
1394 1394
 		 * @return string
1395 1395
 		 */
1396
-		public function shortcode_output( $args = array(), $content = '' ) {
1396
+		public function shortcode_output($args = array(), $content = '') {
1397 1397
 			$_instance = $args;
1398 1398
 
1399
-			$args = $this->argument_values( $args );
1399
+			$args = $this->argument_values($args);
1400 1400
 
1401 1401
 			// add extra argument so we know its a output to gutenberg
1402 1402
 			//$args
1403
-			$args = $this->string_to_bool( $args );
1403
+			$args = $this->string_to_bool($args);
1404 1404
 
1405 1405
 			// if we have a enclosed shortcode we add it to the special `html` argument
1406
-			if ( ! empty( $content ) ) {
1406
+			if (!empty($content)) {
1407 1407
 				$args['html'] = $content;
1408 1408
 			}
1409 1409
 
1410
-			if ( ! $this->is_preview() ) {
1410
+			if (!$this->is_preview()) {
1411 1411
 				/**
1412 1412
 				 * Filters the settings for a particular widget args.
1413 1413
 				 *
@@ -1418,40 +1418,40 @@  discard block
 block discarded – undo
1418 1418
 				 *@since 1.0.28
1419 1419
 				 *
1420 1420
 				 */
1421
-				$args = apply_filters( 'wp_super_duper_widget_display_callback', $args, $this, $_instance );
1421
+				$args = apply_filters('wp_super_duper_widget_display_callback', $args, $this, $_instance);
1422 1422
 
1423
-				if ( ! is_array( $args ) ) {
1423
+				if (!is_array($args)) {
1424 1424
 					return $args;
1425 1425
 				}
1426 1426
 			}
1427 1427
 
1428
-			$class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1429
-			$class .= " sdel-".$this->get_instance_hash();
1428
+			$class = isset($this->options['widget_ops']['classname']) ? esc_attr($this->options['widget_ops']['classname']) : '';
1429
+			$class .= " sdel-" . $this->get_instance_hash();
1430 1430
 
1431
-			$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1432
-			$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1431
+			$class = apply_filters('wp_super_duper_div_classname', $class, $args, $this);
1432
+			$class = apply_filters('wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this);
1433 1433
 
1434
-			$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1435
-			$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
1434
+			$attrs = apply_filters('wp_super_duper_div_attrs', '', $args, $this);
1435
+			$attrs = apply_filters('wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this);
1436 1436
 
1437 1437
 			$shortcode_args = array();
1438 1438
 			$output         = '';
1439
-			$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1440
-			if ( isset( $args['no_wrap'] ) && $args['no_wrap'] ) {
1439
+			$no_wrap        = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false;
1440
+			if (isset($args['no_wrap']) && $args['no_wrap']) {
1441 1441
 				$no_wrap = true;
1442 1442
 			}
1443
-			$main_content = $this->output( $args, $shortcode_args, $content );
1444
-			if ( $main_content && ! $no_wrap ) {
1443
+			$main_content = $this->output($args, $shortcode_args, $content);
1444
+			if ($main_content && !$no_wrap) {
1445 1445
 				// wrap the shortcode in a div with the same class as the widget
1446 1446
 				$output .= '<div class="' . $class . '" ' . $attrs . '>';
1447
-				if ( ! empty( $args['title'] ) ) {
1447
+				if (!empty($args['title'])) {
1448 1448
 					// if its a shortcode and there is a title try to grab the title wrappers
1449
-					$shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1450
-					if ( empty( $instance ) ) {
1449
+					$shortcode_args = array('before_title' => '', 'after_title' => '');
1450
+					if (empty($instance)) {
1451 1451
 						global $wp_registered_sidebars;
1452
-						if ( ! empty( $wp_registered_sidebars ) ) {
1453
-							foreach ( $wp_registered_sidebars as $sidebar ) {
1454
-								if ( ! empty( $sidebar['before_title'] ) ) {
1452
+						if (!empty($wp_registered_sidebars)) {
1453
+							foreach ($wp_registered_sidebars as $sidebar) {
1454
+								if (!empty($sidebar['before_title'])) {
1455 1455
 									$shortcode_args['before_title'] = $sidebar['before_title'];
1456 1456
 									$shortcode_args['after_title']  = $sidebar['after_title'];
1457 1457
 									break;
@@ -1459,20 +1459,20 @@  discard block
 block discarded – undo
1459 1459
 							}
1460 1460
 						}
1461 1461
 					}
1462
-					$output .= $this->output_title( $shortcode_args, $args );
1462
+					$output .= $this->output_title($shortcode_args, $args);
1463 1463
 				}
1464 1464
 				$output .= $main_content;
1465 1465
 				$output .= '</div>';
1466
-			} elseif ( $main_content && $no_wrap ) {
1466
+			} elseif ($main_content && $no_wrap) {
1467 1467
 				$output .= $main_content;
1468 1468
 			}
1469 1469
 
1470 1470
 			// if preview show a placeholder if empty
1471
-			if ( $this->is_preview() && $output == '' ) {
1472
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
1471
+			if ($this->is_preview() && $output == '') {
1472
+				$output = $this->preview_placeholder_text("{{" . $this->base_id . "}}");
1473 1473
 			}
1474 1474
 
1475
-			return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1475
+			return apply_filters('wp_super_duper_widget_output', $output, $args, $shortcode_args, $this);
1476 1476
 		}
1477 1477
 
1478 1478
 		/**
@@ -1482,8 +1482,8 @@  discard block
 block discarded – undo
1482 1482
 		 *
1483 1483
 		 * @return string
1484 1484
 		 */
1485
-		public function preview_placeholder_text( $name = '' ) {
1486
-			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf( __( 'Placeholder for: %s', 'ayecode-connect' ), $name ) . "</div>";
1485
+		public function preview_placeholder_text($name = '') {
1486
+			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . wp_sprintf(__('Placeholder for: %s', 'ayecode-connect'), $name) . "</div>";
1487 1487
 		}
1488 1488
 
1489 1489
 		/**
@@ -1493,13 +1493,13 @@  discard block
 block discarded – undo
1493 1493
 		 *
1494 1494
 		 * @return mixed
1495 1495
 		 */
1496
-		public function string_to_bool( $options ) {
1496
+		public function string_to_bool($options) {
1497 1497
 			// convert bool strings to booleans
1498
-			foreach ( $options as $key => $val ) {
1499
-				if ( $val == 'false' ) {
1500
-					$options[ $key ] = false;
1501
-				} elseif ( $val == 'true' ) {
1502
-					$options[ $key ] = true;
1498
+			foreach ($options as $key => $val) {
1499
+				if ($val == 'false') {
1500
+					$options[$key] = false;
1501
+				} elseif ($val == 'true') {
1502
+					$options[$key] = true;
1503 1503
 				}
1504 1504
 			}
1505 1505
 
@@ -1515,26 +1515,26 @@  discard block
 block discarded – undo
1515 1515
 		 *@since 1.0.12 Don't set checkbox default value if the value is empty.
1516 1516
 		 *
1517 1517
 		 */
1518
-		public function argument_values( $instance ) {
1518
+		public function argument_values($instance) {
1519 1519
 			$argument_values = array();
1520 1520
 
1521 1521
 			// set widget instance
1522 1522
 			$this->instance = $instance;
1523 1523
 
1524
-			if ( empty( $this->arguments ) ) {
1524
+			if (empty($this->arguments)) {
1525 1525
 				$this->arguments = $this->get_arguments();
1526 1526
 			}
1527 1527
 
1528
-			if ( ! empty( $this->arguments ) ) {
1529
-				foreach ( $this->arguments as $key => $args ) {
1528
+			if (!empty($this->arguments)) {
1529
+				foreach ($this->arguments as $key => $args) {
1530 1530
 					// set the input name from the key
1531 1531
 					$args['name'] = $key;
1532 1532
 					//
1533
-					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1534
-					if ( $args['type'] == 'checkbox' && $argument_values[ $key ] == '' ) {
1533
+					$argument_values[$key] = isset($instance[$key]) ? $instance[$key] : '';
1534
+					if ($args['type'] == 'checkbox' && $argument_values[$key] == '') {
1535 1535
 						// don't set default for an empty checkbox
1536
-					} elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1537
-						$argument_values[ $key ] = $args['default'];
1536
+					} elseif ($argument_values[$key] == '' && isset($args['default'])) {
1537
+						$argument_values[$key] = $args['default'];
1538 1538
 					}
1539 1539
 				}
1540 1540
 			}
@@ -1561,12 +1561,12 @@  discard block
 block discarded – undo
1561 1561
 		 *
1562 1562
 		 */
1563 1563
 		public function get_arguments() {
1564
-			if ( empty( $this->arguments ) ) {
1564
+			if (empty($this->arguments)) {
1565 1565
 				$this->arguments = $this->set_arguments();
1566 1566
 			}
1567 1567
 
1568
-			$this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1569
-			$this->arguments = $this->add_name_from_key( $this->arguments, true );
1568
+			$this->arguments = apply_filters('wp_super_duper_arguments', $this->arguments, $this->options, $this->instance);
1569
+			$this->arguments = $this->add_name_from_key($this->arguments, true);
1570 1570
 
1571 1571
 			return $this->arguments;
1572 1572
 		}
@@ -1578,7 +1578,7 @@  discard block
 block discarded – undo
1578 1578
 		 * @param array $widget_args
1579 1579
 		 * @param string $content
1580 1580
 		 */
1581
-		public function output( $args = array(), $widget_args = array(), $content = '' ) {
1581
+		public function output($args = array(), $widget_args = array(), $content = '') {
1582 1582
 
1583 1583
 		}
1584 1584
 
@@ -1586,9 +1586,9 @@  discard block
 block discarded – undo
1586 1586
 		 * Add the dynamic block code inline when the wp-block in enqueued.
1587 1587
 		 */
1588 1588
 		public function register_block() {
1589
-			wp_add_inline_script( 'wp-blocks', $this->block() );
1590
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
1591
-				wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1589
+			wp_add_inline_script('wp-blocks', $this->block());
1590
+			if (class_exists('SiteOrigin_Panels')) {
1591
+				wp_add_inline_script('wp-blocks', $this->siteorigin_js());
1592 1592
 			}
1593 1593
 		}
1594 1594
 
@@ -1602,9 +1602,9 @@  discard block
 block discarded – undo
1602 1602
 			$show      = false;
1603 1603
 			$arguments = $this->get_arguments();
1604 1604
 
1605
-			if ( ! empty( $arguments ) ) {
1606
-				foreach ( $arguments as $argument ) {
1607
-					if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1605
+			if (!empty($arguments)) {
1606
+				foreach ($arguments as $argument) {
1607
+					if (isset($argument['advanced']) && $argument['advanced']) {
1608 1608
 						$show = true;
1609 1609
 						break; // no need to continue if we know we have it
1610 1610
 					}
@@ -1622,19 +1622,19 @@  discard block
 block discarded – undo
1622 1622
 		public function get_url() {
1623 1623
 			$url = $this->url;
1624 1624
 
1625
-			if ( ! $url ) {
1626
-				$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
1627
-				$content_url = untrailingslashit( WP_CONTENT_URL );
1625
+			if (!$url) {
1626
+				$content_dir = wp_normalize_path(untrailingslashit(WP_CONTENT_DIR));
1627
+				$content_url = untrailingslashit(WP_CONTENT_URL);
1628 1628
 
1629 1629
 				// Replace http:// to https://.
1630
-				if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
1631
-					$content_url = str_replace( 'http://', 'https://', $content_url );
1630
+				if (strpos($content_url, 'http://') === 0 && strpos(plugins_url(), 'https://') === 0) {
1631
+					$content_url = str_replace('http://', 'https://', $content_url);
1632 1632
 				}
1633 1633
 
1634 1634
 				// Check if we are inside a plugin
1635
-				$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
1636
-				$url = str_replace( $content_dir, $content_url, $file_dir );
1637
-				$url = trailingslashit( $url );
1635
+				$file_dir = str_replace("/includes", "", wp_normalize_path(dirname(__FILE__)));
1636
+				$url = str_replace($content_dir, $content_url, $file_dir);
1637
+				$url = trailingslashit($url);
1638 1638
 				$this->url = $url;
1639 1639
 			}
1640 1640
 
@@ -1650,15 +1650,15 @@  discard block
 block discarded – undo
1650 1650
 
1651 1651
 			$url = $this->url;
1652 1652
 
1653
-			if ( ! $url ) {
1653
+			if (!$url) {
1654 1654
 				// check if we are inside a plugin
1655
-				$file_dir = str_replace( "/includes", "", dirname( __FILE__ ) );
1655
+				$file_dir = str_replace("/includes", "", dirname(__FILE__));
1656 1656
 
1657
-				$dir_parts = explode( "/wp-content/", $file_dir );
1658
-				$url_parts = explode( "/wp-content/", plugins_url() );
1657
+				$dir_parts = explode("/wp-content/", $file_dir);
1658
+				$url_parts = explode("/wp-content/", plugins_url());
1659 1659
 
1660
-				if ( ! empty( $url_parts[0] ) && ! empty( $dir_parts[1] ) ) {
1661
-					$url       = trailingslashit( $url_parts[0] . "/wp-content/" . $dir_parts[1] );
1660
+				if (!empty($url_parts[0]) && !empty($dir_parts[1])) {
1661
+					$url       = trailingslashit($url_parts[0] . "/wp-content/" . $dir_parts[1]);
1662 1662
 					$this->url = $url;
1663 1663
 				}
1664 1664
 			}
@@ -1679,45 +1679,45 @@  discard block
 block discarded – undo
1679 1679
 		 * @return string
1680 1680
 		 *@since 1.1.0
1681 1681
 		 */
1682
-		public function get_block_icon( $icon ) {
1682
+		public function get_block_icon($icon) {
1683 1683
 
1684 1684
 			// check if we have a Font Awesome icon
1685 1685
 			$fa_type = '';
1686
-			if ( substr( $icon, 0, 7 ) === "fas fa-" ) {
1686
+			if (substr($icon, 0, 7) === "fas fa-") {
1687 1687
 				$fa_type = 'solid';
1688
-			} elseif ( substr( $icon, 0, 7 ) === "far fa-" ) {
1688
+			} elseif (substr($icon, 0, 7) === "far fa-") {
1689 1689
 				$fa_type = 'regular';
1690
-			} elseif ( substr( $icon, 0, 7 ) === "fab fa-" ) {
1690
+			} elseif (substr($icon, 0, 7) === "fab fa-") {
1691 1691
 				$fa_type = 'brands';
1692 1692
 			} else {
1693 1693
 				$icon = "'" . $icon . "'";
1694 1694
 			}
1695 1695
 
1696 1696
 			// set the icon if we found one
1697
-			if ( $fa_type ) {
1698
-				$fa_icon = str_replace( array( "fas fa-", "far fa-", "fab fa-" ), "", $icon );
1697
+			if ($fa_type) {
1698
+				$fa_icon = str_replace(array("fas fa-", "far fa-", "fab fa-"), "", $icon);
1699 1699
 				$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 . "'}))";
1700 1700
 			}
1701 1701
 
1702 1702
 			return $icon;
1703 1703
 		}
1704 1704
 
1705
-		public function group_arguments( $arguments ) {
1706
-			if ( ! empty( $arguments ) ) {
1705
+		public function group_arguments($arguments) {
1706
+			if (!empty($arguments)) {
1707 1707
 				$temp_arguments = array();
1708
-				$general        = __( "General", 'ayecode-connect' );
1708
+				$general        = __("General", 'ayecode-connect');
1709 1709
 				$add_sections   = false;
1710
-				foreach ( $arguments as $key => $args ) {
1711
-					if ( isset( $args['group'] ) ) {
1712
-						$temp_arguments[ $args['group'] ][ $key ] = $args;
1710
+				foreach ($arguments as $key => $args) {
1711
+					if (isset($args['group'])) {
1712
+						$temp_arguments[$args['group']][$key] = $args;
1713 1713
 						$add_sections                             = true;
1714 1714
 					} else {
1715
-						$temp_arguments[ $general ][ $key ] = $args;
1715
+						$temp_arguments[$general][$key] = $args;
1716 1716
 					}
1717 1717
 				}
1718 1718
 
1719 1719
 				// only add sections if more than one
1720
-				if ( $add_sections ) {
1720
+				if ($add_sections) {
1721 1721
 					$arguments = $temp_arguments;
1722 1722
 				}
1723 1723
 			}
@@ -1730,38 +1730,38 @@  discard block
 block discarded – undo
1730 1730
 		 *
1731 1731
 		 * @since 1.1.17
1732 1732
 		 */
1733
-		public function group_block_tabs( $tabs, $arguments ) {
1734
-			if ( ! empty( $tabs ) && ! empty( $arguments ) ) {
1733
+		public function group_block_tabs($tabs, $arguments) {
1734
+			if (!empty($tabs) && !empty($arguments)) {
1735 1735
 				$has_sections = false;
1736 1736
 
1737
-				foreach ( $this->arguments as $key => $args ) {
1738
-					if ( isset( $args['group'] ) ) {
1737
+				foreach ($this->arguments as $key => $args) {
1738
+					if (isset($args['group'])) {
1739 1739
 						$has_sections = true;
1740 1740
 						break;
1741 1741
 					}
1742 1742
 				}
1743 1743
 
1744
-				if ( ! $has_sections ) {
1744
+				if (!$has_sections) {
1745 1745
 					return $tabs;
1746 1746
 				}
1747 1747
 
1748 1748
 				$new_tabs = array();
1749 1749
 
1750
-				foreach ( $tabs as $tab_key => $tab ) {
1750
+				foreach ($tabs as $tab_key => $tab) {
1751 1751
 					$new_groups = array();
1752 1752
 
1753
-					if ( ! empty( $tab['groups'] ) && is_array( $tab['groups'] ) ) {
1754
-						foreach ( $tab['groups'] as $group ) {
1755
-							if ( isset( $arguments[ $group ] ) ) {
1753
+					if (!empty($tab['groups']) && is_array($tab['groups'])) {
1754
+						foreach ($tab['groups'] as $group) {
1755
+							if (isset($arguments[$group])) {
1756 1756
 								$new_groups[] = $group;
1757 1757
 							}
1758 1758
 						}
1759 1759
 					}
1760 1760
 
1761
-					if ( ! empty( $new_groups ) ) {
1761
+					if (!empty($new_groups)) {
1762 1762
 						$tab['groups'] = $new_groups;
1763 1763
 
1764
-						$new_tabs[ $tab_key ] = $tab;
1764
+						$new_tabs[$tab_key] = $tab;
1765 1765
 					}
1766 1766
 				}
1767 1767
 
@@ -1788,7 +1788,7 @@  discard block
 block discarded – undo
1788 1788
 			?>
1789 1789
 			<script>
1790 1790
 			<?php
1791
-			if ( ! $sd_is_js_functions_loaded ) {
1791
+			if (!$sd_is_js_functions_loaded) {
1792 1792
 				$sd_is_js_functions_loaded = true;
1793 1793
 			?>
1794 1794
 function sd_show_view_options($this){
@@ -2065,7 +2065,7 @@  discard block
 block discarded – undo
2065 2065
 	}
2066 2066
 }
2067 2067
 
2068
-<?php if( !isset( $_REQUEST['sd-block-recover-debug'] ) ){ ?>
2068
+<?php if (!isset($_REQUEST['sd-block-recover-debug'])) { ?>
2069 2069
 // Wait will window is loaded before calling.
2070 2070
 window.onload = function() {
2071 2071
 	sd_auto_recover_blocks();
@@ -2244,7 +2244,7 @@  discard block
 block discarded – undo
2244 2244
 				$classes = [];
2245 2245
 
2246 2246
 				<?php
2247
-				if($aui_bs5){
2247
+				if ($aui_bs5) {
2248 2248
 					?>
2249 2249
 				$aui_bs5 = true;
2250 2250
 				$p_ml = 'ms-';
@@ -2253,7 +2253,7 @@  discard block
 block discarded – undo
2253 2253
 				$p_pl = 'ps-';
2254 2254
 				$p_pr = 'pe-';
2255 2255
 					<?php
2256
-				}else{
2256
+				} else {
2257 2257
 						?>
2258 2258
 				$aui_bs5 = false;
2259 2259
 				$p_ml = 'ml-';
@@ -2441,7 +2441,7 @@  discard block
 block discarded – undo
2441 2441
 			}
2442 2442
 
2443 2443
 			function sd_get_class_build_keys(){
2444
-				return <?php echo json_encode(sd_get_class_build_keys());?>;
2444
+				return <?php echo json_encode(sd_get_class_build_keys()); ?>;
2445 2445
 			}
2446 2446
 
2447 2447
 			<?php
@@ -2449,7 +2449,7 @@  discard block
 block discarded – undo
2449 2449
 
2450 2450
 			}
2451 2451
 
2452
-			if(method_exists($this,'block_global_js')){
2452
+			if (method_exists($this, 'block_global_js')) {
2453 2453
 					echo $this->block_global_js();
2454 2454
 			}
2455 2455
 			?>
@@ -2481,9 +2481,9 @@  discard block
 block discarded – undo
2481 2481
 					var InnerBlocks = blockEditor.InnerBlocks;
2482 2482
 
2483 2483
 					var term_query_type = '';
2484
-					var post_type_rest_slugs = <?php if(! empty( $this->arguments ) && isset($this->arguments['post_type']['onchange_rest']['values'])){echo "[".json_encode($this->arguments['post_type']['onchange_rest']['values'])."]";}else{echo "[]";} ?>;
2485
-					const taxonomies_<?php echo str_replace("-","_", $this->id);?> = [{label: "Please wait", value: 0}];
2486
-					const sort_by_<?php echo str_replace("-","_", $this->id);?> = [{label: "Please wait", value: 0}];
2484
+					var post_type_rest_slugs = <?php if (!empty($this->arguments) && isset($this->arguments['post_type']['onchange_rest']['values'])) {echo "[" . json_encode($this->arguments['post_type']['onchange_rest']['values']) . "]"; } else {echo "[]"; } ?>;
2485
+					const taxonomies_<?php echo str_replace("-", "_", $this->id); ?> = [{label: "Please wait", value: 0}];
2486
+					const sort_by_<?php echo str_replace("-", "_", $this->id); ?> = [{label: "Please wait", value: 0}];
2487 2487
 					const MediaUpload = wp.blockEditor.MediaUpload;
2488 2488
 
2489 2489
 					/**
@@ -2498,87 +2498,87 @@  discard block
 block discarded – undo
2498 2498
 					 * @return {?WPBlock}          The block, if it has been successfully
2499 2499
 					 *                             registered; otherwise `undefined`.
2500 2500
 					 */
2501
-					registerBlockType('<?php echo str_replace( "_", "-", sanitize_title_with_dashes( $this->options['textdomain'] ) . '/' . sanitize_title_with_dashes( $this->options['class_name'] ) );  ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
2502
-						apiVersion: <?php echo isset($this->options['block-api-version']) ? absint($this->options['block-api-version']) : 2 ; ?>,
2503
-						title: '<?php echo addslashes( $this->options['name'] ); ?>', // Block title.
2504
-						description: '<?php echo addslashes( $this->options['widget_ops']['description'] )?>', // Block title.
2505
-						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/.
2501
+					registerBlockType('<?php echo str_replace("_", "-", sanitize_title_with_dashes($this->options['textdomain']) . '/' . sanitize_title_with_dashes($this->options['class_name'])); ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
2502
+						apiVersion: <?php echo isset($this->options['block-api-version']) ? absint($this->options['block-api-version']) : 2; ?>,
2503
+						title: '<?php echo addslashes($this->options['name']); ?>', // Block title.
2504
+						description: '<?php echo addslashes($this->options['widget_ops']['description'])?>', // Block title.
2505
+						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/.
2506 2506
 						supports: {
2507 2507
 							<?php
2508
-							if(!isset($this->options['block-supports']['renaming'])){
2508
+							if (!isset($this->options['block-supports']['renaming'])) {
2509 2509
 								$this->options['block-supports']['renaming'] = false;
2510 2510
 							}
2511
-							if ( isset( $this->options['block-supports'] ) ) {
2512
-								echo $this->array_to_attributes( $this->options['block-supports'] );
2511
+							if (isset($this->options['block-supports'])) {
2512
+								echo $this->array_to_attributes($this->options['block-supports']);
2513 2513
 							}
2514 2514
 							?>
2515 2515
 						},
2516 2516
 						__experimentalLabel( attributes, { context } ) {
2517 2517
 							var visibility_html = attributes && attributes.visibility_conditions ? ' &#128065;' : '';
2518 2518
 							var metadata_name = attributes && attributes.metadata && attributes.metadata.name ? attributes.metadata.name : '';
2519
-							var label_name = <?php echo !empty($this->options['block-label']) ? $this->options['block-label'] : "'" . esc_attr( addslashes( $this->options['name'] ) ) . "'"; ?>;
2519
+							var label_name = <?php echo !empty($this->options['block-label']) ? $this->options['block-label'] : "'" . esc_attr(addslashes($this->options['name'])) . "'"; ?>;
2520 2520
 							return metadata_name ? metadata_name + visibility_html  : label_name + visibility_html;
2521 2521
 						},
2522
-						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.
2523
-						<?php if ( isset( $this->options['block-keywords'] ) ) {
2522
+						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.
2523
+						<?php if (isset($this->options['block-keywords'])) {
2524 2524
 						echo "keywords : " . $this->options['block-keywords'] . ",";
2525 2525
 						}
2526 2526
 
2527 2527
 
2528 2528
 						// block hover preview.
2529 2529
 						$example_args = array();
2530
-						if(!empty($this->arguments)){
2531
-							foreach($this->arguments as $key => $a_args){
2532
-								if(isset($a_args['example'])){
2530
+						if (!empty($this->arguments)) {
2531
+							foreach ($this->arguments as $key => $a_args) {
2532
+								if (isset($a_args['example'])) {
2533 2533
 									$example_args[$key] = $a_args['example'];
2534 2534
 								}
2535 2535
 							}
2536 2536
 						}
2537
-						$viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: '.absint($this->options['example']['viewportWidth']) : '';
2537
+						$viewport_width = isset($this->options['example']['viewportWidth']) ? 'viewportWidth: ' . absint($this->options['example']['viewportWidth']) : '';
2538 2538
 						$example_inner_blocks = !empty($this->options['example']['innerBlocks']) && is_array($this->options['example']['innerBlocks']) ? 'innerBlocks: ' . wp_json_encode($this->options['example']['innerBlocks']) : '';
2539
-						if( isset( $this->options['example'] ) && $this->options['example'] === false ){
2539
+						if (isset($this->options['example']) && $this->options['example'] === false) {
2540 2540
 							// no preview if set to false
2541
-						}elseif( !empty( $example_args ) ){
2542
-							echo "example : {attributes:{".$this->array_to_attributes( $example_args )."},$viewport_width},";
2543
-						}elseif( !empty( $this->options['example'] ) ){
2541
+						}elseif (!empty($example_args)) {
2542
+							echo "example : {attributes:{" . $this->array_to_attributes($example_args) . "},$viewport_width},";
2543
+						}elseif (!empty($this->options['example'])) {
2544 2544
 							unset($this->options['example']['viewportWidth']);
2545 2545
 							unset($this->options['example']['innerBlocks']);
2546
-							$example_atts = $this->array_to_attributes( $this->options['example'] );
2546
+							$example_atts = $this->array_to_attributes($this->options['example']);
2547 2547
 							$example_parts = array();
2548
-							if($example_atts){
2549
-								$example_parts[] = rtrim($example_atts,",");
2548
+							if ($example_atts) {
2549
+								$example_parts[] = rtrim($example_atts, ",");
2550 2550
 							}
2551
-							if($viewport_width){
2551
+							if ($viewport_width) {
2552 2552
 								$example_parts[] = $viewport_width;
2553 2553
 							}
2554
-							if($example_inner_blocks){
2554
+							if ($example_inner_blocks) {
2555 2555
 								$example_parts[] = $example_inner_blocks;
2556 2556
 							}
2557
-							if(!empty($example_parts)){
2558
-								echo "example : {".implode(',', $example_parts)."},";
2557
+							if (!empty($example_parts)) {
2558
+								echo "example : {" . implode(',', $example_parts) . "},";
2559 2559
 							}
2560
-						}else{
2560
+						} else {
2561 2561
 							echo 'example : {viewportWidth: 500},';
2562 2562
 						}
2563 2563
 
2564 2564
 
2565 2565
 
2566 2566
 						// limit to parent
2567
-						if( !empty( $this->options['parent'] ) ){
2568
-							echo "parent : " . wp_json_encode( $this->options['parent'] ) . ",";
2567
+						if (!empty($this->options['parent'])) {
2568
+							echo "parent : " . wp_json_encode($this->options['parent']) . ",";
2569 2569
 						}
2570 2570
 
2571 2571
 						// limit allowed blocks
2572
-						if( !empty( $this->options['allowed-blocks'] ) ){
2573
-							echo "allowedBlocks : " . wp_json_encode( $this->options['allowed-blocks'] ) . ",";
2572
+						if (!empty($this->options['allowed-blocks'])) {
2573
+							echo "allowedBlocks : " . wp_json_encode($this->options['allowed-blocks']) . ",";
2574 2574
 						}
2575 2575
 
2576 2576
 						// maybe set no_wrap
2577
-						$no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
2578
-						if ( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ) {
2577
+						$no_wrap = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false;
2578
+						if (isset($this->arguments['no_wrap']) && $this->arguments['no_wrap']) {
2579 2579
 							$no_wrap = true;
2580 2580
 						}
2581
-						if ( $no_wrap ) {
2581
+						if ($no_wrap) {
2582 2582
 							$this->options['block-wrap'] = '';
2583 2583
 						}
2584 2584
 
@@ -2595,7 +2595,7 @@  discard block
 block discarded – undo
2595 2595
 
2596 2596
 							echo "attributes : {";
2597 2597
 
2598
-							if ( $show_advanced ) {
2598
+							if ($show_advanced) {
2599 2599
 								echo "show_advanced: {";
2600 2600
 								echo "	type: 'boolean',";
2601 2601
 								echo "  default: false,";
@@ -2603,57 +2603,57 @@  discard block
 block discarded – undo
2603 2603
 							}
2604 2604
 
2605 2605
 							// block wrap element
2606
-							if ( ! empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
2606
+							if (!empty($this->options['block-wrap'])) { //@todo we should validate this?
2607 2607
 								echo "block_wrap: {";
2608 2608
 								echo "	type: 'string',";
2609
-								echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
2609
+								echo "  default: '" . esc_attr($this->options['block-wrap']) . "',";
2610 2610
 								echo "},";
2611 2611
 							}
2612 2612
 
2613 2613
 
2614
-							if ( ! empty( $this->arguments ) ) {
2614
+							if (!empty($this->arguments)) {
2615 2615
 
2616
-								foreach ( $this->arguments as $key => $args ) {
2616
+								foreach ($this->arguments as $key => $args) {
2617 2617
 
2618
-									if( $args['type'] == 'image' ||  $args['type'] == 'images' ){
2618
+									if ($args['type'] == 'image' || $args['type'] == 'images') {
2619 2619
 										$img_drag_drop = true;
2620 2620
 									}
2621 2621
 
2622 2622
 									// set if we should show alignment
2623
-									if ( $key == 'alignment' ) {
2623
+									if ($key == 'alignment') {
2624 2624
 										$show_alignment = true;
2625 2625
 									}
2626 2626
 
2627 2627
 									$extra = '';
2628 2628
 
2629
-									if ( $args['type'] == 'notice' ||  $args['type'] == 'tab' ) {
2629
+									if ($args['type'] == 'notice' || $args['type'] == 'tab') {
2630 2630
 										continue;
2631 2631
 									}
2632
-									elseif ( $args['type'] == 'checkbox' ) {
2632
+									elseif ($args['type'] == 'checkbox') {
2633 2633
 										$type    = 'boolean';
2634
-										$default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
2635
-									} elseif ( $args['type'] == 'number' ) {
2634
+										$default = isset($args['default']) && $args['default'] ? 'true' : 'false';
2635
+									} elseif ($args['type'] == 'number') {
2636 2636
 										$type    = 'number';
2637
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2638
-									} elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
2637
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2638
+									} elseif ($args['type'] == 'select' && !empty($args['multiple'])) {
2639 2639
 										$type = 'array';
2640
-										if ( isset( $args['default'] ) && is_array( $args['default'] ) ) {
2641
-											$default = ! empty( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
2640
+										if (isset($args['default']) && is_array($args['default'])) {
2641
+											$default = !empty($args['default']) ? "['" . implode("','", $args['default']) . "']" : "[]";
2642 2642
 										} else {
2643
-											$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2643
+											$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2644 2644
 										}
2645
-									} elseif ( $args['type'] == 'tagselect' ) {
2645
+									} elseif ($args['type'] == 'tagselect') {
2646 2646
 										$type    = 'array';
2647
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2648
-									} elseif ( $args['type'] == 'multiselect' ) {
2647
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2648
+									} elseif ($args['type'] == 'multiselect') {
2649 2649
 										$type    = 'array';
2650
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2651
-									} elseif ( $args['type'] == 'image_xy' ) {
2650
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2651
+									} elseif ($args['type'] == 'image_xy') {
2652 2652
 										$type    = 'object';
2653
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2654
-									} elseif ( $args['type'] == 'image' ) {
2653
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2654
+									} elseif ($args['type'] == 'image') {
2655 2655
 										$type    = 'string';
2656
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2656
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2657 2657
 
2658 2658
 										// add a field for ID
2659 2659
 	//                                    echo $key . "_id : {";
@@ -2665,7 +2665,7 @@  discard block
 block discarded – undo
2665 2665
 
2666 2666
 									} else {
2667 2667
 										$type    = !empty($args['hidden_type']) ? esc_attr($args['hidden_type']) : 'string';
2668
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
2668
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
2669 2669
 
2670 2670
 									}
2671 2671
 									echo $key . " : {";
@@ -2678,7 +2678,7 @@  discard block
 block discarded – undo
2678 2678
 							echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
2679 2679
 							echo "sd_shortcode : {type : 'string',default: ''},";
2680 2680
 
2681
-							if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
2681
+							if (!empty($this->options['nested-block']) || !empty($this->arguments['html'])) {
2682 2682
 								echo "sd_shortcode_close : {type : 'string',default: ''},";
2683 2683
 							}
2684 2684
 
@@ -2697,7 +2697,7 @@  discard block
 block discarded – undo
2697 2697
 
2698 2698
 <?php
2699 2699
 // only include the drag/drop functions if required.
2700
-if( $img_drag_drop ){
2700
+if ($img_drag_drop) {
2701 2701
 
2702 2702
 ?>
2703 2703
 
@@ -2763,9 +2763,9 @@  discard block
 block discarded – undo
2763 2763
 							}
2764 2764
 
2765 2765
 							<?php
2766
-							if(!empty($this->options['block-edit-raw'])) {
2766
+							if (!empty($this->options['block-edit-raw'])) {
2767 2767
 								echo $this->options['block-edit-raw']; // strings have to be in single quotes, may cause issues
2768
-							}else{
2768
+							} else {
2769 2769
 							?>
2770 2770
 
2771 2771
 function hasSelectedInnerBlock(props) {
@@ -2789,7 +2789,7 @@  discard block
 block discarded – undo
2789 2789
 	var $value = '';
2790 2790
 	<?php
2791 2791
 	// if we have a post_type and a category then link them
2792
-	if( isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked']) ){
2792
+	if (isset($this->arguments['post_type']) && isset($this->arguments['category']) && !empty($this->arguments['category']['post_type_linked'])) {
2793 2793
 	?>
2794 2794
 	if(typeof(prev_attributes[props.clientId]) != 'undefined' && selectedBlock && selectedBlock.clientId === props.clientId){
2795 2795
 		$pt = props.attributes.post_type;
@@ -2804,9 +2804,9 @@  discard block
 block discarded – undo
2804 2804
 		}
2805 2805
 <?php
2806 2806
 	$cat_path = '';
2807
-	if ( ! empty( $this->arguments['post_type']['onchange_rest']['path'] ) ) {
2808
-		$cat_path = esc_js( strip_tags( $this->arguments['post_type']['onchange_rest']['path'] ) );
2809
-		$cat_path = str_replace( array( '&quot;', '&#039;' ), array( '"', "'" ), $cat_path );
2807
+	if (!empty($this->arguments['post_type']['onchange_rest']['path'])) {
2808
+		$cat_path = esc_js(strip_tags($this->arguments['post_type']['onchange_rest']['path']));
2809
+		$cat_path = str_replace(array('&quot;', '&#039;'), array('"', "'"), $cat_path);
2810 2810
 	}
2811 2811
 ?>
2812 2812
 		/* taxonomies */
@@ -2814,15 +2814,15 @@  discard block
 block discarded – undo
2814 2814
 			if (!window.gdCPTCats) {
2815 2815
 				window.gdCPTCats = [];
2816 2816
 			}
2817
-			var gdCatPath = "<?php echo ( ! empty( $cat_path ) ? $cat_path : "/wp/v2/" + $value + "/categories/?per_page=100" ); ?>";
2817
+			var gdCatPath = "<?php echo (!empty($cat_path) ? $cat_path : "/wp/v2/" +$value + "/categories/?per_page=100"); ?>";
2818 2818
 			if (window.gdCPTCats[gdCatPath]) {
2819 2819
 				terms = window.gdCPTCats[gdCatPath];
2820
-				while (taxonomies_<?php echo str_replace("-","_", $this->id);?>.length) {
2821
-					taxonomies_<?php echo str_replace("-","_", $this->id);?>.pop();
2820
+				while (taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.length) {
2821
+					taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.pop();
2822 2822
 				}
2823
-				taxonomies_<?php echo str_replace("-","_", $this->id);?>.push({label: "All", value: 0});
2823
+				taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.push({label: "All", value: 0});
2824 2824
 				jQuery.each( terms, function( key, val ) {
2825
-					taxonomies_<?php echo str_replace("-","_", $this->id);?>.push({label: val.name, value: val.id});
2825
+					taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.push({label: val.name, value: val.id});
2826 2826
 				});
2827 2827
 
2828 2828
 				/* Setting the value back and fourth fixes the no update issue that sometimes happens where it won't update the options. */
@@ -2832,12 +2832,12 @@  discard block
 block discarded – undo
2832 2832
 			} else {
2833 2833
 				wp.apiFetch({path: gdCatPath}).then(terms => {
2834 2834
 					window.gdCPTCats[gdCatPath] = terms;
2835
-					while (taxonomies_<?php echo str_replace("-","_", $this->id);?>.length) {
2836
-						taxonomies_<?php echo str_replace("-","_", $this->id);?>.pop();
2835
+					while (taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.length) {
2836
+						taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.pop();
2837 2837
 					}
2838
-					taxonomies_<?php echo str_replace("-","_", $this->id);?>.push({label: "All", value: 0});
2838
+					taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.push({label: "All", value: 0});
2839 2839
 					jQuery.each( terms, function( key, val ) {
2840
-						taxonomies_<?php echo str_replace("-","_", $this->id);?>.push({label: val.name, value: val.id});
2840
+						taxonomies_<?php echo str_replace("-", "_", $this->id); ?>.push({label: val.name, value: val.id});
2841 2841
 					});
2842 2842
 
2843 2843
 					/* Setting the value back and fourth fixes the no update issue that sometimes happens where it won't update the options. */
@@ -2845,7 +2845,7 @@  discard block
 block discarded – undo
2845 2845
 					props.setAttributes({category: [0] });
2846 2846
 					props.setAttributes({category: $old_cat_value });
2847 2847
 
2848
-					return taxonomies_<?php echo str_replace("-","_", $this->id);?>;
2848
+					return taxonomies_<?php echo str_replace("-", "_", $this->id); ?>;
2849 2849
 				});
2850 2850
 			}
2851 2851
 		}
@@ -2857,12 +2857,12 @@  discard block
 block discarded – undo
2857 2857
 			}
2858 2858
 			if (window.gdCPTSort[$pt]) {
2859 2859
 				response = window.gdCPTSort[$pt];
2860
-				while (sort_by_<?php echo str_replace("-","_", $this->id);?>.length) {
2861
-					sort_by_<?php echo str_replace("-","_", $this->id);?>.pop();
2860
+				while (sort_by_<?php echo str_replace("-", "_", $this->id); ?>.length) {
2861
+					sort_by_<?php echo str_replace("-", "_", $this->id); ?>.pop();
2862 2862
 				}
2863 2863
 
2864 2864
 				jQuery.each( response, function( key, val ) {
2865
-					sort_by_<?php echo str_replace("-","_", $this->id);?>.push({label: val, value: key});
2865
+					sort_by_<?php echo str_replace("-", "_", $this->id); ?>.push({label: val, value: key});
2866 2866
 				});
2867 2867
 
2868 2868
 				// setting the value back and fourth fixes the no update issue that sometimes happens where it won't update the options.
@@ -2877,12 +2877,12 @@  discard block
 block discarded – undo
2877 2877
 				jQuery.post(ajaxurl, data, function(response) {
2878 2878
 					response = JSON.parse(response);
2879 2879
 					window.gdCPTSort[$pt] = response;
2880
-					while (sort_by_<?php echo str_replace("-","_", $this->id);?>.length) {
2881
-						sort_by_<?php echo str_replace("-","_", $this->id);?>.pop();
2880
+					while (sort_by_<?php echo str_replace("-", "_", $this->id); ?>.length) {
2881
+						sort_by_<?php echo str_replace("-", "_", $this->id); ?>.pop();
2882 2882
 					}
2883 2883
 
2884 2884
 					jQuery.each( response, function( key, val ) {
2885
-						sort_by_<?php echo str_replace("-","_", $this->id);?>.push({label: val, value: key});
2885
+						sort_by_<?php echo str_replace("-", "_", $this->id); ?>.push({label: val, value: key});
2886 2886
 					});
2887 2887
 
2888 2888
 					// setting the value back and fourth fixes the no update issue that sometimes happens where it won't update the options.
@@ -2890,7 +2890,7 @@  discard block
 block discarded – undo
2890 2890
 					props.setAttributes({sort_by: [0] });
2891 2891
 					props.setAttributes({sort_by: $old_sort_by_value });
2892 2892
 
2893
-					return sort_by_<?php echo str_replace("-","_", $this->id);?>;
2893
+					return sort_by_<?php echo str_replace("-", "_", $this->id); ?>;
2894 2894
 				});
2895 2895
 			}
2896 2896
 		}
@@ -2898,9 +2898,9 @@  discard block
 block discarded – undo
2898 2898
 	<?php } ?>
2899 2899
 <?php
2900 2900
 $current_screen = function_exists('get_current_screen') ? get_current_screen() : '';
2901
-if(!empty($current_screen->base) && $current_screen->base==='widgets'){
2901
+if (!empty($current_screen->base) && $current_screen->base === 'widgets') {
2902 2902
 	echo 'const { deviceType } = "";';
2903
-}else{
2903
+} else {
2904 2904
 ?>
2905 2905
 /** Get device type const. */
2906 2906
 const wpVersion = '<?php global $wp_version; echo esc_attr($wp_version); ?>';
@@ -2959,13 +2959,13 @@  discard block
 block discarded – undo
2959 2959
 
2960 2960
 									var data = {
2961 2961
 										'action': 'super_duper_output_shortcode',
2962
-										'shortcode': '<?php echo $this->options['base_id'];?>',
2962
+										'shortcode': '<?php echo $this->options['base_id']; ?>',
2963 2963
 										'attributes': props.attributes,
2964 2964
 										'block_parent_name': parentBlocks.length ? parentBlocks[parentBlocks.length - 1].name : '',
2965
-										'post_id': <?php global $post; if ( isset( $post->ID ) ) {
2965
+										'post_id': <?php global $post; if (isset($post->ID)) {
2966 2966
 										echo $post->ID;
2967
-									}else{echo '0';}?>,
2968
-										'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
2967
+									} else {echo '0'; }?>,
2968
+										'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>'
2969 2969
 									};
2970 2970
 
2971 2971
 									jQuery.post(ajaxurl, data, function (response) {
@@ -2974,17 +2974,17 @@  discard block
 block discarded – undo
2974 2974
 
2975 2975
 										// if the content is empty then we place some placeholder text
2976 2976
 										if (env == '') {
2977
-											env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e( 'Placeholder for:', 'ayecode-connect' );?> " + props.name + "</div>";
2977
+											env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e('Placeholder for:', 'ayecode-connect'); ?> " + props.name + "</div>";
2978 2978
 										}
2979 2979
 
2980 2980
 										 <?php
2981
-										if(!empty($this->options['nested-block'])){
2981
+										if (!empty($this->options['nested-block'])) {
2982 2982
 											?>
2983 2983
 											// props.setAttributes({content: env});
2984 2984
 										is_fetching = false;
2985 2985
 										prev_attributes[props.clientId] = props.attributes;
2986 2986
 											 <?php
2987
-										}else{
2987
+										} else {
2988 2988
 										?>
2989 2989
 										props.setAttributes({content: env});
2990 2990
 										is_fetching = false;
@@ -3010,38 +3010,38 @@  discard block
 block discarded – undo
3010 3010
 							}
3011 3011
 
3012 3012
 							<?php
3013
-							if(!empty($this->options['block-edit-js'])) {
3014
-								echo  $this->options['block-edit-js'] ; // strings have to be in single quotes, may cause issues
3013
+							if (!empty($this->options['block-edit-js'])) {
3014
+								echo  $this->options['block-edit-js']; // strings have to be in single quotes, may cause issues
3015 3015
 							}
3016 3016
 
3017 3017
 
3018 3018
 
3019 3019
 
3020
-							if(empty($this->options['block-save-return'])){
3020
+							if (empty($this->options['block-save-return'])) {
3021 3021
 							?>
3022 3022
 								///////////////////////////////////////////////////////////////////////
3023 3023
 
3024 3024
 									 // build the shortcode.
3025
-								shortcode = "[<?php echo $this->options['base_id'];?>";
3025
+								shortcode = "[<?php echo $this->options['base_id']; ?>";
3026 3026
 								<?php
3027 3027
 
3028
-								if(! empty( $this->arguments )){
3028
+								if (!empty($this->arguments)) {
3029 3029
 
3030
-								foreach($this->arguments as $key => $args){
3030
+								foreach ($this->arguments as $key => $args) {
3031 3031
 								   // if($args['type']=='tabs'){continue;}
3032 3032
 
3033 3033
 								   // don't add metadata arguments
3034
-								   if (substr($key, 0, 9 ) === 'metadata_') {
3034
+								   if (substr($key, 0, 9) === 'metadata_') {
3035 3035
 									   continue;
3036 3036
 								   }
3037 3037
 								?>
3038
-								if (props.attributes.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3039
-									if ('<?php echo esc_attr( $key );?>' == 'html') {
3040
-									} else if ('<?php echo esc_attr( $args['type'] );?>' == 'image_xy') {
3041
-										shortcode += props.attributes.<?php echo esc_attr( $key );?>.length && ( props.attributes.<?php echo esc_attr( $key );?>.x.length || props.attributes.<?php echo esc_attr( $key );?>.y.length ) ? " <?php echo esc_attr( $key );?>='{x:" + props.attributes.<?php echo esc_attr( $key );?>.x + ",y:"+props.attributes.<?php echo esc_attr( $key );?>.y +"}' " : "";
3038
+								if (props.attributes.hasOwnProperty("<?php echo esc_attr($key); ?>")) {
3039
+									if ('<?php echo esc_attr($key); ?>' == 'html') {
3040
+									} else if ('<?php echo esc_attr($args['type']); ?>' == 'image_xy') {
3041
+										shortcode += props.attributes.<?php echo esc_attr($key); ?>.length && ( props.attributes.<?php echo esc_attr($key); ?>.x.length || props.attributes.<?php echo esc_attr($key); ?>.y.length ) ? " <?php echo esc_attr($key); ?>='{x:" + props.attributes.<?php echo esc_attr($key); ?>.x + ",y:"+props.attributes.<?php echo esc_attr($key); ?>.y +"}' " : "";
3042 3042
 									} else {
3043
-										//shortcode += props.attributes.<?php echo esc_attr( $key );?>.length ? " <?php echo esc_attr( $key );?>='" + props.attributes.<?php echo esc_attr( $key );?>.toString().replace('\'','&#39;') + "' " : "";
3044
-										shortcode +=  " <?php echo esc_attr( $key );?>='" + props.attributes.<?php echo esc_attr( $key );?>.toString().replace('\'','&#39;') + "' ";
3043
+										//shortcode += props.attributes.<?php echo esc_attr($key); ?>.length ? " <?php echo esc_attr($key); ?>='" + props.attributes.<?php echo esc_attr($key); ?>.toString().replace('\'','&#39;') + "' " : "";
3044
+										shortcode +=  " <?php echo esc_attr($key); ?>='" + props.attributes.<?php echo esc_attr($key); ?>.toString().replace('\'','&#39;') + "' ";
3045 3045
 									}
3046 3046
 								}
3047 3047
 								<?php
@@ -3060,8 +3060,8 @@  discard block
 block discarded – undo
3060 3060
 
3061 3061
 
3062 3062
 									<?php
3063
-									if(!empty($this->options['nested-block']) || !empty($this->arguments['html']) ){
3064
-										echo "props.setAttributes({sd_shortcode_close: '[/".esc_attr( $this->options['base_id'] )."]'});";
3063
+									if (!empty($this->options['nested-block']) || !empty($this->arguments['html'])) {
3064
+										echo "props.setAttributes({sd_shortcode_close: '[/" . esc_attr($this->options['base_id']) . "]'});";
3065 3065
 									}
3066 3066
 									?>
3067 3067
 								}
@@ -3076,7 +3076,7 @@  discard block
 block discarded – undo
3076 3076
 
3077 3077
 								el(wp.blockEditor.BlockControls, {key: 'controls'},
3078 3078
 
3079
-									<?php if($show_alignment){?>
3079
+									<?php if ($show_alignment) {?>
3080 3080
 									el(
3081 3081
 										wp.blockEditor.AlignmentToolbar,
3082 3082
 										{
@@ -3094,9 +3094,9 @@  discard block
 block discarded – undo
3094 3094
 
3095 3095
 									<?php
3096 3096
 
3097
-									if(! empty( $this->arguments )){
3097
+									if (!empty($this->arguments)) {
3098 3098
 
3099
-									if ( $show_advanced ) {
3099
+									if ($show_advanced) {
3100 3100
 									?>
3101 3101
 									el('div', {
3102 3102
 											style: {'padding-left': '16px','padding-right': '16px'}
@@ -3116,42 +3116,42 @@  discard block
 block discarded – undo
3116 3116
 									<?php
3117 3117
 									}
3118 3118
 
3119
-									$arguments = $this->group_arguments( $this->arguments );
3120
-									$block_group_tabs = ! empty( $this->options['block_group_tabs'] ) ? $this->group_block_tabs( $this->options['block_group_tabs'], $arguments ) : array();
3119
+									$arguments = $this->group_arguments($this->arguments);
3120
+									$block_group_tabs = !empty($this->options['block_group_tabs']) ? $this->group_block_tabs($this->options['block_group_tabs'], $arguments) : array();
3121 3121
 
3122 3122
 									// Do we have sections?
3123 3123
 									$has_sections = $arguments == $this->arguments ? false : true;
3124 3124
 
3125
-									if($has_sections){
3125
+									if ($has_sections) {
3126 3126
 									$panel_count = 0;
3127 3127
 									$open_tab = '';
3128 3128
 
3129 3129
 									$open_tab_groups = array();
3130 3130
 									$used_tabs = array();
3131 3131
 
3132
-									foreach ( $arguments as $key => $args ) {
3132
+									foreach ($arguments as $key => $args) {
3133 3133
 										$close_tab = false;
3134 3134
 										$close_tabs = false;
3135 3135
 
3136
-										 if ( ! empty( $block_group_tabs ) ) {
3137
-											foreach ( $block_group_tabs as $tab_name => $tab_args ) {
3138
-												if ( in_array( $key, $tab_args['groups'] ) ) {
3136
+										 if (!empty($block_group_tabs)) {
3137
+											foreach ($block_group_tabs as $tab_name => $tab_args) {
3138
+												if (in_array($key, $tab_args['groups'])) {
3139 3139
 													$open_tab_groups[] = $key;
3140 3140
 
3141
-													if ( $open_tab != $tab_name ) {
3141
+													if ($open_tab != $tab_name) {
3142 3142
 														$tab_args['tab']['tabs_open'] = $open_tab == '' ? true : false;
3143 3143
 														$tab_args['tab']['open'] = true;
3144 3144
 
3145
-														$this->block_tab_start( '', $tab_args );
3145
+														$this->block_tab_start('', $tab_args);
3146 3146
 														$open_tab = $tab_name;
3147 3147
 														$used_tabs[] = $tab_name;
3148 3148
 													}
3149 3149
 
3150
-													if ( $open_tab_groups == $tab_args['groups'] ) {
3150
+													if ($open_tab_groups == $tab_args['groups']) {
3151 3151
 														$close_tab = true;
3152 3152
 														$open_tab_groups = array();
3153 3153
 
3154
-														if ( $used_tabs == array_keys( $block_group_tabs ) ) {
3154
+														if ($used_tabs == array_keys($block_group_tabs)) {
3155 3155
 															$close_tabs = true;
3156 3156
 														}
3157 3157
 													}
@@ -3160,27 +3160,27 @@  discard block
 block discarded – undo
3160 3160
 										}
3161 3161
 										?>
3162 3162
 										el(wp.components.PanelBody, {
3163
-												title: '<?php esc_attr_e( $key ); ?>',
3164
-												initialOpen: <?php if ( $panel_count ) {
3163
+												title: '<?php esc_attr_e($key); ?>',
3164
+												initialOpen: <?php if ($panel_count) {
3165 3165
 												echo "false";
3166 3166
 											} else {
3167 3167
 												echo "true";
3168 3168
 											}?>
3169 3169
 											},
3170 3170
 											<?php
3171
-											foreach ( $args as $k => $a ) {
3172
-												$this->block_tab_start( $k, $a );
3173
-												$this->block_row_start( $k, $a );
3174
-												$this->build_block_arguments( $k, $a );
3175
-												$this->block_row_end( $k, $a );
3176
-												$this->block_tab_end( $k, $a );
3171
+											foreach ($args as $k => $a) {
3172
+												$this->block_tab_start($k, $a);
3173
+												$this->block_row_start($k, $a);
3174
+												$this->build_block_arguments($k, $a);
3175
+												$this->block_row_end($k, $a);
3176
+												$this->block_tab_end($k, $a);
3177 3177
 											}
3178 3178
 											?>
3179 3179
 										),
3180 3180
 										<?php
3181
-										$panel_count ++;
3181
+										$panel_count++;
3182 3182
 
3183
-										if($close_tab || $close_tabs){
3183
+										if ($close_tab || $close_tabs) {
3184 3184
 											$tab_args = array(
3185 3185
 												'tab'	=> array(
3186 3186
 													'tabs_close' => $close_tabs,
@@ -3188,24 +3188,24 @@  discard block
 block discarded – undo
3188 3188
 												)
3189 3189
 
3190 3190
 											);
3191
-											$this->block_tab_end( '', $tab_args );
3191
+											$this->block_tab_end('', $tab_args);
3192 3192
 //											echo '###close'; print_r($tab_args);
3193 3193
 											$panel_count = 0;
3194 3194
 										}
3195 3195
 //
3196 3196
 
3197 3197
 									}
3198
-									}else {
3198
+									} else {
3199 3199
 									?>
3200 3200
 									el(wp.components.PanelBody, {
3201
-											title: '<?php esc_attr_e( "Settings", 'ayecode-connect' ); ?>',
3201
+											title: '<?php esc_attr_e("Settings", 'ayecode-connect'); ?>',
3202 3202
 											initialOpen: true
3203 3203
 										},
3204 3204
 										<?php
3205
-										foreach ( $this->arguments as $key => $args ) {
3206
-											$this->block_row_start( $key, $args );
3207
-											$this->build_block_arguments( $key, $args );
3208
-											$this->block_row_end( $key, $args );
3205
+										foreach ($this->arguments as $key => $args) {
3206
+											$this->block_row_start($key, $args);
3207
+											$this->build_block_arguments($key, $args);
3208
+											$this->block_row_end($key, $args);
3209 3209
 										}
3210 3210
 										?>
3211 3211
 									),
@@ -3219,11 +3219,11 @@  discard block
 block discarded – undo
3219 3219
 
3220 3220
 								<?php
3221 3221
 								// If the user sets block-output array then build it
3222
-								if ( ! empty( $this->options['block-output'] ) ) {
3223
-								$this->block_element( $this->options['block-output'] );
3224
-							}elseif(!empty($this->options['block-edit-return'])){
3222
+								if (!empty($this->options['block-output'])) {
3223
+								$this->block_element($this->options['block-output']);
3224
+							}elseif (!empty($this->options['block-edit-return'])) {
3225 3225
 								   echo $this->options['block-edit-return'];
3226
-							}else{
3226
+							} else {
3227 3227
 								// if no block-output is set then we try and get the shortcode html output via ajax.
3228 3228
 								$block_edit_wrap_tag = !empty($this->options['block_edit_wrap_tag']) ? esc_attr($this->options['block_edit_wrap_tag']) : 'div';
3229 3229
 								?>
@@ -3250,27 +3250,27 @@  discard block
 block discarded – undo
3250 3250
 							var align = '';
3251 3251
 
3252 3252
 							// build the shortcode.
3253
-							var content = "[<?php echo $this->options['base_id'];?>";
3253
+							var content = "[<?php echo $this->options['base_id']; ?>";
3254 3254
 							$html = '';
3255 3255
 							<?php
3256 3256
 
3257
-							if(! empty( $this->arguments )){
3257
+							if (!empty($this->arguments)) {
3258 3258
 
3259
-							foreach($this->arguments as $key => $args){
3259
+							foreach ($this->arguments as $key => $args) {
3260 3260
 							   // if($args['type']=='tabs'){continue;}
3261 3261
 
3262 3262
 							   // don't add metadata arguments
3263
-							   if (substr($key, 0, 9 ) === 'metadata_') {
3263
+							   if (substr($key, 0, 9) === 'metadata_') {
3264 3264
 								   continue;
3265 3265
 							   }
3266 3266
 							?>
3267
-							if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
3268
-								if ('<?php echo esc_attr( $key );?>' == 'html') {
3269
-									$html = attr.<?php echo esc_attr( $key );?>;
3270
-								} else if ('<?php echo esc_attr( $args['type'] );?>' == 'image_xy') {
3271
-									content += " <?php echo esc_attr( $key );?>='{x:" + attr.<?php echo esc_attr( $key );?>.x + ",y:"+attr.<?php echo esc_attr( $key );?>.y +"}' ";
3267
+							if (attr.hasOwnProperty("<?php echo esc_attr($key); ?>")) {
3268
+								if ('<?php echo esc_attr($key); ?>' == 'html') {
3269
+									$html = attr.<?php echo esc_attr($key); ?>;
3270
+								} else if ('<?php echo esc_attr($args['type']); ?>' == 'image_xy') {
3271
+									content += " <?php echo esc_attr($key); ?>='{x:" + attr.<?php echo esc_attr($key); ?>.x + ",y:"+attr.<?php echo esc_attr($key); ?>.y +"}' ";
3272 3272
 								} else {
3273
-									content += " <?php echo esc_attr( $key );?>='" + attr.<?php echo esc_attr( $key );?>.toString().replace('\'','&#39;') + "' ";
3273
+									content += " <?php echo esc_attr($key); ?>='" + attr.<?php echo esc_attr($key); ?>.toString().replace('\'','&#39;') + "' ";
3274 3274
 								}
3275 3275
 							}
3276 3276
 							<?php
@@ -3290,7 +3290,7 @@  discard block
 block discarded – undo
3290 3290
 							?>
3291 3291
 							// if has html element
3292 3292
 							if ($html) {
3293
-								//content += $html + "[/<?php echo $this->options['base_id'];?>]";
3293
+								//content += $html + "[/<?php echo $this->options['base_id']; ?>]";
3294 3294
 							}
3295 3295
 
3296 3296
 							// @todo should we add inline style here or just css classes?
@@ -3320,7 +3320,7 @@  discard block
 block discarded – undo
3320 3320
 //                                <x?php
3321 3321
 //							}else
3322 3322
 
3323
-							if(!empty($this->options['block-output'])){
3323
+							if (!empty($this->options['block-output'])) {
3324 3324
 //                               echo "return";
3325 3325
 //                               $this->block_element( $this->options['block-output'], true );
3326 3326
 //                               echo ";";
@@ -3330,30 +3330,30 @@  discard block
 block discarded – undo
3330 3330
 								   '',
3331 3331
 								   {},
3332 3332
 								  // el('', {dangerouslySetInnerHTML: {__html: content}}),
3333
-								   <?php $this->block_element( $this->options['block-output'], true ); ?>
3334
-								  // el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id'];?>]"}})
3333
+								   <?php $this->block_element($this->options['block-output'], true); ?>
3334
+								  // el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id']; ?>]"}})
3335 3335
 							   );
3336 3336
 								<?php
3337 3337
 
3338
-							}elseif(!empty($this->options['block-save-return'])){
3338
+							}elseif (!empty($this->options['block-save-return'])) {
3339 3339
 								   echo 'return ' . $this->options['block-save-return'];
3340
-							}elseif(!empty($this->options['nested-block'])){
3340
+							}elseif (!empty($this->options['nested-block'])) {
3341 3341
 								?>
3342 3342
 							  return el(
3343 3343
 								   '',
3344 3344
 								   {},
3345 3345
 								   el('', {dangerouslySetInnerHTML: {__html: content+"\n"}}),
3346 3346
 								   InnerBlocks.Content ? el( InnerBlocks.Content ) : '', // @todo i think we need a comma here
3347
-								 //  el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id'];?>]"}})
3347
+								 //  el('', {dangerouslySetInnerHTML: {__html: "[/<?php echo $this->options['base_id']; ?>]"}})
3348 3348
 							   );
3349 3349
 								<?php
3350
-							}elseif(!empty( $this->options['block-save-return'] ) ){
3351
-								echo "return ". $this->options['block-edit-return'].";";
3352
-							}elseif(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
3350
+							}elseif (!empty($this->options['block-save-return'])) {
3351
+								echo "return " . $this->options['block-edit-return'] . ";";
3352
+							}elseif (isset($this->options['block-wrap']) && $this->options['block-wrap'] == '') {
3353 3353
 							?>
3354 3354
 							return content;
3355 3355
 							<?php
3356
-							}else{
3356
+							} else {
3357 3357
 							?>
3358 3358
 							var block_wrap = 'div';
3359 3359
 							if (attr.hasOwnProperty("block_wrap")) {
@@ -3382,48 +3382,48 @@  discard block
 block discarded – undo
3382 3382
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
3383 3383
 			 */
3384 3384
 
3385
-			return str_replace( array(
3385
+			return str_replace(array(
3386 3386
 				'<script>',
3387 3387
 				'</script>'
3388
-			), '', $output );
3388
+			), '', $output);
3389 3389
 		}
3390 3390
 
3391 3391
 
3392 3392
 
3393
-		public function block_row_start($key, $args){
3393
+		public function block_row_start($key, $args) {
3394 3394
 
3395 3395
 			// check for row
3396
-			if(!empty($args['row'])){
3396
+			if (!empty($args['row'])) {
3397 3397
 
3398
-				if(!empty($args['row']['open'])){
3398
+				if (!empty($args['row']['open'])) {
3399 3399
 
3400 3400
 				// element require
3401
-				$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3402
-				$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3403
-				$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3401
+				$element_require = !empty($args['element_require']) ? $this->block_props_replace($args['element_require'], true) . " && " : "";
3402
+				$device_type = !empty($args['device_type']) ? esc_attr($args['device_type']) : '';
3403
+				$device_type_require = !empty($args['device_type']) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3404 3404
 				$device_type_icon = '';
3405
-				if($device_type=='Desktop'){
3405
+				if ($device_type == 'Desktop') {
3406 3406
 					$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3407
-				}elseif($device_type=='Tablet'){
3407
+				}elseif ($device_type == 'Tablet') {
3408 3408
 					$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3409
-				}elseif($device_type=='Mobile'){
3409
+				}elseif ($device_type == 'Mobile') {
3410 3410
 					$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3411 3411
 				}
3412 3412
 				echo $element_require;
3413 3413
 				echo $device_type_require;
3414 3414
 
3415
-					if(false){?><script><?php }?>
3415
+					if (false) {?><script><?php }?>
3416 3416
 						el('div', {
3417 3417
 								className: 'bsui components-base-control',
3418 3418
 							},
3419
-							<?php if(!empty($args['row']['title'])){ ?>
3419
+							<?php if (!empty($args['row']['title'])) { ?>
3420 3420
 							el('label', {
3421 3421
 									className: 'components-base-control__label position-relative',
3422 3422
 									style: {width:"100%"}
3423 3423
 								},
3424
-								el('span',{dangerouslySetInnerHTML: {__html: '<?php echo addslashes( $args['row']['title'] ) ?>'}}),
3425
-								<?php if($device_type_icon){ ?>
3426
-									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)"}})
3424
+								el('span',{dangerouslySetInnerHTML: {__html: '<?php echo addslashes($args['row']['title']) ?>'}}),
3425
+								<?php if ($device_type_icon) { ?>
3426
+									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)"}})
3427 3427
 								<?php
3428 3428
 								}
3429 3429
 								?>
@@ -3431,17 +3431,17 @@  discard block
 block discarded – undo
3431 3431
 
3432 3432
 							),
3433 3433
 							<?php }?>
3434
-							<?php if(!empty($args['row']['desc'])){ ?>
3434
+							<?php if (!empty($args['row']['desc'])) { ?>
3435 3435
 							el('p', {
3436 3436
 									className: 'components-base-control__help mb-0',
3437 3437
 								},
3438
-								'<?php echo addslashes( $args['row']['desc'] ); ?>'
3438
+								'<?php echo addslashes($args['row']['desc']); ?>'
3439 3439
 							),
3440 3440
 							<?php }?>
3441 3441
 							el(
3442 3442
 								'div',
3443 3443
 								{
3444
-									className: 'row mb-n2 <?php if(!empty($args['row']['class'])){ echo esc_attr($args['row']['class']);} ?>',
3444
+									className: 'row mb-n2 <?php if (!empty($args['row']['class'])) { echo esc_attr($args['row']['class']); } ?>',
3445 3445
 								},
3446 3446
 								el(
3447 3447
 									'div',
@@ -3450,36 +3450,36 @@  discard block
 block discarded – undo
3450 3450
 									},
3451 3451
 
3452 3452
 					<?php
3453
-					if(false){?></script><?php }
3454
-				}elseif(!empty($args['row']['close'])){
3455
-					if(false){?><script><?php }?>
3453
+					if (false) {?></script><?php }
3454
+				}elseif (!empty($args['row']['close'])) {
3455
+					if (false) {?><script><?php }?>
3456 3456
 						el(
3457 3457
 							'div',
3458 3458
 							{
3459 3459
 								className: 'col pl-0 ps-0',
3460 3460
 							},
3461 3461
 					<?php
3462
-					if(false){?></script><?php }
3463
-				}else{
3464
-					if(false){?><script><?php }?>
3462
+					if (false) {?></script><?php }
3463
+				} else {
3464
+					if (false) {?><script><?php }?>
3465 3465
 						el(
3466 3466
 							'div',
3467 3467
 							{
3468 3468
 								className: 'col pl-0 ps-0 pr-2 pe-2',
3469 3469
 							},
3470 3470
 					<?php
3471
-					if(false){?></script><?php }
3471
+					if (false) {?></script><?php }
3472 3472
 				}
3473 3473
 
3474 3474
 			}
3475 3475
 
3476 3476
 		}
3477 3477
 
3478
-		public function block_row_end($key, $args){
3478
+		public function block_row_end($key, $args) {
3479 3479
 
3480
-			if(!empty($args['row'])){
3480
+			if (!empty($args['row'])) {
3481 3481
 				// maybe close
3482
-				if(!empty($args['row']['close'])){
3482
+				if (!empty($args['row']['close'])) {
3483 3483
 					echo "))";
3484 3484
 				}
3485 3485
 
@@ -3487,14 +3487,14 @@  discard block
 block discarded – undo
3487 3487
 			}
3488 3488
 		}
3489 3489
 
3490
-		public function block_tab_start($key, $args){
3490
+		public function block_tab_start($key, $args) {
3491 3491
 
3492 3492
 			// check for row
3493
-			if(!empty($args['tab'])){
3493
+			if (!empty($args['tab'])) {
3494 3494
 
3495
-				if(!empty($args['tab']['tabs_open'])){
3495
+				if (!empty($args['tab']['tabs_open'])) {
3496 3496
 
3497
-					if(false){?><script><?php }?>
3497
+					if (false) {?><script><?php }?>
3498 3498
 
3499 3499
 el('div',{className: 'bsui'},
3500 3500
 
@@ -3503,52 +3503,52 @@  discard block
 block discarded – undo
3503 3503
 									{
3504 3504
 										activeClass: 'is-active',
3505 3505
 										className: 'btn-groupx',
3506
-										initialTabName: '<?php echo addslashes( esc_attr( $args['tab']['key']) ); ?>',
3506
+										initialTabName: '<?php echo addslashes(esc_attr($args['tab']['key'])); ?>',
3507 3507
 										tabs: [
3508 3508
 
3509 3509
 					<?php
3510
-					if(false){?></script><?php }
3510
+					if (false) {?></script><?php }
3511 3511
 				}
3512 3512
 
3513
-				if(!empty($args['tab']['open'])){
3513
+				if (!empty($args['tab']['open'])) {
3514 3514
 
3515
-					if(false){?><script><?php }?>
3515
+					if (false) {?><script><?php }?>
3516 3516
 							{
3517
-												name: '<?php echo addslashes( esc_attr( $args['tab']['key']) ); ?>',
3518
-												title: el('div', {dangerouslySetInnerHTML: {__html: '<?php echo addslashes( esc_attr( $args['tab']['title']) ); ?>'}}),
3519
-												className: '<?php echo addslashes( esc_attr( $args['tab']['class']) ); ?>',
3520
-												content: el('div',{}, <?php if(!empty($args['tab']['desc'])){ ?>el('p', {
3517
+												name: '<?php echo addslashes(esc_attr($args['tab']['key'])); ?>',
3518
+												title: el('div', {dangerouslySetInnerHTML: {__html: '<?php echo addslashes(esc_attr($args['tab']['title'])); ?>'}}),
3519
+												className: '<?php echo addslashes(esc_attr($args['tab']['class'])); ?>',
3520
+												content: el('div',{}, <?php if (!empty($args['tab']['desc'])) { ?>el('p', {
3521 3521
 									className: 'components-base-control__help mb-0',
3522
-									dangerouslySetInnerHTML: {__html:'<?php echo addslashes( $args['tab']['desc'] ); ?>'}
3522
+									dangerouslySetInnerHTML: {__html:'<?php echo addslashes($args['tab']['desc']); ?>'}
3523 3523
 								}),<?php }
3524
-					if(false){?></script><?php }
3524
+					if (false) {?></script><?php }
3525 3525
 				}
3526 3526
 
3527 3527
 			}
3528 3528
 
3529 3529
 		}
3530 3530
 
3531
-		public function block_tab_end($key, $args){
3531
+		public function block_tab_end($key, $args) {
3532 3532
 
3533
-			if(!empty($args['tab'])){
3533
+			if (!empty($args['tab'])) {
3534 3534
 				// maybe close
3535
-				if(!empty($args['tab']['close'])){
3535
+				if (!empty($args['tab']['close'])) {
3536 3536
 					echo ")}, /* tab close */";
3537 3537
 				}
3538 3538
 
3539
-				if(!empty($args['tab']['tabs_close'])){
3540
-					if(false){?><script><?php }?>
3539
+				if (!empty($args['tab']['tabs_close'])) {
3540
+					if (false) {?><script><?php }?>
3541 3541
 						]}, ( tab ) => {
3542 3542
 								return tab.content;
3543 3543
 							}
3544 3544
 						)), /* tabs close */
3545
-					<?php if(false){ ?></script><?php }
3545
+					<?php if (false) { ?></script><?php }
3546 3546
 				}
3547 3547
 			}
3548 3548
 		}
3549 3549
 
3550
-		public function build_block_arguments( $key, $args ) {
3551
-			$custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
3550
+		public function build_block_arguments($key, $args) {
3551
+			$custom_attributes = !empty($args['custom_attributes']) ? $this->array_to_attributes($args['custom_attributes']) : '';
3552 3552
 			$options           = '';
3553 3553
 			$extra             = '';
3554 3554
 			$require           = '';
@@ -3556,28 +3556,28 @@  discard block
 block discarded – undo
3556 3556
 			$after_elements	   = '';
3557 3557
 
3558 3558
 			// `content` is a protected and special argument
3559
-			if ( $key == 'content' ) {
3559
+			if ($key == 'content') {
3560 3560
 				return;
3561 3561
 			}
3562 3562
 
3563
-			$device_type = ! empty( $args['device_type'] ) ? esc_attr($args['device_type']) : '';
3564
-			$device_type_require = ! empty( $args['device_type'] ) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3563
+			$device_type = !empty($args['device_type']) ? esc_attr($args['device_type']) : '';
3564
+			$device_type_require = !empty($args['device_type']) ? " deviceType == '" . esc_attr($device_type) . "' && " : '';
3565 3565
 			$device_type_icon = '';
3566
-			if($device_type=='Desktop'){
3566
+			if ($device_type == 'Desktop') {
3567 3567
 				$device_type_icon = '<span class="dashicons dashicons-desktop" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3568
-			}elseif($device_type=='Tablet'){
3568
+			}elseif ($device_type == 'Tablet') {
3569 3569
 				$device_type_icon = '<span class="dashicons dashicons-tablet" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3570
-			}elseif($device_type=='Mobile'){
3570
+			}elseif ($device_type == 'Mobile') {
3571 3571
 				$device_type_icon = '<span class="dashicons dashicons-smartphone" style="font-size: 18px;" onclick="sd_show_view_options(this);"></span>';
3572 3572
 			}
3573 3573
 
3574 3574
 			// icon
3575 3575
 			$icon = '';
3576
-			if( !empty( $args['icon'] ) ){
3576
+			if (!empty($args['icon'])) {
3577 3577
 				$icon .= "el('div', {";
3578
-									$icon .= "dangerouslySetInnerHTML: {__html: '".self::get_widget_icon( esc_attr($args['icon']))."'},";
3578
+									$icon .= "dangerouslySetInnerHTML: {__html: '" . self::get_widget_icon(esc_attr($args['icon'])) . "'},";
3579 3579
 									$icon .= "className: 'text-center',";
3580
-									$icon .= "title: '".addslashes( $args['title'] )."',";
3580
+									$icon .= "title: '" . addslashes($args['title']) . "',";
3581 3581
 								$icon .= "}),";
3582 3582
 
3583 3583
 				// blank title as its added to the icon.
@@ -3585,27 +3585,27 @@  discard block
 block discarded – undo
3585 3585
 			}
3586 3586
 
3587 3587
 			// require advanced
3588
-			$require_advanced = ! empty( $args['advanced'] ) ? "props.attributes.show_advanced && " : "";
3588
+			$require_advanced = !empty($args['advanced']) ? "props.attributes.show_advanced && " : "";
3589 3589
 
3590 3590
 			// element require
3591
-			$element_require = ! empty( $args['element_require'] ) ? $this->block_props_replace( $args['element_require'], true ) . " && " : "";
3591
+			$element_require = !empty($args['element_require']) ? $this->block_props_replace($args['element_require'], true) . " && " : "";
3592 3592
 
3593 3593
 
3594 3594
 			$onchange  = "props.setAttributes({ $key: $key } )";
3595
-			$onchangecomplete  = "";
3595
+			$onchangecomplete = "";
3596 3596
 			$value     = "props.attributes.$key";
3597
-			$text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'colorx','range' );
3598
-			if ( in_array( $args['type'], $text_type ) ) {
3597
+			$text_type = array('text', 'password', 'number', 'email', 'tel', 'url', 'colorx', 'range');
3598
+			if (in_array($args['type'], $text_type)) {
3599 3599
 				$type = 'TextControl';
3600 3600
 				// Save numbers as numbers and not strings
3601
-				if ( $args['type'] == 'number' ) {
3601
+				if ($args['type'] == 'number') {
3602 3602
 					$onchange = "props.setAttributes({ $key: $key ? Number($key) : '' } )";
3603 3603
 				}
3604 3604
 
3605
-				if (substr($key, 0, 9 ) === 'metadata_') {
3606
-					$real_key = str_replace('metadata_','', $key );
3605
+				if (substr($key, 0, 9) === 'metadata_') {
3606
+					$real_key = str_replace('metadata_', '', $key);
3607 3607
 					$onchange = "props.setAttributes({ metadata: { $real_key: $key } } )";
3608
-					$value     = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3608
+					$value = "props.attributes.metadata && props.attributes.metadata.$real_key ? props.attributes.metadata.$real_key : ''";
3609 3609
 				}
3610 3610
 			}
3611 3611
 //			else if ( $args['type'] == 'popup' ) {
@@ -3625,12 +3625,12 @@  discard block
 block discarded – undo
3625 3625
 //
3626 3626
 //				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3627 3627
 //			}
3628
-			else if ( $args['type'] == 'styleid' ) {
3628
+			else if ($args['type'] == 'styleid') {
3629 3629
 				$type = 'TextControl';
3630 3630
 				$args['type'] == 'text';
3631 3631
 				// Save numbers as numbers and not strings
3632
-				$value     = "props.attributes.$key ? props.attributes.$key : ''";
3633
-			}else if ( $args['type'] == 'notice' ) {
3632
+				$value = "props.attributes.$key ? props.attributes.$key : ''";
3633
+			} else if ($args['type'] == 'notice') {
3634 3634
 
3635 3635
 				$notice_message = !empty($args['desc']) ? addslashes($args['desc']) : '';
3636 3636
 				$notice_status = !empty($args['status']) ? esc_attr($args['status']) : 'info';
@@ -3692,11 +3692,11 @@  discard block
 block discarded – undo
3692 3692
 							return;
3693 3693
 						}
3694 3694
 */
3695
-			elseif ( $args['type'] == 'color' ) {
3695
+			elseif ($args['type'] == 'color') {
3696 3696
 				$type = 'ColorPicker';
3697 3697
 				$onchange = "";
3698 3698
 				$extra = "color: $value,";
3699
-				if(!empty($args['disable_alpha'])){
3699
+				if (!empty($args['disable_alpha'])) {
3700 3700
 					$extra .= "disableAlpha: true,";
3701 3701
 				}
3702 3702
 				$onchangecomplete = "onChangeComplete: function($key) {
@@ -3705,7 +3705,7 @@  discard block
 block discarded – undo
3705 3705
 							$key: value
3706 3706
 						});
3707 3707
 					},";
3708
-			}elseif ( $args['type'] == 'gradient' ) {
3708
+			}elseif ($args['type'] == 'gradient') {
3709 3709
 				$type = 'GradientPicker';
3710 3710
 				$extra .= "gradients: [{
3711 3711
 			name: 'Vivid cyan blue to vivid purple',
@@ -3744,7 +3744,7 @@  discard block
 block discarded – undo
3744 3744
 			slug: 'cool-to-warm-spectrum',
3745 3745
 		}],";
3746 3746
 
3747
-			}elseif ( $args['type'] == 'image' ) {
3747
+			}elseif ($args['type'] == 'image') {
3748 3748
 //                print_r($args);
3749 3749
 
3750 3750
 				$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,{
@@ -3806,7 +3806,7 @@  discard block
 block discarded – undo
3806 3806
 				$onchange = "";
3807 3807
 
3808 3808
 				//$inside_elements = ",el('div',{},'file upload')";
3809
-			} else if ( $args['type'] == 'images' ) {
3809
+			} else if ($args['type'] == 'images') {
3810 3810
 				$img_preview = "props.attributes.$key && (function() {
3811 3811
 	let uploads = JSON.parse('['+props.attributes.$key+']');
3812 3812
 	let images = [];
@@ -3819,7 +3819,7 @@  discard block
 block discarded – undo
3819 3819
 			el('i',{
3820 3820
 				className: 'fas fa-times-circle text-danger position-absolute  ml-n2 mt-n1 bg-white rounded-circle c-pointer',
3821 3821
 				onClick: function() {
3822
-					aui_confirm('".esc_attr__('Are you sure?')."', '".esc_attr__('Delete')."', '".esc_attr__('Cancel')."', true).then(function(confirmed) {
3822
+					aui_confirm('" . esc_attr__('Are you sure?') . "', '" . esc_attr__('Delete') . "', '" . esc_attr__('Cancel') . "', true).then(function(confirmed) {
3823 3823
 						if (confirmed) {
3824 3824
 							let new_uploads = JSON.parse('['+props.attributes.$key+']');
3825 3825
 							new_uploads.splice(index, 1);
@@ -3882,36 +3882,36 @@  discard block
 block discarded – undo
3882 3882
 
3883 3883
 				//$inside_elements = ",el('div',{},'file upload')";
3884 3884
 			}
3885
-			elseif ( $args['type'] == 'checkbox' ) {
3885
+			elseif ($args['type'] == 'checkbox') {
3886 3886
 				$type = 'CheckboxControl';
3887 3887
 				$extra .= "checked: props.attributes.$key,";
3888 3888
 				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
3889
-			} elseif ( $args['type'] == 'textarea' ) {
3889
+			} elseif ($args['type'] == 'textarea') {
3890 3890
 				$type = 'TextareaControl';
3891 3891
 
3892
-			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
3892
+			} elseif ($args['type'] == 'select' || $args['type'] == 'multiselect') {
3893 3893
 				$type = 'SelectControl';
3894 3894
 
3895
-				if($args['name'] == 'category' && !empty($args['post_type_linked'])){
3896
-					$options .= "options: taxonomies_".str_replace("-","_", $this->id).",";
3897
-				}elseif($args['name'] == 'sort_by' && !empty($args['post_type_linked'])){
3898
-					$options .= "options: sort_by_".str_replace("-","_", $this->id).",";
3899
-				}else {
3895
+				if ($args['name'] == 'category' && !empty($args['post_type_linked'])) {
3896
+					$options .= "options: taxonomies_" . str_replace("-", "_", $this->id) . ",";
3897
+				}elseif ($args['name'] == 'sort_by' && !empty($args['post_type_linked'])) {
3898
+					$options .= "options: sort_by_" . str_replace("-", "_", $this->id) . ",";
3899
+				} else {
3900 3900
 
3901
-					if ( ! empty( $args['options'] ) ) {
3901
+					if (!empty($args['options'])) {
3902 3902
 						$options .= "options: [";
3903
-						foreach ( $args['options'] as $option_val => $option_label ) {
3904
-							$options .= "{ value: '" . esc_attr( $option_val ) . "', label: '" . esc_js( addslashes( $option_label ) ) . "' },";
3903
+						foreach ($args['options'] as $option_val => $option_label) {
3904
+							$options .= "{ value: '" . esc_attr($option_val) . "', label: '" . esc_js(addslashes($option_label)) . "' },";
3905 3905
 						}
3906 3906
 						$options .= "],";
3907 3907
 					}
3908 3908
 				}
3909
-				if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3909
+				if (isset($args['multiple']) && $args['multiple']) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
3910 3910
 					$extra .= ' multiple:true,style:{height:"auto",paddingRight:"8px","overflow-y":"auto"}, ';
3911 3911
 				}
3912 3912
 
3913
-				if($args['type'] == 'multiselect' ||  ( isset( $args['multiple'] ) && $args['multiple'] ) ){
3914
-					$after_elements	 .= "props.attributes.$key && el( wp.components.Button, {
3913
+				if ($args['type'] == 'multiselect' || (isset($args['multiple']) && $args['multiple'])) {
3914
+					$after_elements .= "props.attributes.$key && el( wp.components.Button, {
3915 3915
 									  className: 'components-button components-circular-option-picker__clear is-secondary is-small',
3916 3916
 									  style: {margin:'-8px 0 8px 0',display: 'block'},
3917 3917
 									  onClick: function(){
@@ -3923,7 +3923,7 @@  discard block
 block discarded – undo
3923 3923
 									'Clear'
3924 3924
 							),";
3925 3925
 				}
3926
-			} elseif ( $args['type'] == 'tagselect' ) {
3926
+			} elseif ($args['type'] == 'tagselect') {
3927 3927
 //				$type = 'FormTokenField';
3928 3928
 //
3929 3929
 //				if ( ! empty( $args['options'] ) ) {
@@ -3958,19 +3958,19 @@  discard block
 block discarded – undo
3958 3958
 //				$value     = "[]";
3959 3959
 //				$extra .= ' __experimentalExpandOnFocus: true,';
3960 3960
 
3961
-			} else if ( $args['type'] == 'alignment' ) {
3961
+			} else if ($args['type'] == 'alignment') {
3962 3962
 				$type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
3963
-			} else if ( $args['type'] == 'margins' ) {
3963
+			} else if ($args['type'] == 'margins') {
3964 3964
 
3965
-			} else if ( $args['type'] == 'visibility_conditions' && ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
3965
+			} else if ($args['type'] == 'visibility_conditions' && (function_exists('wp_is_block_theme') && wp_is_block_theme())) {
3966 3966
 				$type = 'TextControl';
3967 3967
 				$value = "(props.attributes.$key ? props.attributes.$key : '')";
3968 3968
 				$args['type'] = 'text';
3969 3969
 				$options .= 'disabled:true,';
3970
-				$bsvc_title = esc_attr( addslashes( $args['title'] ) );
3971
-				$bsvc_body = $this->block_visibility_fields( $args );
3970
+				$bsvc_title = esc_attr(addslashes($args['title']));
3971
+				$bsvc_body = $this->block_visibility_fields($args);
3972 3972
 				// @TODO reset button
3973
-				$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>';
3973
+				$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>';
3974 3974
 				$after_elements .= "el('div', {className: 'components-base-control bs-vc-button-wrap'}, el(wp.components.Button, {
3975 3975
 						className: 'components-button components-circular-option-picker__clear is-primary is-smallx',
3976 3976
 						onClick: function() {
@@ -3989,25 +3989,25 @@  discard block
 block discarded – undo
3989 3989
 									jQuery('.bs-vc-modal-form').trigger('change');
3990 3990
 								}
3991 3991
 							});
3992
-							aui_modal('" . $bsvc_title . "', '" . addslashes( $bsvc_body ) . "', '" . $bsvc_footer . "', true, 'bs-vc-modal', 'modal-lg', '');
3992
+							aui_modal('" . $bsvc_title . "', '" . addslashes($bsvc_body) . "', '" . $bsvc_footer . "', true, 'bs-vc-modal', 'modal-lg', '');
3993 3993
 							jQuery(document).off('change', '#bsvc_raw_value').on('change', '#bsvc_raw_value', function(e) {
3994 3994
 								props.setAttributes({" . $key . ": e.target.value});
3995 3995
 							});
3996 3996
 						}
3997 3997
 					},
3998
-					'" . addslashes( ! empty( $args['button_title'] ) ? $args['button_title'] : $args['title'] ) . "'
3998
+					'" . addslashes(!empty($args['button_title']) ? $args['button_title'] : $args['title']) . "'
3999 3999
 				) ),";
4000 4000
 			} else {
4001
-				return;// if we have not implemented the control then don't break the JS.
4001
+				return; // if we have not implemented the control then don't break the JS.
4002 4002
 			}
4003 4003
 
4004 4004
 			// color input does not show the labels so we add them
4005
-			if($args['type']=='color'){
4005
+			if ($args['type'] == 'color') {
4006 4006
 				// add show only if advanced
4007 4007
 				echo $require_advanced;
4008 4008
 				// add setting require if defined
4009 4009
 				echo $element_require;
4010
-				echo "el('div', {style: {'marginBottom': '8px'}}, '".addslashes( $args['title'] )."'),";
4010
+				echo "el('div', {style: {'marginBottom': '8px'}}, '" . addslashes($args['title']) . "'),";
4011 4011
 			}
4012 4012
 
4013 4013
 			// add show only if advanced
@@ -4019,22 +4019,22 @@  discard block
 block discarded – undo
4019 4019
 			// icon
4020 4020
 			echo $icon;
4021 4021
 			?>
4022
-			el( <?php echo $args['type'] == 'image' || $args['type'] == 'images' ? $type  : "wp.components.".$type; ?>, {
4023
-			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
4024
-			} else { ?>'<?php echo addslashes( trim( esc_html( $args['title'] ) ) ); ?>'<?php } ?>,
4025
-			help: <?php echo ( isset( $args['desc'] ) ? "el('span', {dangerouslySetInnerHTML: {__html: '" . trim( wp_kses_post( addslashes( $args['desc'] ) ) ) . "'}})" : "''" ); ?>,
4022
+			el( <?php echo $args['type'] == 'image' || $args['type'] == 'images' ? $type : "wp.components." . $type; ?>, {
4023
+			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
4024
+			} else { ?>'<?php echo addslashes(trim(esc_html($args['title']))); ?>'<?php } ?>,
4025
+			help: <?php echo (isset($args['desc']) ? "el('span', {dangerouslySetInnerHTML: {__html: '" . trim(wp_kses_post(addslashes($args['desc']))) . "'}})" : "''"); ?>,
4026 4026
 			value: <?php echo $value; ?>,
4027
-			<?php if ( $type == 'TextControl' && $args['type'] != 'text' ) {
4028
-				echo "type: '" . addslashes( $args['type'] ) . "',";
4027
+			<?php if ($type == 'TextControl' && $args['type'] != 'text') {
4028
+				echo "type: '" . addslashes($args['type']) . "',";
4029 4029
 			} ?>
4030
-			<?php if ( ! empty( $args['placeholder'] ) ) {
4031
-				echo "placeholder: '" . esc_js( addslashes( trim( esc_html( $args['placeholder'] ) ) ) ) . "',";
4030
+			<?php if (!empty($args['placeholder'])) {
4031
+				echo "placeholder: '" . esc_js(addslashes(trim(esc_html($args['placeholder'])))) . "',";
4032 4032
 			} ?>
4033 4033
 			<?php echo $options; ?>
4034 4034
 			<?php echo $extra; ?>
4035 4035
 			<?php echo $custom_attributes; ?>
4036 4036
 			<?php echo $onchangecomplete; ?>
4037
-			<?php if ( $onchange ) { ?>
4037
+			<?php if ($onchange) { ?>
4038 4038
 			onChange: function ( <?php echo $key; ?> ) {
4039 4039
 				<?php echo $onchange; ?>
4040 4040
 			}
@@ -4053,15 +4053,15 @@  discard block
 block discarded – undo
4053 4053
 		 *@todo there is prob a faster way to do this, also we could add some validation here.
4054 4054
 		 *
4055 4055
 		 */
4056
-		public function array_to_attributes( $custom_attributes, $html = false ) {
4056
+		public function array_to_attributes($custom_attributes, $html = false) {
4057 4057
 			$attributes = '';
4058
-			if ( ! empty( $custom_attributes ) ) {
4058
+			if (!empty($custom_attributes)) {
4059 4059
 
4060
-				foreach ( $custom_attributes as $key => $val ) {
4061
-					if(is_array($val)){
4062
-						$attributes .= $key.': {'.$this->array_to_attributes( $val, $html ).'},';
4063
-					}else{
4064
-						$attributes .= $html ?  " $key='$val' " : "'$key': '$val',";
4060
+				foreach ($custom_attributes as $key => $val) {
4061
+					if (is_array($val)) {
4062
+						$attributes .= $key . ': {' . $this->array_to_attributes($val, $html) . '},';
4063
+					} else {
4064
+						$attributes .= $html ? " $key='$val' " : "'$key': '$val',";
4065 4065
 					}
4066 4066
 				}
4067 4067
 
@@ -4079,113 +4079,113 @@  discard block
 block discarded – undo
4079 4079
 		 *
4080 4080
 		 * @param $args
4081 4081
 		 */
4082
-		public function block_element( $args, $save = false ) {
4082
+		public function block_element($args, $save = false) {
4083 4083
 
4084 4084
 //            print_r($args);echo '###';exit;
4085 4085
 
4086
-			if ( ! empty( $args ) ) {
4087
-				foreach ( $args as $element => $new_args ) {
4086
+			if (!empty($args)) {
4087
+				foreach ($args as $element => $new_args) {
4088 4088
 
4089
-					if ( is_array( $new_args ) ) { // its an element
4089
+					if (is_array($new_args)) { // its an element
4090 4090
 
4091 4091
 
4092
-						if ( isset( $new_args['element'] ) ) {
4092
+						if (isset($new_args['element'])) {
4093 4093
 
4094
-							if ( isset( $new_args['element_require'] ) ) {
4095
-								echo str_replace( array(
4094
+							if (isset($new_args['element_require'])) {
4095
+								echo str_replace(array(
4096 4096
 										"'+",
4097 4097
 										"+'"
4098
-									), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
4099
-								unset( $new_args['element_require'] );
4098
+									), '', $this->block_props_replace($new_args['element_require'])) . " &&  ";
4099
+								unset($new_args['element_require']);
4100 4100
 							}
4101 4101
 
4102
-							if($new_args['element']=='InnerBlocks'){
4102
+							if ($new_args['element'] == 'InnerBlocks') {
4103 4103
 								echo "\n el( InnerBlocks, {";
4104
-							}elseif($new_args['element']=='innerBlocksProps'){
4104
+							}elseif ($new_args['element'] == 'innerBlocksProps') {
4105 4105
 								$element = isset($new_args['inner_element']) ? esc_attr($new_args['inner_element']) : 'div';
4106 4106
 							  //  echo "\n el( 'section', wp.blockEditor.useInnerBlocksProps( blockProps, {";
4107 4107
 //                                echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4108 4108
 								echo $save ? "\n el( '$element', wp.blockEditor.useInnerBlocksProps.save( " : "\n el( '$element', wp.blockEditor.useInnerBlocksProps( ";
4109 4109
 								echo $save ? "wp.blockEditor.useBlockProps.save( {" : "wp.blockEditor.useBlockProps( {";
4110
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4110
+								echo !empty($new_args['blockProps']) ? $this->block_element($new_args['blockProps'], $save) : '';
4111 4111
 
4112 4112
 								echo "} ), {";
4113
-								echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element( $new_args['innerBlocksProps'],$save ) : '';
4113
+								echo !empty($new_args['innerBlocksProps']) && !$save ? $this->block_element($new_args['innerBlocksProps'], $save) : '';
4114 4114
 							//    echo '###';
4115 4115
 
4116 4116
 							  //  echo '###';
4117
-							}elseif($new_args['element']=='BlocksProps'){
4117
+							}elseif ($new_args['element'] == 'BlocksProps') {
4118 4118
 
4119
-								if ( isset($new_args['if_inner_element']) ) {
4119
+								if (isset($new_args['if_inner_element'])) {
4120 4120
 									$element = $new_args['if_inner_element'];
4121
-								}else {
4122
-									$element = isset($new_args['inner_element']) ? "'".esc_attr($new_args['inner_element'])."'" : "'div'";
4121
+								} else {
4122
+									$element = isset($new_args['inner_element']) ? "'" . esc_attr($new_args['inner_element']) . "'" : "'div'";
4123 4123
 								}
4124 4124
 
4125 4125
 								unset($new_args['inner_element']);
4126 4126
 								echo $save ? "\n el( $element, wp.blockEditor.useBlockProps.save( {" : "\n el( $element, wp.blockEditor.useBlockProps( {";
4127
-								echo !empty($new_args['blockProps']) ? $this->block_element( $new_args['blockProps'],$save ) : '';
4127
+								echo !empty($new_args['blockProps']) ? $this->block_element($new_args['blockProps'], $save) : '';
4128 4128
 
4129 4129
 
4130 4130
 							   // echo "} ),";
4131 4131
 
4132
-							}else{
4132
+							} else {
4133 4133
 								echo "\n el( '" . $new_args['element'] . "', {";
4134 4134
 							}
4135 4135
 
4136 4136
 
4137 4137
 							// get the attributes
4138
-							foreach ( $new_args as $new_key => $new_value ) {
4138
+							foreach ($new_args as $new_key => $new_value) {
4139 4139
 
4140 4140
 
4141
-								if ( $new_key == 'element' || $new_key == 'content'|| $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
4141
+								if ($new_key == 'element' || $new_key == 'content' || $new_key == 'if_content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array($new_value)) {
4142 4142
 									// do nothing
4143 4143
 								} else {
4144
-									echo $this->block_element( array( $new_key => $new_value ),$save );
4144
+									echo $this->block_element(array($new_key => $new_value), $save);
4145 4145
 								}
4146 4146
 							}
4147 4147
 
4148
-							echo $new_args['element']=='BlocksProps' ? '} ),' : "},";// end attributes
4148
+							echo $new_args['element'] == 'BlocksProps' ? '} ),' : "},"; // end attributes
4149 4149
 
4150 4150
 							// get the content
4151 4151
 							$first_item = 0;
4152
-							foreach ( $new_args as $new_key => $new_value ) {
4153
-								if ( $new_key === 'content' || $new_key === 'if_content' || is_array( $new_value ) ) {
4152
+							foreach ($new_args as $new_key => $new_value) {
4153
+								if ($new_key === 'content' || $new_key === 'if_content' || is_array($new_value)) {
4154 4154
 
4155
-									if ( $new_key === 'content' ) {
4156
-										echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
4157
-									}else if ( $new_key === 'if_content' ) {
4158
-										echo  $this->block_props_replace(  $new_value  );
4155
+									if ($new_key === 'content') {
4156
+										echo "'" . $this->block_props_replace(wp_slash($new_value)) . "'";
4157
+									} else if ($new_key === 'if_content') {
4158
+										echo  $this->block_props_replace($new_value);
4159 4159
 									}
4160 4160
 
4161
-									if ( is_array( $new_value ) ) {
4161
+									if (is_array($new_value)) {
4162 4162
 
4163
-										if ( isset( $new_value['element_require'] ) ) {
4164
-											echo str_replace( array(
4163
+										if (isset($new_value['element_require'])) {
4164
+											echo str_replace(array(
4165 4165
 													"'+",
4166 4166
 													"+'"
4167
-												), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
4168
-											unset( $new_value['element_require'] );
4167
+												), '', $this->block_props_replace($new_value['element_require'])) . " &&  ";
4168
+											unset($new_value['element_require']);
4169 4169
 										}
4170 4170
 
4171
-										if ( isset( $new_value['element_repeat'] ) ) {
4171
+										if (isset($new_value['element_repeat'])) {
4172 4172
 											$x = 1;
4173
-											while ( $x <= absint( $new_value['element_repeat'] ) ) {
4174
-												$this->block_element( array( '' => $new_value ),$save );
4175
-												$x ++;
4173
+											while ($x <= absint($new_value['element_repeat'])) {
4174
+												$this->block_element(array('' => $new_value), $save);
4175
+												$x++;
4176 4176
 											}
4177 4177
 										} else {
4178
-											$this->block_element( array( '' => $new_value ),$save );
4178
+											$this->block_element(array('' => $new_value), $save);
4179 4179
 										}
4180 4180
 									}
4181
-									$first_item ++;
4181
+									$first_item++;
4182 4182
 								}
4183 4183
 							}
4184 4184
 
4185
-							if($new_args['element']=='innerBlocksProps' || $new_args['element']=='xBlocksProps'){
4186
-								echo "))";// end content
4187
-							}else{
4188
-								echo ")";// end content
4185
+							if ($new_args['element'] == 'innerBlocksProps' || $new_args['element'] == 'xBlocksProps') {
4186
+								echo "))"; // end content
4187
+							} else {
4188
+								echo ")"; // end content
4189 4189
 							}
4190 4190
 
4191 4191
 
@@ -4194,26 +4194,26 @@  discard block
 block discarded – undo
4194 4194
 						}
4195 4195
 					} else {
4196 4196
 
4197
-						if ( substr( $element, 0, 3 ) === "if_" ) {
4197
+						if (substr($element, 0, 3) === "if_") {
4198 4198
 							$extra = '';
4199
-							if( strpos($new_args, '[%WrapClass%]') !== false ){
4200
-								$new_args = str_replace('[%WrapClass%]"','" + sd_build_aui_class(props.attributes)',$new_args);
4201
-								$new_args = str_replace('[%WrapClass%]','+ sd_build_aui_class(props.attributes)',$new_args);
4199
+							if (strpos($new_args, '[%WrapClass%]') !== false) {
4200
+								$new_args = str_replace('[%WrapClass%]"', '" + sd_build_aui_class(props.attributes)', $new_args);
4201
+								$new_args = str_replace('[%WrapClass%]', '+ sd_build_aui_class(props.attributes)', $new_args);
4202 4202
 							}
4203
-							echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
4204
-						} elseif ( $element == 'style' &&  strpos($new_args, '[%WrapStyle%]') !== false ) {
4205
-							$new_args = str_replace('[%WrapStyle%]','',$new_args);
4206
-							echo $element . ": {..." . $this->block_props_replace( $new_args ) . " , ...sd_build_aui_styles(props.attributes) },";
4203
+							echo str_replace("if_", "", $element) . ": " . $this->block_props_replace($new_args, true) . ",";
4204
+						} elseif ($element == 'style' && strpos($new_args, '[%WrapStyle%]') !== false) {
4205
+							$new_args = str_replace('[%WrapStyle%]', '', $new_args);
4206
+							echo $element . ": {..." . $this->block_props_replace($new_args) . " , ...sd_build_aui_styles(props.attributes) },";
4207 4207
 //                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4208
-						} elseif ( $element == 'style' ) {
4209
-							echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
4210
-						} elseif ( ( $element == 'class' || $element == 'className'  ) &&  strpos($new_args, '[%WrapClass%]') !== false ) {
4211
-							$new_args = str_replace('[%WrapClass%]','',$new_args);
4212
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "' + sd_build_aui_class(props.attributes),";
4213
-						} elseif ( $element == 'template' && $new_args ) {
4208
+						} elseif ($element == 'style') {
4209
+							echo $element . ": " . $this->block_props_replace($new_args) . ",";
4210
+						} elseif (($element == 'class' || $element == 'className') && strpos($new_args, '[%WrapClass%]') !== false) {
4211
+							$new_args = str_replace('[%WrapClass%]', '', $new_args);
4212
+							echo $element . ": '" . $this->block_props_replace($new_args) . "' + sd_build_aui_class(props.attributes),";
4213
+						} elseif ($element == 'template' && $new_args) {
4214 4214
 							echo $element . ": $new_args,";
4215 4215
 						} else {
4216
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
4216
+							echo $element . ": '" . $this->block_props_replace($new_args) . "',";
4217 4217
 						}
4218 4218
 
4219 4219
 					}
@@ -4228,11 +4228,11 @@  discard block
 block discarded – undo
4228 4228
 		 *
4229 4229
 		 * @return mixed
4230 4230
 		 */
4231
-		public function block_props_replace( $string, $no_wrap = false ) {
4232
-			if ( $no_wrap ) {
4233
-				$string = str_replace( array( "[%", "%]", "%:checked]" ), array( "props.attributes.", "", "" ), $string );
4231
+		public function block_props_replace($string, $no_wrap = false) {
4232
+			if ($no_wrap) {
4233
+				$string = str_replace(array("[%", "%]", "%:checked]"), array("props.attributes.", "", ""), $string);
4234 4234
 			} else {
4235
-				$string = str_replace( array( "![%", "[%", "%]", "%:checked]" ), array( "'+!props.attributes.", "'+props.attributes.", "+'", "+'" ), $string );
4235
+				$string = str_replace(array("![%", "[%", "%]", "%:checked]"), array("'+!props.attributes.", "'+props.attributes.", "+'", "+'"), $string);
4236 4236
 			}
4237 4237
 
4238 4238
 			return $string;
@@ -4244,65 +4244,65 @@  discard block
 block discarded – undo
4244 4244
 		 * @param array $args
4245 4245
 		 * @param array $instance
4246 4246
 		 */
4247
-		public function widget( $args, $instance ) {
4248
-			if ( ! is_array( $args ) ) {
4247
+		public function widget($args, $instance) {
4248
+			if (!is_array($args)) {
4249 4249
 				$args = array();
4250 4250
 			}
4251 4251
 
4252 4252
 			// Get the filtered values
4253
-			$argument_values = $this->argument_values( $instance );
4254
-			$argument_values = $this->string_to_bool( $argument_values );
4255
-			$output          = $this->output( $argument_values, $args );
4253
+			$argument_values = $this->argument_values($instance);
4254
+			$argument_values = $this->string_to_bool($argument_values);
4255
+			$output          = $this->output($argument_values, $args);
4256 4256
 
4257 4257
 			$no_wrap = false;
4258
-			if ( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ) {
4258
+			if (isset($argument_values['no_wrap']) && $argument_values['no_wrap']) {
4259 4259
 				$no_wrap = true;
4260 4260
 			}
4261 4261
 
4262 4262
 			ob_start();
4263
-			if ( $output && ! $no_wrap ) {
4263
+			if ($output && !$no_wrap) {
4264 4264
 
4265 4265
 				$class_original = $this->options['widget_ops']['classname'];
4266
-				$class = $this->options['widget_ops']['classname']." sdel-".$this->get_instance_hash();
4266
+				$class = $this->options['widget_ops']['classname'] . " sdel-" . $this->get_instance_hash();
4267 4267
 
4268 4268
 				// Before widget
4269
-				$before_widget = ! empty( $args['before_widget'] ) ? $args['before_widget'] : '';
4270
-				$before_widget = $before_widget ? str_replace( $class_original, $class, $before_widget ) : $before_widget;
4271
-				$before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
4272
-				$before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
4269
+				$before_widget = !empty($args['before_widget']) ? $args['before_widget'] : '';
4270
+				$before_widget = $before_widget ? str_replace($class_original, $class, $before_widget) : $before_widget;
4271
+				$before_widget = apply_filters('wp_super_duper_before_widget', $before_widget, $args, $instance, $this);
4272
+				$before_widget = apply_filters('wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this);
4273 4273
 
4274 4274
 				// After widget
4275
-				$after_widget = ! empty( $args['after_widget'] ) ? $args['after_widget'] : '';
4276
-				$after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
4277
-				$after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
4275
+				$after_widget = !empty($args['after_widget']) ? $args['after_widget'] : '';
4276
+				$after_widget = apply_filters('wp_super_duper_after_widget', $after_widget, $args, $instance, $this);
4277
+				$after_widget = apply_filters('wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this);
4278 4278
 
4279 4279
 				echo $before_widget;
4280 4280
 				// elementor strips the widget wrapping div so we check for and add it back if needed
4281
-				if ( $this->is_elementor_widget_output() ) {
4281
+				if ($this->is_elementor_widget_output()) {
4282 4282
 					// Filter class & attrs for elementor widget output.
4283
-					$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
4284
-					$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
4283
+					$class = apply_filters('wp_super_duper_div_classname', $class, $args, $this);
4284
+					$class = apply_filters('wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this);
4285 4285
 
4286
-					$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
4287
-					$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this );
4286
+					$attrs = apply_filters('wp_super_duper_div_attrs', '', $args, $this);
4287
+					$attrs = apply_filters('wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this);
4288 4288
 
4289
-					echo "<span class='" . esc_attr( $class  ) . "' " . $attrs . ">";
4289
+					echo "<span class='" . esc_attr($class) . "' " . $attrs . ">";
4290 4290
 				}
4291
-				echo $this->output_title( $args, $instance );
4291
+				echo $this->output_title($args, $instance);
4292 4292
 				echo $output;
4293
-				if ( $this->is_elementor_widget_output() ) {
4293
+				if ($this->is_elementor_widget_output()) {
4294 4294
 					echo "</span>";
4295 4295
 				}
4296 4296
 				echo $after_widget;
4297
-			} elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
4298
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
4297
+			} elseif ($this->is_preview() && $output == '') {// if preview show a placeholder if empty
4298
+				$output = $this->preview_placeholder_text("{{" . $this->base_id . "}}");
4299 4299
 				echo $output;
4300
-			} elseif ( $output && $no_wrap ) {
4300
+			} elseif ($output && $no_wrap) {
4301 4301
 				echo $output;
4302 4302
 			}
4303 4303
 			$output = ob_get_clean();
4304 4304
 
4305
-			$output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
4305
+			$output = apply_filters('wp_super_duper_widget_output', $output, $instance, $args, $this);
4306 4306
 
4307 4307
 			echo $output;
4308 4308
 		}
@@ -4315,7 +4315,7 @@  discard block
 block discarded – undo
4315 4315
 		 */
4316 4316
 		public function is_elementor_widget_output() {
4317 4317
 			$result = false;
4318
-			if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
4318
+			if (defined('ELEMENTOR_VERSION') && isset($this->number) && $this->number == 'REPLACE_TO_ID') {
4319 4319
 				$result = true;
4320 4320
 			}
4321 4321
 
@@ -4330,7 +4330,7 @@  discard block
 block discarded – undo
4330 4330
 		 */
4331 4331
 		public function is_elementor_preview() {
4332 4332
 			$result = false;
4333
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
4333
+			if (isset($_REQUEST['elementor-preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor_ajax')) {
4334 4334
 				$result = true;
4335 4335
 			}
4336 4336
 
@@ -4345,7 +4345,7 @@  discard block
 block discarded – undo
4345 4345
 		 */
4346 4346
 		public function is_divi_preview() {
4347 4347
 			$result = false;
4348
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
4348
+			if (isset($_REQUEST['et_fb']) || isset($_REQUEST['et_pb_preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor')) {
4349 4349
 				$result = true;
4350 4350
 			}
4351 4351
 
@@ -4360,7 +4360,7 @@  discard block
 block discarded – undo
4360 4360
 		 */
4361 4361
 		public function is_beaver_preview() {
4362 4362
 			$result = false;
4363
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
4363
+			if (isset($_REQUEST['fl_builder'])) {
4364 4364
 				$result = true;
4365 4365
 			}
4366 4366
 
@@ -4375,7 +4375,7 @@  discard block
 block discarded – undo
4375 4375
 		 */
4376 4376
 		public function is_siteorigin_preview() {
4377 4377
 			$result = false;
4378
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
4378
+			if (!empty($_REQUEST['siteorigin_panels_live_editor'])) {
4379 4379
 				$result = true;
4380 4380
 			}
4381 4381
 
@@ -4390,7 +4390,7 @@  discard block
 block discarded – undo
4390 4390
 		 */
4391 4391
 		public function is_cornerstone_preview() {
4392 4392
 			$result = false;
4393
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
4393
+			if (!empty($_REQUEST['cornerstone_preview']) || basename($_SERVER['REQUEST_URI']) == 'cornerstone-endpoint') {
4394 4394
 				$result = true;
4395 4395
 			}
4396 4396
 
@@ -4405,7 +4405,7 @@  discard block
 block discarded – undo
4405 4405
 		 */
4406 4406
 		public function is_fusion_preview() {
4407 4407
 			$result = false;
4408
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
4408
+			if (!empty($_REQUEST['fb-edit']) || !empty($_REQUEST['fusion_load_nonce'])) {
4409 4409
 				$result = true;
4410 4410
 			}
4411 4411
 
@@ -4420,7 +4420,7 @@  discard block
 block discarded – undo
4420 4420
 		 */
4421 4421
 		public function is_oxygen_preview() {
4422 4422
 			$result = false;
4423
-			if ( ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ) ) {
4423
+			if (!empty($_REQUEST['ct_builder']) || (!empty($_REQUEST['action']) && (substr($_REQUEST['action'], 0, 11) === "oxy_render_" || substr($_REQUEST['action'], 0, 10) === "ct_render_"))) {
4424 4424
 				$result = true;
4425 4425
 			}
4426 4426
 
@@ -4437,7 +4437,7 @@  discard block
 block discarded – undo
4437 4437
 		public function is_kallyas_zion_preview() {
4438 4438
 			$result = false;
4439 4439
 
4440
-			if ( function_exists( 'znhg_kallyas_theme_config' ) && ! empty( $_REQUEST['zn_pb_edit'] ) ) {
4440
+			if (function_exists('znhg_kallyas_theme_config') && !empty($_REQUEST['zn_pb_edit'])) {
4441 4441
 				$result = true;
4442 4442
 			}
4443 4443
 
@@ -4454,7 +4454,7 @@  discard block
 block discarded – undo
4454 4454
 		public function is_bricks_preview() {
4455 4455
 			$result = false;
4456 4456
 
4457
-			if ( function_exists( 'bricks_is_builder' ) && ( bricks_is_builder() || bricks_is_builder_call() ) ) {
4457
+			if (function_exists('bricks_is_builder') && (bricks_is_builder() || bricks_is_builder_call())) {
4458 4458
 				$result = true;
4459 4459
 			}
4460 4460
 
@@ -4469,25 +4469,25 @@  discard block
 block discarded – undo
4469 4469
 		 */
4470 4470
 		public function is_preview() {
4471 4471
 			$preview = false;
4472
-			if ( $this->is_divi_preview() ) {
4472
+			if ($this->is_divi_preview()) {
4473 4473
 				$preview = true;
4474
-			} elseif ( $this->is_elementor_preview() ) {
4474
+			} elseif ($this->is_elementor_preview()) {
4475 4475
 				$preview = true;
4476
-			} elseif ( $this->is_beaver_preview() ) {
4476
+			} elseif ($this->is_beaver_preview()) {
4477 4477
 				$preview = true;
4478
-			} elseif ( $this->is_siteorigin_preview() ) {
4478
+			} elseif ($this->is_siteorigin_preview()) {
4479 4479
 				$preview = true;
4480
-			} elseif ( $this->is_cornerstone_preview() ) {
4480
+			} elseif ($this->is_cornerstone_preview()) {
4481 4481
 				$preview = true;
4482
-			} elseif ( $this->is_fusion_preview() ) {
4482
+			} elseif ($this->is_fusion_preview()) {
4483 4483
 				$preview = true;
4484
-			} elseif ( $this->is_oxygen_preview() ) {
4484
+			} elseif ($this->is_oxygen_preview()) {
4485 4485
 				$preview = true;
4486
-			} elseif( $this->is_kallyas_zion_preview() ) {
4486
+			} elseif ($this->is_kallyas_zion_preview()) {
4487 4487
 				$preview = true;
4488
-			} elseif( $this->is_block_content_call() ) {
4488
+			} elseif ($this->is_block_content_call()) {
4489 4489
 				$preview = true;
4490
-			} elseif( $this->is_bricks_preview() ) {
4490
+			} elseif ($this->is_bricks_preview()) {
4491 4491
 				$preview = true;
4492 4492
 			}
4493 4493
 
@@ -4502,44 +4502,44 @@  discard block
 block discarded – undo
4502 4502
 		 *
4503 4503
 		 * @return string
4504 4504
 		 */
4505
-		public function output_title( $args, $instance = array() ) {
4505
+		public function output_title($args, $instance = array()) {
4506 4506
 			$output = '';
4507
-			if ( ! empty( $instance['title'] ) ) {
4507
+			if (!empty($instance['title'])) {
4508 4508
 				/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
4509
-				$title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
4509
+				$title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
4510 4510
 
4511
-				if ( empty( $instance['widget_title_tag'] ) ) {
4512
-					if ( ! isset( $args['before_title'] ) ) {
4511
+				if (empty($instance['widget_title_tag'])) {
4512
+					if (!isset($args['before_title'])) {
4513 4513
 						$args['before_title'] = '';
4514 4514
 					}
4515 4515
 
4516
-					if ( ! isset( $args['after_title'] ) ) {
4516
+					if (!isset($args['after_title'])) {
4517 4517
 						$args['after_title'] = '';
4518 4518
 					}
4519 4519
 
4520 4520
 					$output = $args['before_title'] . $title . $args['after_title'];
4521 4521
 				} else {
4522
-					$tag 			= esc_attr( $instance['widget_title_tag'] );
4523
-					$allowed_tags 	= array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p' );
4524
-					$title_tag      = in_array( $tag, $allowed_tags, true ) ? esc_attr( $tag ) : 'h2';
4522
+					$tag 			= esc_attr($instance['widget_title_tag']);
4523
+					$allowed_tags = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span', 'div', 'p');
4524
+					$title_tag = in_array($tag, $allowed_tags, true) ? esc_attr($tag) : 'h2';
4525 4525
 
4526 4526
 					// classes
4527 4527
 					$title_classes = array();
4528
-					$title_classes[] = !empty( $instance['widget_title_size_class'] ) ? sanitize_html_class( $instance['widget_title_size_class'] ) : '';
4529
-					$title_classes[] = !empty( $instance['widget_title_align_class'] ) ? sanitize_html_class( $instance['widget_title_align_class'] ) : '';
4530
-					$title_classes[] = !empty( $instance['widget_title_color_class'] ) ? "text-".sanitize_html_class( $instance['widget_title_color_class'] ) : '';
4531
-					$title_classes[] = !empty( $instance['widget_title_border_class'] ) ? sanitize_html_class( $instance['widget_title_border_class'] ) : '';
4532
-					$title_classes[] = !empty( $instance['widget_title_border_color_class'] ) ? "border-".sanitize_html_class( $instance['widget_title_border_color_class'] ) : '';
4533
-					$title_classes[] = !empty( $instance['widget_title_mt_class'] ) ? "mt-".absint( $instance['widget_title_mt_class'] ) : '';
4534
-					$title_classes[] = !empty( $instance['widget_title_mr_class'] ) ? "mr-".absint( $instance['widget_title_mr_class'] ) : '';
4535
-					$title_classes[] = !empty( $instance['widget_title_mb_class'] ) ? "mb-".absint( $instance['widget_title_mb_class'] ) : '';
4536
-					$title_classes[] = !empty( $instance['widget_title_ml_class'] ) ? "ml-".absint( $instance['widget_title_ml_class'] ) : '';
4537
-					$title_classes[] = !empty( $instance['widget_title_pt_class'] ) ? "pt-".absint( $instance['widget_title_pt_class'] ) : '';
4538
-					$title_classes[] = !empty( $instance['widget_title_pr_class'] ) ? "pr-".absint( $instance['widget_title_pr_class'] ) : '';
4539
-					$title_classes[] = !empty( $instance['widget_title_pb_class'] ) ? "pb-".absint( $instance['widget_title_pb_class'] ) : '';
4540
-					$title_classes[] = !empty( $instance['widget_title_pl_class'] ) ? "pl-".absint( $instance['widget_title_pl_class'] ) : '';
4541
-
4542
-					$class = !empty( $title_classes ) ? implode(" ",$title_classes) : '';
4528
+					$title_classes[] = !empty($instance['widget_title_size_class']) ? sanitize_html_class($instance['widget_title_size_class']) : '';
4529
+					$title_classes[] = !empty($instance['widget_title_align_class']) ? sanitize_html_class($instance['widget_title_align_class']) : '';
4530
+					$title_classes[] = !empty($instance['widget_title_color_class']) ? "text-" . sanitize_html_class($instance['widget_title_color_class']) : '';
4531
+					$title_classes[] = !empty($instance['widget_title_border_class']) ? sanitize_html_class($instance['widget_title_border_class']) : '';
4532
+					$title_classes[] = !empty($instance['widget_title_border_color_class']) ? "border-" . sanitize_html_class($instance['widget_title_border_color_class']) : '';
4533
+					$title_classes[] = !empty($instance['widget_title_mt_class']) ? "mt-" . absint($instance['widget_title_mt_class']) : '';
4534
+					$title_classes[] = !empty($instance['widget_title_mr_class']) ? "mr-" . absint($instance['widget_title_mr_class']) : '';
4535
+					$title_classes[] = !empty($instance['widget_title_mb_class']) ? "mb-" . absint($instance['widget_title_mb_class']) : '';
4536
+					$title_classes[] = !empty($instance['widget_title_ml_class']) ? "ml-" . absint($instance['widget_title_ml_class']) : '';
4537
+					$title_classes[] = !empty($instance['widget_title_pt_class']) ? "pt-" . absint($instance['widget_title_pt_class']) : '';
4538
+					$title_classes[] = !empty($instance['widget_title_pr_class']) ? "pr-" . absint($instance['widget_title_pr_class']) : '';
4539
+					$title_classes[] = !empty($instance['widget_title_pb_class']) ? "pb-" . absint($instance['widget_title_pb_class']) : '';
4540
+					$title_classes[] = !empty($instance['widget_title_pl_class']) ? "pl-" . absint($instance['widget_title_pl_class']) : '';
4541
+
4542
+					$class = !empty($title_classes) ? implode(" ", $title_classes) : '';
4543 4543
 					$output = "<$title_tag class='$class' >$title</$title_tag>";
4544 4544
 				}
4545 4545
 
@@ -4553,7 +4553,7 @@  discard block
 block discarded – undo
4553 4553
 		 *
4554 4554
 		 * @param array $instance The widget options.
4555 4555
 		 */
4556
-		public function form( $instance ) {
4556
+		public function form($instance) {
4557 4557
 
4558 4558
 			// set widget instance
4559 4559
 			$this->instance = $instance;
@@ -4561,20 +4561,20 @@  discard block
 block discarded – undo
4561 4561
 			// set it as a SD widget
4562 4562
 			echo $this->widget_advanced_toggle();
4563 4563
 
4564
-			echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
4564
+			echo "<p>" . esc_attr($this->options['widget_ops']['description']) . "</p>";
4565 4565
 			$arguments_raw = $this->get_arguments();
4566 4566
 
4567
-			if ( is_array( $arguments_raw ) ) {
4567
+			if (is_array($arguments_raw)) {
4568 4568
 
4569
-				$arguments = $this->group_arguments( $arguments_raw );
4569
+				$arguments = $this->group_arguments($arguments_raw);
4570 4570
 
4571 4571
 				// Do we have sections?
4572 4572
 				$has_sections = $arguments == $arguments_raw ? false : true;
4573 4573
 
4574 4574
 
4575
-				if ( $has_sections ) {
4575
+				if ($has_sections) {
4576 4576
 					$panel_count = 0;
4577
-					foreach ( $arguments as $key => $args ) {
4577
+					foreach ($arguments as $key => $args) {
4578 4578
 
4579 4579
 						?>
4580 4580
 						<script>
@@ -4584,26 +4584,26 @@  discard block
 block discarded – undo
4584 4584
 
4585 4585
 						$hide       = $panel_count ? ' style="display:none;" ' : '';
4586 4586
 						$icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
4587
-						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>";
4588
-						echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes( $key ) . "' $hide>";
4587
+						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>";
4588
+						echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes($key) . "' $hide>";
4589 4589
 
4590
-						foreach ( $args as $k => $a ) {
4590
+						foreach ($args as $k => $a) {
4591 4591
 
4592 4592
 							$this->widget_inputs_row_start($k, $a);
4593
-							$this->widget_inputs( $a, $instance );
4593
+							$this->widget_inputs($a, $instance);
4594 4594
 							$this->widget_inputs_row_end($k, $a);
4595 4595
 
4596 4596
 						}
4597 4597
 
4598 4598
 						echo "</div>";
4599 4599
 
4600
-						$panel_count ++;
4600
+						$panel_count++;
4601 4601
 
4602 4602
 					}
4603 4603
 				} else {
4604
-					foreach ( $arguments as $key => $args ) {
4604
+					foreach ($arguments as $key => $args) {
4605 4605
 						$this->widget_inputs_row_start($key, $args);
4606
-						$this->widget_inputs( $args, $instance );
4606
+						$this->widget_inputs($args, $instance);
4607 4607
 						$this->widget_inputs_row_end($key, $args);
4608 4608
 					}
4609 4609
 				}
@@ -4611,28 +4611,28 @@  discard block
 block discarded – undo
4611 4611
 			}
4612 4612
 		}
4613 4613
 
4614
-		public function widget_inputs_row_start( $key, $args ) {
4615
-			if ( ! empty( $args['row'] ) ) {
4614
+		public function widget_inputs_row_start($key, $args) {
4615
+			if (!empty($args['row'])) {
4616 4616
 				// Maybe open
4617
-				if ( ! empty( $args['row']['open'] ) ) {
4617
+				if (!empty($args['row']['open'])) {
4618 4618
 					?>
4619
-					<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'] ) : '' ); ?>'>
4620
-					<?php if ( ! empty( $args['row']['title'] ) ) { ?>
4619
+					<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']) : ''); ?>'>
4620
+					<?php if (!empty($args['row']['title'])) { ?>
4621 4621
 					<?php
4622
-						if ( isset( $args['row']['icon'] ) ) {
4622
+						if (isset($args['row']['icon'])) {
4623 4623
 							$args['row']['icon'] = '';
4624 4624
 						}
4625 4625
 
4626
-						if ( ! isset( $args['row']['device_type'] ) && isset( $args['device_type'] ) ) {
4626
+						if (!isset($args['row']['device_type']) && isset($args['device_type'])) {
4627 4627
 							$args['row']['device_type'] = $args['device_type'];
4628 4628
 						}
4629 4629
 					?>
4630
-					<label class="mb-0"><?php echo $this->widget_field_title( $args['row'] ); ?><?php echo $this->widget_field_desc( $args['row'] ); ?></label>
4630
+					<label class="mb-0"><?php echo $this->widget_field_title($args['row']); ?><?php echo $this->widget_field_desc($args['row']); ?></label>
4631 4631
 					<?php } ?>
4632
-					<div class='row<?php echo ( ! empty( $args['row']['class'] ) ? ' ' . esc_attr( $args['row']['class'] ) : '' ); ?>'>
4632
+					<div class='row<?php echo (!empty($args['row']['class']) ? ' ' . esc_attr($args['row']['class']) : ''); ?>'>
4633 4633
 					<div class='col pr-2'>
4634 4634
 					<?php
4635
-				} else if ( ! empty( $args['row']['close'] ) ) {
4635
+				} else if (!empty($args['row']['close'])) {
4636 4636
 					echo "<div class='col pl-0 ps-0'>";
4637 4637
 				} else {
4638 4638
 					echo "<div class='col pl-0 ps-0 pr-2 pe-2'>";
@@ -4640,10 +4640,10 @@  discard block
 block discarded – undo
4640 4640
 			}
4641 4641
 		}
4642 4642
 
4643
-		public function widget_inputs_row_end( $key, $args ) {
4644
-			if ( ! empty( $args['row'] ) ) {
4643
+		public function widget_inputs_row_end($key, $args) {
4644
+			if (!empty($args['row'])) {
4645 4645
 				// Maybe close
4646
-				if ( ! empty( $args['row']['close'] ) ) {
4646
+				if (!empty($args['row']['close'])) {
4647 4647
 					echo "</div></div>";
4648 4648
 				}
4649 4649
 				echo "</div>";
@@ -4658,7 +4658,7 @@  discard block
 block discarded – undo
4658 4658
 		public function widget_advanced_toggle() {
4659 4659
 
4660 4660
 			$output = '';
4661
-			if ( $this->block_show_advanced() ) {
4661
+			if ($this->block_show_advanced()) {
4662 4662
 				$val = 1;
4663 4663
 			} else {
4664 4664
 				$val = 0;
@@ -4678,14 +4678,14 @@  discard block
 block discarded – undo
4678 4678
 		 *@since 1.0.0
4679 4679
 		 *
4680 4680
 		 */
4681
-		public function convert_element_require( $input ) {
4682
-			$input = str_replace( "'", '"', $input );// we only want double quotes
4681
+		public function convert_element_require($input) {
4682
+			$input = str_replace("'", '"', $input); // we only want double quotes
4683 4683
 
4684
-			$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
4684
+			$output = esc_attr(str_replace(array("[%", "%]", "%:checked]"), array(
4685 4685
 				"jQuery(form).find('[data-argument=\"",
4686 4686
 				"\"]').find('input,select,textarea').val()",
4687 4687
 				"\"]').find('input:checked').val()"
4688
-			), $input ) );
4688
+			), $input));
4689 4689
 
4690 4690
 			return $output;
4691 4691
 		}
@@ -4696,48 +4696,48 @@  discard block
 block discarded – undo
4696 4696
 		 * @param $args
4697 4697
 		 * @param $instance
4698 4698
 		 */
4699
-		public function widget_inputs( $args, $instance ) {
4699
+		public function widget_inputs($args, $instance) {
4700 4700
 
4701 4701
 			$class             = "";
4702 4702
 			$element_require   = "";
4703 4703
 			$custom_attributes = "";
4704 4704
 
4705 4705
 			// get value
4706
-			if ( isset( $instance[ $args['name'] ] ) ) {
4707
-				$value = $instance[ $args['name'] ];
4708
-			} elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
4709
-				$value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
4706
+			if (isset($instance[$args['name']])) {
4707
+				$value = $instance[$args['name']];
4708
+			} elseif (!isset($instance[$args['name']]) && !empty($args['default'])) {
4709
+				$value = is_array($args['default']) ? array_map("esc_html", $args['default']) : esc_html($args['default']);
4710 4710
 			} else {
4711 4711
 				$value = '';
4712 4712
 			}
4713 4713
 
4714 4714
 			// get placeholder
4715
-			if ( ! empty( $args['placeholder'] ) ) {
4716
-				$placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
4715
+			if (!empty($args['placeholder'])) {
4716
+				$placeholder = "placeholder='" . esc_html($args['placeholder']) . "'";
4717 4717
 			} else {
4718 4718
 				$placeholder = '';
4719 4719
 			}
4720 4720
 
4721 4721
 			// get if advanced
4722
-			if ( isset( $args['advanced'] ) && $args['advanced'] ) {
4722
+			if (isset($args['advanced']) && $args['advanced']) {
4723 4723
 				$class .= " sd-advanced-setting ";
4724 4724
 			}
4725 4725
 
4726 4726
 			// element_require
4727
-			if ( isset( $args['element_require'] ) && $args['element_require'] ) {
4727
+			if (isset($args['element_require']) && $args['element_require']) {
4728 4728
 				$element_require = $args['element_require'];
4729 4729
 			}
4730 4730
 
4731 4731
 			// custom_attributes
4732
-			if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
4733
-				$custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
4732
+			if (isset($args['custom_attributes']) && $args['custom_attributes']) {
4733
+				$custom_attributes = $this->array_to_attributes($args['custom_attributes'], true);
4734 4734
 			}
4735 4735
 
4736 4736
 			// before wrapper
4737 4737
 			?>
4738
-			<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 );} ?>'>
4738
+			<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); } ?>'>
4739 4739
 			<?php
4740
-			switch ( $args['type'] ) {
4740
+			switch ($args['type']) {
4741 4741
 				//array('text','password','number','email','tel','url','color')
4742 4742
 				case "text":
4743 4743
 				case "password":
@@ -4747,33 +4747,33 @@  discard block
 block discarded – undo
4747 4747
 				case "url":
4748 4748
 				case "color":
4749 4749
 					?>
4750
-					<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>
4751
-					<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 ); ?>">
4750
+					<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>
4751
+					<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); ?>">
4752 4752
 					<?php
4753 4753
 
4754 4754
 					break;
4755 4755
 				case "select":
4756
-					$multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
4757
-					if ( $multiple ) {
4758
-						if ( empty( $value ) ) {
4756
+					$multiple = isset($args['multiple']) && $args['multiple'] ? true : false;
4757
+					if ($multiple) {
4758
+						if (empty($value)) {
4759 4759
 							$value = array();
4760 4760
 						}
4761 4761
 					}
4762 4762
 					?>
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
-					<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 "[]"; } ?>"
4765
-						<?php if ( $multiple ) {
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
+					<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 "[]"; } ?>"
4765
+						<?php if ($multiple) {
4766 4766
 							echo "multiple";
4767 4767
 						} //@todo not implemented yet due to gutenberg not supporting it
4768 4768
 						?>>
4769 4769
 						<?php
4770 4770
 
4771
-						if ( ! empty( $args['options'] ) ) {
4772
-							foreach ( $args['options'] as $val => $label ) {
4773
-								if ( $multiple ) {
4774
-									$selected = in_array( $val, $value ) ? 'selected="selected"' : '';
4771
+						if (!empty($args['options'])) {
4772
+							foreach ($args['options'] as $val => $label) {
4773
+								if ($multiple) {
4774
+									$selected = in_array($val, $value) ? 'selected="selected"' : '';
4775 4775
 								} else {
4776
-									$selected = selected( $value, $val, false );
4776
+									$selected = selected($value, $val, false);
4777 4777
 								}
4778 4778
 								echo "<option value='$val' " . $selected . ">$label</option>";
4779 4779
 							}
@@ -4784,20 +4784,20 @@  discard block
 block discarded – undo
4784 4784
 					break;
4785 4785
 				case "checkbox":
4786 4786
 					?>
4787
-					<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">
4788
-					<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>
4787
+					<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">
4788
+					<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>
4789 4789
 					<?php
4790 4790
 					break;
4791 4791
 				case "textarea":
4792 4792
 					?>
4793
-					<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>
4794
-					<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>
4793
+					<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>
4794
+					<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>
4795 4795
 					<?php
4796 4796
 
4797 4797
 					break;
4798 4798
 				case "hidden":
4799 4799
 					?>
4800
-					<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 ); ?>">
4800
+					<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); ?>">
4801 4801
 					<?php
4802 4802
 					break;
4803 4803
 				default:
@@ -4807,15 +4807,15 @@  discard block
 block discarded – undo
4807 4807
 			?></p><?php
4808 4808
 		}
4809 4809
 
4810
-		public function get_widget_icon($icon = 'box-top', $title = ''){
4811
-			if($icon=='box-top'){
4812
-				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>';
4813
-			}elseif($icon=='box-right'){
4814
-				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>';
4815
-			}elseif($icon=='box-bottom'){
4816
-				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>';
4817
-			}elseif($icon=='box-left'){
4818
-				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>';
4810
+		public function get_widget_icon($icon = 'box-top', $title = '') {
4811
+			if ($icon == 'box-top') {
4812
+				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>';
4813
+			}elseif ($icon == 'box-right') {
4814
+				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>';
4815
+			}elseif ($icon == 'box-bottom') {
4816
+				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>';
4817
+			}elseif ($icon == 'box-left') {
4818
+				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>';
4819 4819
 			}
4820 4820
 		}
4821 4821
 
@@ -4827,14 +4827,14 @@  discard block
 block discarded – undo
4827 4827
 		 * @return string
4828 4828
 		 * @todo, need to make its own tooltip script
4829 4829
 		 */
4830
-		public function widget_field_desc( $args ) {
4830
+		public function widget_field_desc($args) {
4831 4831
 
4832 4832
 			$description = '';
4833
-			if ( isset( $args['desc'] ) && $args['desc'] ) {
4834
-				if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
4835
-					$description = $this->desc_tip( $args['desc'] );
4833
+			if (isset($args['desc']) && $args['desc']) {
4834
+				if (isset($args['desc_tip']) && $args['desc_tip']) {
4835
+					$description = $this->desc_tip($args['desc']);
4836 4836
 				} else {
4837
-					$description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
4837
+					$description = '<span class="description">' . wp_kses_post($args['desc']) . '</span>';
4838 4838
 				}
4839 4839
 			}
4840 4840
 
@@ -4848,18 +4848,18 @@  discard block
 block discarded – undo
4848 4848
 		 *
4849 4849
 		 * @return string
4850 4850
 		 */
4851
-		public function widget_field_title( $args ) {
4851
+		public function widget_field_title($args) {
4852 4852
 			$title = '';
4853 4853
 
4854
-			if ( isset( $args['title'] ) && $args['title'] ) {
4855
-				if ( ! empty( $args['device_type'] ) ) {
4854
+			if (isset($args['title']) && $args['title']) {
4855
+				if (!empty($args['device_type'])) {
4856 4856
 					$args['title'] .= ' (' . $args['device_type'] . ')'; // Append device type to title.
4857 4857
 				}
4858 4858
 
4859
-				if ( isset( $args['icon'] ) && $args['icon'] ) {
4860
-					$title = self::get_widget_icon( $args['icon'], $args['title']  );
4859
+				if (isset($args['icon']) && $args['icon']) {
4860
+					$title = self::get_widget_icon($args['icon'], $args['title']);
4861 4861
 				} else {
4862
-					$title = esc_attr( $args['title'] );
4862
+					$title = esc_attr($args['title']);
4863 4863
 				}
4864 4864
 			}
4865 4865
 
@@ -4874,11 +4874,11 @@  discard block
 block discarded – undo
4874 4874
 		 *
4875 4875
 		 * @return string
4876 4876
 		 */
4877
-		function desc_tip( $tip, $allow_html = false ) {
4878
-			if ( $allow_html ) {
4879
-				$tip = $this->sanitize_tooltip( $tip );
4877
+		function desc_tip($tip, $allow_html = false) {
4878
+			if ($allow_html) {
4879
+				$tip = $this->sanitize_tooltip($tip);
4880 4880
 			} else {
4881
-				$tip = esc_attr( $tip );
4881
+				$tip = esc_attr($tip);
4882 4882
 			}
4883 4883
 
4884 4884
 			return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
@@ -4891,8 +4891,8 @@  discard block
 block discarded – undo
4891 4891
 		 *
4892 4892
 		 * @return string
4893 4893
 		 */
4894
-		public function sanitize_tooltip( $var ) {
4895
-			return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
4894
+		public function sanitize_tooltip($var) {
4895
+			return htmlspecialchars(wp_kses(html_entity_decode($var), array(
4896 4896
 				'br'     => array(),
4897 4897
 				'em'     => array(),
4898 4898
 				'strong' => array(),
@@ -4902,7 +4902,7 @@  discard block
 block discarded – undo
4902 4902
 				'li'     => array(),
4903 4903
 				'ol'     => array(),
4904 4904
 				'p'      => array(),
4905
-			) ) );
4905
+			)));
4906 4906
 		}
4907 4907
 
4908 4908
 		/**
@@ -4914,23 +4914,23 @@  discard block
 block discarded – undo
4914 4914
 		 * @return array
4915 4915
 		 * @todo we should add some sanitation here.
4916 4916
 		 */
4917
-		public function update( $new_instance, $old_instance ) {
4917
+		public function update($new_instance, $old_instance) {
4918 4918
 
4919 4919
 			//save the widget
4920
-			$instance = array_merge( (array) $old_instance, (array) $new_instance );
4920
+			$instance = array_merge((array) $old_instance, (array) $new_instance);
4921 4921
 
4922 4922
 			// set widget instance
4923 4923
 			$this->instance = $instance;
4924 4924
 
4925
-			if ( empty( $this->arguments ) ) {
4925
+			if (empty($this->arguments)) {
4926 4926
 				$this->get_arguments();
4927 4927
 			}
4928 4928
 
4929 4929
 			// check for checkboxes
4930
-			if ( ! empty( $this->arguments ) ) {
4931
-				foreach ( $this->arguments as $argument ) {
4932
-					if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
4933
-						$instance[ $argument['name'] ] = '0';
4930
+			if (!empty($this->arguments)) {
4931
+				foreach ($this->arguments as $argument) {
4932
+					if (isset($argument['type']) && $argument['type'] == 'checkbox' && !isset($new_instance[$argument['name']])) {
4933
+						$instance[$argument['name']] = '0';
4934 4934
 					}
4935 4935
 				}
4936 4936
 			}
@@ -4948,7 +4948,7 @@  discard block
 block discarded – undo
4948 4948
 		 */
4949 4949
 		public function is_block_content_call() {
4950 4950
 			$result = false;
4951
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
4951
+			if (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'super_duper_output_shortcode') {
4952 4952
 				$result = true;
4953 4953
 			}
4954 4954
 
@@ -4961,9 +4961,9 @@  discard block
 block discarded – undo
4961 4961
 		 * @return string
4962 4962
 		 *@since 1.0.20
4963 4963
 		 */
4964
-		public function get_instance_hash(){
4965
-			$instance_string = $this->base_id.serialize($this->instance);
4966
-			return hash('crc32b',$instance_string);
4964
+		public function get_instance_hash() {
4965
+			$instance_string = $this->base_id . serialize($this->instance);
4966
+			return hash('crc32b', $instance_string);
4967 4967
 		}
4968 4968
 
4969 4969
 		/**
@@ -4974,14 +4974,14 @@  discard block
 block discarded – undo
4974 4974
 		 * @return string
4975 4975
 		 *@since 1.0.20
4976 4976
 		 */
4977
-		public function get_instance_style($rules = array()){
4977
+		public function get_instance_style($rules = array()) {
4978 4978
 			$css = '';
4979 4979
 
4980
-			if(!empty($rules)){
4980
+			if (!empty($rules)) {
4981 4981
 				$rules = array_unique($rules);
4982 4982
 				$instance_hash = $this->get_instance_hash();
4983 4983
 				$css .= "<style>";
4984
-				foreach($rules as $rule){
4984
+				foreach ($rules as $rule) {
4985 4985
 					$css .= ".sdel-$instance_hash $rule";
4986 4986
 				}
4987 4987
 				$css .= "</style>";
@@ -4999,9 +4999,9 @@  discard block
 block discarded – undo
4999 4999
 		 *@since 1.0.28
5000 5000
 		 *
5001 5001
 		 */
5002
-		public function encode_shortcodes( $content ) {
5002
+		public function encode_shortcodes($content) {
5003 5003
 			// Avoids existing encoded tags.
5004
-			$trans   = array(
5004
+			$trans = array(
5005 5005
 				'&#91;' => '&#091;',
5006 5006
 				'&#93;' => '&#093;',
5007 5007
 				'&amp;#91;' => '&#091;',
@@ -5012,7 +5012,7 @@  discard block
 block discarded – undo
5012 5012
 				'&amp;gt;' => '&0gt;',
5013 5013
 			);
5014 5014
 
5015
-			$content = strtr( $content, $trans );
5015
+			$content = strtr($content, $trans);
5016 5016
 
5017 5017
 			$trans   = array(
5018 5018
 				'[' => '&#91;',
@@ -5023,7 +5023,7 @@  discard block
 block discarded – undo
5023 5023
 				"'" => '&#39;',
5024 5024
 			);
5025 5025
 
5026
-			$content = strtr( $content, $trans );
5026
+			$content = strtr($content, $trans);
5027 5027
 
5028 5028
 			return $content;
5029 5029
 		}
@@ -5037,8 +5037,8 @@  discard block
 block discarded – undo
5037 5037
 		 *@since 1.0.28
5038 5038
 		 *
5039 5039
 		 */
5040
-		public function decode_shortcodes( $content ) {
5041
-			$trans   = array(
5040
+		public function decode_shortcodes($content) {
5041
+			$trans = array(
5042 5042
 				'&#91;' => '[',
5043 5043
 				'&#93;' => ']',
5044 5044
 				'&amp;#91;' => '[',
@@ -5051,7 +5051,7 @@  discard block
 block discarded – undo
5051 5051
 				'&apos;' => "'",
5052 5052
 			);
5053 5053
 
5054
-			$content = strtr( $content, $trans );
5054
+			$content = strtr($content, $trans);
5055 5055
 
5056 5056
 			$trans   = array(
5057 5057
 				'&#091;' => '&#91;',
@@ -5064,31 +5064,31 @@  discard block
 block discarded – undo
5064 5064
 				'&amp;0gt;' => '&gt;',
5065 5065
 			);
5066 5066
 
5067
-			$content = strtr( $content, $trans );
5067
+			$content = strtr($content, $trans);
5068 5068
 
5069 5069
 			return $content;
5070 5070
 		}
5071 5071
 
5072
-		public function block_visibility_fields( $args ) {
5073
-			$value = ! empty( $args['value'] ) ? esc_attr( $args['value'] ) : '';
5072
+		public function block_visibility_fields($args) {
5073
+			$value = !empty($args['value']) ? esc_attr($args['value']) : '';
5074 5074
 			$content = '<div class="bs-vc-rule-template d-none">';
5075 5075
 				$content .= '<div class="p-3 pb-0 mb-3 border border-1 rounded-1 position-relative bs-vc-rule" data-bs-index="BSVCINDEX" >';
5076 5076
 					$content .= '<div class="row">';
5077 5077
 						$content .= '<div class="col-sm-12">';
5078
-							$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>';
5078
+							$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>';
5079 5079
 							$content .= aui()->select(
5080 5080
 								array(
5081 5081
 									'id'          => 'bsvc_rule_BSVCINDEX',
5082 5082
 									'name'        => 'bsvc_rule_BSVCINDEX',
5083
-									'label'       => __( 'Rule', 'ayecode-connect' ),
5084
-									'placeholder' => __( 'Select Rule...', 'ayecode-connect' ),
5083
+									'label'       => __('Rule', 'ayecode-connect'),
5084
+									'placeholder' => __('Select Rule...', 'ayecode-connect'),
5085 5085
 									'class'       => 'bsvc_rule form-select-sm no-select2 mw-100',
5086 5086
 									'options'     => sd_visibility_rules_options(),
5087 5087
 									'default'     => '',
5088 5088
 									'value'       => '',
5089 5089
 									'label_type'  => '',
5090 5090
 									'select2'     => false,
5091
-									'input_group_left' => __( 'Rule:', 'ayecode-connect' ),
5091
+									'input_group_left' => __('Rule:', 'ayecode-connect'),
5092 5092
 									'extra_attributes' => array(
5093 5093
 										'data-minimum-results-for-search' => '-1'
5094 5094
 									)
@@ -5097,15 +5097,15 @@  discard block
 block discarded – undo
5097 5097
 
5098 5098
 						$content .= '</div>';
5099 5099
 
5100
-						if ( class_exists( 'GeoDirectory' ) ) {
5100
+						if (class_exists('GeoDirectory')) {
5101 5101
 							$content .= '<div class="col-md-7 col-sm-12">';
5102 5102
 
5103 5103
 								$content .= aui()->select(
5104 5104
 									array(
5105 5105
 										'id'          => 'bsvc_gd_field_BSVCINDEX',
5106 5106
 										'name'        => 'bsvc_gd_field_BSVCINDEX',
5107
-										'label'       => __( 'FIELD', 'ayecode-connect' ),
5108
-										'placeholder' => __( 'FIELD', 'ayecode-connect' ),
5107
+										'label'       => __('FIELD', 'ayecode-connect'),
5108
+										'placeholder' => __('FIELD', 'ayecode-connect'),
5109 5109
 										'class'       => 'bsvc_gd_field form-select-sm no-select2 mw-100',
5110 5110
 										'options'     => sd_visibility_gd_field_options(),
5111 5111
 										'default'     => '',
@@ -5126,8 +5126,8 @@  discard block
 block discarded – undo
5126 5126
 									array(
5127 5127
 										'id'          => 'bsvc_gd_field_condition_BSVCINDEX',
5128 5128
 										'name'        => 'bsvc_gd_field_condition_BSVCINDEX',
5129
-										'label'       => __( 'CONDITION', 'ayecode-connect' ),
5130
-										'placeholder' => __( 'CONDITION', 'ayecode-connect' ),
5129
+										'label'       => __('CONDITION', 'ayecode-connect'),
5130
+										'placeholder' => __('CONDITION', 'ayecode-connect'),
5131 5131
 										'class'       => 'bsvc_gd_field_condition form-select-sm no-select2 mw-100',
5132 5132
 										'options'     => sd_visibility_field_condition_options(),
5133 5133
 										'default'     => '',
@@ -5149,9 +5149,9 @@  discard block
 block discarded – undo
5149 5149
 										'type'            => 'text',
5150 5150
 										'id'              => 'bsvc_gd_field_search_BSVCINDEX',
5151 5151
 										'name'            => 'bsvc_gd_field_search_BSVCINDEX',
5152
-										'label'           => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5152
+										'label'           => __('VALUE TO MATCH', 'ayecode-connect'),
5153 5153
 										'class'           => 'bsvc_gd_field_search form-control-sm',
5154
-										'placeholder'     => __( 'VALUE TO MATCH', 'ayecode-connect' ),
5154
+										'placeholder'     => __('VALUE TO MATCH', 'ayecode-connect'),
5155 5155
 										'label_type'      => '',
5156 5156
 										'value'           => '',
5157 5157
 										'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")'
@@ -5163,11 +5163,11 @@  discard block
 block discarded – undo
5163 5163
 
5164 5164
 					$content .= '</div>';
5165 5165
 
5166
-					$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>';
5166
+					$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>';
5167 5167
 						$role_options = sd_user_roles_options();
5168 5168
 
5169 5169
 						$role_option_i = 0;
5170
-						foreach ( $role_options as $role_option_key => $role_option_name ) {
5170
+						foreach ($role_options as $role_option_key => $role_option_name) {
5171 5171
 							$role_option_i++;
5172 5172
 
5173 5173
 							$content .= '<div class="col-sm-6">';
@@ -5191,14 +5191,14 @@  discard block
 block discarded – undo
5191 5191
 			$content .= '</div>';
5192 5192
 			$content .= '<form id="bs-vc-modal-form" class="bs-vc-modal-form">';
5193 5193
 			$content .= '<div class="bs-vc-rule-sets"></div>';
5194
-			$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>';
5194
+			$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>';
5195 5195
 			$content .= '<div class="row"><div class="col-md-6 col-sm-12">';
5196 5196
 			$content .= aui()->select(
5197 5197
 				array(
5198 5198
 					'id'          => 'bsvc_output',
5199 5199
 					'name'        => 'bsvc_output',
5200
-					'label'       => __( 'What should happen if rules met.', 'ayecode-connect' ),
5201
-					'placeholder' => __( 'Default Output', 'ayecode-connect' ),
5200
+					'label'       => __('What should happen if rules met.', 'ayecode-connect'),
5201
+					'placeholder' => __('Default Output', 'ayecode-connect'),
5202 5202
 					'class'       => 'bsvc_output form-select-sm no-select2 mw-100',
5203 5203
 					'options'     => sd_visibility_output_options(),
5204 5204
 					'default'     => '',
@@ -5217,8 +5217,8 @@  discard block
 block discarded – undo
5217 5217
 				array(
5218 5218
 					'id'              => 'bsvc_page',
5219 5219
 					'name'            => 'bsvc_page',
5220
-					'label'           => __( 'Page Content', 'ayecode-connect' ),
5221
-					'placeholder'     => __( 'Select Page ID...', 'ayecode-connect' ),
5220
+					'label'           => __('Page Content', 'ayecode-connect'),
5221
+					'placeholder'     => __('Select Page ID...', 'ayecode-connect'),
5222 5222
 					'class'           => 'bsvc_page form-select-sm no-select2 mw-100',
5223 5223
 					'options'         => sd_template_page_options(),
5224 5224
 					'default'         => '',
@@ -5233,8 +5233,8 @@  discard block
 block discarded – undo
5233 5233
 				array(
5234 5234
 					'id'          => 'bsvc_tmpl_part',
5235 5235
 					'name'        => 'bsvc_tmpl_part',
5236
-					'label'       => __( 'Template Part', 'ayecode-connect' ),
5237
-					'placeholder' => __( 'Select Template Part...', 'ayecode-connect' ),
5236
+					'label'       => __('Template Part', 'ayecode-connect'),
5237
+					'placeholder' => __('Select Template Part...', 'ayecode-connect'),
5238 5238
 					'class'       => 'bsvc_tmpl_part form-select-sm no-select2 mw-100',
5239 5239
 					'options'     => sd_template_part_options(),
5240 5240
 					'default'     => '',
@@ -5252,8 +5252,8 @@  discard block
 block discarded – undo
5252 5252
 				array(
5253 5253
 					'id'               => 'bsvc_message_type',
5254 5254
 					'name'             => 'bsvc_message_type',
5255
-					'label'            => __( 'Custom Message Type', 'ayecode-connect' ),
5256
-					'placeholder'      => __( 'Default (none)', 'ayecode-connect' ),
5255
+					'label'            => __('Custom Message Type', 'ayecode-connect'),
5256
+					'placeholder'      => __('Default (none)', 'ayecode-connect'),
5257 5257
 					'class'            => 'bsvc_message_type form-select-sm no-select2 mw-100',
5258 5258
 					'options'          => sd_aui_colors(),
5259 5259
 					'default'          => '',
@@ -5276,7 +5276,7 @@  discard block
 block discarded – undo
5276 5276
 					'name'            => 'bsvc_message',
5277 5277
 					'label'           => '',
5278 5278
 					'class'           => 'bsvc_message form-control-sm',
5279
-					'placeholder'     => __( 'CUSTOM MESSAGE TO SHOW', 'ayecode-connect' ),
5279
+					'placeholder'     => __('CUSTOM MESSAGE TO SHOW', 'ayecode-connect'),
5280 5280
 					'label_type'      => '',
5281 5281
 					'value'           => '',
5282 5282
 					'form_group_class' => ' ',
@@ -5298,7 +5298,7 @@  discard block
 block discarded – undo
5298 5298
 			global $shortcode_insert_button_once;
5299 5299
 
5300 5300
 			// Fix conflicts with UpSolution Core in header template edit element.
5301
-			if ( defined( 'US_CORE_DIR' ) && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html' ) {
5301
+			if (defined('US_CORE_DIR') && !empty($_REQUEST['action']) && $_REQUEST['action'] == 'us_ajax_hb_get_ebuilder_html') {
5302 5302
 				$shortcode_insert_button_once = true;
5303 5303
 			}
5304 5304
 		}
Please login to merge, or discard this patch.
invoicing.php 2 patches
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.18' );
26
+    define( 'WPINV_VERSION', '2.8.18' );
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.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -15,20 +15,20 @@  discard block
 block discarded – undo
15 15
  * @package GetPaid
16 16
  */
17 17
 
18
-defined( 'ABSPATH' ) || exit;
18
+defined('ABSPATH') || exit;
19 19
 
20 20
 // Define constants.
21
-if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
21
+if (!defined('WPINV_PLUGIN_FILE')) {
22
+	define('WPINV_PLUGIN_FILE', __FILE__);
23 23
 }
24 24
 
25
-if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.18' );
25
+if (!defined('WPINV_VERSION')) {
26
+	define('WPINV_VERSION', '2.8.18');
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30
-if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
30
+if (!class_exists('WPInv_Plugin', false)) {
31
+	require_once plugin_dir_path(WPINV_PLUGIN_FILE) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
  */
40 40
 function getpaid() {
41 41
 
42
-    if ( empty( $GLOBALS['invoicing'] ) ) {
42
+    if (empty($GLOBALS['invoicing'])) {
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
@@ -52,9 +52,9 @@  discard block
 block discarded – undo
52 52
  * @since  2.0.8
53 53
  */
54 54
 function getpaid_deactivation_hook() {
55
-    update_option( 'wpinv_flush_permalinks', 1 );
55
+    update_option('wpinv_flush_permalinks', 1);
56 56
 }
57
-register_deactivation_hook( __FILE__, 'getpaid_deactivation_hook' );
57
+register_deactivation_hook(__FILE__, 'getpaid_deactivation_hook');
58 58
 
59 59
 /**
60 60
  * @deprecated
@@ -64,4 +64,4 @@  discard block
 block discarded – undo
64 64
 }
65 65
 
66 66
 // Kickstart the plugin.
67
-add_action( 'plugins_loaded', 'getpaid', 0 );
67
+add_action('plugins_loaded', 'getpaid', 0);
Please login to merge, or discard this patch.