Orbit Fox by ThemeIsle - Version 2.9.0

Version Description

Download this release

Release Info

Developer themeisle
Plugin Icon 128x128 Orbit Fox by ThemeIsle
Version 2.9.0
Comparing to
See all releases

Code changes from version 2.8.14 to 2.9.0

Files changed (134) hide show
  1. CHANGELOG.md +5 -2
  2. class-autoloader.php +5 -5
  3. core/app/abstract/class-orbit-fox-module-abstract.php +6 -6
  4. core/app/class-orbit-fox-admin.php +17 -9
  5. core/app/class-orbit-fox-global-settings.php +1 -2
  6. core/app/class-orbit-fox-module-factory.php +1 -1
  7. core/app/helpers/class-orbit-fox-render-helper.php +4 -1
  8. core/app/views/modules-page.php +9 -10
  9. core/app/views/partials/empty-tpl.php +4 -4
  10. core/app/views/partials/module-panel-tpl.php +9 -9
  11. core/app/views/partials/module-tile-tpl.php +8 -8
  12. core/app/views/partials/module-toast-tpl.php +3 -3
  13. core/assets/css/orbit-fox-admin.css +2 -2
  14. core/includes/class-orbit-fox-neve-dropin.php +5 -5
  15. core/includes/class-orbit-fox.php +38 -4
  16. obfx_modules/beaver-widgets/custom-fields/number-field/number_field.php +1 -1
  17. obfx_modules/beaver-widgets/inc/common-functions.php +36 -36
  18. obfx_modules/beaver-widgets/init.php +5 -5
  19. obfx_modules/beaver-widgets/modules/post-grid/includes/frontend.css.php +109 -109
  20. obfx_modules/beaver-widgets/modules/post-grid/includes/frontend.php +15 -13
  21. obfx_modules/beaver-widgets/modules/post-grid/includes/loop-settings.php +110 -104
  22. obfx_modules/beaver-widgets/modules/post-grid/post-grid.php +165 -165
  23. obfx_modules/beaver-widgets/modules/pricing-table/includes/frontend.css.php +146 -146
  24. obfx_modules/beaver-widgets/modules/pricing-table/includes/frontend.php +5 -5
  25. obfx_modules/beaver-widgets/modules/pricing-table/pricing-table.php +215 -215
  26. obfx_modules/beaver-widgets/modules/services/includes/frontend.css.php +51 -51
  27. obfx_modules/beaver-widgets/modules/services/includes/frontend.php +8 -8
  28. obfx_modules/beaver-widgets/modules/services/services.php +85 -85
  29. obfx_modules/companion-legacy/inc/azera-shop/css/style.css +0 -312
  30. obfx_modules/companion-legacy/inc/azera-shop/functions.php +0 -63
  31. obfx_modules/companion-legacy/inc/azera-shop/images/client-no-image.jpg +0 -0
  32. obfx_modules/companion-legacy/inc/azera-shop/images/team-img.jpg +0 -0
  33. obfx_modules/companion-legacy/inc/azera-shop/inc/settings.php +0 -207
  34. obfx_modules/companion-legacy/inc/azera-shop/inc/translations/general.php +0 -18
  35. obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-services-section.php +0 -44
  36. obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-team-section.php +0 -44
  37. obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-testimonials-section.php +0 -49
  38. obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_happy_customers_section.php +0 -126
  39. obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_our_services_section.php +0 -125
  40. obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_our_team_section.php +0 -103
  41. obfx_modules/companion-legacy/inc/azera-shop/wpml-config.xml +0 -13
  42. obfx_modules/companion-legacy/inc/hestia/common-functions.php +41 -26
  43. obfx_modules/companion-legacy/inc/hestia/functions.php +34 -28
  44. obfx_modules/companion-legacy/inc/hestia/inc/features/feature-clients-bar-section.php +17 -8
  45. obfx_modules/companion-legacy/inc/hestia/inc/features/feature-features-section.php +35 -22
  46. obfx_modules/companion-legacy/inc/hestia/inc/features/feature-ribbon-section.php +34 -20
  47. obfx_modules/companion-legacy/inc/hestia/inc/features/feature-team-section.php +36 -23
  48. obfx_modules/companion-legacy/inc/hestia/inc/features/feature-testimonials-section.php +36 -23
  49. obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-clients-bar-section.php +7 -7
  50. obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php +23 -22
  51. obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-ribbon-section.php +17 -16
  52. obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php +62 -61
  53. obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php +27 -26
  54. obfx_modules/companion-legacy/inc/llorix-one-companion/css/style.css +0 -307
  55. obfx_modules/companion-legacy/inc/llorix-one-companion/functions.php +0 -62
  56. obfx_modules/companion-legacy/inc/llorix-one-companion/images/team-img.jpg +0 -0
  57. obfx_modules/companion-legacy/inc/llorix-one-companion/inc/settings.php +0 -207
  58. obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/general.php +0 -19
  59. obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-services-section.php +0 -50
  60. obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-team-section.php +0 -45
  61. obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-testimonials-section.php +0 -48
  62. obfx_modules/companion-legacy/inc/llorix-one-companion/sections/happy-customers-section.php +0 -124
  63. obfx_modules/companion-legacy/inc/llorix-one-companion/sections/our-services-section.php +0 -133
  64. obfx_modules/companion-legacy/inc/llorix-one-companion/sections/our-team-section.php +0 -113
  65. obfx_modules/companion-legacy/inc/llorix-one-companion/wpml-config.xml +0 -13
  66. obfx_modules/companion-legacy/inc/rhea/assets/css/admin-style.css +0 -143
  67. obfx_modules/companion-legacy/inc/rhea/assets/js/fontawesome.jquery.js +0 -97
  68. obfx_modules/companion-legacy/inc/rhea/assets/js/icons.js +0 -3790
  69. obfx_modules/companion-legacy/inc/rhea/widgets/about.widget.php +0 -111
  70. obfx_modules/companion-legacy/inc/rhea/widgets/contact.widget.php +0 -89
  71. obfx_modules/companion-legacy/inc/rhea/widgets/features.widget.php +0 -96
  72. obfx_modules/companion-legacy/inc/rhea/widgets/hours.widget.php +0 -252
  73. obfx_modules/companion-legacy/inc/rhea/widgets/icon-box.widget.php +0 -104
  74. obfx_modules/companion-legacy/inc/rhea/widgets/progress-bar.widget.php +0 -78
  75. obfx_modules/companion-legacy/inc/shop-isle/class-template-loader.php +17 -13
  76. obfx_modules/companion-legacy/inc/shop-isle/content-slider.php +40 -11
  77. obfx_modules/companion-legacy/inc/shop-isle/customizer.php +409 -286
  78. obfx_modules/companion-legacy/inc/shop-isle/functions.php +4 -3
  79. obfx_modules/companion-legacy/inc/shop-isle/template-about.php +7 -7
  80. obfx_modules/companion-legacy/inc/zerif-lite/functions.php +1 -1
  81. obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-clients.php +52 -23
  82. obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-focus.php +118 -70
  83. obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-team.php +168 -90
  84. obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-testimonial.php +85 -36
  85. obfx_modules/companion-legacy/init.php +31 -174
  86. obfx_modules/elementor-widgets/init.php +3 -3
  87. obfx_modules/google-analytics/init.php +52 -35
  88. obfx_modules/gutenberg-blocks/init.php +15 -14
  89. obfx_modules/image-cdn/inc/class-orbit-fox-connector.php +0 -228
  90. obfx_modules/image-cdn/inc/class-orbit-fox-image-replacer.php +0 -707
  91. obfx_modules/image-cdn/inc/class-request.php +0 -127
  92. obfx_modules/image-cdn/init.php +0 -411
  93. obfx_modules/menu-icons/inc/class-menu-icons-obfx-walker.php +1 -1
  94. obfx_modules/menu-icons/init.php +42 -37
  95. obfx_modules/mystock-import/inc/photo.php +1 -1
  96. obfx_modules/mystock-import/inc/photos.php +1 -1
  97. obfx_modules/mystock-import/init.php +6 -6
  98. obfx_modules/policy-notice/init.php +31 -26
  99. obfx_modules/safe-updates/init.php +0 -556
  100. obfx_modules/safe-updates/js/theme-update-check.js +0 -45
  101. obfx_modules/social-sharing/init.php +97 -94
  102. obfx_modules/template-directory/init.php +9 -6
  103. obfx_modules/uptime-monitor/init.php +7 -4
  104. readme.md +8 -0
  105. readme.txt +8 -0
  106. renovate.json +0 -5
  107. themeisle-companion.php +2 -2
  108. themeisle-hash.json +0 -1
  109. vendor/autoload.php +2 -2
  110. vendor/codeinwp/elementor-extra-widgets/README.md +0 -1
  111. vendor/codeinwp/elementor-extra-widgets/class-elementor-extra-widgets.php +3 -3
  112. vendor/codeinwp/elementor-extra-widgets/widgets/elementor/posts-grid.php +109 -109
  113. vendor/codeinwp/elementor-extra-widgets/widgets/elementor/premium-placeholder.php +2 -2
  114. vendor/codeinwp/elementor-extra-widgets/widgets/elementor/pricing-table.php +106 -106
  115. vendor/codeinwp/elementor-extra-widgets/widgets/elementor/services.php +48 -48
  116. vendor/codeinwp/elementor-extra-widgets/widgets/woo/best-products.php +6 -6
  117. vendor/codeinwp/elementor-extra-widgets/widgets/woo/featured-products.php +6 -6
  118. vendor/codeinwp/elementor-extra-widgets/widgets/woo/popular-products.php +6 -6
  119. vendor/codeinwp/elementor-extra-widgets/widgets/woo/products-categories.php +6 -6
  120. vendor/codeinwp/elementor-extra-widgets/widgets/woo/recent-products.php +6 -6
  121. vendor/codeinwp/elementor-extra-widgets/widgets/woo/sale-products.php +6 -6
  122. vendor/codeinwp/elementor-extra-widgets/widgets/wp/eaw-posts-widget-plus.php +7 -7
  123. vendor/codeinwp/elementor-extra-widgets/widgets/wp/eaw-posts-widget.php +6 -6
  124. vendor/codeinwp/full-width-page-templates/README.md +0 -119
  125. vendor/codeinwp/full-width-page-templates/builders/class-elementor-full-width-templates.php +2 -2
  126. vendor/codeinwp/full-width-page-templates/builders/class-none-full-width-templates.php +2 -2
  127. vendor/codeinwp/full-width-page-templates/class-full-width-templates.php +4 -4
  128. vendor/codeinwp/gutenberg-blocks/CHANGELOG.md +24 -0
  129. vendor/codeinwp/gutenberg-blocks/Readme.md +0 -19
  130. vendor/codeinwp/gutenberg-blocks/assets/glide/glide.core.min.css +1 -0
  131. vendor/codeinwp/gutenberg-blocks/assets/glide/glide.min.js +6 -0
  132. vendor/codeinwp/gutenberg-blocks/assets/glide/glide.theme.min.css +1 -0
  133. vendor/codeinwp/gutenberg-blocks/autoloader.php +27 -22
  134. vendor/codeinwp/gutenberg-blocks/build/blocks.js +0 -1
CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
 
1
 
2
- ### v2.8.14 - 2019-12-02
 
 
 
3
  **Changes:**
4
  * Fix fatal error with Membership Pro
5
  * Various bug fixes to forms and Elementor widgets
@@ -346,4 +350,3 @@
346
  * Added simple reporting functionality.
347
  * Added support for upcoming caching, security and analytics feature.
348
  * Branded to Orbit Fox companion
349
-
1
+ #### [Version 2.9.0](https://github.com/Codeinwp/themeisle-companion/compare/v2.8.14...v2.9.0) (2020-02-03)
2
 
3
+ * Update dependencies
4
+ * Remove legacy modules
5
+
6
+ ### v2.8.14 - 2019-12-02
7
  **Changes:**
8
  * Fix fatal error with Membership Pro
9
  * Various bug fixes to forms and Elementor widgets
350
  * Added simple reporting functionality.
351
  * Added support for upcoming caching, security and analytics feature.
352
  * Branded to Orbit Fox companion
 
class-autoloader.php CHANGED
@@ -123,15 +123,15 @@ class Autoloader {
123
  $directory = new RecursiveDirectoryIterator( static::$path_top . DIRECTORY_SEPARATOR . 'core', RecursiveDirectoryIterator::SKIP_DOTS );
124
 
125
  if ( is_null( static::$file_iterator ) ) {
126
- $Iterator = new RecursiveIteratorIterator( $directory );
127
- $Regex = new RegexIterator( $Iterator, '/^.+\.php$/i', RecursiveRegexIterator::MATCH );
128
- static::$file_iterator = iterator_to_array( $Regex, false );
129
  }
130
 
131
  $filename = 'class-' . str_replace( '_', '-', strtolower( $class_name ) ) . static::$file_ext;
132
  foreach ( static::$file_iterator as $file ) {
133
  if ( strtolower( $file->getFileName() ) === strtolower( $filename ) && is_readable( $file->getPathName() ) ) {
134
- require( $file->getPathName() );
135
  return true;
136
  }
137
  }
@@ -152,7 +152,7 @@ class Autoloader {
152
  foreach ( $directories as $directory ) {
153
  $filename = $directory . DIRECTORY_SEPARATOR . 'init.php';
154
  if ( is_readable( $filename ) ) {
155
- require( $filename );
156
  return true;
157
  }
158
  }
123
  $directory = new RecursiveDirectoryIterator( static::$path_top . DIRECTORY_SEPARATOR . 'core', RecursiveDirectoryIterator::SKIP_DOTS );
124
 
125
  if ( is_null( static::$file_iterator ) ) {
126
+ $iterator = new RecursiveIteratorIterator( $directory );
127
+ $regex = new RegexIterator( $iterator, '/^.+\.php$/i', RecursiveRegexIterator::MATCH );
128
+ static::$file_iterator = iterator_to_array( $regex, false );
129
  }
130
 
131
  $filename = 'class-' . str_replace( '_', '-', strtolower( $class_name ) ) . static::$file_ext;
132
  foreach ( static::$file_iterator as $file ) {
133
  if ( strtolower( $file->getFileName() ) === strtolower( $filename ) && is_readable( $file->getPathName() ) ) {
134
+ require $file->getPathName();
135
  return true;
136
  }
137
  }
152
  foreach ( $directories as $directory ) {
153
  $filename = $directory . DIRECTORY_SEPARATOR . 'init.php';
154
  if ( is_readable( $filename ) ) {
155
+ require $filename;
156
  return true;
157
  }
158
  }
core/app/abstract/class-orbit-fox-module-abstract.php CHANGED
@@ -265,7 +265,7 @@ abstract class Orbit_Fox_Module_Abstract {
265
  * @access public
266
  * @return bool
267
  */
268
- public abstract function enable_module();
269
 
270
  /**
271
  * The method for the module load logic.
@@ -274,7 +274,7 @@ abstract class Orbit_Fox_Module_Abstract {
274
  * @access public
275
  * @return mixed
276
  */
277
- public abstract function load();
278
 
279
  /**
280
  * Method to define actions and filters needed for the module.
@@ -284,7 +284,7 @@ abstract class Orbit_Fox_Module_Abstract {
284
  * @since 1.0.0
285
  * @access public
286
  */
287
- public abstract function hooks();
288
 
289
  /**
290
  * Method to check if module status is active.
@@ -395,7 +395,7 @@ abstract class Orbit_Fox_Module_Abstract {
395
  * @access public
396
  * @return array
397
  */
398
- public abstract function options();
399
 
400
  /**
401
  * Method to retrieve an option value from model.
@@ -531,7 +531,7 @@ abstract class Orbit_Fox_Module_Abstract {
531
  * @access public
532
  * @return array
533
  */
534
- public abstract function admin_enqueue();
535
 
536
  /**
537
  * Sets the scripts for admin from the module array.
@@ -627,7 +627,7 @@ abstract class Orbit_Fox_Module_Abstract {
627
  * @access public
628
  * @return array
629
  */
630
- public abstract function public_enqueue();
631
 
632
  /**
633
  * Sets the scripts for public from the module array.
265
  * @access public
266
  * @return bool
267
  */
268
+ abstract public function enable_module();
269
 
270
  /**
271
  * The method for the module load logic.
274
  * @access public
275
  * @return mixed
276
  */
277
+ abstract public function load();
278
 
279
  /**
280
  * Method to define actions and filters needed for the module.
284
  * @since 1.0.0
285
  * @access public
286
  */
287
+ abstract public function hooks();
288
 
289
  /**
290
  * Method to check if module status is active.
395
  * @access public
396
  * @return array
397
  */
398
+ abstract public function options();
399
 
400
  /**
401
  * Method to retrieve an option value from model.
531
  * @access public
532
  * @return array
533
  */
534
+ abstract public function admin_enqueue();
535
 
536
  /**
537
  * Sets the scripts for admin from the module array.
627
  * @access public
628
  * @return array
629
  */
630
+ abstract public function public_enqueue();
631
 
632
  /**
633
  * Sets the scripts for public from the module array.
core/app/class-orbit-fox-admin.php CHANGED
@@ -144,8 +144,15 @@ class Orbit_Fox_Admin {
144
  $user_id = $current_user->ID;
145
  if ( ! get_user_meta( $user_id, 'obfx_ignore_visit_dashboard_notice' ) ) { ?>
146
  <div class="notice notice-info" style="position:relative;">
147
- <p><?php echo sprintf( __( 'You have activated Orbit Fox plugin! Go to the %s to get started with the extra features.', 'themeisle-companion' ), sprintf( '<a href="%s">%s</a>', add_query_arg( 'obfx_ignore_visit_dashboard_notice', '0', admin_url( 'admin.php?page=obfx_companion' ) ), __( 'Dashboard Page', 'themeisle-companion' ) ) ); ?></p>
148
- <a href="<?php echo add_query_arg( 'obfx_ignore_visit_dashboard_notice', '0', admin_url( 'admin.php?page=obfx_companion' ) ); ?>"
 
 
 
 
 
 
 
149
  class="notice-dismiss" style="text-decoration: none;">
150
  <span class="screen-reader-text">Dismiss this notice.</span>
151
  </a>
@@ -160,13 +167,14 @@ class Orbit_Fox_Admin {
160
  * @since 2.3.4
161
  * @access public
162
  */
163
- function visit_dashboard_notice_dismiss() {
164
  global $current_user;
165
  $user_id = $current_user->ID;
166
  // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
167
  if ( isset( $_GET['obfx_ignore_visit_dashboard_notice'] ) && '0' == $_GET['obfx_ignore_visit_dashboard_notice'] ) {
168
  add_user_meta( $user_id, 'obfx_ignore_visit_dashboard_notice', 'true', true );
169
  wp_safe_redirect( admin_url( 'admin.php?page=obfx_companion' ) );
 
170
  }
171
  }
172
 
@@ -207,7 +215,7 @@ class Orbit_Fox_Admin {
207
  * @access public
208
  */
209
  public function obfx_update_module_options() {
210
- $json = stripslashes( str_replace( '&quot;', '"', $_POST['data'] ) );
211
  $data = json_decode( $json, true );
212
  $response['type'] = 'error';
213
  $response['message'] = __( 'Could not process the request!', 'themeisle-companion' );
@@ -308,7 +316,7 @@ class Orbit_Fox_Admin {
308
  esc_attr( $name ),
309
  esc_attr( $desc ),
310
  esc_url( $url ),
311
- __( 'Install', 'themeisle-companion' )
312
  );
313
  }
314
 
@@ -322,7 +330,7 @@ class Orbit_Fox_Admin {
322
  * @return array|mixed|object|WP_Error
323
  */
324
  public function call_plugin_api( $slug ) {
325
- include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
326
 
327
  $call_api = get_transient( 'ti_plugin_info_' . $slug );
328
 
@@ -367,7 +375,7 @@ class Orbit_Fox_Admin {
367
  * @access public
368
  */
369
  public function obfx_update_module_active_status() {
370
- $json = stripslashes( str_replace( '&quot;', '"', $_POST['data'] ) );
371
  $data = json_decode( $json, true );
372
  $response['type'] = 'error';
373
  $response['message'] = __( 'Could not process the request!', 'themeisle-companion' );
@@ -480,7 +488,7 @@ class Orbit_Fox_Admin {
480
  $checked = 'checked';
481
  }
482
 
483
- $data = array(
484
  'slug' => $slug,
485
  'name' => $module->name,
486
  'description' => $module->description,
@@ -546,7 +554,7 @@ class Orbit_Fox_Admin {
546
  'panels' => $panels,
547
  );
548
  $output = $rdh->get_view( 'modules', $data );
549
- echo $output;
550
  }
551
 
552
  }
144
  $user_id = $current_user->ID;
145
  if ( ! get_user_meta( $user_id, 'obfx_ignore_visit_dashboard_notice' ) ) { ?>
146
  <div class="notice notice-info" style="position:relative;">
147
+ <p>
148
+ <?php
149
+ /*
150
+ * translators: Go to url.
151
+ */
152
+ echo sprintf( esc_attr__( 'You have activated Orbit Fox plugin! Go to the %s to get started with the extra features.', 'themeisle-companion' ), sprintf( '<a href="%s">%s</a>', esc_url( add_query_arg( 'obfx_ignore_visit_dashboard_notice', '0', admin_url( 'admin.php?page=obfx_companion' ) ) ), esc_attr__( 'Dashboard Page', 'themeisle-companion' ) ) );
153
+ ?>
154
+ </p>
155
+ <a href="<?php echo esc_url( add_query_arg( 'obfx_ignore_visit_dashboard_notice', '0', admin_url( 'admin.php?page=obfx_companion' ) ) ); ?>"
156
  class="notice-dismiss" style="text-decoration: none;">
157
  <span class="screen-reader-text">Dismiss this notice.</span>
158
  </a>
167
  * @since 2.3.4
168
  * @access public
169
  */
170
+ public function visit_dashboard_notice_dismiss() {
171
  global $current_user;
172
  $user_id = $current_user->ID;
173
  // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
174
  if ( isset( $_GET['obfx_ignore_visit_dashboard_notice'] ) && '0' == $_GET['obfx_ignore_visit_dashboard_notice'] ) {
175
  add_user_meta( $user_id, 'obfx_ignore_visit_dashboard_notice', 'true', true );
176
  wp_safe_redirect( admin_url( 'admin.php?page=obfx_companion' ) );
177
+ exit;
178
  }
179
  }
180
 
215
  * @access public
216
  */
217
  public function obfx_update_module_options() {
218
+ $json = stripslashes( str_replace( '&quot;', '"', $_POST['data'] ) ); //phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotValidated, WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized
219
  $data = json_decode( $json, true );
220
  $response['type'] = 'error';
221
  $response['message'] = __( 'Could not process the request!', 'themeisle-companion' );
316
  esc_attr( $name ),
317
  esc_attr( $desc ),
318
  esc_url( $url ),
319
+ esc_attr__( 'Install', 'themeisle-companion' )
320
  );
321
  }
322
 
330
  * @return array|mixed|object|WP_Error
331
  */
332
  public function call_plugin_api( $slug ) {
333
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
334
 
335
  $call_api = get_transient( 'ti_plugin_info_' . $slug );
336
 
375
  * @access public
376
  */
377
  public function obfx_update_module_active_status() {
378
+ $json = stripslashes( str_replace( '&quot;', '"', $_POST['data'] ) ); //phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotValidated, WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized
379
  $data = json_decode( $json, true );
380
  $response['type'] = 'error';
381
  $response['message'] = __( 'Could not process the request!', 'themeisle-companion' );
488
  $checked = 'checked';
489
  }
490
 
491
+ $data = array(
492
  'slug' => $slug,
493
  'name' => $module->name,
494
  'description' => $module->description,
554
  'panels' => $panels,
555
  );
556
  $output = $rdh->get_view( 'modules', $data );
557
+ echo $output; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
558
  }
559
 
560
  }
core/app/class-orbit-fox-global-settings.php CHANGED
@@ -57,7 +57,7 @@ class Orbit_Fox_Global_Settings {
57
  */
58
  public static function instance() {
59
  if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Orbit_Fox_Global_Settings ) ) {
60
- self::$instance = new Orbit_Fox_Global_Settings;
61
  self::$instance->modules = apply_filters(
62
  'obfx_modules',
63
  array(
@@ -72,7 +72,6 @@ class Orbit_Fox_Global_Settings {
72
  'mystock-import',
73
  'policy-notice',
74
  'beaver-widgets',
75
- 'image-cdn',
76
  )
77
  );
78
  }// End if().
57
  */
58
  public static function instance() {
59
  if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Orbit_Fox_Global_Settings ) ) {
60
+ self::$instance = new Orbit_Fox_Global_Settings();
61
  self::$instance->modules = apply_filters(
62
  'obfx_modules',
63
  array(
72
  'mystock-import',
73
  'policy-notice',
74
  'beaver-widgets',
 
75
  )
76
  );
77
  }// End if().
core/app/class-orbit-fox-module-factory.php CHANGED
@@ -30,7 +30,7 @@ class Orbit_Fox_Module_Factory {
30
  public static function build( $module_name ) {
31
  $module = str_replace( '-', '_', ucwords( $module_name ) ) . '_OBFX_Module';
32
  if ( class_exists( $module ) ) {
33
- return new $module;
34
  }
35
  // @codeCoverageIgnoreStart
36
  throw new Exception( 'Invalid module name given.' );
30
  public static function build( $module_name ) {
31
  $module = str_replace( '-', '_', ucwords( $module_name ) ) . '_OBFX_Module';
32
  if ( class_exists( $module ) ) {
33
+ return new $module();
34
  }
35
  // @codeCoverageIgnoreStart
36
  throw new Exception( 'Invalid module name given.' );
core/app/helpers/class-orbit-fox-render-helper.php CHANGED
@@ -332,7 +332,10 @@ class Orbit_Fox_Render_Helper {
332
  * @return mixed
333
  */
334
  private function field_radio( $option = array() ) {
335
- $field_value = $this->set_field_value( $option );
 
 
 
336
  $select_options = '';
337
  foreach ( $option['options'] as $value => $label ) {
338
  $checked = '';
332
  * @return mixed
333
  */
334
  private function field_radio( $option = array() ) {
335
+ $field_value = $this->set_field_value( $option );
336
+ if ( is_numeric( $field_value ) ) {
337
+ $field_value = (int) $field_value;
338
+ }
339
  $select_options = '';
340
  foreach ( $option['options'] as $value => $label ) {
341
  $checked = '';
core/app/views/modules-page.php CHANGED
@@ -13,7 +13,6 @@
13
  if ( ! isset( $no_modules ) ) {
14
  $no_modules = true;
15
  }
16
-
17
  if ( ! isset( $empty_tpl ) ) {
18
  $empty_tpl = '';
19
  }
@@ -42,21 +41,21 @@ if ( isset( $_GET['show_plugins'] ) && $_GET['show_plugins'] === 'yes' ) {
42
  ?>
43
  <div class="obfx-wrapper obfx-header">
44
  <div class="obfx-header-content">
45
- <img src="<?php echo OBFX_URL; ?>/images/orbit-fox.png" title="Orbit Fox" class="obfx-logo"/>
46
- <h1><?php echo __( 'Orbit Fox', 'themeisle-companion' ); ?></h1><span class="powered"> by <a
47
  href="https://themeisle.com" target="_blank"><b>ThemeIsle</b></a></span>
48
  </div>
49
  </div>
50
  <div id="obfx-wrapper" style="padding: 0; margin-top: 10px; margin-bottom: 5px;">
51
  <?php
52
- echo $toasts;
53
  ?>
54
  </div>
55
  <div class="obfx-full-page-container">
56
  <div class="obfx-wrapper" id="obfx-modules-wrapper">
57
  <?php
58
  if ( $no_modules ) {
59
- echo $empty_tpl;
60
  } else {
61
  ?>
62
  <div class="panel">
@@ -68,9 +67,9 @@ if ( isset( $_GET['show_plugins'] ) && $_GET['show_plugins'] === 'yes' ) {
68
  <?php
69
  echo esc_url( admin_url( 'admin.php?page=obfx_companion' ) );
70
  ?>
71
- "><?php echo __( 'Available Modules', 'themeisle-companion' ); ?></a></li>
72
  <li class="<?php echo $current_tab === 'plugins' ? 'obfx-tab-active' : ''; ?>">
73
- <a href="<?php echo esc_url( admin_url( 'admin.php?page=obfx_companion&show_plugins=yes' ) ); ?>"><?php echo __( 'Recommended Plugins', 'themeisle-companion' ); ?></a>
74
  </li>
75
  </ul>
76
  </div>
@@ -78,7 +77,7 @@ if ( isset( $_GET['show_plugins'] ) && $_GET['show_plugins'] === 'yes' ) {
78
  <div class="panel-body">
79
 
80
  <?php if ( $current_tab === 'modules' ) { ?>
81
- <?php echo $tiles; ?>
82
  <?php } ?>
83
  <?php if ( $current_tab === 'plugins' ) { ?>
84
  <?php do_action( 'obfx_recommended_plugins' ); ?>
@@ -90,9 +89,9 @@ if ( isset( $_GET['show_plugins'] ) && $_GET['show_plugins'] === 'yes' ) {
90
  </div>
91
  <div class="panel" <?php echo $current_tab === 'plugins' ? 'style="display:none"' : ''; ?>>
92
  <div class="panel-header text-center">
93
- <div class="panel-title mt-10"><?php echo __( 'Activated Modules Options', 'themeisle-companion' ); ?></div>
94
  </div>
95
- <?php echo ( $panels === '' ) ? '<p class="text-center">' . __( 'No modules activated.', 'themeisle-companion' ) . '</p>' : $panels; ?>
96
  </div>
97
  <?php
98
  }
13
  if ( ! isset( $no_modules ) ) {
14
  $no_modules = true;
15
  }
 
16
  if ( ! isset( $empty_tpl ) ) {
17
  $empty_tpl = '';
18
  }
41
  ?>
42
  <div class="obfx-wrapper obfx-header">
43
  <div class="obfx-header-content">
44
+ <img src="<?php echo esc_url( OBFX_URL ); ?>/images/orbit-fox.png" title="Orbit Fox" class="obfx-logo"/>
45
+ <h1><?php esc_attr_e( 'Orbit Fox', 'themeisle-companion' ); ?></h1><span class="powered"> by <a
46
  href="https://themeisle.com" target="_blank"><b>ThemeIsle</b></a></span>
47
  </div>
48
  </div>
49
  <div id="obfx-wrapper" style="padding: 0; margin-top: 10px; margin-bottom: 5px;">
50
  <?php
51
+ echo wp_kses_post( $toasts );
52
  ?>
53
  </div>
54
  <div class="obfx-full-page-container">
55
  <div class="obfx-wrapper" id="obfx-modules-wrapper">
56
  <?php
57
  if ( $no_modules ) {
58
+ echo wp_kses_post( $empty_tpl );
59
  } else {
60
  ?>
61
  <div class="panel">
67
  <?php
68
  echo esc_url( admin_url( 'admin.php?page=obfx_companion' ) );
69
  ?>
70
+ "><?php echo esc_attr__( 'Available Modules', 'themeisle-companion' ); ?></a></li>
71
  <li class="<?php echo $current_tab === 'plugins' ? 'obfx-tab-active' : ''; ?>">
72
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=obfx_companion&show_plugins=yes' ) ); ?>"><?php echo esc_attr__( 'Recommended Plugins', 'themeisle-companion' ); ?></a>
73
  </li>
74
  </ul>
75
  </div>
77
  <div class="panel-body">
78
 
79
  <?php if ( $current_tab === 'modules' ) { ?>
80
+ <?php echo ( $tiles ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
81
  <?php } ?>
82
  <?php if ( $current_tab === 'plugins' ) { ?>
83
  <?php do_action( 'obfx_recommended_plugins' ); ?>
89
  </div>
90
  <div class="panel" <?php echo $current_tab === 'plugins' ? 'style="display:none"' : ''; ?>>
91
  <div class="panel-header text-center">
92
+ <div class="panel-title mt-10"><?php echo esc_attr( 'Activated Modules Options', 'themeisle-companion' ); ?></div>
93
  </div>
94
+ <?php echo ( $panels === '' ) ? '<p class="text-center">' . esc_attr__( 'No modules activated.', 'themeisle-companion' ) . '</p>' : ( $panels ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
95
  </div>
96
  <?php
97
  }
core/app/views/partials/empty-tpl.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  if ( ! isset( $title ) ) {
14
- $title = __( 'There are no modules for the Fox!', 'themeisle-companion' );
15
  }
16
 
17
  if ( ! isset( $btn_text ) ) {
@@ -27,13 +27,13 @@ if ( ! isset( $show_btn ) ) {
27
  <div class="empty-icon">
28
  <i class="dashicons dashicons-warning" style="width: 48px; height: 48px; font-size: 48px; "></i>
29
  </div>
30
- <h4 class="empty-title"><?php echo $title; ?></h4>
31
- <?php echo ( isset( $sub_title ) ) ? '<p class="empty-subtitle">' . $sub_title . '</p>' : ''; ?>
32
  <?php
33
  if ( $show_btn ) {
34
  ?>
35
  <div class="empty-action">
36
- <button class="btn btn-primary"><?php echo $btn_text; ?></button>
37
  </div>
38
  <?php
39
  }
11
  */
12
 
13
  if ( ! isset( $title ) ) {
14
+ $title = __( 'There are no modules for the Fox!', 'themeisle-companion' ); //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
15
  }
16
 
17
  if ( ! isset( $btn_text ) ) {
27
  <div class="empty-icon">
28
  <i class="dashicons dashicons-warning" style="width: 48px; height: 48px; font-size: 48px; "></i>
29
  </div>
30
+ <h4 class="empty-title"><?php echo wp_kses_post( $title ); ?></h4>
31
+ <?php echo ( isset( $sub_title ) ) ? '<p class="empty-subtitle">' . wp_kses_post( $sub_title ) . '</p>' : ''; ?>
32
  <?php
33
  if ( $show_btn ) {
34
  ?>
35
  <div class="empty-action">
36
+ <button class="btn btn-primary"><?php echo wp_kses_post( $btn_text ); ?></button>
37
  </div>
38
  <?php
39
  }
core/app/views/partials/module-panel-tpl.php CHANGED
@@ -41,28 +41,28 @@ if ( isset( $show ) && $show ) {
41
  $btn_class = 'active';
42
 
43
  }
44
- $styles = sprintf( 'style="%s"', implode( ':', $styles ) );
45
 
46
  ?>
47
- <div id="obfx-mod-<?php echo $slug; ?>" class="panel options <?php echo esc_attr( $btn_class ); ?>" <?php echo $styles; ?>>
48
  <div class="panel-header">
49
  <button class="btn btn-action circle btn-expand <?php echo esc_attr( $btn_class ); ?>"
50
  style="float: right; margin-right: 10px;">
51
  <i class="dashicons dashicons-arrow-down-alt2"></i>
52
  </button>
53
- <div class="panel-title"><?php echo $name; ?></div>
54
- <div class="panel-subtitle"><?php echo $description; ?></div>
55
  <div class="obfx-mod-toast toast" style="display: none;">
56
  <button class="obfx-toast-dismiss btn btn-clear float-right"></button>
57
  <span>Mock text for Toast Element</span>
58
  </div>
59
  </div>
60
- <form id="obfx-module-form-<?php echo $slug; ?>" class="obfx-module-form <?php echo esc_attr( $btn_class ); ?> ">
61
- <fieldset <?php echo $disabled_fields; ?> >
62
- <input type="hidden" name="module-slug" value="<?php echo $slug; ?>">
63
- <input type="hidden" name="noance" value="<?php echo $noance; ?>">
64
  <div class="panel-body">
65
- <?php echo $options_fields; ?>
66
  <div class="divider"></div>
67
  </div>
68
  <?php if ( isset( $no_save ) && $no_save === false ) : ?>
41
  $btn_class = 'active';
42
 
43
  }
44
+ $styles = sprintf( 'style="%s"', esc_attr( implode( ':', $styles ) ) );
45
 
46
  ?>
47
+ <div id="obfx-mod-<?php echo esc_attr( $slug ); ?>" class="panel options <?php echo esc_attr( $btn_class ); ?>" <?php echo ( $styles ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
48
  <div class="panel-header">
49
  <button class="btn btn-action circle btn-expand <?php echo esc_attr( $btn_class ); ?>"
50
  style="float: right; margin-right: 10px;">
51
  <i class="dashicons dashicons-arrow-down-alt2"></i>
52
  </button>
53
+ <div class="panel-title"><?php echo wp_kses_post( $name ); ?></div>
54
+ <div class="panel-subtitle"><?php echo wp_kses_post( $description ); ?></div>
55
  <div class="obfx-mod-toast toast" style="display: none;">
56
  <button class="obfx-toast-dismiss btn btn-clear float-right"></button>
57
  <span>Mock text for Toast Element</span>
58
  </div>
59
  </div>
60
+ <form id="obfx-module-form-<?php echo esc_attr( $slug ); ?>" class="obfx-module-form <?php echo esc_attr( $btn_class ); ?> ">
61
+ <fieldset <?php echo esc_attr( $disabled_fields ); ?> >
62
+ <input type="hidden" name="module-slug" value="<?php echo esc_attr( $slug ); ?>">
63
+ <input type="hidden" name="noance" value="<?php echo esc_attr( $noance ); ?>">
64
  <div class="panel-body">
65
+ <?php echo ( $options_fields ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
66
  <div class="divider"></div>
67
  </div>
68
  <?php if ( isset( $no_save ) && $no_save === false ) : ?>
core/app/views/partials/module-tile-tpl.php CHANGED
@@ -30,7 +30,7 @@ $toggle_class = 'obfx-mod-switch';
30
  if ( ! empty( $confirm_intent ) ) {
31
 
32
  $toggle_class .= ' obfx-mod-confirm-intent';
33
- $modal = '
34
  <div id="' . esc_attr( $slug ) . '" class="modal">
35
  <a href="#close" class="close-confirm-intent modal-overlay" aria-label="Close"></a>
36
  <div class="modal-container">
@@ -55,25 +55,25 @@ $noance = wp_create_nonce( 'obfx_activate_mod_' . $slug );
55
  </div>
56
  </div>
57
  <div class="tile-content">
58
- <p class="tile-title"><?php echo $name; ?></p>
59
- <p class="tile-subtitle"><?php echo $description; ?></p>
60
  </div>
61
  <div class="tile-action">
62
  <div class="form-group">
63
  <label class="form-switch <?php echo empty( $checked ) ? '' : 'activated'; ?>">
64
- <input class="<?php echo esc_attr( $toggle_class ); ?>" type="checkbox" name="<?php echo $slug; ?>"
65
- value="<?php echo $noance; ?>" <?php echo $checked; ?> >
66
  <i class="form-icon"></i>
67
- <span class="inactive"><?php echo __( 'Activate', 'themeisle-companion' ); ?></span>
68
  <i class="dashicons dashicons-yes"></i>
69
 
70
  </label>
71
  <?php if ( $beta ) { ?>
72
- <p class="obfx-beta-module"><?php echo __( 'Beta module', 'themeisle-companion' ); ?></p>
73
  <?php } ?>
74
  <?php
75
  if ( ! empty( $modal ) ) {
76
- echo wp_kses_post( $modal );
77
  }
78
  ?>
79
  <?php do_action( 'obfx_activate_btn_before', $slug, $checked === 'checked' ); ?>
30
  if ( ! empty( $confirm_intent ) ) {
31
 
32
  $toggle_class .= ' obfx-mod-confirm-intent';
33
+ $modal = '
34
  <div id="' . esc_attr( $slug ) . '" class="modal">
35
  <a href="#close" class="close-confirm-intent modal-overlay" aria-label="Close"></a>
36
  <div class="modal-container">
55
  </div>
56
  </div>
57
  <div class="tile-content">
58
+ <p class="tile-title"><?php echo wp_kses_post( $name ); ?></p>
59
+ <p class="tile-subtitle"><?php echo wp_kses_post( $description ); ?></p>
60
  </div>
61
  <div class="tile-action">
62
  <div class="form-group">
63
  <label class="form-switch <?php echo empty( $checked ) ? '' : 'activated'; ?>">
64
+ <input class="<?php echo esc_attr( $toggle_class ); ?>" type="checkbox" name="<?php echo esc_attr( $slug ); ?>"
65
+ value="<?php echo esc_attr( $noance ); ?>" <?php echo esc_attr( $checked ); ?> >
66
  <i class="form-icon"></i>
67
+ <span class="inactive"><?php esc_attr_e( 'Activate', 'themeisle-companion' ); ?></span>
68
  <i class="dashicons dashicons-yes"></i>
69
 
70
  </label>
71
  <?php if ( $beta ) { ?>
72
+ <p class="obfx-beta-module"><?php esc_attr_e( 'Beta module', 'themeisle-companion' ); ?></p>
73
  <?php } ?>
74
  <?php
75
  if ( ! empty( $modal ) ) {
76
+ echo ( $modal ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
77
  }
78
  ?>
79
  <?php do_action( 'obfx_activate_btn_before', $slug, $checked === 'checked' ); ?>
core/app/views/partials/module-toast-tpl.php CHANGED
@@ -11,8 +11,8 @@
11
  */
12
 
13
  ?>
14
- <div class="obfx-mod-toast toast toast-<?php echo $notice['type']; ?>">
15
  <button class="obfx-toast-dismiss btn btn-clear float-right"></button>
16
- <b><?php echo $notice['title']; ?></b><br/>
17
- <span><?php echo $notice['message']; ?></span>
18
  </div>
11
  */
12
 
13
  ?>
14
+ <div class="obfx-mod-toast toast toast-<?php echo esc_attr( $notice['type'] ); ?>">
15
  <button class="obfx-toast-dismiss btn btn-clear float-right"></button>
16
+ <b><?php echo wp_kses_post( $notice['title'] ); ?></b><br/>
17
+ <span><?php echo wp_kses_post( $notice['message'] ); ?></span>
18
  </div>
core/assets/css/orbit-fox-admin.css CHANGED
@@ -3077,7 +3077,7 @@ html {
3077
 
3078
  .obfx-wrapper .tile .dashicons {
3079
  transition: none;
3080
- line-height: 0.5;
3081
  }
3082
 
3083
  .obfx-wrapper .tile .tile-content {
@@ -3875,7 +3875,7 @@ ul.obfx-menu-tabs{
3875
  background: #5764c6;
3876
  text-decoration: none;
3877
  padding: 10px 40px;
3878
- line-height: 7px;
3879
  box-shadow: none;
3880
  text-shadow: none;
3881
  }
3077
 
3078
  .obfx-wrapper .tile .dashicons {
3079
  transition: none;
3080
+ line-height: 1;
3081
  }
3082
 
3083
  .obfx-wrapper .tile .tile-content {
3875
  background: #5764c6;
3876
  text-decoration: none;
3877
  padding: 10px 40px;
3878
+ line-height: 15px;
3879
  box-shadow: none;
3880
  text-shadow: none;
3881
  }
core/includes/class-orbit-fox-neve-dropin.php CHANGED
@@ -46,8 +46,8 @@ class Orbit_Fox_Neve_Dropin {
46
  * Drop-in actions
47
  */
48
  public function init() {
49
- add_action( 'admin_notices', array( $this, 'admin_notice' ), defined( 'PHP_INT_MIN' ) ? PHP_INT_MIN : 99999 );
50
- add_action( 'admin_init', array( $this, 'remove_notice' ), defined( 'PHP_INT_MIN' ) ? PHP_INT_MIN : 99999 );
51
  }
52
 
53
  /**
@@ -63,7 +63,7 @@ class Orbit_Fox_Neve_Dropin {
63
  if ( ! isset( $_GET['remove_upsell'] ) ) {
64
  return;
65
  }
66
- if ( ! wp_verify_nonce( $_GET['remove_upsell'], 'remove_upsell_confirmation' ) ) {
67
  return;
68
  }
69
  update_option( self::$dismiss_key, 'yes' );
@@ -99,7 +99,7 @@ class Orbit_Fox_Neve_Dropin {
99
  return;
100
  }
101
 
102
- if ( ( $expiration = get_option( self::$dismiss_key . '_exp', '' ) ) === '' ) {
103
  update_option( self::$dismiss_key . '_exp', time() );
104
  }
105
 
@@ -139,7 +139,7 @@ class Orbit_Fox_Neve_Dropin {
139
  <a href="<?php echo esc_url( admin_url( 'theme-install.php?theme=neve' ) ); ?>" target="_blank"
140
  class="button neve-upsell-try button-primary"><span class="dashicons dashicons-external"></span>Get
141
  started</a></p>
142
- <a href="<?php echo wp_nonce_url( add_query_arg( array( self::$dismiss_key => 'yes' ) ), 'remove_upsell_confirmation', 'remove_upsell' ); ?>"
143
  class=" notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></a>
144
  </div>
145
  <?php
46
  * Drop-in actions
47
  */
48
  public function init() {
49
+ add_action( 'admin_notices', array( $this, 'admin_notice' ), defined( 'PHP_INT_MIN' ) ? PHP_INT_MIN : 99999 ); //phpcs:ignore PHPCompatibility.Constants.NewConstants.php_int_minFound
50
+ add_action( 'admin_init', array( $this, 'remove_notice' ), defined( 'PHP_INT_MIN' ) ? PHP_INT_MIN : 99999 ); //phpcs:ignore PHPCompatibility.Constants.NewConstants.php_int_minFound
51
  }
52
 
53
  /**
63
  if ( ! isset( $_GET['remove_upsell'] ) ) {
64
  return;
65
  }
66
+ if ( ! wp_verify_nonce( $_GET['remove_upsell'], 'remove_upsell_confirmation' ) ) { //phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized
67
  return;
68
  }
69
  update_option( self::$dismiss_key, 'yes' );
99
  return;
100
  }
101
 
102
+ if ( ( $expiration = get_option( self::$dismiss_key . '_exp', '' ) ) === '' ) { //phpcs:ignore Squiz.PHP.DisallowMultipleAssignments.FoundInControlStructure
103
  update_option( self::$dismiss_key . '_exp', time() );
104
  }
105
 
139
  <a href="<?php echo esc_url( admin_url( 'theme-install.php?theme=neve' ) ); ?>" target="_blank"
140
  class="button neve-upsell-try button-primary"><span class="dashicons dashicons-external"></span>Get
141
  started</a></p>
142
+ <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( self::$dismiss_key => 'yes' ) ), 'remove_upsell_confirmation', 'remove_upsell' ) ); ?>"
143
  class=" notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></a>
144
  </div>
145
  <?php
core/includes/class-orbit-fox.php CHANGED
@@ -69,7 +69,7 @@ class Orbit_Fox {
69
 
70
  $this->plugin_name = 'orbit-fox';
71
 
72
- $this->version = '2.8.14';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
@@ -96,6 +96,7 @@ class Orbit_Fox {
96
  */
97
  private function load_dependencies() {
98
  $this->loader = new Orbit_Fox_Loader();
 
99
  }
100
 
101
  /**
@@ -145,8 +146,8 @@ class Orbit_Fox {
145
  /**
146
  * The reference to the class that orchestrates the hooks with the plugin.
147
  *
148
- * @since 1.0.0
149
  * @return Orbit_Fox_Loader Orchestrates the hooks of the plugin.
 
150
  */
151
  public function get_loader() {
152
  return $this->loader;
@@ -155,8 +156,8 @@ class Orbit_Fox {
155
  /**
156
  * Retrieve the version number of the plugin.
157
  *
158
- * @since 1.0.0
159
  * @return string The version number of the plugin.
 
160
  */
161
  public function get_version() {
162
  return $this->version;
@@ -189,6 +190,8 @@ class Orbit_Fox {
189
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
190
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
191
 
 
 
192
  $this->loader->add_action( 'init', Orbit_Fox_Neve_Dropin::instance(), 'init' );
193
 
194
  // Fix update checks on themeisle.com for non-premium themes
@@ -206,12 +209,43 @@ class Orbit_Fox {
206
 
207
  }
208
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  /**
210
  * The name of the plugin used to uniquely identify it within the context of
211
  * WordPress and to define internationalization functionality.
212
  *
213
- * @since 1.0.0
214
  * @return string The name of the plugin.
 
215
  */
216
  public function get_plugin_name() {
217
  return $this->plugin_name;
69
 
70
  $this->plugin_name = 'orbit-fox';
71
 
72
+ $this->version = '2.9.0';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
96
  */
97
  private function load_dependencies() {
98
  $this->loader = new Orbit_Fox_Loader();
99
+
100
  }
101
 
102
  /**
146
  /**
147
  * The reference to the class that orchestrates the hooks with the plugin.
148
  *
 
149
  * @return Orbit_Fox_Loader Orchestrates the hooks of the plugin.
150
+ * @since 1.0.0
151
  */
152
  public function get_loader() {
153
  return $this->loader;
156
  /**
157
  * Retrieve the version number of the plugin.
158
  *
 
159
  * @return string The version number of the plugin.
160
+ * @since 1.0.0
161
  */
162
  public function get_version() {
163
  return $this->version;
190
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
191
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
192
 
193
+ $this->loader->add_action( 'after_setup_theme', $this, 'load_onboarding', 999999 );
194
+
195
  $this->loader->add_action( 'init', Orbit_Fox_Neve_Dropin::instance(), 'init' );
196
 
197
  // Fix update checks on themeisle.com for non-premium themes
209
 
210
  }
211
 
212
+ /**
213
+ * Load onboarding, if missing.
214
+ */
215
+ public function load_onboarding() {
216
+ if ( defined( 'TI_ONBOARDING_DISABLED' ) ) {
217
+ return;
218
+ }
219
+ $theme_support = get_theme_support( 'themeisle-demo-import' );
220
+
221
+ if ( empty( $theme_support ) ) {
222
+ return;
223
+ }
224
+
225
+ $library = OBX_PATH . '/vendor/codeinwp/ti-onboarding/load.php';
226
+
227
+ if ( ! is_file( $library ) ) {
228
+ return;
229
+ }
230
+ require_once $library;
231
+
232
+ add_filter(
233
+ 'themeisle_site_import_uri',
234
+ function () {
235
+ return OBFX_URL . Themeisle_Onboarding::OBOARDING_PATH;
236
+ }
237
+ );
238
+
239
+ \Themeisle_Onboarding::instance();
240
+
241
+ }
242
+
243
  /**
244
  * The name of the plugin used to uniquely identify it within the context of
245
  * WordPress and to define internationalization functionality.
246
  *
 
247
  * @return string The name of the plugin.
248
+ * @since 1.0.0
249
  */
250
  public function get_plugin_name() {
251
  return $this->plugin_name;
obfx_modules/beaver-widgets/custom-fields/number-field/number_field.php CHANGED
@@ -11,7 +11,7 @@
11
  function obfx_number_field( $name, $value, $field ) {
12
  $min = ! empty( $field['min'] ) ? 'min="' . esc_attr( $field['min'] ) . '"' : '';
13
  $max = ! empty( $field['max'] ) ? 'max="' . esc_attr( $field['max'] ) . '"' : ''; ?>
14
- <input type="number" value="<?php echo esc_attr( $value ); ?>" name="<?php echo esc_attr( $name ); ?>" class="obfx-number-field" <?php echo $min; ?> <?php echo $max; ?> />
15
  <?php
16
  }
17
 
11
  function obfx_number_field( $name, $value, $field ) {
12
  $min = ! empty( $field['min'] ) ? 'min="' . esc_attr( $field['min'] ) . '"' : '';
13
  $max = ! empty( $field['max'] ) ? 'max="' . esc_attr( $field['max'] ) . '"' : ''; ?>
14
+ <input type="number" value="<?php echo esc_attr( $value ); ?>" name="<?php echo esc_attr( $name ); ?>" class="obfx-number-field" <?php echo esc_attr( $min ); ?> <?php echo esc_attr( $max ); ?> />
15
  <?php
16
  }
17
 
obfx_modules/beaver-widgets/inc/common-functions.php CHANGED
@@ -9,7 +9,7 @@
9
  $module_directory = $this->get_dir();
10
 
11
  // Require custom field.
12
- require_once( $module_directory . '/custom-fields/number-field/number_field.php' );
13
 
14
  /**
15
  * Function to return padding controls.
@@ -20,34 +20,34 @@ require_once( $module_directory . '/custom-fields/number-field/number_field.php'
20
  */
21
  function themeisle_four_fields_control( $settings ) {
22
  $default = $settings['default'];
23
- $prefix = $settings['field_name_prefix'];
24
- $type = ! empty( $settings['type'] ) ? $settings['type'] : 'padding';
25
  return array(
26
  'title' => $type === 'margin' ? esc_html__( 'Margins', 'themeisle-companion' ) : esc_html__( 'Padding', 'themeisle-companion' ),
27
  'fields' => array(
28
- $prefix . 'top' => array(
29
  'type' => 'obfx_number',
30
- 'label' => esc_html__( 'Top', 'themeisle-companion' ),
31
  'description' => esc_html__( 'px', 'themeisle-companion' ),
32
- 'default' => $default['top'],
33
  ),
34
  $prefix . 'bottom' => array(
35
  'type' => 'obfx_number',
36
- 'label' => esc_html__( 'Bottom', 'themeisle-companion' ),
37
  'description' => esc_html__( 'px', 'themeisle-companion' ),
38
- 'default' => $default['bottom'],
39
  ),
40
- $prefix . 'left' => array(
41
  'type' => 'obfx_number',
42
- 'label' => esc_html__( 'Left', 'themeisle-companion' ),
43
  'description' => esc_html__( 'px', 'themeisle-companion' ),
44
- 'default' => $default['left'],
45
  ),
46
- $prefix . 'right' => array(
47
  'type' => 'obfx_number',
48
- 'label' => esc_html__( 'Right', 'themeisle-companion' ),
49
  'description' => esc_html__( 'px', 'themeisle-companion' ),
50
- 'default' => $default['right'],
51
  ),
52
  ),
53
  );
@@ -61,55 +61,55 @@ function themeisle_four_fields_control( $settings ) {
61
  * @return array
62
  */
63
  function themeisle_typography_settings( $settings ) {
64
- $title = ! empty( $settings['title'] ) ? $settings['title'] : esc_html__( 'Typography', 'themeisle-companion' );
65
- $prefix = $settings['prefix'];
66
  $font_default = ! empty( $settings['font_size_default'] ) ? $settings['font_size_default'] : '';
67
  return array(
68
- 'title' => $title,
69
  'fields' => array(
70
- $prefix . 'font_size' => array(
71
  'type' => 'obfx_number',
72
- 'label' => esc_html__( 'Font size', 'themeisle-companion' ),
73
  'description' => esc_html__( 'px', 'themeisle-companion' ),
74
- 'default' => $font_default,
75
  ),
76
- $prefix . 'font_family' => array(
77
- 'type' => 'font',
78
- 'label' => esc_html__( 'Font family', 'themeisle-companion' ),
79
- 'default' => array(
80
- 'family' => 'Roboto',
81
- 'weight' => 300,
82
  ),
83
  ),
84
- $prefix . 'transform' => array(
85
  'type' => 'select',
86
  'label' => esc_html__( 'Transform', 'themeisle-companion' ),
87
  'default' => 'none',
88
  'options' => array(
89
- 'none' => esc_html__( 'None', 'themeisle-companion' ),
90
  'capitalize' => esc_html__( 'Capitalize', 'themeisle-companion' ),
91
- 'uppercase' => esc_html__( 'Uppercase', 'themeisle-companion' ),
92
- 'lowercase' => esc_html__( 'Lowercase', 'themeisle-companion' ),
93
  ),
94
  ),
95
- $prefix . 'font_style' => array(
96
  'type' => 'select',
97
  'label' => esc_html__( 'Font style', 'themeisle-companion' ),
98
  'default' => 'normal',
99
  'options' => array(
100
- 'normal' => esc_html__( 'Normal', 'themeisle-companion' ),
101
- 'italic' => esc_html__( 'Italic', 'themeisle-companion' ),
102
  'oblique' => esc_html__( 'Oblique', 'themeisle-companion' ),
103
  ),
104
  ),
105
- $prefix . 'line_height' => array(
106
  'type' => 'obfx_number',
107
- 'label' => esc_html__( 'Line height', 'themeisle-companion' ),
108
  'description' => esc_html__( 'px', 'themeisle-companion' ),
109
  ),
110
  $prefix . 'letter_spacing' => array(
111
  'type' => 'obfx_number',
112
- 'label' => esc_html__( 'Letter spacing', 'themeisle-companion' ),
113
  'description' => esc_html__( 'px', 'themeisle-companion' ),
114
  ),
115
  ),
9
  $module_directory = $this->get_dir();
10
 
11
  // Require custom field.
12
+ require_once $module_directory . '/custom-fields/number-field/number_field.php';
13
 
14
  /**
15
  * Function to return padding controls.
20
  */
21
  function themeisle_four_fields_control( $settings ) {
22
  $default = $settings['default'];
23
+ $prefix = $settings['field_name_prefix'];
24
+ $type = ! empty( $settings['type'] ) ? $settings['type'] : 'padding';
25
  return array(
26
  'title' => $type === 'margin' ? esc_html__( 'Margins', 'themeisle-companion' ) : esc_html__( 'Padding', 'themeisle-companion' ),
27
  'fields' => array(
28
+ $prefix . 'top' => array(
29
  'type' => 'obfx_number',
30
+ 'label' => esc_html__( 'Top', 'themeisle-companion' ),
31
  'description' => esc_html__( 'px', 'themeisle-companion' ),
32
+ 'default' => $default['top'],
33
  ),
34
  $prefix . 'bottom' => array(
35
  'type' => 'obfx_number',
36
+ 'label' => esc_html__( 'Bottom', 'themeisle-companion' ),
37
  'description' => esc_html__( 'px', 'themeisle-companion' ),
38
+ 'default' => $default['bottom'],
39
  ),
40
+ $prefix . 'left' => array(
41
  'type' => 'obfx_number',
42
+ 'label' => esc_html__( 'Left', 'themeisle-companion' ),
43
  'description' => esc_html__( 'px', 'themeisle-companion' ),
44
+ 'default' => $default['left'],
45
  ),
46
+ $prefix . 'right' => array(
47
  'type' => 'obfx_number',
48
+ 'label' => esc_html__( 'Right', 'themeisle-companion' ),
49
  'description' => esc_html__( 'px', 'themeisle-companion' ),
50
+ 'default' => $default['right'],
51
  ),
52
  ),
53
  );
61
  * @return array
62
  */
63
  function themeisle_typography_settings( $settings ) {
64
+ $title = ! empty( $settings['title'] ) ? $settings['title'] : esc_html__( 'Typography', 'themeisle-companion' );
65
+ $prefix = $settings['prefix'];
66
  $font_default = ! empty( $settings['font_size_default'] ) ? $settings['font_size_default'] : '';
67
  return array(
68
+ 'title' => $title,
69
  'fields' => array(
70
+ $prefix . 'font_size' => array(
71
  'type' => 'obfx_number',
72
+ 'label' => esc_html__( 'Font size', 'themeisle-companion' ),
73
  'description' => esc_html__( 'px', 'themeisle-companion' ),
74
+ 'default' => $font_default,
75
  ),
76
+ $prefix . 'font_family' => array(
77
+ 'type' => 'font',
78
+ 'label' => esc_html__( 'Font family', 'themeisle-companion' ),
79
+ 'default' => array(
80
+ 'family' => 'Roboto',
81
+ 'weight' => 300,
82
  ),
83
  ),
84
+ $prefix . 'transform' => array(
85
  'type' => 'select',
86
  'label' => esc_html__( 'Transform', 'themeisle-companion' ),
87
  'default' => 'none',
88
  'options' => array(
89
+ 'none' => esc_html__( 'None', 'themeisle-companion' ),
90
  'capitalize' => esc_html__( 'Capitalize', 'themeisle-companion' ),
91
+ 'uppercase' => esc_html__( 'Uppercase', 'themeisle-companion' ),
92
+ 'lowercase' => esc_html__( 'Lowercase', 'themeisle-companion' ),
93
  ),
94
  ),
95
+ $prefix . 'font_style' => array(
96
  'type' => 'select',
97
  'label' => esc_html__( 'Font style', 'themeisle-companion' ),
98
  'default' => 'normal',
99
  'options' => array(
100
+ 'normal' => esc_html__( 'Normal', 'themeisle-companion' ),
101
+ 'italic' => esc_html__( 'Italic', 'themeisle-companion' ),
102
  'oblique' => esc_html__( 'Oblique', 'themeisle-companion' ),
103
  ),
104
  ),
105
+ $prefix . 'line_height' => array(
106
  'type' => 'obfx_number',
107
+ 'label' => esc_html__( 'Line height', 'themeisle-companion' ),
108
  'description' => esc_html__( 'px', 'themeisle-companion' ),
109
  ),
110
  $prefix . 'letter_spacing' => array(
111
  'type' => 'obfx_number',
112
+ 'label' => esc_html__( 'Letter spacing', 'themeisle-companion' ),
113
  'description' => esc_html__( 'px', 'themeisle-companion' ),
114
  ),
115
  ),
obfx_modules/beaver-widgets/init.php CHANGED
@@ -24,8 +24,8 @@ class Beaver_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract {
24
  */
25
  public function __construct() {
26
  parent::__construct();
27
- $this->name = __( 'Page builder widgets', 'themeisle-companion' );
28
- $this->description = __( 'Adds widgets to the most popular builders: Elementor or Beaver. More to come!', 'themeisle-companion' );
29
  $this->active_default = true;
30
  }
31
 
@@ -37,8 +37,8 @@ class Beaver_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract {
37
  * @return bool
38
  */
39
  public function enable_module() {
40
- require_once( ABSPATH . 'wp-admin' . '/includes/plugin.php' );
41
- return is_plugin_active( 'beaver-builder-lite-version/fl-builder.php' ) || is_plugin_active('bb-plugin/fl-builder.php');
42
  }
43
 
44
  /**
@@ -114,7 +114,7 @@ class Beaver_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract {
114
  * @since 2.2.5
115
  * @access public
116
  */
117
- public function load_widgets_modules(){
118
  if ( class_exists( 'FLBuilder' ) ) {
119
  require_once 'modules/pricing-table/pricing-table.php';
120
  require_once 'modules/services/services.php';
24
  */
25
  public function __construct() {
26
  parent::__construct();
27
+ $this->name = __( 'Page builder widgets', 'themeisle-companion' );
28
+ $this->description = __( 'Adds widgets to the most popular builders: Elementor or Beaver. More to come!', 'themeisle-companion' );
29
  $this->active_default = true;
30
  }
31
 
37
  * @return bool
38
  */
39
  public function enable_module() {
40
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
41
+ return is_plugin_active( 'beaver-builder-lite-version/fl-builder.php' ) || is_plugin_active( 'bb-plugin/fl-builder.php' );
42
  }
43
 
44
  /**
114
  * @since 2.2.5
115
  * @access public
116
  */
117
+ public function load_widgets_modules() {
118
  if ( class_exists( 'FLBuilder' ) ) {
119
  require_once 'modules/pricing-table/pricing-table.php';
120
  require_once 'modules/services/services.php';
obfx_modules/beaver-widgets/modules/post-grid/includes/frontend.css.php CHANGED
@@ -1,57 +1,57 @@
1
  <?php
2
 
3
- $post_width = $settings->display_type === 'list' ? 100 : ( ! empty( $settings->columns ) ? 100 / (int) $settings->columns : 33.3333 );
4
  $card_vertical_align = ! empty( $settings->card_vertical_align ) ? $settings->card_vertical_align : 'top';
5
- echo '.fl-node-' . $id . ' .obfx-post-grid-wrapper{
6
- width: ' . $post_width . '%;
7
- vertical-align: ' . $card_vertical_align . ';
8
  }';
9
 
10
 
11
  $post_bg_color = ! empty( $settings->post_bg_color ) ? $settings->post_bg_color : '';
12
  if ( ! empty( $post_bg_color ) ) {
13
  $post_bg_color = strpos( $post_bg_color, 'rgba' ) !== false ? 'background-color:' . $post_bg_color : 'background-color:#' . $post_bg_color;
14
- echo '.fl-node-' . $id . ' .obfx-post-grid{
15
- ' . $post_bg_color . ';
16
  }';
17
  }
18
 
19
  $post_link_color = ! empty( $settings->post_link_color ) ? $settings->post_link_color : '';
20
  if ( ! empty( $post_link_color ) ) {
21
  $post_link_color = strpos( $post_link_color, 'rgba' ) !== false ? 'color:' . $post_link_color : 'color:#' . $post_link_color;
22
- echo '.fl-node-' . $id . ' .obfx-post-grid a, .fl-node-' . $id . ' .obfx-post-grid-pagination a {
23
- ' . $post_link_color . ';
24
  }';
25
  }
26
 
27
  $post_text_color = ! empty( $settings->post_text_color ) ? $settings->post_text_color : '';
28
  if ( ! empty( $post_text_color ) ) {
29
  $post_text_color = strpos( $post_text_color, 'rgba' ) !== false ? 'color:' . $post_text_color : 'color:#' . $post_text_color;
30
- echo '.fl-node-' . $id . ' .obfx-post-grid, .fl-node-' . $id . ' .obfx-post-grid-pagination{
31
- ' . $post_text_color . ';
32
  }';
33
  }
34
 
35
 
36
- $card_margin_top = ! empty( $settings->card_margin_top ) ? $settings->card_margin_top : '0';
37
  $card_margin_bottom = ! empty( $settings->card_margin_bottom ) ? $settings->card_margin_bottom : '0';
38
- echo '.fl-node-' . $id . ' .obfx-post-grid{
39
- margin-top: ' . $card_margin_top . 'px;
40
- margin-bottom: ' . $card_margin_bottom . 'px;
41
  }
42
  ';
43
 
44
- $thumbnail_margin_top = ! empty( $settings->thumbnail_margin_top ) ? $settings->thumbnail_margin_top : '0';
45
  $thumbnail_margin_bottom = ! empty( $settings->thumbnail_margin_bottom ) ? $settings->thumbnail_margin_bottom : '0';
46
- $thumbnail_margin_left = ! empty( $settings->thumbnail_margin_left ) ? $settings->thumbnail_margin_left : '0';
47
- $thumbnail_margin_right = ! empty( $settings->thumbnail_margin_right ) ? $settings->thumbnail_margin_right : '0';
48
- $image_alignment = ! empty( $settings->image_alignment ) ? $settings->image_alignment : 'center';
49
 
50
- echo '.fl-node-' . $id . ' .obfx-post-grid-thumbnail{
51
- margin-top: ' . $thumbnail_margin_top . 'px;
52
- margin-bottom: ' . $thumbnail_margin_bottom . 'px;
53
- margin-left: ' . $thumbnail_margin_left . 'px;
54
- margin-right: ' . $thumbnail_margin_right . 'px;';
55
 
56
  switch ( $image_alignment ) {
57
  case 'center':
@@ -67,107 +67,107 @@ switch ( $image_alignment ) {
67
  echo '}';
68
 
69
 
70
- $title_padding_top = ! empty( $settings->title_padding_top ) ? $settings->title_padding_top : '0';
71
  $title_padding_bottom = ! empty( $settings->title_padding_bottom ) ? $settings->title_padding_bottom : '0';
72
- $title_padding_left = ! empty( $settings->title_padding_left ) ? $settings->title_padding_left : '0';
73
- $title_padding_right = ! empty( $settings->title_padding_right ) ? $settings->title_padding_right : '0';
74
- $title_alignment = ! empty( $settings->title_alignment ) ? $settings->title_alignment : 'center';
75
- $title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '0';
76
- $title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : 'Roboto';
77
- $title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '400';
78
- $title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : 'none';
79
- $title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : 'none';
80
- $title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : 'inherit';
81
  $title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '0';
82
- echo '.fl-node-' . $id . ' .obfx-post-grid-title{
83
- padding-top: ' . $title_padding_top . 'px;
84
- padding-bottom: ' . $title_padding_bottom . 'px;
85
- padding-left: ' . $title_padding_left . 'px;
86
- padding-right: ' . $title_padding_right . 'px;
87
- text-align: ' . $title_alignment . ';
88
- font-size:' . $title_font_size . 'px;
89
- font-family:' . $title_font_family . ';
90
- font-weight:' . $title_font_weight . ';
91
- text-transform:' . $title_transform . ';
92
- font-style:' . $title_font_style . ';
93
- line-height:' . $title_line_height . 'px;
94
- letter-spacing:' . $title_letter_spacing . 'px;
95
  } ';
96
 
97
- $meta_padding_top = ! empty( $settings->meta_padding_top ) ? $settings->meta_padding_top : '0';
98
  $meta_padding_bottom = ! empty( $settings->meta_padding_bottom ) ? $settings->meta_padding_bottom : '0';
99
- $meta_padding_left = ! empty( $settings->meta_padding_left ) ? $settings->meta_padding_left : '0';
100
- $meta_padding_right = ! empty( $settings->meta_padding_right ) ? $settings->meta_padding_right : '0';
101
- $meta_alignment = ! empty( $settings->meta_alignment ) ? $settings->meta_alignment : 'center';
102
- $meta_font_size = ! empty( $settings->meta_font_size ) ? $settings->meta_font_size : '0';
103
- $meta_font_family = ! empty( $settings->meta_font_family['family'] ) ? $settings->meta_font_family['family'] : 'Roboto';
104
- $meta_font_weight = ! empty( $settings->meta_font_family['weight'] ) ? $settings->meta_font_family['weight'] : '400';
105
- $meta_transform = ! empty( $settings->meta_transform ) ? $settings->meta_transform : 'none';
106
- $meta_font_style = ! empty( $settings->meta_font_style ) ? $settings->meta_font_style : 'none';
107
- $meta_line_height = ! empty( $settings->meta_line_height ) ? $settings->meta_line_height : 'inherit';
108
  $meta_letter_spacing = ! empty( $settings->meta_letter_spacing ) ? $settings->meta_letter_spacing : '0';
109
- echo '.fl-node-' . $id . ' .obfx-post-grid-meta{
110
- padding-top: ' . $meta_padding_top . 'px;
111
- padding-bottom: ' . $meta_padding_bottom . 'px;
112
- padding-left: ' . $meta_padding_left . 'px;
113
- padding-right: ' . $meta_padding_right . 'px;
114
- font-size:' . $meta_font_size . 'px;
115
- font-family:' . $meta_font_family . ';
116
- font-weight:' . $meta_font_weight . ';
117
- text-transform:' . $meta_transform . ';
118
- font-style:' . $meta_font_style . ';
119
- line-height:' . $meta_line_height . 'px;
120
- letter-spacing:' . $meta_letter_spacing . 'px;
121
- text-align: ' . $meta_alignment . ';
122
  } ';
123
 
124
 
125
- $content_padding_top = ! empty( $settings->content_padding_top ) ? $settings->content_padding_top : '0';
126
  $content_padding_bottom = ! empty( $settings->content_padding_bottom ) ? $settings->content_padding_bottom : '0';
127
- $content_padding_left = ! empty( $settings->content_padding_left ) ? $settings->content_padding_left : '0';
128
- $content_padding_right = ! empty( $settings->content_padding_right ) ? $settings->content_padding_right : '0';
129
- $content_alignment = ! empty( $settings->content_alignment ) ? $settings->content_alignment : 'center';
130
- $content_font_size = ! empty( $settings->content_font_size ) ? $settings->content_font_size : '0';
131
- $content_font_family = ! empty( $settings->content_font_family['family'] ) ? $settings->content_font_family['family'] : 'Roboto';
132
- $content_font_weight = ! empty( $settings->content_font_family['weight'] ) ? $settings->content_font_family['weight'] : '400';
133
- $content_transform = ! empty( $settings->content_transform ) ? $settings->content_transform : 'none';
134
- $content_font_style = ! empty( $settings->content_font_style ) ? $settings->content_font_style : 'none';
135
- $content_line_height = ! empty( $settings->content_line_height ) ? $settings->content_line_height : 'inherit';
136
  $content_letter_spacing = ! empty( $settings->content_letter_spacing ) ? $settings->content_letter_spacing : '0';
137
 
138
- echo '.fl-node-' . $id . ' .obfx-post-content{
139
- padding-top: ' . $content_padding_top . 'px;
140
- padding-bottom: ' . $content_padding_bottom . 'px;
141
- padding-left: ' . $content_padding_left . 'px;
142
- padding-right: ' . $content_padding_right . 'px;
143
- text-align: ' . $content_alignment . ';
144
- font-size:' . $content_font_size . 'px;
145
- font-family:' . $content_font_family . ';
146
- font-weight:' . $content_font_weight . ';
147
- text-transform:' . $content_transform . ';
148
- font-style:' . $content_font_style . ';
149
- line-height:' . $content_line_height . 'px;
150
- letter-spacing:' . $content_letter_spacing . 'px;
151
  } ';
152
 
153
- $pagination_font_size = ! empty( $settings->pagination_font_size ) ? $settings->pagination_font_size : '0';
154
- $pagination_font_family = ! empty( $settings->pagination_font_family['family'] ) ? $settings->pagination_font_family['family'] : 'Roboto';
155
- $pagination_font_weight = ! empty( $settings->pagination_font_family['weight'] ) ? $settings->pagination_font_family['weight'] : '400';
156
- $pagination_transform = ! empty( $settings->pagination_transform ) ? $settings->pagination_transform : 'none';
157
- $pagination_font_style = ! empty( $settings->pagination_font_style ) ? $settings->pagination_font_style : 'none';
158
- $pagination_line_height = ! empty( $settings->pagination_line_height ) ? $settings->pagination_line_height : 'inherit';
159
  $pagination_letter_spacing = ! empty( $settings->pagination_letter_spacing ) ? $settings->pagination_letter_spacing : '0';
160
- $pagination_alignment = ! empty( $settings->pagination_alignment ) ? $settings->pagination_alignment : 'center';
161
- echo '.fl-node-' . $id . ' .obfx-post-grid-pagination li a, .fl-node-' . $id . ' .obfx-post-grid-pagination li {
162
- font-size:' . $pagination_font_size . 'px;
163
- font-family:' . $pagination_font_family . ';
164
- font-weight:' . $pagination_font_weight . ';
165
- text-transform:' . $pagination_transform . ';
166
- font-style:' . $pagination_font_style . ';
167
- line-height:' . $pagination_line_height . 'px;
168
- letter-spacing:' . $pagination_letter_spacing . 'px;
169
  }';
170
 
171
- echo '.fl-node-' . $id . ' .obfx-post-grid-pagination{
172
- text-align: ' . $pagination_alignment . ';
173
  }';
1
  <?php
2
 
3
+ $post_width = $settings->display_type === 'list' ? 100 : ( ! empty( $settings->columns ) ? 100 / (int) $settings->columns : 33.3333 );
4
  $card_vertical_align = ! empty( $settings->card_vertical_align ) ? $settings->card_vertical_align : 'top';
5
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-wrapper{
6
+ width: ' . esc_attr( $post_width ) . '%;
7
+ vertical-align: ' . esc_attr( $card_vertical_align ) . ';
8
  }';
9
 
10
 
11
  $post_bg_color = ! empty( $settings->post_bg_color ) ? $settings->post_bg_color : '';
12
  if ( ! empty( $post_bg_color ) ) {
13
  $post_bg_color = strpos( $post_bg_color, 'rgba' ) !== false ? 'background-color:' . $post_bg_color : 'background-color:#' . $post_bg_color;
14
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid{
15
+ ' . esc_attr( $post_bg_color ) . ';
16
  }';
17
  }
18
 
19
  $post_link_color = ! empty( $settings->post_link_color ) ? $settings->post_link_color : '';
20
  if ( ! empty( $post_link_color ) ) {
21
  $post_link_color = strpos( $post_link_color, 'rgba' ) !== false ? 'color:' . $post_link_color : 'color:#' . $post_link_color;
22
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid a, .fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-pagination a {
23
+ ' . esc_attr( $post_link_color ) . ';
24
  }';
25
  }
26
 
27
  $post_text_color = ! empty( $settings->post_text_color ) ? $settings->post_text_color : '';
28
  if ( ! empty( $post_text_color ) ) {
29
  $post_text_color = strpos( $post_text_color, 'rgba' ) !== false ? 'color:' . $post_text_color : 'color:#' . $post_text_color;
30
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid, .fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-pagination{
31
+ ' . esc_attr( $post_text_color ) . ';
32
  }';
33
  }
34
 
35
 
36
+ $card_margin_top = ! empty( $settings->card_margin_top ) ? $settings->card_margin_top : '0';
37
  $card_margin_bottom = ! empty( $settings->card_margin_bottom ) ? $settings->card_margin_bottom : '0';
38
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid{
39
+ margin-top: ' . esc_attr( $card_margin_top ) . 'px;
40
+ margin-bottom: ' . esc_attr( $card_margin_bottom ) . 'px;
41
  }
42
  ';
43
 
44
+ $thumbnail_margin_top = ! empty( $settings->thumbnail_margin_top ) ? $settings->thumbnail_margin_top : '0';
45
  $thumbnail_margin_bottom = ! empty( $settings->thumbnail_margin_bottom ) ? $settings->thumbnail_margin_bottom : '0';
46
+ $thumbnail_margin_left = ! empty( $settings->thumbnail_margin_left ) ? $settings->thumbnail_margin_left : '0';
47
+ $thumbnail_margin_right = ! empty( $settings->thumbnail_margin_right ) ? $settings->thumbnail_margin_right : '0';
48
+ $image_alignment = ! empty( $settings->image_alignment ) ? $settings->image_alignment : 'center';
49
 
50
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-thumbnail{
51
+ margin-top: ' . esc_attr( $thumbnail_margin_top ) . 'px;
52
+ margin-bottom: ' . esc_attr( $thumbnail_margin_bottom ) . 'px;
53
+ margin-left: ' . esc_attr( $thumbnail_margin_left ) . 'px;
54
+ margin-right: ' . esc_attr( $thumbnail_margin_right ) . 'px;';
55
 
56
  switch ( $image_alignment ) {
57
  case 'center':
67
  echo '}';
68
 
69
 
70
+ $title_padding_top = ! empty( $settings->title_padding_top ) ? $settings->title_padding_top : '0';
71
  $title_padding_bottom = ! empty( $settings->title_padding_bottom ) ? $settings->title_padding_bottom : '0';
72
+ $title_padding_left = ! empty( $settings->title_padding_left ) ? $settings->title_padding_left : '0';
73
+ $title_padding_right = ! empty( $settings->title_padding_right ) ? $settings->title_padding_right : '0';
74
+ $title_alignment = ! empty( $settings->title_alignment ) ? $settings->title_alignment : 'center';
75
+ $title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '0';
76
+ $title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : 'Roboto';
77
+ $title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '400';
78
+ $title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : 'none';
79
+ $title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : 'none';
80
+ $title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : 'inherit';
81
  $title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '0';
82
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-title{
83
+ padding-top: ' . esc_attr( $title_padding_top ) . 'px;
84
+ padding-bottom: ' . esc_attr( $title_padding_bottom ) . 'px;
85
+ padding-left: ' . esc_attr( $title_padding_left ) . 'px;
86
+ padding-right: ' . esc_attr( $title_padding_right ) . 'px;
87
+ text-align: ' . esc_attr( $title_alignment ) . ';
88
+ font-size:' . esc_attr( $title_font_size ) . 'px;
89
+ font-family:' . esc_attr( $title_font_family ) . ';
90
+ font-weight:' . esc_attr( $title_font_weight ) . ';
91
+ text-transform:' . esc_attr( $title_transform ) . ';
92
+ font-style:' . esc_attr( $title_font_style ) . ';
93
+ line-height:' . esc_attr( $title_line_height ) . 'px;
94
+ letter-spacing:' . esc_attr( $title_letter_spacing ) . 'px;
95
  } ';
96
 
97
+ $meta_padding_top = ! empty( $settings->meta_padding_top ) ? $settings->meta_padding_top : '0';
98
  $meta_padding_bottom = ! empty( $settings->meta_padding_bottom ) ? $settings->meta_padding_bottom : '0';
99
+ $meta_padding_left = ! empty( $settings->meta_padding_left ) ? $settings->meta_padding_left : '0';
100
+ $meta_padding_right = ! empty( $settings->meta_padding_right ) ? $settings->meta_padding_right : '0';
101
+ $meta_alignment = ! empty( $settings->meta_alignment ) ? $settings->meta_alignment : 'center';
102
+ $meta_font_size = ! empty( $settings->meta_font_size ) ? $settings->meta_font_size : '0';
103
+ $meta_font_family = ! empty( $settings->meta_font_family['family'] ) ? $settings->meta_font_family['family'] : 'Roboto';
104
+ $meta_font_weight = ! empty( $settings->meta_font_family['weight'] ) ? $settings->meta_font_family['weight'] : '400';
105
+ $meta_transform = ! empty( $settings->meta_transform ) ? $settings->meta_transform : 'none';
106
+ $meta_font_style = ! empty( $settings->meta_font_style ) ? $settings->meta_font_style : 'none';
107
+ $meta_line_height = ! empty( $settings->meta_line_height ) ? $settings->meta_line_height : 'inherit';
108
  $meta_letter_spacing = ! empty( $settings->meta_letter_spacing ) ? $settings->meta_letter_spacing : '0';
109
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-meta{
110
+ padding-top: ' . esc_attr( $meta_padding_top ) . 'px;
111
+ padding-bottom: ' . esc_attr( $meta_padding_bottom ) . 'px;
112
+ padding-left: ' . esc_attr( $meta_padding_left ) . 'px;
113
+ padding-right: ' . esc_attr( $meta_padding_right ) . 'px;
114
+ font-size:' . esc_attr( $meta_font_size ) . 'px;
115
+ font-family:' . esc_attr( $meta_font_family ) . ';
116
+ font-weight:' . esc_attr( $meta_font_weight ) . ';
117
+ text-transform:' . esc_attr( $meta_transform ) . ';
118
+ font-style:' . esc_attr( $meta_font_style ) . ';
119
+ line-height:' . esc_attr( $meta_line_height ) . 'px;
120
+ letter-spacing:' . esc_attr( $meta_letter_spacing ) . 'px;
121
+ text-align: ' . esc_attr( $meta_alignment ) . ';
122
  } ';
123
 
124
 
125
+ $content_padding_top = ! empty( $settings->content_padding_top ) ? $settings->content_padding_top : '0';
126
  $content_padding_bottom = ! empty( $settings->content_padding_bottom ) ? $settings->content_padding_bottom : '0';
127
+ $content_padding_left = ! empty( $settings->content_padding_left ) ? $settings->content_padding_left : '0';
128
+ $content_padding_right = ! empty( $settings->content_padding_right ) ? $settings->content_padding_right : '0';
129
+ $content_alignment = ! empty( $settings->content_alignment ) ? $settings->content_alignment : 'center';
130
+ $content_font_size = ! empty( $settings->content_font_size ) ? $settings->content_font_size : '0';
131
+ $content_font_family = ! empty( $settings->content_font_family['family'] ) ? $settings->content_font_family['family'] : 'Roboto';
132
+ $content_font_weight = ! empty( $settings->content_font_family['weight'] ) ? $settings->content_font_family['weight'] : '400';
133
+ $content_transform = ! empty( $settings->content_transform ) ? $settings->content_transform : 'none';
134
+ $content_font_style = ! empty( $settings->content_font_style ) ? $settings->content_font_style : 'none';
135
+ $content_line_height = ! empty( $settings->content_line_height ) ? $settings->content_line_height : 'inherit';
136
  $content_letter_spacing = ! empty( $settings->content_letter_spacing ) ? $settings->content_letter_spacing : '0';
137
 
138
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-content{
139
+ padding-top: ' . esc_attr( $content_padding_top ) . 'px;
140
+ padding-bottom: ' . esc_attr( $content_padding_bottom ) . 'px;
141
+ padding-left: ' . esc_attr( $content_padding_left ) . 'px;
142
+ padding-right: ' . esc_attr( $content_padding_right ) . 'px;
143
+ text-align: ' . esc_attr( $content_alignment ) . ';
144
+ font-size:' . esc_attr( $content_font_size ) . 'px;
145
+ font-family:' . esc_attr( $content_font_family ) . ';
146
+ font-weight:' . esc_attr( $content_font_weight ) . ';
147
+ text-transform:' . esc_attr( $content_transform ) . ';
148
+ font-style:' . esc_attr( $content_font_style ) . ';
149
+ line-height:' . esc_attr( $content_line_height ) . 'px;
150
+ letter-spacing:' . esc_attr( $content_letter_spacing ) . 'px;
151
  } ';
152
 
153
+ $pagination_font_size = ! empty( $settings->pagination_font_size ) ? $settings->pagination_font_size : '0';
154
+ $pagination_font_family = ! empty( $settings->pagination_font_family['family'] ) ? $settings->pagination_font_family['family'] : 'Roboto';
155
+ $pagination_font_weight = ! empty( $settings->pagination_font_family['weight'] ) ? $settings->pagination_font_family['weight'] : '400';
156
+ $pagination_transform = ! empty( $settings->pagination_transform ) ? $settings->pagination_transform : 'none';
157
+ $pagination_font_style = ! empty( $settings->pagination_font_style ) ? $settings->pagination_font_style : 'none';
158
+ $pagination_line_height = ! empty( $settings->pagination_line_height ) ? $settings->pagination_line_height : 'inherit';
159
  $pagination_letter_spacing = ! empty( $settings->pagination_letter_spacing ) ? $settings->pagination_letter_spacing : '0';
160
+ $pagination_alignment = ! empty( $settings->pagination_alignment ) ? $settings->pagination_alignment : 'center';
161
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-pagination li a, .fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-pagination li {
162
+ font-size:' . esc_attr( $pagination_font_size ) . 'px;
163
+ font-family:' . esc_attr( $pagination_font_family ) . ';
164
+ font-weight:' . esc_attr( $pagination_font_weight ) . ';
165
+ text-transform:' . esc_attr( $pagination_transform ) . ';
166
+ font-style:' . esc_attr( $pagination_font_style ) . ';
167
+ line-height:' . esc_attr( $pagination_line_height ) . 'px;
168
+ letter-spacing:' . esc_attr( $pagination_letter_spacing ) . 'px;
169
  }';
170
 
171
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-post-grid-pagination{
172
+ text-align: ' . esc_attr( $pagination_alignment ) . ';
173
  }';
obfx_modules/beaver-widgets/modules/post-grid/includes/frontend.php CHANGED
@@ -31,7 +31,7 @@ if ( ! function_exists( 'obfx_show_post_grid_thumbnail' ) ) {
31
  $thumbnail_shadow = ! empty( $settings->thumbnail_shadow ) && $settings->thumbnail_shadow === 'yes' ? 'obfx-card' : '';
32
  echo '<div class="obfx-post-grid-thumbnail ' . esc_attr( $thumbnail_shadow ) . '">';
33
  if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
34
- echo '<a href="' . get_permalink() . '">';
35
  }
36
  echo '<img src="' . esc_url( $img ) . '"/></div>';
37
  if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
@@ -58,7 +58,7 @@ if ( ! function_exists( 'obfx_show_post_grid_title' ) ) {
58
  }
59
 
60
  if ( ! empty( $settings->show_title_link ) && $settings->show_title_link === 'yes' ) {
61
- echo '<a href="' . get_permalink() . '">';
62
  }
63
  $tag = ! empty( $settings->title_tag ) ? $settings->title_tag : 'h4';
64
  the_title( '<' . $tag . ' class="obfx-post-grid-title">', '</' . $tag . '>' );
@@ -134,7 +134,7 @@ if ( ! function_exists( 'obfx_show_post_grid_meta' ) ) {
134
  if ( ! empty( $link ) ) {
135
  echo '<a href="' . esc_url( $link ) . '">';
136
  }
137
- echo $name;
138
  if ( ! empty( $link ) ) {
139
  echo '</a>';
140
  }
@@ -159,7 +159,7 @@ if ( ! function_exists( 'obfx_show_post_grid_meta' ) ) {
159
  if ( ! empty( $link ) ) {
160
  echo '<a href="' . esc_url( $link ) . '">';
161
  }
162
- echo $name;
163
  if ( ! empty( $link ) ) {
164
  echo '</a>';
165
  }
@@ -181,16 +181,18 @@ if ( ! function_exists( 'obfx_show_post_grid_meta' ) ) {
181
  /* translators: %s: post title */
182
  _x( 'One comment', 'comments title', 'themeisle-companion' );
183
  } else {
184
- printf(
 
185
  /* translators: 1: number of comments, 2: post title */
186
- _nx(
187
- '%1$s Comment',
188
- '%1$s Comments',
189
- $comments_number,
190
- 'comments title',
191
- 'themeisle-companion'
192
- ),
193
- number_format_i18n( $comments_number )
 
194
  );
195
  }
196
  }
31
  $thumbnail_shadow = ! empty( $settings->thumbnail_shadow ) && $settings->thumbnail_shadow === 'yes' ? 'obfx-card' : '';
32
  echo '<div class="obfx-post-grid-thumbnail ' . esc_attr( $thumbnail_shadow ) . '">';
33
  if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
34
+ echo '<a href="' . esc_url( get_permalink() ) . '">';
35
  }
36
  echo '<img src="' . esc_url( $img ) . '"/></div>';
37
  if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
58
  }
59
 
60
  if ( ! empty( $settings->show_title_link ) && $settings->show_title_link === 'yes' ) {
61
+ echo '<a href="' . esc_url( get_permalink() ) . '">';
62
  }
63
  $tag = ! empty( $settings->title_tag ) ? $settings->title_tag : 'h4';
64
  the_title( '<' . $tag . ' class="obfx-post-grid-title">', '</' . $tag . '>' );
134
  if ( ! empty( $link ) ) {
135
  echo '<a href="' . esc_url( $link ) . '">';
136
  }
137
+ echo esc_attr( $name );
138
  if ( ! empty( $link ) ) {
139
  echo '</a>';
140
  }
159
  if ( ! empty( $link ) ) {
160
  echo '<a href="' . esc_url( $link ) . '">';
161
  }
162
+ echo esc_attr( $name );
163
  if ( ! empty( $link ) ) {
164
  echo '</a>';
165
  }
181
  /* translators: %s: post title */
182
  _x( 'One comment', 'comments title', 'themeisle-companion' );
183
  } else {
184
+ esc_html(
185
+ printf(
186
  /* translators: 1: number of comments, 2: post title */
187
+ _nx( //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
188
+ '%1$s Comment',
189
+ '%1$s Comments',
190
+ $comments_number,
191
+ 'comments title',
192
+ 'themeisle-companion'
193
+ ),
194
+ number_format_i18n( $comments_number ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
195
+ )
196
  );
197
  }
198
  }
obfx_modules/beaver-widgets/modules/post-grid/includes/loop-settings.php CHANGED
@@ -2,13 +2,13 @@
2
 
3
  // Default Settings
4
  $default_posts_per_page = get_option( 'posts_per_page' );
5
- $defaults = array(
6
- 'data_source' => 'custom_query',
7
- 'post_type' => 'post',
8
- 'order_by' => 'date',
9
- 'order' => 'DESC',
10
- 'offset' => 0,
11
- 'users' => '',
12
  'posts_per_page' => $default_posts_per_page,
13
  );
14
 
@@ -21,7 +21,7 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
21
  ?>
22
  <div class="fl-custom-query fl-loop-data-source" data-source="custom_query">
23
  <div id="fl-builder-settings-section-general" class="fl-builder-settings-section">
24
- <h3 class="fl-builder-settings-title"><?php _e( 'Custom Query', 'themeisle-companion' ); ?></h3>
25
  <table class="fl-form-table">
26
  <?php
27
 
@@ -29,8 +29,8 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
29
  FLBuilder::render_settings_field(
30
  'post_type',
31
  array(
32
- 'type' => 'post-type',
33
- 'label' => esc_html__( 'Post Type', 'themeisle-companion' ),
34
  ),
35
  $settings
36
  );
@@ -39,11 +39,11 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
39
  FLBuilder::render_settings_field(
40
  'order',
41
  array(
42
- 'type' => 'select',
43
- 'label' => esc_html__( 'Order', 'themeisle-companion' ),
44
- 'options' => array(
45
- 'DESC' => esc_html__( 'Descending', 'themeisle-companion' ),
46
- 'ASC' => esc_html__( 'Ascending', 'themeisle-companion' ),
47
  ),
48
  ),
49
  $settings
@@ -53,9 +53,9 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
53
  FLBuilder::render_settings_field(
54
  'order_by',
55
  array(
56
- 'type' => 'select',
57
- 'label' => esc_html__( 'Order By', 'themeisle-companion' ),
58
- 'options' => array(
59
  'author' => esc_html__( 'Author', 'themeisle-companion' ),
60
  'comment_count' => esc_html__( 'Comment Count', 'themeisle-companion' ),
61
  'date' => esc_html__( 'Date', 'themeisle-companion' ),
@@ -67,12 +67,12 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
67
  'rand' => esc_html__( 'Random', 'themeisle-companion' ),
68
  'title' => esc_html__( 'Title', 'themeisle-companion' ),
69
  ),
70
- 'toggle' => array(
71
- 'meta_value' => array(
72
- 'fields' => array( 'order_by_meta_key' ),
73
  ),
74
  'meta_value_num' => array(
75
- 'fields' => array( 'order_by_meta_key' ),
76
  ),
77
  ),
78
  ),
@@ -83,8 +83,8 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
83
  FLBuilder::render_settings_field(
84
  'order_by_meta_key',
85
  array(
86
- 'type' => 'text',
87
- 'label' => esc_html__( 'Meta Key', 'themeisle-companion' ),
88
  ),
89
  $settings
90
  );
@@ -93,11 +93,11 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
93
  FLBuilder::render_settings_field(
94
  'offset',
95
  array(
96
- 'type' => 'text',
97
- 'label' => _x( 'Offset', 'How many posts to skip.', 'themeisle-companion' ),
98
- 'default' => '0',
99
- 'size' => '4',
100
- 'help' => esc_html__( 'Skip this many posts that match the specified criteria.', 'themeisle-companion' ),
101
  ),
102
  $settings
103
  );
@@ -106,11 +106,11 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
106
  FLBuilder::render_settings_field(
107
  'posts_per_page',
108
  array(
109
- 'type' => 'obfx_number',
110
- 'label' => esc_html__( 'Posts per page', 'themeisle-companion' ),
111
- 'default' => $default_posts_per_page,
112
- 'min' => '-1',
113
- 'help' => esc_html__( '-1 means all posts', 'themeisle-companion' ),
114
  ),
115
  $settings
116
  );
@@ -119,11 +119,11 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
119
  FLBuilder::render_settings_field(
120
  'columns',
121
  array(
122
- 'type' => 'obfx_number',
123
- 'label' => esc_html__( 'Number of columns', 'themeisle-companion' ),
124
- 'default' => '3',
125
- 'min' => '1',
126
- 'max' => '5',
127
  ),
128
  $settings
129
  );
@@ -131,9 +131,9 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
131
  </table>
132
  </div>
133
  <div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
134
- <h3 class="fl-builder-settings-title"><?php _e( 'Filter', 'themeisle-companion' ); ?></h3>
135
- <?php foreach ( FLBuilderLoop::post_types() as $slug => $type ) : ?>
136
- <table class="fl-form-table fl-custom-query-filter fl-custom-query-<?php echo $slug; ?>-filter"
137
  <?php
138
  if ( $slug === $settings->post_type ) {
139
  echo 'style="display:table;"';}
@@ -145,12 +145,15 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
145
  FLBuilder::render_settings_field(
146
  'posts_' . $slug,
147
  array(
148
- 'type' => 'suggest',
149
- 'action' => 'fl_as_posts',
150
- 'data' => $slug,
151
- 'label' => $type->label,
152
- 'help' => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $type->label ),
153
- 'matching' => true,
 
 
 
154
  ),
155
  $settings
156
  );
@@ -158,17 +161,20 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
158
  // Taxonomies
159
  $taxonomies = FLBuilderLoop::taxonomies( $slug );
160
 
161
- foreach ( $taxonomies as $tax_slug => $tax ) {
162
 
163
  FLBuilder::render_settings_field(
164
  'tax_' . $slug . '_' . $tax_slug,
165
  array(
166
- 'type' => 'suggest',
167
- 'action' => 'fl_as_terms',
168
- 'data' => $tax_slug,
169
- 'label' => $tax->label,
170
- 'help' => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $tax->label ),
171
- 'matching' => true,
 
 
 
172
  ),
173
  $settings
174
  );
@@ -184,11 +190,11 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
184
  FLBuilder::render_settings_field(
185
  'users',
186
  array(
187
- 'type' => 'suggest',
188
- 'action' => 'fl_as_users',
189
- 'label' => esc_html__( 'Authors', 'themeisle-companion' ),
190
- 'help' => esc_html__( 'Enter a list of authors usernames.', 'themeisle-companion' ),
191
- 'matching' => true,
192
  ),
193
  $settings
194
  );
@@ -197,7 +203,7 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
197
  </table>
198
  </div>
199
  <div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
200
- <h3 class="fl-builder-settings-title"><?php _e( 'Appearance', 'themeisle-companion' ); ?></h3>
201
  <table class="fl-form-table">
202
 
203
  <?php
@@ -205,13 +211,13 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
205
  FLBuilder::render_settings_field(
206
  'card_vertical_align',
207
  array(
208
- 'type' => 'select',
209
- 'label' => esc_html__( 'Vertical align', 'themeisle-companion' ),
210
  'default' => 'grid',
211
- 'options' => array(
212
- 'top' => esc_html__( 'Top', 'themeisle-companion' ),
213
- 'middle' => esc_html__( 'Middle', 'themeisle-companion' ),
214
- 'bottom' => esc_html__( 'Bottom', 'themeisle-companion' ),
215
  ),
216
  ),
217
  $settings
@@ -221,12 +227,12 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
221
  FLBuilder::render_settings_field(
222
  'display_type',
223
  array(
224
- 'type' => 'select',
225
- 'label' => esc_html__( 'Display type', 'themeisle-companion' ),
226
  'default' => 'grid',
227
- 'options' => array(
228
- 'grid' => esc_html__( 'Grid', 'themeisle-companion' ),
229
- 'list' => esc_html__( 'List', 'themeisle-companion' ),
230
  ),
231
  ),
232
  $settings
@@ -236,8 +242,8 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
236
  FLBuilder::render_settings_field(
237
  'card_layout',
238
  array(
239
- 'type' => 'obfx_toggle',
240
- 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
241
  ),
242
  $settings
243
  );
@@ -246,10 +252,10 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
246
  FLBuilder::render_settings_field(
247
  'card_margin_top',
248
  array(
249
- 'type' => 'obfx_number',
250
- 'label' => esc_html__( 'Margin top', 'themeisle-companion' ),
251
- 'default' => '0',
252
- 'min' => '0',
253
  ),
254
  $settings
255
  );
@@ -258,10 +264,10 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
258
  FLBuilder::render_settings_field(
259
  'card_margin_bottom',
260
  array(
261
- 'type' => 'obfx_number',
262
- 'label' => esc_html__( 'Margin bottom', 'themeisle-companion' ),
263
- 'default' => '30',
264
- 'min' => '0',
265
  ),
266
  $settings
267
  );
@@ -270,14 +276,14 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
270
  FLBuilder::render_settings_field(
271
  'post_bg_color',
272
  array(
273
- 'type' => 'color',
274
- 'label' => __( 'Background color', 'themeisle-companion' ),
275
- 'show_reset' => true,
276
- 'show_alpha' => true,
277
- 'preview' => array(
278
- 'type' => 'css',
279
- 'selector' => '.obfx-post-grid',
280
- 'property' => 'background-color',
281
  ),
282
 
283
  ),
@@ -288,13 +294,13 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
288
  FLBuilder::render_settings_field(
289
  'post_link_color',
290
  array(
291
- 'type' => 'color',
292
- 'label' => __( 'Link color', 'themeisle-companion' ),
293
- 'show_reset' => true,
294
- 'preview' => array(
295
- 'type' => 'css',
296
- 'selector' => '.obfx-post-grid a, .obfx-post-grid-pagination a',
297
- 'property' => 'color',
298
  ),
299
  ),
300
  $settings
@@ -304,13 +310,13 @@ do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custo
304
  FLBuilder::render_settings_field(
305
  'post_text_color',
306
  array(
307
- 'type' => 'color',
308
- 'label' => __( 'Text color', 'themeisle-companion' ),
309
- 'show_reset' => true,
310
- 'preview' => array(
311
- 'type' => 'css',
312
- 'selector' => '.obfx-post-grid, .obfx-post-grid-pagination',
313
- 'property' => 'color',
314
  ),
315
  ),
316
  $settings
2
 
3
  // Default Settings
4
  $default_posts_per_page = get_option( 'posts_per_page' );
5
+ $defaults = array(
6
+ 'data_source' => 'custom_query',
7
+ 'post_type' => 'post',
8
+ 'order_by' => 'date',
9
+ 'order' => 'DESC',
10
+ 'offset' => 0,
11
+ 'users' => '',
12
  'posts_per_page' => $default_posts_per_page,
13
  );
14
 
21
  ?>
22
  <div class="fl-custom-query fl-loop-data-source" data-source="custom_query">
23
  <div id="fl-builder-settings-section-general" class="fl-builder-settings-section">
24
+ <h3 class="fl-builder-settings-title"><?php esc_attr_e( 'Custom Query', 'themeisle-companion' ); ?></h3>
25
  <table class="fl-form-table">
26
  <?php
27
 
29
  FLBuilder::render_settings_field(
30
  'post_type',
31
  array(
32
+ 'type' => 'post-type',
33
+ 'label' => esc_html__( 'Post Type', 'themeisle-companion' ),
34
  ),
35
  $settings
36
  );
39
  FLBuilder::render_settings_field(
40
  'order',
41
  array(
42
+ 'type' => 'select',
43
+ 'label' => esc_html__( 'Order', 'themeisle-companion' ),
44
+ 'options' => array(
45
+ 'DESC' => esc_html__( 'Descending', 'themeisle-companion' ),
46
+ 'ASC' => esc_html__( 'Ascending', 'themeisle-companion' ),
47
  ),
48
  ),
49
  $settings
53
  FLBuilder::render_settings_field(
54
  'order_by',
55
  array(
56
+ 'type' => 'select',
57
+ 'label' => esc_html__( 'Order By', 'themeisle-companion' ),
58
+ 'options' => array(
59
  'author' => esc_html__( 'Author', 'themeisle-companion' ),
60
  'comment_count' => esc_html__( 'Comment Count', 'themeisle-companion' ),
61
  'date' => esc_html__( 'Date', 'themeisle-companion' ),
67
  'rand' => esc_html__( 'Random', 'themeisle-companion' ),
68
  'title' => esc_html__( 'Title', 'themeisle-companion' ),
69
  ),
70
+ 'toggle' => array(
71
+ 'meta_value' => array(
72
+ 'fields' => array( 'order_by_meta_key' ),
73
  ),
74
  'meta_value_num' => array(
75
+ 'fields' => array( 'order_by_meta_key' ),
76
  ),
77
  ),
78
  ),
83
  FLBuilder::render_settings_field(
84
  'order_by_meta_key',
85
  array(
86
+ 'type' => 'text',
87
+ 'label' => esc_html__( 'Meta Key', 'themeisle-companion' ),
88
  ),
89
  $settings
90
  );
93
  FLBuilder::render_settings_field(
94
  'offset',
95
  array(
96
+ 'type' => 'text',
97
+ 'label' => _x( 'Offset', 'How many posts to skip.', 'themeisle-companion' ),
98
+ 'default' => '0',
99
+ 'size' => '4',
100
+ 'help' => esc_html__( 'Skip this many posts that match the specified criteria.', 'themeisle-companion' ),
101
  ),
102
  $settings
103
  );
106
  FLBuilder::render_settings_field(
107
  'posts_per_page',
108
  array(
109
+ 'type' => 'obfx_number',
110
+ 'label' => esc_html__( 'Posts per page', 'themeisle-companion' ),
111
+ 'default' => $default_posts_per_page,
112
+ 'min' => '-1',
113
+ 'help' => esc_html__( '-1 means all posts', 'themeisle-companion' ),
114
  ),
115
  $settings
116
  );
119
  FLBuilder::render_settings_field(
120
  'columns',
121
  array(
122
+ 'type' => 'obfx_number',
123
+ 'label' => esc_html__( 'Number of columns', 'themeisle-companion' ),
124
+ 'default' => '3',
125
+ 'min' => '1',
126
+ 'max' => '5',
127
  ),
128
  $settings
129
  );
131
  </table>
132
  </div>
133
  <div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
134
+ <h3 class="fl-builder-settings-title"><?php esc_attr_e( 'Filter', 'themeisle-companion' ); ?></h3>
135
+ <?php foreach ( FLBuilderLoop::post_types() as $slug => $type ) : //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited ?>
136
+ <table class="fl-form-table fl-custom-query-filter fl-custom-query-<?php echo esc_attr( $slug ); ?>-filter"
137
  <?php
138
  if ( $slug === $settings->post_type ) {
139
  echo 'style="display:table;"';}
145
  FLBuilder::render_settings_field(
146
  'posts_' . $slug,
147
  array(
148
+ 'type' => 'suggest',
149
+ 'action' => 'fl_as_posts',
150
+ 'data' => $slug,
151
+ 'label' => $type->label,
152
+ /*
153
+ * translators: %1$s is Post type label.
154
+ */
155
+ 'help' => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $type->label ),
156
+ 'matching' => true,
157
  ),
158
  $settings
159
  );
161
  // Taxonomies
162
  $taxonomies = FLBuilderLoop::taxonomies( $slug );
163
 
164
+ foreach ( $taxonomies as $tax_slug => $tax ) { //phpcs:ignore: WordPress.WP.GlobalVariablesOverride.OverrideProhibited
165
 
166
  FLBuilder::render_settings_field(
167
  'tax_' . $slug . '_' . $tax_slug,
168
  array(
169
+ 'type' => 'suggest',
170
+ 'action' => 'fl_as_terms',
171
+ 'data' => $tax_slug,
172
+ 'label' => $tax->label,
173
+ /*
174
+ * translators: %1$s is Taxonomy label.
175
+ */
176
+ 'help' => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $tax->label ),
177
+ 'matching' => true,
178
  ),
179
  $settings
180
  );
190
  FLBuilder::render_settings_field(
191
  'users',
192
  array(
193
+ 'type' => 'suggest',
194
+ 'action' => 'fl_as_users',
195
+ 'label' => esc_html__( 'Authors', 'themeisle-companion' ),
196
+ 'help' => esc_html__( 'Enter a list of authors usernames.', 'themeisle-companion' ),
197
+ 'matching' => true,
198
  ),
199
  $settings
200
  );
203
  </table>
204
  </div>
205
  <div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
206
+ <h3 class="fl-builder-settings-title"><?php esc_attr_e( 'Appearance', 'themeisle-companion' ); ?></h3>
207
  <table class="fl-form-table">
208
 
209
  <?php
211
  FLBuilder::render_settings_field(
212
  'card_vertical_align',
213
  array(
214
+ 'type' => 'select',
215
+ 'label' => esc_html__( 'Vertical align', 'themeisle-companion' ),
216
  'default' => 'grid',
217
+ 'options' => array(
218
+ 'top' => esc_html__( 'Top', 'themeisle-companion' ),
219
+ 'middle' => esc_html__( 'Middle', 'themeisle-companion' ),
220
+ 'bottom' => esc_html__( 'Bottom', 'themeisle-companion' ),
221
  ),
222
  ),
223
  $settings
227
  FLBuilder::render_settings_field(
228
  'display_type',
229
  array(
230
+ 'type' => 'select',
231
+ 'label' => esc_html__( 'Display type', 'themeisle-companion' ),
232
  'default' => 'grid',
233
+ 'options' => array(
234
+ 'grid' => esc_html__( 'Grid', 'themeisle-companion' ),
235
+ 'list' => esc_html__( 'List', 'themeisle-companion' ),
236
  ),
237
  ),
238
  $settings
242
  FLBuilder::render_settings_field(
243
  'card_layout',
244
  array(
245
+ 'type' => 'obfx_toggle',
246
+ 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
247
  ),
248
  $settings
249
  );
252
  FLBuilder::render_settings_field(
253
  'card_margin_top',
254
  array(
255
+ 'type' => 'obfx_number',
256
+ 'label' => esc_html__( 'Margin top', 'themeisle-companion' ),
257
+ 'default' => '0',
258
+ 'min' => '0',
259
  ),
260
  $settings
261
  );
264
  FLBuilder::render_settings_field(
265
  'card_margin_bottom',
266
  array(
267
+ 'type' => 'obfx_number',
268
+ 'label' => esc_html__( 'Margin bottom', 'themeisle-companion' ),
269
+ 'default' => '30',
270
+ 'min' => '0',
271
  ),
272
  $settings
273
  );
276
  FLBuilder::render_settings_field(
277
  'post_bg_color',
278
  array(
279
+ 'type' => 'color',
280
+ 'label' => __( 'Background color', 'themeisle-companion' ),
281
+ 'show_reset' => true,
282
+ 'show_alpha' => true,
283
+ 'preview' => array(
284
+ 'type' => 'css',
285
+ 'selector' => '.obfx-post-grid',
286
+ 'property' => 'background-color',
287
  ),
288
 
289
  ),
294
  FLBuilder::render_settings_field(
295
  'post_link_color',
296
  array(
297
+ 'type' => 'color',
298
+ 'label' => __( 'Link color', 'themeisle-companion' ),
299
+ 'show_reset' => true,
300
+ 'preview' => array(
301
+ 'type' => 'css',
302
+ 'selector' => '.obfx-post-grid a, .obfx-post-grid-pagination a',
303
+ 'property' => 'color',
304
  ),
305
  ),
306
  $settings
310
  FLBuilder::render_settings_field(
311
  'post_text_color',
312
  array(
313
+ 'type' => 'color',
314
+ 'label' => __( 'Text color', 'themeisle-companion' ),
315
+ 'show_reset' => true,
316
+ 'preview' => array(
317
+ 'type' => 'css',
318
+ 'selector' => '.obfx-post-grid, .obfx-post-grid-pagination',
319
+ 'property' => 'color',
320
  ),
321
  ),
322
  $settings
obfx_modules/beaver-widgets/modules/post-grid/post-grid.php CHANGED
@@ -4,10 +4,10 @@
4
  $module_directory = $this->get_dir();
5
 
6
  // Include custom fields
7
- require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );
8
 
9
  // Include common functions file.
10
- require_once( $module_directory . '/inc/common-functions.php' );
11
 
12
  /**
13
  * Class PostGridModule
@@ -23,11 +23,11 @@ class PostGridModule extends FLBuilderModule {
23
  public function __construct() {
24
  parent::__construct(
25
  array(
26
- 'name' => esc_html__( 'Post Grid', 'themeisle-companion' ),
27
- 'description' => esc_html__( 'A method to display your posts.', 'themeisle-companion' ),
28
- 'category' => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
29
- 'dir' => BEAVER_WIDGETS_PATH . 'modules/post-grid/',
30
- 'url' => BEAVER_WIDGETS_URL . 'modules/post-grid/',
31
  )
32
  );
33
  }
@@ -36,65 +36,65 @@ class PostGridModule extends FLBuilderModule {
36
  /**
37
  * Register the module and its form settings.
38
  */
39
- $image_sizes = get_intermediate_image_sizes();
40
- $choices = array();
41
  if ( ! empty( $image_sizes ) ) {
42
  foreach ( $image_sizes as $size ) {
43
- $name = str_replace( '_', ' ', $size );
44
- $name = str_replace( '-', ' ', $name );
45
  $choices[ $size ] = ucfirst( $name );
46
  }
47
  }
48
  FLBuilder::register_module(
49
  'PostGridModule',
50
  array(
51
- 'loop_settings' => array(
52
- 'title' => esc_html__( 'Loop Settings', 'themeisle-companion' ),
53
- 'file' => BEAVER_WIDGETS_PATH . 'modules/post-grid/includes/loop-settings.php',
54
  ),
55
- 'image_options' => array(
56
- 'title' => esc_html__( 'Image options', 'themeisle-companion' ), // Tab title
57
  'sections' => array(
58
- 'general' => array(
59
- 'title' => '',
60
  'fields' => array(
61
  'show_post_thumbnail' => array(
62
- 'type' => 'obfx_toggle',
63
- 'label' => esc_html__( 'Show post thumbnail', 'themeisle-companion' ),
64
  'default' => 'yes',
65
  ),
66
  'show_thumbnail_link' => array(
67
- 'type' => 'obfx_toggle',
68
- 'label' => esc_html__( 'Link in thumbnail', 'themeisle-companion' ),
69
  'default' => 'no',
70
  ),
71
- 'thumbnail_shadow' => array(
72
- 'type' => 'obfx_toggle',
73
- 'label' => esc_html__( 'Enable thumbnail shadow', 'themeisle-companion' ),
74
  'default' => 'no',
75
  ),
76
- 'image_size' => array(
77
- 'type' => 'select',
78
- 'label' => esc_html__( 'Image size', 'themeisle-companion' ),
79
  'default' => 'medium_large',
80
- 'options' => $choices,
81
 
82
  ),
83
- 'image_alignment' => array(
84
- 'type' => 'select',
85
- 'label' => esc_html__( 'Image alignment', 'themeisle-companion' ),
86
  'default' => 'center',
87
- 'options' => array(
88
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
89
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
90
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
91
  ),
92
- 'toggle' => array(
93
  'left' => array(
94
- 'fields' => array('thumbnail_margin_left', 'thumbnail_margin_right'),
95
  ),
96
- 'right' => array(
97
- 'fields' => array('thumbnail_margin_left', 'thumbnail_margin_right'),
98
  ),
99
  ),
100
  ),
@@ -102,244 +102,244 @@ FLBuilder::register_module(
102
  ),
103
  'thumbnail_margins' => themeisle_four_fields_control(
104
  array(
105
- 'default' => array(
106
- 'top' => 0,
107
  'bottom' => 30,
108
- 'left' => 0,
109
- 'right' => 0,
110
  ),
111
- 'selector' => '.obfx-post-grid-thumbnail',
112
  'field_name_prefix' => 'thumbnail_margin_',
113
- 'type' => 'margin',
114
  )
115
  ),
116
  ),
117
  ),
118
- 'title_options' => array(
119
- 'title' => esc_html__( 'Title options', 'themeisle-companion' ), // Tab title
120
  'sections' => array(
121
- 'general' => array(
122
- 'title' => '',
123
  'fields' => array(
124
  'show_post_title' => array(
125
- 'type' => 'obfx_toggle',
126
- 'label' => esc_html__( 'Show post title', 'themeisle-companion' ),
127
  'default' => 'yes',
128
  ),
129
- 'show_title_link' => array(
130
- 'type' => 'obfx_toggle',
131
- 'label' => esc_html__( 'Link on title', 'themeisle-companion' ),
132
  'default' => 'yes',
133
  ),
134
  'title_alignment' => array(
135
- 'type' => 'select',
136
- 'label' => esc_html__( 'Title alignment', 'themeisle-companion' ),
137
  'default' => 'center',
138
- 'options' => array(
139
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
140
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
141
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
142
  ),
143
 
144
  ),
145
- 'title_tag' => array(
146
- 'type' => 'select',
147
- 'label' => esc_html__( 'Title tag', 'themeisle-companion' ),
148
  'default' => 'h5',
149
- 'options' => array(
150
- 'h1' => esc_html__( 'H1', 'themeisle-companion' ),
151
- 'h2' => esc_html__( 'H2', 'themeisle-companion' ),
152
- 'h3' => esc_html__( 'H3', 'themeisle-companion' ),
153
- 'h4' => esc_html__( 'H4', 'themeisle-companion' ),
154
- 'h5' => esc_html__( 'H5', 'themeisle-companion' ),
155
- 'h6' => esc_html__( 'H6', 'themeisle-companion' ),
156
  'span' => esc_html__( 'span', 'themeisle-companion' ),
157
- 'p' => esc_html__( 'p', 'themeisle-companion' ),
158
- 'div' => esc_html__( 'div', 'themeisle-companion' ),
159
  ),
160
  ),
161
  ),
162
  ),
163
- 'title_margins' => themeisle_four_fields_control(
164
  array(
165
- 'default' => array(
166
- 'top' => 0,
167
  'bottom' => 0,
168
- 'left' => 0,
169
- 'right' => 0,
170
  ),
171
- 'selector' => '.obfx-post-grid-title',
172
  'field_name_prefix' => 'title_padding_',
173
- 'type' => 'padding',
174
  )
175
  ),
176
  'title_typography' => themeisle_typography_settings(
177
  array(
178
- 'prefix' => 'title_',
179
- 'selector' => '.obfx-post-grid-title',
180
  'font_size_default' => 25,
181
  )
182
  ),
183
  ),
184
  ),
185
- 'meta_options' => array(
186
- 'title' => esc_html__( 'Meta options', 'themeisle-companion' ), // Tab title
187
  'sections' => array(
188
- 'general' => array(
189
- 'title' => '',
190
  'fields' => array(
191
  'show_post_meta' => array(
192
- 'type' => 'obfx_toggle',
193
- 'label' => esc_html__( 'Show post meta', 'themeisle-companion' ),
194
  'default' => 'yes',
195
  ),
196
- 'show_icons' => array(
197
- 'type' => 'obfx_toggle',
198
- 'label' => esc_html__( 'Show icons', 'themeisle-companion' ),
199
  'default' => 'yes',
200
- 'help' => esc_html__( 'If icons doesn\'t show you have to enqueue FontAwesome in your theme.', 'themeisle-companion' ),
201
  ),
202
- 'meta_data' => array(
203
- 'type' => 'select',
204
- 'label' => esc_html__( 'Display', 'themeisle-companion' ),
205
- 'default' => array('author', 'date'),
206
- 'options' => array(
207
- 'author' => esc_html__( 'Author', 'themeisle-companion' ),
208
- 'date' => esc_html__( 'Date', 'themeisle-companion' ),
209
- 'category' => esc_html__( 'Category', 'themeisle-companion' ),
210
- 'tags' => esc_html__( 'Tags', 'themeisle-companion' ),
211
- 'comments' => esc_html__( 'Comments', 'themeisle-companion' ),
212
  ),
213
- 'multi-select' => true,
214
  ),
215
  'meta_alignment' => array(
216
- 'type' => 'select',
217
- 'label' => esc_html__( 'Meta alignment', 'themeisle-companion' ),
218
  'default' => 'center',
219
- 'options' => array(
220
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
221
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
222
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
223
  ),
224
  ),
225
  ),
226
  ),
227
- 'meta_margins' => themeisle_four_fields_control(
228
  array(
229
- 'default' => array(
230
- 'top' => 0,
231
  'bottom' => 0,
232
- 'left' => 0,
233
- 'right' => 0,
234
  ),
235
- 'selector' => '.obfx-post-grid-meta',
236
  'field_name_prefix' => 'meta_padding_',
237
- 'type' => 'padding',
238
  )
239
  ),
240
  'meta_typography' => themeisle_typography_settings(
241
  array(
242
- 'prefix' => 'meta_',
243
- 'selector' => '.obfx-post-grid-meta',
244
  'font_size_default' => 15,
245
  )
246
  ),
247
  ),
248
  ),
249
- 'content_options' => array(
250
- 'title' => esc_html__( 'Content options', 'themeisle-companion' ), // Tab title
251
  'sections' => array(
252
- 'general' => array(
253
- 'title' => '',
254
  'fields' => array(
255
  'show_post_content' => array(
256
- 'type' => 'obfx_toggle',
257
- 'label' => esc_html__( 'Show post content', 'themeisle-companion' ),
258
  'default' => 'yes',
259
  ),
260
- 'show_read_more' => array(
261
- 'type' => 'obfx_toggle',
262
- 'label' => esc_html__( 'Show read more', 'themeisle-companion' ),
263
  'default' => 'yes',
264
  ),
265
- 'content_length' => array(
266
- 'type' => 'obfx_number',
267
- 'label' => esc_html__( 'Number of words', 'themeisle-companion' ),
268
- 'default' => '30',
269
- 'min' => '1',
270
  ),
271
- 'read_more_text' => array(
272
- 'type' => 'text',
273
- 'label' => esc_html__( 'Read more text', 'themeisle-companion' ),
274
- 'default' => esc_html__( 'Read more', 'themeisle-companion' ),
275
- 'maxlength' => '70',
276
- 'size' => '30',
277
- 'preview' => array(
278
- 'type' => 'text',
279
- 'selector' => '.obfx-post-grid-read-more',
280
  ),
281
  ),
282
  'content_alignment' => array(
283
- 'type' => 'select',
284
- 'label' => esc_html__( 'Text alignment', 'themeisle-companion' ),
285
  'default' => 'left',
286
- 'options' => array(
287
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
288
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
289
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
290
  ),
291
 
292
  ),
293
  ),
294
  ),
295
- 'content_margins' => themeisle_four_fields_control(
296
  array(
297
- 'default' => array(
298
- 'top' => 0,
299
  'bottom' => 0,
300
- 'left' => 15,
301
- 'right' => 15,
302
  ),
303
- 'selector' => '.obfx-post-content',
304
  'field_name_prefix' => 'content_padding_',
305
- 'type' => 'padding',
306
  )
307
  ),
308
  'content_typography' => themeisle_typography_settings(
309
  array(
310
- 'prefix' => 'content_',
311
- 'selector' => '.obfx-post-content',
312
  'font_size_default' => 20,
313
  )
314
  ),
315
  ),
316
  ),
317
  'pagination_options' => array(
318
- 'title' => esc_html__( 'Pagination options', 'themeisle-companion' ),
319
  'sections' => array(
320
- 'general' => array(
321
- 'title' => '',
322
  'fields' => array(
323
- 'show_pagination' => array(
324
- 'type' => 'obfx_toggle',
325
- 'label' => esc_html__( 'Enable pagination', 'themeisle-companion' ),
326
  ),
327
  'pagination_alignment' => array(
328
- 'type' => 'select',
329
- 'label' => esc_html__( 'Pagination alignment', 'themeisle-companion' ),
330
  'default' => 'center',
331
- 'options' => array(
332
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
333
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
334
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
335
  ),
336
  ),
337
  ),
338
  ),
339
  'pagination_typography' => themeisle_typography_settings(
340
  array(
341
- 'prefix' => 'pagination_',
342
- 'selector' => '.obfx-post-grid-pagination',
343
  'font_size_default' => 20,
344
  )
345
  ),
4
  $module_directory = $this->get_dir();
5
 
6
  // Include custom fields
7
+ require_once $module_directory . '/custom-fields/toggle-field/toggle_field.php';
8
 
9
  // Include common functions file.
10
+ require_once $module_directory . '/inc/common-functions.php';
11
 
12
  /**
13
  * Class PostGridModule
23
  public function __construct() {
24
  parent::__construct(
25
  array(
26
+ 'name' => esc_html__( 'Post Grid', 'themeisle-companion' ),
27
+ 'description' => esc_html__( 'A method to display your posts.', 'themeisle-companion' ),
28
+ 'category' => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
29
+ 'dir' => BEAVER_WIDGETS_PATH . 'modules/post-grid/',
30
+ 'url' => BEAVER_WIDGETS_URL . 'modules/post-grid/',
31
  )
32
  );
33
  }
36
  /**
37
  * Register the module and its form settings.
38
  */
39
+ $image_sizes = get_intermediate_image_sizes(); //phpcs:ignore WordPressVIPMinimum.VIP.RestrictedFunctions.get_intermediate_image_sizes_get_intermediate_image_sizes
40
+ $choices = array();
41
  if ( ! empty( $image_sizes ) ) {
42
  foreach ( $image_sizes as $size ) {
43
+ $name = str_replace( '_', ' ', $size );
44
+ $name = str_replace( '-', ' ', $name );
45
  $choices[ $size ] = ucfirst( $name );
46
  }
47
  }
48
  FLBuilder::register_module(
49
  'PostGridModule',
50
  array(
51
+ 'loop_settings' => array(
52
+ 'title' => esc_html__( 'Loop Settings', 'themeisle-companion' ),
53
+ 'file' => BEAVER_WIDGETS_PATH . 'modules/post-grid/includes/loop-settings.php',
54
  ),
55
+ 'image_options' => array(
56
+ 'title' => esc_html__( 'Image options', 'themeisle-companion' ), // Tab title
57
  'sections' => array(
58
+ 'general' => array(
59
+ 'title' => '',
60
  'fields' => array(
61
  'show_post_thumbnail' => array(
62
+ 'type' => 'obfx_toggle',
63
+ 'label' => esc_html__( 'Show post thumbnail', 'themeisle-companion' ),
64
  'default' => 'yes',
65
  ),
66
  'show_thumbnail_link' => array(
67
+ 'type' => 'obfx_toggle',
68
+ 'label' => esc_html__( 'Link in thumbnail', 'themeisle-companion' ),
69
  'default' => 'no',
70
  ),
71
+ 'thumbnail_shadow' => array(
72
+ 'type' => 'obfx_toggle',
73
+ 'label' => esc_html__( 'Enable thumbnail shadow', 'themeisle-companion' ),
74
  'default' => 'no',
75
  ),
76
+ 'image_size' => array(
77
+ 'type' => 'select',
78
+ 'label' => esc_html__( 'Image size', 'themeisle-companion' ),
79
  'default' => 'medium_large',
80
+ 'options' => $choices,
81
 
82
  ),
83
+ 'image_alignment' => array(
84
+ 'type' => 'select',
85
+ 'label' => esc_html__( 'Image alignment', 'themeisle-companion' ),
86
  'default' => 'center',
87
+ 'options' => array(
88
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
89
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
90
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
91
  ),
92
+ 'toggle' => array(
93
  'left' => array(
94
+ 'fields' => array( 'thumbnail_margin_left', 'thumbnail_margin_right' ),
95
  ),
96
+ 'right' => array(
97
+ 'fields' => array( 'thumbnail_margin_left', 'thumbnail_margin_right' ),
98
  ),
99
  ),
100
  ),
102
  ),
103
  'thumbnail_margins' => themeisle_four_fields_control(
104
  array(
105
+ 'default' => array(
106
+ 'top' => 0,
107
  'bottom' => 30,
108
+ 'left' => 0,
109
+ 'right' => 0,
110
  ),
111
+ 'selector' => '.obfx-post-grid-thumbnail',
112
  'field_name_prefix' => 'thumbnail_margin_',
113
+ 'type' => 'margin',
114
  )
115
  ),
116
  ),
117
  ),
118
+ 'title_options' => array(
119
+ 'title' => esc_html__( 'Title options', 'themeisle-companion' ), // Tab title
120
  'sections' => array(
121
+ 'general' => array(
122
+ 'title' => '',
123
  'fields' => array(
124
  'show_post_title' => array(
125
+ 'type' => 'obfx_toggle',
126
+ 'label' => esc_html__( 'Show post title', 'themeisle-companion' ),
127
  'default' => 'yes',
128
  ),
129
+ 'show_title_link' => array(
130
+ 'type' => 'obfx_toggle',
131
+ 'label' => esc_html__( 'Link on title', 'themeisle-companion' ),
132
  'default' => 'yes',
133
  ),
134
  'title_alignment' => array(
135
+ 'type' => 'select',
136
+ 'label' => esc_html__( 'Title alignment', 'themeisle-companion' ),
137
  'default' => 'center',
138
+ 'options' => array(
139
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
140
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
141
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
142
  ),
143
 
144
  ),
145
+ 'title_tag' => array(
146
+ 'type' => 'select',
147
+ 'label' => esc_html__( 'Title tag', 'themeisle-companion' ),
148
  'default' => 'h5',
149
+ 'options' => array(
150
+ 'h1' => esc_html__( 'H1', 'themeisle-companion' ),
151
+ 'h2' => esc_html__( 'H2', 'themeisle-companion' ),
152
+ 'h3' => esc_html__( 'H3', 'themeisle-companion' ),
153
+ 'h4' => esc_html__( 'H4', 'themeisle-companion' ),
154
+ 'h5' => esc_html__( 'H5', 'themeisle-companion' ),
155
+ 'h6' => esc_html__( 'H6', 'themeisle-companion' ),
156
  'span' => esc_html__( 'span', 'themeisle-companion' ),
157
+ 'p' => esc_html__( 'p', 'themeisle-companion' ),
158
+ 'div' => esc_html__( 'div', 'themeisle-companion' ),
159
  ),
160
  ),
161
  ),
162
  ),
163
+ 'title_margins' => themeisle_four_fields_control(
164
  array(
165
+ 'default' => array(
166
+ 'top' => 0,
167
  'bottom' => 0,
168
+ 'left' => 0,
169
+ 'right' => 0,
170
  ),
171
+ 'selector' => '.obfx-post-grid-title',
172
  'field_name_prefix' => 'title_padding_',
173
+ 'type' => 'padding',
174
  )
175
  ),
176
  'title_typography' => themeisle_typography_settings(
177
  array(
178
+ 'prefix' => 'title_',
179
+ 'selector' => '.obfx-post-grid-title',
180
  'font_size_default' => 25,
181
  )
182
  ),
183
  ),
184
  ),
185
+ 'meta_options' => array(
186
+ 'title' => esc_html__( 'Meta options', 'themeisle-companion' ), // Tab title
187
  'sections' => array(
188
+ 'general' => array(
189
+ 'title' => '',
190
  'fields' => array(
191
  'show_post_meta' => array(
192
+ 'type' => 'obfx_toggle',
193
+ 'label' => esc_html__( 'Show post meta', 'themeisle-companion' ),
194
  'default' => 'yes',
195
  ),
196
+ 'show_icons' => array(
197
+ 'type' => 'obfx_toggle',
198
+ 'label' => esc_html__( 'Show icons', 'themeisle-companion' ),
199
  'default' => 'yes',
200
+ 'help' => esc_html__( 'If icons doesn\'t show you have to enqueue FontAwesome in your theme.', 'themeisle-companion' ),
201
  ),
202
+ 'meta_data' => array(
203
+ 'type' => 'select',
204
+ 'label' => esc_html__( 'Display', 'themeisle-companion' ),
205
+ 'default' => array( 'author', 'date' ),
206
+ 'options' => array(
207
+ 'author' => esc_html__( 'Author', 'themeisle-companion' ),
208
+ 'date' => esc_html__( 'Date', 'themeisle-companion' ),
209
+ 'category' => esc_html__( 'Category', 'themeisle-companion' ),
210
+ 'tags' => esc_html__( 'Tags', 'themeisle-companion' ),
211
+ 'comments' => esc_html__( 'Comments', 'themeisle-companion' ),
212
  ),
213
+ 'multi-select' => true,
214
  ),
215
  'meta_alignment' => array(
216
+ 'type' => 'select',
217
+ 'label' => esc_html__( 'Meta alignment', 'themeisle-companion' ),
218
  'default' => 'center',
219
+ 'options' => array(
220
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
221
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
222
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
223
  ),
224
  ),
225
  ),
226
  ),
227
+ 'meta_margins' => themeisle_four_fields_control(
228
  array(
229
+ 'default' => array(
230
+ 'top' => 0,
231
  'bottom' => 0,
232
+ 'left' => 0,
233
+ 'right' => 0,
234
  ),
235
+ 'selector' => '.obfx-post-grid-meta',
236
  'field_name_prefix' => 'meta_padding_',
237
+ 'type' => 'padding',
238
  )
239
  ),
240
  'meta_typography' => themeisle_typography_settings(
241
  array(
242
+ 'prefix' => 'meta_',
243
+ 'selector' => '.obfx-post-grid-meta',
244
  'font_size_default' => 15,
245
  )
246
  ),
247
  ),
248
  ),
249
+ 'content_options' => array(
250
+ 'title' => esc_html__( 'Content options', 'themeisle-companion' ), // Tab title
251
  'sections' => array(
252
+ 'general' => array(
253
+ 'title' => '',
254
  'fields' => array(
255
  'show_post_content' => array(
256
+ 'type' => 'obfx_toggle',
257
+ 'label' => esc_html__( 'Show post content', 'themeisle-companion' ),
258
  'default' => 'yes',
259
  ),
260
+ 'show_read_more' => array(
261
+ 'type' => 'obfx_toggle',
262
+ 'label' => esc_html__( 'Show read more', 'themeisle-companion' ),
263
  'default' => 'yes',
264
  ),
265
+ 'content_length' => array(
266
+ 'type' => 'obfx_number',
267
+ 'label' => esc_html__( 'Number of words', 'themeisle-companion' ),
268
+ 'default' => '30',
269
+ 'min' => '1',
270
  ),
271
+ 'read_more_text' => array(
272
+ 'type' => 'text',
273
+ 'label' => esc_html__( 'Read more text', 'themeisle-companion' ),
274
+ 'default' => esc_html__( 'Read more', 'themeisle-companion' ),
275
+ 'maxlength' => '70',
276
+ 'size' => '30',
277
+ 'preview' => array(
278
+ 'type' => 'text',
279
+ 'selector' => '.obfx-post-grid-read-more',
280
  ),
281
  ),
282
  'content_alignment' => array(
283
+ 'type' => 'select',
284
+ 'label' => esc_html__( 'Text alignment', 'themeisle-companion' ),
285
  'default' => 'left',
286
+ 'options' => array(
287
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
288
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
289
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
290
  ),
291
 
292
  ),
293
  ),
294
  ),
295
+ 'content_margins' => themeisle_four_fields_control(
296
  array(
297
+ 'default' => array(
298
+ 'top' => 0,
299
  'bottom' => 0,
300
+ 'left' => 15,
301
+ 'right' => 15,
302
  ),
303
+ 'selector' => '.obfx-post-content',
304
  'field_name_prefix' => 'content_padding_',
305
+ 'type' => 'padding',
306
  )
307
  ),
308
  'content_typography' => themeisle_typography_settings(
309
  array(
310
+ 'prefix' => 'content_',
311
+ 'selector' => '.obfx-post-content',
312
  'font_size_default' => 20,
313
  )
314
  ),
315
  ),
316
  ),
317
  'pagination_options' => array(
318
+ 'title' => esc_html__( 'Pagination options', 'themeisle-companion' ),
319
  'sections' => array(
320
+ 'general' => array(
321
+ 'title' => '',
322
  'fields' => array(
323
+ 'show_pagination' => array(
324
+ 'type' => 'obfx_toggle',
325
+ 'label' => esc_html__( 'Enable pagination', 'themeisle-companion' ),
326
  ),
327
  'pagination_alignment' => array(
328
+ 'type' => 'select',
329
+ 'label' => esc_html__( 'Pagination alignment', 'themeisle-companion' ),
330
  'default' => 'center',
331
+ 'options' => array(
332
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
333
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
334
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
335
  ),
336
  ),
337
  ),
338
  ),
339
  'pagination_typography' => themeisle_typography_settings(
340
  array(
341
+ 'prefix' => 'pagination_',
342
+ 'selector' => '.obfx-post-grid-pagination',
343
  'font_size_default' => 20,
344
  )
345
  ),
obfx_modules/beaver-widgets/modules/pricing-table/includes/frontend.css.php CHANGED
@@ -1,63 +1,63 @@
1
  <?php
2
  $text_position = ! empty( $settings->text_position ) ? $settings->text_position : '';
3
  if ( ! empty( $text_position ) ) {
4
- echo '.fl-node-' . $id . ' .obfx-pricing-plan > div,.fl-node-' . $id . ' .obfx-pricing-plan li{';
5
- echo 'text-align:' . $text_position . ';';
6
  echo '}';
7
  }
8
 
9
- $padding_top = ! empty( $settings->top ) ? $settings->top : '';
10
  $padding_bottom = ! empty( $settings->bottom ) ? $settings->bottom : '';
11
- $padding_left = ! empty( $settings->left ) ? $settings->left : '';
12
- $padding_right = ! empty( $settings->right ) ? $settings->right : '';
13
- echo '.fl-node-' . $id . '.obfx-pricing-header{';
14
- echo ! empty( $padding_top ) ? 'padding-top: ' . $padding_top . 'px;' : '';
15
- echo ! empty( $padding_bottom ) ? 'padding-bottom: ' . $padding_bottom . 'px;' : '';
16
- echo ! empty( $padding_left ) ? 'padding-left: ' . $padding_left . 'px;' : '';
17
- echo ! empty( $padding_right ) ? 'padding-right: ' . $padding_right . 'px;' : '';
18
 
19
- $type = $settings->bg_type;
20
  switch ( $type ) {
21
  case 'color':
22
  $bg_color = ! empty( $settings->header_bg_color ) ? $settings->header_bg_color : '';
23
  if ( ! empty( $bg_color ) ) {
24
  $bg_color = strpos( $bg_color, 'rgba' ) !== false ? 'background-color:' . $bg_color : 'background-color:#' . $bg_color;
25
- echo $bg_color . ';';
26
  }
27
  break;
28
  case 'image':
29
  $bg_image = ! empty( $settings->header_bg_image ) ? $settings->header_bg_image : '';
30
  if ( ! empty( $bg_image ) ) {
31
- echo 'background-image:url(' . wp_get_attachment_url( $bg_image ) . ');';
32
  }
33
  break;
34
  case 'gradient':
35
- $gradient_color1 = ! empty( $settings->gradient_color1 ) ? $settings->gradient_color1 : '';
36
- $gradient_color2 = ! empty( $settings->gradient_color2 ) ? $settings->gradient_color2 : '';
37
  $gradient_orientation = ! empty( $settings->gradient_orientation ) ? $settings->gradient_orientation : '';
38
- $pos1 = 'left';
39
- $pos2 = 'left';
40
- $pos3 = 'to right';
41
  switch ( $gradient_orientation ) {
42
  case 'vertical':
43
  $pos1 = 'top';
44
  $pos2 = 'to bottom';
45
- $type = 'linear-gradient';
46
  break;
47
  case 'diagonal_bottom':
48
  $pos1 = '-45deg';
49
  $pos2 = '135deg';
50
- $type = 'linear-gradient';
51
  break;
52
  case 'diagonal_top':
53
  $pos1 = '45deg';
54
  $pos2 = '45deg';
55
- $type = 'linear-gradient';
56
  break;
57
  case 'radial':
58
  $pos1 = 'center, ellipse cover';
59
  $pos2 = 'ellipse at center';
60
- $type = 'radial-gradient';
61
  break;
62
  }
63
 
@@ -81,22 +81,22 @@ $title_color = ! empty( $settings->title_color ) ? $settings->title_color : '';
81
  if ( ! empty( $title_color ) ) {
82
  $title_color = strpos( $title_color, 'rgba' ) !== false ? $title_color : '#' . $title_color;
83
  }
84
- $title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '';
85
- $title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : '';
86
- $title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '';
87
- $title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : '';
88
- $title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : '';
89
- $title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : '';
90
  $title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '';
91
- echo '.fl-node-' . $id . ' .obfx-pricing-header *:first-child{';
92
- echo ! empty( $title_color ) ? 'color: ' . $title_color . ';' : '';
93
- echo ! empty( $title_font_size ) ? 'font-size: ' . $title_font_size . 'px;' : '';
94
- echo ! empty( $title_font_family ) ? 'font-family: ' . $title_font_family . ';' : '';
95
- echo ! empty( $title_font_weight ) ? 'font-weight: ' . $title_font_weight . ';' : '';
96
- echo ! empty( $title_transform ) ? 'text-transform: ' . $title_transform . ';' : '';
97
- echo ! empty( $title_font_style ) ? 'font-style: ' . $title_font_style . ';' : '';
98
- echo ! empty( $title_line_height ) ? 'line-height: ' . $title_line_height . 'px;' : '';
99
- echo ! empty( $title_letter_spacing ) ? 'letter-spacing: ' . $title_letter_spacing . 'px;' : '';
100
  echo '}';
101
 
102
 
@@ -104,168 +104,168 @@ $subtitle_color = ! empty( $settings->subtitle_color ) ? $settings->subtitle_col
104
  if ( ! empty( $subtitle_color ) ) {
105
  $subtitle_color = strpos( $subtitle_color, 'rgba' ) !== false ? $subtitle_color : '#' . $subtitle_color;
106
  }
107
- $subtitle_font_size = ! empty( $settings->subtitle_font_size ) ? $settings->subtitle_font_size : '';
108
- $subtitle_font_family = ! empty( $settings->subtitle_font_family['family'] ) ? $settings->subtitle_font_family : '';
109
- $subtitle_font_weight = ! empty( $settings->subtitle_font_family['weight'] ) ? $settings->subtitle_font_family : '';
110
- $subtitle_transform = ! empty( $settings->subtitle_transform ) ? $settings->subtitle_transform : '';
111
- $subtitle_font_style = ! empty( $settings->subtitle_font_style ) ? $settings->subtitle_font_style : '';
112
- $subtitle_line_height = ! empty( $settings->subtitle_line_height ) ? $settings->subtitle_line_height : '';
113
  $subtitle_letter_spacing = ! empty( $settings->subtitle_letter_spacing ) ? $settings->subtitle_letter_spacing : '';
114
- echo '.fl-node-' . $id . ' .obfx-pricing-header *:last-child{';
115
- echo ! empty( $subtitle_color ) ? 'color: ' . $subtitle_color . ';' : '';
116
- echo ! empty( $subtitle_font_size ) ? 'font-size: ' . $subtitle_font_size . 'px;' : '';
117
- echo ! empty( $subtitle_font_family ) ? 'font-family: ' . $subtitle_font_family . ';' : '';
118
- echo ! empty( $subtitle_font_weight ) ? 'font-weight: ' . $subtitle_font_weight . ';' : '';
119
- echo ! empty( $subtitle_transform ) ? 'text-transform: ' . $subtitle_transform . ';' : '';
120
- echo ! empty( $subtitle_font_style ) ? 'font-style: ' . $subtitle_font_style . ';' : '';
121
- echo ! empty( $subtitle_line_height ) ? 'line-height: ' . $subtitle_line_height . 'px;' : '';
122
- echo ! empty( $subtitle_letter_spacing ) ? 'letter-spacing: ' . $subtitle_letter_spacing . 'px;' : '';
123
  echo '}';
124
 
125
- $price_top = ! empty( $settings->price_top ) ? $settings->price_top : '';
126
- $price_bottom = ! empty( $settings->price_bottom ) ? $settings->price_bottom : '';
127
- $price_left = ! empty( $settings->price_left ) ? $settings->price_left : '';
128
- $price_right = ! empty( $settings->price_right ) ? $settings->price_right : '';
129
- $price_font_size = ! empty( $settings->price_font_size ) ? $settings->price_font_size : '';
130
- $price_font_family = ! empty( $settings->price_font_family['family'] ) ? $settings->price_font_family['family'] : '';
131
- $price_font_weight = ! empty( $settings->price_font_family['weight'] ) ? $settings->price_font_family['weight'] : '';
132
- $price_transform = ! empty( $settings->price_transform ) ? $settings->price_transform : '';
133
- $price_font_style = ! empty( $settings->price_font_style ) ? $settings->price_font_style : '';
134
- $price_line_height = ! empty( $settings->price_line_height ) ? $settings->price_line_height : '';
135
  $price_letter_spacing = ! empty( $settings->price_letter_spacing ) ? $settings->price_letter_spacing : '';
136
- echo '.fl-node-' . $id . ' .obfx-pricing-price{';
137
- echo ! empty( $price_top ) ? 'padding-top: ' . $price_top . 'px;' : '';
138
- echo ! empty( $price_bottom ) ? 'padding-bottom: ' . $price_bottom . 'px;' : '';
139
- echo ! empty( $price_left ) ? 'padding-left: ' . $price_left . 'px;' : '';
140
- echo ! empty( $price_right ) ? 'padding-right: ' . $price_right . 'px;' : '';
141
- echo ! empty( $price_font_size ) ? 'font-size: ' . $price_font_size . 'px;' : '';
142
- echo ! empty( $price_font_family ) ? 'font-family: ' . $price_font_family . ';' : '';
143
- echo ! empty( $price_font_weight ) ? 'font-weight: ' . $price_font_weight . ';' : '';
144
- echo ! empty( $price_transform ) ? 'text-transform: ' . $price_transform . ';' : '';
145
- echo ! empty( $price_font_style ) ? 'font-style: ' . $price_font_style . ';' : '';
146
- echo ! empty( $price_line_height ) ? 'line-height: ' . $price_line_height . 'px;' : '';
147
- echo ! empty( $price_letter_spacing ) ? 'letter-spacing: ' . $price_letter_spacing . 'px;' : '';
148
  echo '}';
149
 
150
  if ( ! empty( $settings->price_color ) ) {
151
  $price_color = strpos( $settings->price_color, 'rgba' ) !== false ? $settings->price_color : '#' . $settings->price_color;
152
- echo '.fl-node-' . $id . ' .obfx-pricing-price{';
153
- echo 'color: ' . $price_color . ';';
154
  echo '}';
155
  }
156
 
157
  if ( ! empty( $settings->currency_color ) ) {
158
  $currency_color = strpos( $settings->currency_color, 'rgba' ) !== false ? $settings->currency_color : '#' . $settings->currency_color;
159
- echo '.fl-node-' . $id . ' .obfx-pricing-price sup{';
160
- echo 'color: ' . $currency_color . ';';
161
  echo '}';
162
  }
163
 
164
  if ( ! empty( $settings->period_color ) ) {
165
  $period_color = strpos( $settings->period_color, 'rgba' ) !== false ? $settings->period_color : '#' . $settings->period_color;
166
- echo '.fl-node-' . $id . ' .obfx-pricing-price .obfx-period{';
167
- echo 'color: ' . $period_color . ';';
168
  echo '}';
169
  }
170
- $features_top = ! empty( $settings->features_right ) ? $settings->features_right : '';
171
  $features_bottom = ! empty( $settings->features_right ) ? $settings->features_right : '';
172
- $features_left = ! empty( $settings->features_right ) ? $settings->features_right : '';
173
- $features_right = ! empty( $settings->features_right ) ? $settings->features_right : '';
174
- echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content{';
175
- echo ! empty( $features_top ) ? 'padding-top: ' . $features_top . 'px;' : '';
176
- echo ! empty( $features_bottom ) ? 'padding-bottom: ' . $features_bottom . 'px;' : '';
177
- echo ! empty( $features_left ) ? 'padding-left: ' . $features_left . 'px;' : '';
178
- echo ! empty( $features_right ) ? 'padding-right: ' . $features_right . 'px;' : '';
179
  echo '}';
180
 
181
- $feature_font_size = ! empty( $settings->feature_font_size ) ? $settings->feature_font_size : '';
182
- $feature_transform = ! empty( $settings->feature_transform ) ? $settings->feature_transform : '';
183
- $feature_font_style = ! empty( $settings->feature_font_style ) ? $settings->feature_font_style : '';
184
- $feature_line_height = ! empty( $settings->feature_line_height ) ? $settings->feature_line_height : '';
185
- $feature_letter_spacing = ! empty( $settings->feature_letter_spacing ) ? $settings->feature_letter_spacing : '';
186
- echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content * {';
187
- echo ! empty( $feature_font_size ) ? 'font-size: ' . $feature_font_size . 'px;' : '';
188
- echo ! empty( $feature_transform ) ? 'text-transform: ' . $feature_transform . ';' : '';
189
- echo ! empty( $feature_font_style ) ? 'font-style: ' . $feature_font_style . ';' : '';
190
- echo ! empty( $feature_line_height ) ? 'line-height: ' . $feature_line_height . 'px;' : '';
191
- echo ! empty( $feature_letter_spacing ) ? 'letter-spacing: ' . $feature_letter_spacing . 'px;' : '';
192
  echo '}';
193
 
194
  if ( ! empty( $settings->feature_font_family['family'] ) ) {
195
- echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content:not(i){';
196
- echo 'font-family: ' . $settings->feature_font_family['family'] . ';';
197
  echo '}';
198
  }
199
  if ( ! empty( $settings->feature_font_family['weight'] ) ) {
200
- echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content:not(strong){';
201
- echo 'font-weight: ' . $settings->feature_font_family['weight'] . ';';
202
  echo '}';
203
  }
204
 
205
  if ( ! empty( $settings->icon_color ) ) {
206
  $icon_color = strpos( $settings->icon_color, 'rgba' ) !== false ? $settings->icon_color : '#' . $settings->icon_color;
207
- echo '.fl-node-' . $id . ' .obfx-pricing-feature-content i{';
208
- echo 'color: ' . $icon_color . ';';
209
  echo '}';
210
  }
211
 
212
  if ( ! empty( $settings->bold_color ) ) {
213
  $bold_color = strpos( $settings->bold_color, 'rgba' ) !== false ? $settings->bold_color : '#' . $settings->bold_color;
214
- echo '.fl-node-' . $id . ' .obfx-pricing-feature-content strong{';
215
- echo 'color: ' . $bold_color . ';';
216
  echo '}';
217
  }
218
 
219
  if ( ! empty( $settings->feature_color ) ) {
220
  $feature_color = strpos( $settings->feature_color, 'rgba' ) !== false ? $settings->feature_color : '#' . $settings->feature_color;
221
- echo '.fl-node-' . $id . ' .obfx-pricing-feature-content:not(i):not(strong){';
222
- echo 'color: ' . $feature_color . ';';
223
  echo '}';
224
  }
225
 
226
  $button_margin_bottom = ! empty( $settings->button_margin_bottom ) ? $settings->button_margin_bottom : '';
227
- $button_margin_left = ! empty( $settings->button_margin_left ) ? $settings->button_margin_left : '';
228
- $button_margin_right = ! empty( $settings->button_margin_right ) ? $settings->button_margin_right : '';
229
- $button_margin_top = ! empty( $settings->button_margin_top ) ? $settings->button_margin_top : '';
230
- echo '.fl-node-' . $id . ' .obfx-plan-bottom{';
231
- echo ! empty( $button_margin_bottom ) ? 'margin-bottom: ' . $button_margin_bottom . 'px;' : '';
232
- echo ! empty( $button_margin_left ) ? 'margin-left: ' . $button_margin_left . 'px;' : '';
233
- echo ! empty( $button_margin_right ) ? 'margin-right: ' . $button_margin_right . 'px;' : '';
234
- echo ! empty( $button_margin_top ) ? 'margin-top: ' . $button_margin_top . 'px;' : '';
235
  echo '}';
236
 
237
- $button_padding_top = ! empty( $settings->button_padding_top ) ? $settings->button_padding_top : '';
238
  $button_padding_bottom = ! empty( $settings->button_padding_bottom ) ? $settings->button_padding_bottom : '';
239
- $button_padding_left = ! empty( $settings->button_padding_left ) ? $settings->button_padding_left : '';
240
- $button_padding_right = ! empty( $settings->button_padding_right ) ? $settings->button_padding_right : '';
241
- $button_font_size = ! empty( $settings->button_font_size ) ? $settings->button_font_size : '';
242
- $button_transform = ! empty( $settings->button_transform ) ? $settings->button_transform : '';
243
- $button_font_style = ! empty( $settings->button_font_style ) ? $settings->button_font_style : '';
244
- $button_line_height = ! empty( $settings->button_line_height ) ? $settings->button_line_height : '';
245
  $button_letter_spacing = ! empty( $settings->button_letter_spacing ) ? $settings->button_letter_spacing : '';
246
- $button_font_family = ! empty( $settings->button_font_family['family'] ) ? $settings->button_font_family['family'] : '';
247
- $button_font_weight = ! empty( $settings->button_font_family['weight'] ) ? $settings->button_font_family['weight'] : '';
248
- $button_text_color = ! empty( $settings->button_text_color ) ? ( strpos( $settings->button_text_color, 'rgba' ) !== false ? $settings->button_text_color : '#' . $settings->button_text_color ) : '';
249
- $button_bg_color = ! empty( $settings->button_bg_color ) ? ( strpos( $settings->button_bg_color, 'rgba' ) !== false ? $settings->button_bg_color : '#' . $settings->button_bg_color ) : '';
250
- echo '.fl-node-' . $id . ' .obfx-plan-button{';
251
- echo ! empty( $button_padding_top ) ? 'padding-top: ' . $button_padding_top . 'px;' : '';
252
- echo ! empty( $button_padding_bottom ) ? 'padding-bottom: ' . $button_padding_bottom . 'px;' : '';
253
- echo ! empty( $button_padding_left ) ? 'padding-left: ' . $button_padding_left . 'px;' : '';
254
- echo ! empty( $button_padding_right ) ? 'padding-right: ' . $button_padding_right . 'px;' : '';
255
- echo ! empty( $button_text_color ) ? 'color: ' . $button_text_color . ';' : '';
256
- echo ! empty( $button_bg_color ) ? 'background-color: ' . $button_bg_color . ';' : '';
257
- echo ! empty( $button_font_size ) ? 'font-size: ' . $button_font_size . 'px;' : '';
258
- echo ! empty( $button_transform ) ? 'text-transform: ' . $button_transform . ';' : '';
259
- echo ! empty( $button_font_style ) ? 'font-style: ' . $button_font_style . ';' : '';
260
- echo ! empty( $button_line_height ) ? 'line-height: ' . $button_line_height . 'px;' : '';
261
- echo ! empty( $button_letter_spacing ) ? 'letter-spacing: ' . $button_letter_spacing . 'px;' : '';
262
- echo ! empty( $button_font_family ) ? 'font-family: ' . $button_font_family . ';' : '';
263
- echo ! empty( $button_font_weight ) ? 'font-weight: ' . $button_font_weight . ';' : '';
264
  echo '}';
265
 
266
  $button_text_color_hover = ! empty( $settings->button_text_color_hover ) ? ( strpos( $settings->button_text_color_hover, 'rgba' ) !== false ? $settings->button_text_color_hover : '#' . $settings->button_text_color_hover ) : '';
267
- $button_bg_color_hover = ! empty( $settings->button_bg_color_hover ) ? ( strpos( $settings->button_bg_color_hover, 'rgba' ) !== false ? $settings->button_bg_color_hover : '#' . $settings->button_bg_color_hover ) : '';
268
- echo '.fl-node-' . $id . ' .obfx-plan-button:hover{';
269
- echo ! empty( $button_text_color_hover ) ? 'color: ' . $button_text_color_hover . ';' : '';
270
- echo ! empty( $button_bg_color_hover ) ? 'background-color: ' . $button_bg_color_hover . ';' : '';
271
  echo '}';
1
  <?php
2
  $text_position = ! empty( $settings->text_position ) ? $settings->text_position : '';
3
  if ( ! empty( $text_position ) ) {
4
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-plan > div,.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-plan li{';
5
+ echo 'text-align:' . esc_attr( $text_position ) . ';';
6
  echo '}';
7
  }
8
 
9
+ $padding_top = ! empty( $settings->top ) ? $settings->top : '';
10
  $padding_bottom = ! empty( $settings->bottom ) ? $settings->bottom : '';
11
+ $padding_left = ! empty( $settings->left ) ? $settings->left : '';
12
+ $padding_right = ! empty( $settings->right ) ? $settings->right : '';
13
+ echo '.fl-node-' . esc_attr( $id ) . '.obfx-pricing-header{';
14
+ echo ! empty( $padding_top ) ? 'padding-top: ' . esc_attr( $padding_top ) . 'px;' : '';
15
+ echo ! empty( $padding_bottom ) ? 'padding-bottom: ' . esc_attr( $padding_bottom ) . 'px;' : '';
16
+ echo ! empty( $padding_left ) ? 'padding-left: ' . esc_attr( $padding_left ) . 'px;' : '';
17
+ echo ! empty( $padding_right ) ? 'padding-right: ' . esc_attr( $padding_right ) . 'px;' : '';
18
 
19
+ $type = $settings->bg_type; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
20
  switch ( $type ) {
21
  case 'color':
22
  $bg_color = ! empty( $settings->header_bg_color ) ? $settings->header_bg_color : '';
23
  if ( ! empty( $bg_color ) ) {
24
  $bg_color = strpos( $bg_color, 'rgba' ) !== false ? 'background-color:' . $bg_color : 'background-color:#' . $bg_color;
25
+ echo esc_attr( $bg_color ) . ';';
26
  }
27
  break;
28
  case 'image':
29
  $bg_image = ! empty( $settings->header_bg_image ) ? $settings->header_bg_image : '';
30
  if ( ! empty( $bg_image ) ) {
31
+ echo 'background-image:url(' . esc_url( wp_get_attachment_url( $bg_image ) ) . ');';
32
  }
33
  break;
34
  case 'gradient':
35
+ $gradient_color1 = ! empty( $settings->gradient_color1 ) ? $settings->gradient_color1 : '';
36
+ $gradient_color2 = ! empty( $settings->gradient_color2 ) ? $settings->gradient_color2 : '';
37
  $gradient_orientation = ! empty( $settings->gradient_orientation ) ? $settings->gradient_orientation : '';
38
+ $pos1 = 'left';
39
+ $pos2 = 'left';
40
+ $pos3 = 'to right';
41
  switch ( $gradient_orientation ) {
42
  case 'vertical':
43
  $pos1 = 'top';
44
  $pos2 = 'to bottom';
45
+ $type = 'linear-gradient'; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
46
  break;
47
  case 'diagonal_bottom':
48
  $pos1 = '-45deg';
49
  $pos2 = '135deg';
50
+ $type = 'linear-gradient'; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
51
  break;
52
  case 'diagonal_top':
53
  $pos1 = '45deg';
54
  $pos2 = '45deg';
55
+ $type = 'linear-gradient'; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
56
  break;
57
  case 'radial':
58
  $pos1 = 'center, ellipse cover';
59
  $pos2 = 'ellipse at center';
60
+ $type = 'radial-gradient'; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
61
  break;
62
  }
63
 
81
  if ( ! empty( $title_color ) ) {
82
  $title_color = strpos( $title_color, 'rgba' ) !== false ? $title_color : '#' . $title_color;
83
  }
84
+ $title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '';
85
+ $title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : '';
86
+ $title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '';
87
+ $title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : '';
88
+ $title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : '';
89
+ $title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : '';
90
  $title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '';
91
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-header *:first-child{';
92
+ echo ! empty( $title_color ) ? 'color: ' . esc_attr( $title_color ) . ';' : '';
93
+ echo ! empty( $title_font_size ) ? 'font-size: ' . esc_attr( $title_font_size ) . 'px;' : '';
94
+ echo ! empty( $title_font_family ) ? 'font-family: ' . esc_attr( $title_font_family ) . ';' : '';
95
+ echo ! empty( $title_font_weight ) ? 'font-weight: ' . esc_attr( $title_font_weight ) . ';' : '';
96
+ echo ! empty( $title_transform ) ? 'text-transform: ' . esc_attr( $title_transform ) . ';' : '';
97
+ echo ! empty( $title_font_style ) ? 'font-style: ' . esc_attr( $title_font_style ) . ';' : '';
98
+ echo ! empty( $title_line_height ) ? 'line-height: ' . esc_attr( $title_line_height ) . 'px;' : '';
99
+ echo ! empty( $title_letter_spacing ) ? 'letter-spacing: ' . esc_attr( $title_letter_spacing ) . 'px;' : '';
100
  echo '}';
101
 
102
 
104
  if ( ! empty( $subtitle_color ) ) {
105
  $subtitle_color = strpos( $subtitle_color, 'rgba' ) !== false ? $subtitle_color : '#' . $subtitle_color;
106
  }
107
+ $subtitle_font_size = ! empty( $settings->subtitle_font_size ) ? $settings->subtitle_font_size : '';
108
+ $subtitle_font_family = ! empty( $settings->subtitle_font_family['family'] ) ? $settings->subtitle_font_family : '';
109
+ $subtitle_font_weight = ! empty( $settings->subtitle_font_family['weight'] ) ? $settings->subtitle_font_family : '';
110
+ $subtitle_transform = ! empty( $settings->subtitle_transform ) ? $settings->subtitle_transform : '';
111
+ $subtitle_font_style = ! empty( $settings->subtitle_font_style ) ? $settings->subtitle_font_style : '';
112
+ $subtitle_line_height = ! empty( $settings->subtitle_line_height ) ? $settings->subtitle_line_height : '';
113
  $subtitle_letter_spacing = ! empty( $settings->subtitle_letter_spacing ) ? $settings->subtitle_letter_spacing : '';
114
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-header *:last-child{';
115
+ echo ! empty( $subtitle_color ) ? 'color: ' . esc_attr( $subtitle_color ) . ';' : '';
116
+ echo ! empty( $subtitle_font_size ) ? 'font-size: ' . esc_attr( $subtitle_font_size ) . 'px;' : '';
117
+ echo ! empty( $subtitle_font_family ) ? 'font-family: ' . esc_attr( $subtitle_font_family ) . ';' : '';
118
+ echo ! empty( $subtitle_font_weight ) ? 'font-weight: ' . esc_attr( $subtitle_font_weight ) . ';' : '';
119
+ echo ! empty( $subtitle_transform ) ? 'text-transform: ' . esc_attr( $subtitle_transform ) . ';' : '';
120
+ echo ! empty( $subtitle_font_style ) ? 'font-style: ' . esc_attr( $subtitle_font_style ) . ';' : '';
121
+ echo ! empty( $subtitle_line_height ) ? 'line-height: ' . esc_attr( $subtitle_line_height ) . 'px;' : '';
122
+ echo ! empty( $subtitle_letter_spacing ) ? 'letter-spacing: ' . esc_attr( $subtitle_letter_spacing ) . 'px;' : '';
123
  echo '}';
124
 
125
+ $price_top = ! empty( $settings->price_top ) ? $settings->price_top : '';
126
+ $price_bottom = ! empty( $settings->price_bottom ) ? $settings->price_bottom : '';
127
+ $price_left = ! empty( $settings->price_left ) ? $settings->price_left : '';
128
+ $price_right = ! empty( $settings->price_right ) ? $settings->price_right : '';
129
+ $price_font_size = ! empty( $settings->price_font_size ) ? $settings->price_font_size : '';
130
+ $price_font_family = ! empty( $settings->price_font_family['family'] ) ? $settings->price_font_family['family'] : '';
131
+ $price_font_weight = ! empty( $settings->price_font_family['weight'] ) ? $settings->price_font_family['weight'] : '';
132
+ $price_transform = ! empty( $settings->price_transform ) ? $settings->price_transform : '';
133
+ $price_font_style = ! empty( $settings->price_font_style ) ? $settings->price_font_style : '';
134
+ $price_line_height = ! empty( $settings->price_line_height ) ? $settings->price_line_height : '';
135
  $price_letter_spacing = ! empty( $settings->price_letter_spacing ) ? $settings->price_letter_spacing : '';
136
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-price{';
137
+ echo ! empty( $price_top ) ? 'padding-top: ' . esc_attr( $price_top ) . 'px;' : '';
138
+ echo ! empty( $price_bottom ) ? 'padding-bottom: ' . esc_attr( $price_bottom ) . 'px;' : '';
139
+ echo ! empty( $price_left ) ? 'padding-left: ' . esc_attr( $price_left ) . 'px;' : '';
140
+ echo ! empty( $price_right ) ? 'padding-right: ' . esc_attr( $price_right ) . 'px;' : '';
141
+ echo ! empty( $price_font_size ) ? 'font-size: ' . esc_attr( $price_font_size ) . 'px;' : '';
142
+ echo ! empty( $price_font_family ) ? 'font-family: ' . esc_attr( $price_font_family ) . ';' : '';
143
+ echo ! empty( $price_font_weight ) ? 'font-weight: ' . esc_attr( $price_font_weight ) . ';' : '';
144
+ echo ! empty( $price_transform ) ? 'text-transform: ' . esc_attr( $price_transform ) . ';' : '';
145
+ echo ! empty( $price_font_style ) ? 'font-style: ' . esc_attr( $price_font_style ) . ';' : '';
146
+ echo ! empty( $price_line_height ) ? 'line-height: ' . esc_attr( $price_line_height ) . 'px;' : '';
147
+ echo ! empty( $price_letter_spacing ) ? 'letter-spacing: ' . esc_attr( $price_letter_spacing ) . 'px;' : '';
148
  echo '}';
149
 
150
  if ( ! empty( $settings->price_color ) ) {
151
  $price_color = strpos( $settings->price_color, 'rgba' ) !== false ? $settings->price_color : '#' . $settings->price_color;
152
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-price{';
153
+ echo 'color: ' . esc_attr( $price_color ) . ';';
154
  echo '}';
155
  }
156
 
157
  if ( ! empty( $settings->currency_color ) ) {
158
  $currency_color = strpos( $settings->currency_color, 'rgba' ) !== false ? $settings->currency_color : '#' . $settings->currency_color;
159
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-price sup{';
160
+ echo 'color: ' . esc_attr( $currency_color ) . ';';
161
  echo '}';
162
  }
163
 
164
  if ( ! empty( $settings->period_color ) ) {
165
  $period_color = strpos( $settings->period_color, 'rgba' ) !== false ? $settings->period_color : '#' . $settings->period_color;
166
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-price .obfx-period{';
167
+ echo 'color: ' . esc_attr( $period_color ) . ';';
168
  echo '}';
169
  }
170
+ $features_top = ! empty( $settings->features_right ) ? $settings->features_right : '';
171
  $features_bottom = ! empty( $settings->features_right ) ? $settings->features_right : '';
172
+ $features_left = ! empty( $settings->features_right ) ? $settings->features_right : '';
173
+ $features_right = ! empty( $settings->features_right ) ? $settings->features_right : '';
174
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-features .obfx-pricing-feature-content{';
175
+ echo ! empty( $features_top ) ? 'padding-top: ' . esc_attr( $features_top ) . 'px;' : '';
176
+ echo ! empty( $features_bottom ) ? 'padding-bottom: ' . esc_attr( $features_bottom ) . 'px;' : '';
177
+ echo ! empty( $features_left ) ? 'padding-left: ' . esc_attr( $features_left ) . 'px;' : '';
178
+ echo ! empty( $features_right ) ? 'padding-right: ' . esc_attr( $features_right ) . 'px;' : '';
179
  echo '}';
180
 
181
+ $feature_font_size = ! empty( $settings->feature_font_size ) ? $settings->feature_font_size : '';
182
+ $feature_transform = ! empty( $settings->feature_transform ) ? $settings->feature_transform : '';
183
+ $feature_font_style = ! empty( $settings->feature_font_style ) ? $settings->feature_font_style : '';
184
+ $feature_line_height = ! empty( $settings->feature_line_height ) ? $settings->feature_line_height : '';
185
+ $feature_letter_spacing = ! empty( $settings->feature_letter_spacing ) ? $settings->feature_letter_spacing : '';
186
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-features .obfx-pricing-feature-content * {';
187
+ echo ! empty( $feature_font_size ) ? 'font-size: ' . esc_attr( $feature_font_size ) . 'px;' : '';
188
+ echo ! empty( $feature_transform ) ? 'text-transform: ' . esc_attr( $feature_transform ) . ';' : '';
189
+ echo ! empty( $feature_font_style ) ? 'font-style: ' . esc_attr( $feature_font_style ) . ';' : '';
190
+ echo ! empty( $feature_line_height ) ? 'line-height: ' . esc_attr( $feature_line_height ) . 'px;' : '';
191
+ echo ! empty( $feature_letter_spacing ) ? 'letter-spacing: ' . esc_attr( $feature_letter_spacing ) . 'px;' : '';
192
  echo '}';
193
 
194
  if ( ! empty( $settings->feature_font_family['family'] ) ) {
195
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-features .obfx-pricing-feature-content:not(i){';
196
+ echo 'font-family: ' . esc_attr( $settings->feature_font_family['family'] ) . ';';
197
  echo '}';
198
  }
199
  if ( ! empty( $settings->feature_font_family['weight'] ) ) {
200
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-features .obfx-pricing-feature-content:not(strong){';
201
+ echo 'font-weight: ' . esc_attr( $settings->feature_font_family['weight'] ) . ';';
202
  echo '}';
203
  }
204
 
205
  if ( ! empty( $settings->icon_color ) ) {
206
  $icon_color = strpos( $settings->icon_color, 'rgba' ) !== false ? $settings->icon_color : '#' . $settings->icon_color;
207
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-feature-content i{';
208
+ echo 'color: ' . esc_attr( $icon_color ) . ';';
209
  echo '}';
210
  }
211
 
212
  if ( ! empty( $settings->bold_color ) ) {
213
  $bold_color = strpos( $settings->bold_color, 'rgba' ) !== false ? $settings->bold_color : '#' . $settings->bold_color;
214
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-feature-content strong{';
215
+ echo 'color: ' . esc_attr( $bold_color ) . ';';
216
  echo '}';
217
  }
218
 
219
  if ( ! empty( $settings->feature_color ) ) {
220
  $feature_color = strpos( $settings->feature_color, 'rgba' ) !== false ? $settings->feature_color : '#' . $settings->feature_color;
221
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-pricing-feature-content:not(i):not(strong){';
222
+ echo 'color: ' . esc_attr( $feature_color ) . ';';
223
  echo '}';
224
  }
225
 
226
  $button_margin_bottom = ! empty( $settings->button_margin_bottom ) ? $settings->button_margin_bottom : '';
227
+ $button_margin_left = ! empty( $settings->button_margin_left ) ? $settings->button_margin_left : '';
228
+ $button_margin_right = ! empty( $settings->button_margin_right ) ? $settings->button_margin_right : '';
229
+ $button_margin_top = ! empty( $settings->button_margin_top ) ? $settings->button_margin_top : '';
230
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-plan-bottom{';
231
+ echo ! empty( $button_margin_bottom ) ? 'margin-bottom: ' . esc_attr( $button_margin_bottom ) . 'px;' : '';
232
+ echo ! empty( $button_margin_left ) ? 'margin-left: ' . esc_attr( $button_margin_left ) . 'px;' : '';
233
+ echo ! empty( $button_margin_right ) ? 'margin-right: ' . esc_attr( $button_margin_right ) . 'px;' : '';
234
+ echo ! empty( $button_margin_top ) ? 'margin-top: ' . esc_attr( $button_margin_top ) . 'px;' : '';
235
  echo '}';
236
 
237
+ $button_padding_top = ! empty( $settings->button_padding_top ) ? $settings->button_padding_top : '';
238
  $button_padding_bottom = ! empty( $settings->button_padding_bottom ) ? $settings->button_padding_bottom : '';
239
+ $button_padding_left = ! empty( $settings->button_padding_left ) ? $settings->button_padding_left : '';
240
+ $button_padding_right = ! empty( $settings->button_padding_right ) ? $settings->button_padding_right : '';
241
+ $button_font_size = ! empty( $settings->button_font_size ) ? $settings->button_font_size : '';
242
+ $button_transform = ! empty( $settings->button_transform ) ? $settings->button_transform : '';
243
+ $button_font_style = ! empty( $settings->button_font_style ) ? $settings->button_font_style : '';
244
+ $button_line_height = ! empty( $settings->button_line_height ) ? $settings->button_line_height : '';
245
  $button_letter_spacing = ! empty( $settings->button_letter_spacing ) ? $settings->button_letter_spacing : '';
246
+ $button_font_family = ! empty( $settings->button_font_family['family'] ) ? $settings->button_font_family['family'] : '';
247
+ $button_font_weight = ! empty( $settings->button_font_family['weight'] ) ? $settings->button_font_family['weight'] : '';
248
+ $button_text_color = ! empty( $settings->button_text_color ) ? ( strpos( $settings->button_text_color, 'rgba' ) !== false ? $settings->button_text_color : '#' . $settings->button_text_color ) : '';
249
+ $button_bg_color = ! empty( $settings->button_bg_color ) ? ( strpos( $settings->button_bg_color, 'rgba' ) !== false ? $settings->button_bg_color : '#' . $settings->button_bg_color ) : '';
250
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-plan-button{';
251
+ echo ! empty( $button_padding_top ) ? 'padding-top: ' . esc_attr( $button_padding_top ) . 'px;' : '';
252
+ echo ! empty( $button_padding_bottom ) ? 'padding-bottom: ' . esc_attr( $button_padding_bottom ) . 'px;' : '';
253
+ echo ! empty( $button_padding_left ) ? 'padding-left: ' . esc_attr( $button_padding_left ) . 'px;' : '';
254
+ echo ! empty( $button_padding_right ) ? 'padding-right: ' . esc_attr( $button_padding_right ) . 'px;' : '';
255
+ echo ! empty( $button_text_color ) ? 'color: ' . esc_attr( $button_text_color ) . ';' : '';
256
+ echo ! empty( $button_bg_color ) ? 'background-color: ' . esc_attr( $button_bg_color ) . ';' : '';
257
+ echo ! empty( $button_font_size ) ? 'font-size: ' . esc_attr( $button_font_size ) . 'px;' : '';
258
+ echo ! empty( $button_transform ) ? 'text-transform: ' . esc_attr( $button_transform ) . ';' : '';
259
+ echo ! empty( $button_font_style ) ? 'font-style: ' . esc_attr( $button_font_style ) . ';' : '';
260
+ echo ! empty( $button_line_height ) ? 'line-height: ' . esc_attr( $button_line_height ) . 'px;' : '';
261
+ echo ! empty( $button_letter_spacing ) ? 'letter-spacing: ' . esc_attr( $button_letter_spacing ) . 'px;' : '';
262
+ echo ! empty( $button_font_family ) ? 'font-family: ' . esc_attr( $button_font_family ) . ';' : '';
263
+ echo ! empty( $button_font_weight ) ? 'font-weight: ' . esc_attr( $button_font_weight ) . ';' : '';
264
  echo '}';
265
 
266
  $button_text_color_hover = ! empty( $settings->button_text_color_hover ) ? ( strpos( $settings->button_text_color_hover, 'rgba' ) !== false ? $settings->button_text_color_hover : '#' . $settings->button_text_color_hover ) : '';
267
+ $button_bg_color_hover = ! empty( $settings->button_bg_color_hover ) ? ( strpos( $settings->button_bg_color_hover, 'rgba' ) !== false ? $settings->button_bg_color_hover : '#' . $settings->button_bg_color_hover ) : '';
268
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-plan-button:hover{';
269
+ echo ! empty( $button_text_color_hover ) ? 'color: ' . esc_attr( $button_text_color_hover ) . ';' : '';
270
+ echo ! empty( $button_bg_color_hover ) ? 'background-color: ' . esc_attr( $button_bg_color_hover ) . ';' : '';
271
  echo '}';
obfx_modules/beaver-widgets/modules/pricing-table/includes/frontend.php CHANGED
@@ -11,8 +11,8 @@ $class_to_add = $settings->card_layout === 'yes' ? 'obfx-card' : '';
11
 
12
  echo '<div class="obfx-pricing-plan ' . esc_attr( $class_to_add ) . '">';
13
  echo '<div class="obfx-pricing-header">';
14
- echo '<' . $settings->plan_title_tag . ' class="obfx-plan-title text-center">' . wp_kses_post( $settings->plan_title ) . '</' . $settings->plan_title_tag . '>';
15
- echo '<' . $settings->plan_subtitle_tag . ' class="obfx-plan-subtitle text-center">' . wp_kses_post( $settings->plan_subtitle ) . '</' . $settings->plan_subtitle_tag . '>';
16
  echo '</div>';
17
  echo '<div class="obfx-pricing-price text-center">';
18
  switch ( $settings->currency_position ) {
@@ -29,9 +29,9 @@ switch ( $settings->currency_position ) {
29
  if ( ! empty( $features ) ) {
30
  echo '<ul class="obfx-pricing-features text-center">';
31
  foreach ( $features as $feature ) {
32
- $icon = ! empty( $feature->icon ) ? $feature->icon : '';
33
- $bold_text = ! empty( $feature->bold_text ) ? $feature->bold_text : '';
34
- $text = ! empty( $feature->text ) ? $feature->text : '';
35
  $section_is_empty = empty( $icon ) && empty( $bold_text ) && empty( $text );
36
  if ( ! $section_is_empty ) {
37
  echo '<li><span class="obfx-pricing-feature-content">';
11
 
12
  echo '<div class="obfx-pricing-plan ' . esc_attr( $class_to_add ) . '">';
13
  echo '<div class="obfx-pricing-header">';
14
+ echo '<' . esc_attr( $settings->plan_title_tag ) . ' class="obfx-plan-title text-center">' . wp_kses_post( $settings->plan_title ) . '</' . esc_attr( $settings->plan_title_tag ) . '>';
15
+ echo '<' . esc_attr( $settings->plan_subtitle_tag ) . ' class="obfx-plan-subtitle text-center">' . wp_kses_post( $settings->plan_subtitle ) . '</' . esc_attr( $settings->plan_subtitle_tag ) . '>';
16
  echo '</div>';
17
  echo '<div class="obfx-pricing-price text-center">';
18
  switch ( $settings->currency_position ) {
29
  if ( ! empty( $features ) ) {
30
  echo '<ul class="obfx-pricing-features text-center">';
31
  foreach ( $features as $feature ) {
32
+ $icon = ! empty( $feature->icon ) ? $feature->icon : '';
33
+ $bold_text = ! empty( $feature->bold_text ) ? $feature->bold_text : '';
34
+ $text = ! empty( $feature->text ) ? $feature->text : '';
35
  $section_is_empty = empty( $icon ) && empty( $bold_text ) && empty( $text );
36
  if ( ! $section_is_empty ) {
37
  echo '<li><span class="obfx-pricing-feature-content">';
obfx_modules/beaver-widgets/modules/pricing-table/pricing-table.php CHANGED
@@ -9,10 +9,10 @@
9
  $module_directory = $this->get_dir();
10
 
11
  // Include common functions file.
12
- require_once( $module_directory . '/inc/common-functions.php' );
13
 
14
  // Include custom fields
15
- require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );
16
 
17
  /**
18
  * Class PricingTableModule
@@ -46,13 +46,13 @@ class PricingTableModule extends FLBuilderModule {
46
  FLBuilder::register_module(
47
  'PricingTableModule',
48
  array(
49
- 'content' => array(
50
- 'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
51
  'sections' => array(
52
- 'header' => array(
53
  'title' => esc_html__( 'Plan Header', 'themeisle-companion' ),
54
  'fields' => array(
55
- 'plan_title' => array(
56
  'type' => 'text',
57
  'label' => esc_html__( 'Title', 'themeisle-companion' ),
58
  'default' => esc_html__( 'Plan title', 'themeisle-companion' ),
@@ -61,7 +61,7 @@ FLBuilder::register_module(
61
  'selector' => '.obfx-plan-title',
62
  ),
63
  ),
64
- 'plan_title_tag' => array(
65
  'type' => 'select',
66
  'label' => esc_html__( 'Title tag', 'themeisle-companion' ),
67
  'default' => 'h2',
@@ -75,7 +75,7 @@ FLBuilder::register_module(
75
  'p' => esc_html__( 'p', 'themeisle-companion' ),
76
  ),
77
  ),
78
- 'plan_subtitle' => array(
79
  'type' => 'text',
80
  'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
81
  'default' => esc_html__( 'Plan subtitle', 'themeisle-companion' ),
@@ -100,10 +100,10 @@ FLBuilder::register_module(
100
  ),
101
  ),
102
  ),
103
- 'price' => array(
104
  'title' => esc_html__( 'Price Tag', 'themeisle-companion' ),
105
  'fields' => array(
106
- 'price' => array(
107
  'type' => 'text',
108
  'label' => esc_html__( 'Price', 'themeisle-companion' ),
109
  'default' => '50',
@@ -112,7 +112,7 @@ FLBuilder::register_module(
112
  'selector' => '.obfx-price',
113
  ),
114
  ),
115
- 'currency' => array(
116
  'type' => 'text',
117
  'label' => esc_html__( 'Currency', 'themeisle-companion' ),
118
  'default' => '$',
@@ -130,7 +130,7 @@ FLBuilder::register_module(
130
  'after' => esc_html__( 'After', 'themeisle-companion' ),
131
  ),
132
  ),
133
- 'period' => array(
134
  'type' => 'text',
135
  'label' => esc_html__( 'Period', 'themeisle-companion' ),
136
  'default' => esc_html__( '/month', 'themeisle-companion' ),
@@ -141,20 +141,20 @@ FLBuilder::register_module(
141
  ),
142
  ),
143
  ),
144
- 'features' => array(
145
- 'title' => esc_html__( 'Features list', 'themeisle-companion' ),
146
  'fields' => array(
147
  'features' => array(
148
- 'multiple' => true,
149
- 'type' => 'form',
150
- 'label' => esc_html__( 'Feature', 'themeisle-companion' ),
151
- 'form' => 'feature_field', // ID of a registered form.
152
- 'preview_text' => 'text', // ID of a field to use for the preview text.
153
  ),
154
  ),
155
  ),
156
- 'button' => array(
157
- 'title' => esc_html__( 'Button', 'themeisle-companion' ),
158
  'fields' => array(
159
  'text' => array(
160
  'type' => 'text',
@@ -166,18 +166,18 @@ FLBuilder::register_module(
166
  ),
167
  ),
168
  'link' => array(
169
- 'type' => 'link',
170
  'label' => esc_html__( 'Button link', 'themeisle-companion' ),
171
  ),
172
  ),
173
  ),
174
  'appearance' => array(
175
- 'title' => esc_html__( 'Appearance', 'themeisle-companion' ),
176
  'fields' => array(
177
- 'card_layout' => array(
178
- 'type' => 'obfx_toggle',
179
- 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
180
- 'default' => 'yes',
181
  ),
182
  'text_position' => array(
183
  'type' => 'select',
@@ -185,7 +185,7 @@ FLBuilder::register_module(
185
  'default' => 'center',
186
  'options' => array(
187
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
188
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
189
  'right' => esc_html__( 'Right', 'themeisle-companion' ),
190
  ),
191
  ),
@@ -193,188 +193,188 @@ FLBuilder::register_module(
193
  ),
194
  ),
195
  ),
196
- 'header_style' => array(
197
- 'title' => esc_html__( 'Header Style', 'themeisle-companion' ),
198
  'sections' => array(
199
- 'header_padding' => themeisle_four_fields_control(
200
  array(
201
- 'default' => array(
202
- 'top' => 15,
203
  'bottom' => 15,
204
- 'left' => 0,
205
- 'right' => 0,
206
  ),
207
- 'selector' => '.obfx-pricing-header',
208
  'field_name_prefix' => '',
209
  )
210
  ),
211
- 'colors' => array(
212
  'title' => esc_html__( 'Colors', 'themeisle-companion' ),
213
  'fields' => array(
214
- 'title_color' => array(
215
- 'type' => 'color',
216
- 'label' => esc_html__( 'Title color', 'themeisle-companion' ),
217
  'preview' => array(
218
- 'type' => 'css',
219
  'rules' => array(
220
  array(
221
  'selector' => '.obfx-pricing-header *:first-child',
222
- 'property' => 'color',
223
  ),
224
  ),
225
  ),
226
  ),
227
  'subtitle_color' => array(
228
- 'type' => 'color',
229
- 'label' => esc_html__( 'Subtitle color', 'themeisle-companion' ),
230
  'preview' => array(
231
- 'type' => 'css',
232
  'rules' => array(
233
  array(
234
  'selector' => '.obfx-pricing-header *:last-child',
235
- 'property' => 'color',
236
  ),
237
  ),
238
  ),
239
  ),
240
  ),
241
  ),
242
- 'title_typography' => themeisle_typography_settings(
243
  array(
244
- 'title' => esc_html__( 'Title typography', 'themeisle-companion' ),
245
- 'prefix' => 'title_',
246
  'selector' => '.obfx-pricing-header *:first-child',
247
  )
248
  ),
249
  'subtitle_typography' => themeisle_typography_settings(
250
  array(
251
- 'title' => esc_html__( 'Subtitle typography', 'themeisle-companion' ),
252
- 'prefix' => 'subtitle_',
253
  'selector' => '.obfx-pricing-header *:last-child',
254
  )
255
  ),
256
- 'header_background' => array(
257
- 'title' => esc_html__( 'Background', 'themeisle-companion' ),
258
  'fields' => array(
259
- 'bg_type' => array(
260
  'type' => 'select',
261
  'label' => esc_html__( 'Type', 'themeisle-companion' ),
262
  'default' => 'color',
263
  'options' => array(
264
- 'color' => esc_html__( 'Color', 'themeisle-companion' ),
265
- 'image' => esc_html__( 'Background', 'themeisle-companion' ),
266
  'gradient' => esc_html__( 'Gradient', 'themeisle-companion' ),
267
  ),
268
- 'toggle' => array(
269
- 'color' => array(
270
- 'fields' => array('header_bg_color'),
271
  ),
272
- 'image' => array(
273
- 'fields' => array('header_bg_image'),
274
  ),
275
  'gradient' => array(
276
- 'fields' => array('gradient_color1', 'gradient_color2', 'gradient_orientation'),
277
  ),
278
  ),
279
  ),
280
- 'header_bg_color' => array(
281
- 'type' => 'color',
282
- 'label' => esc_html__( 'Background color', 'themeisle-companion' ),
283
- 'show_reset' => true,
284
- 'preview' => array(
285
- 'type' => 'css',
286
  'rules' => array(
287
  array(
288
  'selector' => '.obfx-pricing-header',
289
- 'property' => 'background-color',
290
  ),
291
  ),
292
  ),
293
  ),
294
- 'header_bg_image' => array(
295
- 'type' => 'photo',
296
- 'label' => esc_html__( 'Photo Field', 'themeisle-companion' ),
297
- 'show_remove' => true,
298
  ),
299
- 'gradient_color1' => array(
300
- 'type' => 'color',
301
- 'label' => esc_html__( 'Gradient color 1', 'themeisle-companion' ),
302
- 'show_reset' => true,
303
  ),
304
- 'gradient_color2' => array(
305
- 'type' => 'color',
306
- 'label' => esc_html__( 'Gradient color 2', 'themeisle-companion' ),
307
- 'show_reset' => true,
308
  ),
309
  'gradient_orientation' => array(
310
  'type' => 'select',
311
  'label' => esc_html__( 'Orientation', 'themeisle-companion' ),
312
  'default' => 'horizontal',
313
  'options' => array(
314
- 'horizontal' => esc_html__( 'Horizontal', 'themeisle-companion' ),
315
- 'vertical' => esc_html__( 'Vertical', 'themeisle-companion' ),
316
  'diagonal_bottom' => esc_html__( 'Diagonal bottom', 'themeisle-companion' ),
317
- 'diagonal_top' => esc_html__( 'Diagonal top', 'themeisle-companion' ),
318
- 'radial' => esc_html__( 'Radial', 'themeisle-companion' ),
319
  ),
320
  ),
321
  ),
322
  ),
323
  ),
324
  ),
325
- 'price_style' => array(
326
- 'title' => esc_html__( 'Price Style', 'themeisle-companion' ),
327
  'sections' => array(
328
- 'price_padding' => themeisle_four_fields_control(
329
  array(
330
- 'default' => array(
331
- 'top' => 15,
332
  'bottom' => 15,
333
- 'left' => 0,
334
- 'right' => 0,
335
  ),
336
- 'selector' => '.obfx-pricing-price',
337
  'field_name_prefix' => 'price_',
338
  )
339
  ),
340
- 'price_colors' => array(
341
- 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
342
  'fields' => array(
343
- 'price_color' => array(
344
- 'type' => 'color',
345
- 'label' => esc_html__( 'Price color', 'themeisle-companion' ),
346
- 'preview' => array(
347
- 'type' => 'css',
348
- 'rules' => array(
349
  array(
350
- 'selector' => '.obfx-price',
351
- 'property' => 'color',
352
  ),
353
  ),
354
  ),
355
  ),
356
  'currency_color' => array(
357
- 'type' => 'color',
358
- 'label' => esc_html__( 'Currency color', 'themeisle-companion' ),
359
- 'preview' => array(
360
- 'type' => 'css',
361
- 'rules' => array(
362
  array(
363
- 'selector' => '.obfx-pricing-price sup',
364
- 'property' => 'color',
365
  ),
366
  ),
367
  ),
368
  ),
369
- 'period_color' => array(
370
- 'type' => 'color',
371
- 'label' => esc_html__( 'Period color', 'themeisle-companion' ),
372
- 'preview' => array(
373
- 'type' => 'css',
374
- 'rules' => array(
375
  array(
376
- 'selector' => '.obfx-period',
377
- 'property' => 'color',
378
  ),
379
  ),
380
  ),
@@ -383,66 +383,66 @@ FLBuilder::register_module(
383
  ),
384
  'price_typography' => themeisle_typography_settings(
385
  array(
386
- 'prefix' => 'price_',
387
- 'selector' => '.obfx-pricing-price',
388
  'font_size_default' => 40,
389
  )
390
  ),
391
  ),
392
  ),
393
  'features_style' => array(
394
- 'title' => esc_html__( 'Features Style', 'themeisle-companion' ),
395
  'sections' => array(
396
- 'features_padding' => themeisle_four_fields_control(
397
  array(
398
- 'default' => array(
399
- 'top' => 15,
400
  'bottom' => 15,
401
- 'left' => 0,
402
- 'right' => 0,
403
  ),
404
- 'selector' => '.obfx-pricing-price',
405
  'field_name_prefix' => 'features_',
406
  )
407
  ),
408
- 'features_colors' => array(
409
- 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
410
  'fields' => array(
411
- 'icon_color' => array(
412
- 'type' => 'color',
413
- 'label' => esc_html__( 'Icon color', 'themeisle-companion' ),
414
- 'preview' => array(
415
- 'type' => 'css',
416
- 'rules' => array(
417
  array(
418
- 'selector' => '.obfx-pricing-feature-content i',
419
- 'property' => 'color',
420
  ),
421
  ),
422
  ),
423
  ),
424
- 'bold_color' => array(
425
- 'type' => 'color',
426
- 'label' => esc_html__( 'Bold text color', 'themeisle-companion' ),
427
- 'preview' => array(
428
- 'type' => 'css',
429
- 'rules' => array(
430
  array(
431
- 'selector' => '.obfx-pricing-feature-content strong',
432
- 'property' => 'color',
433
  ),
434
  ),
435
  ),
436
  ),
437
  'feature_color' => array(
438
- 'type' => 'color',
439
- 'label' => esc_html__( 'Text color', 'themeisle-companion' ),
440
- 'preview' => array(
441
- 'type' => 'css',
442
- 'rules' => array(
443
  array(
444
- 'selector' => '.obfx-pricing-feature-content:not(i):not(strong)',
445
- 'property' => 'color',
446
  ),
447
  ),
448
  ),
@@ -451,92 +451,92 @@ FLBuilder::register_module(
451
  ),
452
  'feature_typography' => themeisle_typography_settings(
453
  array(
454
- 'prefix' => 'feature_',
455
- 'selector' => '.obfx-pricing-feature-content *',
456
  'font_size_default' => 17,
457
  )
458
  ),
459
  ),
460
  ),
461
- 'button_style' => array(
462
- 'title' => esc_html__( 'Button Style', 'themeisle-companion' ),
463
  'sections' => array(
464
- 'button_margins' => themeisle_four_fields_control(
465
  array(
466
- 'default' => array(
467
- 'top' => 15,
468
  'bottom' => 15,
469
- 'left' => 0,
470
- 'right' => 0,
471
  ),
472
- 'selector' => '.obfx-plan-bottom',
473
  'field_name_prefix' => 'button_margin_',
474
- 'type' => 'margin',
475
  )
476
  ),
477
- 'button_padding' => themeisle_four_fields_control(
478
  array(
479
- 'default' => array(
480
- 'top' => 6,
481
  'bottom' => 6,
482
- 'left' => 12,
483
- 'right' => 12,
484
  ),
485
- 'selector' => '.obfx-plan-button',
486
  'field_name_prefix' => 'button_padding_',
487
  )
488
  ),
489
- 'button_colors' => array(
490
- 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
491
  'fields' => array(
492
- 'button_text_color' => array(
493
- 'type' => 'color',
494
- 'label' => esc_html__( 'Text', 'themeisle-companion' ),
495
- 'preview' => array(
496
- 'type' => 'css',
497
- 'rules' => array(
498
  array(
499
- 'selector' => '.obfx-plan-button',
500
- 'property' => 'color',
501
  ),
502
  ),
503
  ),
504
  ),
505
  'button_text_color_hover' => array(
506
- 'type' => 'color',
507
- 'label' => esc_html__( 'Text on hover', 'themeisle-companion' ),
508
- 'preview' => array(
509
- 'type' => 'css',
510
- 'rules' => array(
511
  array(
512
- 'selector' => '.obfx-plan-button:hover',
513
- 'property' => 'color',
514
  ),
515
  ),
516
  ),
517
  ),
518
- 'button_bg_color' => array(
519
- 'type' => 'color',
520
- 'label' => esc_html__( 'Button background', 'themeisle-companion' ),
521
- 'preview' => array(
522
- 'type' => 'css',
523
- 'rules' => array(
524
  array(
525
- 'selector' => '.obfx-plan-button',
526
- 'property' => 'background-color',
527
  ),
528
  ),
529
  ),
530
  ),
531
- 'button_bg_color_hover' => array(
532
- 'type' => 'color',
533
- 'label' => esc_html__( 'Button background on hover', 'themeisle-companion' ),
534
- 'preview' => array(
535
- 'type' => 'css',
536
- 'rules' => array(
537
  array(
538
- 'selector' => '.obfx-plan-button:hover',
539
- 'property' => 'background-color',
540
  ),
541
  ),
542
  ),
@@ -545,8 +545,8 @@ FLBuilder::register_module(
545
  ),
546
  'button_typography' => themeisle_typography_settings(
547
  array(
548
- 'prefix' => 'button_',
549
- 'selector' => '.obfx-plan-button',
550
  'font_size_default' => 15,
551
  )
552
  ),
@@ -561,24 +561,24 @@ FLBuilder::register_settings_form(
561
  array(
562
  'title' => __( 'Feature', 'themeisle-companion' ),
563
  'tabs' => array(
564
- 'general' => array(
565
- 'title' => esc_html__( 'General', 'themeisle-companion' ),
566
- 'sections' => array(
567
- 'general' => array(
568
- 'title' => '',
569
- 'fields' => array(
570
  'bold_text' => array(
571
  'type' => 'text',
572
  'label' => esc_html__( 'Bold text', 'themeisle-companion' ),
573
  ),
574
- 'text' => array(
575
  'type' => 'text',
576
  'label' => esc_html__( 'Text', 'themeisle-companion' ),
577
  ),
578
- 'icon' => array(
579
- 'type' => 'icon',
580
- 'label' => esc_html__( 'Icon', 'themeisle-companion' ),
581
- 'show_remove' => true,
582
  ),
583
  ),
584
  ),
9
  $module_directory = $this->get_dir();
10
 
11
  // Include common functions file.
12
+ require_once $module_directory . '/inc/common-functions.php';
13
 
14
  // Include custom fields
15
+ require_once $module_directory . '/custom-fields/toggle-field/toggle_field.php';
16
 
17
  /**
18
  * Class PricingTableModule
46
  FLBuilder::register_module(
47
  'PricingTableModule',
48
  array(
49
+ 'content' => array(
50
+ 'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
51
  'sections' => array(
52
+ 'header' => array(
53
  'title' => esc_html__( 'Plan Header', 'themeisle-companion' ),
54
  'fields' => array(
55
+ 'plan_title' => array(
56
  'type' => 'text',
57
  'label' => esc_html__( 'Title', 'themeisle-companion' ),
58
  'default' => esc_html__( 'Plan title', 'themeisle-companion' ),
61
  'selector' => '.obfx-plan-title',
62
  ),
63
  ),
64
+ 'plan_title_tag' => array(
65
  'type' => 'select',
66
  'label' => esc_html__( 'Title tag', 'themeisle-companion' ),
67
  'default' => 'h2',
75
  'p' => esc_html__( 'p', 'themeisle-companion' ),
76
  ),
77
  ),
78
+ 'plan_subtitle' => array(
79
  'type' => 'text',
80
  'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
81
  'default' => esc_html__( 'Plan subtitle', 'themeisle-companion' ),
100
  ),
101
  ),
102
  ),
103
+ 'price' => array(
104
  'title' => esc_html__( 'Price Tag', 'themeisle-companion' ),
105
  'fields' => array(
106
+ 'price' => array(
107
  'type' => 'text',
108
  'label' => esc_html__( 'Price', 'themeisle-companion' ),
109
  'default' => '50',
112
  'selector' => '.obfx-price',
113
  ),
114
  ),
115
+ 'currency' => array(
116
  'type' => 'text',
117
  'label' => esc_html__( 'Currency', 'themeisle-companion' ),
118
  'default' => '$',
130
  'after' => esc_html__( 'After', 'themeisle-companion' ),
131
  ),
132
  ),
133
+ 'period' => array(
134
  'type' => 'text',
135
  'label' => esc_html__( 'Period', 'themeisle-companion' ),
136
  'default' => esc_html__( '/month', 'themeisle-companion' ),
141
  ),
142
  ),
143
  ),
144
+ 'features' => array(
145
+ 'title' => esc_html__( 'Features list', 'themeisle-companion' ),
146
  'fields' => array(
147
  'features' => array(
148
+ 'multiple' => true,
149
+ 'type' => 'form',
150
+ 'label' => esc_html__( 'Feature', 'themeisle-companion' ),
151
+ 'form' => 'feature_field', // ID of a registered form.
152
+ 'preview_text' => 'text', // ID of a field to use for the preview text.
153
  ),
154
  ),
155
  ),
156
+ 'button' => array(
157
+ 'title' => esc_html__( 'Button', 'themeisle-companion' ),
158
  'fields' => array(
159
  'text' => array(
160
  'type' => 'text',
166
  ),
167
  ),
168
  'link' => array(
169
+ 'type' => 'link',
170
  'label' => esc_html__( 'Button link', 'themeisle-companion' ),
171
  ),
172
  ),
173
  ),
174
  'appearance' => array(
175
+ 'title' => esc_html__( 'Appearance', 'themeisle-companion' ),
176
  'fields' => array(
177
+ 'card_layout' => array(
178
+ 'type' => 'obfx_toggle',
179
+ 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
180
+ 'default' => 'yes',
181
  ),
182
  'text_position' => array(
183
  'type' => 'select',
185
  'default' => 'center',
186
  'options' => array(
187
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
188
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
189
  'right' => esc_html__( 'Right', 'themeisle-companion' ),
190
  ),
191
  ),
193
  ),
194
  ),
195
  ),
196
+ 'header_style' => array(
197
+ 'title' => esc_html__( 'Header Style', 'themeisle-companion' ),
198
  'sections' => array(
199
+ 'header_padding' => themeisle_four_fields_control(
200
  array(
201
+ 'default' => array(
202
+ 'top' => 15,
203
  'bottom' => 15,
204
+ 'left' => 0,
205
+ 'right' => 0,
206
  ),
207
+ 'selector' => '.obfx-pricing-header',
208
  'field_name_prefix' => '',
209
  )
210
  ),
211
+ 'colors' => array(
212
  'title' => esc_html__( 'Colors', 'themeisle-companion' ),
213
  'fields' => array(
214
+ 'title_color' => array(
215
+ 'type' => 'color',
216
+ 'label' => esc_html__( 'Title color', 'themeisle-companion' ),
217
  'preview' => array(
218
+ 'type' => 'css',
219
  'rules' => array(
220
  array(
221
  'selector' => '.obfx-pricing-header *:first-child',
222
+ 'property' => 'color',
223
  ),
224
  ),
225
  ),
226
  ),
227
  'subtitle_color' => array(
228
+ 'type' => 'color',
229
+ 'label' => esc_html__( 'Subtitle color', 'themeisle-companion' ),
230
  'preview' => array(
231
+ 'type' => 'css',
232
  'rules' => array(
233
  array(
234
  'selector' => '.obfx-pricing-header *:last-child',
235
+ 'property' => 'color',
236
  ),
237
  ),
238
  ),
239
  ),
240
  ),
241
  ),
242
+ 'title_typography' => themeisle_typography_settings(
243
  array(
244
+ 'title' => esc_html__( 'Title typography', 'themeisle-companion' ),
245
+ 'prefix' => 'title_',
246
  'selector' => '.obfx-pricing-header *:first-child',
247
  )
248
  ),
249
  'subtitle_typography' => themeisle_typography_settings(
250
  array(
251
+ 'title' => esc_html__( 'Subtitle typography', 'themeisle-companion' ),
252
+ 'prefix' => 'subtitle_',
253
  'selector' => '.obfx-pricing-header *:last-child',
254
  )
255
  ),
256
+ 'header_background' => array(
257
+ 'title' => esc_html__( 'Background', 'themeisle-companion' ),
258
  'fields' => array(
259
+ 'bg_type' => array(
260
  'type' => 'select',
261
  'label' => esc_html__( 'Type', 'themeisle-companion' ),
262
  'default' => 'color',
263
  'options' => array(
264
+ 'color' => esc_html__( 'Color', 'themeisle-companion' ),
265
+ 'image' => esc_html__( 'Background', 'themeisle-companion' ),
266
  'gradient' => esc_html__( 'Gradient', 'themeisle-companion' ),
267
  ),
268
+ 'toggle' => array(
269
+ 'color' => array(
270
+ 'fields' => array( 'header_bg_color' ),
271
  ),
272
+ 'image' => array(
273
+ 'fields' => array( 'header_bg_image' ),
274
  ),
275
  'gradient' => array(
276
+ 'fields' => array( 'gradient_color1', 'gradient_color2', 'gradient_orientation' ),
277
  ),
278
  ),
279
  ),
280
+ 'header_bg_color' => array(
281
+ 'type' => 'color',
282
+ 'label' => esc_html__( 'Background color', 'themeisle-companion' ),
283
+ 'show_reset' => true,
284
+ 'preview' => array(
285
+ 'type' => 'css',
286
  'rules' => array(
287
  array(
288
  'selector' => '.obfx-pricing-header',
289
+ 'property' => 'background-color',
290
  ),
291
  ),
292
  ),
293
  ),
294
+ 'header_bg_image' => array(
295
+ 'type' => 'photo',
296
+ 'label' => esc_html__( 'Photo Field', 'themeisle-companion' ),
297
+ 'show_remove' => true,
298
  ),
299
+ 'gradient_color1' => array(
300
+ 'type' => 'color',
301
+ 'label' => esc_html__( 'Gradient color 1', 'themeisle-companion' ),
302
+ 'show_reset' => true,
303
  ),
304
+ 'gradient_color2' => array(
305
+ 'type' => 'color',
306
+ 'label' => esc_html__( 'Gradient color 2', 'themeisle-companion' ),
307
+ 'show_reset' => true,
308
  ),
309
  'gradient_orientation' => array(
310
  'type' => 'select',
311
  'label' => esc_html__( 'Orientation', 'themeisle-companion' ),
312
  'default' => 'horizontal',
313
  'options' => array(
314
+ 'horizontal' => esc_html__( 'Horizontal', 'themeisle-companion' ),
315
+ 'vertical' => esc_html__( 'Vertical', 'themeisle-companion' ),
316
  'diagonal_bottom' => esc_html__( 'Diagonal bottom', 'themeisle-companion' ),
317
+ 'diagonal_top' => esc_html__( 'Diagonal top', 'themeisle-companion' ),
318
+ 'radial' => esc_html__( 'Radial', 'themeisle-companion' ),
319
  ),
320
  ),
321
  ),
322
  ),
323
  ),
324
  ),
325
+ 'price_style' => array(
326
+ 'title' => esc_html__( 'Price Style', 'themeisle-companion' ),
327
  'sections' => array(
328
+ 'price_padding' => themeisle_four_fields_control(
329
  array(
330
+ 'default' => array(
331
+ 'top' => 15,
332
  'bottom' => 15,
333
+ 'left' => 0,
334
+ 'right' => 0,
335
  ),
336
+ 'selector' => '.obfx-pricing-price',
337
  'field_name_prefix' => 'price_',
338
  )
339
  ),
340
+ 'price_colors' => array(
341
+ 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
342
  'fields' => array(
343
+ 'price_color' => array(
344
+ 'type' => 'color',
345
+ 'label' => esc_html__( 'Price color', 'themeisle-companion' ),
346
+ 'preview' => array(
347
+ 'type' => 'css',
348
+ 'rules' => array(
349
  array(
350
+ 'selector' => '.obfx-price',
351
+ 'property' => 'color',
352
  ),
353
  ),
354
  ),
355
  ),
356
  'currency_color' => array(
357
+ 'type' => 'color',
358
+ 'label' => esc_html__( 'Currency color', 'themeisle-companion' ),
359
+ 'preview' => array(
360
+ 'type' => 'css',
361
+ 'rules' => array(
362
  array(
363
+ 'selector' => '.obfx-pricing-price sup',
364
+ 'property' => 'color',
365
  ),
366
  ),
367
  ),
368
  ),
369
+ 'period_color' => array(
370
+ 'type' => 'color',
371
+ 'label' => esc_html__( 'Period color', 'themeisle-companion' ),
372
+ 'preview' => array(
373
+ 'type' => 'css',
374
+ 'rules' => array(
375
  array(
376
+ 'selector' => '.obfx-period',
377
+ 'property' => 'color',
378
  ),
379
  ),
380
  ),
383
  ),
384
  'price_typography' => themeisle_typography_settings(
385
  array(
386
+ 'prefix' => 'price_',
387
+ 'selector' => '.obfx-pricing-price',
388
  'font_size_default' => 40,
389
  )
390
  ),
391
  ),
392
  ),
393
  'features_style' => array(
394
+ 'title' => esc_html__( 'Features Style', 'themeisle-companion' ),
395
  'sections' => array(
396
+ 'features_padding' => themeisle_four_fields_control(
397
  array(
398
+ 'default' => array(
399
+ 'top' => 15,
400
  'bottom' => 15,
401
+ 'left' => 0,
402
+ 'right' => 0,
403
  ),
404
+ 'selector' => '.obfx-pricing-price',
405
  'field_name_prefix' => 'features_',
406
  )
407
  ),
408
+ 'features_colors' => array(
409
+ 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
410
  'fields' => array(
411
+ 'icon_color' => array(
412
+ 'type' => 'color',
413
+ 'label' => esc_html__( 'Icon color', 'themeisle-companion' ),
414
+ 'preview' => array(
415
+ 'type' => 'css',
416
+ 'rules' => array(
417
  array(
418
+ 'selector' => '.obfx-pricing-feature-content i',
419
+ 'property' => 'color',
420
  ),
421
  ),
422
  ),
423
  ),
424
+ 'bold_color' => array(
425
+ 'type' => 'color',
426
+ 'label' => esc_html__( 'Bold text color', 'themeisle-companion' ),
427
+ 'preview' => array(
428
+ 'type' => 'css',
429
+ 'rules' => array(
430
  array(
431
+ 'selector' => '.obfx-pricing-feature-content strong',
432
+ 'property' => 'color',
433
  ),
434
  ),
435
  ),
436
  ),
437
  'feature_color' => array(
438
+ 'type' => 'color',
439
+ 'label' => esc_html__( 'Text color', 'themeisle-companion' ),
440
+ 'preview' => array(
441
+ 'type' => 'css',
442
+ 'rules' => array(
443
  array(
444
+ 'selector' => '.obfx-pricing-feature-content:not(i):not(strong)',
445
+ 'property' => 'color',
446
  ),
447
  ),
448
  ),
451
  ),
452
  'feature_typography' => themeisle_typography_settings(
453
  array(
454
+ 'prefix' => 'feature_',
455
+ 'selector' => '.obfx-pricing-feature-content *',
456
  'font_size_default' => 17,
457
  )
458
  ),
459
  ),
460
  ),
461
+ 'button_style' => array(
462
+ 'title' => esc_html__( 'Button Style', 'themeisle-companion' ),
463
  'sections' => array(
464
+ 'button_margins' => themeisle_four_fields_control(
465
  array(
466
+ 'default' => array(
467
+ 'top' => 15,
468
  'bottom' => 15,
469
+ 'left' => 0,
470
+ 'right' => 0,
471
  ),
472
+ 'selector' => '.obfx-plan-bottom',
473
  'field_name_prefix' => 'button_margin_',
474
+ 'type' => 'margin',
475
  )
476
  ),
477
+ 'button_padding' => themeisle_four_fields_control(
478
  array(
479
+ 'default' => array(
480
+ 'top' => 6,
481
  'bottom' => 6,
482
+ 'left' => 12,
483
+ 'right' => 12,
484
  ),
485
+ 'selector' => '.obfx-plan-button',
486
  'field_name_prefix' => 'button_padding_',
487
  )
488
  ),
489
+ 'button_colors' => array(
490
+ 'title' => esc_html__( 'Colors', 'themeisle-companion' ),
491
  'fields' => array(
492
+ 'button_text_color' => array(
493
+ 'type' => 'color',
494
+ 'label' => esc_html__( 'Text', 'themeisle-companion' ),
495
+ 'preview' => array(
496
+ 'type' => 'css',
497
+ 'rules' => array(
498
  array(
499
+ 'selector' => '.obfx-plan-button',
500
+ 'property' => 'color',
501
  ),
502
  ),
503
  ),
504
  ),
505
  'button_text_color_hover' => array(
506
+ 'type' => 'color',
507
+ 'label' => esc_html__( 'Text on hover', 'themeisle-companion' ),
508
+ 'preview' => array(
509
+ 'type' => 'css',
510
+ 'rules' => array(
511
  array(
512
+ 'selector' => '.obfx-plan-button:hover',
513
+ 'property' => 'color',
514
  ),
515
  ),
516
  ),
517
  ),
518
+ 'button_bg_color' => array(
519
+ 'type' => 'color',
520
+ 'label' => esc_html__( 'Button background', 'themeisle-companion' ),
521
+ 'preview' => array(
522
+ 'type' => 'css',
523
+ 'rules' => array(
524
  array(
525
+ 'selector' => '.obfx-plan-button',
526
+ 'property' => 'background-color',
527
  ),
528
  ),
529
  ),
530
  ),
531
+ 'button_bg_color_hover' => array(
532
+ 'type' => 'color',
533
+ 'label' => esc_html__( 'Button background on hover', 'themeisle-companion' ),
534
+ 'preview' => array(
535
+ 'type' => 'css',
536
+ 'rules' => array(
537
  array(
538
+ 'selector' => '.obfx-plan-button:hover',
539
+ 'property' => 'background-color',
540
  ),
541
  ),
542
  ),
545
  ),
546
  'button_typography' => themeisle_typography_settings(
547
  array(
548
+ 'prefix' => 'button_',
549
+ 'selector' => '.obfx-plan-button',
550
  'font_size_default' => 15,
551
  )
552
  ),
561
  array(
562
  'title' => __( 'Feature', 'themeisle-companion' ),
563
  'tabs' => array(
564
+ 'general' => array(
565
+ 'title' => esc_html__( 'General', 'themeisle-companion' ),
566
+ 'sections' => array(
567
+ 'general' => array(
568
+ 'title' => '',
569
+ 'fields' => array(
570
  'bold_text' => array(
571
  'type' => 'text',
572
  'label' => esc_html__( 'Bold text', 'themeisle-companion' ),
573
  ),
574
+ 'text' => array(
575
  'type' => 'text',
576
  'label' => esc_html__( 'Text', 'themeisle-companion' ),
577
  ),
578
+ 'icon' => array(
579
+ 'type' => 'icon',
580
+ 'label' => esc_html__( 'Icon', 'themeisle-companion' ),
581
+ 'show_remove' => true,
582
  ),
583
  ),
584
  ),
obfx_modules/beaver-widgets/modules/services/includes/frontend.css.php CHANGED
@@ -1,124 +1,124 @@
1
  <?php
2
- $columns = $settings->column_number;
3
  $column_width = 100 / (int) $columns;
4
 
5
- echo '.fl-node-' . $id . ' .obfx-service-wrapper{';
6
  echo 'display:inline-block;';
7
  if ( ! empty( $column_width ) ) {
8
- echo 'width:' . $column_width . '%;';
9
  }
10
  echo 'padding: 0 10px;';
11
  echo '}';
12
 
13
  $bg_color = $settings->background_color;
14
- echo '.fl-node-' . $id . ' .obfx-service{';
15
  if ( ! empty( $bg_color ) ) {
16
- echo 'background:#' . $bg_color . ';';
17
  }
18
  echo '}';
19
 
20
 
21
- $icon_size = $settings->icon_size;
22
- $padding_top = $settings->icon_top;
23
  $padding_bottom = $settings->icon_bottom;
24
- $padding_left = $settings->icon_left;
25
- $padding_right = $settings->icon_right;
26
- $icon_position = $settings->icon_position;
27
 
28
- echo '.fl-node-' . $id . ' .obfx-service-icon{';
29
  if ( ! empty( $icon_size ) ) {
30
- echo 'font-size:' . $icon_size . 'px;';
31
  }
32
  if ( ! empty( $padding_top ) ) {
33
- echo 'padding-top:' . $padding_top . 'px;';
34
  }
35
  if ( ! empty( $padding_bottom ) ) {
36
- echo 'padding-bottom:' . $padding_bottom . 'px;';
37
  }
38
  if ( ! empty( $padding_left ) ) {
39
- echo 'padding-left:' . $padding_left . 'px;';
40
  }
41
  if ( ! empty( $padding_right ) ) {
42
- echo 'padding-right:' . $padding_right . 'px;';
43
  }
44
  if ( ! empty( $icon_position ) && $icon_position !== 'center' ) {
45
- echo 'float:' . $icon_position . ';';
46
  }
47
 
48
  echo '}';
49
 
50
 
51
- $title_color = $settings->title_color;
52
- $title_size = $settings->title_font_size;
53
- $font_family = $settings->title_font_family['family'];
54
- $font_weight = $settings->title_font_family['weight'];
55
- $font_style = $settings->title_font_style;
56
- $transform = $settings->title_transform;
57
- $line_height = $settings->title_line_height;
58
  $letter_spacing = $settings->title_letter_spacing;
59
- echo '.fl-node-' . $id . ' .obfx-service-title{';
60
  if ( ! empty( $title_color ) ) {
61
- echo 'color: #' . $title_color . ';';
62
  }
63
  if ( ! empty( $title_size ) ) {
64
- echo 'font-size:' . $title_size . 'px;';
65
  }
66
  if ( ! empty( $font_family ) ) {
67
- echo 'font-family:' . $font_family . ';';
68
  }
69
  if ( ! empty( $font_weight ) ) {
70
- echo 'font-weight:' . $font_weight . ';';
71
  }
72
  if ( ! empty( $font_style ) ) {
73
- echo 'font-style:' . $font_style . ';';
74
  }
75
  if ( ! empty( $transform ) ) {
76
- echo 'text-transform:' . $transform . ';';
77
  }
78
  if ( ! empty( $line_height ) ) {
79
- echo 'line-height:' . $line_height . 'px;';
80
  }
81
  if ( ! empty( $letter_spacing ) ) {
82
- echo 'letter-spacing:' . $letter_spacing . 'px;';
83
  }
84
  echo '}';
85
 
86
 
87
- $content_color = $settings->content_color;
88
- $content_size = $settings->content_font_size;
89
- $font_family = $settings->content_font_family['family'];
90
- $font_weight = $settings->content_font_family['weight'];
91
- $font_style = $settings->content_font_style;
92
- $transform = $settings->content_transform;
93
- $line_height = $settings->content_line_height;
94
- $alignment = $settings->content_alignment;
95
  $letter_spacing = $settings->content_letter_spacing;
96
- echo '.fl-node-' . $id . ' .obfx-service-content{';
97
  if ( ! empty( $content_color ) ) {
98
- echo 'color: #' . $content_color . ';';
99
  }
100
  if ( ! empty( $content_size ) ) {
101
- echo 'font-size:' . $content_size . 'px;';
102
  }
103
  if ( ! empty( $font_family ) ) {
104
- echo 'font-family:' . $font_family . ';';
105
  }
106
  if ( ! empty( $font_weight ) ) {
107
- echo 'font-weight:' . $font_weight . ';';
108
  }
109
  if ( ! empty( $font_style ) ) {
110
- echo 'font-style:' . $font_style . ';';
111
  }
112
  if ( ! empty( $transform ) ) {
113
- echo 'text-transform:' . $transform . ';';
114
  }
115
  if ( ! empty( $line_height ) ) {
116
- echo 'line-height:' . $line_height . 'px;';
117
  }
118
  if ( ! empty( $alignment ) ) {
119
- echo 'text-align:' . $alignment . ';';
120
  }
121
  if ( ! empty( $letter_spacing ) ) {
122
- echo 'letter-spacing:' . $letter_spacing . 'px;';
123
  }
124
  echo '}';
1
  <?php
2
+ $columns = $settings->column_number;
3
  $column_width = 100 / (int) $columns;
4
 
5
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-service-wrapper{';
6
  echo 'display:inline-block;';
7
  if ( ! empty( $column_width ) ) {
8
+ echo 'width:' . esc_attr( $column_width ) . '%;';
9
  }
10
  echo 'padding: 0 10px;';
11
  echo '}';
12
 
13
  $bg_color = $settings->background_color;
14
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-service{';
15
  if ( ! empty( $bg_color ) ) {
16
+ echo 'background:#' . esc_attr( $bg_color ) . ';';
17
  }
18
  echo '}';
19
 
20
 
21
+ $icon_size = $settings->icon_size;
22
+ $padding_top = $settings->icon_top;
23
  $padding_bottom = $settings->icon_bottom;
24
+ $padding_left = $settings->icon_left;
25
+ $padding_right = $settings->icon_right;
26
+ $icon_position = $settings->icon_position;
27
 
28
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-service-icon{';
29
  if ( ! empty( $icon_size ) ) {
30
+ echo 'font-size:' . esc_attr( $icon_size ) . 'px;';
31
  }
32
  if ( ! empty( $padding_top ) ) {
33
+ echo 'padding-top:' . esc_attr( $padding_top ) . 'px;';
34
  }
35
  if ( ! empty( $padding_bottom ) ) {
36
+ echo 'padding-bottom:' . esc_attr( $padding_bottom ) . 'px;';
37
  }
38
  if ( ! empty( $padding_left ) ) {
39
+ echo 'padding-left:' . esc_attr( $padding_left ) . 'px;';
40
  }
41
  if ( ! empty( $padding_right ) ) {
42
+ echo 'padding-right:' . esc_attr( $padding_right ) . 'px;';
43
  }
44
  if ( ! empty( $icon_position ) && $icon_position !== 'center' ) {
45
+ echo 'float:' . esc_attr( $icon_position ) . ';';
46
  }
47
 
48
  echo '}';
49
 
50
 
51
+ $title_color = $settings->title_color;
52
+ $title_size = $settings->title_font_size;
53
+ $font_family = $settings->title_font_family['family'];
54
+ $font_weight = $settings->title_font_family['weight'];
55
+ $font_style = $settings->title_font_style;
56
+ $transform = $settings->title_transform;
57
+ $line_height = $settings->title_line_height;
58
  $letter_spacing = $settings->title_letter_spacing;
59
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-service-title{';
60
  if ( ! empty( $title_color ) ) {
61
+ echo 'color: #' . esc_attr( $title_color ) . ';';
62
  }
63
  if ( ! empty( $title_size ) ) {
64
+ echo 'font-size:' . esc_attr( $title_size ) . 'px;';
65
  }
66
  if ( ! empty( $font_family ) ) {
67
+ echo 'font-family:' . esc_attr( $font_family ) . ';';
68
  }
69
  if ( ! empty( $font_weight ) ) {
70
+ echo 'font-weight:' . esc_attr( $font_weight ) . ';';
71
  }
72
  if ( ! empty( $font_style ) ) {
73
+ echo 'font-style:' . esc_attr( $font_style ) . ';';
74
  }
75
  if ( ! empty( $transform ) ) {
76
+ echo 'text-transform:' . esc_attr( $transform ) . ';';
77
  }
78
  if ( ! empty( $line_height ) ) {
79
+ echo 'line-height:' . esc_attr( $line_height ) . 'px;';
80
  }
81
  if ( ! empty( $letter_spacing ) ) {
82
+ echo 'letter-spacing:' . esc_attr( $letter_spacing ) . 'px;';
83
  }
84
  echo '}';
85
 
86
 
87
+ $content_color = $settings->content_color;
88
+ $content_size = $settings->content_font_size;
89
+ $font_family = $settings->content_font_family['family'];
90
+ $font_weight = $settings->content_font_family['weight'];
91
+ $font_style = $settings->content_font_style;
92
+ $transform = $settings->content_transform;
93
+ $line_height = $settings->content_line_height;
94
+ $alignment = $settings->content_alignment;
95
  $letter_spacing = $settings->content_letter_spacing;
96
+ echo '.fl-node-' . esc_attr( $id ) . ' .obfx-service-content{';
97
  if ( ! empty( $content_color ) ) {
98
+ echo 'color: #' . esc_attr( $content_color ) . ';';
99
  }
100
  if ( ! empty( $content_size ) ) {
101
+ echo 'font-size:' . esc_attr( $content_size ) . 'px;';
102
  }
103
  if ( ! empty( $font_family ) ) {
104
+ echo 'font-family:' . esc_attr( $font_family ) . ';';
105
  }
106
  if ( ! empty( $font_weight ) ) {
107
+ echo 'font-weight:' . esc_attr( $font_weight ) . ';';
108
  }
109
  if ( ! empty( $font_style ) ) {
110
+ echo 'font-style:' . esc_attr( $font_style ) . ';';
111
  }
112
  if ( ! empty( $transform ) ) {
113
+ echo 'text-transform:' . esc_attr( $transform ) . ';';
114
  }
115
  if ( ! empty( $line_height ) ) {
116
+ echo 'line-height:' . esc_attr( $line_height ) . 'px;';
117
  }
118
  if ( ! empty( $alignment ) ) {
119
+ echo 'text-align:' . esc_attr( $alignment ) . ';';
120
  }
121
  if ( ! empty( $letter_spacing ) ) {
122
+ echo 'letter-spacing:' . esc_attr( $letter_spacing ) . 'px;';
123
  }
124
  echo '}';
obfx_modules/beaver-widgets/modules/services/includes/frontend.php CHANGED
@@ -7,20 +7,20 @@
7
  * $settings The module's settings.
8
  */
9
 
10
- $columns = $settings->column_number;
11
- $services = $settings->services;
12
- $services_nb = sizeof( $services );
13
- $card_layout = $settings->card_layout;
14
  $container_class = $card_layout === 'yes' ? 'obfx-card obfx-service' : 'obfx-service';
15
  if ( ! empty( $columns ) ) {
16
  echo '<div class="obfx-services-section">';
17
  foreach ( $services as $service ) {
18
  echo '<div class="obfx-service-wrapper">';
19
  echo '<div class="' . esc_attr( $container_class ) . '">';
20
- $title = $service->title;
21
- $text = $service->text;
22
- $icon = $service->icon;
23
- $link = $service->link;
24
 
25
  if ( ! empty( $icon ) ) {
26
  $icon_color = ! empty( $service->icon_color ) ? '#' . $service->icon_color : '#d6d6d6';
7
  * $settings The module's settings.
8
  */
9
 
10
+ $columns = $settings->column_number;
11
+ $services = $settings->services;
12
+ $services_nb = count( $services );
13
+ $card_layout = $settings->card_layout;
14
  $container_class = $card_layout === 'yes' ? 'obfx-card obfx-service' : 'obfx-service';
15
  if ( ! empty( $columns ) ) {
16
  echo '<div class="obfx-services-section">';
17
  foreach ( $services as $service ) {
18
  echo '<div class="obfx-service-wrapper">';
19
  echo '<div class="' . esc_attr( $container_class ) . '">';
20
+ $title = $service->title; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
21
+ $text = $service->text;
22
+ $icon = $service->icon;
23
+ $link = $service->link; //phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
24
 
25
  if ( ! empty( $icon ) ) {
26
  $icon_color = ! empty( $service->icon_color ) ? '#' . $service->icon_color : '#d6d6d6';
obfx_modules/beaver-widgets/modules/services/services.php CHANGED
@@ -9,10 +9,10 @@
9
  $module_directory = $this->get_dir();
10
 
11
  // Include common functions file.
12
- require_once( $module_directory . '/inc/common-functions.php' );
13
 
14
  // Include custom fields
15
- require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );
16
 
17
  /**
18
  * Class PricingTableModule
@@ -28,11 +28,11 @@ class ServicesModule extends FLBuilderModule {
28
  public function __construct() {
29
  parent::__construct(
30
  array(
31
- 'name' => esc_html__( 'Services', 'themeisle-companion' ),
32
- 'description' => esc_html__( 'An overview of the products or services.', 'themeisle-companion' ),
33
- 'category' => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
34
- 'dir' => BEAVER_WIDGETS_PATH . 'modules/services/',
35
- 'url' => BEAVER_WIDGETS_URL . 'modules/services/',
36
  )
37
  );
38
  }
@@ -44,20 +44,20 @@ class ServicesModule extends FLBuilderModule {
44
  FLBuilder::register_module(
45
  'ServicesModule',
46
  array(
47
- 'content' => array(
48
- 'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
49
  'sections' => array(
50
  'content' => array(
51
- 'title' => '',
52
  'fields' => array(
53
- 'services' => array(
54
- 'multiple' => true,
55
- 'type' => 'form',
56
- 'label' => esc_html__( 'Service', 'themeisle-companion' ),
57
- 'form' => 'service_content', // ID of a registered form.
58
- 'preview_text' => 'title', // ID of a field to use for the preview text.
59
  ),
60
- 'column_number' => array(
61
  'type' => 'select',
62
  'label' => esc_html__( 'Number of columns', 'themeisle-companion' ),
63
  'default' => '3',
@@ -69,21 +69,21 @@ FLBuilder::register_module(
69
  '5' => esc_html__( '5', 'themeisle-companion' ),
70
  ),
71
  ),
72
- 'card_layout' => array(
73
- 'type' => 'obfx_toggle',
74
- 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
75
- 'default' => 'yes',
76
  ),
77
  'background_color' => array(
78
- 'type' => 'color',
79
- 'label' => esc_html__( 'Background color', 'themeisle-companion' ),
80
  'default' => 'ffffff',
81
  'preview' => array(
82
- 'type' => 'css',
83
  'rules' => array(
84
  array(
85
  'selector' => '.obfx-service',
86
- 'property' => 'background',
87
  ),
88
  ),
89
  ),
@@ -93,36 +93,36 @@ FLBuilder::register_module(
93
  ),
94
  ),
95
  ),
96
- 'icon_style' => array(
97
- 'title' => esc_html__( 'Icon style', 'themeisle-companion' ), // Tab title
98
  'sections' => array(
99
- 'font' => array(
100
- 'title' => esc_html__( 'General', 'themeisle-companion' ),
101
  'fields' => array(
102
  'icon_position' => array(
103
  'type' => 'select',
104
  'label' => esc_html__( 'Position', 'themeisle-companion' ),
105
  'default' => 'center',
106
  'options' => array(
107
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
108
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
109
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
110
  ),
111
  ),
112
- 'icon_size' => array(
113
  'type' => 'text',
114
- 'label' => esc_html__( 'Size', 'themeisle-companion' ),
115
  'description' => esc_html__( 'px', 'themeisle-companion' ),
116
- 'default' => '45',
117
- 'maxlength' => '3',
118
- 'size' => '4',
119
- 'preview' => array(
120
- 'type' => 'css',
121
  'rules' => array(
122
  array(
123
  'selector' => '.obfx-service-icon',
124
- 'property' => 'font-size',
125
- 'unit' => 'px',
126
  ),
127
  ),
128
  ),
@@ -131,33 +131,33 @@ FLBuilder::register_module(
131
  ),
132
  'icon_padding' => themeisle_four_fields_control(
133
  array(
134
- 'default' => array(
135
- 'top' => 30,
136
  'bottom' => 15,
137
- 'left' => 25,
138
- 'right' => 25,
139
  ),
140
- 'selector' => '.obfx-service-icon',
141
  'field_name_prefix' => 'icon_',
142
  )
143
  ),
144
  ),
145
  ),
146
- 'title_style' => array(
147
- 'title' => esc_html__( 'Title style', 'themeisle-companion' ),
148
  'sections' => array(
149
- 'general' => array(
150
- 'title' => esc_html__( 'General', 'themeisle-companion' ),
151
  'fields' => array(
152
  'title_color' => array(
153
- 'type' => 'color',
154
- 'label' => esc_html__( 'Color', 'themeisle-companion' ),
155
  'preview' => array(
156
- 'type' => 'css',
157
  'rules' => array(
158
  array(
159
  'selector' => '.obfx-service-title',
160
- 'property' => 'color',
161
  ),
162
  ),
163
  ),
@@ -166,37 +166,37 @@ FLBuilder::register_module(
166
  ),
167
  'typography' => themeisle_typography_settings(
168
  array(
169
- 'prefix' => 'title_',
170
  'selector' => '.obfx-service-title',
171
  )
172
  ),
173
  ),
174
  ),
175
  'content_style' => array(
176
- 'title' => esc_html__( 'Content style', 'themeisle-companion' ),
177
  'sections' => array(
178
- 'general' => array(
179
- 'title' => esc_html__( 'General', 'themeisle-companion' ),
180
  'fields' => array(
181
  'content_alignment' => array(
182
  'type' => 'select',
183
  'label' => esc_html__( 'Alignment', 'themeisle-companion' ),
184
  'default' => 'center',
185
  'options' => array(
186
- 'left' => esc_html__( 'Left', 'themeisle-companion' ),
187
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
188
- 'right' => esc_html__( 'Right', 'themeisle-companion' ),
189
  ),
190
  ),
191
- 'content_color' => array(
192
- 'type' => 'color',
193
- 'label' => esc_html__( 'Color', 'themeisle-companion' ),
194
  'preview' => array(
195
- 'type' => 'css',
196
  'rules' => array(
197
  array(
198
  'selector' => '.obfx-service-content',
199
- 'property' => 'color',
200
  ),
201
  ),
202
  ),
@@ -205,7 +205,7 @@ FLBuilder::register_module(
205
  ),
206
  'typography' => themeisle_typography_settings(
207
  array(
208
- 'prefix' => 'content_',
209
  'selector' => '.obfx-service-content',
210
  )
211
  ),
@@ -219,34 +219,34 @@ FLBuilder::register_settings_form(
219
  array(
220
  'title' => __( 'Service', 'themeisle-companion' ),
221
  'tabs' => array(
222
- 'general' => array(
223
- 'title' => esc_html__( 'General', 'themeisle-companion' ),
224
- 'sections' => array(
225
- 'general' => array(
226
- 'title' => '',
227
- 'fields' => array(
228
- 'title' => array(
229
  'type' => 'text',
230
  'label' => esc_html__( 'Title', 'themeisle-companion' ),
231
  ),
232
- 'text' => array(
233
- 'type' => 'textarea',
234
- 'label' => esc_html__( 'Text', 'themeisle-companion' ),
235
- 'rows' => '6',
236
  ),
237
- 'icon' => array(
238
- 'type' => 'icon',
239
- 'label' => esc_html__( 'Icon', 'themeisle-companion' ),
240
- 'show_remove' => true,
241
  ),
242
  'icon_color' => array(
243
- 'type' => 'color',
244
- 'label' => esc_html__( 'Icon color', 'themeisle-companion' ),
245
  'default' => 'd6d6d6',
246
  ),
247
- 'link' => array(
248
- 'type' => 'link',
249
- 'label' => esc_html__( 'Link to', 'themeisle-companion' ),
250
  ),
251
  ),
252
  ),
9
  $module_directory = $this->get_dir();
10
 
11
  // Include common functions file.
12
+ require_once $module_directory . '/inc/common-functions.php';
13
 
14
  // Include custom fields
15
+ require_once $module_directory . '/custom-fields/toggle-field/toggle_field.php';
16
 
17
  /**
18
  * Class PricingTableModule
28
  public function __construct() {
29
  parent::__construct(
30
  array(
31
+ 'name' => esc_html__( 'Services', 'themeisle-companion' ),
32
+ 'description' => esc_html__( 'An overview of the products or services.', 'themeisle-companion' ),
33
+ 'category' => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
34
+ 'dir' => BEAVER_WIDGETS_PATH . 'modules/services/',
35
+ 'url' => BEAVER_WIDGETS_URL . 'modules/services/',
36
  )
37
  );
38
  }
44
  FLBuilder::register_module(
45
  'ServicesModule',
46
  array(
47
+ 'content' => array(
48
+ 'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
49
  'sections' => array(
50
  'content' => array(
51
+ 'title' => '',
52
  'fields' => array(
53
+ 'services' => array(
54
+ 'multiple' => true,
55
+ 'type' => 'form',
56
+ 'label' => esc_html__( 'Service', 'themeisle-companion' ),
57
+ 'form' => 'service_content', // ID of a registered form.
58
+ 'preview_text' => 'title', // ID of a field to use for the preview text.
59
  ),
60
+ 'column_number' => array(
61
  'type' => 'select',
62
  'label' => esc_html__( 'Number of columns', 'themeisle-companion' ),
63
  'default' => '3',
69
  '5' => esc_html__( '5', 'themeisle-companion' ),
70
  ),
71
  ),
72
+ 'card_layout' => array(
73
+ 'type' => 'obfx_toggle',
74
+ 'label' => esc_html__( 'Card layout', 'themeisle-companion' ),
75
+ 'default' => 'yes',
76
  ),
77
  'background_color' => array(
78
+ 'type' => 'color',
79
+ 'label' => esc_html__( 'Background color', 'themeisle-companion' ),
80
  'default' => 'ffffff',
81
  'preview' => array(
82
+ 'type' => 'css',
83
  'rules' => array(
84
  array(
85
  'selector' => '.obfx-service',
86
+ 'property' => 'background',
87
  ),
88
  ),
89
  ),
93
  ),
94
  ),
95
  ),
96
+ 'icon_style' => array(
97
+ 'title' => esc_html__( 'Icon style', 'themeisle-companion' ), // Tab title
98
  'sections' => array(
99
+ 'font' => array(
100
+ 'title' => esc_html__( 'General', 'themeisle-companion' ),
101
  'fields' => array(
102
  'icon_position' => array(
103
  'type' => 'select',
104
  'label' => esc_html__( 'Position', 'themeisle-companion' ),
105
  'default' => 'center',
106
  'options' => array(
107
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
108
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
109
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
110
  ),
111
  ),
112
+ 'icon_size' => array(
113
  'type' => 'text',
114
+ 'label' => esc_html__( 'Size', 'themeisle-companion' ),
115
  'description' => esc_html__( 'px', 'themeisle-companion' ),
116
+ 'default' => '45',
117
+ 'maxlength' => '3',
118
+ 'size' => '4',
119
+ 'preview' => array(
120
+ 'type' => 'css',
121
  'rules' => array(
122
  array(
123
  'selector' => '.obfx-service-icon',
124
+ 'property' => 'font-size',
125
+ 'unit' => 'px',
126
  ),
127
  ),
128
  ),
131
  ),
132
  'icon_padding' => themeisle_four_fields_control(
133
  array(
134
+ 'default' => array(
135
+ 'top' => 30,
136
  'bottom' => 15,
137
+ 'left' => 25,
138
+ 'right' => 25,
139
  ),
140
+ 'selector' => '.obfx-service-icon',
141
  'field_name_prefix' => 'icon_',
142
  )
143
  ),
144
  ),
145
  ),
146
+ 'title_style' => array(
147
+ 'title' => esc_html__( 'Title style', 'themeisle-companion' ),
148
  'sections' => array(
149
+ 'general' => array(
150
+ 'title' => esc_html__( 'General', 'themeisle-companion' ),
151
  'fields' => array(
152
  'title_color' => array(
153
+ 'type' => 'color',
154
+ 'label' => esc_html__( 'Color', 'themeisle-companion' ),
155
  'preview' => array(
156
+ 'type' => 'css',
157
  'rules' => array(
158
  array(
159
  'selector' => '.obfx-service-title',
160
+ 'property' => 'color',
161
  ),
162
  ),
163
  ),
166
  ),
167
  'typography' => themeisle_typography_settings(
168
  array(
169
+ 'prefix' => 'title_',
170
  'selector' => '.obfx-service-title',
171
  )
172
  ),
173
  ),
174
  ),
175
  'content_style' => array(
176
+ 'title' => esc_html__( 'Content style', 'themeisle-companion' ),
177
  'sections' => array(
178
+ 'general' => array(
179
+ 'title' => esc_html__( 'General', 'themeisle-companion' ),
180
  'fields' => array(
181
  'content_alignment' => array(
182
  'type' => 'select',
183
  'label' => esc_html__( 'Alignment', 'themeisle-companion' ),
184
  'default' => 'center',
185
  'options' => array(
186
+ 'left' => esc_html__( 'Left', 'themeisle-companion' ),
187
  'center' => esc_html__( 'Center', 'themeisle-companion' ),
188
+ 'right' => esc_html__( 'Right', 'themeisle-companion' ),
189
  ),
190
  ),
191
+ 'content_color' => array(
192
+ 'type' => 'color',
193
+ 'label' => esc_html__( 'Color', 'themeisle-companion' ),
194
  'preview' => array(
195
+ 'type' => 'css',
196
  'rules' => array(
197
  array(
198
  'selector' => '.obfx-service-content',
199
+ 'property' => 'color',
200
  ),
201
  ),
202
  ),
205
  ),
206
  'typography' => themeisle_typography_settings(
207
  array(
208
+ 'prefix' => 'content_',
209
  'selector' => '.obfx-service-content',
210
  )
211
  ),
219
  array(
220
  'title' => __( 'Service', 'themeisle-companion' ),
221
  'tabs' => array(
222
+ 'general' => array(
223
+ 'title' => esc_html__( 'General', 'themeisle-companion' ),
224
+ 'sections' => array(
225
+ 'general' => array(
226
+ 'title' => '',
227
+ 'fields' => array(
228
+ 'title' => array(
229
  'type' => 'text',
230
  'label' => esc_html__( 'Title', 'themeisle-companion' ),
231
  ),
232
+ 'text' => array(
233
+ 'type' => 'textarea',
234
+ 'label' => esc_html__( 'Text', 'themeisle-companion' ),
235
+ 'rows' => '6',
236
  ),
237
+ 'icon' => array(
238
+ 'type' => 'icon',
239
+ 'label' => esc_html__( 'Icon', 'themeisle-companion' ),
240
+ 'show_remove' => true,
241
  ),
242
  'icon_color' => array(
243
+ 'type' => 'color',
244
+ 'label' => esc_html__( 'Icon color', 'themeisle-companion' ),
245
  'default' => 'd6d6d6',
246
  ),
247
+ 'link' => array(
248
+ 'type' => 'link',
249
+ 'label' => esc_html__( 'Link to', 'themeisle-companion' ),
250
  ),
251
  ),
252
  ),
obfx_modules/companion-legacy/inc/azera-shop/css/style.css DELETED
@@ -1,312 +0,0 @@
1
- .azea_shop_only_customizer {
2
- display: none;
3
- }
4
-
5
-
6
- /*---------------------------------------
7
- SECTION: SERVICES
8
- -----------------------------------------*/
9
-
10
- .services-wrap {
11
- position: relative;
12
- padding-bottom: 50px;
13
- text-align: center;
14
- }
15
-
16
- .services {
17
- border-bottom: 1px solid #eaebec;
18
- background-color: #fff;
19
- }
20
-
21
- .single-service {
22
- padding: 40px 20px 40px 20px;
23
- border-radius: 3px;
24
- background: #fff;
25
- -webkit-transition: all ease 0.55s;
26
- transition: all ease 0.55s;
27
- }
28
-
29
- .services-wrap .service-box {
30
- display: inline-block;
31
- width: 100%;
32
- text-align: center;
33
- }
34
-
35
- .single-service > h3 > a:hover,
36
- .service-icon > a:hover {
37
- text-decoration: none;
38
- }
39
-
40
- .services-wrap > .service-box {
41
- width: 31.5%;
42
- margin: 0 1.25% 0 1.25%;
43
- margin-bottom: 30px;
44
- vertical-align: top;
45
- }
46
-
47
- .services-wrap > .service-box:nth-child(3n+1) {
48
- clear: left;
49
- margin-left: 0;
50
- }
51
-
52
- .services-wrap > .service-box:nth-child(3n) {
53
- clear: right;
54
- margin-right: 0;
55
- }
56
-
57
- .single-service .service-icon {
58
- margin-bottom: 35px;
59
- font-size: 60px;
60
- }
61
-
62
- .single-service h3 {
63
- margin-bottom: 15px;
64
- padding-top: 5px;
65
- color: #454545;
66
- }
67
-
68
- .galcolumn .single-service {
69
- width: 100%;
70
- }
71
-
72
- .display-none {
73
- display: none !important;
74
- }
75
-
76
-
77
- /*---------------------------------------
78
- SECTION: TESTIMONIALS
79
- -----------------------------------------*/
80
-
81
- .testimonials {
82
- border-bottom: 1px solid #eaebec;
83
- background-color: #fff;
84
- text-align: center;
85
- }
86
-
87
- .testimonials .section-overlay-layer {
88
- padding-bottom: 20px;
89
- }
90
-
91
- .feedback {
92
- margin-bottom: 45px;
93
- padding: 0 30px;
94
- }
95
-
96
- .feedback .pic-container {
97
- position: absolute;
98
- top: -40px;
99
- width: 100%;
100
- }
101
-
102
- .feedback .pic-container-inner {
103
- display: inline-block;
104
- overflow: hidden;
105
- width: 170px;
106
- height: 170px;
107
- border: 5px solid #e5e5e5;
108
- border-radius: 50%;
109
- background-color: #f5f5f5;
110
- background-clip: padding-box;
111
- box-shadow: 0 0 0 5px #f5f5f5;
112
- }
113
-
114
- .feedback .pic-container img {
115
- width: 100%;
116
- }
117
-
118
- .feedback p {
119
- margin-top: 20px;
120
- margin-bottom: 0;
121
- font-style: italic;
122
- }
123
-
124
- .feedback h5 {
125
- margin-bottom: 0;
126
- }
127
-
128
- .feedback-text-wrap {
129
- padding: 0 20px;
130
- }
131
-
132
- .testimonials-box {
133
- width: 100%;
134
- text-align: center;
135
- }
136
-
137
- .testimonials-wrap {
138
- position: relative;
139
- }
140
-
141
- .testimonials-wrap .testimonials-box {
142
- display: inline-block;
143
- -webkit-transition: all 0.2s ease;
144
- transition: all 0.2s ease;
145
- }
146
-
147
- .testimonials-box .feedback {
148
- position: relative;
149
- margin: 40px 0 30px 0;
150
- padding: 145px 0 40px 0;
151
- border-radius: 3px;
152
- background: #fff;
153
- -webkit-transition: all ease 0.55s;
154
- transition: all ease 0.55s;
155
- }
156
-
157
- .testimonials-box .feedback:hover {
158
- border-bottom-color: rgba(255,162,0,1.00);
159
- }
160
-
161
- .galcolumn .testimonials-box {
162
- width: 100%;
163
- }
164
-
165
- .testimonials-wrap > .testimonials-box {
166
- width: 31.5%;
167
- margin: 0 1.15% 0 1.15%;
168
- margin-bottom: 30px;
169
- vertical-align: top;
170
- }
171
-
172
- .testimonials-wrap > .testimonials-box:nth-child(3n+1) {
173
- clear: left;
174
- margin-left: 0;
175
- }
176
-
177
- .testimonials-wrap > .testimonials-box:nth-child(3n) {
178
- clear: right;
179
- margin-right: 0;
180
- }
181
-
182
-
183
- /*---------------------------------------
184
- SECTION: TEAM
185
- -----------------------------------------*/
186
-
187
- .team {
188
- border-bottom: 1px solid #eaebec;
189
- border-bottom: 1px solid #f3f3f3;
190
- background-color: #fff;
191
- background-repeat: no-repeat;
192
- background-attachment: fixed;
193
- background-position: 50% 50%;
194
- background-size: cover;
195
- }
196
-
197
- .team .section-overlay-layer {
198
- padding-bottom: 50px;
199
- background: rgba(13, 60, 85, 0.8);
200
- }
201
-
202
- .team .sub-heading {
203
- color: #fff;
204
- }
205
-
206
- .team .dark-text {
207
- color: #fff;
208
- }
209
-
210
- .team-member {
211
- overflow: hidden;
212
- position: relative;
213
- min-height: 100px;
214
- margin-bottom: 25px;
215
- border-radius: 50%;
216
- }
217
-
218
- .team-member .social-icons {
219
- position: relative;
220
- margin-top: 5px;
221
- margin-top: 0;
222
- margin-bottom: 0;
223
- opacity: 1;
224
- -webkit-transition: all ease 0.55s;
225
- transition: all ease 0.55s;
226
- }
227
-
228
- .team-member .social-icons li {
229
- display: inline-block;
230
- padding-top: 3px;
231
- padding-right: 5px;
232
- padding-left: 5px;
233
- }
234
-
235
- .team-member .social-icons li a {
236
- opacity: 0.9;
237
- }
238
-
239
- .team-member .social-icons li a:hover {
240
- opacity: 1;
241
- text-decoration: none;
242
- }
243
-
244
- .team-member:hover .social-icons {
245
- opacity: 1;
246
- }
247
-
248
- .member-pic {
249
- width: 183px;
250
- height: 183px;
251
- border: none;
252
- border-radius: 0;
253
- }
254
-
255
- .member-pic img {
256
- width: 183px;
257
- height: 183px;
258
- }
259
-
260
- .member-details {
261
- display: table;
262
- overflow: hidden;
263
- position: absolute;
264
- bottom: 100%;
265
- left: 0;
266
- width: 183px;
267
- height: 183px;
268
- color: #fff;
269
- background: rgba(0,0,0,0);
270
- text-align: center;
271
- -webkit-transition: all 0.3s;
272
- transition: all 0.3s;
273
- }
274
-
275
- .member-details h5 {
276
- margin: 0;
277
- margin-bottom: 5px;
278
- color: #fff;
279
- }
280
-
281
- .team-member-wrap {
282
- text-align: center;
283
- }
284
-
285
- .team-member-wrap .team-member-box {
286
- display: inline-block;
287
- float: none;
288
- margin-right: -4px;
289
- padding-right: 55px;
290
- padding-bottom: 30px;
291
- padding-left: 55px;
292
- vertical-align: top;
293
- }
294
-
295
- .member-details-inner {
296
- display: table-cell;
297
- vertical-align: middle;
298
- }
299
-
300
- .team-member:hover .member-details {
301
- bottom: 0;
302
- background: rgba(255,162,0,0.7);
303
- -webkit-transition: all 0.3s;
304
- transition: all 0.3s;
305
- }
306
-
307
- @media (min-width: 992px) and (max-width: 1200px) {
308
- .team-member-wrap .team-member-box {
309
- padding-right: 30px;
310
- padding-left: 30px;
311
- }
312
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/functions.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
- /*
3
- * Azera Shop Companion
4
- */
5
-
6
- if ( ! function_exists( 'add_action' ) ) {
7
- die( 'Nothing to do...' );
8
- }
9
-
10
- /* Important constants */
11
- define( 'AZERA_SHOP_COMPANION_VERSION', '1.0.7' );
12
- define( 'AZERA_SHOP_COMPANION_URL', plugin_dir_url( __FILE__ ) );
13
- define( 'AZERA_SHOP_COMPANION_PATH', plugin_dir_path( __FILE__ ) );
14
-
15
- /**
16
- * Require section translations
17
- */
18
- require AZERA_SHOP_COMPANION_PATH . 'inc/translations/general.php';
19
-
20
- /* Required helper functions */
21
- include_once( dirname( __FILE__ ) . '/inc/settings.php' );
22
-
23
-
24
- /* Add new sections in Azera Shop */
25
- function azera_shop_companion_sections() {
26
- return array(
27
-
28
- 'sections/azera_shop_logos_section',
29
- 'azera_shop_our_services_section',
30
- 'sections/azera_shop_shop_section',
31
- 'azera_shop_our_team_section',
32
- 'azera_shop_happy_customers_section',
33
- 'sections/azera_shop_shortcodes_section',
34
- 'sections/azera_shop_ribbon_section',
35
- 'sections/azera_shop_contact_info_section',
36
- 'sections/azera_shop_map_section'
37
-
38
- );
39
- }
40
-
41
- /**
42
- * Load sections form the plugin
43
- *
44
- * @since 1.0.0
45
- */
46
- function azera_shop_companion_load_sections() {
47
-
48
- add_filter('azera_shop_companion_sections_filter', 'azera_shop_companion_sections');
49
- }
50
-
51
- add_action( 'plugins_loaded', 'azera_shop_companion_load_sections' );
52
-
53
- /*
54
- * Enqueue styles
55
- */
56
- function azera_shop_companion_register_plugin_styles() {
57
-
58
- wp_enqueue_style( 'azera-shop-companion-style', trailingslashit( AZERA_SHOP_COMPANION_URL ) . 'css/style.css' );
59
-
60
- }
61
-
62
- /* Register style sheet. */
63
- add_action( 'wp_enqueue_scripts', 'azera_shop_companion_register_plugin_styles' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/images/client-no-image.jpg DELETED
Binary file
obfx_modules/companion-legacy/inc/azera-shop/images/team-img.jpg DELETED
Binary file
obfx_modules/companion-legacy/inc/azera-shop/inc/settings.php DELETED
@@ -1,207 +0,0 @@
1
- <?php
2
-
3
- function azera_shop_companion_customize_register( $wp_customize ) {
4
-
5
- if( class_exists('Azera_Shop_General_Repeater') ) {
6
-
7
- /********************************************************/
8
- /****************** SERVICES OPTIONS *******************/
9
- /********************************************************/
10
-
11
- /* SERVICES SECTION */
12
- $wp_customize->add_section( 'azera_shop_services_section' , array(
13
- 'title' => esc_html__( 'Services section', 'themeisle-companion' ),
14
- 'priority' => 4,
15
- 'panel' => 'azera_shop_front_page_sections',
16
- 'active_callback' => 'azera_shop_show_on_front',
17
- ));
18
-
19
- /* Services show/hide */
20
- $wp_customize->add_setting( 'azera_shop_our_services_show', array(
21
- 'sanitize_callback' => 'azera_shop_sanitize_text',
22
- ));
23
-
24
- $wp_customize->add_control( 'azera_shop_our_services_show', array(
25
- 'type' => 'checkbox',
26
- 'label' => __('Disable the Services section?','themeisle-companion'),
27
- 'section' => 'azera_shop_services_section',
28
- 'priority' => 1,
29
- ));
30
-
31
- /* Services title */
32
- $wp_customize->add_setting( 'azera_shop_our_services_title', array(
33
- 'default' => esc_html__('Our Services','themeisle-companion'),
34
- 'sanitize_callback' => 'azera_shop_sanitize_text',
35
- ));
36
- $wp_customize->add_control( 'azera_shop_our_services_title', array(
37
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
38
- 'section' => 'azera_shop_services_section',
39
- 'priority' => 10
40
- ));
41
-
42
- /* Services subtitle */
43
- $wp_customize->add_setting( 'azera_shop_our_services_subtitle', array(
44
- 'default' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipiscing elit.','themeisle-companion'),
45
- 'sanitize_callback' => 'azera_shop_sanitize_text',
46
- ));
47
- $wp_customize->add_control( 'azera_shop_our_services_subtitle', array(
48
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
49
- 'section' => 'azera_shop_services_section',
50
- 'priority' => 20
51
- ));
52
-
53
-
54
- /* Services content */
55
- $default = azera_shop_companion_sevices_get_default_content();
56
- $wp_customize->add_setting( 'azera_shop_services_content', array(
57
- 'sanitize_callback' => 'azera_shop_sanitize_repeater',
58
- 'default' => $default,
59
- ) );
60
- $wp_customize->add_control( new Azera_Shop_General_Repeater( $wp_customize, 'azera_shop_services_content', array(
61
- 'label' => esc_html__('Add new service box','themeisle-companion'),
62
- 'section' => 'azera_shop_services_section',
63
- 'priority' => 30,
64
- 'azera_shop_image_control' => true,
65
- 'azera_shop_icon_control' => true,
66
- 'azera_shop_title_control' => true,
67
- 'azera_shop_text_control' => true,
68
- 'azera_shop_link_control' => true
69
- ) ) );
70
-
71
- /********************************************************/
72
- /******************* TEAM OPTIONS *********************/
73
- /********************************************************/
74
-
75
- $wp_customize->add_section( 'azera_shop_team_section' , array(
76
- 'title' => esc_html__( 'Team section', 'themeisle-companion' ),
77
- 'priority' => 6,
78
- 'panel' => 'azera_shop_front_page_sections',
79
- 'active_callback' => 'azera_shop_show_on_front',
80
- ));
81
-
82
- /* Team show/hide */
83
- $wp_customize->add_setting( 'azera_shop_our_team_show', array(
84
- 'sanitize_callback' => 'azera_shop_sanitize_text',
85
- ));
86
-
87
- $wp_customize->add_control( 'azera_shop_our_team_show', array(
88
- 'type' => 'checkbox',
89
- 'label' => __('Disable the Team section?','themeisle-companion'),
90
- 'section' => 'azera_shop_team_section',
91
- 'priority' => 1,
92
- ));
93
-
94
- /* Team title */
95
- $wp_customize->add_setting( 'azera_shop_our_team_title', array(
96
- 'default' => esc_html__('Our Team','themeisle-companion'),
97
- 'sanitize_callback' => 'azera_shop_sanitize_text',
98
- ));
99
- $wp_customize->add_control( 'azera_shop_our_team_title', array(
100
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
101
- 'section' => 'azera_shop_team_section',
102
- 'priority' => 10,
103
- ));
104
-
105
- /* Team subtitle */
106
- $wp_customize->add_setting( 'azera_shop_our_team_subtitle', array(
107
- 'default' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipiscing elit.','themeisle-companion'),
108
- 'sanitize_callback' => 'azera_shop_sanitize_text',
109
- ));
110
- $wp_customize->add_control( 'azera_shop_our_team_subtitle', array(
111
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
112
- 'section' => 'azera_shop_team_section',
113
- 'priority' => 20,
114
- ));
115
-
116
- /* Team Background */
117
- $wp_customize->add_setting( 'azera_shop_our_team_background', array(
118
- 'default' => azera_shop_get_file('/images/background-images/parallax-img/team-img.jpg'),
119
- 'sanitize_callback' => 'esc_url',
120
- ));
121
- $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'azera_shop_our_team_background', array(
122
- 'label' => esc_html__( 'Team Background', 'themeisle-companion' ),
123
- 'section' => 'azera_shop_team_section',
124
- 'priority' => 30
125
- )));
126
-
127
- /* Team content */
128
- $default = azera_shop_companion_team_get_default_content();
129
- $wp_customize->add_setting( 'azera_shop_team_content', array(
130
- 'sanitize_callback' => 'azera_shop_sanitize_repeater',
131
- 'default' => $default,
132
- ) );
133
- $wp_customize->add_control( new Azera_Shop_General_Repeater( $wp_customize, 'azera_shop_team_content', array(
134
- 'label' => esc_html__('Add new team member','themeisle-companion'),
135
- 'section' => 'azera_shop_team_section',
136
- 'priority' => 40,
137
- 'azera_shop_image_control' => true,
138
- 'azera_shop_title_control' => true,
139
- 'azera_shop_subtitle_control' => true
140
- ) ) );
141
-
142
- /********************************************************/
143
- /********** TESTIMONIALS OPTIONS ***********************/
144
- /********************************************************/
145
-
146
- $wp_customize->add_section( 'azera_shop_testimonials_section' , array(
147
- 'title' => esc_html__( 'Testimonials section', 'themeisle-companion' ),
148
- 'priority' => 7,
149
- 'panel' => 'azera_shop_front_page_sections',
150
- 'active_callback' => 'azera_shop_show_on_front',
151
- ));
152
-
153
- /* Testimonials show/hide */
154
- $wp_customize->add_setting( 'azera_shop_happy_customers_show', array(
155
- 'sanitize_callback' => 'azera_shop_sanitize_text',
156
- ));
157
-
158
- $wp_customize->add_control( 'azera_shop_happy_customers_show', array(
159
- 'type' => 'checkbox',
160
- 'label' => __('Disable the Testimonials section?','themeisle-companion'),
161
- 'section' => 'azera_shop_testimonials_section',
162
- 'priority' => 1,
163
- ));
164
-
165
- /* Testimonials title */
166
- $wp_customize->add_setting( 'azera_shop_happy_customers_title', array(
167
- 'default' => esc_html__('Happy Customers','themeisle-companion'),
168
- 'sanitize_callback' => 'azera_shop_sanitize_text',
169
- ));
170
- $wp_customize->add_control( 'azera_shop_happy_customers_title', array(
171
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
172
- 'section' => 'azera_shop_testimonials_section',
173
- 'priority' => 10,
174
- ));
175
-
176
- /* Testimonials subtitle */
177
- $wp_customize->add_setting( 'azera_shop_happy_customers_subtitle', array(
178
- 'default' => esc_html__('Cloud computing subscription model out of the box proactive solution.','themeisle-companion'),
179
- 'sanitize_callback' => 'azera_shop_sanitize_text',
180
- ));
181
- $wp_customize->add_control( 'azera_shop_happy_customers_subtitle', array(
182
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
183
- 'section' => 'azera_shop_testimonials_section',
184
- 'priority' => 20,
185
- ));
186
-
187
-
188
- /* Testimonials content */
189
- $default = azera_shop_companion_testimonials_get_default_content();
190
- $wp_customize->add_setting( 'azera_shop_testimonials_content', array(
191
- 'sanitize_callback' => 'azera_shop_sanitize_repeater',
192
- 'default' => $default,
193
- ));
194
- $wp_customize->add_control( new Azera_Shop_General_Repeater( $wp_customize, 'azera_shop_testimonials_content', array(
195
- 'label' => esc_html__('Add new testimonial','themeisle-companion'),
196
- 'section' => 'azera_shop_testimonials_section',
197
- 'priority' => 30,
198
- 'azera_shop_image_control' => true,
199
- 'azera_shop_title_control' => true,
200
- 'azera_shop_subtitle_control' => true,
201
- 'azera_shop_text_control' => true
202
- ) ) );
203
-
204
- }
205
- }
206
- add_action( 'customize_register', 'azera_shop_companion_customize_register', 999 );
207
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/inc/translations/general.php DELETED
@@ -1,18 +0,0 @@
1
- <?php
2
- /**
3
- * General functions for translation.
4
- *
5
- * @package azera-shop-companion
6
- */
7
-
8
- /**
9
- * Define Allowed Files to be included.
10
- */
11
- function azera_shop_companion_filter_translations( $array ) {
12
- return array_merge( $array, array(
13
- 'translations/translations-services-section',
14
- 'translations/translations-team-section',
15
- 'translations/translations-testimonials-section',
16
- ) );
17
- }
18
- add_filter( 'azera_shop_filter_translations', 'azera_shop_companion_filter_translations' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-services-section.php DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for services section
4
- *
5
- * @package azera-shop-companion
6
- */
7
-
8
- /**
9
- * Get services section default content.
10
- */
11
- function azera_shop_companion_sevices_get_default_content() {
12
- return json_encode( array(
13
- array(
14
- 'choice' => 'azera_shop_icon',
15
- 'icon_value' => 'fa-cogs',
16
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
17
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
18
- ),
19
- array( 'choice' => 'azera_shop_icon',
20
- 'icon_value' => 'fa-bar-chart-o',
21
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
22
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
23
- ),
24
- array( 'choice' => 'azera_shop_icon',
25
- 'icon_value' => 'fa-globe',
26
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
27
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
28
- )
29
- )
30
- );
31
- }
32
-
33
- /**
34
- * Register strings for polylang.
35
- */
36
- function azera_shop_companion_sevices_register_strings() {
37
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'azera_shop_pll_string_register_helper' ) ) {
38
- return;
39
- }
40
-
41
- $default = azera_shop_companion_sevices_get_default_content();
42
- azera_shop_pll_string_register_helper( 'azera_shop_services_content', $default, 'Services section' );
43
- }
44
- add_action( 'after_setup_theme', 'azera_shop_companion_sevices_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-team-section.php DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for team section
4
- *
5
- * @package azera-shop-companion
6
- */
7
-
8
-
9
- /**
10
- * Get team section default content.
11
- */
12
- function azera_shop_companion_team_get_default_content() {
13
- return json_encode( array(
14
- array(
15
- 'image_url' => azera_shop_get_file( '/images/team/1.jpg' ),
16
- 'title' => esc_html__( 'Albert Jacobs', 'themeisle-companion' ),
17
- 'subtitle' => esc_html__( 'Founder & CEO', 'themeisle-companion' )
18
- ),
19
- array(
20
- 'image_url' => azera_shop_get_file( '/images/team/2.jpg' ),
21
- 'title' => esc_html__( 'Tonya Garcia', 'themeisle-companion' ),
22
- 'subtitle' => esc_html__( 'Account Manager', 'themeisle-companion' )
23
- ),
24
- array(
25
- 'image_url' => azera_shop_get_file( '/images/team/3.jpg' ),
26
- 'title' => esc_html__( 'Linda Guthrie', 'themeisle-companion' ),
27
- 'subtitle' => esc_html__( 'Business Development', 'themeisle-companion' )
28
- )
29
- ) );
30
- }
31
-
32
- /**
33
- * Register strings for polylang.
34
- */
35
- function azera_shop_companion_team_register_strings() {
36
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'azera_shop_pll_string_register_helper' ) ) {
37
- return;
38
- }
39
-
40
- $default = azera_shop_companion_team_get_default_content();
41
- azera_shop_pll_string_register_helper( 'azera_shop_team_content', $default, 'Team section' );
42
- }
43
-
44
- add_action( 'after_setup_theme', 'azera_shop_companion_team_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/inc/translations/translations-testimonials-section.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for testimonials section
4
- *
5
- * @package llorix-one-companion
6
- */
7
-
8
-
9
- /**
10
- * Get testimonials section default content.
11
- */
12
- function azera_shop_companion_testimonials_get_default_content() {
13
- return json_encode(
14
- array(
15
- array(
16
- 'image_url' => azera_shop_get_file( '/images/clients/1.jpg' ),
17
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
18
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
19
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
20
- ),
21
- array(
22
- 'image_url' => azera_shop_get_file( '/images/clients/2.jpg' ),
23
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
24
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
25
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
26
- ),
27
- array(
28
- 'image_url' => azera_shop_get_file( '/images/clients/3.jpg' ),
29
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
30
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
31
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
32
- )
33
- )
34
- );
35
- }
36
-
37
- /**
38
- * Register strings for polylang.
39
- */
40
- function azera_shop_companion_testimonials_register_strings() {
41
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'azera_shop_pll_string_register_helper' ) ) {
42
- return;
43
- }
44
-
45
- $default = azera_shop_companion_testimonials_get_default_content();
46
- azera_shop_pll_string_register_helper( 'azera_shop_testimonials_content', $default, 'Testimonials section' );
47
- }
48
-
49
- add_action( 'after_setup_theme', 'azera_shop_companion_testimonials_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_happy_customers_section.php DELETED
@@ -1,126 +0,0 @@
1
- <!-- =========================
2
- SECTION: CUSTOMERS
3
- ============================== -->
4
- <?php
5
- $azera_shop_happy_customers_show = get_theme_mod( 'azera_shop_happy_customers_show' );
6
- $azera_shop_happy_customers_title = get_theme_mod( 'azera_shop_happy_customers_title', esc_html__( 'Happy Customers', 'themeisle-companion' ) );
7
- $azera_shop_happy_customers_subtitle = get_theme_mod( 'azera_shop_happy_customers_subtitle', esc_html__( 'Cloud computing subscription model out of the box proactive solution.', 'themeisle-companion' ) );
8
- $default = '';
9
- if( function_exists('azera_shop_companion_testimonials_get_default_content')){
10
- $default = azera_shop_companion_testimonials_get_default_content();
11
- }
12
- $azera_shop_testimonials_content = get_theme_mod( 'azera_shop_testimonials_content', $default );
13
- if ( function_exists( 'azera_shop_general_repeater_is_empty' ) ){
14
- $content_is_empty = azera_shop_general_repeater_is_empty( $azera_shop_testimonials_content );
15
- } else {
16
- $content_is_empty = empty( $azera_shop_testimonials_content );
17
- }
18
- $section_is_empty = ! isset( $azera_shop_happy_customers_show ) || $azera_shop_happy_customers_show == 1 || ( empty( $azera_shop_happy_customers_title ) && empty( $azera_shop_happy_customers_subtitle ) && $content_is_empty );
19
- if( !$section_is_empty) { ?>
20
-
21
- <section class="testimonials <?php if ($section_is_empty) {
22
- echo 'azera_shop_only_customizer';
23
- } ?>" id="customers" role="region" aria-label="<?php esc_attr_e('Testimonials', 'themeisle-companion') ?>">
24
- <div class="section-overlay-layer">
25
- <div class="container">
26
-
27
- <!-- SECTION HEADER -->
28
- <?php
29
- if (!empty($azera_shop_happy_customers_title) || !empty($azera_shop_happy_customers_subtitle)) { ?>
30
- <div class="section-header">
31
- <?php
32
- if (!empty($azera_shop_happy_customers_title)) { ?>
33
- <h2 class="dark-text"><?php echo wp_kses_post($azera_shop_happy_customers_title); ?></h2>
34
- <div class="colored-line"></div>
35
- <?php
36
- } elseif (is_customize_preview()) { ?>
37
- <h2 class="dark-text azera_shop_only_customizer"></h2>
38
- <div class="colored-line azera_shop_only_customizer"></div>
39
- <?php
40
- }
41
-
42
- if (!empty($azera_shop_happy_customers_subtitle)) { ?>
43
- <div class="sub-heading"><?php echo wp_kses_post($azera_shop_happy_customers_subtitle); ?></div>
44
- <?php
45
- } elseif (is_customize_preview()) { ?>
46
- <div class="sub-heading azera_shop_only_customizer"></div>
47
- <?php
48
- } ?>
49
- </div>
50
- <?php
51
- }
52
-
53
-
54
- if (!empty($azera_shop_testimonials_content)) { ?>
55
- <div id="happy_customers_wrap" class="testimonials-wrap">
56
- <?php
57
- $azera_shop_testimonials_content_decoded = json_decode($azera_shop_testimonials_content);
58
- foreach ($azera_shop_testimonials_content_decoded as $azera_shop_testimonial) {
59
- $image = !empty($azera_shop_testimonial->image_url) ? apply_filters('azera_shop_translate_single_string', $azera_shop_testimonial->image_url, 'Testimonials section') : '';
60
- $title = !empty($azera_shop_testimonial->title) ? apply_filters('azera_shop_translate_single_string', $azera_shop_testimonial->title, 'Testimonials section') : '';
61
- $subtitle = !empty($azera_shop_testimonial->subtitle) ? apply_filters('azera_shop_translate_single_string', $azera_shop_testimonial->subtitle, 'Testimonials section') : '';
62
- $text = !empty($azera_shop_testimonial->text) ? apply_filters('azera_shop_translate_single_string', $azera_shop_testimonial->text, 'Testimonials section') : '';
63
- $section_is_empty = empty($image) && empty($title) && empty($subtitle) && empty($text);
64
-
65
- if (!$section_is_empty) { ?>
66
- <!-- SINGLE FEEDBACK -->
67
- <div class="testimonials-box">
68
- <div class="feedback border-bottom-hover">
69
- <div class="pic-container">
70
- <div class="pic-container-inner">
71
- <?php
72
- if (!empty($image)) { ?>
73
- <img src="<?php echo esc_url($image); ?>"
74
- alt="<?php echo(!empty($title) ? esc_attr($title) : esc_attr('Avatar', 'themeisle-companion')); ?>">
75
- <?php
76
- } else {
77
- $default_image = azera_shop_get_file('/images/clients/client-no-image.jpg'); ?>
78
- <img src="<?php echo esc_url($default_image); ?>"
79
- alt="<?php esc_attr_e('Avatar', 'themeisle-companion'); ?>">
80
- <?php
81
- } ?>
82
- </div>
83
- </div>
84
- <?php
85
- if (!empty($title) || !empty($subtitle) || !empty($text)) { ?>
86
- <div class="feedback-text-wrap">
87
- <?php
88
- if (!empty($title)) { ?>
89
- <h5 class="colored-text">
90
- <?php
91
- echo wp_kses_post($title); ?>
92
- </h5>
93
- <?php
94
- }
95
-
96
- if (!empty($subtitle)) { ?>
97
- <div class="small-text">
98
- <?php
99
- echo wp_kses_post($subtitle); ?>
100
- </div>
101
- <?php
102
- }
103
-
104
- if (!empty($text)) { ?>
105
- <p>
106
- <?php
107
- echo wp_kses_post($text); ?>
108
- </p>
109
- <?php
110
- } ?>
111
- </div>
112
- <?php
113
- } ?>
114
- </div>
115
- </div><!-- .testimonials-box -->
116
- <?php
117
- }
118
- } ?>
119
- </div>
120
- <?php
121
- } ?>
122
- </div>
123
- </div>
124
- </section>
125
- <?php
126
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_our_services_section.php DELETED
@@ -1,125 +0,0 @@
1
- <?php
2
- $azera_shop_our_services_show = get_theme_mod( 'azera_shop_our_services_show' );
3
- $azera_shop_our_services_title = get_theme_mod( 'azera_shop_our_services_title', esc_html__( 'Our Services', 'themeisle-companion' ) );
4
- $azera_shop_our_services_subtitle = get_theme_mod( 'azera_shop_our_services_subtitle', esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ) );
5
- $default = '';
6
- if( function_exists('azera_shop_companion_sevices_get_default_content')){
7
- $default = azera_shop_companion_sevices_get_default_content();
8
- }
9
- $azera_shop_services = get_theme_mod( 'azera_shop_services_content', $default);
10
- if ( function_exists( 'azera_shop_general_repeater_is_empty' ) ){
11
- $content_is_empty = azera_shop_general_repeater_is_empty( $azera_shop_services );
12
- } else {
13
- $content_is_empty = empty( $azera_shop_services );
14
- }
15
- $section_is_empty = ! isset( $azera_shop_our_services_show ) || $azera_shop_our_services_show == 1 || ( empty( $azera_shop_our_services_title ) && empty( $azera_shop_our_services_subtitle ) && $content_is_empty );
16
- if( !$section_is_empty ){ ?>
17
-
18
- <section class="services <?php if ($section_is_empty) {
19
- echo 'azera_shop_only_customizer';
20
- } ?>" id="services" role="region" aria-label="<?php esc_attr_e('Services', 'themeisle-companion') ?>">
21
- <div class="section-overlay-layer">
22
- <div class="container">
23
- <div class="section-header">
24
- <?php
25
- if (!empty($azera_shop_our_services_title)) { ?>
26
- <h2 class="dark-text"><?php echo wp_kses_post($azera_shop_our_services_title); ?></h2>
27
- <div class="colored-line"></div>
28
- <?php
29
- } elseif (is_customize_preview()) { ?>
30
- <h2 class="dark-text azera_shop_only_customizer"></h2>
31
- <div class="colored-line azera_shop_only_customizer"></div>
32
- <?php
33
- }
34
-
35
- if (!empty($azera_shop_our_services_subtitle)) { ?>
36
- <div class="sub-heading"><?php echo wp_kses_post($azera_shop_our_services_subtitle); ?></div>
37
- <?php
38
- } elseif (is_customize_preview()) { ?>
39
- <div class="sub-heading azera_shop_only_customizer"></div>
40
- <?php
41
- } ?>
42
- </div>
43
-
44
- <?php
45
- if (!$content_is_empty) {
46
- $azera_shop_services_decoded = json_decode($azera_shop_services); ?>
47
- <div id="our_services_wrap" class="services-wrap">
48
- <?php
49
- foreach ($azera_shop_services_decoded as $azera_shop_service_box) {
50
- $choice = !empty($azera_shop_service_box->choice) ? $azera_shop_service_box->choice : '';
51
- $icon = !empty($azera_shop_service_box->icon_value) ? apply_filters('azera_shop_translate_single_string', $azera_shop_service_box->icon_value, 'Services section') : '';
52
- $image = !empty($azera_shop_service_box->image_url) ? apply_filters('azera_shop_translate_single_string', $azera_shop_service_box->image_url, 'Services section') : '';
53
- $title = !empty($azera_shop_service_box->title) ? apply_filters('azera_shop_translate_single_string', $azera_shop_service_box->title, 'Services section') : '';
54
- $text = !empty($azera_shop_service_box->text) ? apply_filters('azera_shop_translate_single_string', $azera_shop_service_box->text, 'Services section') : '';
55
- $link = !empty($azera_shop_service_box->link) ? apply_filters('azera_shop_translate_single_string', $azera_shop_service_box->link, 'Services section') : '';
56
- $section_is_empty = (empty($icon) || $icon === 'No Icon' && $choice === 'azera_shop_icon') && (empty($image) && $choice === 'azera_shop_image') && empty($title) && empty($text);
57
-
58
- if (!$section_is_empty) { ?>
59
- <div class="service-box">
60
- <div class="single-service border-bottom-hover">
61
- <?php
62
- if (!empty($choice) && $choice !== 'azera_shop_none') {
63
-
64
- if ($choice === 'azera_shop_icon') {
65
- if (!empty($icon)) {
66
- if (!empty($link)) { ?>
67
- <div class="service-icon colored-text">
68
- <a href="<?php echo esc_url($link); ?>">
69
- <i class="fa <?php echo esc_attr($icon); ?>"></i>
70
- </a>
71
- </div>
72
- <?php
73
- } else { ?>
74
- <div class="service-icon colored-text">
75
- <i class="fa <?php echo esc_attr($icon); ?>"></i>
76
- </div>
77
- <?php
78
- }
79
- }
80
- }
81
-
82
- if ($choice === 'azera_shop_image') {
83
- if (!empty($image)) {
84
- if (!empty($link)) { ?>
85
- <a href="<?php echo esc_url($link); ?>">
86
- <img src="<?php echo esc_url($image); ?>" <?php echo(!empty($title) ? 'alt="' . esc_attr($title) . '"' : ''); ?> />
87
- </a>
88
- <?php
89
- } else { ?>
90
- <img src="<?php echo esc_url($image); ?>" <?php echo(!empty($title) ? 'alt="' . esc_attr($title) . '"' : ''); ?> />
91
- <?php
92
- }
93
- }
94
- }
95
- }
96
-
97
- if (!empty($title)) {
98
- if (!empty($link)) { ?>
99
- <h3 class="colored-text">
100
- <a href="<?php echo esc_url($link); ?>"><?php echo wp_kses_post($title); ?></a>
101
- </h3>
102
- <?php
103
- } else { ?>
104
- <h3 class="colored-text"><?php echo wp_kses_post($title); ?></h3>
105
- <?php
106
- }
107
- }
108
-
109
- if (!empty($text)) { ?>
110
- <p><?php echo wp_kses_post($text); ?></p>
111
- <?php
112
- } ?>
113
- </div>
114
- </div>
115
- <?php
116
- }
117
- } ?>
118
- </div>
119
- <?php
120
- } ?>
121
- </div>
122
- </div>
123
- </section>
124
- <?php
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/sections/azera_shop_our_team_section.php DELETED
@@ -1,103 +0,0 @@
1
- <!-- =========================
2
- SECTION: TEAM
3
- ============================== -->
4
- <?php
5
- $azera_shop_our_team_show = get_theme_mod( 'azera_shop_our_team_show' );
6
- $azera_shop_our_team_title = get_theme_mod( 'azera_shop_our_team_title', esc_html__( 'Our Team', 'themeisle-companion' ) );
7
- $azera_shop_our_team_background = get_theme_mod( 'azera_shop_our_team_background', azera_shop_get_file( '/images/background-images/parallax-img/team-img.jpg' ) );
8
- $azera_shop_our_team_subtitle = get_theme_mod( 'azera_shop_our_team_subtitle', esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ) );
9
- $default = '';
10
- if( function_exists('azera_shop_companion_team_get_default_content') ){
11
- $default = azera_shop_companion_team_get_default_content();
12
- }
13
- $azera_shop_team_content = get_theme_mod( 'azera_shop_team_content', $default );
14
- if ( function_exists( 'azera_shop_general_repeater_is_empty' ) ){
15
- $content_is_empty = azera_shop_general_repeater_is_empty( $azera_shop_team_content );
16
- } else {
17
- $content_is_empty = empty( $azera_shop_team_content );
18
- }
19
- $section_is_empty = ! isset( $azera_shop_our_team_show ) || $azera_shop_our_team_show == 1 || ( empty( $azera_shop_our_team_title ) && empty( $azera_shop_our_team_subtitle ) && $content_is_empty );
20
- if( !$section_is_empty){ ?>
21
- <section class="team" id="team" role="region" aria-label="'<?php esc_attr_e( 'Team', 'themeisle-companion' ); ?>" <?php echo ! empty( $azera_shop_our_team_background ) ? 'style="background:url(' . esc_url( $azera_shop_our_team_background ) . ');"' : ''; ?>>
22
- <div class="section-overlay-layer">
23
- <div class="container">
24
- <?php
25
- if ( ! empty( $azera_shop_our_team_title ) || ! empty( $azera_shop_our_team_subtitle ) ) { ?>
26
- <div class="section-header">
27
- <?php
28
- if ( ! empty( $azera_shop_our_team_title ) ) { ?>
29
- <h2 class="dark-text"><?php echo esc_attr( $azera_shop_our_team_title ); ?></h2>
30
- <div class="colored-line"></div>
31
- <?php
32
- } elseif ( is_customize_preview() ) { ?>
33
- <h2 class="dark-text azera_shop_only_customizer"></h2>
34
- <div class="colored-line azera_shop_only_customizer"></div>
35
- <?php
36
- }
37
-
38
- if ( ! empty( $azera_shop_our_team_subtitle ) ) { ?>
39
- <div class="sub-heading"><?php echo esc_attr( $azera_shop_our_team_subtitle ); ?></div>
40
- <?php
41
- } elseif ( is_customize_preview() ) { ?>
42
- <div class="sub-heading azera_shop_only_customizer"></div>
43
- <?php
44
- } ?>
45
- </div>
46
- <?php
47
- }
48
- if ( ! $content_is_empty ) { ?>
49
- <div class="row team-member-wrap">
50
- <?php
51
- $azera_shop_team_decoded = json_decode( $azera_shop_team_content );
52
- foreach ( $azera_shop_team_decoded as $azera_shop_team_member ) {
53
- $title = ! empty( $azera_shop_team_member->title ) ? apply_filters( 'azera_shop_translate_single_string', $azera_shop_team_member->title, 'Team section' ) : '';
54
- $subtitle = ! empty( $azera_shop_team_member->subtitle ) ? apply_filters( 'azera_shop_translate_single_string', $azera_shop_team_member->subtitle, 'Team section' ) : '';
55
- $image = ! empty( $azera_shop_team_member->image_url ) ? apply_filters( 'azera_shop_translate_single_string', $azera_shop_team_member->image_url, 'Team section' ) : '';
56
- $section_is_empty = empty( $image ) && empty( $title ) && empty( $subtitle );
57
- if ( ! $section_is_empty ) { ?>
58
- <div class="col-md-3 team-member-box">
59
- <div class="team-member border-bottom-hover">
60
- <div class="member-pic">
61
- <?php
62
- if ( ! empty( $image ) ) { ?>
63
- <img src="<?php echo esc_url( $image ); ?>" <?php echo( ! empty( $title ) ? 'alt="' . esc_attr( $title ) . '"' : esc_html__( 'Avatar', 'themeisle-companion' ) ); ?>>
64
- <?php
65
- } else {
66
- $default_url = azera_shop_get_file( '/images/team/default.png' ); ?>
67
- <img src="<?php echo esc_url( $default_url ); ?>" alt="<?php esc_attr_e( 'Avatar', 'themeisle-companion' ); ?>">
68
- <?php
69
- } ?>
70
- </div><!-- .member-pic -->
71
-
72
- <?php
73
- if ( ! empty( $title ) || ! empty( $subtitle ) ) { ?>
74
- <div class="member-details">
75
- <div class="member-details-inner">
76
- <?php
77
- if ( ! empty( $title ) ) { ?>
78
- <h5 class="colored-text"> <?php echo wp_kses_post( $title ); ?></h5>
79
- <?php
80
- }
81
-
82
- if ( ! empty( $subtitle ) ) { ?>
83
- <div class="small-text"><?php echo wp_kses_post( $subtitle ); ?></div>
84
- <?php
85
- } ?>
86
- </div><!-- .member-details-inner -->
87
- </div><!-- .member-details -->
88
- <?php
89
- } ?>
90
- </div><!-- .team-member -->
91
- </div><!-- .team-member -->
92
- <!-- MEMBER -->
93
- <?php
94
- }
95
- } ?>
96
- </div>
97
- <?php
98
- } ?>
99
- </div>
100
- </div><!-- container -->
101
- </section><!-- #section9 -->
102
- <?php
103
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/azera-shop/wpml-config.xml DELETED
@@ -1,13 +0,0 @@
1
- <wpml-config>
2
- <admin-texts>
3
- <key name="theme_mods_themeisle-companion">
4
- <key name="azera_shop_our_services_title" />
5
- <key name="azera_shop_our_services_subtitle" />
6
- <key name="azera_shop_our_team_title" />
7
- <key name="azera_shop_our_team_subtitle" />
8
- <key name="azera_shop_our_team_background" />
9
- <key name="azera_shop_happy_customers_title" />
10
- <key name="azera_shop_happy_customers_subttle" />
11
- </key>
12
- </admin-texts>
13
- </wpml-config>
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/hestia/common-functions.php CHANGED
@@ -9,22 +9,37 @@
9
  /**
10
  * Change default alignment for top bar.
11
  */
12
- function themeisle_hestia_top_bar_default_alignment(){
13
  return 'left';
14
  }
15
 
16
  /**
17
  * Add default content to clients section;
18
  */
19
- function themeisle_hestia_clients_default_content(){
20
  $plugin_path = plugins_url( 'inc/img/', __FILE__ );
21
  return json_encode(
22
  array(
23
- array( 'image_url' => $plugin_path . 'clients1.png', 'link' => '#'),
24
- array( 'image_url' => $plugin_path . 'clients2.png', 'link' => '#'),
25
- array( 'image_url' => $plugin_path . 'clients3.png', 'link' => '#'),
26
- array( 'image_url' => $plugin_path . 'clients4.png', 'link' => '#'),
27
- array( 'image_url' => $plugin_path . 'clients5.png', 'link' => '#'),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  )
29
  );
30
  }
@@ -47,30 +62,30 @@ function themeisle_hestia_fix_duplicate_widgets() {
47
  $current_sidebars = get_option( 'sidebars_widgets' );
48
 
49
  $duplicates = themeisle_hestia_get_duplicate_widgets();
50
- if(empty($duplicates)){
51
  return;
52
  }
53
- foreach ($duplicates as $widget){
54
- $old_widget_id = $widget['widget_id'];
55
  $old_widget_sidebar = $widget['sidebar'];
56
- $old_widget_index = array_search($old_widget_id,$current_sidebars[$old_widget_sidebar]);
57
- if( empty($old_widget_index)){
58
  return;
59
  }
60
 
61
  /* Remove the widget id and obtain the widget name */
62
  $old_widget_name = explode( '-', $old_widget_id );
63
  array_pop( $old_widget_name );
64
- $widget_name = implode('-', $old_widget_name);
65
 
66
  /* Get the id of new widget */
67
- $new_widget_name = themeisle_hestia_generate_unique_widget_name($widget_name);
68
- $new_widget_index = trim( substr( $new_widget_name, strrpos( $new_widget_name, '-' ) + 1 ) );
69
 
70
 
71
  /* Get the options of old widget and update its id */
72
- $old_widget_options = $wp_registered_widgets[$old_widget_id];
73
- if(!empty($old_widget_options)) {
74
  if ( ! empty( $old_widget_options['params'] ) ) {
75
  unset( $old_widget_options['params'] );
76
  }
@@ -84,10 +99,10 @@ function themeisle_hestia_fix_duplicate_widgets() {
84
  $old_widget_options = array();
85
  }
86
 
87
- $current_sidebars[$old_widget_sidebar][$old_widget_index] = $new_widget_name;
88
- $new_widget[ $new_widget_index ] = $old_widget_options;
89
 
90
- update_option( 'widget_'.$widget_name, $new_widget );
91
  }
92
  update_option( 'sidebars_widgets', $current_sidebars );
93
 
@@ -128,22 +143,22 @@ function themeisle_hestia_generate_unique_widget_name( $widget_name ) {
128
  */
129
  function themeisle_hestia_get_duplicate_widgets() {
130
 
131
- $current_sidebars = get_option( 'sidebars_widgets' );
132
- $all_widget_array = array();
133
  $duplicate_widgets = array();
134
  foreach ( $current_sidebars as $sidebar => $widgets ) {
135
  if ( ! empty( $widgets ) && is_array( $widgets ) && $sidebar != 'wp_inactive_widgets' ) {
136
  foreach ( $widgets as $widget ) {
137
- if( in_array($widget,$all_widget_array)){
138
  $duplicate_widgets[] = array(
139
  'widget_id' => $widget,
140
- 'sidebar' => $sidebar
141
  );
142
- } else{
143
  $all_widget_array[] = $widget;
144
  }
145
  }
146
  }
147
  }
148
  return $duplicate_widgets;
149
- }
9
  /**
10
  * Change default alignment for top bar.
11
  */
12
+ function themeisle_hestia_top_bar_default_alignment() {
13
  return 'left';
14
  }
15
 
16
  /**
17
  * Add default content to clients section;
18
  */
19
+ function themeisle_hestia_clients_default_content() {
20
  $plugin_path = plugins_url( 'inc/img/', __FILE__ );
21
  return json_encode(
22
  array(
23
+ array(
24
+ 'image_url' => $plugin_path . 'clients1.png',
25
+ 'link' => '#',
26
+ ),
27
+ array(
28
+ 'image_url' => $plugin_path . 'clients2.png',
29
+ 'link' => '#',
30
+ ),
31
+ array(
32
+ 'image_url' => $plugin_path . 'clients3.png',
33
+ 'link' => '#',
34
+ ),
35
+ array(
36
+ 'image_url' => $plugin_path . 'clients4.png',
37
+ 'link' => '#',
38
+ ),
39
+ array(
40
+ 'image_url' => $plugin_path . 'clients5.png',
41
+ 'link' => '#',
42
+ ),
43
  )
44
  );
45
  }
62
  $current_sidebars = get_option( 'sidebars_widgets' );
63
 
64
  $duplicates = themeisle_hestia_get_duplicate_widgets();
65
+ if ( empty( $duplicates ) ) {
66
  return;
67
  }
68
+ foreach ( $duplicates as $widget ) {
69
+ $old_widget_id = $widget['widget_id'];
70
  $old_widget_sidebar = $widget['sidebar'];
71
+ $old_widget_index = array_search( $old_widget_id, $current_sidebars[ $old_widget_sidebar ] );
72
+ if ( empty( $old_widget_index ) ) {
73
  return;
74
  }
75
 
76
  /* Remove the widget id and obtain the widget name */
77
  $old_widget_name = explode( '-', $old_widget_id );
78
  array_pop( $old_widget_name );
79
+ $widget_name = implode( '-', $old_widget_name );
80
 
81
  /* Get the id of new widget */
82
+ $new_widget_name = themeisle_hestia_generate_unique_widget_name( $widget_name );
83
+ $new_widget_index = trim( substr( $new_widget_name, strrpos( $new_widget_name, '-' ) + 1 ) );
84
 
85
 
86
  /* Get the options of old widget and update its id */
87
+ $old_widget_options = $wp_registered_widgets[ $old_widget_id ];
88
+ if ( ! empty( $old_widget_options ) ) {
89
  if ( ! empty( $old_widget_options['params'] ) ) {
90
  unset( $old_widget_options['params'] );
91
  }
99
  $old_widget_options = array();
100
  }
101
 
102
+ $current_sidebars[ $old_widget_sidebar ][ $old_widget_index ] = $new_widget_name;
103
+ $new_widget[ $new_widget_index ] = $old_widget_options;
104
 
105
+ update_option( 'widget_' . $widget_name, $new_widget );
106
  }
107
  update_option( 'sidebars_widgets', $current_sidebars );
108
 
143
  */
144
  function themeisle_hestia_get_duplicate_widgets() {
145
 
146
+ $current_sidebars = get_option( 'sidebars_widgets' );
147
+ $all_widget_array = array();
148
  $duplicate_widgets = array();
149
  foreach ( $current_sidebars as $sidebar => $widgets ) {
150
  if ( ! empty( $widgets ) && is_array( $widgets ) && $sidebar != 'wp_inactive_widgets' ) {
151
  foreach ( $widgets as $widget ) {
152
+ if ( in_array( $widget, $all_widget_array ) ) {
153
  $duplicate_widgets[] = array(
154
  'widget_id' => $widget,
155
+ 'sidebar' => $sidebar,
156
  );
157
+ } else {
158
  $all_widget_array[] = $widget;
159
  }
160
  }
161
  }
162
  }
163
  return $duplicate_widgets;
164
+ }
obfx_modules/companion-legacy/inc/hestia/functions.php CHANGED
@@ -11,14 +11,17 @@
11
  */
12
  function themeisle_hestia_require() {
13
  if ( function_exists( 'hestia_setup_theme' ) ) {
14
- $sections_paths = apply_filters( 'themeisle_companion_hestia_sections',array(
15
- 'hestia/inc/features/import-zerif-content.php',
16
- 'hestia/inc/sections/hestia-features-section.php',
17
- 'hestia/inc/sections/hestia-testimonials-section.php',
18
- 'hestia/inc/sections/hestia-team-section.php',
19
- 'hestia/inc/sections/hestia-ribbon-section.php',
20
- 'hestia/inc/sections/hestia-clients-bar-section.php',
21
- ) );
 
 
 
22
  themeisle_hestia_require_files( $sections_paths );
23
  }
24
  }
@@ -29,14 +32,17 @@ function themeisle_hestia_require() {
29
  */
30
  function themeisle_hestia_load_controls() {
31
  if ( function_exists( 'hestia_setup_theme' ) ) {
32
- $features_paths = apply_filters( 'themeisle_companion_hestia_controls',array(
33
- 'hestia/inc/features/feature-features-section.php',
34
- 'hestia/inc/features/feature-testimonials-section.php',
35
- 'hestia/inc/features/feature-team-section.php',
36
- 'hestia/inc/features/feature-ribbon-section.php',
37
- 'hestia/inc/features/feature-clients-bar-section.php',
38
- 'hestia/inc/customizer.php',
39
- ) );
 
 
 
40
  themeisle_hestia_require_files( $features_paths );
41
  }
42
  }
@@ -51,7 +57,7 @@ function themeisle_hestia_require_files( $array ) {
51
  foreach ( $array as $path ) {
52
  $file_path = trailingslashit( THEMEISLE_COMPANION_PATH ) . $path;
53
  if ( file_exists( $file_path ) ) {
54
- require_once( $file_path );
55
  }
56
  }
57
  }
@@ -64,10 +70,10 @@ function themeisle_hestia_set_frontpage() {
64
  $is_fresh_site = get_option( 'fresh_site' );
65
  if ( (bool) $is_fresh_site === false ) {
66
  $frontpage_title = esc_html__( 'Front Page', 'themeisle-companion' );
67
- $front_id = themeisle_hestia_create_page( 'hestia-front', $frontpage_title );
68
- $blogpage_title = esc_html__( 'Blog', 'themeisle-companion' );
69
- $blog_id = themeisle_hestia_create_page( 'blog', $blogpage_title );
70
- set_theme_mod( 'show_on_front','page' );
71
  update_option( 'show_on_front', 'page' );
72
  if ( ! empty( $front_id ) ) {
73
  update_option( 'page_on_front', $front_id );
@@ -100,11 +106,11 @@ function themeisle_hestia_create_page( $slug, $page_title ) {
100
  } else {
101
  // Page doesn't exist. Create one.
102
  $postargs = array(
103
- 'post_type' => 'page',
104
- 'post_name' => $slug,
105
- 'post_title' => $page_title,
106
- 'post_status' => 'publish',
107
- 'post_author' => 1,
108
  );
109
  // Insert the post into the database
110
  $page_id = wp_insert_post( $postargs );
@@ -117,6 +123,6 @@ function themeisle_hestia_create_page( $slug, $page_title ) {
117
  * Note: this can be deleted in a future version. It's just for maintaining compatibility, if user updates plugin but
118
  * not the theme.
119
  */
120
- function themeisle_hestia_enqueue_clients_style(){
121
  wp_enqueue_style( 'hestia-clients-bar', trailingslashit( THEMEISLE_COMPANION_URL ) . 'assets/css/hestia/clients-bar.css' );
122
- }
11
  */
12
  function themeisle_hestia_require() {
13
  if ( function_exists( 'hestia_setup_theme' ) ) {
14
+ $sections_paths = apply_filters(
15
+ 'themeisle_companion_hestia_sections',
16
+ array(
17
+ 'hestia/inc/features/import-zerif-content.php',
18
+ 'hestia/inc/sections/hestia-features-section.php',
19
+ 'hestia/inc/sections/hestia-testimonials-section.php',
20
+ 'hestia/inc/sections/hestia-team-section.php',
21
+ 'hestia/inc/sections/hestia-ribbon-section.php',
22
+ 'hestia/inc/sections/hestia-clients-bar-section.php',
23
+ )
24
+ );
25
  themeisle_hestia_require_files( $sections_paths );
26
  }
27
  }
32
  */
33
  function themeisle_hestia_load_controls() {
34
  if ( function_exists( 'hestia_setup_theme' ) ) {
35
+ $features_paths = apply_filters(
36
+ 'themeisle_companion_hestia_controls',
37
+ array(
38
+ 'hestia/inc/features/feature-features-section.php',
39
+ 'hestia/inc/features/feature-testimonials-section.php',
40
+ 'hestia/inc/features/feature-team-section.php',
41
+ 'hestia/inc/features/feature-ribbon-section.php',
42
+ 'hestia/inc/features/feature-clients-bar-section.php',
43
+ 'hestia/inc/customizer.php',
44
+ )
45
+ );
46
  themeisle_hestia_require_files( $features_paths );
47
  }
48
  }
57
  foreach ( $array as $path ) {
58
  $file_path = trailingslashit( THEMEISLE_COMPANION_PATH ) . $path;
59
  if ( file_exists( $file_path ) ) {
60
+ require_once $file_path;
61
  }
62
  }
63
  }
70
  $is_fresh_site = get_option( 'fresh_site' );
71
  if ( (bool) $is_fresh_site === false ) {
72
  $frontpage_title = esc_html__( 'Front Page', 'themeisle-companion' );
73
+ $front_id = themeisle_hestia_create_page( 'hestia-front', $frontpage_title );
74
+ $blogpage_title = esc_html__( 'Blog', 'themeisle-companion' );
75
+ $blog_id = themeisle_hestia_create_page( 'blog', $blogpage_title );
76
+ set_theme_mod( 'show_on_front', 'page' );
77
  update_option( 'show_on_front', 'page' );
78
  if ( ! empty( $front_id ) ) {
79
  update_option( 'page_on_front', $front_id );
106
  } else {
107
  // Page doesn't exist. Create one.
108
  $postargs = array(
109
+ 'post_type' => 'page',
110
+ 'post_name' => $slug,
111
+ 'post_title' => $page_title,
112
+ 'post_status' => 'publish',
113
+ 'post_author' => 1,
114
  );
115
  // Insert the post into the database
116
  $page_id = wp_insert_post( $postargs );
123
  * Note: this can be deleted in a future version. It's just for maintaining compatibility, if user updates plugin but
124
  * not the theme.
125
  */
126
+ function themeisle_hestia_enqueue_clients_style() {
127
  wp_enqueue_style( 'hestia-clients-bar', trailingslashit( THEMEISLE_COMPANION_URL ) . 'assets/css/hestia/clients-bar.css' );
128
+ }
obfx_modules/companion-legacy/inc/hestia/inc/features/feature-clients-bar-section.php CHANGED
@@ -15,12 +15,14 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
15
  */
16
  function hestia_clients_bar_customize_register( $wp_customize ) {
17
 
18
- $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists('hestia_display_customizer_shortcut') ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
- $wp_customize, 'hestia_clients_bar', array(
 
 
24
  'title' => esc_html__( 'Clients Bar', 'themeisle-companion' ),
25
  'panel' => 'hestia_frontpage_sections',
26
  'priority' => apply_filters( 'hestia_section_priority', 50, 'hestia_clients_bar' ),
@@ -30,7 +32,8 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
30
  );
31
  } else {
32
  $wp_customize->add_section(
33
- 'hestia_clients_bar', array(
 
34
  'title' => esc_html__( 'Clients Bar', 'themeisle-companion' ),
35
  'panel' => 'hestia_frontpage_sections',
36
  'priority' => apply_filters( 'hestia_section_priority', 50, 'hestia_clients_bar' ),
@@ -39,7 +42,8 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
39
  }
40
 
41
  $wp_customize->add_setting(
42
- 'hestia_clients_bar_hide', array(
 
43
  'sanitize_callback' => 'hestia_sanitize_checkbox',
44
  'default' => true,
45
  'transport' => $selective_refresh,
@@ -47,7 +51,8 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
47
  );
48
 
49
  $wp_customize->add_control(
50
- 'hestia_clients_bar_hide', array(
 
51
  'type' => 'checkbox',
52
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
53
  'section' => 'hestia_clients_bar',
@@ -57,7 +62,8 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
57
 
58
  if ( class_exists( 'Hestia_Repeater' ) ) {
59
  $wp_customize->add_setting(
60
- 'hestia_clients_bar_content', array(
 
61
  'sanitize_callback' => 'hestia_repeater_sanitize',
62
  'transport' => $selective_refresh,
63
  'default' => apply_filters( 'hestia_clients_bar_default_content', false ),
@@ -66,7 +72,9 @@ if ( ! function_exists( 'hestia_clients_bar_customize_register' ) ) :
66
 
67
  $wp_customize->add_control(
68
  new Hestia_Repeater(
69
- $wp_customize, 'hestia_clients_bar_content', array(
 
 
70
  'label' => esc_html__( 'Clients Bar Content', 'themeisle-companion' ),
71
  'section' => 'hestia_clients_bar',
72
  'priority' => 5,
@@ -96,7 +104,8 @@ function hestia_register_clients_bar_partials( $wp_customize ) {
96
  }
97
 
98
  $wp_customize->selective_refresh->add_partial(
99
- 'hestia_clients_bar_content', array(
 
100
  'selector' => '.hestia-clients-bar',
101
  'container_inclusive' => true,
102
  'render_callback' => 'hestia_clients_bar',
15
  */
16
  function hestia_clients_bar_customize_register( $wp_customize ) {
17
 
18
+ $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists( 'hestia_display_customizer_shortcut' ) ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
+ $wp_customize,
24
+ 'hestia_clients_bar',
25
+ array(
26
  'title' => esc_html__( 'Clients Bar', 'themeisle-companion' ),
27
  'panel' => 'hestia_frontpage_sections',
28
  'priority' => apply_filters( 'hestia_section_priority', 50, 'hestia_clients_bar' ),
32
  );
33
  } else {
34
  $wp_customize->add_section(
35
+ 'hestia_clients_bar',
36
+ array(
37
  'title' => esc_html__( 'Clients Bar', 'themeisle-companion' ),
38
  'panel' => 'hestia_frontpage_sections',
39
  'priority' => apply_filters( 'hestia_section_priority', 50, 'hestia_clients_bar' ),
42
  }
43
 
44
  $wp_customize->add_setting(
45
+ 'hestia_clients_bar_hide',
46
+ array(
47
  'sanitize_callback' => 'hestia_sanitize_checkbox',
48
  'default' => true,
49
  'transport' => $selective_refresh,
51
  );
52
 
53
  $wp_customize->add_control(
54
+ 'hestia_clients_bar_hide',
55
+ array(
56
  'type' => 'checkbox',
57
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
58
  'section' => 'hestia_clients_bar',
62
 
63
  if ( class_exists( 'Hestia_Repeater' ) ) {
64
  $wp_customize->add_setting(
65
+ 'hestia_clients_bar_content',
66
+ array(
67
  'sanitize_callback' => 'hestia_repeater_sanitize',
68
  'transport' => $selective_refresh,
69
  'default' => apply_filters( 'hestia_clients_bar_default_content', false ),
72
 
73
  $wp_customize->add_control(
74
  new Hestia_Repeater(
75
+ $wp_customize,
76
+ 'hestia_clients_bar_content',
77
+ array(
78
  'label' => esc_html__( 'Clients Bar Content', 'themeisle-companion' ),
79
  'section' => 'hestia_clients_bar',
80
  'priority' => 5,
104
  }
105
 
106
  $wp_customize->selective_refresh->add_partial(
107
+ 'hestia_clients_bar_content',
108
+ array(
109
  'selector' => '.hestia-clients-bar',
110
  'container_inclusive' => true,
111
  'render_callback' => 'hestia_clients_bar',
obfx_modules/companion-legacy/inc/hestia/inc/features/feature-features-section.php CHANGED
@@ -15,12 +15,14 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
15
  */
16
  function hestia_features_customize_register( $wp_customize ) {
17
 
18
- $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists('hestia_display_customizer_shortcut') ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
- $wp_customize, 'hestia_features', array(
 
 
24
  'title' => esc_html__( 'Features', 'themeisle-companion' ),
25
  'panel' => 'hestia_frontpage_sections',
26
  'priority' => apply_filters( 'hestia_section_priority', 10, 'hestia_features' ),
@@ -30,7 +32,8 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
30
  );
31
  } else {
32
  $wp_customize->add_section(
33
- 'hestia_features', array(
 
34
  'title' => esc_html__( 'Features', 'themeisle-companion' ),
35
  'panel' => 'hestia_frontpage_sections',
36
  'priority' => apply_filters( 'hestia_section_priority', 10, 'hestia_features' ),
@@ -39,7 +42,8 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
39
  }
40
 
41
  $wp_customize->add_setting(
42
- 'hestia_features_hide', array(
 
43
  'sanitize_callback' => 'hestia_sanitize_checkbox',
44
  'default' => false,
45
  'transport' => $selective_refresh,
@@ -47,7 +51,8 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
47
  );
48
 
49
  $wp_customize->add_control(
50
- 'hestia_features_hide', array(
 
51
  'type' => 'checkbox',
52
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
53
  'section' => 'hestia_features',
@@ -56,14 +61,16 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
56
  );
57
 
58
  $wp_customize->add_setting(
59
- 'hestia_features_title', array(
 
60
  'sanitize_callback' => 'wp_kses_post',
61
  'transport' => $selective_refresh,
62
  )
63
  );
64
 
65
  $wp_customize->add_control(
66
- 'hestia_features_title', array(
 
67
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
68
  'section' => 'hestia_features',
69
  'priority' => 5,
@@ -71,14 +78,16 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
71
  );
72
 
73
  $wp_customize->add_setting(
74
- 'hestia_features_subtitle', array(
 
75
  'sanitize_callback' => 'wp_kses_post',
76
  'transport' => $selective_refresh,
77
  )
78
  );
79
 
80
  $wp_customize->add_control(
81
- 'hestia_features_subtitle', array(
 
82
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
83
  'section' => 'hestia_features',
84
  'priority' => 10,
@@ -87,7 +96,8 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
87
 
88
  if ( class_exists( 'Hestia_Repeater' ) ) {
89
  $wp_customize->add_setting(
90
- 'hestia_features_content', array(
 
91
  'sanitize_callback' => 'hestia_repeater_sanitize',
92
  'transport' => $selective_refresh,
93
  )
@@ -95,16 +105,18 @@ if ( ! function_exists( 'hestia_features_customize_register' ) ) :
95
 
96
  $wp_customize->add_control(
97
  new Hestia_Repeater(
98
- $wp_customize, 'hestia_features_content', array(
99
- 'label' => esc_html__( 'Features Content', 'themeisle-companion' ),
100
- 'section' => 'hestia_features',
101
- 'priority' => 15,
102
- 'add_field_label' => esc_html__( 'Add new Feature', 'themeisle-companion' ),
103
- 'item_name' => esc_html__( 'Feature', 'themeisle-companion' ),
104
- 'customizer_repeater_icon_control' => true,
 
 
105
  'customizer_repeater_title_control' => true,
106
- 'customizer_repeater_text_control' => true,
107
- 'customizer_repeater_link_control' => true,
108
  'customizer_repeater_color_control' => true,
109
  )
110
  )
@@ -131,9 +143,10 @@ function hestia_register_features_partials( $wp_customize ) {
131
  }
132
 
133
  $wp_customize->selective_refresh->add_partial(
134
- 'hestia_features_content', array(
135
- 'selector' => '.hestia-features-content',
136
- 'settings' => 'hestia_features_content',
 
137
  'render_callback' => 'hestia_features_content_callback',
138
  )
139
  );
15
  */
16
  function hestia_features_customize_register( $wp_customize ) {
17
 
18
+ $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists( 'hestia_display_customizer_shortcut' ) ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
+ $wp_customize,
24
+ 'hestia_features',
25
+ array(
26
  'title' => esc_html__( 'Features', 'themeisle-companion' ),
27
  'panel' => 'hestia_frontpage_sections',
28
  'priority' => apply_filters( 'hestia_section_priority', 10, 'hestia_features' ),
32
  );
33
  } else {
34
  $wp_customize->add_section(
35
+ 'hestia_features',
36
+ array(
37
  'title' => esc_html__( 'Features', 'themeisle-companion' ),
38
  'panel' => 'hestia_frontpage_sections',
39
  'priority' => apply_filters( 'hestia_section_priority', 10, 'hestia_features' ),
42
  }
43
 
44
  $wp_customize->add_setting(
45
+ 'hestia_features_hide',
46
+ array(
47
  'sanitize_callback' => 'hestia_sanitize_checkbox',
48
  'default' => false,
49
  'transport' => $selective_refresh,
51
  );
52
 
53
  $wp_customize->add_control(
54
+ 'hestia_features_hide',
55
+ array(
56
  'type' => 'checkbox',
57
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
58
  'section' => 'hestia_features',
61
  );
62
 
63
  $wp_customize->add_setting(
64
+ 'hestia_features_title',
65
+ array(
66
  'sanitize_callback' => 'wp_kses_post',
67
  'transport' => $selective_refresh,
68
  )
69
  );
70
 
71
  $wp_customize->add_control(
72
+ 'hestia_features_title',
73
+ array(
74
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
75
  'section' => 'hestia_features',
76
  'priority' => 5,
78
  );
79
 
80
  $wp_customize->add_setting(
81
+ 'hestia_features_subtitle',
82
+ array(
83
  'sanitize_callback' => 'wp_kses_post',
84
  'transport' => $selective_refresh,
85
  )
86
  );
87
 
88
  $wp_customize->add_control(
89
+ 'hestia_features_subtitle',
90
+ array(
91
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
92
  'section' => 'hestia_features',
93
  'priority' => 10,
96
 
97
  if ( class_exists( 'Hestia_Repeater' ) ) {
98
  $wp_customize->add_setting(
99
+ 'hestia_features_content',
100
+ array(
101
  'sanitize_callback' => 'hestia_repeater_sanitize',
102
  'transport' => $selective_refresh,
103
  )
105
 
106
  $wp_customize->add_control(
107
  new Hestia_Repeater(
108
+ $wp_customize,
109
+ 'hestia_features_content',
110
+ array(
111
+ 'label' => esc_html__( 'Features Content', 'themeisle-companion' ),
112
+ 'section' => 'hestia_features',
113
+ 'priority' => 15,
114
+ 'add_field_label' => esc_html__( 'Add new Feature', 'themeisle-companion' ),
115
+ 'item_name' => esc_html__( 'Feature', 'themeisle-companion' ),
116
+ 'customizer_repeater_icon_control' => true,
117
  'customizer_repeater_title_control' => true,
118
+ 'customizer_repeater_text_control' => true,
119
+ 'customizer_repeater_link_control' => true,
120
  'customizer_repeater_color_control' => true,
121
  )
122
  )
143
  }
144
 
145
  $wp_customize->selective_refresh->add_partial(
146
+ 'hestia_features_content',
147
+ array(
148
+ 'selector' => '.hestia-features-content',
149
+ 'settings' => 'hestia_features_content',
150
  'render_callback' => 'hestia_features_content_callback',
151
  )
152
  );
obfx_modules/companion-legacy/inc/hestia/inc/features/feature-ribbon-section.php CHANGED
@@ -18,12 +18,14 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
18
  */
19
  function hestia_ribbon_customize_register( $wp_customize ) {
20
 
21
- $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists('hestia_display_customizer_shortcut') ? 'postMessage' : 'refresh';
22
 
23
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
24
  $wp_customize->add_section(
25
  new Hestia_Hiding_Section(
26
- $wp_customize, 'hestia_ribbon', array(
 
 
27
  'title' => esc_html__( 'Ribbon', 'themeisle-companion' ),
28
  'panel' => 'hestia_frontpage_sections',
29
  'priority' => apply_filters( 'hestia_section_priority', 35, 'hestia_ribbon' ),
@@ -33,7 +35,8 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
33
  );
34
  } else {
35
  $wp_customize->add_section(
36
- 'hestia_ribbon', array(
 
37
  'title' => esc_html__( 'Ribbon', 'themeisle-companion' ),
38
  'panel' => 'hestia_frontpage_sections',
39
  'priority' => apply_filters( 'hestia_section_priority', 35, 'hestia_ribbon' ),
@@ -42,7 +45,8 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
42
  }
43
 
44
  $wp_customize->add_setting(
45
- 'hestia_ribbon_hide', array(
 
46
  'sanitize_callback' => 'hestia_sanitize_checkbox',
47
  'default' => true,
48
  'transport' => $selective_refresh,
@@ -50,7 +54,8 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
50
  );
51
 
52
  $wp_customize->add_control(
53
- 'hestia_ribbon_hide', array(
 
54
  'type' => 'checkbox',
55
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
56
  'section' => 'hestia_ribbon',
@@ -60,7 +65,8 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
60
 
61
  $default = ( current_user_can( 'edit_theme_options' ) ? get_template_directory_uri() . '/assets/img/contact.jpg' : '' );
62
  $wp_customize->add_setting(
63
- 'hestia_ribbon_background', array(
 
64
  'sanitize_callback' => 'esc_url_raw',
65
  'default' => $default,
66
  'transport' => $selective_refresh,
@@ -69,17 +75,20 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
69
 
70
  $wp_customize->add_control(
71
  new WP_Customize_Image_Control(
72
- $wp_customize, 'hestia_ribbon_background', array(
73
- 'label' => esc_html__( 'Background Image', 'themeisle-companion' ),
74
- 'section' => 'hestia_ribbon',
75
- 'priority' => 5,
 
 
76
  )
77
  )
78
  );
79
 
80
  $default = ( current_user_can( 'edit_theme_options' ) ? esc_html__( 'Subscribe to our Newsletter', 'themeisle-companion' ) : false );
81
  $wp_customize->add_setting(
82
- 'hestia_ribbon_text', array(
 
83
  'sanitize_callback' => 'wp_kses_post',
84
  'default' => $default,
85
  'transport' => $selective_refresh,
@@ -87,8 +96,9 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
87
  );
88
 
89
  $wp_customize->add_control(
90
- 'hestia_ribbon_text', array(
91
- 'type' => 'textarea',
 
92
  'label' => esc_html__( 'Text', 'themeisle-companion' ),
93
  'section' => 'hestia_ribbon',
94
  'priority' => 10,
@@ -97,15 +107,17 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
97
 
98
  $default = ( current_user_can( 'edit_theme_options' ) ? esc_html__( 'Subscribe', 'themeisle-companion' ) : false );
99
  $wp_customize->add_setting(
100
- 'hestia_ribbon_button_text', array(
 
101
  'sanitize_callback' => 'sanitize_text_field',
102
- 'default' => $default,
103
- 'transport' => $selective_refresh,
104
  )
105
  );
106
 
107
  $wp_customize->add_control(
108
- 'hestia_ribbon_button_text', array(
 
109
  'label' => esc_html__( 'Button Text', 'themeisle-companion' ),
110
  'section' => 'hestia_ribbon',
111
  'priority' => 15,
@@ -114,15 +126,17 @@ if ( ! function_exists( 'hestia_ribbon_customize_register' ) ) :
114
 
115
  $default = ( current_user_can( 'edit_theme_options' ) ? '#' : false );
116
  $wp_customize->add_setting(
117
- 'hestia_ribbon_button_url', array(
 
118
  'sanitize_callback' => 'esc_url_raw',
119
  'transport' => $selective_refresh,
120
- 'default' => $default,
121
  )
122
  );
123
 
124
  $wp_customize->add_control(
125
- 'hestia_ribbon_button_url', array(
 
126
  'label' => esc_html__( 'Link', 'themeisle-companion' ),
127
  'section' => 'hestia_ribbon',
128
  'priority' => 20,
18
  */
19
  function hestia_ribbon_customize_register( $wp_customize ) {
20
 
21
+ $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists( 'hestia_display_customizer_shortcut' ) ? 'postMessage' : 'refresh';
22
 
23
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
24
  $wp_customize->add_section(
25
  new Hestia_Hiding_Section(
26
+ $wp_customize,
27
+ 'hestia_ribbon',
28
+ array(
29
  'title' => esc_html__( 'Ribbon', 'themeisle-companion' ),
30
  'panel' => 'hestia_frontpage_sections',
31
  'priority' => apply_filters( 'hestia_section_priority', 35, 'hestia_ribbon' ),
35
  );
36
  } else {
37
  $wp_customize->add_section(
38
+ 'hestia_ribbon',
39
+ array(
40
  'title' => esc_html__( 'Ribbon', 'themeisle-companion' ),
41
  'panel' => 'hestia_frontpage_sections',
42
  'priority' => apply_filters( 'hestia_section_priority', 35, 'hestia_ribbon' ),
45
  }
46
 
47
  $wp_customize->add_setting(
48
+ 'hestia_ribbon_hide',
49
+ array(
50
  'sanitize_callback' => 'hestia_sanitize_checkbox',
51
  'default' => true,
52
  'transport' => $selective_refresh,
54
  );
55
 
56
  $wp_customize->add_control(
57
+ 'hestia_ribbon_hide',
58
+ array(
59
  'type' => 'checkbox',
60
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
61
  'section' => 'hestia_ribbon',
65
 
66
  $default = ( current_user_can( 'edit_theme_options' ) ? get_template_directory_uri() . '/assets/img/contact.jpg' : '' );
67
  $wp_customize->add_setting(
68
+ 'hestia_ribbon_background',
69
+ array(
70
  'sanitize_callback' => 'esc_url_raw',
71
  'default' => $default,
72
  'transport' => $selective_refresh,
75
 
76
  $wp_customize->add_control(
77
  new WP_Customize_Image_Control(
78
+ $wp_customize,
79
+ 'hestia_ribbon_background',
80
+ array(
81
+ 'label' => esc_html__( 'Background Image', 'themeisle-companion' ),
82
+ 'section' => 'hestia_ribbon',
83
+ 'priority' => 5,
84
  )
85
  )
86
  );
87
 
88
  $default = ( current_user_can( 'edit_theme_options' ) ? esc_html__( 'Subscribe to our Newsletter', 'themeisle-companion' ) : false );
89
  $wp_customize->add_setting(
90
+ 'hestia_ribbon_text',
91
+ array(
92
  'sanitize_callback' => 'wp_kses_post',
93
  'default' => $default,
94
  'transport' => $selective_refresh,
96
  );
97
 
98
  $wp_customize->add_control(
99
+ 'hestia_ribbon_text',
100
+ array(
101
+ 'type' => 'textarea',
102
  'label' => esc_html__( 'Text', 'themeisle-companion' ),
103
  'section' => 'hestia_ribbon',
104
  'priority' => 10,
107
 
108
  $default = ( current_user_can( 'edit_theme_options' ) ? esc_html__( 'Subscribe', 'themeisle-companion' ) : false );
109
  $wp_customize->add_setting(
110
+ 'hestia_ribbon_button_text',
111
+ array(
112
  'sanitize_callback' => 'sanitize_text_field',
113
+ 'default' => $default,
114
+ 'transport' => $selective_refresh,
115
  )
116
  );
117
 
118
  $wp_customize->add_control(
119
+ 'hestia_ribbon_button_text',
120
+ array(
121
  'label' => esc_html__( 'Button Text', 'themeisle-companion' ),
122
  'section' => 'hestia_ribbon',
123
  'priority' => 15,
126
 
127
  $default = ( current_user_can( 'edit_theme_options' ) ? '#' : false );
128
  $wp_customize->add_setting(
129
+ 'hestia_ribbon_button_url',
130
+ array(
131
  'sanitize_callback' => 'esc_url_raw',
132
  'transport' => $selective_refresh,
133
+ 'default' => $default,
134
  )
135
  );
136
 
137
  $wp_customize->add_control(
138
+ 'hestia_ribbon_button_url',
139
+ array(
140
  'label' => esc_html__( 'Link', 'themeisle-companion' ),
141
  'section' => 'hestia_ribbon',
142
  'priority' => 20,
obfx_modules/companion-legacy/inc/hestia/inc/features/feature-team-section.php CHANGED
@@ -15,12 +15,14 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
15
  */
16
  function hestia_team_customize_register( $wp_customize ) {
17
 
18
- $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists('hestia_display_customizer_shortcut') ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
- $wp_customize, 'hestia_team', array(
 
 
24
  'title' => esc_html__( 'Team', 'themeisle-companion' ),
25
  'panel' => 'hestia_frontpage_sections',
26
  'priority' => apply_filters( 'hestia_section_priority', 30, 'hestia_team' ),
@@ -30,7 +32,8 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
30
  );
31
  } else {
32
  $wp_customize->add_section(
33
- 'hestia_team', array(
 
34
  'title' => esc_html__( 'Team', 'themeisle-companion' ),
35
  'panel' => 'hestia_frontpage_sections',
36
  'priority' => apply_filters( 'hestia_section_priority', 30, 'hestia_team' ),
@@ -39,7 +42,8 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
39
  }
40
 
41
  $wp_customize->add_setting(
42
- 'hestia_team_hide', array(
 
43
  'sanitize_callback' => 'hestia_sanitize_checkbox',
44
  'default' => false,
45
  'transport' => $selective_refresh,
@@ -47,7 +51,8 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
47
  );
48
 
49
  $wp_customize->add_control(
50
- 'hestia_team_hide', array(
 
51
  'type' => 'checkbox',
52
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
53
  'section' => 'hestia_team',
@@ -56,14 +61,16 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
56
  );
57
 
58
  $wp_customize->add_setting(
59
- 'hestia_team_title', array(
 
60
  'sanitize_callback' => 'wp_kses_post',
61
  'transport' => $selective_refresh,
62
  )
63
  );
64
 
65
  $wp_customize->add_control(
66
- 'hestia_team_title', array(
 
67
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
68
  'section' => 'hestia_team',
69
  'priority' => 5,
@@ -71,14 +78,16 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
71
  );
72
 
73
  $wp_customize->add_setting(
74
- 'hestia_team_subtitle', array(
 
75
  'sanitize_callback' => 'wp_kses_post',
76
  'transport' => $selective_refresh,
77
  )
78
  );
79
 
80
  $wp_customize->add_control(
81
- 'hestia_team_subtitle', array(
 
82
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
83
  'section' => 'hestia_team',
84
  'priority' => 10,
@@ -87,7 +96,8 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
87
 
88
  if ( class_exists( 'Hestia_Repeater' ) ) {
89
  $wp_customize->add_setting(
90
- 'hestia_team_content', array(
 
91
  'sanitize_callback' => 'hestia_repeater_sanitize',
92
  'transport' => $selective_refresh,
93
  )
@@ -95,17 +105,19 @@ if ( ! function_exists( 'hestia_team_customize_register' ) ) :
95
 
96
  $wp_customize->add_control(
97
  new Hestia_Repeater(
98
- $wp_customize, 'hestia_team_content', array(
99
- 'label' => esc_html__( 'Team Content', 'themeisle-companion' ),
100
- 'section' => 'hestia_team',
101
- 'priority' => 15,
102
- 'add_field_label' => esc_html__( 'Add new Team Member', 'themeisle-companion' ),
103
- 'item_name' => esc_html__( 'Team Member', 'themeisle-companion' ),
104
- 'customizer_repeater_image_control' => true,
105
- 'customizer_repeater_title_control' => true,
 
 
106
  'customizer_repeater_subtitle_control' => true,
107
- 'customizer_repeater_text_control' => true,
108
- 'customizer_repeater_link_control' => true,
109
  'customizer_repeater_repeater_control' => true,
110
  )
111
  )
@@ -132,9 +144,10 @@ function hestia_register_team_partials( $wp_customize ) {
132
  }
133
 
134
  $wp_customize->selective_refresh->add_partial(
135
- 'hestia_team_content', array(
136
- 'selector' => '.hestia-team-content',
137
- 'settings' => 'hestia_team_content',
 
138
  'render_callback' => 'hestia_team_content_callback',
139
  )
140
  );
15
  */
16
  function hestia_team_customize_register( $wp_customize ) {
17
 
18
+ $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists( 'hestia_display_customizer_shortcut' ) ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
+ $wp_customize,
24
+ 'hestia_team',
25
+ array(
26
  'title' => esc_html__( 'Team', 'themeisle-companion' ),
27
  'panel' => 'hestia_frontpage_sections',
28
  'priority' => apply_filters( 'hestia_section_priority', 30, 'hestia_team' ),
32
  );
33
  } else {
34
  $wp_customize->add_section(
35
+ 'hestia_team',
36
+ array(
37
  'title' => esc_html__( 'Team', 'themeisle-companion' ),
38
  'panel' => 'hestia_frontpage_sections',
39
  'priority' => apply_filters( 'hestia_section_priority', 30, 'hestia_team' ),
42
  }
43
 
44
  $wp_customize->add_setting(
45
+ 'hestia_team_hide',
46
+ array(
47
  'sanitize_callback' => 'hestia_sanitize_checkbox',
48
  'default' => false,
49
  'transport' => $selective_refresh,
51
  );
52
 
53
  $wp_customize->add_control(
54
+ 'hestia_team_hide',
55
+ array(
56
  'type' => 'checkbox',
57
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
58
  'section' => 'hestia_team',
61
  );
62
 
63
  $wp_customize->add_setting(
64
+ 'hestia_team_title',
65
+ array(
66
  'sanitize_callback' => 'wp_kses_post',
67
  'transport' => $selective_refresh,
68
  )
69
  );
70
 
71
  $wp_customize->add_control(
72
+ 'hestia_team_title',
73
+ array(
74
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
75
  'section' => 'hestia_team',
76
  'priority' => 5,
78
  );
79
 
80
  $wp_customize->add_setting(
81
+ 'hestia_team_subtitle',
82
+ array(
83
  'sanitize_callback' => 'wp_kses_post',
84
  'transport' => $selective_refresh,
85
  )
86
  );
87
 
88
  $wp_customize->add_control(
89
+ 'hestia_team_subtitle',
90
+ array(
91
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
92
  'section' => 'hestia_team',
93
  'priority' => 10,
96
 
97
  if ( class_exists( 'Hestia_Repeater' ) ) {
98
  $wp_customize->add_setting(
99
+ 'hestia_team_content',
100
+ array(
101
  'sanitize_callback' => 'hestia_repeater_sanitize',
102
  'transport' => $selective_refresh,
103
  )
105
 
106
  $wp_customize->add_control(
107
  new Hestia_Repeater(
108
+ $wp_customize,
109
+ 'hestia_team_content',
110
+ array(
111
+ 'label' => esc_html__( 'Team Content', 'themeisle-companion' ),
112
+ 'section' => 'hestia_team',
113
+ 'priority' => 15,
114
+ 'add_field_label' => esc_html__( 'Add new Team Member', 'themeisle-companion' ),
115
+ 'item_name' => esc_html__( 'Team Member', 'themeisle-companion' ),
116
+ 'customizer_repeater_image_control' => true,
117
+ 'customizer_repeater_title_control' => true,
118
  'customizer_repeater_subtitle_control' => true,
119
+ 'customizer_repeater_text_control' => true,
120
+ 'customizer_repeater_link_control' => true,
121
  'customizer_repeater_repeater_control' => true,
122
  )
123
  )
144
  }
145
 
146
  $wp_customize->selective_refresh->add_partial(
147
+ 'hestia_team_content',
148
+ array(
149
+ 'selector' => '.hestia-team-content',
150
+ 'settings' => 'hestia_team_content',
151
  'render_callback' => 'hestia_team_content_callback',
152
  )
153
  );
obfx_modules/companion-legacy/inc/hestia/inc/features/feature-testimonials-section.php CHANGED
@@ -15,12 +15,14 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
15
  */
16
  function hestia_testimonials_customize_register( $wp_customize ) {
17
 
18
- $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists('hestia_display_customizer_shortcut') ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
- $wp_customize, 'hestia_testimonials', array(
 
 
24
  'title' => esc_html__( 'Testimonials', 'themeisle-companion' ),
25
  'panel' => 'hestia_frontpage_sections',
26
  'priority' => apply_filters( 'hestia_section_priority', 40, 'hestia_testimonials' ),
@@ -30,7 +32,8 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
30
  );
31
  } else {
32
  $wp_customize->add_section(
33
- 'hestia_testimonials', array(
 
34
  'title' => esc_html__( 'Testimonials', 'themeisle-companion' ),
35
  'panel' => 'hestia_frontpage_sections',
36
  'priority' => apply_filters( 'hestia_section_priority', 45, 'hestia_testimonials' ),
@@ -39,7 +42,8 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
39
  }
40
 
41
  $wp_customize->add_setting(
42
- 'hestia_testimonials_hide', array(
 
43
  'sanitize_callback' => 'hestia_sanitize_checkbox',
44
  'default' => false,
45
  'transport' => $selective_refresh,
@@ -47,7 +51,8 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
47
  );
48
 
49
  $wp_customize->add_control(
50
- 'hestia_testimonials_hide', array(
 
51
  'type' => 'checkbox',
52
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
53
  'section' => 'hestia_testimonials',
@@ -56,14 +61,16 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
56
  );
57
 
58
  $wp_customize->add_setting(
59
- 'hestia_testimonials_title', array(
 
60
  'sanitize_callback' => 'wp_kses_post',
61
  'transport' => $selective_refresh,
62
  )
63
  );
64
 
65
  $wp_customize->add_control(
66
- 'hestia_testimonials_title', array(
 
67
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
68
  'section' => 'hestia_testimonials',
69
  'priority' => 5,
@@ -71,14 +78,16 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
71
  );
72
 
73
  $wp_customize->add_setting(
74
- 'hestia_testimonials_subtitle', array(
 
75
  'sanitize_callback' => 'wp_kses_post',
76
  'transport' => $selective_refresh,
77
  )
78
  );
79
 
80
  $wp_customize->add_control(
81
- 'hestia_testimonials_subtitle', array(
 
82
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
83
  'section' => 'hestia_testimonials',
84
  'priority' => 10,
@@ -87,7 +96,8 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
87
 
88
  if ( class_exists( 'Hestia_Repeater' ) ) {
89
  $wp_customize->add_setting(
90
- 'hestia_testimonials_content', array(
 
91
  'sanitize_callback' => 'hestia_repeater_sanitize',
92
  'transport' => $selective_refresh,
93
  )
@@ -95,17 +105,19 @@ if ( ! function_exists( 'hestia_testimonials_customize_register' ) ) :
95
 
96
  $wp_customize->add_control(
97
  new Hestia_Repeater(
98
- $wp_customize, 'hestia_testimonials_content', array(
99
- 'label' => esc_html__( 'Testimonials Content', 'themeisle-companion' ),
100
- 'section' => 'hestia_testimonials',
101
- 'priority' => 15,
102
- 'add_field_label' => esc_html__( 'Add new Testimonial', 'themeisle-companion' ),
103
- 'item_name' => esc_html__( 'Testimonial', 'themeisle-companion' ),
104
- 'customizer_repeater_image_control' => true,
105
- 'customizer_repeater_title_control' => true,
 
 
106
  'customizer_repeater_subtitle_control' => true,
107
- 'customizer_repeater_text_control' => true,
108
- 'customizer_repeater_link_control' => true,
109
  )
110
  )
111
  );
@@ -131,9 +143,10 @@ function hestia_register_testimonials_partials( $wp_customize ) {
131
  }
132
 
133
  $wp_customize->selective_refresh->add_partial(
134
- 'hestia_testimonials_content', array(
135
- 'selector' => '.hestia-testimonials-content',
136
- 'settings' => 'hestia_testimonials_content',
 
137
  'render_callback' => 'hestia_testimonials_content_callback',
138
  )
139
  );
15
  */
16
  function hestia_testimonials_customize_register( $wp_customize ) {
17
 
18
+ $selective_refresh = isset( $wp_customize->selective_refresh ) && function_exists( 'hestia_display_customizer_shortcut' ) ? 'postMessage' : 'refresh';
19
 
20
  if ( class_exists( 'Hestia_Hiding_Section' ) ) {
21
  $wp_customize->add_section(
22
  new Hestia_Hiding_Section(
23
+ $wp_customize,
24
+ 'hestia_testimonials',
25
+ array(
26
  'title' => esc_html__( 'Testimonials', 'themeisle-companion' ),
27
  'panel' => 'hestia_frontpage_sections',
28
  'priority' => apply_filters( 'hestia_section_priority', 40, 'hestia_testimonials' ),
32
  );
33
  } else {
34
  $wp_customize->add_section(
35
+ 'hestia_testimonials',
36
+ array(
37
  'title' => esc_html__( 'Testimonials', 'themeisle-companion' ),
38
  'panel' => 'hestia_frontpage_sections',
39
  'priority' => apply_filters( 'hestia_section_priority', 45, 'hestia_testimonials' ),
42
  }
43
 
44
  $wp_customize->add_setting(
45
+ 'hestia_testimonials_hide',
46
+ array(
47
  'sanitize_callback' => 'hestia_sanitize_checkbox',
48
  'default' => false,
49
  'transport' => $selective_refresh,
51
  );
52
 
53
  $wp_customize->add_control(
54
+ 'hestia_testimonials_hide',
55
+ array(
56
  'type' => 'checkbox',
57
  'label' => esc_html__( 'Disable section', 'themeisle-companion' ),
58
  'section' => 'hestia_testimonials',
61
  );
62
 
63
  $wp_customize->add_setting(
64
+ 'hestia_testimonials_title',
65
+ array(
66
  'sanitize_callback' => 'wp_kses_post',
67
  'transport' => $selective_refresh,
68
  )
69
  );
70
 
71
  $wp_customize->add_control(
72
+ 'hestia_testimonials_title',
73
+ array(
74
  'label' => esc_html__( 'Section Title', 'themeisle-companion' ),
75
  'section' => 'hestia_testimonials',
76
  'priority' => 5,
78
  );
79
 
80
  $wp_customize->add_setting(
81
+ 'hestia_testimonials_subtitle',
82
+ array(
83
  'sanitize_callback' => 'wp_kses_post',
84
  'transport' => $selective_refresh,
85
  )
86
  );
87
 
88
  $wp_customize->add_control(
89
+ 'hestia_testimonials_subtitle',
90
+ array(
91
  'label' => esc_html__( 'Section Subtitle', 'themeisle-companion' ),
92
  'section' => 'hestia_testimonials',
93
  'priority' => 10,
96
 
97
  if ( class_exists( 'Hestia_Repeater' ) ) {
98
  $wp_customize->add_setting(
99
+ 'hestia_testimonials_content',
100
+ array(
101
  'sanitize_callback' => 'hestia_repeater_sanitize',
102
  'transport' => $selective_refresh,
103
  )
105
 
106
  $wp_customize->add_control(
107
  new Hestia_Repeater(
108
+ $wp_customize,
109
+ 'hestia_testimonials_content',
110
+ array(
111
+ 'label' => esc_html__( 'Testimonials Content', 'themeisle-companion' ),
112
+ 'section' => 'hestia_testimonials',
113
+ 'priority' => 15,
114
+ 'add_field_label' => esc_html__( 'Add new Testimonial', 'themeisle-companion' ),
115
+ 'item_name' => esc_html__( 'Testimonial', 'themeisle-companion' ),
116
+ 'customizer_repeater_image_control' => true,
117
+ 'customizer_repeater_title_control' => true,
118
  'customizer_repeater_subtitle_control' => true,
119
+ 'customizer_repeater_text_control' => true,
120
+ 'customizer_repeater_link_control' => true,
121
  )
122
  )
123
  );
143
  }
144
 
145
  $wp_customize->selective_refresh->add_partial(
146
+ 'hestia_testimonials_content',
147
+ array(
148
+ 'selector' => '.hestia-testimonials-content',
149
+ 'settings' => 'hestia_testimonials_content',
150
  'render_callback' => 'hestia_testimonials_content_callback',
151
  )
152
  );
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-clients-bar-section.php CHANGED
@@ -45,19 +45,19 @@ if ( ! function_exists( 'hestia_clients_bar' ) ) :
45
  $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
46
 
47
  hestia_before_clients_bar_section_trigger(); ?>
48
- <section class="hestia-clients-bar text-center <?php echo esc_attr( $wrapper_class ); ?>" id="clients" data-sorder="hestia_clients_bar" <?php echo wp_kses_post( $section_style ); ?>>
49
  <?php
50
- if ( $is_shortcode === false && function_exists('hestia_display_customizer_shortcut') ) {
51
  hestia_display_customizer_shortcut( 'hestia_clients_bar_hide', true );
52
  }
53
  ?>
54
- <div class="container">
55
  <?php
56
  if ( function_exists( 'hestia_clients_bar_section_content_trigger' ) ) {
57
  hestia_clients_bar_section_content_trigger();
58
  }
59
  ?>
60
- <ul class="clients-bar-wrapper" <?php echo hestia_add_animationation( 'fade-up' ); ?>>
61
  <?php
62
  if ( ! empty( $hestia_clients_bar_content_decoded ) ) {
63
  foreach ( $hestia_clients_bar_content_decoded as $client ) {
@@ -89,9 +89,9 @@ if ( ! function_exists( 'hestia_clients_bar' ) ) :
89
  }
90
  }
91
  ?>
92
- </ul>
93
- </div>
94
- </section>
95
  <?php
96
 
97
  hestia_after_clients_bar_section_trigger();
45
  $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
46
 
47
  hestia_before_clients_bar_section_trigger(); ?>
48
+ <section class="hestia-clients-bar text-center <?php echo esc_attr( $wrapper_class ); ?>" id="clients" data-sorder="hestia_clients_bar" <?php echo wp_kses_post( $section_style ); ?>>
49
  <?php
50
+ if ( $is_shortcode === false && function_exists( 'hestia_display_customizer_shortcut' ) ) {
51
  hestia_display_customizer_shortcut( 'hestia_clients_bar_hide', true );
52
  }
53
  ?>
54
+ <div class="container">
55
  <?php
56
  if ( function_exists( 'hestia_clients_bar_section_content_trigger' ) ) {
57
  hestia_clients_bar_section_content_trigger();
58
  }
59
  ?>
60
+ <ul class="clients-bar-wrapper" <?php echo hestia_add_animationation( 'fade-up' ); ?>>
61
  <?php
62
  if ( ! empty( $hestia_clients_bar_content_decoded ) ) {
63
  foreach ( $hestia_clients_bar_content_decoded as $client ) {
89
  }
90
  }
91
  ?>
92
+ </ul>
93
+ </div>
94
+ </section>
95
  <?php
96
 
97
  hestia_after_clients_bar_section_trigger();
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php CHANGED
@@ -24,14 +24,14 @@ if ( ! function_exists( 'hestia_features' ) ) :
24
  $is_shortcode = false;
25
  }
26
 
27
- $hide_section = get_theme_mod( 'hestia_features_hide', false );
28
- $default_title = current_user_can( 'edit_theme_options' ) ? esc_html__( 'Why our product is the best', 'themeisle-companion' ) : false;
29
- $default_subtitle = current_user_can( 'edit_theme_options' ) ? esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'themeisle-companion' ) : false;
30
- $default_content = current_user_can( 'edit_theme_options' ) ? hestia_get_features_default() : false;
31
  $hestia_features_title = get_theme_mod( 'hestia_features_title', $default_title );
32
  $hestia_features_subtitle = get_theme_mod( 'hestia_features_subtitle', $default_subtitle );
33
  $hestia_features_content = get_theme_mod( 'hestia_features_content', $default_content );
34
- $section_is_empty = empty( $hestia_features_content ) && empty( $hestia_features_subtitle ) && empty( $hestia_features_title );
35
 
36
  /* Don't show section if Disable section is checked or it doesn't have any content. Show it if it's called as a shortcode */
37
  if ( $is_shortcode === false && ( $section_is_empty || (bool) $hide_section === true ) ) {
@@ -41,15 +41,15 @@ if ( ! function_exists( 'hestia_features' ) ) :
41
  return;
42
  }
43
 
44
- $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
45
  $container_class = $is_shortcode === true ? '' : 'container';
46
 
47
  hestia_before_features_section_trigger();
48
  ?>
49
  <section class="hestia-features <?php echo esc_attr( $wrapper_class ); ?>" id="features" data-sorder="hestia_features">
50
  <?php
51
- hestia_before_features_section_content_trigger();
52
- if ( $is_shortcode === false && function_exists('hestia_display_customizer_shortcut') ) {
53
  hestia_display_customizer_shortcut( 'hestia_features_hide', true );
54
  }
55
  ?>
@@ -57,11 +57,11 @@ if ( ! function_exists( 'hestia_features' ) ) :
57
  <?php
58
  hestia_top_features_section_content_trigger();
59
  if ( $is_shortcode === false ) {
60
- ?>
61
  <div class="row">
62
  <div class="col-md-8 col-md-offset-2 hestia-features-title-area">
63
  <?php
64
- if ( function_exists('hestia_display_customizer_shortcut') && ! empty( $hestia_features_title ) && ! empty( $hestia_features_subtitle ) ) {
65
  hestia_display_customizer_shortcut( 'hestia_features_title' );
66
  }
67
  if ( ! empty( $hestia_features_title ) || is_customize_preview() ) {
@@ -97,7 +97,7 @@ endif;
97
  */
98
  function hestia_features_content( $hestia_features_content, $is_callback = false ) {
99
  if ( ! $is_callback ) {
100
- ?>
101
  <div class="hestia-features-content">
102
  <?php
103
  }
@@ -107,15 +107,15 @@ function hestia_features_content( $hestia_features_content, $is_callback = false
107
  if ( ! empty( $hestia_features_content ) ) {
108
  echo '<div class="row">';
109
  foreach ( $hestia_features_content as $features_item ) :
110
- $icon = ! empty( $features_item->icon_value ) ? apply_filters( 'hestia_translate_single_string', $features_item->icon_value, 'Features section' ) : '';
111
- $image = ! empty( $features_item->image_url ) ? apply_filters( 'hestia_translate_single_string', $features_item->image_url, 'Features section' ) : '';
112
- $title = ! empty( $features_item->title ) ? apply_filters( 'hestia_translate_single_string', $features_item->title, 'Features section' ) : '';
113
- $text = ! empty( $features_item->text ) ? apply_filters( 'hestia_translate_single_string', $features_item->text, 'Features section' ) : '';
114
- $link = ! empty( $features_item->link ) ? apply_filters( 'hestia_translate_single_string', $features_item->link, 'Features section' ) : '';
115
- $color = ! empty( $features_item->color ) ? $features_item->color : '';
116
  $choice = ! empty( $features_item->choice ) ? $features_item->choice : 'customizer_repeater_icon';
117
  ?>
118
- <div class="col-xs-12 <?php echo apply_filters( 'hestia_features_per_row_class','col-md-4' ); ?> feature-box">
119
  <div class="hestia-info">
120
  <?php
121
  if ( ! empty( $link ) ) {
@@ -147,14 +147,14 @@ function hestia_features_content( $hestia_features_content, $is_callback = false
147
  }
148
  break;
149
  }
150
- ?>
151
  <?php if ( ! empty( $title ) ) : ?>
152
  <h4 class="info-title"><?php echo esc_html( $title ); ?></h4>
153
  <?php endif; ?>
154
  <?php if ( ! empty( $link ) ) : ?>
155
  </a>
156
  <?php endif; ?>
157
- <?php if ( ! empty( $text ) ) : ?>
158
  <p><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
159
  <?php endif; ?>
160
  </div>
@@ -165,7 +165,7 @@ function hestia_features_content( $hestia_features_content, $is_callback = false
165
  }// End if().
166
  endif;
167
  if ( ! $is_callback ) {
168
- ?>
169
  </div>
170
  <?php
171
  }
@@ -179,7 +179,8 @@ function hestia_features_content( $hestia_features_content, $is_callback = false
179
  */
180
  function hestia_get_features_default() {
181
  return apply_filters(
182
- 'hestia_features_default_content', json_encode(
 
183
  array(
184
  array(
185
  'icon_value' => 'fa-wechat',
24
  $is_shortcode = false;
25
  }
26
 
27
+ $hide_section = get_theme_mod( 'hestia_features_hide', false );
28
+ $default_title = current_user_can( 'edit_theme_options' ) ? esc_html__( 'Why our product is the best', 'themeisle-companion' ) : false;
29
+ $default_subtitle = current_user_can( 'edit_theme_options' ) ? esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'themeisle-companion' ) : false;
30
+ $default_content = current_user_can( 'edit_theme_options' ) ? hestia_get_features_default() : false;
31
  $hestia_features_title = get_theme_mod( 'hestia_features_title', $default_title );
32
  $hestia_features_subtitle = get_theme_mod( 'hestia_features_subtitle', $default_subtitle );
33
  $hestia_features_content = get_theme_mod( 'hestia_features_content', $default_content );
34
+ $section_is_empty = empty( $hestia_features_content ) && empty( $hestia_features_subtitle ) && empty( $hestia_features_title );
35
 
36
  /* Don't show section if Disable section is checked or it doesn't have any content. Show it if it's called as a shortcode */
37
  if ( $is_shortcode === false && ( $section_is_empty || (bool) $hide_section === true ) ) {
41
  return;
42
  }
43
 
44
+ $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
45
  $container_class = $is_shortcode === true ? '' : 'container';
46
 
47
  hestia_before_features_section_trigger();
48
  ?>
49
  <section class="hestia-features <?php echo esc_attr( $wrapper_class ); ?>" id="features" data-sorder="hestia_features">
50
  <?php
51
+ hestia_before_features_section_content_trigger();
52
+ if ( $is_shortcode === false && function_exists( 'hestia_display_customizer_shortcut' ) ) {
53
  hestia_display_customizer_shortcut( 'hestia_features_hide', true );
54
  }
55
  ?>
57
  <?php
58
  hestia_top_features_section_content_trigger();
59
  if ( $is_shortcode === false ) {
60
+ ?>
61
  <div class="row">
62
  <div class="col-md-8 col-md-offset-2 hestia-features-title-area">
63
  <?php
64
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) && ! empty( $hestia_features_title ) && ! empty( $hestia_features_subtitle ) ) {
65
  hestia_display_customizer_shortcut( 'hestia_features_title' );
66
  }
67
  if ( ! empty( $hestia_features_title ) || is_customize_preview() ) {
97
  */
98
  function hestia_features_content( $hestia_features_content, $is_callback = false ) {
99
  if ( ! $is_callback ) {
100
+ ?>
101
  <div class="hestia-features-content">
102
  <?php
103
  }
107
  if ( ! empty( $hestia_features_content ) ) {
108
  echo '<div class="row">';
109
  foreach ( $hestia_features_content as $features_item ) :
110
+ $icon = ! empty( $features_item->icon_value ) ? apply_filters( 'hestia_translate_single_string', $features_item->icon_value, 'Features section' ) : '';
111
+ $image = ! empty( $features_item->image_url ) ? apply_filters( 'hestia_translate_single_string', $features_item->image_url, 'Features section' ) : '';
112
+ $title = ! empty( $features_item->title ) ? apply_filters( 'hestia_translate_single_string', $features_item->title, 'Features section' ) : '';
113
+ $text = ! empty( $features_item->text ) ? apply_filters( 'hestia_translate_single_string', $features_item->text, 'Features section' ) : '';
114
+ $link = ! empty( $features_item->link ) ? apply_filters( 'hestia_translate_single_string', $features_item->link, 'Features section' ) : '';
115
+ $color = ! empty( $features_item->color ) ? $features_item->color : '';
116
  $choice = ! empty( $features_item->choice ) ? $features_item->choice : 'customizer_repeater_icon';
117
  ?>
118
+ <div class="col-xs-12 <?php echo apply_filters( 'hestia_features_per_row_class', 'col-md-4' ); ?> feature-box">
119
  <div class="hestia-info">
120
  <?php
121
  if ( ! empty( $link ) ) {
147
  }
148
  break;
149
  }
150
+ ?>
151
  <?php if ( ! empty( $title ) ) : ?>
152
  <h4 class="info-title"><?php echo esc_html( $title ); ?></h4>
153
  <?php endif; ?>
154
  <?php if ( ! empty( $link ) ) : ?>
155
  </a>
156
  <?php endif; ?>
157
+ <?php if ( ! empty( $text ) ) : ?>
158
  <p><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
159
  <?php endif; ?>
160
  </div>
165
  }// End if().
166
  endif;
167
  if ( ! $is_callback ) {
168
+ ?>
169
  </div>
170
  <?php
171
  }
179
  */
180
  function hestia_get_features_default() {
181
  return apply_filters(
182
+ 'hestia_features_default_content',
183
+ json_encode(
184
  array(
185
  array(
186
  'icon_value' => 'fa-wechat',
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-ribbon-section.php CHANGED
@@ -59,30 +59,31 @@ if ( ! function_exists( 'hestia_ribbon' ) ) :
59
  $class_to_add .= ! empty( $hestia_ribbon_background ) ? 'section-image' : '';
60
 
61
  hestia_before_ribbon_section_trigger(); ?>
62
- <section class="hestia-ribbon section <?php echo esc_attr( $class_to_add ); ?>" id="ribbon" data-sorder="hestia_ribbon" <?php echo wp_kses_post( $section_style ); ?>>
63
  <?php
64
- if ( function_exists('hestia_display_customizer_shortcut') && $is_shortcode === false ) {
65
  hestia_display_customizer_shortcut( 'hestia_ribbon_hide', true );
66
  }
67
  ?>
68
- <div class="container">
69
- <div class="row hestia-xs-text-center hestia-like-table hestia-ribbon-content">
70
  <?php
71
- if( function_exists('hestia_display_customizer_shortcut') ) {
72
- hestia_display_customizer_shortcut( 'hestia_ribbon_text' );
73
- } ?>
74
- <div class="col-md-8 hestia-ribbon-content-left" <?php echo hestia_add_animationation( 'fade-right' ); ?>>
 
75
  <?php
76
  if ( ! empty( $hestia_ribbon_text ) || is_customize_preview() ) {
77
  ?>
78
- <h2 class="hestia-title" style="margin:0;">
79
  <?php echo hestia_sanitize_string( $hestia_ribbon_text ); ?>
80
- </h2>
81
  <?php
82
  }
83
  ?>
84
- </div>
85
- <div class="col-md-4 text-center hestia-ribbon-content-right" <?php echo hestia_add_animationation( 'fade-left' ); ?>>
86
  <?php
87
 
88
  if ( ( ! empty( $hestia_ribbon_button_text ) && ! empty( $hestia_ribbon_button_url ) ) || is_customize_preview() ) {
@@ -97,10 +98,10 @@ if ( ! function_exists( 'hestia_ribbon' ) ) :
97
  echo wp_kses_post( $link_html );
98
  }
99
  ?>
100
- </div>
101
- </div>
102
- </div>
103
- </section>
104
  <?php
105
  hestia_after_ribbon_section_trigger();
106
  }
59
  $class_to_add .= ! empty( $hestia_ribbon_background ) ? 'section-image' : '';
60
 
61
  hestia_before_ribbon_section_trigger(); ?>
62
+ <section class="hestia-ribbon section <?php echo esc_attr( $class_to_add ); ?>" id="ribbon" data-sorder="hestia_ribbon" <?php echo wp_kses_post( $section_style ); ?>>
63
  <?php
64
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) && $is_shortcode === false ) {
65
  hestia_display_customizer_shortcut( 'hestia_ribbon_hide', true );
66
  }
67
  ?>
68
+ <div class="container">
69
+ <div class="row hestia-xs-text-center hestia-like-table hestia-ribbon-content">
70
  <?php
71
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) ) {
72
+ hestia_display_customizer_shortcut( 'hestia_ribbon_text' );
73
+ }
74
+ ?>
75
+ <div class="col-md-8 hestia-ribbon-content-left" <?php echo hestia_add_animationation( 'fade-right' ); ?>>
76
  <?php
77
  if ( ! empty( $hestia_ribbon_text ) || is_customize_preview() ) {
78
  ?>
79
+ <h2 class="hestia-title" style="margin:0;">
80
  <?php echo hestia_sanitize_string( $hestia_ribbon_text ); ?>
81
+ </h2>
82
  <?php
83
  }
84
  ?>
85
+ </div>
86
+ <div class="col-md-4 text-center hestia-ribbon-content-right" <?php echo hestia_add_animationation( 'fade-left' ); ?>>
87
  <?php
88
 
89
  if ( ( ! empty( $hestia_ribbon_button_text ) && ! empty( $hestia_ribbon_button_url ) ) || is_customize_preview() ) {
98
  echo wp_kses_post( $link_html );
99
  }
100
  ?>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </section>
105
  <?php
106
  hestia_after_ribbon_section_trigger();
107
  }
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php CHANGED
@@ -23,20 +23,20 @@ if ( ! function_exists( 'hestia_team' ) ) :
23
  $is_shortcode = false;
24
  }
25
 
26
- $default_title = false;
27
  $default_subtitle = false;
28
- $default_content = false;
29
 
30
  if ( current_user_can( 'edit_theme_options' ) ) {
31
- $default_title = esc_html__( 'Meet our team', 'themeisle-companion' );
32
  $default_subtitle = esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'themeisle-companion' );
33
- $default_content = hestia_get_team_default();
34
  }
35
 
36
  $hestia_team_title = get_theme_mod( 'hestia_team_title', $default_title );
37
  $hestia_team_subtitle = get_theme_mod( 'hestia_team_subtitle', $default_subtitle );
38
  $hestia_team_content = get_theme_mod( 'hestia_team_content', $default_content );
39
- $section_is_empty = empty( $hestia_team_title ) && empty( $hestia_team_subtitle ) && empty( $hestia_team_content );
40
 
41
  $hide_section = get_theme_mod( 'hestia_team_hide', false );
42
 
@@ -48,7 +48,7 @@ if ( ! function_exists( 'hestia_team' ) ) :
48
  return;
49
  }
50
 
51
- $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
52
  $container_class = $is_shortcode === true ? '' : 'container';
53
 
54
  hestia_before_team_section_trigger();
@@ -56,7 +56,7 @@ if ( ! function_exists( 'hestia_team' ) ) :
56
  <section class="hestia-team <?php echo esc_attr( $wrapper_class ); ?>" id="team" data-sorder="hestia_team">
57
  <?php
58
  hestia_before_team_section_content_trigger();
59
- if ( function_exists('hestia_display_customizer_shortcut') && $is_shortcode === false ) {
60
  hestia_display_customizer_shortcut( 'hestia_team_hide', true );
61
  }
62
  ?>
@@ -64,13 +64,13 @@ if ( ! function_exists( 'hestia_team' ) ) :
64
  <?php
65
  hestia_top_team_section_content_trigger();
66
  if ( $is_shortcode === false ) {
67
- ?>
68
  <div class="row">
69
  <div class="col-md-8 col-md-offset-2 text-center hestia-team-title-area">
70
  <?php
71
- if( function_exists('hestia_display_customizer_shortcut') ) {
72
- hestia_display_customizer_shortcut( 'hestia_team_title' );
73
- }
74
  if ( ! empty( $hestia_team_title ) || is_customize_preview() ) {
75
  echo '<h2 class="hestia-title">' . wp_kses_post( $hestia_team_title ) . '</h2>';
76
  }
@@ -104,7 +104,7 @@ endif;
104
  */
105
  function hestia_team_content( $hestia_team_content, $is_callback = false ) {
106
  if ( ! $is_callback ) {
107
- ?>
108
  <div class="hestia-team-content">
109
  <?php
110
  }
@@ -116,33 +116,33 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
116
  if ( ! empty( $hestia_team_content ) ) {
117
  echo '<div class="row">';
118
  foreach ( $hestia_team_content as $team_item ) :
119
- $image = ! empty( $team_item->image_url ) ? apply_filters( 'hestia_translate_single_string', $team_item->image_url, 'Team section' ) : '';
120
- $title = ! empty( $team_item->title ) ? apply_filters( 'hestia_translate_single_string', $team_item->title, 'Team section' ) : '';
121
  $subtitle = ! empty( $team_item->subtitle ) ? apply_filters( 'hestia_translate_single_string', $team_item->subtitle, 'Team section' ) : '';
122
- $text = ! empty( $team_item->text ) ? apply_filters( 'hestia_translate_single_string', $team_item->text, 'Team section' ) : '';
123
- $link = ! empty( $team_item->link ) ? apply_filters( 'hestia_translate_single_string', $team_item->link, 'Team section' ) : '';
124
  ?>
125
  <div class="col-xs-12 col-ms-6 col-sm-6">
126
  <div class="card card-profile card-plain">
127
  <div class="col-md-5">
128
  <div class="card-image">
129
  <?php
130
- if ( ! empty( $image ) ) :
131
- /**
132
- * Alternative text for the Team box image
133
- * It first checks for the Alt Text option of the attachment
134
- * If that field is empty, uses the Title of the Testimonial box as alt text
135
- */
136
- $alt_image = '';
137
- $image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
138
- if ( ! empty( $image_id ) && $image_id !== 0 ) {
139
- $alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
140
- }
141
- if ( empty( $alt_image ) ) {
142
- if ( ! empty( $title ) ) {
143
- $alt_image = $title;
144
- }
145
- }
146
  if ( ! empty( $link ) ) :
147
  $link_html = '<a href="' . esc_url( $link ) . '"';
148
  if ( function_exists( 'hestia_is_external_url' ) ) {
@@ -152,32 +152,32 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
152
  echo wp_kses_post( $link_html );
153
  endif;
154
  echo '<img class="img" src="' . esc_url( $image ) . '" ';
155
- if ( ! empty( $alt_image ) ) {
156
- echo ' alt="' . esc_attr( $alt_image ) . '" ';
157
- }
158
- if ( ! empty( $title ) ) {
159
- echo ' title="' . esc_attr( $title ) . '" ';
160
- }
161
- echo '/>';
162
- if ( ! empty( $link ) ) {
163
- echo '</a>';
164
- }
165
- ?>
166
  <?php endif; ?>
167
  </div>
168
  </div>
169
  <div class="col-md-7">
170
  <div class="content">
171
- <?php
172
- if ( ! empty( $link ) ) :
173
- $link_html = '<a href="' . esc_url( $link ) . '"';
174
- if ( function_exists( 'hestia_is_external_url' ) ) {
175
- $link_html .= hestia_is_external_url( $link );
176
- }
177
- $link_html .= '>';
178
- echo wp_kses_post( $link_html );
179
- endif;
180
- ?>
181
  <?php if ( ! empty( $title ) ) : ?>
182
  <h4 class="card-title"><?php echo esc_html( $title ); ?></h4>
183
  <?php endif; ?>
@@ -187,14 +187,14 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
187
  <?php if ( ! empty( $text ) ) : ?>
188
  <p class="card-description"><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
189
  <?php endif; ?>
190
- <?php
191
- if ( ! empty( $link ) ) {
192
- echo '</a>';
193
- }
194
- ?>
195
  <?php
196
  if ( ! empty( $team_item->social_repeater ) ) :
197
- $icons = html_entity_decode( $team_item->social_repeater );
198
  $icons_decoded = json_decode( $icons, true );
199
  if ( ! empty( $icons_decoded ) ) :
200
  ?>
@@ -229,7 +229,7 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
229
  }// End if().
230
  endif;
231
  if ( ! $is_callback ) {
232
- ?>
233
  </div>
234
  <?php
235
  }
@@ -245,7 +245,8 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
245
  */
246
  function hestia_get_team_default() {
247
  return apply_filters(
248
- 'hestia_team_default_content', json_encode(
 
249
  array(
250
  array(
251
  'image_url' => get_template_directory_uri() . '/assets/img/1.jpg',
23
  $is_shortcode = false;
24
  }
25
 
26
+ $default_title = false;
27
  $default_subtitle = false;
28
+ $default_content = false;
29
 
30
  if ( current_user_can( 'edit_theme_options' ) ) {
31
+ $default_title = esc_html__( 'Meet our team', 'themeisle-companion' );
32
  $default_subtitle = esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'themeisle-companion' );
33
+ $default_content = hestia_get_team_default();
34
  }
35
 
36
  $hestia_team_title = get_theme_mod( 'hestia_team_title', $default_title );
37
  $hestia_team_subtitle = get_theme_mod( 'hestia_team_subtitle', $default_subtitle );
38
  $hestia_team_content = get_theme_mod( 'hestia_team_content', $default_content );
39
+ $section_is_empty = empty( $hestia_team_title ) && empty( $hestia_team_subtitle ) && empty( $hestia_team_content );
40
 
41
  $hide_section = get_theme_mod( 'hestia_team_hide', false );
42
 
48
  return;
49
  }
50
 
51
+ $wrapper_class = $is_shortcode === true ? 'is-shortcode' : '';
52
  $container_class = $is_shortcode === true ? '' : 'container';
53
 
54
  hestia_before_team_section_trigger();
56
  <section class="hestia-team <?php echo esc_attr( $wrapper_class ); ?>" id="team" data-sorder="hestia_team">
57
  <?php
58
  hestia_before_team_section_content_trigger();
59
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) && $is_shortcode === false ) {
60
  hestia_display_customizer_shortcut( 'hestia_team_hide', true );
61
  }
62
  ?>
64
  <?php
65
  hestia_top_team_section_content_trigger();
66
  if ( $is_shortcode === false ) {
67
+ ?>
68
  <div class="row">
69
  <div class="col-md-8 col-md-offset-2 text-center hestia-team-title-area">
70
  <?php
71
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) ) {
72
+ hestia_display_customizer_shortcut( 'hestia_team_title' );
73
+ }
74
  if ( ! empty( $hestia_team_title ) || is_customize_preview() ) {
75
  echo '<h2 class="hestia-title">' . wp_kses_post( $hestia_team_title ) . '</h2>';
76
  }
104
  */
105
  function hestia_team_content( $hestia_team_content, $is_callback = false ) {
106
  if ( ! $is_callback ) {
107
+ ?>
108
  <div class="hestia-team-content">
109
  <?php
110
  }
116
  if ( ! empty( $hestia_team_content ) ) {
117
  echo '<div class="row">';
118
  foreach ( $hestia_team_content as $team_item ) :
119
+ $image = ! empty( $team_item->image_url ) ? apply_filters( 'hestia_translate_single_string', $team_item->image_url, 'Team section' ) : '';
120
+ $title = ! empty( $team_item->title ) ? apply_filters( 'hestia_translate_single_string', $team_item->title, 'Team section' ) : '';
121
  $subtitle = ! empty( $team_item->subtitle ) ? apply_filters( 'hestia_translate_single_string', $team_item->subtitle, 'Team section' ) : '';
122
+ $text = ! empty( $team_item->text ) ? apply_filters( 'hestia_translate_single_string', $team_item->text, 'Team section' ) : '';
123
+ $link = ! empty( $team_item->link ) ? apply_filters( 'hestia_translate_single_string', $team_item->link, 'Team section' ) : '';
124
  ?>
125
  <div class="col-xs-12 col-ms-6 col-sm-6">
126
  <div class="card card-profile card-plain">
127
  <div class="col-md-5">
128
  <div class="card-image">
129
  <?php
130
+ if ( ! empty( $image ) ) :
131
+ /**
132
+ * Alternative text for the Team box image
133
+ * It first checks for the Alt Text option of the attachment
134
+ * If that field is empty, uses the Title of the Testimonial box as alt text
135
+ */
136
+ $alt_image = '';
137
+ $image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
138
+ if ( ! empty( $image_id ) && $image_id !== 0 ) {
139
+ $alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
140
+ }
141
+ if ( empty( $alt_image ) ) {
142
+ if ( ! empty( $title ) ) {
143
+ $alt_image = $title;
144
+ }
145
+ }
146
  if ( ! empty( $link ) ) :
147
  $link_html = '<a href="' . esc_url( $link ) . '"';
148
  if ( function_exists( 'hestia_is_external_url' ) ) {
152
  echo wp_kses_post( $link_html );
153
  endif;
154
  echo '<img class="img" src="' . esc_url( $image ) . '" ';
155
+ if ( ! empty( $alt_image ) ) {
156
+ echo ' alt="' . esc_attr( $alt_image ) . '" ';
157
+ }
158
+ if ( ! empty( $title ) ) {
159
+ echo ' title="' . esc_attr( $title ) . '" ';
160
+ }
161
+ echo '/>';
162
+ if ( ! empty( $link ) ) {
163
+ echo '</a>';
164
+ }
165
+ ?>
166
  <?php endif; ?>
167
  </div>
168
  </div>
169
  <div class="col-md-7">
170
  <div class="content">
171
+ <?php
172
+ if ( ! empty( $link ) ) :
173
+ $link_html = '<a href="' . esc_url( $link ) . '"';
174
+ if ( function_exists( 'hestia_is_external_url' ) ) {
175
+ $link_html .= hestia_is_external_url( $link );
176
+ }
177
+ $link_html .= '>';
178
+ echo wp_kses_post( $link_html );
179
+ endif;
180
+ ?>
181
  <?php if ( ! empty( $title ) ) : ?>
182
  <h4 class="card-title"><?php echo esc_html( $title ); ?></h4>
183
  <?php endif; ?>
187
  <?php if ( ! empty( $text ) ) : ?>
188
  <p class="card-description"><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
189
  <?php endif; ?>
190
+ <?php
191
+ if ( ! empty( $link ) ) {
192
+ echo '</a>';
193
+ }
194
+ ?>
195
  <?php
196
  if ( ! empty( $team_item->social_repeater ) ) :
197
+ $icons = html_entity_decode( $team_item->social_repeater );
198
  $icons_decoded = json_decode( $icons, true );
199
  if ( ! empty( $icons_decoded ) ) :
200
  ?>
229
  }// End if().
230
  endif;
231
  if ( ! $is_callback ) {
232
+ ?>
233
  </div>
234
  <?php
235
  }
245
  */
246
  function hestia_get_team_default() {
247
  return apply_filters(
248
+ 'hestia_team_default_content',
249
+ json_encode(
250
  array(
251
  array(
252
  'image_url' => get_template_directory_uri() . '/assets/img/1.jpg',
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php CHANGED
@@ -59,24 +59,24 @@ if ( ! function_exists( 'hestia_testimonials' ) ) :
59
  $container_class = $is_shortcode === true ? '' : 'container';
60
 
61
  hestia_before_testimonials_section_trigger(); ?>
62
- <section class="hestia-testimonials <?php echo esc_attr( $wrapper_class ); ?>" id="testimonials" data-sorder="hestia_testimonials" <?php echo wp_kses_post( $section_style ); ?>>
63
  <?php
64
  hestia_before_testimonials_section_content_trigger();
65
- if ( function_exists('hestia_display_customizer_shortcut') && $is_shortcode === false ) {
66
  hestia_display_customizer_shortcut( 'hestia_testimonials_hide', true );
67
  }
68
  ?>
69
- <div class="<?php echo esc_attr( $container_class ); ?>">
70
  <?php
71
  hestia_top_testimonials_section_content_trigger();
72
  if ( $is_shortcode === false ) {
73
  ?>
74
- <div class="row">
75
- <div class="col-md-8 col-md-offset-2 text-center hestia-testimonials-title-area">
76
  <?php
77
- if( function_exists('hestia_display_customizer_shortcut') ) {
78
- hestia_display_customizer_shortcut( 'hestia_testimonials_title' );
79
- }
80
  if ( ! empty( $hestia_testimonials_title ) || is_customize_preview() ) {
81
  echo '<h2 class="hestia-title">' . wp_kses_post( $hestia_testimonials_title ) . '</h2>';
82
  }
@@ -84,16 +84,16 @@ if ( ! function_exists( 'hestia_testimonials' ) ) :
84
  echo '<h5 class="description">' . wp_kses_post( $hestia_testimonials_subtitle ) . '</h5>';
85
  }
86
  ?>
87
- </div>
88
- </div>
89
  <?php
90
  }
91
  hestia_testimonials_content( $hestia_testimonials_content );
92
  hestia_bottom_testimonials_section_content_trigger();
93
  ?>
94
- </div>
95
  <?php hestia_after_testimonials_section_content_trigger(); ?>
96
- </section>
97
  <?php
98
  hestia_after_testimonials_section_trigger();
99
  }
@@ -112,7 +112,7 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
112
 
113
  if ( ! $is_callback ) {
114
  ?>
115
- <div class="hestia-testimonials-content">
116
  <?php
117
  }
118
  if ( ! empty( $hestia_testimonials_content ) ) :
@@ -126,8 +126,8 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
126
  $text = ! empty( $testimonial_item->text ) ? apply_filters( 'hestia_translate_single_string', $testimonial_item->text, 'Testimonials section' ) : '';
127
  $link = ! empty( $testimonial_item->link ) ? apply_filters( 'hestia_translate_single_string', $testimonial_item->link, 'Testimonials section' ) : '';
128
  ?>
129
- <div class="col-xs-12 col-ms-6 col-sm-6 <?php echo apply_filters( 'hestia_testimonials_per_row_class', 'col-md-4' ); ?>">
130
- <div class="card card-testimonial card-plain" <?php echo hestia_add_animationation( 'fade-right' ); ?>>
131
  <?php
132
  if ( ! empty( $image ) ) :
133
  /**
@@ -146,7 +146,7 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
146
  }
147
  }
148
  ?>
149
- <div class="card-avatar">
150
  <?php
151
  if ( ! empty( $link ) ) {
152
  $link_html = '<a href="' . esc_url( $link ) . '"';
@@ -170,21 +170,21 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
170
  echo '</a>';
171
  }
172
  ?>
173
- </div>
174
  <?php endif; ?>
175
- <div class="content">
176
  <?php if ( ! empty( $title ) ) : ?>
177
- <h4 class="card-title"><?php echo esc_html( $title ); ?></h4>
178
  <?php endif; ?>
179
  <?php if ( ! empty( $subtitle ) ) : ?>
180
- <h6 class="category text-muted"><?php echo esc_html( $subtitle ); ?></h6>
181
  <?php endif; ?>
182
  <?php if ( ! empty( $text ) ) : ?>
183
- <p class="card-description"><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
184
  <?php endif; ?>
185
- </div>
186
- </div>
187
- </div>
188
  <?php
189
  endforeach;
190
  echo '</div>';
@@ -192,7 +192,7 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
192
  endif;
193
  if ( ! $is_callback ) {
194
  ?>
195
- </div>
196
  <?php
197
  }
198
  }
@@ -206,7 +206,8 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
206
  */
207
  function hestia_get_testimonials_default() {
208
  return apply_filters(
209
- 'hestia_testimonials_default_content', json_encode(
 
210
  array(
211
  array(
212
  'image_url' => get_template_directory_uri() . '/assets/img/5.jpg',
59
  $container_class = $is_shortcode === true ? '' : 'container';
60
 
61
  hestia_before_testimonials_section_trigger(); ?>
62
+ <section class="hestia-testimonials <?php echo esc_attr( $wrapper_class ); ?>" id="testimonials" data-sorder="hestia_testimonials" <?php echo wp_kses_post( $section_style ); ?>>
63
  <?php
64
  hestia_before_testimonials_section_content_trigger();
65
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) && $is_shortcode === false ) {
66
  hestia_display_customizer_shortcut( 'hestia_testimonials_hide', true );
67
  }
68
  ?>
69
+ <div class="<?php echo esc_attr( $container_class ); ?>">
70
  <?php
71
  hestia_top_testimonials_section_content_trigger();
72
  if ( $is_shortcode === false ) {
73
  ?>
74
+ <div class="row">
75
+ <div class="col-md-8 col-md-offset-2 text-center hestia-testimonials-title-area">
76
  <?php
77
+ if ( function_exists( 'hestia_display_customizer_shortcut' ) ) {
78
+ hestia_display_customizer_shortcut( 'hestia_testimonials_title' );
79
+ }
80
  if ( ! empty( $hestia_testimonials_title ) || is_customize_preview() ) {
81
  echo '<h2 class="hestia-title">' . wp_kses_post( $hestia_testimonials_title ) . '</h2>';
82
  }
84
  echo '<h5 class="description">' . wp_kses_post( $hestia_testimonials_subtitle ) . '</h5>';
85
  }
86
  ?>
87
+ </div>
88
+ </div>
89
  <?php
90
  }
91
  hestia_testimonials_content( $hestia_testimonials_content );
92
  hestia_bottom_testimonials_section_content_trigger();
93
  ?>
94
+ </div>
95
  <?php hestia_after_testimonials_section_content_trigger(); ?>
96
+ </section>
97
  <?php
98
  hestia_after_testimonials_section_trigger();
99
  }
112
 
113
  if ( ! $is_callback ) {
114
  ?>
115
+ <div class="hestia-testimonials-content">
116
  <?php
117
  }
118
  if ( ! empty( $hestia_testimonials_content ) ) :
126
  $text = ! empty( $testimonial_item->text ) ? apply_filters( 'hestia_translate_single_string', $testimonial_item->text, 'Testimonials section' ) : '';
127
  $link = ! empty( $testimonial_item->link ) ? apply_filters( 'hestia_translate_single_string', $testimonial_item->link, 'Testimonials section' ) : '';
128
  ?>
129
+ <div class="col-xs-12 col-ms-6 col-sm-6 <?php echo apply_filters( 'hestia_testimonials_per_row_class', 'col-md-4' ); ?>">
130
+ <div class="card card-testimonial card-plain" <?php echo hestia_add_animationation( 'fade-right' ); ?>>
131
  <?php
132
  if ( ! empty( $image ) ) :
133
  /**
146
  }
147
  }
148
  ?>
149
+ <div class="card-avatar">
150
  <?php
151
  if ( ! empty( $link ) ) {
152
  $link_html = '<a href="' . esc_url( $link ) . '"';
170
  echo '</a>';
171
  }
172
  ?>
173
+ </div>
174
  <?php endif; ?>
175
+ <div class="content">
176
  <?php if ( ! empty( $title ) ) : ?>
177
+ <h4 class="card-title"><?php echo esc_html( $title ); ?></h4>
178
  <?php endif; ?>
179
  <?php if ( ! empty( $subtitle ) ) : ?>
180
+ <h6 class="category text-muted"><?php echo esc_html( $subtitle ); ?></h6>
181
  <?php endif; ?>
182
  <?php if ( ! empty( $text ) ) : ?>
183
+ <p class="card-description"><?php echo wp_kses_post( html_entity_decode( $text ) ); ?></p>
184
  <?php endif; ?>
185
+ </div>
186
+ </div>
187
+ </div>
188
  <?php
189
  endforeach;
190
  echo '</div>';
192
  endif;
193
  if ( ! $is_callback ) {
194
  ?>
195
+ </div>
196
  <?php
197
  }
198
  }
206
  */
207
  function hestia_get_testimonials_default() {
208
  return apply_filters(
209
+ 'hestia_testimonials_default_content',
210
+ json_encode(
211
  array(
212
  array(
213
  'image_url' => get_template_directory_uri() . '/assets/img/5.jpg',
obfx_modules/companion-legacy/inc/llorix-one-companion/css/style.css DELETED
@@ -1,307 +0,0 @@
1
- /*---------------------------------------
2
- SECTION: SERVICES
3
- -----------------------------------------*/
4
-
5
- .services-wrap {
6
- position: relative;
7
- padding-bottom: 50px;
8
- text-align: center;
9
- }
10
-
11
- .services {
12
- border-bottom: 1px solid #eaebec;
13
- background-color: #fff;
14
- }
15
-
16
- .single-service {
17
- padding: 40px 20px 40px 20px;
18
- border-radius: 3px;
19
- background: #fff;
20
- -webkit-transition: all ease 0.55s;
21
- transition: all ease 0.55s;
22
- }
23
-
24
- .services-wrap .service-box {
25
- display: inline-block;
26
- width: 100%;
27
- text-align: center;
28
- }
29
-
30
- .single-service > h3 > a:hover,
31
- .service-icon > a:hover {
32
- text-decoration: none;
33
- }
34
-
35
- .services-wrap > .service-box {
36
- width: 31.5%;
37
- margin: 0 1%;
38
- margin-bottom: 30px;
39
- vertical-align: top;
40
- }
41
-
42
- .services-wrap > .service-box:nth-child(3n+1) {
43
- clear: left;
44
- margin-left: 0;
45
- }
46
-
47
- .services-wrap > .service-box:nth-child(3n) {
48
- clear: right;
49
- margin-right: 0;
50
- }
51
-
52
- .service-icon {
53
- margin-bottom: 35px;
54
- font-size: 60px;
55
- }
56
-
57
- .single-service h3 {
58
- margin-bottom: 15px;
59
- padding-top: 5px;
60
- color: #1395ba;
61
- }
62
-
63
- .galcolumn .single-service {
64
- width: 100%;
65
- }
66
-
67
- .display-none {
68
- display: none !important;
69
- }
70
-
71
-
72
- /*---------------------------------------
73
- SECTION: TESTIMONIALS
74
- -----------------------------------------*/
75
-
76
- .testimonials {
77
- border-bottom: 1px solid #eaebec;
78
- background-color: #fff;
79
- text-align: center;
80
- }
81
-
82
- .testimonials .section-overlay-layer {
83
- padding-bottom: 20px;
84
- }
85
-
86
- .feedback {
87
- margin-bottom: 45px;
88
- padding: 0 30px;
89
- }
90
-
91
- .feedback .pic-container {
92
- position: absolute;
93
- top: -40px;
94
- width: 100%;
95
- }
96
-
97
- .feedback .pic-container-inner {
98
- display: inline-block;
99
- overflow: hidden;
100
- width: 170px;
101
- height: 170px;
102
- border: 5px solid #e5e5e5;
103
- border-radius: 50%;
104
- background-color: #f5f5f5;
105
- background-clip: padding-box;
106
- box-shadow: 0 0 0 5px #f5f5f5;
107
- }
108
-
109
- .feedback .pic-container img {
110
- width: 100%;
111
- }
112
-
113
- .feedback p {
114
- margin-top: 20px;
115
- margin-bottom: 0;
116
- font-style: italic;
117
- }
118
-
119
- .feedback h5 {
120
- margin-bottom: 0;
121
- }
122
-
123
- .feedback-text-wrap {
124
- padding: 0 20px;
125
- }
126
-
127
- .testimonials-box {
128
- width: 100%;
129
- text-align: center;
130
- }
131
-
132
- .testimonials-wrap {
133
- position: relative;
134
- }
135
-
136
- .testimonials-wrap .testimonials-box {
137
- display: inline-block;
138
- -webkit-transition: all 0.2s ease;
139
- transition: all 0.2s ease;
140
- }
141
-
142
- .testimonials-box .feedback {
143
- position: relative;
144
- margin: 40px 0 30px 0;
145
- padding: 145px 0 40px 0;
146
- border-radius: 3px;
147
- background: #fff;
148
- -webkit-transition: all ease 0.55s;
149
- transition: all ease 0.55s;
150
- }
151
-
152
- .testimonials-box .feedback:hover {
153
- border-bottom-color: #f16c20;
154
- }
155
-
156
- .galcolumn .testimonials-box {
157
- width: 100%;
158
- }
159
-
160
- .testimonials-wrap > .testimonials-box {
161
- width: 31.5%;
162
- margin: 0 1.15% 0 1.15%;
163
- margin-bottom: 30px;
164
- vertical-align: top;
165
- }
166
-
167
- .testimonials-wrap > .testimonials-box:nth-child(3n+1) {
168
- clear: left;
169
- margin-left: 0;
170
- }
171
-
172
- .testimonials-wrap > .testimonials-box:nth-child(3n) {
173
- clear: right;
174
- margin-right: 0;
175
- }
176
-
177
-
178
- /*---------------------------------------
179
- SECTION: TEAM
180
- -----------------------------------------*/
181
-
182
- .team {
183
- border-bottom: 1px solid #eaebec;
184
- border-bottom: 1px solid #f3f3f3;
185
- background-color: #fff;
186
- background-repeat: no-repeat;
187
- background-attachment: fixed;
188
- background-position: 50% 50%;
189
- background-size: cover;
190
- }
191
-
192
- .team .section-overlay-layer {
193
- padding-bottom: 50px;
194
- background: rgba(13, 60, 85, 0.8);
195
- }
196
-
197
- .team .sub-heading {
198
- color: #fff;
199
- }
200
-
201
- .team .dark-text {
202
- color: #fff;
203
- }
204
-
205
- .team-member {
206
- overflow: hidden;
207
- position: relative;
208
- min-height: 100px;
209
- margin-bottom: 25px;
210
- border-radius: 50%;
211
- }
212
-
213
- .team-member .social-icons {
214
- position: relative;
215
- margin-top: 5px;
216
- margin-top: 0;
217
- margin-bottom: 0;
218
- opacity: 1;
219
- -webkit-transition: all ease 0.55s;
220
- transition: all ease 0.55s;
221
- }
222
-
223
- .team-member .social-icons li {
224
- display: inline-block;
225
- padding-top: 3px;
226
- padding-right: 5px;
227
- padding-left: 5px;
228
- }
229
-
230
- .team-member .social-icons li a {
231
- opacity: 0.9;
232
- }
233
-
234
- .team-member .social-icons li a:hover {
235
- opacity: 1;
236
- text-decoration: none;
237
- }
238
-
239
- .team-member:hover .social-icons {
240
- opacity: 1;
241
- }
242
-
243
- .member-pic {
244
- width: 183px;
245
- height: 183px;
246
- border: none;
247
- border-radius: 0;
248
- }
249
-
250
- .member-pic img {
251
- width: 183px;
252
- height: 183px;
253
- }
254
-
255
- .member-details {
256
- display: table;
257
- overflow: hidden;
258
- position: absolute;
259
- bottom: 100%;
260
- left: 0;
261
- width: 183px;
262
- height: 183px;
263
- color: #fff;
264
- background: rgba(0,0,0,0);
265
- text-align: center;
266
- -webkit-transition: all 0.3s;
267
- transition: all 0.3s;
268
- }
269
-
270
- .member-details h5 {
271
- margin: 0;
272
- margin-bottom: 5px;
273
- color: #fff;
274
- }
275
-
276
- .team-member-wrap {
277
- text-align: center;
278
- }
279
-
280
- .team-member-wrap .team-member-box {
281
- display: inline-block;
282
- float: none;
283
- margin-right: -4px;
284
- padding-right: 55px;
285
- padding-bottom: 30px;
286
- padding-left: 55px;
287
- vertical-align: top;
288
- }
289
-
290
- .member-details-inner {
291
- display: table-cell;
292
- vertical-align: middle;
293
- }
294
-
295
- .team-member:hover .member-details {
296
- bottom: 0;
297
- background: rgba(241,108,32,0.7);
298
- -webkit-transition: all 0.3s;
299
- transition: all 0.3s;
300
- }
301
-
302
- @media (min-width: 992px) and (max-width: 1200px) {
303
- .team-member-wrap .team-member-box {
304
- padding-right: 30px;
305
- padding-left: 30px;
306
- }
307
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/functions.php DELETED
@@ -1,62 +0,0 @@
1
- <?php
2
- /*
3
- Plugin Name: Llorix One Companion
4
- Plugin URI: https://github.com/Codeinwp/llorix-one-companion
5
- Description: Add Our team, Our Services and Testimonials sections to Llorix One Lite theme.
6
- Version: 1.1.4
7
- Author: Themeisle
8
- Author URI: http://themeisle.com
9
- Text Domain: llorix-one-companion
10
- Domain Path: /languages
11
- License: GPLv2
12
- License URI: https://www.gnu.org/licenses/gpl-2.0.html
13
- */
14
-
15
- if ( ! function_exists( 'add_action' ) ) {
16
- die( 'Nothing to do...' );
17
- }
18
-
19
- /* Important constants */
20
- define( 'LLORIX_ONE_COMPANION_VERSION', '1.1.4' );
21
- define( 'LLORIX_ONE_COMPANION_URL', plugin_dir_url( __FILE__ ) );
22
- define( 'LLORIX_ONE_COMPANION_PATH', plugin_dir_path( __FILE__ ) );
23
-
24
- /**
25
- * Require section translations
26
- */
27
- require LLORIX_ONE_COMPANION_PATH . 'inc/translations/general.php';
28
-
29
- /* Required helper functions */
30
- include_once( dirname( __FILE__ ) . '/inc/settings.php' );
31
-
32
-
33
- /* Add new sections in Llorix One */
34
- function llorix_one_companion_sections() {
35
- return array(
36
- 'sections/llorix_one_lite_logos_section',
37
- 'our-services-section',
38
- 'sections/llorix_one_lite_our_story_section',
39
- 'our-team-section',
40
- 'happy-customers-section',
41
- 'sections/llorix_one_lite_content_section',
42
- 'sections/llorix_one_lite_ribbon_section',
43
- 'sections/llorix_one_lite_latest_news_section',
44
- 'sections/llorix_one_lite_contact_info_section',
45
- 'sections/llorix_one_lite_map_section'
46
- );
47
- }
48
-
49
- /**
50
- * Load sections
51
- */
52
- function llorix_one_companion_load_sections() {
53
-
54
- add_filter('llorix_one_companion_sections_filter', 'llorix_one_companion_sections');
55
- }
56
-
57
- /* Register style sheet. */
58
- function llorix_one_companion_register_plugin_styles() {
59
-
60
- wp_enqueue_style( 'llorix-one-companion-style', LLORIX_ONE_COMPANION_URL.'css/style.css' );
61
-
62
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/images/team-img.jpg DELETED
Binary file
obfx_modules/companion-legacy/inc/llorix-one-companion/inc/settings.php DELETED
@@ -1,207 +0,0 @@
1
- <?php
2
-
3
- function llorix_one_companion_customize_register( $wp_customize ) {
4
-
5
- if( class_exists('Llorix_One_Lite_General_Repeater') ) {
6
-
7
- /********************************************************/
8
- /****************** SERVICES OPTIONS *******************/
9
- /********************************************************/
10
-
11
- /* SERVICES SECTION */
12
- $wp_customize->add_section( 'llorix_one_lite_services_section' , array(
13
- 'title' => esc_html__( 'Services section', 'themeisle-companion' ),
14
- 'priority' => 40,
15
- 'panel' => 'llorix_one_lite_front_page_sections',
16
- 'active_callback' => 'llorix_one_lite_show_on_front',
17
- ));
18
-
19
- /* Services show/hide */
20
- $wp_customize->add_setting( 'llorix_one_lite_our_services_show', array(
21
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
22
- ));
23
-
24
- $wp_customize->add_control( 'llorix_one_lite_our_services_show', array(
25
- 'type' => 'checkbox',
26
- 'label' => __('Disable the Services section?','themeisle-companion'),
27
- 'section' => 'llorix_one_lite_services_section',
28
- 'priority' => 1,
29
- ));
30
-
31
- /* Services title */
32
- $wp_customize->add_setting( 'llorix_one_lite_our_services_title', array(
33
- 'default' => esc_html__('Our Services','themeisle-companion'),
34
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
35
- ));
36
- $wp_customize->add_control( 'llorix_one_lite_our_services_title', array(
37
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
38
- 'section' => 'llorix_one_lite_services_section',
39
- 'priority' => 10
40
- ));
41
-
42
- /* Services subtitle */
43
- $wp_customize->add_setting( 'llorix_one_lite_our_services_subtitle', array(
44
- 'default' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipiscing elit.','themeisle-companion'),
45
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
46
- ));
47
- $wp_customize->add_control( 'llorix_one_lite_our_services_subtitle', array(
48
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
49
- 'section' => 'llorix_one_lite_services_section',
50
- 'priority' => 20
51
- ));
52
-
53
-
54
- /* Services content */
55
- $default = llorix_one_companion_sevices_get_default_content();
56
- $wp_customize->add_setting( 'llorix_one_lite_services_content', array(
57
- 'sanitize_callback' => 'llorix_one_lite_sanitize_repeater',
58
- 'default' => $default,
59
- ));
60
- $wp_customize->add_control( new Llorix_One_Lite_General_Repeater( $wp_customize, 'llorix_one_lite_services_content', array(
61
- 'label' => esc_html__('Add new service box','themeisle-companion'),
62
- 'section' => 'llorix_one_lite_services_section',
63
- 'priority' => 30,
64
- 'llorix_one_lite_image_control' => true,
65
- 'llorix_one_lite_icon_control' => true,
66
- 'llorix_one_lite_title_control' => true,
67
- 'llorix_one_lite_text_control' => true,
68
- 'llorix_one_lite_link_control' => true
69
- ) ) );
70
-
71
- /********************************************************/
72
- /******************* TEAM OPTIONS *********************/
73
- /********************************************************/
74
-
75
- $wp_customize->add_section( 'llorix_one_lite_team_section' , array(
76
- 'title' => esc_html__( 'Team section', 'themeisle-companion' ),
77
- 'priority' => 60,
78
- 'panel' => 'llorix_one_lite_front_page_sections',
79
- 'active_callback' => 'llorix_one_lite_show_on_front',
80
- ));
81
-
82
- /* Team show/hide */
83
- $wp_customize->add_setting( 'llorix_one_lite_our_team_show', array(
84
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
85
- ));
86
-
87
- $wp_customize->add_control( 'llorix_one_lite_our_team_show', array(
88
- 'type' => 'checkbox',
89
- 'label' => __('Disable the Team section?','themeisle-companion'),
90
- 'section' => 'llorix_one_lite_team_section',
91
- 'priority' => 1,
92
- ));
93
-
94
- /* Team title */
95
- $wp_customize->add_setting( 'llorix_one_lite_our_team_title', array(
96
- 'default' => esc_html__('Our Team','themeisle-companion'),
97
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
98
- ));
99
- $wp_customize->add_control( 'llorix_one_lite_our_team_title', array(
100
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
101
- 'section' => 'llorix_one_lite_team_section',
102
- 'priority' => 10,
103
- ));
104
-
105
- /* Team subtitle */
106
- $wp_customize->add_setting( 'llorix_one_lite_our_team_subtitle', array(
107
- 'default' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipiscing elit.','themeisle-companion'),
108
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
109
- ));
110
- $wp_customize->add_control( 'llorix_one_lite_our_team_subtitle', array(
111
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
112
- 'section' => 'llorix_one_lite_team_section',
113
- 'priority' => 20,
114
- ));
115
-
116
- /* Team Background */
117
- $wp_customize->add_setting( 'llorix_one_lite_our_team_background', array(
118
- 'default' => llorix_one_lite_get_file('/images/background-images/parallax-img/team-img.jpg'),
119
- 'sanitize_callback' => 'esc_url',
120
- ));
121
- $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'llorix_one_lite_our_team_background', array(
122
- 'label' => esc_html__( 'Team Background', 'themeisle-companion' ),
123
- 'section' => 'llorix_one_lite_team_section',
124
- 'priority' => 30
125
- )));
126
-
127
- /* Team content */
128
- $default = llorix_one_companion_team_get_default_content();
129
- $wp_customize->add_setting( 'llorix_one_lite_team_content', array(
130
- 'sanitize_callback' => 'llorix_one_lite_sanitize_repeater',
131
- 'default' => $default,
132
- ) );
133
- $wp_customize->add_control( new Llorix_One_Lite_General_Repeater( $wp_customize, 'llorix_one_lite_team_content', array(
134
- 'label' => esc_html__('Add new team member','themeisle-companion'),
135
- 'section' => 'llorix_one_lite_team_section',
136
- 'priority' => 40,
137
- 'llorix_one_lite_image_control' => true,
138
- 'llorix_one_lite_title_control' => true,
139
- 'llorix_one_lite_subtitle_control' => true
140
- ) ) );
141
-
142
- /********************************************************/
143
- /********** TESTIMONIALS OPTIONS ***********************/
144
- /********************************************************/
145
-
146
- $wp_customize->add_section( 'llorix_one_lite_testimonials_section' , array(
147
- 'title' => esc_html__( 'Testimonials section', 'themeisle-companion' ),
148
- 'priority' => 70,
149
- 'panel' => 'llorix_one_lite_front_page_sections',
150
- 'active_callback' => 'llorix_one_lite_show_on_front',
151
- ));
152
-
153
- /* Testimonials show/hide */
154
- $wp_customize->add_setting( 'llorix_one_lite_happy_customers_show', array(
155
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
156
- ));
157
-
158
- $wp_customize->add_control( 'llorix_one_lite_happy_customers_show', array(
159
- 'type' => 'checkbox',
160
- 'label' => __('Disable the Testimonials section?','themeisle-companion'),
161
- 'section' => 'llorix_one_lite_testimonials_section',
162
- 'priority' => 1,
163
- ));
164
-
165
- /* Testimonials title */
166
- $wp_customize->add_setting( 'llorix_one_lite_happy_customers_title', array(
167
- 'default' => esc_html__('Happy Customers','themeisle-companion'),
168
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
169
- ));
170
- $wp_customize->add_control( 'llorix_one_lite_happy_customers_title', array(
171
- 'label' => esc_html__( 'Main title', 'themeisle-companion' ),
172
- 'section' => 'llorix_one_lite_testimonials_section',
173
- 'priority' => 10,
174
- ));
175
-
176
- /* Testimonials subtitle */
177
- $wp_customize->add_setting( 'llorix_one_lite_happy_customers_subtitle', array(
178
- 'default' => esc_html__('Cloud computing subscription model out of the box proactive solution.','themeisle-companion'),
179
- 'sanitize_callback' => 'llorix_one_lite_sanitize_text',
180
- ));
181
- $wp_customize->add_control( 'llorix_one_lite_happy_customers_subtitle', array(
182
- 'label' => esc_html__( 'Subtitle', 'themeisle-companion' ),
183
- 'section' => 'llorix_one_lite_testimonials_section',
184
- 'priority' => 20,
185
- ));
186
-
187
-
188
- /* Testimonials content */
189
- $default = llorix_one_companion_testimonials_get_default_content();
190
- $wp_customize->add_setting( 'llorix_one_lite_testimonials_content', array(
191
- 'sanitize_callback' => 'llorix_one_lite_sanitize_repeater',
192
- 'default' => $default,
193
- ));
194
- $wp_customize->add_control( new Llorix_One_Lite_General_Repeater( $wp_customize, 'llorix_one_lite_testimonials_content', array(
195
- 'label' => esc_html__('Add new testimonial','themeisle-companion'),
196
- 'section' => 'llorix_one_lite_testimonials_section',
197
- 'priority' => 30,
198
- 'llorix_one_lite_image_control' => true,
199
- 'llorix_one_lite_title_control' => true,
200
- 'llorix_one_lite_subtitle_control' => true,
201
- 'llorix_one_lite_text_control' => true
202
- ) ) );
203
-
204
- }
205
- }
206
- add_action( 'customize_register', 'llorix_one_companion_customize_register', 999 );
207
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/general.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
- /**
3
- * General functions for translation.
4
- *
5
- * @package llorix-one-lite
6
- */
7
-
8
- /**
9
- * Define Allowed Files to be included.
10
- */
11
- function llorix_one_companion_filter_translations( $array ) {
12
- return array_merge( $array, array(
13
- 'translations/translations-services-section',
14
- 'translations/translations-team-section',
15
- 'translations/translations-testimonials-section',
16
- ) );
17
- }
18
-
19
- add_filter( 'llorix_one_lite_filter_translations', 'llorix_one_companion_filter_translations' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-services-section.php DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for services section
4
- *
5
- * @package llorix-one-companion
6
- */
7
-
8
-
9
- /**
10
- * Get services section default content.
11
- */
12
- function llorix_one_companion_sevices_get_default_content() {
13
- return json_encode(
14
- array(
15
- array(
16
- 'choice' => 'llorix_one_lite_icon',
17
- 'icon_value' => 'fa-cogs',
18
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
19
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
20
- ),
21
- array(
22
- 'choice' => 'llorix_one_lite_icon',
23
- 'icon_value' => 'fa-bar-chart-o',
24
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
25
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
26
- ),
27
- array(
28
- 'choice' => 'llorix_one_lite_icon',
29
- 'icon_value' => 'fa-globe',
30
- 'title' => esc_html__( 'Lorem Ipsum', 'themeisle-companion' ),
31
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo.', 'themeisle-companion' )
32
- )
33
- )
34
- );
35
- }
36
-
37
-
38
- /**
39
- * Register strings for polylang.
40
- */
41
- function llorix_one_companion_sevices_register_strings() {
42
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'llorix_one_lite_pll_string_register_helper' ) ) {
43
- return;
44
- }
45
-
46
- $default = llorix_one_companion_sevices_get_default_content();
47
- llorix_one_lite_pll_string_register_helper( 'llorix_one_lite_services_content', $default, 'Services section' );
48
- }
49
-
50
- add_action( 'after_setup_theme', 'llorix_one_companion_sevices_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-team-section.php DELETED
@@ -1,45 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for team section
4
- *
5
- * @package llorix-one-companion
6
- */
7
-
8
-
9
- /**
10
- * Get team section default content.
11
- */
12
- function llorix_one_companion_team_get_default_content() {
13
- return json_encode( array(
14
- array(
15
- 'image_url' => llorix_one_lite_get_file( '/images/team/1.jpg' ),
16
- 'title' => esc_html__( 'Albert Jacobs', 'themeisle-companion' ),
17
- 'subtitle' => esc_html__( 'Founder & CEO', 'themeisle-companion' )
18
- ),
19
- array(
20
- 'image_url' => llorix_one_lite_get_file( '/images/team/2.jpg' ),
21
- 'title' => esc_html__( 'Tonya Garcia', 'themeisle-companion' ),
22
- 'subtitle' => esc_html__( 'Account Manager', 'themeisle-companion' )
23
- ),
24
- array(
25
- 'image_url' => llorix_one_lite_get_file( '/images/team/3.jpg' ),
26
- 'title' => esc_html__( 'Linda Guthrie', 'themeisle-companion' ),
27
- 'subtitle' => esc_html__( 'Business Development', 'themeisle-companion' )
28
- )
29
- )
30
- );
31
- }
32
-
33
- /**
34
- * Register strings for polylang.
35
- */
36
- function llorix_one_companion_team_register_strings() {
37
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'llorix_one_lite_pll_string_register_helper' ) ) {
38
- return;
39
- }
40
-
41
- $default = llorix_one_companion_team_get_default_content();
42
- llorix_one_lite_pll_string_register_helper( 'llorix_one_lite_team_content', $default, 'Team section' );
43
- }
44
-
45
- add_action( 'after_setup_theme', 'llorix_one_companion_team_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/inc/translations/translations-testimonials-section.php DELETED
@@ -1,48 +0,0 @@
1
- <?php
2
- /**
3
- * Translation functions for testimonials section
4
- *
5
- * @package llorix-one-companion
6
- */
7
-
8
-
9
- /**
10
- * Get testimonials section default content.
11
- */
12
- function llorix_one_companion_testimonials_get_default_content() {
13
- return json_encode( array(
14
- array(
15
- 'image_url' => llorix_one_lite_get_file( '/images/clients/1.jpg' ),
16
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
17
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
18
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
19
- ),
20
- array(
21
- 'image_url' => llorix_one_lite_get_file( '/images/clients/2.jpg' ),
22
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
23
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
24
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
25
- ),
26
- array(
27
- 'image_url' => llorix_one_lite_get_file( '/images/clients/3.jpg' ),
28
- 'title' => esc_html__( 'Happy Customer', 'themeisle-companion' ),
29
- 'subtitle' => esc_html__( 'Lorem ipsum', 'themeisle-companion' ),
30
- 'text' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, consequat nibh. Etiam non elit dui. Nullam vel eros sit amet arcu vestibulum accumsan in in leo. Fusce malesuada vulputate faucibus. Integer in hendrerit nisi. Praesent a hendrerit urna. In non imperdiet elit, sed molestie odio. Fusce ac metus non purus sollicitudin laoreet.', 'themeisle-companion' )
31
- )
32
- )
33
- );
34
- }
35
-
36
- /**
37
- * Register strings for polylang.
38
- */
39
- function llorix_one_companion_testimonials_register_strings() {
40
- if ( ! defined( 'POLYLANG_VERSION' ) || ! function_exists( 'llorix_one_lite_pll_string_register_helper' ) ) {
41
- return;
42
- }
43
-
44
- $default = llorix_one_companion_testimonials_get_default_content();
45
- llorix_one_lite_pll_string_register_helper( 'llorix_one_lite_testimonials_content', $default, 'Testimonials section' );
46
- }
47
-
48
- add_action( 'after_setup_theme', 'llorix_one_companion_testimonials_register_strings', 11 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/sections/happy-customers-section.php DELETED
@@ -1,124 +0,0 @@
1
- <!-- =========================
2
- SECTION: CUSTOMERS
3
- ============================== -->
4
- <?php
5
-
6
- $llorix_one_lite_happy_customers_show = get_theme_mod( 'llorix_one_lite_happy_customers_show' );
7
- $llorix_one_lite_happy_customers_title = get_theme_mod( 'llorix_one_lite_happy_customers_title', esc_html__( 'Happy Customers', 'themeisle-companion' ) );
8
- $llorix_one_lite_happy_customers_subtitle = get_theme_mod( 'llorix_one_lite_happy_customers_subtitle', esc_html__( 'Cloud computing subscription model out of the box proactive solution.', 'themeisle-companion' ) );
9
- $default = '';
10
- if( function_exists('llorix_one_companion_testimonials_get_default_content')){
11
- $default = llorix_one_companion_testimonials_get_default_content();
12
- }
13
- $llorix_one_lite_testimonials_content = get_theme_mod( 'llorix_one_lite_testimonials_content', $default );
14
- if ( function_exists( 'llorix_one_lite_general_repeater_is_empty' ) ){
15
- $content_is_empty = llorix_one_lite_general_repeater_is_empty( $llorix_one_lite_testimonials_content );
16
- } else {
17
- $content_is_empty = empty( $llorix_one_lite_testimonials_content );
18
- }
19
- $section_is_empty = ! isset( $llorix_one_lite_happy_customers_show ) || $llorix_one_lite_happy_customers_show == 1 || ( empty( $llorix_one_lite_happy_customers_title ) && empty( $llorix_one_lite_happy_customers_subtitle ) && $content_is_empty );
20
- if( !$section_is_empty) { ?>
21
- <section class="testimonials <?php if ($section_is_empty) {
22
- echo 'llorix_one_lite_only_customizer';
23
- } ?>" id="customers" role="region" aria-label="<?php esc_attr_e('Testimonials', 'themeisle-companion') ?>">
24
- <div class="section-overlay-layer">
25
- <div class="container">
26
- <!-- SECTION HEADER -->
27
- <?php
28
- if (!empty($llorix_one_lite_happy_customers_title) || !empty($llorix_one_lite_happy_customers_subtitle)) { ?>
29
- <div class="section-header">
30
- <?php
31
- if (!empty($llorix_one_lite_happy_customers_title)) { ?>
32
- <h2 class="dark-text"><?php echo wp_kses_post($llorix_one_lite_happy_customers_title); ?></h2>
33
- <div class="colored-line"></div>
34
- <?php
35
- } elseif (is_customize_preview()) { ?>
36
- <h2 class="dark-text llorix_one_lite_only_customizer"></h2>
37
- <div class="colored-line llorix_one_lite_only_customizer"></div>
38
- <?php
39
- }
40
-
41
- if (!empty($llorix_one_lite_happy_customers_subtitle)) { ?>
42
- <div class="sub-heading"><?php echo wp_kses_post($llorix_one_lite_happy_customers_subtitle); ?></div>
43
- <?php
44
- } elseif (is_customize_preview()) { ?>
45
- <div class="sub-heading llorix_one_lite_only_customizer"></div>
46
- <?php
47
- } ?>
48
- </div>
49
- <?php
50
- }
51
-
52
- if (!$content_is_empty) { ?>
53
- <div id="happy_customers_wrap" class="testimonials-wrap">
54
- <?php
55
- $llorix_one_lite_testimonials_content_decoded = json_decode($llorix_one_lite_testimonials_content);
56
- foreach ($llorix_one_lite_testimonials_content_decoded as $llorix_one_lite_testimonial) {
57
- $image = !empty($llorix_one_lite_testimonial->image_url) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_testimonial->image_url, 'Testimonials section') : '';
58
- $title = !empty($llorix_one_lite_testimonial->title) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_testimonial->title, 'Testimonials section') : '';
59
- $subtitle = !empty($llorix_one_lite_testimonial->subtitle) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_testimonial->subtitle, 'Testimonials section') : '';
60
- $text = !empty($llorix_one_lite_testimonial->text) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_testimonial->text, 'Testimonials section') : '';
61
- $section_is_empty = empty($image) && empty($title) && empty($subtitle) && empty($text);
62
-
63
- if (!$section_is_empty) { ?>
64
- <!-- SINGLE FEEDBACK -->
65
- <div class="testimonials-box">
66
- <div class="feedback border-bottom-hover">
67
- <div class="pic-container">
68
- <div class="pic-container-inner">
69
- <?php
70
- if (!empty($image)) { ?>
71
- <img src="<?php echo esc_url($image); ?>"
72
- alt="<?php echo(!empty($title) ? esc_attr($title) : esc_attr('Avatar', 'llorix-one-companion')); ?>">
73
- <?php
74
- } else {
75
- $default_image = llorix_one_lite_get_file('/images/clients/client-no-image.jpg'); ?>
76
- <img src="<?php echo esc_url($default_image); ?>"
77
- alt="<?php esc_attr_e('Avatar', 'themeisle-companion'); ?>">
78
- <?php
79
- } ?>
80
- </div>
81
- </div>
82
- <?php
83
- if (!empty($title) || !empty($subtitle) || !empty($text)) { ?>
84
- <div class="feedback-text-wrap">
85
- <?php
86
- if (!empty($title)) { ?>
87
- <h5 class="colored-text">
88
- <?php
89
- echo wp_kses_post($title); ?>
90
- </h5>
91
- <?php
92
- }
93
-
94
- if (!empty($subtitle)) { ?>
95
- <div class="small-text">
96
- <?php
97
- echo wp_kses_post($subtitle); ?>
98
- </div>
99
- <?php
100
- }
101
-
102
- if (!empty($text)) { ?>
103
- <p>
104
- <?php
105
- echo wp_kses_post($text); ?>
106
- </p>
107
- <?php
108
- } ?>
109
- </div>
110
- <?php
111
- } ?>
112
- </div>
113
- </div><!-- .testimonials-box -->
114
- <?php
115
- }
116
- } ?>
117
- </div>
118
- <?php
119
- } ?>
120
- </div>
121
- </div>
122
- </section><!-- customers -->
123
- <?php
124
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/sections/our-services-section.php DELETED
@@ -1,133 +0,0 @@
1
- <!-- =========================
2
- SECTION: SERVICES
3
- ============================== -->
4
- <?php
5
-
6
- $llorix_one_lite_our_services_show = get_theme_mod( 'llorix_one_lite_our_services_show' );
7
- $llorix_one_lite_our_services_title = get_theme_mod( 'llorix_one_lite_our_services_title', esc_html__( 'Our Services', 'themeisle-companion' ) );
8
- $llorix_one_lite_our_services_subtitle = get_theme_mod( 'llorix_one_lite_our_services_subtitle', esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ) );
9
- $default = '';
10
- if( function_exists('llorix_one_companion_sevices_get_default_content')){
11
- $default = llorix_one_companion_sevices_get_default_content();
12
- }
13
- $llorix_one_lite_services = get_theme_mod( 'llorix_one_lite_services_content', $default );
14
- if ( function_exists( 'llorix_one_lite_general_repeater_is_empty' ) ){
15
- $content_is_empty = llorix_one_lite_general_repeater_is_empty( $llorix_one_lite_services );
16
- } else {
17
- $content_is_empty = empty( $llorix_one_lite_services );
18
- }
19
- $section_is_empty = ! isset( $llorix_one_lite_our_services_show ) || $llorix_one_lite_our_services_show == 1 || ( empty( $llorix_one_lite_our_services_title ) && empty( $llorix_one_lite_our_services_subtitle ) && $content_is_empty );
20
- if(!$section_is_empty) { ?>
21
-
22
- <section class="services <?php if ($section_is_empty) {
23
- echo 'llorix_one_lite_only_customizer';
24
- } ?>" id="services" role="region" aria-label="<?php esc_html_e('Services', 'themeisle-companion') ?>">
25
- <div class="section-overlay-layer">
26
- <div class="container">
27
-
28
- <!-- SECTION HEADER -->
29
- <div class="section-header">
30
- <?php
31
- if (!empty($llorix_one_lite_our_services_title)) { ?>
32
- <h2 class="dark-text"><?php echo wp_kses_post($llorix_one_lite_our_services_title); ?></h2>
33
- <div class="colored-line"></div>
34
- <?php
35
- } elseif (is_customize_preview()) { ?>
36
- <h2 class="dark-text llorix_one_lite_only_customizer"></h2>
37
- <div class="colored-line llorix_one_lite_only_customizer"></div>
38
- <?php
39
- }
40
-
41
- if (!empty($llorix_one_lite_our_services_subtitle)) { ?>
42
- <div class="sub-heading"><?php echo wp_kses_post($llorix_one_lite_our_services_subtitle); ?></div>
43
- <?php
44
- } elseif (is_customize_preview()) { ?>
45
- <div class="sub-heading llorix_one_lite_only_customizer"></div>
46
- <?php
47
- } ?>
48
- </div>
49
-
50
-
51
- <?php
52
- if (!$content_is_empty) {
53
- $llorix_one_lite_services_decoded = json_decode($llorix_one_lite_services); ?>
54
- <div id="our_services_wrap" class="services-wrap">
55
- <?php
56
- foreach ($llorix_one_lite_services_decoded as $llorix_one_lite_service_box) {
57
-
58
- $choice = !empty($llorix_one_lite_service_box->choice) ? $llorix_one_lite_service_box->choice : '';
59
- $icon = !empty($llorix_one_lite_service_box->icon_value) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_service_box->icon_value, 'Services section') : '';
60
- $image = !empty($llorix_one_lite_service_box->image_url) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_service_box->image_url, 'Services section') : '';
61
- $title = !empty($llorix_one_lite_service_box->title) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_service_box->title, 'Services section') : '';
62
- $text = !empty($llorix_one_lite_service_box->text) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_service_box->text, 'Services section') : '';
63
- $link = !empty($llorix_one_lite_service_box->link) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_service_box->link, 'Services section') : '';
64
- $section_is_empty = (empty($icon) || $icon === 'No Icon' && $choice === 'llorix_one_lite_icon') && (empty($image) && $choice === 'llorix_one_lite_image') && empty($title) && empty($text);
65
-
66
- if (!$section_is_empty) { ?>
67
- <div class="service-box">
68
- <div class="single-service border-bottom-hover">
69
- <?php
70
- if (!empty($choice) && $choice !== 'llorix_one_lite_none') {
71
-
72
- if ($choice === 'llorix_one_lite_icon') {
73
- if (!empty($icon)) {
74
- if (!empty($link)) { ?>
75
- <div class="service-icon colored-text">
76
- <a href="<?php echo esc_url($link); ?>">
77
- <i class="fa <?php echo esc_attr($icon); ?>"></i>
78
- </a>
79
- </div>
80
- <?php
81
- } else { ?>
82
- <div class="service-icon colored-text">
83
- <i class="fa <?php echo esc_attr($icon); ?>"></i>
84
- </div>
85
- <?php
86
- }
87
- }
88
- }
89
-
90
- if ($choice === 'llorix_one_lite_image') {
91
- if (!empty($image)) {
92
- if (!empty($link)) { ?>
93
- <a href="<?php echo esc_url($link); ?>">
94
- <img src="<?php echo esc_url($image); ?>" <?php echo(!empty($title) ? 'alt="' . esc_attr($title) . '"' : ''); ?> />
95
- </a>
96
- <?php
97
- } else { ?>
98
- <img src="<?php echo esc_url($image); ?>" <?php echo(!empty($title) ? 'alt="' . esc_attr($title) . '"' : ''); ?> />
99
- <?php
100
- }
101
- }
102
- }
103
- }
104
-
105
- if (!empty($title)) {
106
- if (!empty($link)) { ?>
107
- <h3 class="colored-text">
108
- <a href="<?php echo esc_url($link); ?>"><?php echo wp_kses_post($title); ?></a>
109
- </h3>
110
- <?php
111
- } else { ?>
112
- <h3 class="colored-text"><?php echo wp_kses_post($title); ?></h3>
113
- <?php
114
- }
115
- }
116
-
117
- if (!empty($text)) { ?>
118
- <p><?php echo wp_kses_post($text); ?></p>
119
- <?php
120
- } ?>
121
- </div>
122
- </div>
123
- <?php
124
- }
125
- } ?>
126
- </div>
127
- <?php
128
- } ?>
129
- </div>
130
- </div>
131
- </section>
132
- <?php
133
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/sections/our-team-section.php DELETED
@@ -1,113 +0,0 @@
1
- <!-- =========================
2
- SECTION: TEAM
3
- ============================== -->
4
- <?php
5
-
6
- $llorix_one_lite_our_team_show = get_theme_mod( 'llorix_one_lite_our_team_show' );
7
- $llorix_one_lite_our_team_title = get_theme_mod( 'llorix_one_lite_our_team_title', esc_html__( 'Our Team', 'themeisle-companion' ) );
8
- $llorix_one_lite_our_team_background = get_theme_mod( 'llorix_one_lite_our_team_background', llorix_one_lite_get_file( '/images/background-images/parallax-img/team-img.jpg' ) );
9
- $llorix_one_lite_our_team_subtitle = get_theme_mod( 'llorix_one_lite_our_team_subtitle', esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ) );
10
- $default = '';
11
- if(function_exists( 'llorix_one_companion_team_get_default_content') ){
12
- $default = llorix_one_companion_team_get_default_content();
13
- }
14
- $llorix_one_lite_team_content = get_theme_mod( 'llorix_one_lite_team_content', $default );
15
- if ( function_exists( 'llorix_one_lite_general_repeater_is_empty' ) ){
16
- $content_is_empty = llorix_one_lite_general_repeater_is_empty( $llorix_one_lite_team_content );
17
- } else {
18
- $content_is_empty = empty( $llorix_one_lite_team_content );
19
- }
20
- $section_is_empty = ! isset( $llorix_one_lite_our_team_show ) || $llorix_one_lite_our_team_show == 1 || ( empty( $llorix_one_lite_our_team_title ) && empty( $llorix_one_lite_our_team_subtitle ) && $content_is_empty );
21
- if(!$section_is_empty) { ?>
22
-
23
-
24
- <section class="team <?php if ($section_is_empty) {
25
- echo 'llorix_one_lite_only_customizer';
26
- } ?>" id="team" role="region"
27
- aria-label="<?php esc_attr_e('Team', 'themeisle-companion'); ?>" <?php echo !empty($llorix_one_lite_our_team_background) ? 'style="background-image:url(' . esc_url($llorix_one_lite_our_team_background) . ');"' : ''; ?>>
28
- <div class="section-overlay-layer">
29
- <div class="container">
30
- <!-- SECTION HEADER -->
31
- <?php
32
- if (!empty($llorix_one_lite_our_team_title) || !empty($llorix_one_lite_our_team_subtitle)) { ?>
33
- <div class="section-header">
34
- <?php
35
- if (!empty($llorix_one_lite_our_team_title)) { ?>
36
- <h2 class="dark-text"><?php echo wp_kses_post($llorix_one_lite_our_team_title); ?></h2>
37
- <div class="colored-line"></div>
38
- <?php
39
- } elseif (is_customize_preview()) { ?>
40
- <h2 class="dark-text llorix_one_lite_only_customizer"></h2>
41
- <div class="colored-line llorix_one_lite_only_customizer"></div>
42
- <?php
43
- }
44
-
45
- if (!empty($llorix_one_lite_our_team_subtitle)) { ?>
46
- <div class="sub-heading"><?php echo wp_kses_post($llorix_one_lite_our_team_subtitle); ?></div>
47
- <?php
48
- } elseif (is_customize_preview()) { ?>
49
- <div class="sub-heading llorix_one_lite_only_customizer"></div>
50
- <?php
51
- } ?>
52
- </div>
53
- <?php
54
- }
55
-
56
-
57
- if (!$content_is_empty) { ?>
58
- <div class="row team-member-wrap">
59
- <?php
60
- $llorix_one_lite_team_decoded = json_decode($llorix_one_lite_team_content);
61
- foreach ($llorix_one_lite_team_decoded as $llorix_one_lite_team_member) {
62
- $title = !empty($llorix_one_lite_team_member->title) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_team_member->title, 'Team section') : '';
63
- $subtitle = !empty($llorix_one_lite_team_member->subtitle) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_team_member->subtitle, 'Team section') : '';
64
- $image = !empty($llorix_one_lite_team_member->image_url) ? apply_filters('llorix_one_lite_translate_single_string', $llorix_one_lite_team_member->image_url, 'Team section') : '';
65
- $section_is_empty = empty($image) && empty($title) && empty($subtitle);
66
- if (!$section_is_empty) { ?>
67
- <div class="col-md-3 team-member-box">
68
- <div class="team-member border-bottom-hover">
69
- <div class="member-pic">
70
- <?php
71
- if (!empty($image)) { ?>
72
- <img src="<?php echo esc_url($image); ?>" <?php echo(!empty($title) ? 'alt="' . esc_attr($title) . '"' : esc_attr__('Avatar', 'themeisle-companion')); ?>>
73
- <?php
74
- } else {
75
- $default_url = llorix_one_lite_get_file('/images/team/default.png'); ?>
76
- <img src="<?php echo esc_url($default_url); ?>"
77
- alt="<?php esc_attr_e('Avatar', 'themeisle-companion'); ?>">
78
- <?php
79
- } ?>
80
- </div><!-- .member-pic -->
81
-
82
- <?php
83
- if (!empty($title) || !empty($subtitle)) { ?>
84
- <div class="member-details">
85
- <div class="member-details-inner">
86
- <?php
87
- if (!empty($title)) { ?>
88
- <h5 class="colored-text"> <?php echo wp_kses_post($title); ?></h5>
89
- <?php
90
- }
91
-
92
- if (!empty($subtitle)) { ?>
93
- <div class="small-text"><?php echo wp_kses_post($subtitle); ?></div>
94
- <?php
95
- } ?>
96
- </div><!-- .member-details-inner -->
97
- </div><!-- .member-details -->
98
- <?php
99
- } ?>
100
- </div><!-- .team-member -->
101
- </div><!-- .team-member -->
102
- <!-- MEMBER -->
103
- <?php
104
- }
105
- } ?>
106
- </div>
107
- <?php
108
- } ?>
109
- </div>
110
- </div><!-- container -->
111
- </section><!-- #section9 -->
112
- <?php
113
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/llorix-one-companion/wpml-config.xml DELETED
@@ -1,13 +0,0 @@
1
- <wpml-config>
2
- <admin-texts>
3
- <key name="theme_mods_themeisle-companion">
4
- <key name="llorix_one_lite_our_services_title" />
5
- <key name="llorix_one_lite_our_services_subtitle" />
6
- <key name="llorix_one_lite_our_team_title" />
7
- <key name="llorix_one_lite_our_team_subtitle" />
8
- <key name="llorix_one_lite_our_team_background" />
9
- <key name="llorix_one_lite_happy_customers_title" />
10
- <key name="llorix_one_lite_happy_customers_subtitle" />
11
- </key>
12
- </admin-texts>
13
- </wpml-config>
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/assets/css/admin-style.css DELETED
@@ -1,143 +0,0 @@
1
- #fontawesome-popup {
2
- display: none;
3
- height: 520px;
4
- }
5
-
6
- #fontawesome-popup:after {
7
- display: block;
8
- clear: both;
9
- content: "";
10
- }
11
-
12
- .ui-widget-overlay {
13
- position: fixed;
14
- z-index: 999998;
15
- top: 0;
16
- width: 100%;
17
- height: 100%;
18
- background: rgba( 0,0,0,0.4 );
19
- }
20
-
21
- .rhea-fontawesome-dialog {
22
- z-index: 999999;
23
- background: #fcfcfc;
24
- box-shadow: 0 5px 15px rgba(0,0,0,0.7);
25
- }
26
-
27
- .rhea-fontawesome-dialog .ui-dialog-titlebar {
28
- margin: 0;
29
- padding: 0 15px;
30
- border-bottom: 1px solid #ddd;
31
- color: #23282d;
32
- font-size: 22px;
33
- font-weight: 600;
34
- line-height: 50px;
35
- }
36
-
37
- .rhea-fontawesome-dialog .ui-dialog-titlebar .ui-button {
38
- float: right;
39
- }
40
-
41
- #fontawesome-popup .left-side {
42
- float: left;
43
- box-sizing: border-box;
44
- width: 20%;
45
- padding: 15px;
46
- }
47
-
48
- #fontawesome-popup .right-side {
49
- float: left;
50
- overflow-y: scroll;
51
- box-sizing: border-box;
52
- width: 80%;
53
- height: 507px;
54
- padding: 15px;
55
- border-left: 1px solid #ccc;
56
- background: #fff;
57
- }
58
-
59
- .ui-dialog.rhea-fontawesome-dialog .ui-dialog-titlebar-close {
60
- margin: 14px 0;
61
- padding-right: 0;
62
- border: 0 none;
63
- background: transparent;
64
- box-shadow: none;
65
- cursor: pointer;
66
- }
67
-
68
- .ui-dialog.rhea-fontawesome-dialog .ui-button-icon-only .ui-icon:after {
69
- display: block;
70
- top: 0;
71
- left: 0;
72
- width: 20px;
73
- height: 20px;
74
- color: #23282d;
75
- font-family: "dashicons";
76
- font-size: 20px;
77
- text-indent: 1px;
78
- content: "\f158";
79
- }
80
-
81
- .ui-dialog.rhea-fontawesome-dialog .ui-button-text {
82
- display: none;
83
- }
84
-
85
- .filter-icons li {
86
- cursor: pointer;
87
- }
88
-
89
- .filter-icons li.active {
90
- font-weight: bold;
91
- }
92
-
93
- a.rhea-fontawesome-icon {
94
- display: inline-block;
95
- width: 5%;
96
- margin-bottom: 10px;
97
- padding: 5px 0;
98
- font-size: 20px;
99
- text-align: center;
100
- }
101
-
102
- a.rhea-fontawesome-icon:hover {
103
- color: #fff;
104
- background-color: #ccc;
105
- }
106
-
107
- /* Style Input */
108
- .icon-holder p {
109
- margin: 0;
110
- padding: 20px 0;
111
- border: 1px dashed #ccc;
112
- color: rgba( 0,0,0,0.6 );
113
- text-align: center;
114
- }
115
-
116
- .empty-icon .change-icon-button,
117
- .empty-icon .remove-icon-button,
118
- .icon-holder p,
119
- .empty-icon i,
120
- .wp-core-ui .actions .button.add-icon-button {
121
- display: none;
122
- }
123
-
124
- .empty-icon .icon-holder p {
125
- display: block;
126
- }
127
-
128
- .wp-core-ui .empty-icon .actions .button.add-icon-button {
129
- display: inline-block;
130
- }
131
-
132
- .fontawesome-icon-container .actions {
133
- text-align: right;
134
- }
135
-
136
- .icon-holder {
137
- margin: 20px 0;
138
- text-align: center;
139
- }
140
-
141
- .icon-holder i {
142
- font-size: 50px;
143
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/assets/js/fontawesome.jquery.js DELETED
@@ -1,97 +0,0 @@
1
- jQuery( document ).ready(function($){
2
-
3
- var currentCategories = [];
4
-
5
- $.each( icons.icons, function(index,el){
6
-
7
- var currentIconCategories = '';
8
-
9
- // collect all icons' categories
10
- $.each(el.categories, function(c_index,category){
11
- var aux = category.toLowerCase();
12
- aux = aux.replace( /\s+/g, '-' );
13
- currentIconCategories = currentIconCategories + aux + ' ';
14
- if ( $.inArray( category, currentCategories ) < 0 ) {
15
- currentCategories.push( category );
16
- }
17
- });
18
-
19
- if ( el.filter != undefined ) {
20
- var search = el.filter;
21
- search.push( el.name );
22
- search = search.join( ' ' );
23
- } else {
24
- var search = el.name;
25
- }
26
-
27
- var css_class = 'fa fa-' + el.id;
28
- var icon_html = '<a href="#" data-search="' + search + '" data-class="' + css_class + '" class="' + currentIconCategories + 'rhea-fontawesome-icon"><i class="' + css_class + '"></i></a>';
29
- $( '#fontawesome-popup .right-side' ).append( icon_html );
30
-
31
- });
32
-
33
- currentCategories.sort();
34
-
35
- $.each(currentCategories, function( index, category ){
36
- var aux = category.toLowerCase();
37
- aux = aux.replace( /\s+/g, '-' );
38
- $( '.filter-icons' ).append( '<li data-filter="' + aux + '">' + category + '</li>' );
39
- });
40
-
41
- $( '#fontawesome-popup .filter-icons li' ).live('click', function(){
42
- $( '#fontawesome-popup .filter-icons li.active' ).removeClass( 'active' );
43
- $( this ).addClass( 'active' );
44
- var filter = $( this ).data( 'filter' );
45
- if ( filter != 'all' ) {
46
- $( '#fontawesome-popup .rhea-fontawesome-icon.' + filter ).show();
47
- $( '#fontawesome-popup .rhea-fontawesome-icon' ).not( '.' + filter ).hide();
48
- } else {
49
- $( '#fontawesome-popup .rhea-fontawesome-icon' ).show();
50
- }
51
- });
52
-
53
- var Rhea_FP = {'element':''};
54
-
55
- Rhea_FP.open = function( element ){
56
- Rhea_FP.element = element;
57
- $( "#fontawesome-popup" ).dialog({
58
- title: "Select Icon",
59
- resizable: false,
60
- minHeight: 520,
61
- width: 980,
62
- modal: true,
63
- closeOnEscape: true,
64
- dialogClass: 'rhea-fontawesome-dialog',
65
- });
66
- };
67
-
68
- Rhea_FP.close = function(){
69
- Rhea_FP.element = '';
70
- $( "#fontawesome-popup" ).dialog( "close" );
71
- };
72
-
73
- $( '.add-icon-button' ).live('click', function(){
74
- var parent = $( this ).parent().parent();
75
- Rhea_FP.open( parent );
76
- });
77
-
78
- $( '.rhea-fontawesome-icon' ).live('click', function( evt ){
79
- evt.preventDefault();
80
- var icon = $( this ).data( 'class' );
81
- Rhea_FP.element.removeClass( 'empty-icon' );
82
- Rhea_FP.element.find( 'input' ).val( icon );
83
- Rhea_FP.element.find( '.icon-holder i' ).attr( 'class', icon );
84
- Rhea_FP.close();
85
- });
86
-
87
- $( '.change-icon-button' ).live('click', function(){
88
- var parent = $( this ).parent().parent();
89
- Rhea_FP.open( parent );
90
- });
91
-
92
- $( '.remove-icon-button' ).live('click', function(){
93
- $( this ).parent().parent().addClass( 'empty-icon' );
94
- $( this ).parent().parent().find( 'input' ).val( '' );
95
- });
96
-
97
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/assets/js/icons.js DELETED
@@ -1,3790 +0,0 @@
1
- var icons = { icons:
2
- [ { name: 'Glass',
3
- id: 'glass',
4
- unicode: 'f000',
5
- created: 1,
6
- filter: [ 'martini', 'drink', 'bar', 'alcohol', 'liquor' ],
7
- categories: [ 'Web Application Icons' ] },
8
- { name: 'Music',
9
- id: 'music',
10
- unicode: 'f001',
11
- created: 1,
12
- filter: [ 'note', 'sound' ],
13
- categories: [ 'Web Application Icons' ] },
14
- { name: 'Search',
15
- id: 'search',
16
- unicode: 'f002',
17
- created: 1,
18
- filter: [ 'magnify', 'zoom', 'enlarge', 'bigger' ],
19
- categories: [ 'Web Application Icons' ] },
20
- { name: 'Envelope Outlined',
21
- id: 'envelope-o',
22
- unicode: 'f003',
23
- created: 1,
24
- filter: [ 'email', 'support', 'e-mail', 'letter', 'mail', 'notification' ],
25
- categories: [ 'Web Application Icons' ] },
26
- { name: 'Heart',
27
- id: 'heart',
28
- unicode: 'f004',
29
- created: 1,
30
- filter: [ 'love', 'like', 'favorite' ],
31
- categories: [ 'Web Application Icons', 'Medical Icons' ] },
32
- { name: 'Star',
33
- id: 'star',
34
- unicode: 'f005',
35
- created: 1,
36
- filter: [ 'award', 'achievement', 'night', 'rating', 'score', 'favorite' ],
37
- categories: [ 'Web Application Icons' ] },
38
- { name: 'Star Outlined',
39
- id: 'star-o',
40
- unicode: 'f006',
41
- created: 1,
42
- filter: [ 'award', 'achievement', 'night', 'rating', 'score', 'favorite' ],
43
- categories: [ 'Web Application Icons' ] },
44
- { name: 'User',
45
- id: 'user',
46
- unicode: 'f007',
47
- created: 1,
48
- filter: [ 'person', 'man', 'head', 'profile' ],
49
- categories: [ 'Web Application Icons' ] },
50
- { name: 'Film',
51
- id: 'film',
52
- unicode: 'f008',
53
- created: 1,
54
- filter: [ 'movie' ],
55
- categories: [ 'Web Application Icons' ] },
56
- { name: 'th-large',
57
- id: 'th-large',
58
- unicode: 'f009',
59
- created: 1,
60
- filter: [ 'blocks', 'squares', 'boxes', 'grid' ],
61
- categories: [ 'Text Editor Icons' ] },
62
- { name: 'th',
63
- id: 'th',
64
- unicode: 'f00a',
65
- created: 1,
66
- filter: [ 'blocks', 'squares', 'boxes', 'grid' ],
67
- categories: [ 'Text Editor Icons' ] },
68
- { name: 'th-list',
69
- id: 'th-list',
70
- unicode: 'f00b',
71
- created: 1,
72
- filter: [ 'ul', 'ol', 'checklist', 'finished', 'completed', 'done', 'todo' ],
73
- categories: [ 'Text Editor Icons' ] },
74
- { name: 'Check',
75
- id: 'check',
76
- unicode: 'f00c',
77
- created: 1,
78
- filter:
79
- [ 'checkmark',
80
- 'done',
81
- 'todo',
82
- 'agree',
83
- 'accept',
84
- 'confirm',
85
- 'tick',
86
- 'ok' ],
87
- categories: [ 'Web Application Icons' ] },
88
- { name: 'Times',
89
- id: 'times',
90
- unicode: 'f00d',
91
- created: 1,
92
- aliases: [ 'remove', 'close' ],
93
- filter: [ 'close', 'exit', 'x', 'cross' ],
94
- categories: [ 'Web Application Icons' ] },
95
- { name: 'Search Plus',
96
- id: 'search-plus',
97
- unicode: 'f00e',
98
- created: 1,
99
- filter: [ 'magnify', 'zoom', 'enlarge', 'bigger' ],
100
- categories: [ 'Web Application Icons' ] },
101
- { name: 'Search Minus',
102
- id: 'search-minus',
103
- unicode: 'f010',
104
- created: 1,
105
- filter: [ 'magnify', 'minify', 'zoom', 'smaller' ],
106
- categories: [ 'Web Application Icons' ] },
107
- { name: 'Power Off',
108
- id: 'power-off',
109
- unicode: 'f011',
110
- created: 1,
111
- filter: [ 'on' ],
112
- categories: [ 'Web Application Icons' ] },
113
- { name: 'signal',
114
- id: 'signal',
115
- unicode: 'f012',
116
- created: 1,
117
- filter: [ 'graph', 'bars' ],
118
- categories: [ 'Web Application Icons' ] },
119
- { name: 'cog',
120
- id: 'cog',
121
- unicode: 'f013',
122
- created: 1,
123
- filter: [ 'settings' ],
124
- aliases: [ 'gear' ],
125
- categories: [ 'Web Application Icons', 'Spinner Icons' ] },
126
- { name: 'Trash Outlined',
127
- id: 'trash-o',
128
- unicode: 'f014',
129
- created: 1,
130
- filter: [ 'garbage', 'delete', 'remove', 'trash', 'hide' ],
131
- categories: [ 'Web Application Icons' ] },
132
- { name: 'home',
133
- id: 'home',
134
- unicode: 'f015',
135
- created: 1,
136
- filter: [ 'main', 'house' ],
137
- categories: [ 'Web Application Icons' ] },
138
- { name: 'File Outlined',
139
- id: 'file-o',
140
- unicode: 'f016',
141
- created: 1,
142
- filter: [ 'new', 'page', 'pdf', 'document' ],
143
- categories: [ 'Text Editor Icons', 'File Type Icons' ] },
144
- { name: 'Clock Outlined',
145
- id: 'clock-o',
146
- unicode: 'f017',
147
- created: 1,
148
- filter: [ 'watch', 'timer', 'late', 'timestamp' ],
149
- categories: [ 'Web Application Icons' ] },
150
- { name: 'road',
151
- id: 'road',
152
- unicode: 'f018',
153
- created: 1,
154
- filter: [ 'street' ],
155
- categories: [ 'Web Application Icons' ] },
156
- { name: 'Download',
157
- id: 'download',
158
- unicode: 'f019',
159
- created: 1,
160
- filter: [ 'import' ],
161
- categories: [ 'Web Application Icons' ] },
162
- { name: 'Arrow Circle Outlined Down',
163
- id: 'arrow-circle-o-down',
164
- unicode: 'f01a',
165
- created: 1,
166
- filter: [ 'download' ],
167
- categories: [ 'Directional Icons' ] },
168
- { name: 'Arrow Circle Outlined Up',
169
- id: 'arrow-circle-o-up',
170
- unicode: 'f01b',
171
- created: 1,
172
- categories: [ 'Directional Icons' ] },
173
- { name: 'inbox',
174
- id: 'inbox',
175
- unicode: 'f01c',
176
- created: 1,
177
- categories: [ 'Web Application Icons' ] },
178
- { name: 'Play Circle Outlined',
179
- id: 'play-circle-o',
180
- unicode: 'f01d',
181
- created: 1,
182
- categories: [ 'Video Player Icons' ] },
183
- { name: 'Repeat',
184
- id: 'repeat',
185
- unicode: 'f01e',
186
- created: 1,
187
- filter: [ 'redo', 'forward' ],
188
- aliases: [ 'rotate-right' ],
189
- categories: [ 'Text Editor Icons' ] },
190
- { name: 'refresh',
191
- id: 'refresh',
192
- unicode: 'f021',
193
- created: 1,
194
- filter: [ 'reload', 'sync' ],
195
- categories: [ 'Web Application Icons', 'Spinner Icons' ] },
196
- { name: 'list-alt',
197
- id: 'list-alt',
198
- unicode: 'f022',
199
- created: 1,
200
- filter: [ 'ul', 'ol', 'checklist', 'finished', 'completed', 'done', 'todo' ],
201
- categories: [ 'Text Editor Icons' ] },
202
- { name: 'lock',
203
- id: 'lock',
204
- unicode: 'f023',
205
- created: 1,
206
- filter: [ 'protect', 'admin' ],
207
- categories: [ 'Web Application Icons' ] },
208
- { name: 'flag',
209
- id: 'flag',
210
- unicode: 'f024',
211
- created: 1,
212
- filter: [ 'report', 'notification', 'notify' ],
213
- categories: [ 'Web Application Icons' ] },
214
- { name: 'headphones',
215
- id: 'headphones',
216
- unicode: 'f025',
217
- created: 1,
218
- filter: [ 'sound', 'listen', 'music', 'audio' ],
219
- categories: [ 'Web Application Icons' ] },
220
- { name: 'volume-off',
221
- id: 'volume-off',
222
- unicode: 'f026',
223
- created: 1,
224
- filter: [ 'audio', 'mute', 'sound', 'music' ],
225
- categories: [ 'Web Application Icons' ] },
226
- { name: 'volume-down',
227
- id: 'volume-down',
228
- unicode: 'f027',
229
- created: 1,
230
- filter: [ 'audio', 'lower', 'quieter', 'sound', 'music' ],
231
- categories: [ 'Web Application Icons' ] },
232
- { name: 'volume-up',
233
- id: 'volume-up',
234
- unicode: 'f028',
235
- created: 1,
236
- filter: [ 'audio', 'higher', 'louder', 'sound', 'music' ],
237
- categories: [ 'Web Application Icons' ] },
238
- { name: 'qrcode',
239
- id: 'qrcode',
240
- unicode: 'f029',
241
- created: 1,
242
- filter: [ 'scan' ],
243
- categories: [ 'Web Application Icons' ] },
244
- { name: 'barcode',
245
- id: 'barcode',
246
- unicode: 'f02a',
247
- created: 1,
248
- filter: [ 'scan' ],
249
- categories: [ 'Web Application Icons' ] },
250
- { name: 'tag',
251
- id: 'tag',
252
- unicode: 'f02b',
253
- created: 1,
254
- filter: [ 'label' ],
255
- categories: [ 'Web Application Icons' ] },
256
- { name: 'tags',
257
- id: 'tags',
258
- unicode: 'f02c',
259
- created: 1,
260
- filter: [ 'labels' ],
261
- categories: [ 'Web Application Icons' ] },
262
- { name: 'book',
263
- id: 'book',
264
- unicode: 'f02d',
265
- created: 1,
266
- filter: [ 'read', 'documentation' ],
267
- categories: [ 'Web Application Icons' ] },
268
- { name: 'bookmark',
269
- id: 'bookmark',
270
- unicode: 'f02e',
271
- created: 1,
272
- filter: [ 'save' ],
273
- categories: [ 'Web Application Icons' ] },
274
- { name: 'print',
275
- id: 'print',
276
- unicode: 'f02f',
277
- created: 1,
278
- categories: [ 'Web Application Icons' ] },
279
- { name: 'camera',
280
- id: 'camera',
281
- unicode: 'f030',
282
- created: 1,
283
- filter: [ 'photo', 'picture', 'record' ],
284
- categories: [ 'Web Application Icons' ] },
285
- { name: 'font',
286
- id: 'font',
287
- unicode: 'f031',
288
- created: 1,
289
- filter: [ 'text' ],
290
- categories: [ 'Text Editor Icons' ] },
291
- { name: 'bold',
292
- id: 'bold',
293
- unicode: 'f032',
294
- created: 1,
295
- categories: [ 'Text Editor Icons' ] },
296
- { name: 'italic',
297
- id: 'italic',
298
- unicode: 'f033',
299
- created: 1,
300
- filter: [ 'italics' ],
301
- categories: [ 'Text Editor Icons' ] },
302
- { name: 'text-height',
303
- id: 'text-height',
304
- unicode: 'f034',
305
- created: 1,
306
- categories: [ 'Text Editor Icons' ] },
307
- { name: 'text-width',
308
- id: 'text-width',
309
- unicode: 'f035',
310
- created: 1,
311
- categories: [ 'Text Editor Icons' ] },
312
- { name: 'align-left',
313
- id: 'align-left',
314
- unicode: 'f036',
315
- created: 1,
316
- filter: [ 'text' ],
317
- categories: [ 'Text Editor Icons' ] },
318
- { name: 'align-center',
319
- id: 'align-center',
320
- unicode: 'f037',
321
- created: 1,
322
- filter: [ 'middle', 'text' ],
323
- categories: [ 'Text Editor Icons' ] },
324
- { name: 'align-right',
325
- id: 'align-right',
326
- unicode: 'f038',
327
- created: 1,
328
- filter: [ 'text' ],
329
- categories: [ 'Text Editor Icons' ] },
330
- { name: 'align-justify',
331
- id: 'align-justify',
332
- unicode: 'f039',
333
- created: 1,
334
- filter: [ 'text' ],
335
- categories: [ 'Text Editor Icons' ] },
336
- { name: 'list',
337
- id: 'list',
338
- unicode: 'f03a',
339
- created: 1,
340
- filter: [ 'ul', 'ol', 'checklist', 'finished', 'completed', 'done', 'todo' ],
341
- categories: [ 'Text Editor Icons' ] },
342
- { name: 'Outdent',
343
- id: 'outdent',
344
- unicode: 'f03b',
345
- created: 1,
346
- aliases: [ 'dedent' ],
347
- categories: [ 'Text Editor Icons' ] },
348
- { name: 'Indent',
349
- id: 'indent',
350
- unicode: 'f03c',
351
- created: 1,
352
- categories: [ 'Text Editor Icons' ] },
353
- { name: 'Video Camera',
354
- id: 'video-camera',
355
- unicode: 'f03d',
356
- created: 1,
357
- filter: [ 'film', 'movie', 'record' ],
358
- categories: [ 'Web Application Icons' ] },
359
- { name: 'Picture Outlined',
360
- id: 'picture-o',
361
- unicode: 'f03e',
362
- created: 1,
363
- aliases: [ 'photo', 'image' ],
364
- categories: [ 'Web Application Icons' ] },
365
- { name: 'pencil',
366
- id: 'pencil',
367
- unicode: 'f040',
368
- created: 1,
369
- filter: [ 'write', 'edit', 'update' ],
370
- categories: [ 'Web Application Icons' ] },
371
- { name: 'map-marker',
372
- id: 'map-marker',
373
- unicode: 'f041',
374
- created: 1,
375
- filter:
376
- [ 'map',
377
- 'pin',
378
- 'location',
379
- 'coordinates',
380
- 'localize',
381
- 'address',
382
- 'travel',
383
- 'where',
384
- 'place' ],
385
- categories: [ 'Web Application Icons' ] },
386
- { name: 'adjust',
387
- id: 'adjust',
388
- unicode: 'f042',
389
- created: 1,
390
- filter: [ 'contrast' ],
391
- categories: [ 'Web Application Icons' ] },
392
- { name: 'tint',
393
- id: 'tint',
394
- unicode: 'f043',
395
- created: 1,
396
- filter: [ 'raindrop', 'waterdrop', 'drop', 'droplet' ],
397
- categories: [ 'Web Application Icons' ] },
398
- { name: 'Pencil Square Outlined',
399
- id: 'pencil-square-o',
400
- unicode: 'f044',
401
- created: 1,
402
- filter: [ 'write', 'edit', 'update' ],
403
- aliases: [ 'edit' ],
404
- categories: [ 'Web Application Icons' ] },
405
- { name: 'Share Square Outlined',
406
- id: 'share-square-o',
407
- unicode: 'f045',
408
- created: 1,
409
- filter: [ 'social', 'send', 'arrow' ],
410
- categories: [ 'Web Application Icons' ] },
411
- { name: 'Check Square Outlined',
412
- id: 'check-square-o',
413
- unicode: 'f046',
414
- created: 1,
415
- filter: [ 'todo', 'done', 'agree', 'accept', 'confirm', 'ok' ],
416
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
417
- { name: 'Arrows',
418
- id: 'arrows',
419
- unicode: 'f047',
420
- created: 1,
421
- filter: [ 'move', 'reorder', 'resize' ],
422
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
423
- { name: 'step-backward',
424
- id: 'step-backward',
425
- unicode: 'f048',
426
- created: 1,
427
- filter: [ 'rewind', 'previous', 'beginning', 'start', 'first' ],
428
- categories: [ 'Video Player Icons' ] },
429
- { name: 'fast-backward',
430
- id: 'fast-backward',
431
- unicode: 'f049',
432
- created: 1,
433
- filter: [ 'rewind', 'previous', 'beginning', 'start', 'first' ],
434
- categories: [ 'Video Player Icons' ] },
435
- { name: 'backward',
436
- id: 'backward',
437
- unicode: 'f04a',
438
- created: 1,
439
- filter: [ 'rewind', 'previous' ],
440
- categories: [ 'Video Player Icons' ] },
441
- { name: 'play',
442
- id: 'play',
443
- unicode: 'f04b',
444
- created: 1,
445
- filter: [ 'start', 'playing', 'music', 'sound' ],
446
- categories: [ 'Video Player Icons' ] },
447
- { name: 'pause',
448
- id: 'pause',
449
- unicode: 'f04c',
450
- created: 1,
451
- filter: [ 'wait' ],
452
- categories: [ 'Video Player Icons' ] },
453
- { name: 'stop',
454
- id: 'stop',
455
- unicode: 'f04d',
456
- created: 1,
457
- filter: [ 'block', 'box', 'square' ],
458
- categories: [ 'Video Player Icons' ] },
459
- { name: 'forward',
460
- id: 'forward',
461
- unicode: 'f04e',
462
- created: 1,
463
- filter: [ 'forward', 'next' ],
464
- categories: [ 'Video Player Icons' ] },
465
- { name: 'fast-forward',
466
- id: 'fast-forward',
467
- unicode: 'f050',
468
- created: 1,
469
- filter: [ 'next', 'end', 'last' ],
470
- categories: [ 'Video Player Icons' ] },
471
- { name: 'step-forward',
472
- id: 'step-forward',
473
- unicode: 'f051',
474
- created: 1,
475
- filter: [ 'next', 'end', 'last' ],
476
- categories: [ 'Video Player Icons' ] },
477
- { name: 'eject',
478
- id: 'eject',
479
- unicode: 'f052',
480
- created: 1,
481
- categories: [ 'Video Player Icons' ] },
482
- { name: 'chevron-left',
483
- id: 'chevron-left',
484
- unicode: 'f053',
485
- created: 1,
486
- filter: [ 'bracket', 'previous', 'back' ],
487
- categories: [ 'Directional Icons' ] },
488
- { name: 'chevron-right',
489
- id: 'chevron-right',
490
- unicode: 'f054',
491
- created: 1,
492
- filter: [ 'bracket', 'next', 'forward' ],
493
- categories: [ 'Directional Icons' ] },
494
- { name: 'Plus Circle',
495
- id: 'plus-circle',
496
- unicode: 'f055',
497
- created: 1,
498
- filter: [ 'add', 'new', 'create', 'expand' ],
499
- categories: [ 'Web Application Icons' ] },
500
- { name: 'Minus Circle',
501
- id: 'minus-circle',
502
- unicode: 'f056',
503
- created: 1,
504
- filter: [ 'delete', 'remove', 'trash', 'hide' ],
505
- categories: [ 'Web Application Icons' ] },
506
- { name: 'Times Circle',
507
- id: 'times-circle',
508
- unicode: 'f057',
509
- created: 1,
510
- filter: [ 'close', 'exit', 'x' ],
511
- categories: [ 'Web Application Icons' ] },
512
- { name: 'Check Circle',
513
- id: 'check-circle',
514
- unicode: 'f058',
515
- created: 1,
516
- filter: [ 'todo', 'done', 'agree', 'accept', 'confirm', 'ok' ],
517
- categories: [ 'Web Application Icons' ] },
518
- { name: 'Question Circle',
519
- id: 'question-circle',
520
- unicode: 'f059',
521
- filter: [ 'help', 'information', 'unknown', 'support' ],
522
- created: 1,
523
- categories: [ 'Web Application Icons' ] },
524
- { name: 'Info Circle',
525
- id: 'info-circle',
526
- unicode: 'f05a',
527
- created: 1,
528
- filter: [ 'help', 'information', 'more', 'details' ],
529
- categories: [ 'Web Application Icons' ] },
530
- { name: 'Crosshairs',
531
- id: 'crosshairs',
532
- unicode: 'f05b',
533
- created: 1,
534
- filter: [ 'picker' ],
535
- categories: [ 'Web Application Icons' ] },
536
- { name: 'Times Circle Outlined',
537
- id: 'times-circle-o',
538
- unicode: 'f05c',
539
- created: 1,
540
- filter: [ 'close', 'exit', 'x' ],
541
- categories: [ 'Web Application Icons' ] },
542
- { name: 'Check Circle Outlined',
543
- id: 'check-circle-o',
544
- unicode: 'f05d',
545
- created: 1,
546
- filter: [ 'todo', 'done', 'agree', 'accept', 'confirm', 'ok' ],
547
- categories: [ 'Web Application Icons' ] },
548
- { name: 'ban',
549
- id: 'ban',
550
- unicode: 'f05e',
551
- created: 1,
552
- filter:
553
- [ 'delete',
554
- 'remove',
555
- 'trash',
556
- 'hide',
557
- 'block',
558
- 'stop',
559
- 'abort',
560
- 'cancel' ],
561
- categories: [ 'Web Application Icons' ] },
562
- { name: 'arrow-left',
563
- id: 'arrow-left',
564
- unicode: 'f060',
565
- created: 1,
566
- filter: [ 'previous', 'back' ],
567
- categories: [ 'Directional Icons' ] },
568
- { name: 'arrow-right',
569
- id: 'arrow-right',
570
- unicode: 'f061',
571
- created: 1,
572
- filter: [ 'next', 'forward' ],
573
- categories: [ 'Directional Icons' ] },
574
- { name: 'arrow-up',
575
- id: 'arrow-up',
576
- unicode: 'f062',
577
- created: 1,
578
- categories: [ 'Directional Icons' ] },
579
- { name: 'arrow-down',
580
- id: 'arrow-down',
581
- unicode: 'f063',
582
- created: 1,
583
- filter: [ 'download' ],
584
- categories: [ 'Directional Icons' ] },
585
- { name: 'Share',
586
- id: 'share',
587
- unicode: 'f064',
588
- created: 1,
589
- aliases: [ 'mail-forward' ],
590
- categories: [ 'Web Application Icons' ] },
591
- { name: 'Expand',
592
- id: 'expand',
593
- unicode: 'f065',
594
- created: 1,
595
- filter: [ 'enlarge', 'bigger', 'resize' ],
596
- categories: [ 'Video Player Icons' ] },
597
- { name: 'Compress',
598
- id: 'compress',
599
- unicode: 'f066',
600
- created: 1,
601
- filter: [ 'collapse', 'combine', 'contract', 'merge', 'smaller' ],
602
- categories: [ 'Video Player Icons' ] },
603
- { name: 'plus',
604
- id: 'plus',
605
- unicode: 'f067',
606
- created: 1,
607
- filter: [ 'add', 'new', 'create', 'expand' ],
608
- categories: [ 'Web Application Icons' ] },
609
- { name: 'minus',
610
- id: 'minus',
611
- unicode: 'f068',
612
- created: 1,
613
- filter: [ 'hide', 'minify', 'delete', 'remove', 'trash', 'hide', 'collapse' ],
614
- categories: [ 'Web Application Icons' ] },
615
- { name: 'asterisk',
616
- id: 'asterisk',
617
- unicode: 'f069',
618
- created: 1,
619
- filter: [ 'details' ],
620
- categories: [ 'Web Application Icons' ] },
621
- { name: 'Exclamation Circle',
622
- id: 'exclamation-circle',
623
- unicode: 'f06a',
624
- created: 1,
625
- filter: [ 'warning', 'error', 'problem', 'notification', 'alert' ],
626
- categories: [ 'Web Application Icons' ] },
627
- { name: 'gift',
628
- id: 'gift',
629
- unicode: 'f06b',
630
- created: 1,
631
- filter: [ 'present' ],
632
- categories: [ 'Web Application Icons' ] },
633
- { name: 'leaf',
634
- id: 'leaf',
635
- unicode: 'f06c',
636
- created: 1,
637
- filter: [ 'eco', 'nature', 'plant' ],
638
- categories: [ 'Web Application Icons' ] },
639
- { name: 'fire',
640
- id: 'fire',
641
- unicode: 'f06d',
642
- created: 1,
643
- filter: [ 'flame', 'hot', 'popular' ],
644
- categories: [ 'Web Application Icons' ] },
645
- { name: 'Eye',
646
- id: 'eye',
647
- unicode: 'f06e',
648
- created: 1,
649
- filter: [ 'show', 'visible', 'views' ],
650
- categories: [ 'Web Application Icons' ] },
651
- { name: 'Eye Slash',
652
- id: 'eye-slash',
653
- unicode: 'f070',
654
- created: 1,
655
- filter: [ 'toggle', 'show', 'hide', 'visible', 'visiblity', 'views' ],
656
- categories: [ 'Web Application Icons' ] },
657
- { name: 'Exclamation Triangle',
658
- id: 'exclamation-triangle',
659
- unicode: 'f071',
660
- created: 1,
661
- filter: [ 'warning', 'error', 'problem', 'notification', 'alert' ],
662
- aliases: [ 'warning' ],
663
- categories: [ 'Web Application Icons' ] },
664
- { name: 'plane',
665
- id: 'plane',
666
- unicode: 'f072',
667
- created: 1,
668
- filter:
669
- [ 'travel',
670
- 'trip',
671
- 'location',
672
- 'destination',
673
- 'airplane',
674
- 'fly',
675
- 'mode' ],
676
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
677
- { name: 'calendar',
678
- id: 'calendar',
679
- unicode: 'f073',
680
- created: 1,
681
- filter: [ 'date', 'time', 'when', 'event' ],
682
- categories: [ 'Web Application Icons' ] },
683
- { name: 'random',
684
- id: 'random',
685
- unicode: 'f074',
686
- created: 1,
687
- filter: [ 'sort', 'shuffle' ],
688
- categories: [ 'Web Application Icons', 'Video Player Icons' ] },
689
- { name: 'comment',
690
- id: 'comment',
691
- unicode: 'f075',
692
- created: 1,
693
- filter:
694
- [ 'speech',
695
- 'notification',
696
- 'note',
697
- 'chat',
698
- 'bubble',
699
- 'feedback',
700
- 'message',
701
- 'texting',
702
- 'sms',
703
- 'conversation' ],
704
- categories: [ 'Web Application Icons' ] },
705
- { name: 'magnet',
706
- id: 'magnet',
707
- unicode: 'f076',
708
- created: 1,
709
- categories: [ 'Web Application Icons' ] },
710
- { name: 'chevron-up',
711
- id: 'chevron-up',
712
- unicode: 'f077',
713
- created: 1,
714
- categories: [ 'Directional Icons' ] },
715
- { name: 'chevron-down',
716
- id: 'chevron-down',
717
- unicode: 'f078',
718
- created: 1,
719
- categories: [ 'Directional Icons' ] },
720
- { name: 'retweet',
721
- id: 'retweet',
722
- unicode: 'f079',
723
- created: 1,
724
- filter: [ 'refresh', 'reload', 'share' ],
725
- categories: [ 'Web Application Icons' ] },
726
- { name: 'shopping-cart',
727
- id: 'shopping-cart',
728
- unicode: 'f07a',
729
- created: 1,
730
- filter: [ 'checkout', 'buy', 'purchase', 'payment' ],
731
- categories: [ 'Web Application Icons' ] },
732
- { name: 'Folder',
733
- id: 'folder',
734
- unicode: 'f07b',
735
- created: 1,
736
- categories: [ 'Web Application Icons' ] },
737
- { name: 'Folder Open',
738
- id: 'folder-open',
739
- unicode: 'f07c',
740
- created: 1,
741
- categories: [ 'Web Application Icons' ] },
742
- { name: 'Arrows Vertical',
743
- id: 'arrows-v',
744
- unicode: 'f07d',
745
- created: 1,
746
- filter: [ 'resize' ],
747
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
748
- { name: 'Arrows Horizontal',
749
- id: 'arrows-h',
750
- unicode: 'f07e',
751
- created: 1,
752
- filter: [ 'resize' ],
753
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
754
- { name: 'Bar Chart',
755
- id: 'bar-chart',
756
- unicode: 'f080',
757
- created: 1,
758
- aliases: [ 'bar-chart-o' ],
759
- filter: [ 'graph', 'analytics' ],
760
- categories: [ 'Web Application Icons', 'Chart Icons' ] },
761
- { name: 'Twitter Square',
762
- id: 'twitter-square',
763
- unicode: 'f081',
764
- created: 1,
765
- filter: [ 'tweet', 'social network' ],
766
- categories: [ 'Brand Icons' ] },
767
- { name: 'Facebook Square',
768
- id: 'facebook-square',
769
- unicode: 'f082',
770
- created: 1,
771
- filter: [ 'social network' ],
772
- categories: [ 'Brand Icons' ] },
773
- { name: 'camera-retro',
774
- id: 'camera-retro',
775
- unicode: 'f083',
776
- created: 1,
777
- filter: [ 'photo', 'picture', 'record' ],
778
- categories: [ 'Web Application Icons' ] },
779
- { name: 'key',
780
- id: 'key',
781
- unicode: 'f084',
782
- created: 1,
783
- filter: [ 'unlock', 'password' ],
784
- categories: [ 'Web Application Icons' ] },
785
- { name: 'cogs',
786
- id: 'cogs',
787
- unicode: 'f085',
788
- created: 1,
789
- aliases: [ 'gears' ],
790
- filter: [ 'settings' ],
791
- categories: [ 'Web Application Icons' ] },
792
- { name: 'comments',
793
- id: 'comments',
794
- unicode: 'f086',
795
- created: 1,
796
- filter:
797
- [ 'speech',
798
- 'notification',
799
- 'note',
800
- 'chat',
801
- 'bubble',
802
- 'feedback',
803
- 'message',
804
- 'texting',
805
- 'sms',
806
- 'conversation' ],
807
- categories: [ 'Web Application Icons' ] },
808
- { name: 'Thumbs Up Outlined',
809
- id: 'thumbs-o-up',
810
- unicode: 'f087',
811
- created: 1,
812
- filter: [ 'like', 'approve', 'favorite', 'agree', 'hand' ],
813
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
814
- { name: 'Thumbs Down Outlined',
815
- id: 'thumbs-o-down',
816
- unicode: 'f088',
817
- created: 1,
818
- filter: [ 'dislike', 'disapprove', 'disagree', 'hand' ],
819
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
820
- { name: 'star-half',
821
- id: 'star-half',
822
- unicode: 'f089',
823
- created: 1,
824
- filter: [ 'award', 'achievement', 'rating', 'score' ],
825
- categories: [ 'Web Application Icons' ] },
826
- { name: 'Heart Outlined',
827
- id: 'heart-o',
828
- unicode: 'f08a',
829
- created: 1,
830
- filter: [ 'love', 'like', 'favorite' ],
831
- categories: [ 'Web Application Icons', 'Medical Icons' ] },
832
- { name: 'Sign Out',
833
- id: 'sign-out',
834
- unicode: 'f08b',
835
- created: 1,
836
- filter: [ 'log out', 'logout', 'leave', 'exit', 'arrow' ],
837
- categories: [ 'Web Application Icons' ] },
838
- { name: 'LinkedIn Square',
839
- id: 'linkedin-square',
840
- unicode: 'f08c',
841
- created: 1,
842
- categories: [ 'Brand Icons' ] },
843
- { name: 'Thumb Tack',
844
- id: 'thumb-tack',
845
- unicode: 'f08d',
846
- created: 1,
847
- filter: [ 'marker', 'pin', 'location', 'coordinates' ],
848
- categories: [ 'Web Application Icons' ] },
849
- { name: 'External Link',
850
- id: 'external-link',
851
- unicode: 'f08e',
852
- created: 1,
853
- filter: [ 'open', 'new' ],
854
- categories: [ 'Web Application Icons' ] },
855
- { name: 'Sign In',
856
- id: 'sign-in',
857
- unicode: 'f090',
858
- created: 1,
859
- filter:
860
- [ 'enter',
861
- 'join',
862
- 'log in',
863
- 'login',
864
- 'sign up',
865
- 'sign in',
866
- 'signin',
867
- 'signup',
868
- 'arrow' ],
869
- categories: [ 'Web Application Icons' ] },
870
- { name: 'trophy',
871
- id: 'trophy',
872
- unicode: 'f091',
873
- created: 1,
874
- filter: [ 'award', 'achievement', 'winner', 'game' ],
875
- categories: [ 'Web Application Icons' ] },
876
- { name: 'GitHub Square',
877
- id: 'github-square',
878
- unicode: 'f092',
879
- created: 1,
880
- url: 'github.com/logos',
881
- filter: [ 'octocat' ],
882
- categories: [ 'Brand Icons' ] },
883
- { name: 'Upload',
884
- id: 'upload',
885
- unicode: 'f093',
886
- created: 1,
887
- filter: [ 'import' ],
888
- categories: [ 'Web Application Icons' ] },
889
- { name: 'Lemon Outlined',
890
- id: 'lemon-o',
891
- unicode: 'f094',
892
- created: 1,
893
- filter: [ 'food' ],
894
- categories: [ 'Web Application Icons' ] },
895
- { name: 'Phone',
896
- id: 'phone',
897
- unicode: 'f095',
898
- created: 2,
899
- filter: [ 'call', 'voice', 'number', 'support', 'earphone', 'telephone' ],
900
- categories: [ 'Web Application Icons' ] },
901
- { name: 'Square Outlined',
902
- id: 'square-o',
903
- unicode: 'f096',
904
- created: 2,
905
- filter: [ 'block', 'square', 'box' ],
906
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
907
- { name: 'Bookmark Outlined',
908
- id: 'bookmark-o',
909
- unicode: 'f097',
910
- created: 2,
911
- filter: [ 'save' ],
912
- categories: [ 'Web Application Icons' ] },
913
- { name: 'Phone Square',
914
- id: 'phone-square',
915
- unicode: 'f098',
916
- created: 2,
917
- filter: [ 'call', 'voice', 'number', 'support', 'telephone' ],
918
- categories: [ 'Web Application Icons' ] },
919
- { name: 'Twitter',
920
- id: 'twitter',
921
- unicode: 'f099',
922
- created: 2,
923
- filter: [ 'tweet', 'social network' ],
924
- categories: [ 'Brand Icons' ] },
925
- { name: 'Facebook',
926
- id: 'facebook',
927
- unicode: 'f09a',
928
- created: 2,
929
- aliases: [ 'facebook-f' ],
930
- filter: [ 'social network' ],
931
- categories: [ 'Brand Icons' ] },
932
- { name: 'GitHub',
933
- id: 'github',
934
- unicode: 'f09b',
935
- created: 2,
936
- url: 'github.com/logos',
937
- filter: [ 'octocat' ],
938
- categories: [ 'Brand Icons' ] },
939
- { name: 'unlock',
940
- id: 'unlock',
941
- unicode: 'f09c',
942
- created: 2,
943
- filter: [ 'protect', 'admin', 'password', 'lock' ],
944
- categories: [ 'Web Application Icons' ] },
945
- { name: 'credit-card',
946
- id: 'credit-card',
947
- unicode: 'f09d',
948
- created: 2,
949
- filter: [ 'money', 'buy', 'debit', 'checkout', 'purchase', 'payment' ],
950
- categories: [ 'Web Application Icons', 'Payment Icons' ] },
951
- { name: 'rss',
952
- id: 'rss',
953
- unicode: 'f09e',
954
- created: 2,
955
- filter: [ 'blog' ],
956
- aliases: [ 'feed' ],
957
- categories: [ 'Web Application Icons' ] },
958
- { name: 'HDD',
959
- id: 'hdd-o',
960
- unicode: 'f0a0',
961
- created: 2,
962
- filter: [ 'harddrive', 'hard drive', 'storage', 'save' ],
963
- categories: [ 'Web Application Icons' ] },
964
- { name: 'bullhorn',
965
- id: 'bullhorn',
966
- unicode: 'f0a1',
967
- created: 2,
968
- filter: [ 'announcement', 'share', 'broadcast', 'louder', 'megaphone' ],
969
- categories: [ 'Web Application Icons' ] },
970
- { name: 'bell',
971
- id: 'bell',
972
- unicode: 'f0f3',
973
- created: 2,
974
- filter: [ 'alert', 'reminder', 'notification' ],
975
- categories: [ 'Web Application Icons' ] },
976
- { name: 'certificate',
977
- id: 'certificate',
978
- unicode: 'f0a3',
979
- created: 2,
980
- filter: [ 'badge', 'star' ],
981
- categories: [ 'Web Application Icons' ] },
982
- { name: 'Hand Outlined Right',
983
- id: 'hand-o-right',
984
- unicode: 'f0a4',
985
- created: 2,
986
- filter: [ 'point', 'right', 'next', 'forward', 'finger' ],
987
- categories: [ 'Directional Icons', 'Hand Icons' ] },
988
- { name: 'Hand Outlined Left',
989
- id: 'hand-o-left',
990
- unicode: 'f0a5',
991
- created: 2,
992
- filter: [ 'point', 'left', 'previous', 'back', 'finger' ],
993
- categories: [ 'Directional Icons', 'Hand Icons' ] },
994
- { name: 'Hand Outlined Up',
995
- id: 'hand-o-up',
996
- unicode: 'f0a6',
997
- created: 2,
998
- filter: [ 'point', 'finger' ],
999
- categories: [ 'Directional Icons', 'Hand Icons' ] },
1000
- { name: 'Hand Outlined Down',
1001
- id: 'hand-o-down',
1002
- unicode: 'f0a7',
1003
- created: 2,
1004
- filter: [ 'point', 'finger' ],
1005
- categories: [ 'Directional Icons', 'Hand Icons' ] },
1006
- { name: 'Arrow Circle Left',
1007
- id: 'arrow-circle-left',
1008
- unicode: 'f0a8',
1009
- created: 2,
1010
- filter: [ 'previous', 'back' ],
1011
- categories: [ 'Directional Icons' ] },
1012
- { name: 'Arrow Circle Right',
1013
- id: 'arrow-circle-right',
1014
- unicode: 'f0a9',
1015
- created: 2,
1016
- filter: [ 'next', 'forward' ],
1017
- categories: [ 'Directional Icons' ] },
1018
- { name: 'Arrow Circle Up',
1019
- id: 'arrow-circle-up',
1020
- unicode: 'f0aa',
1021
- created: 2,
1022
- categories: [ 'Directional Icons' ] },
1023
- { name: 'Arrow Circle Down',
1024
- id: 'arrow-circle-down',
1025
- unicode: 'f0ab',
1026
- created: 2,
1027
- filter: [ 'download' ],
1028
- categories: [ 'Directional Icons' ] },
1029
- { name: 'Globe',
1030
- id: 'globe',
1031
- unicode: 'f0ac',
1032
- created: 2,
1033
- filter:
1034
- [ 'world',
1035
- 'planet',
1036
- 'map',
1037
- 'place',
1038
- 'travel',
1039
- 'earth',
1040
- 'global',
1041
- 'translate',
1042
- 'all',
1043
- 'language',
1044
- 'localize',
1045
- 'location',
1046
- 'coordinates',
1047
- 'country' ],
1048
- categories: [ 'Web Application Icons' ] },
1049
- { name: 'Wrench',
1050
- id: 'wrench',
1051
- unicode: 'f0ad',
1052
- created: 2,
1053
- filter: [ 'settings', 'fix', 'update' ],
1054
- categories: [ 'Web Application Icons' ] },
1055
- { name: 'Tasks',
1056
- id: 'tasks',
1057
- unicode: 'f0ae',
1058
- created: 2,
1059
- filter: [ 'progress', 'loading', 'downloading', 'downloads', 'settings' ],
1060
- categories: [ 'Web Application Icons' ] },
1061
- { name: 'Filter',
1062
- id: 'filter',
1063
- unicode: 'f0b0',
1064
- created: 2,
1065
- filter: [ 'funnel', 'options' ],
1066
- categories: [ 'Web Application Icons' ] },
1067
- { name: 'Briefcase',
1068
- id: 'briefcase',
1069
- unicode: 'f0b1',
1070
- created: 2,
1071
- filter: [ 'work', 'business', 'office', 'luggage', 'bag' ],
1072
- categories: [ 'Web Application Icons' ] },
1073
- { name: 'Arrows Alt',
1074
- id: 'arrows-alt',
1075
- unicode: 'f0b2',
1076
- created: 2,
1077
- filter:
1078
- [ 'expand',
1079
- 'enlarge',
1080
- 'fullscreen',
1081
- 'bigger',
1082
- 'move',
1083
- 'reorder',
1084
- 'resize',
1085
- 'arrow' ],
1086
- categories: [ 'Video Player Icons', 'Directional Icons' ] },
1087
- { name: 'Users',
1088
- id: 'users',
1089
- unicode: 'f0c0',
1090
- created: 2,
1091
- filter: [ 'people', 'profiles', 'persons' ],
1092
- aliases: [ 'group' ],
1093
- categories: [ 'Web Application Icons' ] },
1094
- { name: 'Link',
1095
- id: 'link',
1096
- unicode: 'f0c1',
1097
- created: 2,
1098
- filter: [ 'chain' ],
1099
- aliases: [ 'chain' ],
1100
- categories: [ 'Text Editor Icons' ] },
1101
- { name: 'Cloud',
1102
- id: 'cloud',
1103
- filter: [ 'save' ],
1104
- unicode: 'f0c2',
1105
- created: 2,
1106
- categories: [ 'Web Application Icons' ] },
1107
- { name: 'Flask',
1108
- id: 'flask',
1109
- unicode: 'f0c3',
1110
- created: 2,
1111
- filter: [ 'science', 'beaker', 'experimental', 'labs' ],
1112
- categories: [ 'Web Application Icons' ] },
1113
- { name: 'Scissors',
1114
- id: 'scissors',
1115
- unicode: 'f0c4',
1116
- created: 2,
1117
- aliases: [ 'cut' ],
1118
- categories: [ 'Text Editor Icons' ] },
1119
- { name: 'Files Outlined',
1120
- id: 'files-o',
1121
- unicode: 'f0c5',
1122
- created: 2,
1123
- filter: [ 'duplicate', 'clone', 'copy' ],
1124
- aliases: [ 'copy' ],
1125
- categories: [ 'Text Editor Icons' ] },
1126
- { name: 'Paperclip',
1127
- id: 'paperclip',
1128
- unicode: 'f0c6',
1129
- created: 2,
1130
- filter: [ 'attachment' ],
1131
- categories: [ 'Text Editor Icons' ] },
1132
- { name: 'Floppy Outlined',
1133
- id: 'floppy-o',
1134
- unicode: 'f0c7',
1135
- created: 2,
1136
- aliases: [ 'save' ],
1137
- categories: [ 'Text Editor Icons' ] },
1138
- { name: 'Square',
1139
- id: 'square',
1140
- unicode: 'f0c8',
1141
- created: 2,
1142
- filter: [ 'block', 'box' ],
1143
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1144
- { name: 'Bars',
1145
- id: 'bars',
1146
- unicode: 'f0c9',
1147
- created: 2,
1148
- aliases: [ 'navicon', 'reorder' ],
1149
- filter:
1150
- [ 'menu',
1151
- 'drag',
1152
- 'reorder',
1153
- 'settings',
1154
- 'list',
1155
- 'ul',
1156
- 'ol',
1157
- 'checklist',
1158
- 'todo',
1159
- 'list',
1160
- 'hamburger' ],
1161
- categories: [ 'Web Application Icons' ] },
1162
- { name: 'list-ul',
1163
- id: 'list-ul',
1164
- unicode: 'f0ca',
1165
- created: 2,
1166
- filter: [ 'ul', 'ol', 'checklist', 'todo', 'list' ],
1167
- categories: [ 'Text Editor Icons' ] },
1168
- { name: 'list-ol',
1169
- id: 'list-ol',
1170
- unicode: 'f0cb',
1171
- created: 2,
1172
- filter: [ 'ul', 'ol', 'checklist', 'list', 'todo', 'list', 'numbers' ],
1173
- categories: [ 'Text Editor Icons' ] },
1174
- { name: 'Strikethrough',
1175
- id: 'strikethrough',
1176
- unicode: 'f0cc',
1177
- created: 2,
1178
- categories: [ 'Text Editor Icons' ] },
1179
- { name: 'Underline',
1180
- id: 'underline',
1181
- unicode: 'f0cd',
1182
- created: 2,
1183
- categories: [ 'Text Editor Icons' ] },
1184
- { name: 'table',
1185
- id: 'table',
1186
- unicode: 'f0ce',
1187
- created: 2,
1188
- filter: [ 'data', 'excel', 'spreadsheet' ],
1189
- categories: [ 'Text Editor Icons' ] },
1190
- { name: 'magic',
1191
- id: 'magic',
1192
- unicode: 'f0d0',
1193
- created: 2,
1194
- filter: [ 'wizard', 'automatic', 'autocomplete' ],
1195
- categories: [ 'Web Application Icons' ] },
1196
- { name: 'truck',
1197
- id: 'truck',
1198
- unicode: 'f0d1',
1199
- created: 2,
1200
- filter: [ 'shipping' ],
1201
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
1202
- { name: 'Pinterest',
1203
- id: 'pinterest',
1204
- unicode: 'f0d2',
1205
- created: 2,
1206
- categories: [ 'Brand Icons' ] },
1207
- { name: 'Pinterest Square',
1208
- id: 'pinterest-square',
1209
- unicode: 'f0d3',
1210
- created: 2,
1211
- categories: [ 'Brand Icons' ] },
1212
- { name: 'Google Plus Square',
1213
- id: 'google-plus-square',
1214
- unicode: 'f0d4',
1215
- created: 2,
1216
- filter: [ 'social network' ],
1217
- categories: [ 'Brand Icons' ] },
1218
- { name: 'Google Plus',
1219
- id: 'google-plus',
1220
- unicode: 'f0d5',
1221
- created: 2,
1222
- filter: [ 'social network' ],
1223
- categories: [ 'Brand Icons' ] },
1224
- { name: 'Money',
1225
- id: 'money',
1226
- unicode: 'f0d6',
1227
- created: 2,
1228
- filter: [ 'cash', 'money', 'buy', 'checkout', 'purchase', 'payment' ],
1229
- categories: [ 'Web Application Icons', 'Currency Icons' ] },
1230
- { name: 'Caret Down',
1231
- id: 'caret-down',
1232
- unicode: 'f0d7',
1233
- created: 2,
1234
- filter: [ 'more', 'dropdown', 'menu', 'triangle down', 'arrow' ],
1235
- categories: [ 'Directional Icons' ] },
1236
- { name: 'Caret Up',
1237
- id: 'caret-up',
1238
- unicode: 'f0d8',
1239
- created: 2,
1240
- filter: [ 'triangle up', 'arrow' ],
1241
- categories: [ 'Directional Icons' ] },
1242
- { name: 'Caret Left',
1243
- id: 'caret-left',
1244
- unicode: 'f0d9',
1245
- created: 2,
1246
- filter: [ 'previous', 'back', 'triangle left', 'arrow' ],
1247
- categories: [ 'Directional Icons' ] },
1248
- { name: 'Caret Right',
1249
- id: 'caret-right',
1250
- unicode: 'f0da',
1251
- created: 2,
1252
- filter: [ 'next', 'forward', 'triangle right', 'arrow' ],
1253
- categories: [ 'Directional Icons' ] },
1254
- { name: 'Columns',
1255
- id: 'columns',
1256
- unicode: 'f0db',
1257
- created: 2,
1258
- filter: [ 'split', 'panes' ],
1259
- categories: [ 'Text Editor Icons' ] },
1260
- { name: 'Sort',
1261
- id: 'sort',
1262
- unicode: 'f0dc',
1263
- created: 2,
1264
- filter: [ 'order' ],
1265
- aliases: [ 'unsorted' ],
1266
- categories: [ 'Web Application Icons' ] },
1267
- { name: 'Sort Descending',
1268
- id: 'sort-desc',
1269
- unicode: 'f0dd',
1270
- created: 2,
1271
- filter: [ 'dropdown', 'more', 'menu', 'arrow' ],
1272
- aliases: [ 'sort-down' ],
1273
- categories: [ 'Web Application Icons' ] },
1274
- { name: 'Sort Ascending',
1275
- id: 'sort-asc',
1276
- unicode: 'f0de',
1277
- created: 2,
1278
- aliases: [ 'sort-up' ],
1279
- filter: [ 'arrow' ],
1280
- categories: [ 'Web Application Icons' ] },
1281
- { name: 'Envelope',
1282
- id: 'envelope',
1283
- unicode: 'f0e0',
1284
- created: 2,
1285
- filter: [ 'email', 'e-mail', 'letter', 'support', 'mail', 'notification' ],
1286
- categories: [ 'Web Application Icons' ] },
1287
- { name: 'LinkedIn',
1288
- id: 'linkedin',
1289
- unicode: 'f0e1',
1290
- created: 2,
1291
- categories: [ 'Brand Icons' ] },
1292
- { name: 'Undo',
1293
- id: 'undo',
1294
- unicode: 'f0e2',
1295
- created: 2,
1296
- filter: [ 'back' ],
1297
- aliases: [ 'rotate-left' ],
1298
- categories: [ 'Text Editor Icons' ] },
1299
- { name: 'Gavel',
1300
- id: 'gavel',
1301
- unicode: 'f0e3',
1302
- created: 2,
1303
- label: [ 'judge', 'lawyer', 'opinion' ],
1304
- aliases: [ 'legal' ],
1305
- categories: [ 'Web Application Icons' ] },
1306
- { name: 'Tachometer',
1307
- id: 'tachometer',
1308
- unicode: 'f0e4',
1309
- created: 2,
1310
- label: [ 'speedometer', 'fast' ],
1311
- aliases: [ 'dashboard' ],
1312
- categories: [ 'Web Application Icons' ] },
1313
- { name: 'comment-o',
1314
- id: 'comment-o',
1315
- unicode: 'f0e5',
1316
- created: 2,
1317
- filter:
1318
- [ 'speech',
1319
- 'notification',
1320
- 'note',
1321
- 'chat',
1322
- 'bubble',
1323
- 'feedback',
1324
- 'message',
1325
- 'texting',
1326
- 'sms',
1327
- 'conversation' ],
1328
- categories: [ 'Web Application Icons' ] },
1329
- { name: 'comments-o',
1330
- id: 'comments-o',
1331
- unicode: 'f0e6',
1332
- created: 2,
1333
- filter:
1334
- [ 'speech',
1335
- 'notification',
1336
- 'note',
1337
- 'chat',
1338
- 'bubble',
1339
- 'feedback',
1340
- 'message',
1341
- 'texting',
1342
- 'sms',
1343
- 'conversation' ],
1344
- categories: [ 'Web Application Icons' ] },
1345
- { name: 'Lightning Bolt',
1346
- id: 'bolt',
1347
- unicode: 'f0e7',
1348
- created: 2,
1349
- filter: [ 'lightning', 'weather' ],
1350
- aliases: [ 'flash' ],
1351
- categories: [ 'Web Application Icons' ] },
1352
- { name: 'Sitemap',
1353
- id: 'sitemap',
1354
- unicode: 'f0e8',
1355
- created: 2,
1356
- filter: [ 'directory', 'hierarchy', 'organization' ],
1357
- categories: [ 'Web Application Icons' ] },
1358
- { name: 'Umbrella',
1359
- id: 'umbrella',
1360
- unicode: 'f0e9',
1361
- created: 2,
1362
- categories: [ 'Web Application Icons' ] },
1363
- { name: 'Clipboard',
1364
- id: 'clipboard',
1365
- unicode: 'f0ea',
1366
- created: 2,
1367
- filter: [ 'copy' ],
1368
- aliases: [ 'paste' ],
1369
- categories: [ 'Text Editor Icons' ] },
1370
- { name: 'Lightbulb Outlined',
1371
- id: 'lightbulb-o',
1372
- unicode: 'f0eb',
1373
- created: 3,
1374
- filter: [ 'idea', 'inspiration' ],
1375
- categories: [ 'Web Application Icons' ] },
1376
- { name: 'Exchange',
1377
- id: 'exchange',
1378
- unicode: 'f0ec',
1379
- created: 3,
1380
- filter: [ 'transfer', 'arrows', 'arrow' ],
1381
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
1382
- { name: 'Cloud Download',
1383
- id: 'cloud-download',
1384
- unicode: 'f0ed',
1385
- created: 3,
1386
- filter: [ 'import' ],
1387
- categories: [ 'Web Application Icons' ] },
1388
- { name: 'Cloud Upload',
1389
- id: 'cloud-upload',
1390
- unicode: 'f0ee',
1391
- created: 3,
1392
- filter: [ 'import' ],
1393
- categories: [ 'Web Application Icons' ] },
1394
- { name: 'user-md',
1395
- id: 'user-md',
1396
- unicode: 'f0f0',
1397
- created: 2,
1398
- filter: [ 'doctor', 'profile', 'medical', 'nurse' ],
1399
- categories: [ 'Medical Icons' ] },
1400
- { name: 'Stethoscope',
1401
- id: 'stethoscope',
1402
- unicode: 'f0f1',
1403
- created: 3,
1404
- categories: [ 'Medical Icons' ] },
1405
- { name: 'Suitcase',
1406
- id: 'suitcase',
1407
- unicode: 'f0f2',
1408
- created: 3,
1409
- filter: [ 'trip', 'luggage', 'travel', 'move', 'baggage' ],
1410
- categories: [ 'Web Application Icons' ] },
1411
- { name: 'Bell Outlined',
1412
- id: 'bell-o',
1413
- unicode: 'f0a2',
1414
- created: 3,
1415
- filter: [ 'alert', 'reminder', 'notification' ],
1416
- categories: [ 'Web Application Icons' ] },
1417
- { name: 'Coffee',
1418
- id: 'coffee',
1419
- unicode: 'f0f4',
1420
- created: 3,
1421
- filter: [ 'morning', 'mug', 'breakfast', 'tea', 'drink', 'cafe' ],
1422
- categories: [ 'Web Application Icons' ] },
1423
- { name: 'Cutlery',
1424
- id: 'cutlery',
1425
- unicode: 'f0f5',
1426
- created: 3,
1427
- filter: [ 'food', 'restaurant', 'spoon', 'knife', 'dinner', 'eat' ],
1428
- categories: [ 'Web Application Icons' ] },
1429
- { name: 'File Text Outlined',
1430
- id: 'file-text-o',
1431
- unicode: 'f0f6',
1432
- created: 3,
1433
- filter: [ 'new', 'page', 'pdf', 'document' ],
1434
- categories: [ 'Text Editor Icons', 'File Type Icons' ] },
1435
- { name: 'Building Outlined',
1436
- id: 'building-o',
1437
- unicode: 'f0f7',
1438
- created: 3,
1439
- filter: [ 'work', 'business', 'apartment', 'office', 'company' ],
1440
- categories: [ 'Web Application Icons' ] },
1441
- { name: 'hospital Outlined',
1442
- id: 'hospital-o',
1443
- unicode: 'f0f8',
1444
- created: 3,
1445
- filter: [ 'building' ],
1446
- categories: [ 'Medical Icons' ] },
1447
- { name: 'ambulance',
1448
- id: 'ambulance',
1449
- unicode: 'f0f9',
1450
- created: 3,
1451
- filter: [ 'vehicle', 'support', 'help' ],
1452
- categories: [ 'Medical Icons', 'Transportation Icons' ] },
1453
- { name: 'medkit',
1454
- id: 'medkit',
1455
- unicode: 'f0fa',
1456
- created: 3,
1457
- filter: [ 'first aid', 'firstaid', 'help', 'support', 'health' ],
1458
- categories: [ 'Medical Icons' ] },
1459
- { name: 'fighter-jet',
1460
- id: 'fighter-jet',
1461
- unicode: 'f0fb',
1462
- created: 3,
1463
- filter: [ 'fly', 'plane', 'airplane', 'quick', 'fast', 'travel' ],
1464
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
1465
- { name: 'beer',
1466
- id: 'beer',
1467
- unicode: 'f0fc',
1468
- created: 3,
1469
- filter: [ 'alcohol', 'stein', 'drink', 'mug', 'bar', 'liquor' ],
1470
- categories: [ 'Web Application Icons' ] },
1471
- { name: 'H Square',
1472
- id: 'h-square',
1473
- unicode: 'f0fd',
1474
- created: 3,
1475
- filter: [ 'hospital', 'hotel' ],
1476
- categories: [ 'Medical Icons' ] },
1477
- { name: 'Plus Square',
1478
- id: 'plus-square',
1479
- unicode: 'f0fe',
1480
- created: 3,
1481
- filter: [ 'add', 'new', 'create', 'expand' ],
1482
- categories:
1483
- [ 'Medical Icons',
1484
- 'Web Application Icons',
1485
- 'Form Control Icons' ] },
1486
- { name: 'Angle Double Left',
1487
- id: 'angle-double-left',
1488
- unicode: 'f100',
1489
- created: 3,
1490
- filter: [ 'laquo', 'quote', 'previous', 'back', 'arrows' ],
1491
- categories: [ 'Directional Icons' ] },
1492
- { name: 'Angle Double Right',
1493
- id: 'angle-double-right',
1494
- unicode: 'f101',
1495
- created: 3,
1496
- filter: [ 'raquo', 'quote', 'next', 'forward', 'arrows' ],
1497
- categories: [ 'Directional Icons' ] },
1498
- { name: 'Angle Double Up',
1499
- id: 'angle-double-up',
1500
- unicode: 'f102',
1501
- created: 3,
1502
- filter: [ 'arrows' ],
1503
- categories: [ 'Directional Icons' ] },
1504
- { name: 'Angle Double Down',
1505
- id: 'angle-double-down',
1506
- unicode: 'f103',
1507
- created: 3,
1508
- filter: [ 'arrows' ],
1509
- categories: [ 'Directional Icons' ] },
1510
- { name: 'angle-left',
1511
- id: 'angle-left',
1512
- unicode: 'f104',
1513
- created: 3,
1514
- filter: [ 'previous', 'back', 'arrow' ],
1515
- categories: [ 'Directional Icons' ] },
1516
- { name: 'angle-right',
1517
- id: 'angle-right',
1518
- unicode: 'f105',
1519
- created: 3,
1520
- filter: [ 'next', 'forward', 'arrow' ],
1521
- categories: [ 'Directional Icons' ] },
1522
- { name: 'angle-up',
1523
- id: 'angle-up',
1524
- unicode: 'f106',
1525
- created: 3,
1526
- filter: [ 'arrow' ],
1527
- categories: [ 'Directional Icons' ] },
1528
- { name: 'angle-down',
1529
- id: 'angle-down',
1530
- unicode: 'f107',
1531
- created: 3,
1532
- filter: [ 'arrow' ],
1533
- categories: [ 'Directional Icons' ] },
1534
- { name: 'Desktop',
1535
- id: 'desktop',
1536
- unicode: 'f108',
1537
- created: 3,
1538
- filter: [ 'monitor', 'screen', 'desktop', 'computer', 'demo', 'device' ],
1539
- categories: [ 'Web Application Icons' ] },
1540
- { name: 'Laptop',
1541
- id: 'laptop',
1542
- unicode: 'f109',
1543
- created: 3,
1544
- filter: [ 'demo', 'computer', 'device' ],
1545
- categories: [ 'Web Application Icons' ] },
1546
- { name: 'tablet',
1547
- id: 'tablet',
1548
- unicode: 'f10a',
1549
- created: 3,
1550
- filter: [ 'ipad', 'device' ],
1551
- categories: [ 'Web Application Icons' ] },
1552
- { name: 'Mobile Phone',
1553
- id: 'mobile',
1554
- unicode: 'f10b',
1555
- created: 3,
1556
- filter:
1557
- [ 'cell phone',
1558
- 'cellphone',
1559
- 'text',
1560
- 'call',
1561
- 'iphone',
1562
- 'number',
1563
- 'telephone' ],
1564
- aliases: [ 'mobile-phone' ],
1565
- categories: [ 'Web Application Icons' ] },
1566
- { name: 'Circle Outlined',
1567
- id: 'circle-o',
1568
- unicode: 'f10c',
1569
- created: 3,
1570
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1571
- { name: 'quote-left',
1572
- id: 'quote-left',
1573
- unicode: 'f10d',
1574
- created: 3,
1575
- categories: [ 'Web Application Icons' ] },
1576
- { name: 'quote-right',
1577
- id: 'quote-right',
1578
- unicode: 'f10e',
1579
- created: 3,
1580
- categories: [ 'Web Application Icons' ] },
1581
- { name: 'Spinner',
1582
- id: 'spinner',
1583
- unicode: 'f110',
1584
- created: 3,
1585
- filter: [ 'loading', 'progress' ],
1586
- categories: [ 'Web Application Icons', 'Spinner Icons' ] },
1587
- { name: 'Circle',
1588
- id: 'circle',
1589
- unicode: 'f111',
1590
- created: 3,
1591
- filter: [ 'dot', 'notification' ],
1592
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1593
- { name: 'Reply',
1594
- id: 'reply',
1595
- unicode: 'f112',
1596
- created: 3,
1597
- aliases: [ 'mail-reply' ],
1598
- categories: [ 'Web Application Icons' ] },
1599
- { name: 'GitHub Alt',
1600
- id: 'github-alt',
1601
- unicode: 'f113',
1602
- created: 3,
1603
- url: 'github.com/logos',
1604
- filter: [ 'octocat' ],
1605
- categories: [ 'Brand Icons' ] },
1606
- { name: 'Folder Outlined',
1607
- id: 'folder-o',
1608
- unicode: 'f114',
1609
- created: 3,
1610
- categories: [ 'Web Application Icons' ] },
1611
- { name: 'Folder Open Outlined',
1612
- id: 'folder-open-o',
1613
- unicode: 'f115',
1614
- created: 3,
1615
- categories: [ 'Web Application Icons' ] },
1616
- { name: 'Smile Outlined',
1617
- id: 'smile-o',
1618
- unicode: 'f118',
1619
- created: 3.1,
1620
- filter: [ 'face', 'emoticon', 'happy', 'approve', 'satisfied', 'rating' ],
1621
- categories: [ 'Web Application Icons' ] },
1622
- { name: 'Frown Outlined',
1623
- id: 'frown-o',
1624
- unicode: 'f119',
1625
- created: 3.1,
1626
- filter: [ 'face', 'emoticon', 'sad', 'disapprove', 'rating' ],
1627
- categories: [ 'Web Application Icons' ] },
1628
- { name: 'Meh Outlined',
1629
- id: 'meh-o',
1630
- unicode: 'f11a',
1631
- created: 3.1,
1632
- filter: [ 'face', 'emoticon', 'rating', 'neutral' ],
1633
- categories: [ 'Web Application Icons' ] },
1634
- { name: 'Gamepad',
1635
- id: 'gamepad',
1636
- unicode: 'f11b',
1637
- created: 3.1,
1638
- filter: [ 'controller' ],
1639
- categories: [ 'Web Application Icons' ] },
1640
- { name: 'Keyboard Outlined',
1641
- id: 'keyboard-o',
1642
- unicode: 'f11c',
1643
- created: 3.1,
1644
- filter: [ 'type', 'input' ],
1645
- categories: [ 'Web Application Icons' ] },
1646
- { name: 'Flag Outlined',
1647
- id: 'flag-o',
1648
- unicode: 'f11d',
1649
- created: 3.1,
1650
- filter: [ 'report', 'notification' ],
1651
- categories: [ 'Web Application Icons' ] },
1652
- { name: 'flag-checkered',
1653
- id: 'flag-checkered',
1654
- unicode: 'f11e',
1655
- created: 3.1,
1656
- filter: [ 'report', 'notification', 'notify' ],
1657
- categories: [ 'Web Application Icons' ] },
1658
- { name: 'Terminal',
1659
- id: 'terminal',
1660
- unicode: 'f120',
1661
- created: 3.1,
1662
- filter: [ 'command', 'prompt', 'code' ],
1663
- categories: [ 'Web Application Icons' ] },
1664
- { name: 'Code',
1665
- id: 'code',
1666
- unicode: 'f121',
1667
- created: 3.1,
1668
- filter: [ 'html', 'brackets' ],
1669
- categories: [ 'Web Application Icons' ] },
1670
- { name: 'reply-all',
1671
- id: 'reply-all',
1672
- unicode: 'f122',
1673
- created: 3.1,
1674
- aliases: [ 'mail-reply-all' ],
1675
- categories: [ 'Web Application Icons' ] },
1676
- { name: 'Star Half Outlined',
1677
- id: 'star-half-o',
1678
- unicode: 'f123',
1679
- created: 3.1,
1680
- filter: [ 'award', 'achievement', 'rating', 'score' ],
1681
- aliases: [ 'star-half-empty', 'star-half-full' ],
1682
- categories: [ 'Web Application Icons' ] },
1683
- { name: 'location-arrow',
1684
- id: 'location-arrow',
1685
- unicode: 'f124',
1686
- created: 3.1,
1687
- filter: [ 'map', 'coordinates', 'location', 'address', 'place', 'where' ],
1688
- categories: [ 'Web Application Icons' ] },
1689
- { name: 'crop',
1690
- id: 'crop',
1691
- unicode: 'f125',
1692
- created: 3.1,
1693
- categories: [ 'Web Application Icons' ] },
1694
- { name: 'code-fork',
1695
- id: 'code-fork',
1696
- unicode: 'f126',
1697
- created: 3.1,
1698
- filter:
1699
- [ 'git',
1700
- 'fork',
1701
- 'vcs',
1702
- 'svn',
1703
- 'github',
1704
- 'rebase',
1705
- 'version',
1706
- 'merge' ],
1707
- categories: [ 'Web Application Icons' ] },
1708
- { name: 'Chain Broken',
1709
- id: 'chain-broken',
1710
- unicode: 'f127',
1711
- created: 3.1,
1712
- filter: [ 'remove' ],
1713
- aliases: [ 'unlink' ],
1714
- categories: [ 'Text Editor Icons' ] },
1715
- { name: 'Question',
1716
- id: 'question',
1717
- unicode: 'f128',
1718
- created: 3.1,
1719
- filter: [ 'help', 'information', 'unknown', 'support' ],
1720
- categories: [ 'Web Application Icons' ] },
1721
- { name: 'Info',
1722
- id: 'info',
1723
- unicode: 'f129',
1724
- created: 3.1,
1725
- filter: [ 'help', 'information', 'more', 'details' ],
1726
- categories: [ 'Web Application Icons' ] },
1727
- { name: 'exclamation',
1728
- id: 'exclamation',
1729
- unicode: 'f12a',
1730
- created: 3.1,
1731
- filter: [ 'warning', 'error', 'problem', 'notification', 'notify', 'alert' ],
1732
- categories: [ 'Web Application Icons' ] },
1733
- { name: 'superscript',
1734
- id: 'superscript',
1735
- unicode: 'f12b',
1736
- created: 3.1,
1737
- filter: [ 'exponential' ],
1738
- categories: [ 'Text Editor Icons' ] },
1739
- { name: 'subscript',
1740
- id: 'subscript',
1741
- unicode: 'f12c',
1742
- created: 3.1,
1743
- categories: [ 'Text Editor Icons' ] },
1744
- { name: 'eraser',
1745
- id: 'eraser',
1746
- unicode: 'f12d',
1747
- created: 3.1,
1748
- filter: [ 'remove', 'delete' ],
1749
- categories: [ 'Text Editor Icons', 'Web Application Icons' ] },
1750
- { name: 'Puzzle Piece',
1751
- id: 'puzzle-piece',
1752
- unicode: 'f12e',
1753
- created: 3.1,
1754
- filter: [ 'addon', 'add-on', 'section' ],
1755
- categories: [ 'Web Application Icons' ] },
1756
- { name: 'microphone',
1757
- id: 'microphone',
1758
- unicode: 'f130',
1759
- created: 3.1,
1760
- filter: [ 'record', 'voice', 'sound' ],
1761
- categories: [ 'Web Application Icons' ] },
1762
- { name: 'Microphone Slash',
1763
- id: 'microphone-slash',
1764
- unicode: 'f131',
1765
- created: 3.1,
1766
- filter: [ 'record', 'voice', 'sound', 'mute' ],
1767
- categories: [ 'Web Application Icons' ] },
1768
- { name: 'shield',
1769
- id: 'shield',
1770
- unicode: 'f132',
1771
- created: 3.1,
1772
- filter: [ 'award', 'achievement', 'winner' ],
1773
- categories: [ 'Web Application Icons' ] },
1774
- { name: 'calendar-o',
1775
- id: 'calendar-o',
1776
- unicode: 'f133',
1777
- created: 3.1,
1778
- filter: [ 'date', 'time', 'when', 'event' ],
1779
- categories: [ 'Web Application Icons' ] },
1780
- { name: 'fire-extinguisher',
1781
- id: 'fire-extinguisher',
1782
- unicode: 'f134',
1783
- created: 3.1,
1784
- categories: [ 'Web Application Icons' ] },
1785
- { name: 'rocket',
1786
- id: 'rocket',
1787
- unicode: 'f135',
1788
- created: 3.1,
1789
- filter: [ 'app' ],
1790
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
1791
- { name: 'MaxCDN',
1792
- id: 'maxcdn',
1793
- unicode: 'f136',
1794
- created: 3.1,
1795
- categories: [ 'Brand Icons' ] },
1796
- { name: 'Chevron Circle Left',
1797
- id: 'chevron-circle-left',
1798
- unicode: 'f137',
1799
- created: 3.1,
1800
- filter: [ 'previous', 'back', 'arrow' ],
1801
- categories: [ 'Directional Icons' ] },
1802
- { name: 'Chevron Circle Right',
1803
- id: 'chevron-circle-right',
1804
- unicode: 'f138',
1805
- created: 3.1,
1806
- filter: [ 'next', 'forward', 'arrow' ],
1807
- categories: [ 'Directional Icons' ] },
1808
- { name: 'Chevron Circle Up',
1809
- id: 'chevron-circle-up',
1810
- unicode: 'f139',
1811
- created: 3.1,
1812
- filter: [ 'arrow' ],
1813
- categories: [ 'Directional Icons' ] },
1814
- { name: 'Chevron Circle Down',
1815
- id: 'chevron-circle-down',
1816
- unicode: 'f13a',
1817
- created: 3.1,
1818
- filter: [ 'more', 'dropdown', 'menu', 'arrow' ],
1819
- categories: [ 'Directional Icons' ] },
1820
- { name: 'HTML 5 Logo',
1821
- id: 'html5',
1822
- unicode: 'f13b',
1823
- created: 3.1,
1824
- code: [ 'code', 'html5' ],
1825
- categories: [ 'Brand Icons' ] },
1826
- { name: 'CSS 3 Logo',
1827
- id: 'css3',
1828
- unicode: 'f13c',
1829
- created: 3.1,
1830
- filter: [ 'code' ],
1831
- categories: [ 'Brand Icons' ] },
1832
- { name: 'Anchor',
1833
- id: 'anchor',
1834
- unicode: 'f13d',
1835
- created: 3.1,
1836
- filter: [ 'link' ],
1837
- categories: [ 'Web Application Icons' ] },
1838
- { name: 'Unlock Alt',
1839
- id: 'unlock-alt',
1840
- unicode: 'f13e',
1841
- created: 3.1,
1842
- filter: [ 'protect', 'admin', 'password', 'lock' ],
1843
- categories: [ 'Web Application Icons' ] },
1844
- { name: 'Bullseye',
1845
- id: 'bullseye',
1846
- unicode: 'f140',
1847
- created: 3.1,
1848
- filter: [ 'target' ],
1849
- categories: [ 'Web Application Icons' ] },
1850
- { name: 'Ellipsis Horizontal',
1851
- id: 'ellipsis-h',
1852
- unicode: 'f141',
1853
- created: 3.1,
1854
- filter: [ 'dots' ],
1855
- categories: [ 'Web Application Icons' ] },
1856
- { name: 'Ellipsis Vertical',
1857
- id: 'ellipsis-v',
1858
- unicode: 'f142',
1859
- created: 3.1,
1860
- filter: [ 'dots' ],
1861
- categories: [ 'Web Application Icons' ] },
1862
- { name: 'RSS Square',
1863
- id: 'rss-square',
1864
- unicode: 'f143',
1865
- created: 3.1,
1866
- filter: [ 'feed', 'blog' ],
1867
- categories: [ 'Web Application Icons' ] },
1868
- { name: 'Play Circle',
1869
- id: 'play-circle',
1870
- unicode: 'f144',
1871
- created: 3.1,
1872
- filter: [ 'start', 'playing' ],
1873
- categories: [ 'Video Player Icons' ] },
1874
- { name: 'Ticket',
1875
- id: 'ticket',
1876
- unicode: 'f145',
1877
- created: 3.1,
1878
- filter: [ 'movie', 'pass', 'support' ],
1879
- categories: [ 'Web Application Icons' ] },
1880
- { name: 'Minus Square',
1881
- id: 'minus-square',
1882
- unicode: 'f146',
1883
- created: 3.1,
1884
- filter: [ 'hide', 'minify', 'delete', 'remove', 'trash', 'hide', 'collapse' ],
1885
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1886
- { name: 'Minus Square Outlined',
1887
- id: 'minus-square-o',
1888
- unicode: 'f147',
1889
- created: 3.1,
1890
- filter: [ 'hide', 'minify', 'delete', 'remove', 'trash', 'hide', 'collapse' ],
1891
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1892
- { name: 'Level Up',
1893
- id: 'level-up',
1894
- unicode: 'f148',
1895
- created: 3.1,
1896
- filter: [ 'arrow' ],
1897
- categories: [ 'Web Application Icons' ] },
1898
- { name: 'Level Down',
1899
- id: 'level-down',
1900
- unicode: 'f149',
1901
- created: 3.1,
1902
- filter: [ 'arrow' ],
1903
- categories: [ 'Web Application Icons' ] },
1904
- { name: 'Check Square',
1905
- id: 'check-square',
1906
- unicode: 'f14a',
1907
- created: 3.1,
1908
- filter: [ 'checkmark', 'done', 'todo', 'agree', 'accept', 'confirm', 'ok' ],
1909
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
1910
- { name: 'Pencil Square',
1911
- id: 'pencil-square',
1912
- unicode: 'f14b',
1913
- created: 3.1,
1914
- filter: [ 'write', 'edit', 'update' ],
1915
- categories: [ 'Web Application Icons' ] },
1916
- { name: 'External Link Square',
1917
- id: 'external-link-square',
1918
- unicode: 'f14c',
1919
- created: 3.1,
1920
- filter: [ 'open', 'new' ],
1921
- categories: [ 'Web Application Icons' ] },
1922
- { name: 'Share Square',
1923
- id: 'share-square',
1924
- unicode: 'f14d',
1925
- created: 3.1,
1926
- filter: [ 'social', 'send' ],
1927
- categories: [ 'Web Application Icons' ] },
1928
- { name: 'Compass',
1929
- id: 'compass',
1930
- unicode: 'f14e',
1931
- created: 3.2,
1932
- filter: [ 'safari', 'directory', 'menu', 'location' ],
1933
- categories: [ 'Web Application Icons' ] },
1934
- { name: 'Caret Square Outlined Down',
1935
- id: 'caret-square-o-down',
1936
- unicode: 'f150',
1937
- created: 3.2,
1938
- aliases: [ 'toggle-down' ],
1939
- filter: [ 'more', 'dropdown', 'menu' ],
1940
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
1941
- { name: 'Caret Square Outlined Up',
1942
- id: 'caret-square-o-up',
1943
- unicode: 'f151',
1944
- created: 3.2,
1945
- aliases: [ 'toggle-up' ],
1946
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
1947
- { name: 'Caret Square Outlined Right',
1948
- id: 'caret-square-o-right',
1949
- unicode: 'f152',
1950
- created: 3.2,
1951
- filter: [ 'next', 'forward' ],
1952
- aliases: [ 'toggle-right' ],
1953
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
1954
- { name: 'Euro (EUR)',
1955
- id: 'eur',
1956
- unicode: 'f153',
1957
- created: 3.2,
1958
- aliases: [ 'euro' ],
1959
- categories: [ 'Currency Icons' ] },
1960
- { name: 'GBP',
1961
- id: 'gbp',
1962
- unicode: 'f154',
1963
- created: 3.2,
1964
- categories: [ 'Currency Icons' ] },
1965
- { name: 'US Dollar',
1966
- id: 'usd',
1967
- unicode: 'f155',
1968
- created: 3.2,
1969
- aliases: [ 'dollar' ],
1970
- categories: [ 'Currency Icons' ] },
1971
- { name: 'Indian Rupee (INR)',
1972
- id: 'inr',
1973
- unicode: 'f156',
1974
- created: 3.2,
1975
- aliases: [ 'rupee' ],
1976
- categories: [ 'Currency Icons' ] },
1977
- { name: 'Japanese Yen (JPY)',
1978
- id: 'jpy',
1979
- unicode: 'f157',
1980
- created: 3.2,
1981
- aliases: [ 'cny', 'rmb', 'yen' ],
1982
- categories: [ 'Currency Icons' ] },
1983
- { name: 'Russian Ruble (RUB)',
1984
- id: 'rub',
1985
- unicode: 'f158',
1986
- created: 4,
1987
- aliases: [ 'ruble', 'rouble' ],
1988
- categories: [ 'Currency Icons' ] },
1989
- { name: 'Korean Won (KRW)',
1990
- id: 'krw',
1991
- unicode: 'f159',
1992
- created: 3.2,
1993
- aliases: [ 'won' ],
1994
- categories: [ 'Currency Icons' ] },
1995
- { name: 'Bitcoin (BTC)',
1996
- id: 'btc',
1997
- unicode: 'f15a',
1998
- created: 3.2,
1999
- aliases: [ 'bitcoin' ],
2000
- categories: [ 'Currency Icons', 'Brand Icons' ] },
2001
- { name: 'File',
2002
- id: 'file',
2003
- unicode: 'f15b',
2004
- created: 3.2,
2005
- filter: [ 'new', 'page', 'pdf', 'document' ],
2006
- categories: [ 'Text Editor Icons', 'File Type Icons' ] },
2007
- { name: 'File Text',
2008
- id: 'file-text',
2009
- unicode: 'f15c',
2010
- created: 3.2,
2011
- filter: [ 'new', 'page', 'pdf', 'document' ],
2012
- categories: [ 'Text Editor Icons', 'File Type Icons' ] },
2013
- { name: 'Sort Alpha Ascending',
2014
- id: 'sort-alpha-asc',
2015
- unicode: 'f15d',
2016
- created: 3.2,
2017
- categories: [ 'Web Application Icons' ] },
2018
- { name: 'Sort Alpha Descending',
2019
- id: 'sort-alpha-desc',
2020
- unicode: 'f15e',
2021
- created: 3.2,
2022
- categories: [ 'Web Application Icons' ] },
2023
- { name: 'Sort Amount Ascending',
2024
- id: 'sort-amount-asc',
2025
- unicode: 'f160',
2026
- created: 3.2,
2027
- categories: [ 'Web Application Icons' ] },
2028
- { name: 'Sort Amount Descending',
2029
- id: 'sort-amount-desc',
2030
- unicode: 'f161',
2031
- created: 3.2,
2032
- categories: [ 'Web Application Icons' ] },
2033
- { name: 'Sort Numeric Ascending',
2034
- id: 'sort-numeric-asc',
2035
- unicode: 'f162',
2036
- created: 3.2,
2037
- filter: [ 'numbers' ],
2038
- categories: [ 'Web Application Icons' ] },
2039
- { name: 'Sort Numeric Descending',
2040
- id: 'sort-numeric-desc',
2041
- unicode: 'f163',
2042
- created: 3.2,
2043
- filter: [ 'numbers' ],
2044
- categories: [ 'Web Application Icons' ] },
2045
- { name: 'thumbs-up',
2046
- id: 'thumbs-up',
2047
- unicode: 'f164',
2048
- created: 3.2,
2049
- filter: [ 'like', 'favorite', 'approve', 'agree', 'hand' ],
2050
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
2051
- { name: 'thumbs-down',
2052
- id: 'thumbs-down',
2053
- unicode: 'f165',
2054
- created: 3.2,
2055
- filter: [ 'dislike', 'disapprove', 'disagree', 'hand' ],
2056
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
2057
- { name: 'YouTube Square',
2058
- id: 'youtube-square',
2059
- unicode: 'f166',
2060
- created: 3.2,
2061
- filter: [ 'video', 'film' ],
2062
- categories: [ 'Brand Icons' ] },
2063
- { name: 'YouTube',
2064
- id: 'youtube',
2065
- unicode: 'f167',
2066
- created: 3.2,
2067
- filter: [ 'video', 'film' ],
2068
- categories: [ 'Brand Icons' ] },
2069
- { name: 'Xing',
2070
- id: 'xing',
2071
- unicode: 'f168',
2072
- created: 3.2,
2073
- categories: [ 'Brand Icons' ] },
2074
- { name: 'Xing Square',
2075
- id: 'xing-square',
2076
- unicode: 'f169',
2077
- created: 3.2,
2078
- categories: [ 'Brand Icons' ] },
2079
- { name: 'YouTube Play',
2080
- id: 'youtube-play',
2081
- unicode: 'f16a',
2082
- created: 3.2,
2083
- filter: [ 'start', 'playing' ],
2084
- categories: [ 'Brand Icons', 'Video Player Icons' ] },
2085
- { name: 'Dropbox',
2086
- id: 'dropbox',
2087
- unicode: 'f16b',
2088
- created: 3.2,
2089
- categories: [ 'Brand Icons' ] },
2090
- { name: 'Stack Overflow',
2091
- id: 'stack-overflow',
2092
- unicode: 'f16c',
2093
- created: 3.2,
2094
- categories: [ 'Brand Icons' ] },
2095
- { name: 'Instagram',
2096
- id: 'instagram',
2097
- unicode: 'f16d',
2098
- created: 4.6,
2099
- categories: [ 'Brand Icons' ] },
2100
- { name: 'Flickr',
2101
- id: 'flickr',
2102
- unicode: 'f16e',
2103
- created: 3.2,
2104
- categories: [ 'Brand Icons' ] },
2105
- { name: 'App.net',
2106
- id: 'adn',
2107
- unicode: 'f170',
2108
- created: 3.2,
2109
- categories: [ 'Brand Icons' ] },
2110
- { name: 'Bitbucket',
2111
- id: 'bitbucket',
2112
- unicode: 'f171',
2113
- created: 3.2,
2114
- filter: [ 'git' ],
2115
- categories: [ 'Brand Icons' ] },
2116
- { name: 'Bitbucket Square',
2117
- id: 'bitbucket-square',
2118
- unicode: 'f172',
2119
- created: 3.2,
2120
- filter: [ 'git' ],
2121
- categories: [ 'Brand Icons' ] },
2122
- { name: 'Tumblr',
2123
- id: 'tumblr',
2124
- unicode: 'f173',
2125
- created: 3.2,
2126
- categories: [ 'Brand Icons' ] },
2127
- { name: 'Tumblr Square',
2128
- id: 'tumblr-square',
2129
- unicode: 'f174',
2130
- created: 3.2,
2131
- categories: [ 'Brand Icons' ] },
2132
- { name: 'Long Arrow Down',
2133
- id: 'long-arrow-down',
2134
- unicode: 'f175',
2135
- created: 3.2,
2136
- categories: [ 'Directional Icons' ] },
2137
- { name: 'Long Arrow Up',
2138
- id: 'long-arrow-up',
2139
- unicode: 'f176',
2140
- created: 3.2,
2141
- categories: [ 'Directional Icons' ] },
2142
- { name: 'Long Arrow Left',
2143
- id: 'long-arrow-left',
2144
- unicode: 'f177',
2145
- created: 3.2,
2146
- filter: [ 'previous', 'back' ],
2147
- categories: [ 'Directional Icons' ] },
2148
- { name: 'Long Arrow Right',
2149
- id: 'long-arrow-right',
2150
- unicode: 'f178',
2151
- created: 3.2,
2152
- categories: [ 'Directional Icons' ] },
2153
- { name: 'Apple',
2154
- id: 'apple',
2155
- unicode: 'f179',
2156
- created: 3.2,
2157
- filter: [ 'osx', 'food' ],
2158
- categories: [ 'Brand Icons' ] },
2159
- { name: 'Windows',
2160
- id: 'windows',
2161
- unicode: 'f17a',
2162
- created: 3.2,
2163
- filter: [ 'microsoft' ],
2164
- categories: [ 'Brand Icons' ] },
2165
- { name: 'Android',
2166
- id: 'android',
2167
- unicode: 'f17b',
2168
- created: 3.2,
2169
- filter: [ 'robot' ],
2170
- categories: [ 'Brand Icons' ] },
2171
- { name: 'Linux',
2172
- id: 'linux',
2173
- unicode: 'f17c',
2174
- created: 3.2,
2175
- filter: [ 'tux' ],
2176
- categories: [ 'Brand Icons' ] },
2177
- { name: 'Dribbble',
2178
- id: 'dribbble',
2179
- unicode: 'f17d',
2180
- created: 3.2,
2181
- categories: [ 'Brand Icons' ] },
2182
- { name: 'Skype',
2183
- id: 'skype',
2184
- unicode: 'f17e',
2185
- created: 3.2,
2186
- categories: [ 'Brand Icons' ] },
2187
- { name: 'Foursquare',
2188
- id: 'foursquare',
2189
- unicode: 'f180',
2190
- created: 3.2,
2191
- categories: [ 'Brand Icons' ] },
2192
- { name: 'Trello',
2193
- id: 'trello',
2194
- unicode: 'f181',
2195
- created: 3.2,
2196
- categories: [ 'Brand Icons' ] },
2197
- { name: 'Female',
2198
- id: 'female',
2199
- unicode: 'f182',
2200
- created: 3.2,
2201
- filter: [ 'woman', 'user', 'person', 'profile' ],
2202
- categories: [ 'Web Application Icons' ] },
2203
- { name: 'Male',
2204
- id: 'male',
2205
- unicode: 'f183',
2206
- created: 3.2,
2207
- filter: [ 'man', 'user', 'person', 'profile' ],
2208
- categories: [ 'Web Application Icons' ] },
2209
- { name: 'Gratipay (Gittip)',
2210
- id: 'gratipay',
2211
- unicode: 'f184',
2212
- created: 3.2,
2213
- aliases: [ 'gittip' ],
2214
- filter: [ 'heart', 'like', 'favorite', 'love' ],
2215
- categories: [ 'Brand Icons' ] },
2216
- { name: 'Sun Outlined',
2217
- id: 'sun-o',
2218
- unicode: 'f185',
2219
- created: 3.2,
2220
- filter: [ 'weather', 'contrast', 'lighter', 'brighten', 'day' ],
2221
- categories: [ 'Web Application Icons' ] },
2222
- { name: 'Moon Outlined',
2223
- id: 'moon-o',
2224
- unicode: 'f186',
2225
- created: 3.2,
2226
- filter: [ 'night', 'darker', 'contrast' ],
2227
- categories: [ 'Web Application Icons' ] },
2228
- { name: 'Archive',
2229
- id: 'archive',
2230
- unicode: 'f187',
2231
- created: 3.2,
2232
- filter: [ 'box', 'storage' ],
2233
- categories: [ 'Web Application Icons' ] },
2234
- { name: 'Bug',
2235
- id: 'bug',
2236
- unicode: 'f188',
2237
- created: 3.2,
2238
- filter: [ 'report', 'insect' ],
2239
- categories: [ 'Web Application Icons' ] },
2240
- { name: 'VK',
2241
- id: 'vk',
2242
- unicode: 'f189',
2243
- created: 3.2,
2244
- categories: [ 'Brand Icons' ] },
2245
- { name: 'Weibo',
2246
- id: 'weibo',
2247
- unicode: 'f18a',
2248
- created: 3.2,
2249
- categories: [ 'Brand Icons' ] },
2250
- { name: 'Renren',
2251
- id: 'renren',
2252
- unicode: 'f18b',
2253
- created: 3.2,
2254
- categories: [ 'Brand Icons' ] },
2255
- { name: 'Pagelines',
2256
- id: 'pagelines',
2257
- unicode: 'f18c',
2258
- created: 4,
2259
- filter: [ 'leaf', 'leaves', 'tree', 'plant', 'eco', 'nature' ],
2260
- categories: [ 'Brand Icons' ] },
2261
- { name: 'Stack Exchange',
2262
- id: 'stack-exchange',
2263
- unicode: 'f18d',
2264
- created: 4,
2265
- categories: [ 'Brand Icons' ] },
2266
- { name: 'Arrow Circle Outlined Right',
2267
- id: 'arrow-circle-o-right',
2268
- unicode: 'f18e',
2269
- created: 4,
2270
- filter: [ 'next', 'forward' ],
2271
- categories: [ 'Directional Icons' ] },
2272
- { name: 'Arrow Circle Outlined Left',
2273
- id: 'arrow-circle-o-left',
2274
- unicode: 'f190',
2275
- created: 4,
2276
- filter: [ 'previous', 'back' ],
2277
- categories: [ 'Directional Icons' ] },
2278
- { name: 'Caret Square Outlined Left',
2279
- id: 'caret-square-o-left',
2280
- unicode: 'f191',
2281
- created: 4,
2282
- filter: [ 'previous', 'back' ],
2283
- aliases: [ 'toggle-left' ],
2284
- categories: [ 'Web Application Icons', 'Directional Icons' ] },
2285
- { name: 'Dot Circle Outlined',
2286
- id: 'dot-circle-o',
2287
- unicode: 'f192',
2288
- created: 4,
2289
- filter: [ 'target', 'bullseye', 'notification' ],
2290
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
2291
- { name: 'Wheelchair',
2292
- id: 'wheelchair',
2293
- unicode: 'f193',
2294
- created: 4,
2295
- filter: [ 'handicap', 'person' ],
2296
- categories:
2297
- [ 'Web Application Icons',
2298
- 'Medical Icons',
2299
- 'Transportation Icons',
2300
- 'Accessibility Icons' ] },
2301
- { name: 'Vimeo Square',
2302
- id: 'vimeo-square',
2303
- unicode: 'f194',
2304
- created: 4,
2305
- categories: [ 'Brand Icons' ] },
2306
- { name: 'Turkish Lira (TRY)',
2307
- id: 'try',
2308
- unicode: 'f195',
2309
- created: 4,
2310
- aliases: [ 'turkish-lira' ],
2311
- categories: [ 'Currency Icons' ] },
2312
- { name: 'Plus Square Outlined',
2313
- id: 'plus-square-o',
2314
- unicode: 'f196',
2315
- created: 4,
2316
- filter: [ 'add', 'new', 'create', 'expand' ],
2317
- categories: [ 'Web Application Icons', 'Form Control Icons' ] },
2318
- { name: 'Space Shuttle',
2319
- id: 'space-shuttle',
2320
- unicode: 'f197',
2321
- created: 4.1,
2322
- filter: null,
2323
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2324
- { name: 'Slack Logo',
2325
- id: 'slack',
2326
- unicode: 'f198',
2327
- created: 4.1,
2328
- filter: [ 'hashtag', 'anchor', 'hash' ],
2329
- categories: [ 'Brand Icons' ] },
2330
- { name: 'Envelope Square',
2331
- id: 'envelope-square',
2332
- unicode: 'f199',
2333
- created: 4.1,
2334
- categories: [ 'Web Application Icons' ] },
2335
- { name: 'WordPress Logo',
2336
- id: 'wordpress',
2337
- unicode: 'f19a',
2338
- created: 4.1,
2339
- categories: [ 'Brand Icons' ] },
2340
- { name: 'OpenID',
2341
- id: 'openid',
2342
- unicode: 'f19b',
2343
- created: 4.1,
2344
- categories: [ 'Brand Icons' ] },
2345
- { name: 'University',
2346
- id: 'university',
2347
- unicode: 'f19c',
2348
- created: 4.1,
2349
- aliases: [ 'institution', 'bank' ],
2350
- categories: [ 'Web Application Icons' ] },
2351
- { name: 'Graduation Cap',
2352
- id: 'graduation-cap',
2353
- unicode: 'f19d',
2354
- created: 4.1,
2355
- aliases: [ 'mortar-board' ],
2356
- filter: [ 'learning', 'school', 'student' ],
2357
- categories: [ 'Web Application Icons' ] },
2358
- { name: 'Yahoo Logo',
2359
- id: 'yahoo',
2360
- unicode: 'f19e',
2361
- created: 4.1,
2362
- categories: [ 'Brand Icons' ] },
2363
- { name: 'Google Logo',
2364
- id: 'google',
2365
- unicode: 'f1a0',
2366
- created: 4.1,
2367
- categories: [ 'Brand Icons' ] },
2368
- { name: 'reddit Logo',
2369
- id: 'reddit',
2370
- unicode: 'f1a1',
2371
- created: 4.1,
2372
- categories: [ 'Brand Icons' ] },
2373
- { name: 'reddit Square',
2374
- id: 'reddit-square',
2375
- unicode: 'f1a2',
2376
- created: 4.1,
2377
- categories: [ 'Brand Icons' ] },
2378
- { name: 'StumbleUpon Circle',
2379
- id: 'stumbleupon-circle',
2380
- unicode: 'f1a3',
2381
- created: 4.1,
2382
- categories: [ 'Brand Icons' ] },
2383
- { name: 'StumbleUpon Logo',
2384
- id: 'stumbleupon',
2385
- unicode: 'f1a4',
2386
- created: 4.1,
2387
- categories: [ 'Brand Icons' ] },
2388
- { name: 'Delicious Logo',
2389
- id: 'delicious',
2390
- unicode: 'f1a5',
2391
- created: 4.1,
2392
- categories: [ 'Brand Icons' ] },
2393
- { name: 'Digg Logo',
2394
- id: 'digg',
2395
- unicode: 'f1a6',
2396
- created: 4.1,
2397
- categories: [ 'Brand Icons' ] },
2398
- { name: 'Pied Piper PP Logo (Old)',
2399
- id: 'pied-piper-pp',
2400
- unicode: 'f1a7',
2401
- created: 4.1,
2402
- categories: [ 'Brand Icons' ] },
2403
- { name: 'Pied Piper Alternate Logo',
2404
- id: 'pied-piper-alt',
2405
- unicode: 'f1a8',
2406
- created: 4.1,
2407
- categories: [ 'Brand Icons' ] },
2408
- { name: 'Drupal Logo',
2409
- id: 'drupal',
2410
- unicode: 'f1a9',
2411
- created: 4.1,
2412
- categories: [ 'Brand Icons' ] },
2413
- { name: 'Joomla Logo',
2414
- id: 'joomla',
2415
- unicode: 'f1aa',
2416
- created: 4.1,
2417
- categories: [ 'Brand Icons' ] },
2418
- { name: 'Language',
2419
- id: 'language',
2420
- unicode: 'f1ab',
2421
- created: 4.1,
2422
- categories: [ 'Web Application Icons' ] },
2423
- { name: 'Fax',
2424
- id: 'fax',
2425
- unicode: 'f1ac',
2426
- created: 4.1,
2427
- categories: [ 'Web Application Icons' ] },
2428
- { name: 'Building',
2429
- id: 'building',
2430
- unicode: 'f1ad',
2431
- created: 4.1,
2432
- filter: [ 'work', 'business', 'apartment', 'office', 'company' ],
2433
- categories: [ 'Web Application Icons' ] },
2434
- { name: 'Child',
2435
- id: 'child',
2436
- unicode: 'f1ae',
2437
- created: 4.1,
2438
- categories: [ 'Web Application Icons' ] },
2439
- { name: 'Paw',
2440
- id: 'paw',
2441
- unicode: 'f1b0',
2442
- created: 4.1,
2443
- filter: [ 'pet' ],
2444
- categories: [ 'Web Application Icons' ] },
2445
- { name: 'spoon',
2446
- id: 'spoon',
2447
- unicode: 'f1b1',
2448
- created: 4.1,
2449
- categories: [ 'Web Application Icons' ] },
2450
- { name: 'Cube',
2451
- id: 'cube',
2452
- unicode: 'f1b2',
2453
- created: 4.1,
2454
- categories: [ 'Web Application Icons' ] },
2455
- { name: 'Cubes',
2456
- id: 'cubes',
2457
- unicode: 'f1b3',
2458
- created: 4.1,
2459
- categories: [ 'Web Application Icons' ] },
2460
- { name: 'Behance',
2461
- id: 'behance',
2462
- unicode: 'f1b4',
2463
- created: 4.1,
2464
- categories: [ 'Brand Icons' ] },
2465
- { name: 'Behance Square',
2466
- id: 'behance-square',
2467
- unicode: 'f1b5',
2468
- created: 4.1,
2469
- categories: [ 'Brand Icons' ] },
2470
- { name: 'Steam',
2471
- id: 'steam',
2472
- unicode: 'f1b6',
2473
- created: 4.1,
2474
- categories: [ 'Brand Icons' ] },
2475
- { name: 'Steam Square',
2476
- id: 'steam-square',
2477
- unicode: 'f1b7',
2478
- created: 4.1,
2479
- categories: [ 'Brand Icons' ] },
2480
- { name: 'Recycle',
2481
- id: 'recycle',
2482
- unicode: 'f1b8',
2483
- created: 4.1,
2484
- categories: [ 'Web Application Icons' ] },
2485
- { name: 'Car',
2486
- id: 'car',
2487
- unicode: 'f1b9',
2488
- created: 4.1,
2489
- aliases: [ 'automobile' ],
2490
- filter: [ 'vehicle' ],
2491
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2492
- { name: 'Taxi',
2493
- id: 'taxi',
2494
- unicode: 'f1ba',
2495
- created: 4.1,
2496
- aliases: [ 'cab' ],
2497
- filter: [ 'vehicle' ],
2498
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2499
- { name: 'Tree',
2500
- id: 'tree',
2501
- unicode: 'f1bb',
2502
- created: 4.1,
2503
- categories: [ 'Web Application Icons' ] },
2504
- { name: 'Spotify',
2505
- id: 'spotify',
2506
- unicode: 'f1bc',
2507
- created: 4.1,
2508
- categories: [ 'Brand Icons' ] },
2509
- { name: 'deviantART',
2510
- id: 'deviantart',
2511
- unicode: 'f1bd',
2512
- created: 4.1,
2513
- categories: [ 'Brand Icons' ] },
2514
- { name: 'SoundCloud',
2515
- id: 'soundcloud',
2516
- unicode: 'f1be',
2517
- created: 4.1,
2518
- categories: [ 'Brand Icons' ] },
2519
- { name: 'Database',
2520
- id: 'database',
2521
- unicode: 'f1c0',
2522
- created: 4.1,
2523
- categories: [ 'Web Application Icons' ] },
2524
- { name: 'PDF File Outlined',
2525
- id: 'file-pdf-o',
2526
- unicode: 'f1c1',
2527
- created: 4.1,
2528
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2529
- { name: 'Word File Outlined',
2530
- id: 'file-word-o',
2531
- unicode: 'f1c2',
2532
- created: 4.1,
2533
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2534
- { name: 'Excel File Outlined',
2535
- id: 'file-excel-o',
2536
- unicode: 'f1c3',
2537
- created: 4.1,
2538
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2539
- { name: 'Powerpoint File Outlined',
2540
- id: 'file-powerpoint-o',
2541
- unicode: 'f1c4',
2542
- created: 4.1,
2543
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2544
- { name: 'Image File Outlined',
2545
- id: 'file-image-o',
2546
- unicode: 'f1c5',
2547
- created: 4.1,
2548
- aliases: [ 'file-photo-o', 'file-picture-o' ],
2549
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2550
- { name: 'Archive File Outlined',
2551
- id: 'file-archive-o',
2552
- unicode: 'f1c6',
2553
- created: 4.1,
2554
- aliases: [ 'file-zip-o' ],
2555
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2556
- { name: 'Audio File Outlined',
2557
- id: 'file-audio-o',
2558
- unicode: 'f1c7',
2559
- created: 4.1,
2560
- aliases: [ 'file-sound-o' ],
2561
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2562
- { name: 'Video File Outlined',
2563
- id: 'file-video-o',
2564
- unicode: 'f1c8',
2565
- created: 4.1,
2566
- aliases: [ 'file-movie-o' ],
2567
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2568
- { name: 'Code File Outlined',
2569
- id: 'file-code-o',
2570
- unicode: 'f1c9',
2571
- created: 4.1,
2572
- categories: [ 'Web Application Icons', 'File Type Icons' ] },
2573
- { name: 'Vine',
2574
- id: 'vine',
2575
- unicode: 'f1ca',
2576
- created: 4.1,
2577
- categories: [ 'Brand Icons' ] },
2578
- { name: 'Codepen',
2579
- id: 'codepen',
2580
- unicode: 'f1cb',
2581
- created: 4.1,
2582
- categories: [ 'Brand Icons' ] },
2583
- { name: 'jsFiddle',
2584
- id: 'jsfiddle',
2585
- unicode: 'f1cc',
2586
- created: 4.1,
2587
- categories: [ 'Brand Icons' ] },
2588
- { name: 'Life Ring',
2589
- id: 'life-ring',
2590
- unicode: 'f1cd',
2591
- created: 4.1,
2592
- aliases: [ 'life-bouy', 'life-buoy', 'life-saver', 'support' ],
2593
- categories: [ 'Web Application Icons' ] },
2594
- { name: 'Circle Outlined Notched',
2595
- id: 'circle-o-notch',
2596
- unicode: 'f1ce',
2597
- created: 4.1,
2598
- categories: [ 'Web Application Icons', 'Spinner Icons' ] },
2599
- { name: 'Rebel Alliance',
2600
- id: 'rebel',
2601
- unicode: 'f1d0',
2602
- created: 4.1,
2603
- aliases: [ 'ra', 'resistance' ],
2604
- categories: [ 'Brand Icons' ] },
2605
- { name: 'Galactic Empire',
2606
- id: 'empire',
2607
- unicode: 'f1d1',
2608
- created: 4.1,
2609
- aliases: [ 'ge' ],
2610
- categories: [ 'Brand Icons' ] },
2611
- { name: 'Git Square',
2612
- id: 'git-square',
2613
- unicode: 'f1d2',
2614
- created: 4.1,
2615
- categories: [ 'Brand Icons' ] },
2616
- { name: 'Git',
2617
- id: 'git',
2618
- unicode: 'f1d3',
2619
- created: 4.1,
2620
- categories: [ 'Brand Icons' ] },
2621
- { name: 'Hacker News',
2622
- id: 'hacker-news',
2623
- unicode: 'f1d4',
2624
- created: 4.1,
2625
- aliases: [ 'y-combinator-square', 'yc-square' ],
2626
- categories: [ 'Brand Icons' ] },
2627
- { name: 'Tencent Weibo',
2628
- id: 'tencent-weibo',
2629
- unicode: 'f1d5',
2630
- created: 4.1,
2631
- categories: [ 'Brand Icons' ] },
2632
- { name: 'QQ',
2633
- id: 'qq',
2634
- unicode: 'f1d6',
2635
- created: 4.1,
2636
- categories: [ 'Brand Icons' ] },
2637
- { name: 'Weixin (WeChat)',
2638
- id: 'weixin',
2639
- unicode: 'f1d7',
2640
- created: 4.1,
2641
- aliases: [ 'wechat' ],
2642
- categories: [ 'Brand Icons' ] },
2643
- { name: 'Paper Plane',
2644
- id: 'paper-plane',
2645
- unicode: 'f1d8',
2646
- created: 4.1,
2647
- aliases: [ 'send' ],
2648
- categories: [ 'Web Application Icons' ] },
2649
- { name: 'Paper Plane Outlined',
2650
- id: 'paper-plane-o',
2651
- unicode: 'f1d9',
2652
- created: 4.1,
2653
- aliases: [ 'send-o' ],
2654
- categories: [ 'Web Application Icons' ] },
2655
- { name: 'History',
2656
- id: 'history',
2657
- unicode: 'f1da',
2658
- created: 4.1,
2659
- categories: [ 'Web Application Icons' ] },
2660
- { name: 'Circle Outlined Thin',
2661
- id: 'circle-thin',
2662
- unicode: 'f1db',
2663
- created: 4.1,
2664
- categories: [ 'Web Application Icons' ] },
2665
- { name: 'header',
2666
- id: 'header',
2667
- unicode: 'f1dc',
2668
- created: 4.1,
2669
- filter: [ 'heading' ],
2670
- categories: [ 'Text Editor Icons' ] },
2671
- { name: 'paragraph',
2672
- id: 'paragraph',
2673
- unicode: 'f1dd',
2674
- created: 4.1,
2675
- categories: [ 'Text Editor Icons' ] },
2676
- { name: 'Sliders',
2677
- id: 'sliders',
2678
- unicode: 'f1de',
2679
- created: 4.1,
2680
- filter: [ 'settings' ],
2681
- categories: [ 'Web Application Icons' ] },
2682
- { name: 'Share Alt',
2683
- id: 'share-alt',
2684
- unicode: 'f1e0',
2685
- created: 4.1,
2686
- categories: [ 'Web Application Icons', 'Brand Icons' ] },
2687
- { name: 'Share Alt Square',
2688
- id: 'share-alt-square',
2689
- unicode: 'f1e1',
2690
- created: 4.1,
2691
- categories: [ 'Web Application Icons', 'Brand Icons' ] },
2692
- { name: 'Bomb',
2693
- id: 'bomb',
2694
- unicode: 'f1e2',
2695
- created: 4.1,
2696
- categories: [ 'Web Application Icons' ] },
2697
- { name: 'Futbol Outlined',
2698
- id: 'futbol-o',
2699
- unicode: 'f1e3',
2700
- created: 4.2,
2701
- aliases: [ 'soccer-ball-o' ],
2702
- categories: [ 'Web Application Icons' ] },
2703
- { name: 'TTY',
2704
- id: 'tty',
2705
- unicode: 'f1e4',
2706
- created: 4.2,
2707
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
2708
- { name: 'Binoculars',
2709
- id: 'binoculars',
2710
- unicode: 'f1e5',
2711
- created: 4.2,
2712
- categories: [ 'Web Application Icons' ] },
2713
- { name: 'Plug',
2714
- id: 'plug',
2715
- unicode: 'f1e6',
2716
- created: 4.2,
2717
- filter: [ 'power', 'connect' ],
2718
- categories: [ 'Web Application Icons' ] },
2719
- { name: 'Slideshare',
2720
- id: 'slideshare',
2721
- unicode: 'f1e7',
2722
- created: 4.2,
2723
- categories: [ 'Brand Icons' ] },
2724
- { name: 'Twitch',
2725
- id: 'twitch',
2726
- unicode: 'f1e8',
2727
- created: 4.2,
2728
- categories: [ 'Brand Icons' ] },
2729
- { name: 'Yelp',
2730
- id: 'yelp',
2731
- unicode: 'f1e9',
2732
- created: 4.2,
2733
- categories: [ 'Brand Icons' ] },
2734
- { name: 'Newspaper Outlined',
2735
- id: 'newspaper-o',
2736
- unicode: 'f1ea',
2737
- created: 4.2,
2738
- filter: [ 'press' ],
2739
- categories: [ 'Web Application Icons' ] },
2740
- { name: 'WiFi',
2741
- id: 'wifi',
2742
- unicode: 'f1eb',
2743
- created: 4.2,
2744
- categories: [ 'Web Application Icons' ] },
2745
- { name: 'Calculator',
2746
- id: 'calculator',
2747
- unicode: 'f1ec',
2748
- created: 4.2,
2749
- categories: [ 'Web Application Icons' ] },
2750
- { name: 'Paypal',
2751
- id: 'paypal',
2752
- unicode: 'f1ed',
2753
- created: 4.2,
2754
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2755
- { name: 'Google Wallet',
2756
- id: 'google-wallet',
2757
- unicode: 'f1ee',
2758
- created: 4.2,
2759
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2760
- { name: 'Visa Credit Card',
2761
- id: 'cc-visa',
2762
- unicode: 'f1f0',
2763
- created: 4.2,
2764
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2765
- { name: 'MasterCard Credit Card',
2766
- id: 'cc-mastercard',
2767
- unicode: 'f1f1',
2768
- created: 4.2,
2769
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2770
- { name: 'Discover Credit Card',
2771
- id: 'cc-discover',
2772
- unicode: 'f1f2',
2773
- created: 4.2,
2774
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2775
- { name: 'American Express Credit Card',
2776
- id: 'cc-amex',
2777
- unicode: 'f1f3',
2778
- created: 4.2,
2779
- filter: [ 'amex' ],
2780
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2781
- { name: 'Paypal Credit Card',
2782
- id: 'cc-paypal',
2783
- unicode: 'f1f4',
2784
- created: 4.2,
2785
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2786
- { name: 'Stripe Credit Card',
2787
- id: 'cc-stripe',
2788
- unicode: 'f1f5',
2789
- created: 4.2,
2790
- categories: [ 'Brand Icons', 'Payment Icons' ] },
2791
- { name: 'Bell Slash',
2792
- id: 'bell-slash',
2793
- unicode: 'f1f6',
2794
- created: 4.2,
2795
- categories: [ 'Web Application Icons' ] },
2796
- { name: 'Bell Slash Outlined',
2797
- id: 'bell-slash-o',
2798
- unicode: 'f1f7',
2799
- created: 4.2,
2800
- categories: [ 'Web Application Icons' ] },
2801
- { name: 'Trash',
2802
- id: 'trash',
2803
- unicode: 'f1f8',
2804
- created: 4.2,
2805
- filter: [ 'garbage', 'delete', 'remove', 'hide' ],
2806
- categories: [ 'Web Application Icons' ] },
2807
- { name: 'Copyright',
2808
- id: 'copyright',
2809
- unicode: 'f1f9',
2810
- created: 4.2,
2811
- categories: [ 'Web Application Icons' ] },
2812
- { name: 'At',
2813
- id: 'at',
2814
- unicode: 'f1fa',
2815
- created: 4.2,
2816
- categories: [ 'Web Application Icons' ] },
2817
- { name: 'Eyedropper',
2818
- id: 'eyedropper',
2819
- unicode: 'f1fb',
2820
- created: 4.2,
2821
- categories: [ 'Web Application Icons' ] },
2822
- { name: 'Paint Brush',
2823
- id: 'paint-brush',
2824
- unicode: 'f1fc',
2825
- created: 4.2,
2826
- categories: [ 'Web Application Icons' ] },
2827
- { name: 'Birthday Cake',
2828
- id: 'birthday-cake',
2829
- unicode: 'f1fd',
2830
- created: 4.2,
2831
- categories: [ 'Web Application Icons' ] },
2832
- { name: 'Area Chart',
2833
- id: 'area-chart',
2834
- unicode: 'f1fe',
2835
- created: 4.2,
2836
- filter: [ 'graph', 'analytics' ],
2837
- categories: [ 'Web Application Icons', 'Chart Icons' ] },
2838
- { name: 'Pie Chart',
2839
- id: 'pie-chart',
2840
- unicode: 'f200',
2841
- created: 4.2,
2842
- filter: [ 'graph', 'analytics' ],
2843
- categories: [ 'Web Application Icons', 'Chart Icons' ] },
2844
- { name: 'Line Chart',
2845
- id: 'line-chart',
2846
- unicode: 'f201',
2847
- created: 4.2,
2848
- filter: [ 'graph', 'analytics' ],
2849
- categories: [ 'Web Application Icons', 'Chart Icons' ] },
2850
- { name: 'last.fm',
2851
- id: 'lastfm',
2852
- unicode: 'f202',
2853
- created: 4.2,
2854
- categories: [ 'Brand Icons' ] },
2855
- { name: 'last.fm Square',
2856
- id: 'lastfm-square',
2857
- unicode: 'f203',
2858
- created: 4.2,
2859
- categories: [ 'Brand Icons' ] },
2860
- { name: 'Toggle Off',
2861
- id: 'toggle-off',
2862
- unicode: 'f204',
2863
- created: 4.2,
2864
- categories: [ 'Web Application Icons' ] },
2865
- { name: 'Toggle On',
2866
- id: 'toggle-on',
2867
- unicode: 'f205',
2868
- created: 4.2,
2869
- categories: [ 'Web Application Icons' ] },
2870
- { name: 'Bicycle',
2871
- id: 'bicycle',
2872
- unicode: 'f206',
2873
- created: 4.2,
2874
- filter: [ 'vehicle', 'bike' ],
2875
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2876
- { name: 'Bus',
2877
- id: 'bus',
2878
- unicode: 'f207',
2879
- created: 4.2,
2880
- filter: [ 'vehicle' ],
2881
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2882
- { name: 'ioxhost',
2883
- id: 'ioxhost',
2884
- unicode: 'f208',
2885
- created: 4.2,
2886
- url: 'ioxhost.co.uk',
2887
- categories: [ 'Brand Icons' ] },
2888
- { name: 'AngelList',
2889
- id: 'angellist',
2890
- unicode: 'f209',
2891
- created: 4.2,
2892
- categories: [ 'Brand Icons' ] },
2893
- { name: 'Closed Captions',
2894
- id: 'cc',
2895
- unicode: 'f20a',
2896
- created: 4.2,
2897
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
2898
- { name: 'Shekel (ILS)',
2899
- id: 'ils',
2900
- unicode: 'f20b',
2901
- created: 4.2,
2902
- aliases: [ 'shekel', 'sheqel' ],
2903
- categories: [ 'Currency Icons' ] },
2904
- { name: 'meanpath',
2905
- id: 'meanpath',
2906
- unicode: 'f20c',
2907
- created: 4.2,
2908
- url: 'meanpath.com',
2909
- categories: [ 'Brand Icons' ] },
2910
- { name: 'BuySellAds',
2911
- id: 'buysellads',
2912
- unicode: 'f20d',
2913
- created: 4.3,
2914
- url: 'buysellads.com',
2915
- categories: [ 'Brand Icons' ] },
2916
- { name: 'Connect Develop',
2917
- id: 'connectdevelop',
2918
- unicode: 'f20e',
2919
- created: 4.3,
2920
- url: 'connectdevelop.com',
2921
- categories: [ 'Brand Icons' ] },
2922
- { name: 'DashCube',
2923
- id: 'dashcube',
2924
- unicode: 'f210',
2925
- created: 4.3,
2926
- url: 'dashcube.com',
2927
- categories: [ 'Brand Icons' ] },
2928
- { name: 'Forumbee',
2929
- id: 'forumbee',
2930
- unicode: 'f211',
2931
- created: 4.3,
2932
- url: 'forumbee.com',
2933
- categories: [ 'Brand Icons' ] },
2934
- { name: 'Leanpub',
2935
- id: 'leanpub',
2936
- unicode: 'f212',
2937
- created: 4.3,
2938
- url: 'leanpub.com',
2939
- categories: [ 'Brand Icons' ] },
2940
- { name: 'Sellsy',
2941
- id: 'sellsy',
2942
- unicode: 'f213',
2943
- created: 4.3,
2944
- url: 'sellsy.com',
2945
- categories: [ 'Brand Icons' ] },
2946
- { name: 'Shirts in Bulk',
2947
- id: 'shirtsinbulk',
2948
- unicode: 'f214',
2949
- created: 4.3,
2950
- url: 'shirtsinbulk.com',
2951
- categories: [ 'Brand Icons' ] },
2952
- { name: 'SimplyBuilt',
2953
- id: 'simplybuilt',
2954
- unicode: 'f215',
2955
- created: 4.3,
2956
- url: 'simplybuilt.com',
2957
- categories: [ 'Brand Icons' ] },
2958
- { name: 'skyatlas',
2959
- id: 'skyatlas',
2960
- unicode: 'f216',
2961
- created: 4.3,
2962
- url: 'skyatlas.com',
2963
- categories: [ 'Brand Icons' ] },
2964
- { name: 'Add to Shopping Cart',
2965
- id: 'cart-plus',
2966
- unicode: 'f217',
2967
- created: 4.3,
2968
- filter: [ 'add', 'shopping' ],
2969
- categories: [ 'Web Application Icons' ] },
2970
- { name: 'Shopping Cart Arrow Down',
2971
- id: 'cart-arrow-down',
2972
- unicode: 'f218',
2973
- created: 4.3,
2974
- filter: [ 'shopping' ],
2975
- categories: [ 'Web Application Icons' ] },
2976
- { name: 'Diamond',
2977
- id: 'diamond',
2978
- unicode: 'f219',
2979
- created: 4.3,
2980
- filter: [ 'gem', 'gemstone' ],
2981
- categories: [ 'Web Application Icons' ] },
2982
- { name: 'Ship',
2983
- id: 'ship',
2984
- unicode: 'f21a',
2985
- created: 4.3,
2986
- filter: [ 'boat', 'sea' ],
2987
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
2988
- { name: 'User Secret',
2989
- id: 'user-secret',
2990
- unicode: 'f21b',
2991
- created: 4.3,
2992
- filter: [ 'whisper', 'spy', 'incognito', 'privacy' ],
2993
- categories: [ 'Web Application Icons' ] },
2994
- { name: 'Motorcycle',
2995
- id: 'motorcycle',
2996
- unicode: 'f21c',
2997
- created: 4.3,
2998
- filter: [ 'vehicle', 'bike' ],
2999
- categories: [ 'Web Application Icons', 'Transportation Icons' ] },
3000
- { name: 'Street View',
3001
- id: 'street-view',
3002
- unicode: 'f21d',
3003
- created: 4.3,
3004
- filter: [ 'map' ],
3005
- categories: [ 'Web Application Icons' ] },
3006
- { name: 'Heartbeat',
3007
- id: 'heartbeat',
3008
- unicode: 'f21e',
3009
- created: 4.3,
3010
- filter: [ 'ekg' ],
3011
- categories: [ 'Web Application Icons', 'Medical Icons' ] },
3012
- { name: 'Venus',
3013
- id: 'venus',
3014
- unicode: 'f221',
3015
- created: 4.3,
3016
- filter: [ 'female' ],
3017
- categories: [ 'Gender Icons' ] },
3018
- { name: 'Mars',
3019
- id: 'mars',
3020
- unicode: 'f222',
3021
- created: 4.3,
3022
- filter: [ 'male' ],
3023
- categories: [ 'Gender Icons' ] },
3024
- { name: 'Mercury',
3025
- id: 'mercury',
3026
- unicode: 'f223',
3027
- created: 4.3,
3028
- filter: [ 'transgender' ],
3029
- categories: [ 'Gender Icons' ] },
3030
- { name: 'Transgender',
3031
- id: 'transgender',
3032
- unicode: 'f224',
3033
- created: 4.3,
3034
- aliases: [ 'intersex' ],
3035
- categories: [ 'Gender Icons' ] },
3036
- { name: 'Transgender Alt',
3037
- id: 'transgender-alt',
3038
- unicode: 'f225',
3039
- created: 4.3,
3040
- categories: [ 'Gender Icons' ] },
3041
- { name: 'Venus Double',
3042
- id: 'venus-double',
3043
- unicode: 'f226',
3044
- created: 4.3,
3045
- categories: [ 'Gender Icons' ] },
3046
- { name: 'Mars Double',
3047
- id: 'mars-double',
3048
- unicode: 'f227',
3049
- created: 4.3,
3050
- categories: [ 'Gender Icons' ] },
3051
- { name: 'Venus Mars',
3052
- id: 'venus-mars',
3053
- unicode: 'f228',
3054
- created: 4.3,
3055
- categories: [ 'Gender Icons' ] },
3056
- { name: 'Mars Stroke',
3057
- id: 'mars-stroke',
3058
- unicode: 'f229',
3059
- created: 4.3,
3060
- categories: [ 'Gender Icons' ] },
3061
- { name: 'Mars Stroke Vertical',
3062
- id: 'mars-stroke-v',
3063
- unicode: 'f22a',
3064
- created: 4.3,
3065
- categories: [ 'Gender Icons' ] },
3066
- { name: 'Mars Stroke Horizontal',
3067
- id: 'mars-stroke-h',
3068
- unicode: 'f22b',
3069
- created: 4.3,
3070
- categories: [ 'Gender Icons' ] },
3071
- { name: 'Neuter',
3072
- id: 'neuter',
3073
- unicode: 'f22c',
3074
- created: 4.3,
3075
- categories: [ 'Gender Icons' ] },
3076
- { name: 'Genderless',
3077
- id: 'genderless',
3078
- unicode: 'f22d',
3079
- created: 4.4,
3080
- categories: [ 'Gender Icons' ] },
3081
- { name: 'Facebook Official',
3082
- id: 'facebook-official',
3083
- unicode: 'f230',
3084
- created: 4.3,
3085
- categories: [ 'Brand Icons' ] },
3086
- { name: 'Pinterest P',
3087
- id: 'pinterest-p',
3088
- unicode: 'f231',
3089
- created: 4.3,
3090
- categories: [ 'Brand Icons' ] },
3091
- { name: 'What\'s App',
3092
- id: 'whatsapp',
3093
- unicode: 'f232',
3094
- created: 4.3,
3095
- categories: [ 'Brand Icons' ] },
3096
- { name: 'Server',
3097
- id: 'server',
3098
- unicode: 'f233',
3099
- created: 4.3,
3100
- categories: [ 'Web Application Icons' ] },
3101
- { name: 'Add User',
3102
- id: 'user-plus',
3103
- unicode: 'f234',
3104
- created: 4.3,
3105
- filter: [ 'sign up', 'signup' ],
3106
- categories: [ 'Web Application Icons' ] },
3107
- { name: 'Remove User',
3108
- id: 'user-times',
3109
- unicode: 'f235',
3110
- created: 4.3,
3111
- categories: [ 'Web Application Icons' ] },
3112
- { name: 'Bed',
3113
- id: 'bed',
3114
- unicode: 'f236',
3115
- created: 4.3,
3116
- filter: [ 'travel' ],
3117
- aliases: [ 'hotel' ],
3118
- categories: [ 'Web Application Icons' ] },
3119
- { name: 'Viacoin',
3120
- id: 'viacoin',
3121
- unicode: 'f237',
3122
- created: 4.3,
3123
- url: 'viacoin.org',
3124
- categories: [ 'Brand Icons' ] },
3125
- { name: 'Train',
3126
- id: 'train',
3127
- unicode: 'f238',
3128
- created: 4.3,
3129
- categories: [ 'Transportation Icons' ] },
3130
- { name: 'Subway',
3131
- id: 'subway',
3132
- unicode: 'f239',
3133
- created: 4.3,
3134
- categories: [ 'Transportation Icons' ] },
3135
- { name: 'Medium',
3136
- id: 'medium',
3137
- unicode: 'f23a',
3138
- created: 4.3,
3139
- categories: [ 'Brand Icons' ] },
3140
- { name: 'Y Combinator',
3141
- id: 'y-combinator',
3142
- unicode: 'f23b',
3143
- created: 4.4,
3144
- aliases: [ 'yc' ],
3145
- categories: [ 'Brand Icons' ] },
3146
- { name: 'Optin Monster',
3147
- id: 'optin-monster',
3148
- unicode: 'f23c',
3149
- created: 4.4,
3150
- url: 'optinmonster.com',
3151
- categories: [ 'Brand Icons' ] },
3152
- { name: 'OpenCart',
3153
- id: 'opencart',
3154
- unicode: 'f23d',
3155
- created: 4.4,
3156
- url: 'opencart.com',
3157
- categories: [ 'Brand Icons' ] },
3158
- { name: 'ExpeditedSSL',
3159
- id: 'expeditedssl',
3160
- unicode: 'f23e',
3161
- created: 4.4,
3162
- categories: [ 'Brand Icons' ] },
3163
- { name: 'Battery Full',
3164
- id: 'battery-full',
3165
- unicode: 'f240',
3166
- created: 4.4,
3167
- aliases: [ 'battery-4' ],
3168
- filter: [ 'power' ],
3169
- categories: [ 'Web Application Icons' ] },
3170
- { name: 'Battery 3/4 Full',
3171
- id: 'battery-three-quarters',
3172
- unicode: 'f241',
3173
- created: 4.4,
3174
- aliases: [ 'battery-3' ],
3175
- filter: [ 'power' ],
3176
- categories: [ 'Web Application Icons' ] },
3177
- { name: 'Battery 1/2 Full',
3178
- id: 'battery-half',
3179
- unicode: 'f242',
3180
- created: 4.4,
3181
- aliases: [ 'battery-2' ],
3182
- filter: [ 'power' ],
3183
- categories: [ 'Web Application Icons' ] },
3184
- { name: 'Battery 1/4 Full',
3185
- id: 'battery-quarter',
3186
- unicode: 'f243',
3187
- created: 4.4,
3188
- aliases: [ 'battery-1' ],
3189
- filter: [ 'power' ],
3190
- categories: [ 'Web Application Icons' ] },
3191
- { name: 'Battery Empty',
3192
- id: 'battery-empty',
3193
- unicode: 'f244',
3194
- created: 4.4,
3195
- aliases: [ 'battery-0' ],
3196
- filter: [ 'power' ],
3197
- categories: [ 'Web Application Icons' ] },
3198
- { name: 'Mouse Pointer',
3199
- id: 'mouse-pointer',
3200
- unicode: 'f245',
3201
- created: 4.4,
3202
- categories: [ 'Web Application Icons' ] },
3203
- { name: 'I Beam Cursor',
3204
- id: 'i-cursor',
3205
- unicode: 'f246',
3206
- created: 4.4,
3207
- categories: [ 'Web Application Icons' ] },
3208
- { name: 'Object Group',
3209
- id: 'object-group',
3210
- unicode: 'f247',
3211
- created: 4.4,
3212
- categories: [ 'Web Application Icons' ] },
3213
- { name: 'Object Ungroup',
3214
- id: 'object-ungroup',
3215
- unicode: 'f248',
3216
- created: 4.4,
3217
- categories: [ 'Web Application Icons' ] },
3218
- { name: 'Sticky Note',
3219
- id: 'sticky-note',
3220
- unicode: 'f249',
3221
- created: 4.4,
3222
- categories: [ 'Web Application Icons' ] },
3223
- { name: 'Sticky Note Outlined',
3224
- id: 'sticky-note-o',
3225
- unicode: 'f24a',
3226
- created: 4.4,
3227
- categories: [ 'Web Application Icons' ] },
3228
- { name: 'JCB Credit Card',
3229
- id: 'cc-jcb',
3230
- unicode: 'f24b',
3231
- created: 4.4,
3232
- categories: [ 'Brand Icons', 'Payment Icons' ] },
3233
- { name: 'Diner\'s Club Credit Card',
3234
- id: 'cc-diners-club',
3235
- unicode: 'f24c',
3236
- created: 4.4,
3237
- categories: [ 'Brand Icons', 'Payment Icons' ] },
3238
- { name: 'Clone',
3239
- id: 'clone',
3240
- unicode: 'f24d',
3241
- created: 4.4,
3242
- filter: [ 'copy' ],
3243
- categories: [ 'Web Application Icons' ] },
3244
- { name: 'Balance Scale',
3245
- id: 'balance-scale',
3246
- unicode: 'f24e',
3247
- created: 4.4,
3248
- categories: [ 'Web Application Icons' ] },
3249
- { name: 'Hourglass Outlined',
3250
- id: 'hourglass-o',
3251
- unicode: 'f250',
3252
- created: 4.4,
3253
- categories: [ 'Web Application Icons' ] },
3254
- { name: 'Hourglass Start',
3255
- id: 'hourglass-start',
3256
- unicode: 'f251',
3257
- created: 4.4,
3258
- aliases: [ 'hourglass-1' ],
3259
- categories: [ 'Web Application Icons' ] },
3260
- { name: 'Hourglass Half',
3261
- id: 'hourglass-half',
3262
- unicode: 'f252',
3263
- created: 4.4,
3264
- aliases: [ 'hourglass-2' ],
3265
- categories: [ 'Web Application Icons' ] },
3266
- { name: 'Hourglass End',
3267
- id: 'hourglass-end',
3268
- unicode: 'f253',
3269
- created: 4.4,
3270
- aliases: [ 'hourglass-3' ],
3271
- categories: [ 'Web Application Icons' ] },
3272
- { name: 'Hourglass',
3273
- id: 'hourglass',
3274
- unicode: 'f254',
3275
- created: 4.4,
3276
- categories: [ 'Web Application Icons' ] },
3277
- { name: 'Rock (Hand)',
3278
- id: 'hand-rock-o',
3279
- unicode: 'f255',
3280
- created: 4.4,
3281
- aliases: [ 'hand-grab-o' ],
3282
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3283
- { name: 'Paper (Hand)',
3284
- id: 'hand-paper-o',
3285
- unicode: 'f256',
3286
- created: 4.4,
3287
- aliases: [ 'hand-stop-o' ],
3288
- filter: [ 'stop' ],
3289
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3290
- { name: 'Scissors (Hand)',
3291
- id: 'hand-scissors-o',
3292
- unicode: 'f257',
3293
- created: 4.4,
3294
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3295
- { name: 'Lizard (Hand)',
3296
- id: 'hand-lizard-o',
3297
- unicode: 'f258',
3298
- created: 4.4,
3299
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3300
- { name: 'Spock (Hand)',
3301
- id: 'hand-spock-o',
3302
- unicode: 'f259',
3303
- created: 4.4,
3304
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3305
- { name: 'Hand Pointer',
3306
- id: 'hand-pointer-o',
3307
- unicode: 'f25a',
3308
- created: 4.4,
3309
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3310
- { name: 'Hand Peace',
3311
- id: 'hand-peace-o',
3312
- unicode: 'f25b',
3313
- created: 4.4,
3314
- categories: [ 'Web Application Icons', 'Hand Icons' ] },
3315
- { name: 'Trademark',
3316
- id: 'trademark',
3317
- unicode: 'f25c',
3318
- created: 4.4,
3319
- categories: [ 'Web Application Icons' ] },
3320
- { name: 'Registered Trademark',
3321
- id: 'registered',
3322
- unicode: 'f25d',
3323
- created: 4.4,
3324
- categories: [ 'Web Application Icons' ] },
3325
- { name: 'Creative Commons',
3326
- id: 'creative-commons',
3327
- unicode: 'f25e',
3328
- created: 4.4,
3329
- categories: [ 'Web Application Icons' ] },
3330
- { name: 'GG Currency',
3331
- id: 'gg',
3332
- unicode: 'f260',
3333
- created: 4.4,
3334
- categories: [ 'Currency Icons', 'Brand Icons' ] },
3335
- { name: 'GG Currency Circle',
3336
- id: 'gg-circle',
3337
- unicode: 'f261',
3338
- created: 4.4,
3339
- categories: [ 'Currency Icons', 'Brand Icons' ] },
3340
- { name: 'TripAdvisor',
3341
- id: 'tripadvisor',
3342
- unicode: 'f262',
3343
- created: 4.4,
3344
- categories: [ 'Brand Icons' ] },
3345
- { name: 'Odnoklassniki',
3346
- id: 'odnoklassniki',
3347
- unicode: 'f263',
3348
- created: 4.4,
3349
- categories: [ 'Brand Icons' ] },
3350
- { name: 'Odnoklassniki Square',
3351
- id: 'odnoklassniki-square',
3352
- unicode: 'f264',
3353
- created: 4.4,
3354
- categories: [ 'Brand Icons' ] },
3355
- { name: 'Get Pocket',
3356
- id: 'get-pocket',
3357
- unicode: 'f265',
3358
- created: 4.4,
3359
- categories: [ 'Brand Icons' ] },
3360
- { name: 'Wikipedia W',
3361
- id: 'wikipedia-w',
3362
- unicode: 'f266',
3363
- created: 4.4,
3364
- categories: [ 'Brand Icons' ] },
3365
- { name: 'Safari',
3366
- id: 'safari',
3367
- unicode: 'f267',
3368
- created: 4.4,
3369
- filter: [ 'browser' ],
3370
- categories: [ 'Brand Icons' ] },
3371
- { name: 'Chrome',
3372
- id: 'chrome',
3373
- unicode: 'f268',
3374
- created: 4.4,
3375
- filter: [ 'browser' ],
3376
- categories: [ 'Brand Icons' ] },
3377
- { name: 'Firefox',
3378
- id: 'firefox',
3379
- unicode: 'f269',
3380
- created: 4.4,
3381
- filter: [ 'browser' ],
3382
- categories: [ 'Brand Icons' ] },
3383
- { name: 'Opera',
3384
- id: 'opera',
3385
- unicode: 'f26a',
3386
- created: 4.4,
3387
- categories: [ 'Brand Icons' ] },
3388
- { name: 'Internet-explorer',
3389
- id: 'internet-explorer',
3390
- unicode: 'f26b',
3391
- created: 4.4,
3392
- filter: [ 'browser', 'ie' ],
3393
- categories: [ 'Brand Icons' ] },
3394
- { name: 'Television',
3395
- id: 'television',
3396
- unicode: 'f26c',
3397
- created: 4.4,
3398
- aliases: [ 'tv' ],
3399
- filter: [ 'display', 'computer', 'monitor' ],
3400
- categories: [ 'Web Application Icons' ] },
3401
- { name: 'Contao',
3402
- id: 'contao',
3403
- unicode: 'f26d',
3404
- created: 4.4,
3405
- categories: [ 'Brand Icons' ] },
3406
- { name: '500px',
3407
- id: '500px',
3408
- unicode: 'f26e',
3409
- created: 4.4,
3410
- categories: [ 'Brand Icons' ] },
3411
- { name: 'Amazon',
3412
- id: 'amazon',
3413
- unicode: 'f270',
3414
- created: 4.4,
3415
- categories: [ 'Brand Icons' ] },
3416
- { name: 'Calendar Plus Outlined',
3417
- id: 'calendar-plus-o',
3418
- unicode: 'f271',
3419
- created: 4.4,
3420
- categories: [ 'Web Application Icons' ] },
3421
- { name: 'Calendar Minus Outlined',
3422
- id: 'calendar-minus-o',
3423
- unicode: 'f272',
3424
- created: 4.4,
3425
- categories: [ 'Web Application Icons' ] },
3426
- { name: 'Calendar Times Outlined',
3427
- id: 'calendar-times-o',
3428
- unicode: 'f273',
3429
- created: 4.4,
3430
- categories: [ 'Web Application Icons' ] },
3431
- { name: 'Calendar Check Outlined',
3432
- id: 'calendar-check-o',
3433
- unicode: 'f274',
3434
- created: 4.4,
3435
- filter: [ 'ok' ],
3436
- categories: [ 'Web Application Icons' ] },
3437
- { name: 'Industry',
3438
- id: 'industry',
3439
- unicode: 'f275',
3440
- created: 4.4,
3441
- filter: [ 'factory' ],
3442
- categories: [ 'Web Application Icons' ] },
3443
- { name: 'Map Pin',
3444
- id: 'map-pin',
3445
- unicode: 'f276',
3446
- created: 4.4,
3447
- categories: [ 'Web Application Icons' ] },
3448
- { name: 'Map Signs',
3449
- id: 'map-signs',
3450
- unicode: 'f277',
3451
- created: 4.4,
3452
- categories: [ 'Web Application Icons' ] },
3453
- { name: 'Map Outlined',
3454
- id: 'map-o',
3455
- unicode: 'f278',
3456
- created: 4.4,
3457
- categories: [ 'Web Application Icons' ] },
3458
- { name: 'Map',
3459
- id: 'map',
3460
- unicode: 'f279',
3461
- created: 4.4,
3462
- categories: [ 'Web Application Icons' ] },
3463
- { name: 'Commenting',
3464
- id: 'commenting',
3465
- unicode: 'f27a',
3466
- created: 4.4,
3467
- filter:
3468
- [ 'speech',
3469
- 'notification',
3470
- 'note',
3471
- 'chat',
3472
- 'bubble',
3473
- 'feedback',
3474
- 'message',
3475
- 'texting',
3476
- 'sms',
3477
- 'conversation' ],
3478
- categories: [ 'Web Application Icons' ] },
3479
- { name: 'Commenting Outlined',
3480
- id: 'commenting-o',
3481
- unicode: 'f27b',
3482
- created: 4.4,
3483
- filter:
3484
- [ 'speech',
3485
- 'notification',
3486
- 'note',
3487
- 'chat',
3488
- 'bubble',
3489
- 'feedback',
3490
- 'message',
3491
- 'texting',
3492
- 'sms',
3493
- 'conversation' ],
3494
- categories: [ 'Web Application Icons' ] },
3495
- { name: 'Houzz',
3496
- id: 'houzz',
3497
- unicode: 'f27c',
3498
- created: 4.4,
3499
- categories: [ 'Brand Icons' ] },
3500
- { name: 'Vimeo',
3501
- id: 'vimeo',
3502
- unicode: 'f27d',
3503
- created: 4.4,
3504
- categories: [ 'Brand Icons' ] },
3505
- { name: 'Font Awesome Black Tie',
3506
- id: 'black-tie',
3507
- unicode: 'f27e',
3508
- created: 4.4,
3509
- url: 'blacktie.io',
3510
- categories: [ 'Brand Icons' ] },
3511
- { name: 'Fonticons',
3512
- id: 'fonticons',
3513
- unicode: 'f280',
3514
- created: 4.4,
3515
- url: 'fonticons.com',
3516
- categories: [ 'Brand Icons' ] },
3517
- { name: 'reddit Alien',
3518
- id: 'reddit-alien',
3519
- unicode: 'f281',
3520
- created: 4.5,
3521
- categories: [ 'Brand Icons' ] },
3522
- { name: 'Edge Browser',
3523
- id: 'edge',
3524
- unicode: 'f282',
3525
- created: 4.5,
3526
- filter: [ 'browser', 'ie' ],
3527
- categories: [ 'Brand Icons' ] },
3528
- { name: 'Credit Card',
3529
- id: 'credit-card-alt',
3530
- unicode: 'f283',
3531
- created: 4.5,
3532
- filter:
3533
- [ 'money',
3534
- 'buy',
3535
- 'debit',
3536
- 'checkout',
3537
- 'purchase',
3538
- 'payment',
3539
- 'credit card' ],
3540
- categories: [ 'Payment Icons', 'Web Application Icons' ] },
3541
- { name: 'Codie Pie',
3542
- id: 'codiepie',
3543
- unicode: 'f284',
3544
- created: 4.5,
3545
- url: 'codiepie.com',
3546
- categories: [ 'Brand Icons' ] },
3547
- { name: 'MODX',
3548
- id: 'modx',
3549
- unicode: 'f285',
3550
- created: 4.5,
3551
- categories: [ 'Brand Icons' ] },
3552
- { name: 'Fort Awesome',
3553
- id: 'fort-awesome',
3554
- unicode: 'f286',
3555
- created: 4.5,
3556
- url: 'fortawesome.com',
3557
- categories: [ 'Brand Icons' ] },
3558
- { name: 'USB',
3559
- id: 'usb',
3560
- unicode: 'f287',
3561
- created: 4.5,
3562
- categories: [ 'Brand Icons' ] },
3563
- { name: 'Product Hunt',
3564
- id: 'product-hunt',
3565
- unicode: 'f288',
3566
- created: 4.5,
3567
- categories: [ 'Brand Icons' ] },
3568
- { name: 'Mixcloud',
3569
- id: 'mixcloud',
3570
- unicode: 'f289',
3571
- created: 4.5,
3572
- categories: [ 'Brand Icons' ] },
3573
- { name: 'Scribd',
3574
- id: 'scribd',
3575
- unicode: 'f28a',
3576
- created: 4.5,
3577
- categories: [ 'Brand Icons' ] },
3578
- { name: 'Pause Circle',
3579
- id: 'pause-circle',
3580
- unicode: 'f28b',
3581
- created: 4.5,
3582
- categories: [ 'Video Player Icons' ] },
3583
- { name: 'Pause Circle Outlined',
3584
- id: 'pause-circle-o',
3585
- unicode: 'f28c',
3586
- created: 4.5,
3587
- categories: [ 'Video Player Icons' ] },
3588
- { name: 'Stop Circle',
3589
- id: 'stop-circle',
3590
- unicode: 'f28d',
3591
- created: 4.5,
3592
- categories: [ 'Video Player Icons' ] },
3593
- { name: 'Stop Circle Outlined',
3594
- id: 'stop-circle-o',
3595
- unicode: 'f28e',
3596
- created: 4.5,
3597
- categories: [ 'Video Player Icons' ] },
3598
- { name: 'Shopping Bag',
3599
- id: 'shopping-bag',
3600
- unicode: 'f290',
3601
- created: 4.5,
3602
- categories: [ 'Web Application Icons' ] },
3603
- { name: 'Shopping Basket',
3604
- id: 'shopping-basket',
3605
- unicode: 'f291',
3606
- created: 4.5,
3607
- categories: [ 'Web Application Icons' ] },
3608
- { name: 'Hashtag',
3609
- id: 'hashtag',
3610
- unicode: 'f292',
3611
- created: 4.5,
3612
- categories: [ 'Web Application Icons' ] },
3613
- { name: 'Bluetooth',
3614
- id: 'bluetooth',
3615
- unicode: 'f293',
3616
- created: 4.5,
3617
- categories: [ 'Web Application Icons', 'Brand Icons' ] },
3618
- { name: 'Bluetooth',
3619
- id: 'bluetooth-b',
3620
- unicode: 'f294',
3621
- created: 4.5,
3622
- categories: [ 'Web Application Icons', 'Brand Icons' ] },
3623
- { name: 'Percent',
3624
- id: 'percent',
3625
- unicode: 'f295',
3626
- created: 4.5,
3627
- categories: [ 'Web Application Icons' ] },
3628
- { name: 'GitLab',
3629
- id: 'gitlab',
3630
- unicode: 'f296',
3631
- created: 4.6,
3632
- url: 'gitlab.com',
3633
- categories: [ 'Brand Icons' ] },
3634
- { name: 'WPBeginner',
3635
- id: 'wpbeginner',
3636
- unicode: 'f297',
3637
- created: 4.6,
3638
- url: 'wpbeginner.com',
3639
- categories: [ 'Brand Icons' ] },
3640
- { name: 'WPForms',
3641
- id: 'wpforms',
3642
- unicode: 'f298',
3643
- created: 4.6,
3644
- url: 'wpforms.com',
3645
- categories: [ 'Brand Icons' ] },
3646
- { name: 'Envira Gallery',
3647
- id: 'envira',
3648
- unicode: 'f299',
3649
- created: 4.6,
3650
- url: 'enviragallery.com',
3651
- filter: [ 'leaf' ],
3652
- categories: [ 'Brand Icons' ] },
3653
- { name: 'Universal Access',
3654
- id: 'universal-access',
3655
- unicode: 'f29a',
3656
- created: 4.6,
3657
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3658
- { name: 'Wheelchair Alt',
3659
- id: 'wheelchair-alt',
3660
- unicode: 'f29b',
3661
- created: 4.6,
3662
- filter: [ 'handicap', 'person' ],
3663
- categories:
3664
- [ 'Web Application Icons',
3665
- 'Medical Icons',
3666
- 'Transportation Icons',
3667
- 'Accessibility Icons' ] },
3668
- { name: 'Question Circle Outlined',
3669
- id: 'question-circle-o',
3670
- unicode: 'f29c',
3671
- created: 4.6,
3672
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3673
- { name: 'Blind',
3674
- id: 'blind',
3675
- unicode: 'f29d',
3676
- created: 4.6,
3677
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3678
- { name: 'Audio Description',
3679
- id: 'audio-description',
3680
- unicode: 'f29e',
3681
- created: 4.6,
3682
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3683
- { name: 'Volume Control Phone',
3684
- id: 'volume-control-phone',
3685
- unicode: 'f2a0',
3686
- created: 4.6,
3687
- filter: [ 'telephone' ],
3688
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3689
- { name: 'Braille',
3690
- id: 'braille',
3691
- unicode: 'f2a1',
3692
- created: 4.6,
3693
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3694
- { name: 'Assistive Listening Systems',
3695
- id: 'assistive-listening-systems',
3696
- unicode: 'f2a2',
3697
- created: 4.6,
3698
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3699
- { name: 'American Sign Language Interpreting',
3700
- id: 'american-sign-language-interpreting',
3701
- unicode: 'f2a3',
3702
- created: 4.6,
3703
- aliases: [ 'asl-interpreting' ],
3704
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3705
- { name: 'Deaf',
3706
- id: 'deaf',
3707
- unicode: 'f2a4',
3708
- created: 4.6,
3709
- aliases: [ 'deafness', 'hard-of-hearing' ],
3710
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3711
- { name: 'Glide',
3712
- id: 'glide',
3713
- unicode: 'f2a5',
3714
- created: 4.6,
3715
- categories: [ 'Brand Icons' ] },
3716
- { name: 'Glide G',
3717
- id: 'glide-g',
3718
- unicode: 'f2a6',
3719
- created: 4.6,
3720
- categories: [ 'Brand Icons' ] },
3721
- { name: 'Sign Language',
3722
- id: 'sign-language',
3723
- unicode: 'f2a7',
3724
- created: 4.6,
3725
- aliases: [ 'signing' ],
3726
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3727
- { name: 'Low Vision',
3728
- id: 'low-vision',
3729
- unicode: 'f2a8',
3730
- created: 4.6,
3731
- categories: [ 'Web Application Icons', 'Accessibility Icons' ] },
3732
- { name: 'Viadeo',
3733
- id: 'viadeo',
3734
- unicode: 'f2a9',
3735
- created: 4.6,
3736
- categories: [ 'Brand Icons' ] },
3737
- { name: 'Viadeo Square',
3738
- id: 'viadeo-square',
3739
- unicode: 'f2aa',
3740
- created: 4.6,
3741
- categories: [ 'Brand Icons' ] },
3742
- { name: 'Snapchat',
3743
- id: 'snapchat',
3744
- unicode: 'f2ab',
3745
- created: 4.6,
3746
- categories: [ 'Brand Icons' ] },
3747
- { name: 'Snapchat Ghost',
3748
- id: 'snapchat-ghost',
3749
- unicode: 'f2ac',
3750
- created: 4.6,
3751
- categories: [ 'Brand Icons' ] },
3752
- { name: 'Snapchat Square',
3753
- id: 'snapchat-square',
3754
- unicode: 'f2ad',
3755
- created: 4.6,
3756
- categories: [ 'Brand Icons' ] },
3757
- { name: 'Pied Piper Logo',
3758
- id: 'pied-piper',
3759
- unicode: 'f2ae',
3760
- created: 4.6,
3761
- categories: [ 'Brand Icons' ] },
3762
- { name: 'First Order',
3763
- id: 'first-order',
3764
- unicode: 'f2b0',
3765
- created: 4.6,
3766
- categories: [ 'Brand Icons' ] },
3767
- { name: 'Yoast',
3768
- id: 'yoast',
3769
- unicode: 'f2b1',
3770
- created: 4.6,
3771
- url: 'yoast.com',
3772
- categories: [ 'Brand Icons' ] },
3773
- { name: 'ThemeIsle',
3774
- id: 'themeisle',
3775
- unicode: 'f2b2',
3776
- created: 4.6,
3777
- url: 'themeisle.com',
3778
- categories: [ 'Brand Icons' ] },
3779
- { name: 'Google Plus Official',
3780
- id: 'google-plus-official',
3781
- unicode: 'f2b3',
3782
- created: 4.6,
3783
- aliases: [ 'google-plus-circle' ],
3784
- categories: [ 'Brand Icons' ] },
3785
- { name: 'Font Awesome',
3786
- id: 'font-awesome',
3787
- unicode: 'f2b4',
3788
- created: 4.6,
3789
- aliases: [ 'fa' ],
3790
- categories: [ 'Brand Icons' ] } ] };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/about.widget.php DELETED
@@ -1,111 +0,0 @@
1
- <?php
2
- class Rhea_About_Company extends WP_Widget {
3
-
4
- public function __construct() {
5
-
6
- $widget_args = array(
7
- 'description' => esc_html__( 'This widget is designed for footer area', 'themeisle-companion' ),
8
- );
9
-
10
- parent::__construct( 'rhea-about-company', esc_html__( '[Rhea] About Company', 'themeisle-companion' ), $widget_args );
11
- add_action( 'admin_enqueue_scripts', array( $this, 'widget_scripts' ) );
12
- }
13
-
14
- function widget_scripts( $hook ) {
15
- if ( $hook != 'widgets.php' ) {
16
- return;
17
- }
18
- wp_enqueue_media();
19
- wp_enqueue_script( 'rhea_widget_media_script', THEMEISLE_COMPANION_URL . 'assets/js/widget-media.js', false, '1.1', true );
20
- }
21
-
22
- function widget( $args, $instance ) {
23
-
24
- extract( $args );
25
-
26
- if ( ! empty( $before_widget ) ) {
27
- echo $before_widget;
28
- }
29
-
30
- $logo_url = '';
31
- if ( ! empty( $instance['use_logo'] ) ) {
32
- $custom_logo_id = get_theme_mod( 'custom_logo' );
33
- if ( ! empty( $custom_logo_id ) ) {
34
- $image = wp_get_attachment_image_src( $custom_logo_id , 'full' );
35
- if ( ! empty( $image ) ) {
36
- if ( ! empty( $image[0] ) ) {
37
- $logo_url = $image[0];
38
- }
39
- }
40
- }
41
- } elseif ( ! empty( $instance['image_uri'] ) ) {
42
- $logo_url = $instance['image_uri'];
43
- }
44
-
45
- ?>
46
-
47
- <div class="rhea-about-company">
48
- <?php
49
- if ( ! empty( $logo_url ) ) {
50
- echo '<div class="rhea-company-logo">';
51
- echo '<img src="' . esc_url( $logo_url ) . '" alt="' . esc_attr( get_bloginfo( 'title' ) ) . '">';
52
- echo '</div>';
53
- }
54
-
55
- if ( ! empty( $instance['text'] ) ) {
56
- echo '<div class="rhea-company-description">';
57
- echo wp_kses_post( $instance['text'] );
58
- echo '</div>';
59
- }
60
- ?>
61
- </div>
62
-
63
- <?php
64
-
65
- if ( ! empty( $after_widget ) ) {
66
- echo $after_widget;
67
- }
68
-
69
- }
70
-
71
- function update( $new_instance, $old_instance ) {
72
-
73
- $instance = $old_instance;
74
- $instance['image_uri'] = esc_url( $new_instance['image_uri'] );
75
- $instance['use_logo'] = strip_tags( $new_instance['use_logo'] );
76
- $instance['text'] = strip_tags( $new_instance['text'] );
77
-
78
- return $instance;
79
-
80
- }
81
-
82
- function form( $instance ) {
83
-
84
- $image_in_customizer = '';
85
- $display = 'none';
86
- if ( ! empty( $instance['image_uri'] ) ) {
87
- $image_in_customizer = esc_url( $instance['image_uri'] );
88
- $display = 'inline-block';
89
- }
90
-
91
- ?>
92
- <p>
93
- <input type="checkbox" name="<?php echo $this->get_field_name( 'use_logo' ); ?>" id="<?php echo $this->get_field_id( 'use_logo' ); ?>" value="use_logo" <?php if ( isset( $instance['use_logo'] ) ) { checked( $instance['use_logo'], 'use_logo' ); } ?>>
94
- <label for="<?php echo $this->get_field_id( 'use_logo' ); ?>"><?php esc_html_e( 'Use website logo','themeisle-companion' ); ?></label>
95
- </p>
96
- <p>
97
- <label for="<?php echo $this->get_field_id( 'image_uri' ); ?>"><?php esc_html_e( 'Logo', 'themeisle-companion' ); ?></label><br/>
98
- <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>" style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo esc_attr( $display ); ?>" alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
99
- <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name( 'image_uri' ); ?>" id="<?php echo $this->get_field_id( 'image_uri' ); ?>" value="<?php if ( ! empty( $instance['image_uri'] ) ) { echo $instance['image_uri']; } ?>" style="margin-top:5px;">
100
- <input type="button" class="button button-primary custom_media_button" id="custom_media_button" name="<?php echo $this->get_field_name( 'image_uri' ); ?>" value="<?php esc_html_e( 'Upload Image','themeisle-companion' ); ?>" style="margin-top:5px;">
101
- </p>
102
- <p>
103
- <label for="<?php echo $this->get_field_id( 'text' ); ?>"><?php esc_html_e( 'Company Description', 'themeisle-companion' ); ?></label><br/>
104
- <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>" id="<?php echo $this->get_field_id( 'text' ); ?>"><?php if ( ! empty( $instance['text'] ) ) { echo htmlspecialchars_decode( $instance['text'] ); } ?></textarea>
105
- </p>
106
-
107
- <?php
108
-
109
- }
110
-
111
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/contact.widget.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- class Rhea_Contact_Company extends WP_Widget {
3
-
4
- public function __construct() {
5
-
6
- $widget_args = array(
7
- 'description' => esc_html__( 'This widget is designed for footer area', 'themeisle-companion' ),
8
- );
9
-
10
- parent::__construct( 'rhea-contact-company', esc_html__( '[Rhea] Contact', 'themeisle-companion' ), $widget_args );
11
- }
12
-
13
- function widget( $args, $instance ) {
14
-
15
- extract( $args );
16
-
17
- if ( ! empty( $before_widget ) ) {
18
- echo $before_widget;
19
- }
20
-
21
- if ( ! empty( $instance['title'] ) ) {
22
- echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
23
- }
24
-
25
- echo '<div class="rhea_company_contact">';
26
- if ( ! empty( $instance['adress'] ) ) {
27
-
28
- if ( ! empty( $instance['gmaps_url'] ) ) {
29
- echo '<p><a href="' . esc_url( $instance['gmaps_url'] ) . '" target="_blank">' . esc_html( $instance['adress'] ) . '</a></p>';
30
- } else {
31
- echo '<p>' . esc_html( $instance['adress'] ) . '</p>';
32
- }
33
- }
34
- if ( ! empty( $instance['email'] ) ) {
35
- echo '<p>Email: <a href="mailto:' . antispambot( $instance['email'] ) . '">' . antispambot( $instance['email'] ) . '</a></p>';
36
- }
37
- if ( ! empty( $instance['phone'] ) ) {
38
- echo '<p>Phone: ' . esc_html( $instance['phone'] ) . '</p>';
39
- }
40
- echo '</div>';
41
-
42
- if ( ! empty( $after_widget ) ) {
43
- echo $after_widget;
44
- }
45
-
46
- }
47
-
48
- function update( $new_instance, $old_instance ) {
49
-
50
- $instance = $old_instance;
51
-
52
- $instance['title'] = strip_tags( $new_instance['title'] );
53
- $instance['adress'] = strip_tags( $new_instance['adress'] );
54
- $instance['gmaps_url'] = esc_url( $new_instance['gmaps_url'] );
55
- $instance['email'] = strip_tags( $new_instance['email'] );
56
- $instance['phone'] = strip_tags( $new_instance['phone'] );
57
-
58
- return $instance;
59
-
60
- }
61
-
62
- function form( $instance ) {
63
- ?>
64
- <p>
65
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title', 'themeisle-companion' ); ?></label><br/>
66
- <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'title' ); ?>" id="<?php echo $this->get_field_id( 'title' ); ?>" value="<?php if ( ! empty( $instance['title'] ) ) { echo $instance['title']; } ?>">
67
- </p>
68
- <p>
69
- <label for="<?php echo $this->get_field_id( 'adress' ); ?>"><?php esc_html_e( 'Company Adress', 'themeisle-companion' ); ?></label><br/>
70
- <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'adress' ); ?>" id="<?php echo $this->get_field_id( 'adress' ); ?>"><?php if ( ! empty( $instance['adress'] ) ) { echo htmlspecialchars_decode( $instance['adress'] ); } ?></textarea>
71
- </p>
72
- <p>
73
- <label for="<?php echo $this->get_field_id( 'gmaps_url' ); ?>"><?php esc_html_e( 'Google Maps URL', 'themeisle-companion' ); ?></label><br/>
74
- <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'gmaps_url' ); ?>" id="<?php echo $this->get_field_id( 'gmaps_url' ); ?>" value="<?php if ( ! empty( $instance['gmaps_url'] ) ) { echo $instance['gmaps_url']; } ?>">
75
- </p>
76
- <p>
77
- <label for="<?php echo $this->get_field_id( 'email' ); ?>"><?php esc_html_e( 'Email', 'themeisle-companion' ); ?></label><br/>
78
- <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'email' ); ?>" id="<?php echo $this->get_field_id( 'email' ); ?>" value="<?php if ( ! empty( $instance['email'] ) ) { echo $instance['email']; } ?>">
79
- </p>
80
- <p>
81
- <label for="<?php echo $this->get_field_id( 'phone' ); ?>"><?php esc_html_e( 'Phone', 'themeisle-companion' ); ?></label><br/>
82
- <input type="text" class="widefat" name="<?php echo $this->get_field_name( 'phone' ); ?>" id="<?php echo $this->get_field_id( 'phone' ); ?>" value="<?php if ( ! empty( $instance['phone'] ) ) { echo $instance['phone']; } ?>">
83
- </p>
84
-
85
- <?php
86
-
87
- }
88
-
89
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/features.widget.php DELETED
@@ -1,96 +0,0 @@
1
- <?php
2
- class rhea_features_block extends WP_Widget {
3
-
4
- public function __construct() {
5
-
6
- $widget_args = array(
7
- 'description' => esc_html__( 'This widget is designed for Our focus section widgets', 'themeisle-companion' ),
8
- );
9
- parent::__construct( 'rhea-feature-block', esc_html__( '[Rhea] Our features widget', 'themeisle-companion' ), $widget_args );
10
- }
11
-
12
- function widget( $args, $instance ) {
13
-
14
- extract( $args );
15
-
16
- if ( ! empty( $before_widget ) ) {
17
- echo $before_widget;
18
- }
19
-
20
- $link = ! empty( $instance['link'] ) ? $instance['link'] : '#';
21
- ?>
22
-
23
- <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12 focus-box" data-scrollreveal="enter bottom after 0.15s over 1s">
24
- <div class="service-block">
25
- <a href="<?php echo esc_url( $link ); ?>" class="service-url">
26
-
27
- <?php if ( ! empty( $instance['icon'] ) ) { ?>
28
- <span class="icon-holder"><i class="<?php echo esc_attr( $instance['icon'] ); ?>"></i></span>
29
- <?php } ?>
30
- <?php if ( ! empty( $instance['title'] ) ) { ?>
31
- <h3 class="service-title"><?php echo esc_html( $instance['title'] ); ?></h3>
32
- <?php } ?>
33
- <?php if ( ! empty( $instance['text'] ) ) { ?>
34
- <p class="service-title"><?php echo wp_kses_post( $instance['text'] ); ?></p>
35
- <?php } ?>
36
-
37
- </a>
38
- </div>
39
- </div>
40
-
41
- <?php
42
-
43
- if ( ! empty( $after_widget ) ) {
44
- echo $after_widget;
45
- }
46
-
47
- }
48
-
49
- function update( $new_instance, $old_instance ) {
50
-
51
- $instance = $old_instance;
52
- $instance['text'] = stripslashes( wp_filter_post_kses( $new_instance['text'] ) );
53
- $instance['title'] = strip_tags( $new_instance['title'] );
54
- $instance['link'] = strip_tags( $new_instance['link'] );
55
- $instance['icon'] = strip_tags( $new_instance['icon'] );
56
-
57
- return $instance;
58
-
59
- }
60
-
61
- function form( $instance ) {
62
- $icon_holder_class = empty( $instance['icon'] ) ? ' empty-icon' : '';
63
- ?>
64
- <p>
65
- <label for="<?php echo $this->get_field_id( 'icon' ); ?>"><?php esc_html_e( 'Icon', 'themeisle-companion' ); ?></label><br/>
66
- <div class="fontawesome-icon-container<?php echo esc_attr( $icon_holder_class ); ?>">
67
- <input type="hidden" class="widefat" name="<?php echo $this->get_field_name( 'icon' ); ?>" id="<?php echo $this->get_field_id( 'icon' ); ?>" value="<?php if ( ! empty( $instance['icon'] ) ) { echo esc_html( $instance['icon'] ); } ?>">
68
- <div class="icon-holder">
69
- <p><?php esc_html_e( 'No icon selected :( ...', 'themeisle-companion' ) ?></p>
70
- <i class="<?php if ( ! empty( $instance['icon'] ) ) { echo esc_attr( $instance['icon'] ); } ?>"></i>
71
- </div>
72
- <div class="actions">
73
- <button type="button" class="button add-icon-button"><?php esc_html_e( 'Select Icon', 'themeisle-companion' ) ?></button>
74
- <button type="button" class="button change-icon-button"><?php esc_html_e( 'Change Icon', 'themeisle-companion' ) ?></button>
75
- <button type="button" class="button remove-icon-button"><?php esc_html_e( 'Remove', 'themeisle-companion' ) ?></button>
76
- </div>
77
- </div>
78
- </p>
79
- <p>
80
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title', 'themeisle-companion' ); ?></label><br/>
81
- <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>" id="<?php echo $this->get_field_id( 'title' ); ?>" value="<?php if ( ! empty( $instance['title'] ) ) { echo $instance['title']; } ?>" class="widefat">
82
- </p>
83
- <p>
84
- <label for="<?php echo $this->get_field_id( 'text' ); ?>"><?php esc_html_e( 'Text', 'themeisle-companion' ); ?></label><br/>
85
- <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>" id="<?php echo $this->get_field_id( 'text' ); ?>"><?php if ( ! empty( $instance['text'] ) ) { echo htmlspecialchars_decode( $instance['text'] ); } ?></textarea>
86
- </p>
87
- <p>
88
- <label for="<?php echo $this->get_field_id( 'link' ); ?>"><?php esc_html_e( 'Link','themeisle-companion' ); ?></label><br />
89
- <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>" id="<?php echo $this->get_field_id( 'link' ); ?>" value="<?php if ( ! empty( $instance['link'] ) ) { echo $instance['link']; } ?>" class="widefat">
90
- </p>
91
-
92
- <?php
93
-
94
- }
95
-
96
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/hours.widget.php DELETED
@@ -1,252 +0,0 @@
1
- <?php
2
- class Rhea_Hours extends WP_Widget {
3
-
4
- public function __construct() {
5
-
6
- $widget_args = array(
7
- 'description' => esc_html__( 'This widget is designed for footer area', 'themeisle-companion' ),
8
- );
9
- parent::__construct( 'rhea-company-hours', esc_html__( '[Rhea] Company Program', 'themeisle-companion' ), $widget_args );
10
- }
11
-
12
- function widget( $args, $instance ) {
13
-
14
- extract( $args );
15
-
16
- if ( ! empty( $before_widget ) ) {
17
- echo $before_widget;
18
- }
19
-
20
- if ( ! empty( $instance['title'] ) ) {
21
- echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
22
- }
23
- ?>
24
-
25
- <div class="rhea_program">
26
-
27
- <?php if ( ! empty( $instance['monday_from'] ) || ! empty( $instance['monday_to'] ) ) { ?>
28
- <div class="rhea_program_item">
29
- <p><?php esc_html_e( 'Monday', 'themeisle-companion' ); ?></p>
30
- <div class="rhea_program_hours">
31
- <?php if ( ! empty( $instance['monday_from'] ) ) { ?>
32
- <div class="rhea_program_item_from">
33
- <?php echo esc_html( $instance['monday_from'] ); ?>
34
- </div>
35
- <?php } ?>
36
- <?php if ( ! empty( $instance['monday_to'] ) ) { ?>
37
- <div class="rhea_program_item_to">
38
- <?php echo esc_html( $instance['monday_to'] ); ?>
39
- </div>
40
- <?php } ?>
41
- </div>
42
- </div>
43
- <?php } ?>
44
-
45
- <?php if ( ! empty( $instance['tuesday_from'] ) || ! empty( $instance['tuesday_to'] ) ) { ?>
46
- <div class="rhea_program_item">
47
- <p><?php esc_html_e( 'Tuesday', 'themeisle-companion' ); ?></p>
48
- <div class="rhea_program_hours">
49
- <?php if ( ! empty( $instance['tuesday_from'] ) ) { ?>
50
- <div class="rhea_program_item_from">
51
- <?php echo esc_html( $instance['tuesday_from'] ); ?>
52
- </div>
53
- <?php } ?>
54
- <?php if ( ! empty( $instance['tuesday_to'] ) ) { ?>
55
- <div class="rhea_program_item_to">
56
- <?php echo esc_html( $instance['tuesday_to'] ); ?>
57
- </div>
58
- <?php } ?>
59
- </div>
60
- </div>
61
- <?php } ?>
62
-
63
- <?php if ( ! empty( $instance['wednesday_from'] ) || ! empty( $instance['wednesday_to'] ) ) { ?>
64
- <div class="rhea_program_item">
65
- <p><?php esc_html_e( 'Wednesday', 'themeisle-companion' ); ?></p>
66
- <div class="rhea_program_hours">
67
- <?php if ( ! empty( $instance['wednesday_from'] ) ) { ?>
68
- <div class="rhea_program_item_from">
69
- <?php echo esc_html( $instance['wednesday_from'] ); ?>
70
- </div>
71
- <?php } ?>
72
- <?php if ( ! empty( $instance['wednesday_to'] ) ) { ?>
73
- <div class="rhea_program_item_to">
74
- <?php echo esc_html( $instance['wednesday_to'] ); ?>
75
- </div>
76
- <?php } ?>
77
- </div>
78
- </div>
79
- <?php } ?>
80
-
81
- <?php if ( ! empty( $instance['thursday_from'] ) || ! empty( $instance['thursday_to'] ) ) { ?>
82
- <div class="rhea_program_item">
83
- <p><?php esc_html_e( 'Thursday', 'themeisle-companion' ); ?></p>
84
- <div class="rhea_program_hours">
85
- <?php if ( ! empty( $instance['thursday_from'] ) ) { ?>
86
- <div class="rhea_program_item_from">
87
- <?php echo esc_html( $instance['thursday_from'] ); ?>
88
- </div>
89
- <?php } ?>
90
- <?php if ( ! empty( $instance['thursday_to'] ) ) { ?>
91
- <div class="rhea_program_item_to">
92
- <?php echo esc_html( $instance['thursday_to'] ); ?>
93
- </div>
94
- <?php } ?>
95
- </div>
96
- </div>
97
- <?php } ?>
98
-
99
- <?php if ( ! empty( $instance['friday_from'] ) || ! empty( $instance['friday_to'] ) ) { ?>
100
- <div class="rhea_program_item">
101
- <p><?php esc_html_e( 'Friday', 'themeisle-companion' ); ?></p>
102
- <div class="rhea_program_hours">
103
- <?php if ( ! empty( $instance['friday_from'] ) ) { ?>
104
- <div class="rhea_program_item_from">
105
- <?php echo esc_html( $instance['friday_from'] ); ?>
106
- </div>
107
- <?php } ?>
108
- <?php if ( ! empty( $instance['friday_to'] ) ) { ?>
109
- <div class="rhea_program_item_to">
110
- <?php echo esc_html( $instance['friday_to'] ); ?>
111
- </div>
112
- <?php } ?>
113
- </div>
114
- </div>
115
- <?php } ?>
116
-
117
- <?php if ( ! empty( $instance['saturday_from'] ) || ! empty( $instance['saturday_to'] ) ) { ?>
118
- <div class="rhea_program_item">
119
- <p><?php esc_html_e( 'Saturday', 'themeisle-companion' ); ?></p>
120
- <div class="rhea_program_hours">
121
- <?php if ( ! empty( $instance['saturday_from'] ) ) { ?>
122
- <div class="rhea_program_item_from">
123
- <?php echo esc_html( $instance['saturday_from'] ); ?>
124
- </div>
125
- <?php } ?>
126
- <?php if ( ! empty( $instance['saturday_to'] ) ) { ?>
127
- <div class="rhea_program_item_to">
128
- <?php echo esc_html( $instance['saturday_to'] ); ?>
129
- </div>
130
- <?php } ?>
131
- </div>
132
- </div>
133
- <?php } ?>
134
-
135
- <?php if ( ( isset( $instance['sunday_from'] ) && $instance['sunday_from'] != '' ) || ( isset( $instance['sunday_to'] ) && $instance['sunday_to'] != '' ) ) { ?>
136
- <div class="rhea_program_item">
137
- <p><?php esc_html_e( 'Sunday', 'themeisle-companion' ); ?></p>
138
- <div class="rhea_program_hours">
139
- <?php if ( ! empty( $instance['sunday_from'] ) ) { ?>
140
- <div class="rhea_program_item_from">
141
- <?php echo esc_html( $instance['sunday_from'] ); ?>
142
- </div>
143
- <?php } ?>
144
- <?php if ( ! empty( $instance['sunday_to'] ) ) { ?>
145
- <div class="rhea_program_item_to">
146
- <?php echo esc_html( $instance['sunday_to'] );?>
147
- </div>
148
- <?php } ?>
149
- </div>
150
- </div>
151
- <?php } ?>
152
-
153
- </div>
154
-
155
- <?php
156
- if ( ! empty( $after_widget ) ) {
157
- echo $after_widget;
158
- }
159
-
160
- }
161
-
162
- function update( $new_instance, $old_instance ) {
163
-
164
- $instance = $old_instance;
165
- $instance['title'] = strip_tags( $new_instance['title'] );
166
-
167
- // Monday
168
- $instance['monday_from'] = strip_tags( $new_instance['monday_from'] );
169
- $instance['monday_to'] = strip_tags( $new_instance['monday_to'] );
170
-
171
- // Tuesday
172
- $instance['tuesday_from'] = strip_tags( $new_instance['tuesday_from'] );
173
- $instance['tuesday_to'] = strip_tags( $new_instance['tuesday_to'] );
174
-
175
- // Wednesday
176
- $instance['wednesday_from'] = strip_tags( $new_instance['wednesday_from'] );
177
- $instance['wednesday_to'] = strip_tags( $new_instance['wednesday_to'] );
178
-
179
- // Thursday
180
- $instance['thursday_from'] = strip_tags( $new_instance['thursday_from'] );
181
- $instance['thursday_to'] = strip_tags( $new_instance['thursday_to'] );
182
-
183
- // Friday
184
- $instance['friday_from'] = strip_tags( $new_instance['friday_from'] );
185
- $instance['friday_to'] = strip_tags( $new_instance['friday_to'] );
186
-
187
- // Saturday
188
- $instance['saturday_from'] = strip_tags( $new_instance['saturday_from'] );
189
- $instance['saturday_to'] = strip_tags( $new_instance['saturday_to'] );
190
-
191
- // Sunday
192
- $instance['sunday_from'] = strip_tags( $new_instance['sunday_from'] );
193
- $instance['sunday_to'] = strip_tags( $new_instance['sunday_to'] );
194
-
195
- return $instance;
196
-
197
- }
198
-
199
- function form( $instance ) {
200
- ?>
201
- <p>
202
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title', 'themeisle-companion' ); ?></label><br/>
203
- <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>" id="<?php echo $this->get_field_id( 'title' ); ?>" value="<?php if ( ! empty( $instance['title'] ) ) { echo esc_html( $instance['title'] ); } ?>" class="widefat">
204
- </p>
205
- <p>
206
- <label><?php esc_html_e( 'Monday', 'themeisle-companion' ); ?></label><br/>
207
-
208
- <input type="text" name="<?php echo $this->get_field_name( 'monday_from' ); ?>" id="<?php echo $this->get_field_id( 'monday_from' ); ?>" value="<?php if ( ! empty( $instance['monday_from'] ) ) { echo esc_html( $instance['monday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
209
- <input type="text" name="<?php echo $this->get_field_name( 'monday_to' ); ?>" id="<?php echo $this->get_field_id( 'monday_to' ); ?>" value="<?php if ( ! empty( $instance['monday_to'] ) ) { echo esc_html( $instance['monday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
210
- </p>
211
- <p>
212
- <label><?php esc_html_e( 'Tuesday', 'themeisle-companion' ); ?></label><br/>
213
-
214
- <input type="text" name="<?php echo $this->get_field_name( 'tuesday_from' ); ?>" id="<?php echo $this->get_field_id( 'tuesday_from' ); ?>" value="<?php if ( ! empty( $instance['tuesday_from'] ) ) { echo esc_html( $instance['tuesday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
215
- <input type="text" name="<?php echo $this->get_field_name( 'tuesday_to' ); ?>" id="<?php echo $this->get_field_id( 'tuesday_to' ); ?>" value="<?php if ( ! empty( $instance['tuesday_to'] ) ) { echo esc_html( $instance['tuesday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
216
- </p>
217
- <p>
218
- <label><?php esc_html_e( 'Wednesday', 'themeisle-companion' ); ?></label><br/>
219
-
220
- <input type="text" name="<?php echo $this->get_field_name( 'wednesday_from' ); ?>" id="<?php echo $this->get_field_id( 'wednesday_from' ); ?>" value="<?php if ( ! empty( $instance['wednesday_from'] ) ) { echo esc_html( $instance['wednesday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
221
- <input type="text" name="<?php echo $this->get_field_name( 'wednesday_to' ); ?>" id="<?php echo $this->get_field_id( 'wednesday_to' ); ?>" value="<?php if ( ! empty( $instance['wednesday_to'] ) ) { echo esc_html( $instance['wednesday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
222
- </p>
223
- <p>
224
- <label><?php esc_html_e( 'Thursday', 'themeisle-companion' ); ?></label><br/>
225
-
226
- <input type="text" name="<?php echo $this->get_field_name( 'thursday_from' ); ?>" id="<?php echo $this->get_field_id( 'thursday_from' ); ?>" value="<?php if ( ! empty( $instance['thursday_from'] ) ) { echo esc_html( $instance['thursday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
227
- <input type="text" name="<?php echo $this->get_field_name( 'thursday_to' ); ?>" id="<?php echo $this->get_field_id( 'thursday_to' ); ?>" value="<?php if ( ! empty( $instance['thursday_to'] ) ) { echo esc_html( $instance['thursday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
228
- </p>
229
- <p>
230
- <label><?php esc_html_e( 'Friday', 'themeisle-companion' ); ?></label><br/>
231
-
232
- <input type="text" name="<?php echo $this->get_field_name( 'friday_from' ); ?>" id="<?php echo $this->get_field_id( 'friday_from' ); ?>" value="<?php if ( ! empty( $instance['friday_from'] ) ) { echo esc_html( $instance['friday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
233
- <input type="text" name="<?php echo $this->get_field_name( 'friday_to' ); ?>" id="<?php echo $this->get_field_id( 'friday_to' ); ?>" value="<?php if ( ! empty( $instance['friday_to'] ) ) { echo esc_html( $instance['friday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
234
- </p>
235
- <p>
236
- <label><?php esc_html_e( 'Saturday', 'themeisle-companion' ); ?></label><br/>
237
-
238
- <input type="text" name="<?php echo $this->get_field_name( 'saturday_from' ); ?>" id="<?php echo $this->get_field_id( 'saturday_from' ); ?>" value="<?php if ( ! empty( $instance['saturday_from'] ) ) { echo esc_html( $instance['saturday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
239
- <input type="text" name="<?php echo $this->get_field_name( 'saturday_to' ); ?>" id="<?php echo $this->get_field_id( 'saturday_to' ); ?>" value="<?php if ( ! empty( $instance['saturday_to'] ) ) { echo esc_html( $instance['saturday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
240
- </p>
241
- <p>
242
- <label><?php esc_html_e( 'Sunday', 'themeisle-companion' ); ?></label><br/>
243
-
244
- <input type="text" name="<?php echo $this->get_field_name( 'sunday_from' ); ?>" id="<?php echo $this->get_field_id( 'sunday_from' ); ?>" value="<?php if ( ! empty( $instance['sunday_from'] ) ) { echo esc_html( $instance['sunday_from'] ); } ?>" placeholder="<?php esc_html_e( 'From', 'themeisle-companion' ); ?>" style="width:45%;">
245
- <input type="text" name="<?php echo $this->get_field_name( 'sunday_to' ); ?>" id="<?php echo $this->get_field_id( 'sunday_to' ); ?>" value="<?php if ( ! empty( $instance['sunday_to'] ) ) { echo esc_html( $instance['sunday_to'] ); } ?>" placeholder="<?php esc_html_e( 'To', 'themeisle-companion' ); ?>" style="width:45%;">
246
- </p>
247
-
248
- <?php
249
-
250
- }
251
-
252
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/icon-box.widget.php DELETED
@@ -1,104 +0,0 @@
1
- <?php
2
- class Rhea_Icon_Box extends WP_Widget {
3
-
4
- public function __construct() {
5
- $widget_args = array(
6
- 'description' => esc_html__( 'This widget is designed for Right Section sidebar', 'themeisle-companion' ),
7
- );
8
- parent::__construct( 'rhea-icon-box', esc_html__( '[Rhea] Icon Box', 'themeisle-companion' ), $widget_args );
9
- }
10
-
11
- function widget( $args, $instance ) {
12
-
13
- extract( $args );
14
-
15
- if ( ! empty( $before_widget ) ) {
16
- echo $before_widget;
17
- }
18
-
19
- ?>
20
-
21
- <div class="about_us_box">
22
- <div class="header_aboutus_box">
23
- <div class="pull-left icon-holder">
24
- <?php if ( ! empty( $instance['icon'] ) ) { ?>
25
- <i class="fa <?php echo esc_attr( $instance['icon'] ); ?>"></i>
26
- <?php } ?>
27
- </div>
28
- <div class="aboutus_titles pull-left">
29
- <?php
30
- if ( ! empty( $instance['title'] ) ) {
31
- echo '<h4>' . esc_html( $instance['title'] ) . '</h4>';
32
- }
33
- if ( ! empty( $instance['subtitle'] ) ) {
34
- echo '<p>' . esc_html( $instance['subtitle'] ) . '</p>';
35
- }
36
- ?>
37
- </div>
38
- <div class="clearfix"></div>
39
- </div>
40
- <div class="aboutus_content">
41
- <?php
42
- if ( ! empty( $instance['description'] ) ) {
43
- echo '<p>' . esc_html( $instance['description'] ) . '</p>';
44
- }
45
- ?>
46
- </div>
47
- </div>
48
-
49
- <?php
50
-
51
- if ( ! empty( $after_widget ) ) {
52
- echo $after_widget;
53
- }
54
-
55
- }
56
-
57
- function update( $new_instance, $old_instance ) {
58
-
59
- $instance = $old_instance;
60
- $instance['title'] = stripslashes( wp_filter_post_kses( $new_instance['title'] ) );
61
- $instance['subtitle'] = strip_tags( $new_instance['subtitle'] );
62
- $instance['icon'] = strip_tags( $new_instance['icon'] );
63
- $instance['description'] = strip_tags( $new_instance['description'] );
64
-
65
- return $instance;
66
-
67
- }
68
-
69
- function form( $instance ) {
70
- $icon_holder_class = empty( $instance['icon'] ) ? ' empty-icon' : ''; ?>
71
- <p>
72
- <label for="<?php echo $this->get_field_id( 'icon' ); ?>"><?php esc_html_e( 'Icon', 'themeisle-companion' ); ?></label><br/>
73
- <div class="fontawesome-icon-container<?php echo esc_attr( $icon_holder_class ); ?>">
74
- <input type="hidden" class="widefat" name="<?php echo $this->get_field_name( 'icon' ); ?>" id="<?php echo $this->get_field_id( 'icon' ); ?>" value="<?php if ( ! empty( $instance['icon'] ) ) { echo esc_html( $instance['icon'] ); } ?>">
75
- <div class="icon-holder">
76
- <p><?php esc_html_e( 'No icon selected :( ...', 'themeisle-companion' ) ?></p>
77
- <i class="<?php if ( ! empty( $instance['icon'] ) ) { echo esc_attr( $instance['icon'] ); } ?>"></i>
78
- </div>
79
- <div class="actions">
80
- <button type="button" class="button add-icon-button"><?php esc_html_e( 'Select Icon', 'themeisle-companion' ) ?></button>
81
- <button type="button" class="button change-icon-button"><?php esc_html_e( 'Change Icon', 'themeisle-companion' ) ?></button>
82
- <button type="button" class="button remove-icon-button"><?php esc_html_e( 'Remove', 'themeisle-companion' ) ?></button>
83
- </div>
84
- </div>
85
- </p>
86
- <p>
87
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title', 'themeisle-companion' ); ?></label><br/>
88
- <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>" id="<?php echo $this->get_field_id( 'title' ); ?>" value="<?php if ( ! empty( $instance['title'] ) ) { echo $instance['title']; } ?>" class="widefat">
89
- </p>
90
- <p>
91
- <label for="<?php echo $this->get_field_id( 'subtitle' ); ?>"><?php esc_html_e( 'Subtitle', 'themeisle-companion' ); ?></label><br/>
92
- <input type="text" name="<?php echo $this->get_field_name( 'subtitle' ); ?>" id="<?php echo $this->get_field_id( 'subtitle' ); ?>" value="<?php if ( ! empty( $instance['subtitle'] ) ) { echo $instance['subtitle']; } ?>" class="widefat">
93
- </p>
94
-
95
- <p>
96
- <label for="<?php echo $this->get_field_id( 'description' ); ?>"><?php esc_html_e( 'Description', 'themeisle-companion' ); ?></label><br/>
97
- <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'description' ); ?>" id="<?php echo $this->get_field_id( 'description' ); ?>"><?php if ( ! empty( $instance['description'] ) ) { echo htmlspecialchars_decode( $instance['description'] ); } ?></textarea>
98
- </p>
99
-
100
- <?php
101
-
102
- }
103
-
104
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/rhea/widgets/progress-bar.widget.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- class Rhea_Progress_Bar extends WP_Widget {
3
-
4
- public function __construct() {
5
- $widget_args = array(
6
- 'description' => esc_html__( 'This widget is designed for Progress Bar Section', 'themeisle-companion' ),
7
- );
8
- parent::__construct( 'rhea-progress-bar', esc_html__( '[Rhea] - Progress Bar', 'themeisle-companion' ), $widget_args );
9
- }
10
-
11
- function widget( $args, $instance ) {
12
-
13
- extract( $args );
14
-
15
- if ( ! empty( $before_widget ) ) {
16
- echo $before_widget;
17
- }
18
-
19
- $percentage = ! empty( $instance['percentage'] ) ? $instance['percentage'] : '0';
20
-
21
- ?>
22
-
23
- <div class="progress-holder">
24
- <?php
25
- if ( ! empty( $instance['title'] ) ) {
26
- echo '<h3>' . esc_html( $instance['title'] ) . '</h3>';
27
- }
28
-
29
- if ( ! empty( $instance['info'] ) ) {
30
- echo '<span class="completion-rate" style="width: ' . absint( $percentage ) . '%">' . esc_html( $instance['info'] ) . '</span>';
31
- }
32
-
33
- ?>
34
- <div class="progress">
35
- <div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo absint( $percentage ) ?>%"></div>
36
- </div>
37
- </div>
38
-
39
- <?php
40
-
41
- if ( ! empty( $after_widget ) ) {
42
- echo $after_widget;
43
- }
44
-
45
- }
46
-
47
- function update( $new_instance, $old_instance ) {
48
-
49
- $instance = $old_instance;
50
- $instance['title'] = stripslashes( wp_filter_post_kses( $new_instance['title'] ) );
51
- $instance['info'] = strip_tags( $new_instance['info'] );
52
- $instance['percentage'] = strip_tags( $new_instance['percentage'] );
53
-
54
- return $instance;
55
-
56
- }
57
-
58
- function form( $instance ) {
59
- ?>
60
-
61
- <p>
62
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title', 'themeisle-companion' ); ?></label><br/>
63
- <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>" id="<?php echo $this->get_field_id( 'title' ); ?>" value="<?php if ( ! empty( $instance['title'] ) ) { echo $instance['title']; } ?>" placeholder="Wordpress" class="widefat">
64
- </p>
65
- <p>
66
- <label for="<?php echo $this->get_field_id( 'info' ); ?>"><?php esc_html_e( 'Info', 'themeisle-companion' ); ?></label><br/>
67
- <input type="text" name="<?php echo $this->get_field_name( 'info' ); ?>" id="<?php echo $this->get_field_id( 'info' ); ?>" value="<?php if ( ! empty( $instance['info'] ) ) { echo $instance['info']; } ?>" placeholder="70%" class="widefat">
68
- </p>
69
- <p>
70
- <label for="<?php echo $this->get_field_id( 'percentage' ); ?>"><?php esc_html_e( 'Percentage','themeisle-companion' ); ?></label><br />
71
- <input type="text" name="<?php echo $this->get_field_name( 'percentage' ); ?>" id="<?php echo $this->get_field_id( 'percentage' ); ?>" value="<?php if ( ! empty( $instance['percentage'] ) ) { echo $instance['percentage']; } ?>" placeholder="70" class="widefat">
72
- </p>
73
-
74
- <?php
75
-
76
- }
77
-
78
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/companion-legacy/inc/shop-isle/class-template-loader.php CHANGED
@@ -41,7 +41,8 @@ class Shop_Isle_Template_Loader {
41
  } else {
42
  // Add a filter to the wp 4.7 version attributes metabox
43
  add_filter(
44
- 'theme_page_templates', array( $this, 'add_new_template' )
 
45
  );
46
  }
47
  // Add a filter to the save post to inject out template into the page cache
@@ -53,7 +54,7 @@ class Shop_Isle_Template_Loader {
53
  // template assigned and return it's path
54
  add_filter(
55
  'template_include',
56
- array( $this, 'view_project_template')
57
  );
58
  // Add your templates to this array.
59
  $this->templates = array(
@@ -63,7 +64,6 @@ class Shop_Isle_Template_Loader {
63
  }
64
  /**
65
  * Adds our template to the page dropdown for v4.7+
66
- *
67
  */
68
  public function add_new_template( $posts_templates ) {
69
  $posts_templates = array_merge( $posts_templates, $this->templates );
@@ -83,7 +83,7 @@ class Shop_Isle_Template_Loader {
83
  $templates = array();
84
  }
85
  // New cache, therefore remove the old one
86
- wp_cache_delete( $cache_key , 'themes');
87
  // Now add our template to the list of templates by merging our templates
88
  // with the existing templates array from the cache.
89
  $templates = array_merge( $templates, $this->templates );
@@ -104,22 +104,26 @@ class Shop_Isle_Template_Loader {
104
  return $template;
105
  }
106
  // Return default template if we don't have a custom one defined
107
- if ( ! isset( $this->templates[get_post_meta(
108
- $post->ID, '_wp_page_template', true
109
- )] ) ) {
 
 
 
 
110
  return $template;
111
  }
112
- $file = plugin_dir_path( __FILE__ ). get_post_meta(
113
- $post->ID, '_wp_page_template', true
114
- );
 
 
115
  // Just to be safe, we check if the file exist first
116
  if ( file_exists( $file ) ) {
117
  return $file;
118
- } else {
119
- echo $file;
120
  }
121
  // Return template
122
  return $template;
123
  }
124
  }
125
- add_action( 'plugins_loaded', array( 'Shop_Isle_Template_Loader', 'get_instance' ) );
41
  } else {
42
  // Add a filter to the wp 4.7 version attributes metabox
43
  add_filter(
44
+ 'theme_page_templates',
45
+ array( $this, 'add_new_template' )
46
  );
47
  }
48
  // Add a filter to the save post to inject out template into the page cache
54
  // template assigned and return it's path
55
  add_filter(
56
  'template_include',
57
+ array( $this, 'view_project_template' )
58
  );
59
  // Add your templates to this array.
60
  $this->templates = array(
64
  }
65
  /**
66
  * Adds our template to the page dropdown for v4.7+
 
67
  */
68
  public function add_new_template( $posts_templates ) {
69
  $posts_templates = array_merge( $posts_templates, $this->templates );
83
  $templates = array();
84
  }
85
  // New cache, therefore remove the old one
86
+ wp_cache_delete( $cache_key, 'themes' );
87
  // Now add our template to the list of templates by merging our templates
88
  // with the existing templates array from the cache.
89
  $templates = array_merge( $templates, $this->templates );
104
  return $template;
105
  }
106
  // Return default template if we don't have a custom one defined
107
+ if ( ! isset(
108
+ $this->templates[ get_post_meta(
109
+ $post->ID,
110
+ '_wp_page_template',
111
+ true
112
+ ) ]
113
+ ) ) {
114
  return $template;
115
  }
116
+ $file = plugin_dir_path( __FILE__ ) . get_post_meta(
117
+ $post->ID,
118
+ '_wp_page_template',
119
+ true
120
+ );
121
  // Just to be safe, we check if the file exist first
122
  if ( file_exists( $file ) ) {
123
  return $file;
 
 
124
  }
125
  // Return template
126
  return $template;
127
  }
128
  }
129
+ add_action( 'plugins_loaded', array( 'Shop_Isle_Template_Loader', 'get_instance' ) );
obfx_modules/companion-legacy/inc/shop-isle/content-slider.php CHANGED
@@ -2,18 +2,47 @@
2
  /**
3
  *
4
  * ***** SLIDER *******
5
- *
6
  */
7
 
8
- $shop_isle_homepage_slider_shortcode = get_theme_mod('shop_isle_homepage_slider_shortcode');
9
 
10
- echo '<section id="home" class="home-section home-parallax home-fade'. (empty($shop_isle_homepage_slider_shortcode) ? ' home-full-height' : ' home-slider-plugin' ) .'">';
11
 
12
- if( !empty($shop_isle_homepage_slider_shortcode) ) {
13
  echo do_shortcode( $shop_isle_homepage_slider_shortcode );
14
  } else {
15
 
16
- $shop_isle_slider = get_theme_mod( 'shop_isle_slider',json_encode( array( array( 'image_url' => get_template_directory_uri() . '/assets/images/slide1.jpg', 'link' => '#', 'text' => __( 'ShopIsle','themeisle-companion' ), 'subtext' => __( 'WooCommerce Theme','themeisle-companion' ), 'label' => __( 'FIND OUT MORE','themeisle-companion' ) ), array( 'image_url' => get_template_directory_uri() . '/assets/images/slide2.jpg', 'link' => '#', 'text' => __( 'ShopIsle','themeisle-companion' ), 'subtext' => __( 'Hight quality store','themeisle-companion' ), 'label' => __( 'FIND OUT MORE','themeisle-companion' ) ), array( 'image_url' => get_template_directory_uri() . '/assets/images/slide3.jpg', 'link' => '#', 'text' => __( 'ShopIsle','themeisle-companion' ), 'subtext' => __( 'Responsive Theme','themeisle-companion' ), 'label' => __( 'FIND OUT MORE','themeisle-companion' ) ) ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  if ( ! empty( $shop_isle_slider ) ) {
19
 
@@ -42,18 +71,18 @@ if( !empty($shop_isle_homepage_slider_shortcode) ) {
42
  if ( ! empty( $shop_isle_slide->text ) ) {
43
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
44
  $shop_isle_slider_text = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide text', $shop_isle_slide->text );
45
- echo '<div class="hs-title-size-4 font-alt mb-30">' . $shop_isle_slider_text . '</div>';
46
  } else {
47
- echo '<div class="hs-title-size-4 font-alt mb-30">' . $shop_isle_slide->text . '</div>';
48
  }
49
  }
50
 
51
  if ( ! empty( $shop_isle_slide->subtext ) ) {
52
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
53
  $shop_isle_slider_subtext = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide subtext', $shop_isle_slide->subtext );
54
- echo '<div class="hs-title-size-1 font-alt mb-40">' . $shop_isle_slider_subtext . '</div>';
55
  } else {
56
- echo '<div class="hs-title-size-1 font-alt mb-40">' . $shop_isle_slide->subtext . '</div>';
57
  }
58
  }
59
 
@@ -61,9 +90,9 @@ if( !empty($shop_isle_homepage_slider_shortcode) ) {
61
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
62
  $shop_isle_slider_link = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide button link', $shop_isle_slide->link );
63
  $shop_isle_slider_label = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide button label', $shop_isle_slide->label );
64
- echo '<a href="' . esc_url( $shop_isle_slider_link ) . '" class="section-scroll btn btn-border-w btn-round">' . $shop_isle_slider_label . '</a>';
65
  } else {
66
- echo '<a href="' . esc_url( $shop_isle_slide->link ) . '" class="section-scroll btn btn-border-w btn-round">' . $shop_isle_slide->label . '</a>';
67
  }
68
  }
69
  echo '</div>';
2
  /**
3
  *
4
  * ***** SLIDER *******
 
5
  */
6
 
7
+ $shop_isle_homepage_slider_shortcode = get_theme_mod( 'shop_isle_homepage_slider_shortcode' );
8
 
9
+ echo '<section id="home" class="home-section home-parallax home-fade' . ( empty( $shop_isle_homepage_slider_shortcode ) ? ' home-full-height' : ' home-slider-plugin' ) . '">';
10
 
11
+ if ( ! empty( $shop_isle_homepage_slider_shortcode ) ) {
12
  echo do_shortcode( $shop_isle_homepage_slider_shortcode );
13
  } else {
14
 
15
+ $shop_isle_slider = get_theme_mod(
16
+ 'shop_isle_slider',
17
+ wp_json_encode(
18
+ array(
19
+ array(
20
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide1.jpg',
21
+ 'link' => '#',
22
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
23
+ 'subtext' => __( 'WooCommerce Theme', 'themeisle-companion' ),
24
+ 'label' => __( 'FIND OUT MORE', 'themeisle-companion' ),
25
+ ),
26
+ array(
27
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide2.jpg',
28
+ 'link' => '#',
29
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
30
+ 'subtext' => __( 'Hight quality store', 'themeisle-companion' ),
31
+ 'label' => __( 'FIND OUT MORE', 'themeisle-companion' ),
32
+ ),
33
+ array(
34
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide3.jpg',
35
+ 'link' => '#',
36
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
37
+ 'subtext' => __( 'Responsive Theme', 'themeisle-companion' ),
38
+ 'label' => __(
39
+ 'FIND OUT MORE',
40
+ 'themeisle-companion'
41
+ ),
42
+ ),
43
+ )
44
+ )
45
+ );
46
 
47
  if ( ! empty( $shop_isle_slider ) ) {
48
 
71
  if ( ! empty( $shop_isle_slide->text ) ) {
72
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
73
  $shop_isle_slider_text = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide text', $shop_isle_slide->text );
74
+ echo '<div class="hs-title-size-4 font-alt mb-30">' . wp_kses_post( $shop_isle_slider_text ) . '</div>';
75
  } else {
76
+ echo '<div class="hs-title-size-4 font-alt mb-30">' . wp_kses_post( $shop_isle_slide->text ) . '</div>';
77
  }
78
  }
79
 
80
  if ( ! empty( $shop_isle_slide->subtext ) ) {
81
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
82
  $shop_isle_slider_subtext = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide subtext', $shop_isle_slide->subtext );
83
+ echo '<div class="hs-title-size-1 font-alt mb-40">' . wp_kses_post( $shop_isle_slider_subtext ) . '</div>';
84
  } else {
85
+ echo '<div class="hs-title-size-1 font-alt mb-40">' . wp_kses_post( $shop_isle_slide->subtext ) . '</div>';
86
  }
87
  }
88
 
90
  if ( function_exists( 'icl_t' ) && ! empty( $shop_isle_slide->id ) ) {
91
  $shop_isle_slider_link = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide button link', $shop_isle_slide->link );
92
  $shop_isle_slider_label = icl_t( 'Slide ' . $shop_isle_slide->id, 'Slide button label', $shop_isle_slide->label );
93
+ echo '<a href="' . esc_url( $shop_isle_slider_link ) . '" class="section-scroll btn btn-border-w btn-round">' . wp_kses_post( $shop_isle_slider_label ) . '</a>';
94
  } else {
95
+ echo '<a href="' . esc_url( $shop_isle_slide->link ) . '" class="section-scroll btn btn-border-w btn-round">' . wp_kses_post( $shop_isle_slide->label ) . '</a>';
96
  }
97
  }
98
  echo '</div>';
obfx_modules/companion-legacy/inc/shop-isle/customizer.php CHANGED
@@ -8,7 +8,7 @@
8
  *
9
  * @param $wp_customize
10
  */
11
- function shop_isle_companion_customize_register($wp_customize) {
12
 
13
  $selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';
14
 
@@ -20,7 +20,7 @@ function shop_isle_companion_customize_register($wp_customize) {
20
  * Render about page instruction
21
  */
22
  public function render_content() {
23
- echo __( 'To customize the About us Page you need to first select the template "About us page" for the page you want to use for this purpose. Then open that page in the browser and press "Customize" in the top bar.', 'themeisle-companion' ) . '<br><br>' . __( 'Need further assistance? Check out this', 'themeisle-companion' ) . ' <a href="http://docs.themeisle.com/article/211-shopisle-customizing-the-contact-and-about-us-page" target="_blank">' . __( 'doc', 'themeisle-companion' ) . '</a>';
24
  }
25
  }
26
 
@@ -29,11 +29,14 @@ function shop_isle_companion_customize_register($wp_customize) {
29
 
30
 
31
  /*==========SLIDER SECTION==========*/
32
- $wp_customize->add_section( 'shop_isle_slider_section', array(
33
- 'title' => __( 'Slider section', 'themeisle-companion' ),
34
- 'panel' => 'shop_isle_front_page_sections',
35
- 'priority' => 1,
36
- ) );
 
 
 
37
 
38
 
39
  if ( ! empty( $shop_isle_big_title_image ) || ! empty( $shop_isle_big_title_title ) || ! empty( $shop_isle_big_title_subtitle ) || ! empty( $shop_isle_big_title_button_label ) || ! empty( $shop_isle_big_title_button_link ) ) {
@@ -41,307 +44,418 @@ function shop_isle_companion_customize_register($wp_customize) {
41
  }
42
 
43
  /* Slider */
44
- $wp_customize->add_setting( 'shop_isle_slider', array(
 
 
45
  'sanitize_callback' => 'shop_isle_sanitize_repeater',
46
- 'default' => json_encode( array(
47
- array(
48
- 'image_url' => get_template_directory_uri() . '/assets/images/slide1.jpg',
49
- 'link' => '#',
50
- 'text' => __( 'ShopIsle', 'themeisle-companion' ),
51
- 'subtext' => __( 'WooCommerce Theme', 'themeisle-companion' ),
52
- 'label' => __( 'FIND OUT MORE', 'themeisle-companion' )
53
- ),
54
- array(
55
- 'image_url' => get_template_directory_uri() . '/assets/images/slide2.jpg',
56
- 'link' => '#',
57
- 'text' => __( 'ShopIsle', 'themeisle-companion' ),
58
- 'subtext' => __( 'Hight quality store', 'themeisle-companion' ),
59
- 'label' => __( 'FIND OUT MORE', 'themeisle-companion' )
60
- ),
61
  array(
62
- 'image_url' => get_template_directory_uri() . '/assets/images/slide3.jpg',
63
- 'link' => '#',
64
- 'text' => __( 'ShopIsle', 'themeisle-companion' ),
65
- 'subtext' => __( 'Responsive Theme', 'themeisle-companion' ),
66
- 'label' => __( 'FIND OUT MORE', 'themeisle-companion' )
67
- )
68
- ) ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  )
70
  );
71
 
72
  if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
73
- $wp_customize->add_control( new Shop_Isle_Repeater_Controler( $wp_customize, 'shop_isle_slider', array(
74
- 'label' => __( 'Add new slide', 'themeisle-companion' ),
75
- 'section' => 'shop_isle_slider_section',
76
- 'active_callback' => 'is_front_page',
77
- 'priority' => 2,
78
- 'shop_isle_image_control' => true,
79
- 'shop_isle_text_control' => true,
80
- 'shop_isle_link_control' => true,
81
- 'shop_isle_subtext_control' => true,
82
- 'shop_isle_label_control' => true,
83
- 'shop_isle_icon_control' => false,
84
- 'shop_isle_box_label' => __( 'Slide', 'themeisle-companion' ),
85
- 'shop_isle_box_add_label' => __( 'Add new slide', 'themeisle-companion' ),
86
- ) ) );
 
 
 
 
 
 
87
  }
88
 
89
  /* Slider shortcode */
90
- $wp_customize->add_setting( 'shop_isle_homepage_slider_shortcode', array(
91
- 'sanitize_callback' => 'shop_isle_sanitize_text',
92
- ) );
93
-
94
- $wp_customize->add_control( 'shop_isle_homepage_slider_shortcode', array(
95
- 'label' => __( 'Slider shortcode', 'themeisle-companion' ),
96
- 'description' => __( 'You can replace the homepage slider with any plugin you like, just copy the shortcode generated and paste it here.', 'themeisle-companion' ),
97
- 'section' => 'shop_isle_slider_section',
98
- 'active_callback' => 'is_front_page',
99
- 'priority' => 10
100
- ) );
101
-
102
- /*********************************/
103
- /****** About us page **********/
104
- /*********************************/
105
- if ( class_exists( 'WP_Customize_Panel' ) ):
106
- $wp_customize->add_panel( 'panel_team', array(
107
- 'priority' => 52,
108
- 'capability' => 'edit_theme_options',
109
- 'theme_supports' => '',
110
- 'title' => __( 'About us page', 'themeisle-companion' )
111
- ) );
112
- $wp_customize->add_section( 'shop_isle_about_page_section', array(
113
- 'title' => __( 'Our team', 'themeisle-companion' ),
114
- 'priority' => 1,
115
- 'panel' => 'panel_team'
116
- ) );
117
- else:
118
- $wp_customize->add_section( 'shop_isle_about_page_section', array(
119
- 'title' => __( 'About us page - our team', 'themeisle-companion' ),
120
- 'priority' => 52
121
- ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  endif;
123
  /* Our team title */
124
- $wp_customize->add_setting( 'shop_isle_our_team_title', array(
125
- 'sanitize_callback' => 'shop_isle_sanitize_text',
126
- 'default' => __( 'Meet our team', 'themeisle-companion' ),
127
- 'transport' => $selective_refresh,
128
- ) );
129
- $wp_customize->add_control( 'shop_isle_our_team_title', array(
130
- 'label' => __( 'Title', 'themeisle-companion' ),
131
- 'section' => 'shop_isle_about_page_section',
132
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
133
- 'priority' => 1,
134
- ) );
 
 
 
 
 
 
135
  /* Our team subtitle */
136
- $wp_customize->add_setting( 'shop_isle_our_team_subtitle', array(
137
- 'sanitize_callback' => 'shop_isle_sanitize_text',
138
- 'default' => __( 'An awesome way to introduce the members of your team.', 'themeisle-companion' ),
139
- 'transport' => $selective_refresh,
140
- ) );
141
- $wp_customize->add_control( 'shop_isle_our_team_subtitle', array(
142
- 'label' => __( 'Subtitle', 'themeisle-companion' ),
143
- 'section' => 'shop_isle_about_page_section',
144
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
145
- 'priority' => 2,
146
- ) );
 
 
 
 
 
 
147
  /* Team members */
148
- $wp_customize->add_setting( 'shop_isle_team_members', array(
149
- 'sanitize_callback' => 'shop_isle_sanitize_repeater',
150
- 'transport' => $selective_refresh,
151
- 'default' => json_encode( array(
152
- array(
153
- 'image_url' => get_template_directory_uri() . '/assets/images/team1.jpg',
154
- 'text' => 'Eva Bean',
155
- 'subtext' => 'Developer',
156
- 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  array(
159
- 'image_url' => get_template_directory_uri() . '/assets/images/team2.jpg',
160
- 'text' => 'Maria Woods',
161
- 'subtext' => 'Designer',
162
- 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.'
163
- ),
 
 
 
164
  array(
165
- 'image_url' => get_template_directory_uri() . '/assets/images/team3.jpg',
166
- 'text' => 'Booby Stone',
167
- 'subtext' => 'Director',
168
- 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.'
169
- ),
 
 
 
170
  array(
171
- 'image_url' => get_template_directory_uri() . '/assets/images/team4.jpg',
172
- 'text' => 'Anna Neaga',
173
- 'subtext' => 'Art Director',
174
- 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.'
175
- )
176
- ) ),
177
- ) );
178
- if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
179
- $wp_customize->add_control( new Shop_Isle_Repeater_Controler( $wp_customize, 'shop_isle_team_members', array(
180
- 'label' => __( 'Add new team member', 'themeisle-companion' ),
181
- 'section' => 'shop_isle_about_page_section',
182
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
183
- 'priority' => 3,
184
- 'shop_isle_image_control' => true,
185
- 'shop_isle_link_control' => false,
186
- 'shop_isle_text_control' => true,
187
- 'shop_isle_subtext_control' => true,
188
- 'shop_isle_label_control' => false,
189
- 'shop_isle_icon_control' => false,
190
- 'shop_isle_description_control' => true,
191
- 'shop_isle_box_label' => __( 'Team member', 'themeisle-companion' ),
192
- 'shop_isle_box_add_label' => __( 'Add new team member', 'themeisle-companion' )
193
- ) ) );
194
- }
195
- /***********************************************************************************/
196
- /****** About us page - instructions for users when not on About us page *********/
197
- /***********************************************************************************/
198
- $wp_customize->add_section( 'shop_isle_aboutus_page_instructions', array(
199
- 'title' => __( 'About us page', 'themeisle-companion' ),
200
- 'priority' => 52
201
- ) );
202
- $wp_customize->add_setting( 'shop_isle_aboutus_page_instructions', array(
203
- 'sanitize_callback' => 'shop_isle_sanitize_text'
204
- ) );
205
- $wp_customize->add_control( new ShopIsle_Companion_Aboutus_Page_Instructions( $wp_customize, 'shop_isle_aboutus_page_instructions', array(
206
- 'section' => 'shop_isle_aboutus_page_instructions',
207
- 'active_callback' => 'shop_isle_companion_is_not_aboutus_page',
208
- ) ) );
209
- if ( class_exists( 'WP_Customize_Panel' ) ):
210
- $wp_customize->add_section( 'shop_isle_about_page_video_section', array(
211
- 'title' => __( 'Video', 'themeisle-companion' ),
212
- 'priority' => 2,
213
- 'panel' => 'panel_team'
214
- ) );
215
- else:
216
- $wp_customize->add_section( 'shop_isle_about_page_video_section', array(
217
- 'title' => __( 'About us page - video', 'themeisle-companion' ),
218
- 'priority' => 53
219
- ) );
220
  endif;
221
  /* Video title */
222
- $wp_customize->add_setting( 'shop_isle_about_page_video_title', array(
223
- 'sanitize_callback' => 'shop_isle_sanitize_text',
224
- 'default' => __( 'Presentation', 'themeisle-companion' ),
225
- 'transport' => $selective_refresh,
226
- ) );
227
- $wp_customize->add_control( 'shop_isle_about_page_video_title', array(
228
- 'label' => __( 'Title', 'themeisle-companion' ),
229
- 'section' => 'shop_isle_about_page_video_section',
230
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
231
- 'priority' => 1,
232
- ) );
 
 
 
 
 
 
233
  /* Video subtitle */
234
- $wp_customize->add_setting( 'shop_isle_about_page_video_subtitle', array(
235
- 'sanitize_callback' => 'shop_isle_sanitize_text',
236
- 'default' => __( 'What the video about our new products', 'themeisle-companion' ),
237
- 'transport' => $selective_refresh,
238
- ) );
239
- $wp_customize->add_control( 'shop_isle_about_page_video_subtitle', array(
240
- 'label' => __( 'Subtitle', 'themeisle-companion' ),
241
- 'section' => 'shop_isle_about_page_video_section',
242
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
243
- 'priority' => 2,
244
- ) );
 
 
 
 
 
 
245
  /* Video background */
246
- $wp_customize->add_setting( 'shop_isle_about_page_video_background', array(
247
- 'default' => get_template_directory_uri() . '/assets/images/background-video.jpg',
248
- 'transport' => 'postMessage',
249
- 'sanitize_callback' => 'esc_url'
250
- ) );
251
- $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'shop_isle_about_page_video_background', array(
252
- 'label' => __( 'Background', 'themeisle-companion' ),
253
- 'section' => 'shop_isle_about_page_video_section',
254
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
255
- 'priority' => 3,
256
- ) ) );
 
 
 
 
 
 
 
 
 
257
  /* Video link */
258
- $wp_customize->add_setting( 'shop_isle_about_page_video_link', array(
259
- 'sanitize_callback' => 'shop_isle_sanitize_text',
260
- 'transport' => 'postMessage'
261
- ) );
262
- $wp_customize->add_control( 'shop_isle_about_page_video_link', array(
263
- 'label' => __( 'Video', 'themeisle-companion' ),
264
- 'section' => 'shop_isle_about_page_video_section',
265
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
266
- 'priority' => 4,
267
- ) );
268
- if ( class_exists( 'WP_Customize_Panel' ) ):
269
- $wp_customize->add_section( 'shop_isle_about_page_advantages_section', array(
270
- 'title' => __( 'Our advantages', 'themeisle-companion' ),
271
- 'priority' => 3,
272
- 'panel' => 'panel_team'
273
- ) );
274
- else:
275
- $wp_customize->add_section( 'shop_isle_about_page_advantages_section', array(
276
- 'title' => __( 'About us page - our advantages', 'themeisle-companion' ),
277
- 'priority' => 54
278
- ) );
 
 
 
 
 
 
 
 
 
 
 
 
279
  endif;
280
  /* Our advantages title */
281
- $wp_customize->add_setting( 'shop_isle_our_advantages_title', array(
282
- 'sanitize_callback' => 'shop_isle_sanitize_text',
283
- 'default' => __( 'Our advantages', 'themeisle-companion' ),
284
- 'transport' => $selective_refresh,
285
- ) );
286
- $wp_customize->add_control( 'shop_isle_our_advantages_title', array(
287
- 'label' => __( 'Title', 'themeisle-companion' ),
288
- 'section' => 'shop_isle_about_page_advantages_section',
289
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
290
- 'priority' => 1,
291
- ) );
 
 
 
 
 
 
292
  /* Advantages */
293
- $wp_customize->add_setting( 'shop_isle_advantages', array(
294
- 'sanitize_callback' => 'shop_isle_sanitize_repeater',
295
- 'transport' => $selective_refresh,
296
- 'default' => json_encode( array(
297
- array(
298
- 'icon_value' => 'icon_lightbulb',
299
- 'text' => __( 'Ideas and concepts', 'themeisle-companion' ),
300
- 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' )
301
- ),
302
- array(
303
- 'icon_value' => 'icon_tools',
304
- 'text' => __( 'Designs & interfaces', 'themeisle-companion' ),
305
- 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' )
306
- ),
307
- array(
308
- 'icon_value' => 'icon_cogs',
309
- 'text' => __( 'Highly customizable', 'themeisle-companion' ),
310
- 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' )
 
 
 
 
 
 
 
 
 
 
311
  ),
312
- array(
313
- 'icon_value' => 'icon_like',
314
- 'text' => __( 'Easy to use', 'themeisle-companion' ),
315
- 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' )
316
- )
317
- ) ),
318
- ) );
319
  if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
320
- $wp_customize->add_control( new Shop_Isle_Repeater_Controler( $wp_customize, 'shop_isle_advantages', array(
321
- 'label' => __( 'Add new advantage', 'themeisle-companion' ),
322
- 'section' => 'shop_isle_about_page_advantages_section',
323
- 'active_callback' => 'shop_isle_companion_is_aboutus_page',
324
- 'priority' => 2,
325
- 'shop_isle_image_control' => false,
326
- 'shop_isle_link_control' => false,
327
- 'shop_isle_text_control' => true,
328
- 'shop_isle_subtext_control' => true,
329
- 'shop_isle_label_control' => false,
330
- 'shop_isle_icon_control' => true,
331
- 'shop_isle_description_control' => false,
332
- 'shop_isle_box_label' => __( 'Advantage', 'themeisle-companion' ),
333
- 'shop_isle_box_add_label' => __( 'Add new advantage', 'themeisle-companion' )
334
- ) ) );
 
 
 
 
 
 
335
  }
336
  }
337
 
338
 
339
- $current_theme = wp_get_theme();
340
  $shop_isle_wporg_flag = get_option( 'shop_isle_wporg_flag' );
341
- $theme_name = $current_theme->template;
342
 
343
- if ( isset($shop_isle_wporg_flag) && ( 'true' == $shop_isle_wporg_flag ) && ( $theme_name == 'shop-isle' ) ) {
344
- add_action('customize_register', 'shop_isle_companion_customize_register',100);
345
  }
346
 
347
  /**
@@ -350,7 +464,7 @@ if ( isset($shop_isle_wporg_flag) && ( 'true' == $shop_isle_wporg_flag ) && ( $
350
  * @return bool
351
  */
352
  function shop_isle_companion_is_aboutus_page() {
353
- return is_page_template( 'template-about.php' );
354
  }
355
 
356
  /**
@@ -359,7 +473,7 @@ function shop_isle_companion_is_aboutus_page() {
359
  * @return bool
360
  */
361
  function shop_isle_companion_is_not_aboutus_page() {
362
- return ! is_page_template( 'template-about.php' );
363
  }
364
 
365
  if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
@@ -376,7 +490,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
376
 
377
  /* Our team */
378
  $wp_customize->selective_refresh->add_partial(
379
- 'shop_isle_our_team_title', array(
 
380
  'selector' => '.page-template-template-about .meet-out-team-title',
381
  'render_callback' => 'shop_isle_about_page_team_title_callback',
382
  'container_inclusive' => false,
@@ -384,7 +499,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
384
  );
385
 
386
  $wp_customize->selective_refresh->add_partial(
387
- 'shop_isle_our_team_subtitle', array(
 
388
  'selector' => '.page-template-template-about .meet-out-team-subtitle',
389
  'render_callback' => 'shop_isle_about_page_team_subtitle_callback',
390
  'container_inclusive' => false,
@@ -392,7 +508,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
392
  );
393
 
394
  $wp_customize->selective_refresh->add_partial(
395
- 'shop_isle_team_members', array(
 
396
  'selector' => '.page-template-template-about .about-team-member',
397
  'render_callback' => 'shop_isle_about_page_display_team_members',
398
  'container_inclusive' => true,
@@ -401,7 +518,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
401
 
402
  /* Video */
403
  $wp_customize->selective_refresh->add_partial(
404
- 'shop_isle_about_page_video_title', array(
 
405
  'selector' => '.page-template-template-about .video-box .video-title',
406
  'render_callback' => 'shop_isle_about_page_video_title_callback',
407
  'container_inclusive' => false,
@@ -409,7 +527,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
409
  );
410
 
411
  $wp_customize->selective_refresh->add_partial(
412
- 'shop_isle_about_page_video_subtitle', array(
 
413
  'selector' => '.page-template-template-about .video-box .video-subtitle',
414
  'render_callback' => 'shop_isle_about_page_video_subtitle_callback',
415
  'container_inclusive' => false,
@@ -418,7 +537,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
418
 
419
  /* Our advantages */
420
  $wp_customize->selective_refresh->add_partial(
421
- 'shop_isle_our_advantages_title', array(
 
422
  'selector' => '.page-template-template-about .module-title.our_advantages',
423
  'render_callback' => 'shop_isle_about_page_advantages_title_callback',
424
  'container_inclusive' => false,
@@ -426,7 +546,8 @@ if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
426
  );
427
 
428
  $wp_customize->selective_refresh->add_partial(
429
- 'shop_isle_advantages', array(
 
430
  'selector' => '.page-template-template-about .module-advantages .multi-columns-row',
431
  'render_callback' => 'shop_isle_about_page_display_advantages',
432
  'container_inclusive' => true,
@@ -466,7 +587,8 @@ if ( ! function_exists( 'shop_isle_about_page_display_team_members' ) ) :
466
  function shop_isle_about_page_display_team_members() {
467
 
468
  $shop_isle_team_members = get_theme_mod(
469
- 'shop_isle_team_members', json_encode(
 
470
  array(
471
  array(
472
  'image_url' => get_template_directory_uri() . '/assets/images/team1.jpg',
@@ -589,7 +711,8 @@ if ( ! function_exists( 'shop_isle_about_page_display_advantages' ) ) :
589
  function shop_isle_about_page_display_advantages() {
590
 
591
  $shop_isle_advantages = get_theme_mod(
592
- 'shop_isle_advantages', json_encode(
 
593
  array(
594
  array(
595
  'icon_value' => 'icon_lightbulb',
8
  *
9
  * @param $wp_customize
10
  */
11
+ function shop_isle_companion_customize_register( $wp_customize ) {
12
 
13
  $selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';
14
 
20
  * Render about page instruction
21
  */
22
  public function render_content() {
23
+ echo wp_kses_post( __( 'To customize the About us Page you need to first select the template "About us page" for the page you want to use for this purpose. Then open that page in the browser and press "Customize" in the top bar.', 'themeisle-companion' ) . '<br><br>' . __( 'Need further assistance? Check out this', 'themeisle-companion' ) . ' <a href="http://docs.themeisle.com/article/211-shopisle-customizing-the-contact-and-about-us-page" target="_blank">' . __( 'doc', 'themeisle-companion' ) . '</a>' );
24
  }
25
  }
26
 
29
 
30
 
31
  /*==========SLIDER SECTION==========*/
32
+ $wp_customize->add_section(
33
+ 'shop_isle_slider_section',
34
+ array(
35
+ 'title' => __( 'Slider section', 'themeisle-companion' ),
36
+ 'panel' => 'shop_isle_front_page_sections',
37
+ 'priority' => 1,
38
+ )
39
+ );
40
 
41
 
42
  if ( ! empty( $shop_isle_big_title_image ) || ! empty( $shop_isle_big_title_title ) || ! empty( $shop_isle_big_title_subtitle ) || ! empty( $shop_isle_big_title_button_label ) || ! empty( $shop_isle_big_title_button_link ) ) {
44
  }
45
 
46
  /* Slider */
47
+ $wp_customize->add_setting(
48
+ 'shop_isle_slider',
49
+ array(
50
  'sanitize_callback' => 'shop_isle_sanitize_repeater',
51
+ 'default' => json_encode(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  array(
53
+ array(
54
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide1.jpg',
55
+ 'link' => '#',
56
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
57
+ 'subtext' => __( 'WooCommerce Theme', 'themeisle-companion' ),
58
+ 'label' => __( 'FIND OUT MORE', 'themeisle-companion' ),
59
+ ),
60
+ array(
61
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide2.jpg',
62
+ 'link' => '#',
63
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
64
+ 'subtext' => __( 'Hight quality store', 'themeisle-companion' ),
65
+ 'label' => __( 'FIND OUT MORE', 'themeisle-companion' ),
66
+ ),
67
+ array(
68
+ 'image_url' => get_template_directory_uri() . '/assets/images/slide3.jpg',
69
+ 'link' => '#',
70
+ 'text' => __( 'ShopIsle', 'themeisle-companion' ),
71
+ 'subtext' => __( 'Responsive Theme', 'themeisle-companion' ),
72
+ 'label' => __( 'FIND OUT MORE', 'themeisle-companion' ),
73
+ ),
74
+ )
75
+ ),
76
  )
77
  );
78
 
79
  if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
80
+ $wp_customize->add_control(
81
+ new Shop_Isle_Repeater_Controler(
82
+ $wp_customize,
83
+ 'shop_isle_slider',
84
+ array(
85
+ 'label' => __( 'Add new slide', 'themeisle-companion' ),
86
+ 'section' => 'shop_isle_slider_section',
87
+ 'active_callback' => 'is_front_page',
88
+ 'priority' => 2,
89
+ 'shop_isle_image_control' => true,
90
+ 'shop_isle_text_control' => true,
91
+ 'shop_isle_link_control' => true,
92
+ 'shop_isle_subtext_control' => true,
93
+ 'shop_isle_label_control' => true,
94
+ 'shop_isle_icon_control' => false,
95
+ 'shop_isle_box_label' => __( 'Slide', 'themeisle-companion' ),
96
+ 'shop_isle_box_add_label' => __( 'Add new slide', 'themeisle-companion' ),
97
+ )
98
+ )
99
+ );
100
  }
101
 
102
  /* Slider shortcode */
103
+ $wp_customize->add_setting(
104
+ 'shop_isle_homepage_slider_shortcode',
105
+ array(
106
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
107
+ )
108
+ );
109
+
110
+ $wp_customize->add_control(
111
+ 'shop_isle_homepage_slider_shortcode',
112
+ array(
113
+ 'label' => __( 'Slider shortcode', 'themeisle-companion' ),
114
+ 'description' => __( 'You can replace the homepage slider with any plugin you like, just copy the shortcode generated and paste it here.', 'themeisle-companion' ),
115
+ 'section' => 'shop_isle_slider_section',
116
+ 'active_callback' => 'is_front_page',
117
+ 'priority' => 10,
118
+ )
119
+ );
120
+
121
+
122
+ if ( class_exists( 'WP_Customize_Panel' ) ) :
123
+ $wp_customize->add_panel(
124
+ 'panel_team',
125
+ array(
126
+ 'priority' => 52,
127
+ 'capability' => 'edit_theme_options',
128
+ 'theme_supports' => '',
129
+ 'title' => __( 'About us page', 'themeisle-companion' ),
130
+ )
131
+ );
132
+ $wp_customize->add_section(
133
+ 'shop_isle_about_page_section',
134
+ array(
135
+ 'title' => __( 'Our team', 'themeisle-companion' ),
136
+ 'priority' => 1,
137
+ 'panel' => 'panel_team',
138
+ )
139
+ );
140
+ else :
141
+ $wp_customize->add_section(
142
+ 'shop_isle_about_page_section',
143
+ array(
144
+ 'title' => __( 'About us page - our team', 'themeisle-companion' ),
145
+ 'priority' => 52,
146
+ )
147
+ );
148
  endif;
149
  /* Our team title */
150
+ $wp_customize->add_setting(
151
+ 'shop_isle_our_team_title',
152
+ array(
153
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
154
+ 'default' => __( 'Meet our team', 'themeisle-companion' ),
155
+ 'transport' => $selective_refresh,
156
+ )
157
+ );
158
+ $wp_customize->add_control(
159
+ 'shop_isle_our_team_title',
160
+ array(
161
+ 'label' => __( 'Title', 'themeisle-companion' ),
162
+ 'section' => 'shop_isle_about_page_section',
163
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
164
+ 'priority' => 1,
165
+ )
166
+ );
167
  /* Our team subtitle */
168
+ $wp_customize->add_setting(
169
+ 'shop_isle_our_team_subtitle',
170
+ array(
171
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
172
+ 'default' => __( 'An awesome way to introduce the members of your team.', 'themeisle-companion' ),
173
+ 'transport' => $selective_refresh,
174
+ )
175
+ );
176
+ $wp_customize->add_control(
177
+ 'shop_isle_our_team_subtitle',
178
+ array(
179
+ 'label' => __( 'Subtitle', 'themeisle-companion' ),
180
+ 'section' => 'shop_isle_about_page_section',
181
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
182
+ 'priority' => 2,
183
+ )
184
+ );
185
  /* Team members */
186
+ $wp_customize->add_setting(
187
+ 'shop_isle_team_members',
188
+ array(
189
+ 'sanitize_callback' => 'shop_isle_sanitize_repeater',
190
+ 'transport' => $selective_refresh,
191
+ 'default' => json_encode(
192
+ array(
193
+ array(
194
+ 'image_url' => get_template_directory_uri() . '/assets/images/team1.jpg',
195
+ 'text' => 'Eva Bean',
196
+ 'subtext' => 'Developer',
197
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.',
198
+ ),
199
+ array(
200
+ 'image_url' => get_template_directory_uri() . '/assets/images/team2.jpg',
201
+ 'text' => 'Maria Woods',
202
+ 'subtext' => 'Designer',
203
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.',
204
+ ),
205
+ array(
206
+ 'image_url' => get_template_directory_uri() . '/assets/images/team3.jpg',
207
+ 'text' => 'Booby Stone',
208
+ 'subtext' => 'Director',
209
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.',
210
+ ),
211
+ array(
212
+ 'image_url' => get_template_directory_uri() . '/assets/images/team4.jpg',
213
+ 'text' => 'Anna Neaga',
214
+ 'subtext' => 'Art Director',
215
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit lacus, a iaculis diam.',
216
+ ),
217
+ )
218
  ),
219
+ )
220
+ );
221
+ if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
222
+ $wp_customize->add_control(
223
+ new Shop_Isle_Repeater_Controler(
224
+ $wp_customize,
225
+ 'shop_isle_team_members',
226
+ array(
227
+ 'label' => __( 'Add new team member', 'themeisle-companion' ),
228
+ 'section' => 'shop_isle_about_page_section',
229
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
230
+ 'priority' => 3,
231
+ 'shop_isle_image_control' => true,
232
+ 'shop_isle_link_control' => false,
233
+ 'shop_isle_text_control' => true,
234
+ 'shop_isle_subtext_control' => true,
235
+ 'shop_isle_label_control' => false,
236
+ 'shop_isle_icon_control' => false,
237
+ 'shop_isle_description_control' => true,
238
+ 'shop_isle_box_label' => __( 'Team member', 'themeisle-companion' ),
239
+ 'shop_isle_box_add_label' => __( 'Add new team member', 'themeisle-companion' ),
240
+ )
241
+ )
242
+ );
243
+ }
244
+ $wp_customize->add_section(
245
+ 'shop_isle_aboutus_page_instructions',
246
+ array(
247
+ 'title' => __( 'About us page', 'themeisle-companion' ),
248
+ 'priority' => 52,
249
+ )
250
+ );
251
+ $wp_customize->add_setting(
252
+ 'shop_isle_aboutus_page_instructions',
253
+ array(
254
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
255
+ )
256
+ );
257
+ $wp_customize->add_control(
258
+ new ShopIsle_Companion_Aboutus_Page_Instructions(
259
+ $wp_customize,
260
+ 'shop_isle_aboutus_page_instructions',
261
  array(
262
+ 'section' => 'shop_isle_aboutus_page_instructions',
263
+ 'active_callback' => 'shop_isle_companion_is_not_aboutus_page',
264
+ )
265
+ )
266
+ );
267
+ if ( class_exists( 'WP_Customize_Panel' ) ) :
268
+ $wp_customize->add_section(
269
+ 'shop_isle_about_page_video_section',
270
  array(
271
+ 'title' => __( 'Video', 'themeisle-companion' ),
272
+ 'priority' => 2,
273
+ 'panel' => 'panel_team',
274
+ )
275
+ );
276
+ else :
277
+ $wp_customize->add_section(
278
+ 'shop_isle_about_page_video_section',
279
  array(
280
+ 'title' => __( 'About us page - video', 'themeisle-companion' ),
281
+ 'priority' => 53,
282
+ )
283
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  endif;
285
  /* Video title */
286
+ $wp_customize->add_setting(
287
+ 'shop_isle_about_page_video_title',
288
+ array(
289
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
290
+ 'default' => __( 'Presentation', 'themeisle-companion' ),
291
+ 'transport' => $selective_refresh,
292
+ )
293
+ );
294
+ $wp_customize->add_control(
295
+ 'shop_isle_about_page_video_title',
296
+ array(
297
+ 'label' => __( 'Title', 'themeisle-companion' ),
298
+ 'section' => 'shop_isle_about_page_video_section',
299
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
300
+ 'priority' => 1,
301
+ )
302
+ );
303
  /* Video subtitle */
304
+ $wp_customize->add_setting(
305
+ 'shop_isle_about_page_video_subtitle',
306
+ array(
307
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
308
+ 'default' => __( 'What the video about our new products', 'themeisle-companion' ),
309
+ 'transport' => $selective_refresh,
310
+ )
311
+ );
312
+ $wp_customize->add_control(
313
+ 'shop_isle_about_page_video_subtitle',
314
+ array(
315
+ 'label' => __( 'Subtitle', 'themeisle-companion' ),
316
+ 'section' => 'shop_isle_about_page_video_section',
317
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
318
+ 'priority' => 2,
319
+ )
320
+ );
321
  /* Video background */
322
+ $wp_customize->add_setting(
323
+ 'shop_isle_about_page_video_background',
324
+ array(
325
+ 'default' => get_template_directory_uri() . '/assets/images/background-video.jpg',
326
+ 'transport' => 'postMessage',
327
+ 'sanitize_callback' => 'esc_url',
328
+ )
329
+ );
330
+ $wp_customize->add_control(
331
+ new WP_Customize_Image_Control(
332
+ $wp_customize,
333
+ 'shop_isle_about_page_video_background',
334
+ array(
335
+ 'label' => __( 'Background', 'themeisle-companion' ),
336
+ 'section' => 'shop_isle_about_page_video_section',
337
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
338
+ 'priority' => 3,
339
+ )
340
+ )
341
+ );
342
  /* Video link */
343
+ $wp_customize->add_setting(
344
+ 'shop_isle_about_page_video_link',
345
+ array(
346
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
347
+ 'transport' => 'postMessage',
348
+ )
349
+ );
350
+ $wp_customize->add_control(
351
+ 'shop_isle_about_page_video_link',
352
+ array(
353
+ 'label' => __( 'Video', 'themeisle-companion' ),
354
+ 'section' => 'shop_isle_about_page_video_section',
355
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
356
+ 'priority' => 4,
357
+ )
358
+ );
359
+ if ( class_exists( 'WP_Customize_Panel' ) ) :
360
+ $wp_customize->add_section(
361
+ 'shop_isle_about_page_advantages_section',
362
+ array(
363
+ 'title' => __( 'Our advantages', 'themeisle-companion' ),
364
+ 'priority' => 3,
365
+ 'panel' => 'panel_team',
366
+ )
367
+ );
368
+ else :
369
+ $wp_customize->add_section(
370
+ 'shop_isle_about_page_advantages_section',
371
+ array(
372
+ 'title' => __( 'About us page - our advantages', 'themeisle-companion' ),
373
+ 'priority' => 54,
374
+ )
375
+ );
376
  endif;
377
  /* Our advantages title */
378
+ $wp_customize->add_setting(
379
+ 'shop_isle_our_advantages_title',
380
+ array(
381
+ 'sanitize_callback' => 'shop_isle_sanitize_text',
382
+ 'default' => __( 'Our advantages', 'themeisle-companion' ),
383
+ 'transport' => $selective_refresh,
384
+ )
385
+ );
386
+ $wp_customize->add_control(
387
+ 'shop_isle_our_advantages_title',
388
+ array(
389
+ 'label' => __( 'Title', 'themeisle-companion' ),
390
+ 'section' => 'shop_isle_about_page_advantages_section',
391
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
392
+ 'priority' => 1,
393
+ )
394
+ );
395
  /* Advantages */
396
+ $wp_customize->add_setting(
397
+ 'shop_isle_advantages',
398
+ array(
399
+ 'sanitize_callback' => 'shop_isle_sanitize_repeater',
400
+ 'transport' => $selective_refresh,
401
+ 'default' => json_encode(
402
+ array(
403
+ array(
404
+ 'icon_value' => 'icon_lightbulb',
405
+ 'text' => __( 'Ideas and concepts', 'themeisle-companion' ),
406
+ 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ),
407
+ ),
408
+ array(
409
+ 'icon_value' => 'icon_tools',
410
+ 'text' => __( 'Designs & interfaces', 'themeisle-companion' ),
411
+ 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ),
412
+ ),
413
+ array(
414
+ 'icon_value' => 'icon_cogs',
415
+ 'text' => __( 'Highly customizable', 'themeisle-companion' ),
416
+ 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ),
417
+ ),
418
+ array(
419
+ 'icon_value' => 'icon_like',
420
+ 'text' => __( 'Easy to use', 'themeisle-companion' ),
421
+ 'subtext' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'themeisle-companion' ),
422
+ ),
423
+ )
424
  ),
425
+ )
426
+ );
 
 
 
 
 
427
  if ( class_exists( 'Shop_Isle_Repeater_Controler' ) ) {
428
+ $wp_customize->add_control(
429
+ new Shop_Isle_Repeater_Controler(
430
+ $wp_customize,
431
+ 'shop_isle_advantages',
432
+ array(
433
+ 'label' => __( 'Add new advantage', 'themeisle-companion' ),
434
+ 'section' => 'shop_isle_about_page_advantages_section',
435
+ 'active_callback' => 'shop_isle_companion_is_aboutus_page',
436
+ 'priority' => 2,
437
+ 'shop_isle_image_control' => false,
438
+ 'shop_isle_link_control' => false,
439
+ 'shop_isle_text_control' => true,
440
+ 'shop_isle_subtext_control' => true,
441
+ 'shop_isle_label_control' => false,
442
+ 'shop_isle_icon_control' => true,
443
+ 'shop_isle_description_control' => false,
444
+ 'shop_isle_box_label' => __( 'Advantage', 'themeisle-companion' ),
445
+ 'shop_isle_box_add_label' => __( 'Add new advantage', 'themeisle-companion' ),
446
+ )
447
+ )
448
+ );
449
  }
450
  }
451
 
452
 
453
+ $current_theme = wp_get_theme();
454
  $shop_isle_wporg_flag = get_option( 'shop_isle_wporg_flag' );
455
+ $theme_name = $current_theme->template;
456
 
457
+ if ( isset( $shop_isle_wporg_flag ) && ( 'true' == $shop_isle_wporg_flag ) && ( $theme_name == 'shop-isle' ) ) {
458
+ add_action( 'customize_register', 'shop_isle_companion_customize_register', 100 );
459
  }
460
 
461
  /**
464
  * @return bool
465
  */
466
  function shop_isle_companion_is_aboutus_page() {
467
+ return is_page_template( 'template-about.php' );
468
  }
469
 
470
  /**
473
  * @return bool
474
  */
475
  function shop_isle_companion_is_not_aboutus_page() {
476
+ return ! is_page_template( 'template-about.php' );
477
  }
478
 
479
  if ( ! function_exists( 'shop_isle_about_page_register_partials' ) ) :
490
 
491
  /* Our team */
492
  $wp_customize->selective_refresh->add_partial(
493
+ 'shop_isle_our_team_title',
494
+ array(
495
  'selector' => '.page-template-template-about .meet-out-team-title',
496
  'render_callback' => 'shop_isle_about_page_team_title_callback',
497
  'container_inclusive' => false,
499
  );
500
 
501
  $wp_customize->selective_refresh->add_partial(
502
+ 'shop_isle_our_team_subtitle',
503
+ array(
504
  'selector' => '.page-template-template-about .meet-out-team-subtitle',
505
  'render_callback' => 'shop_isle_about_page_team_subtitle_callback',
506
  'container_inclusive' => false,
508
  );
509
 
510
  $wp_customize->selective_refresh->add_partial(
511
+ 'shop_isle_team_members',
512
+ array(
513
  'selector' => '.page-template-template-about .about-team-member',
514
  'render_callback' => 'shop_isle_about_page_display_team_members',
515
  'container_inclusive' => true,
518
 
519
  /* Video */
520
  $wp_customize->selective_refresh->add_partial(
521
+ 'shop_isle_about_page_video_title',
522
+ array(
523
  'selector' => '.page-template-template-about .video-box .video-title',
524
  'render_callback' => 'shop_isle_about_page_video_title_callback',
525
  'container_inclusive' => false,
527
  );
528
 
529
  $wp_customize->selective_refresh->add_partial(
530
+ 'shop_isle_about_page_video_subtitle',
531
+ array(
532
  'selector' => '.page-template-template-about .video-box .video-subtitle',
533
  'render_callback' => 'shop_isle_about_page_video_subtitle_callback',
534
  'container_inclusive' => false,
537
 
538
  /* Our advantages */
539
  $wp_customize->selective_refresh->add_partial(
540
+ 'shop_isle_our_advantages_title',
541
+ array(
542
  'selector' => '.page-template-template-about .module-title.our_advantages',
543
  'render_callback' => 'shop_isle_about_page_advantages_title_callback',
544
  'container_inclusive' => false,
546
  );
547
 
548
  $wp_customize->selective_refresh->add_partial(
549
+ 'shop_isle_advantages',
550
+ array(
551
  'selector' => '.page-template-template-about .module-advantages .multi-columns-row',
552
  'render_callback' => 'shop_isle_about_page_display_advantages',
553
  'container_inclusive' => true,
587
  function shop_isle_about_page_display_team_members() {
588
 
589
  $shop_isle_team_members = get_theme_mod(
590
+ 'shop_isle_team_members',
591
+ json_encode(
592
  array(
593
  array(
594
  'image_url' => get_template_directory_uri() . '/assets/images/team1.jpg',
711
  function shop_isle_about_page_display_advantages() {
712
 
713
  $shop_isle_advantages = get_theme_mod(
714
+ 'shop_isle_advantages',
715
+ wp_json_encode(
716
  array(
717
  array(
718
  'icon_value' => 'icon_lightbulb',
obfx_modules/companion-legacy/inc/shop-isle/functions.php CHANGED
@@ -16,14 +16,15 @@ License URI: https://www.gnu.org/licenses/gpl-2.0.html
16
  /**
17
  * Filter to replace big title section with slider.
18
  */
19
- add_filter ( 'shop-isle-subheader', 'shop_isle_companion_slider');
20
 
21
  /**
22
  * Function used for subheader filter/
 
23
  * @return string
24
  */
25
  function shop_isle_companion_slider() {
26
- return plugin_dir_path( __FILE__ ) . 'content-slider.php';
27
  }
28
 
29
  /**
@@ -37,4 +38,4 @@ require plugin_dir_path( __FILE__ ) . 'customizer.php';
37
  require plugin_dir_path( __FILE__ ) . 'class-template-loader.php';
38
 
39
 
40
- add_action('shop-isle-about-page-after-content', 'shop_isle_companion_about_addon');
16
  /**
17
  * Filter to replace big title section with slider.
18
  */
19
+ add_filter( 'shop-isle-subheader', 'shop_isle_companion_slider' );
20
 
21
  /**
22
  * Function used for subheader filter/
23
+ *
24
  * @return string
25
  */
26
  function shop_isle_companion_slider() {
27
+ return plugin_dir_path( __FILE__ ) . 'content-slider.php';
28
  }
29
 
30
  /**
38
  require plugin_dir_path( __FILE__ ) . 'class-template-loader.php';
39
 
40
 
41
+ add_action( 'shop-isle-about-page-after-content', 'shop_isle_companion_about_addon' );
obfx_modules/companion-legacy/inc/shop-isle/template-about.php CHANGED
@@ -78,8 +78,8 @@ get_header(); ?>
78
  <section class="module">
79
  <div class="container">
80
  <?php
81
- $shop_isle_our_team_title = get_theme_mod( 'shop_isle_our_team_title', __( 'Meet our team', 'themeisle-companion' ) );
82
- $shop_isle_our_team_subtitle = get_theme_mod( 'shop_isle_our_team_subtitle',__( 'An awesome way to introduce the members of your team.', 'themeisle-companion' ) );
83
 
84
  if ( ! empty( $shop_isle_our_team_title ) || ! empty( $shop_isle_our_team_subtitle ) ) {
85
 
@@ -112,13 +112,13 @@ get_header(); ?>
112
 
113
  <!-- Video start -->
114
  <?php
115
- $shop_isle_about_page_video_background = get_theme_mod( 'shop_isle_about_page_video_background',get_template_directory_uri() . '/assets/images/background-video.jpg' );
116
  ?>
117
  <section class="module bg-dark-60 about-page-video"
118
  <?php
119
  if ( ! empty( $shop_isle_about_page_video_background ) ) {
120
  echo 'data-background="' . esc_url( $shop_isle_about_page_video_background ) . '"';}
121
- ?>
122
  >
123
  <div class="container">
124
  <div class="row">
@@ -137,8 +137,8 @@ get_header(); ?>
137
  echo '</div>';
138
  endif;
139
 
140
- $shop_isle_about_page_video_title = get_theme_mod( 'shop_isle_about_page_video_title',__( 'Presentation', 'themeisle-companion' ) );
141
- $shop_isle_about_page_video_subtitle = get_theme_mod( 'shop_isle_about_page_video_subtitle',__( 'What the video about our new products', 'themeisle-companion' ) );
142
 
143
  if ( ! empty( $shop_isle_about_page_video_title ) ) :
144
  echo '<div class="video-title font-alt">' . wp_kses_post( $shop_isle_about_page_video_title ) . '</div>';
@@ -159,7 +159,7 @@ get_header(); ?>
159
  <section class="module module-advantages">
160
  <div class="container">
161
  <?php
162
- $shop_isle_our_advantages_title = get_theme_mod( 'shop_isle_our_advantages_title',__( 'Our advantages', 'themeisle-companion' ) );
163
  if ( ! empty( $shop_isle_our_advantages_title ) ) :
164
  echo '<div class="row">';
165
  echo '<div class="col-sm-6 col-sm-offset-3">';
78
  <section class="module">
79
  <div class="container">
80
  <?php
81
+ $shop_isle_our_team_title = get_theme_mod( 'shop_isle_our_team_title', __( 'Meet our team', 'themeisle-companion' ) );
82
+ $shop_isle_our_team_subtitle = get_theme_mod( 'shop_isle_our_team_subtitle', __( 'An awesome way to introduce the members of your team.', 'themeisle-companion' ) );
83
 
84
  if ( ! empty( $shop_isle_our_team_title ) || ! empty( $shop_isle_our_team_subtitle ) ) {
85
 
112
 
113
  <!-- Video start -->
114
  <?php
115
+ $shop_isle_about_page_video_background = get_theme_mod( 'shop_isle_about_page_video_background', get_template_directory_uri() . '/assets/images/background-video.jpg' );
116
  ?>
117
  <section class="module bg-dark-60 about-page-video"
118
  <?php
119
  if ( ! empty( $shop_isle_about_page_video_background ) ) {
120
  echo 'data-background="' . esc_url( $shop_isle_about_page_video_background ) . '"';}
121
+ ?>
122
  >
123
  <div class="container">
124
  <div class="row">
137
  echo '</div>';
138
  endif;
139
 
140
+ $shop_isle_about_page_video_title = get_theme_mod( 'shop_isle_about_page_video_title', __( 'Presentation', 'themeisle-companion' ) );
141
+ $shop_isle_about_page_video_subtitle = get_theme_mod( 'shop_isle_about_page_video_subtitle', __( 'What the video about our new products', 'themeisle-companion' ) );
142
 
143
  if ( ! empty( $shop_isle_about_page_video_title ) ) :
144
  echo '<div class="video-title font-alt">' . wp_kses_post( $shop_isle_about_page_video_title ) . '</div>';
159
  <section class="module module-advantages">
160
  <div class="container">
161
  <?php
162
+ $shop_isle_our_advantages_title = get_theme_mod( 'shop_isle_our_advantages_title', __( 'Our advantages', 'themeisle-companion' ) );
163
  if ( ! empty( $shop_isle_our_advantages_title ) ) :
164
  echo '<div class="row">';
165
  echo '<div class="col-sm-6 col-sm-offset-3">';
obfx_modules/companion-legacy/inc/zerif-lite/functions.php CHANGED
@@ -6,7 +6,7 @@
6
  function themeisle_populate_with_default_widgets() {
7
 
8
  $zerif_lite_sidebars = array(
9
- 'sidebar-ourfocus' => 'sidebar-ourfocus',
10
  'sidebar-testimonials' => 'sidebar-testimonials',
11
  'sidebar-ourteam' => 'sidebar-ourteam',
12
  'sidebar-aboutus' => 'sidebar-aboutus',
6
  function themeisle_populate_with_default_widgets() {
7
 
8
  $zerif_lite_sidebars = array(
9
+ 'sidebar-ourfocus' => 'sidebar-ourfocus',
10
  'sidebar-testimonials' => 'sidebar-testimonials',
11
  'sidebar-ourteam' => 'sidebar-ourteam',
12
  'sidebar-aboutus' => 'sidebar-aboutus',
obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-clients.php CHANGED
@@ -53,10 +53,15 @@ if ( ! class_exists( 'zerif_clients_widget' ) ) {
53
 
54
  ?>
55
 
56
- <a href="<?php if ( ! empty( $instance['link'] ) ) : echo apply_filters( 'widget_title', $instance['link'] );
57
- endif; ?>">
 
 
 
 
 
58
  <?php
59
- if ( ! empty( $instance['image_uri'] ) && ( preg_match('/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
60
 
61
  echo '<img src="' . esc_url( $instance['image_uri'] ) . '" alt="' . __( 'Client', 'themeisle-companion' ) . '">';
62
 
@@ -114,10 +119,15 @@ endif; ?>">
114
  <label
115
  for="<?php echo $this->get_field_id( 'link' ); ?>"><?php _e( 'Link', 'themeisle-companion' ); ?></label><br/>
116
  <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>"
117
- id="<?php echo $this->get_field_id( 'link' ); ?>"
118
- value="<?php if ( ! empty( $instance['link'] ) ) : echo $instance['link'];
119
- endif; ?>"
120
- class="widefat">
 
 
 
 
 
121
  </p>
122
  <p>
123
  <label
@@ -138,31 +148,50 @@ endif; ?>"
138
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
139
  ?>
140
  <input type="hidden" class="custom_media_display_in_customizer"
141
- name="<?php if ( ! empty( $zerif_image_in_customizer ) ) {
 
 
142
  echo $zerif_image_in_customizer;
143
- } ?>"
144
- value="<?php if ( ! empty( $instance['image_in_customizer'] ) ) : echo $instance['image_in_customizer'];
145
- endif; ?>">
 
 
 
 
 
 
 
146
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
147
- style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
148
- alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
149
 
150
  <input type="text" class="widefat custom_media_url"
151
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
152
- id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
153
- value="<?php if ( ! empty( $instance['image_uri'] ) ) : echo $instance['image_uri'];
154
- endif; ?>"
155
- style="margin-top:5px;">
 
 
 
 
 
156
 
157
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
158
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
159
- value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
160
  </p>
161
 
162
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
163
- name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
164
- value="<?php if ( ! empty( $instance['custom_media_id'] ) ) : echo $instance['custom_media_id'];
165
- endif; ?>"/>
 
 
 
 
 
166
  <?php
167
 
168
  }
53
 
54
  ?>
55
 
56
+ <a href="
57
+ <?php
58
+ if ( ! empty( $instance['link'] ) ) :
59
+ echo apply_filters( 'widget_title', $instance['link'] );
60
+ endif;
61
+ ?>
62
+ ">
63
  <?php
64
+ if ( ! empty( $instance['image_uri'] ) && ( preg_match( '/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
65
 
66
  echo '<img src="' . esc_url( $instance['image_uri'] ) . '" alt="' . __( 'Client', 'themeisle-companion' ) . '">';
67
 
119
  <label
120
  for="<?php echo $this->get_field_id( 'link' ); ?>"><?php _e( 'Link', 'themeisle-companion' ); ?></label><br/>
121
  <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>"
122
+ id="<?php echo $this->get_field_id( 'link' ); ?>"
123
+ value="
124
+ <?php
125
+ if ( ! empty( $instance['link'] ) ) :
126
+ echo $instance['link'];
127
+ endif;
128
+ ?>
129
+ "
130
+ class="widefat">
131
  </p>
132
  <p>
133
  <label
148
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
149
  ?>
150
  <input type="hidden" class="custom_media_display_in_customizer"
151
+ name="
152
+ <?php
153
+ if ( ! empty( $zerif_image_in_customizer ) ) {
154
  echo $zerif_image_in_customizer;
155
+ }
156
+ ?>
157
+ "
158
+ value="
159
+ <?php
160
+ if ( ! empty( $instance['image_in_customizer'] ) ) :
161
+ echo $instance['image_in_customizer'];
162
+ endif;
163
+ ?>
164
+ ">
165
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
166
+ style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
167
+ alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
168
 
169
  <input type="text" class="widefat custom_media_url"
170
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
171
+ id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
172
+ value="
173
+ <?php
174
+ if ( ! empty( $instance['image_uri'] ) ) :
175
+ echo $instance['image_uri'];
176
+ endif;
177
+ ?>
178
+ "
179
+ style="margin-top:5px;">
180
 
181
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
182
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
183
+ value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
184
  </p>
185
 
186
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
187
+ name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
188
+ value="
189
+ <?php
190
+ if ( ! empty( $instance['custom_media_id'] ) ) :
191
+ echo $instance['custom_media_id'];
192
+ endif;
193
+ ?>
194
+ "/>
195
  <?php
196
 
197
  }
obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-focus.php CHANGED
@@ -12,9 +12,8 @@
12
  * Class zerif_ourfocus
13
  */
14
  if ( ! class_exists( 'zerif_ourfocus' ) ) {
15
-
16
  class zerif_ourfocus extends WP_Widget {
17
-
18
  /**
19
  * zerif_ourfocus constructor.
20
  */
@@ -34,7 +33,7 @@ if ( ! class_exists( 'zerif_ourfocus' ) ) {
34
  *
35
  * @param $hook
36
  */
37
- function widget_scripts() {
38
  wp_enqueue_media();
39
  wp_enqueue_script( 'zerif_widget_media_script', THEMEISLE_COMPANION_URL . 'assets/js/widget-media.js', false, '1.1', true );
40
  }
@@ -45,63 +44,73 @@ if ( ! class_exists( 'zerif_ourfocus' ) ) {
45
  * @param $args
46
  * @param $instance
47
  */
48
- function widget( $args, $instance ) {
49
 
50
  extract( $args );
51
 
52
- echo $before_widget;
53
 
54
  ?>
55
 
56
  <div class="col-lg-3 col-sm-3 focus-box" data-scrollreveal="enter left after 0.15s over 1s">
57
 
58
  <?php
59
- if ( ! empty( $instance['image_uri'] ) && ( preg_match('/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
60
- if ( ! empty( $instance['link'] ) ) { ?>
 
61
  <a href="<?php echo esc_url( $instance['link'] ); ?>" class="service-icon">
62
  <?php
63
- if ( ! empty( $instance['title'] ) ) { ?>
 
64
  <span class="sr-only">
65
- <?php _e( 'Go to', 'themeisle-companion' ); ?>
66
- <?php echo apply_filters( 'widget_title', $instance['title'] ); ?>
67
- </span>
68
  <?php
69
- } ?>
 
70
 
71
  <i class="pixeden"
72
  style="background:url(<?php echo esc_url( $instance['image_uri'] ); ?>) no-repeat center;width:100%; height:100%;"></i>
73
  </a>
74
  <?php
75
- } else { ?>
 
76
  <div class="service-icon" tabindex="0">
77
  <i class="pixeden"
78
  style="background:url(<?php echo esc_url( $instance['image_uri'] ); ?>) no-repeat center;width:100%; height:100%;"></i>
79
  <!-- FOCUS ICON-->
80
  </div>
81
  <?php
82
- } ?>
 
83
 
84
 
85
- <?php } elseif ( ! empty( $instance['custom_media_id'] ) ) {
 
86
 
87
  $zerif_ourfocus_custom_media_id = wp_get_attachment_image_src( $instance['custom_media_id'] );
88
  if ( ! empty( $zerif_ourfocus_custom_media_id ) && ! empty( $zerif_ourfocus_custom_media_id[0] ) ) {
89
 
90
- if ( ! empty( $instance['link'] ) ) { ?>
 
91
  <a href="<?php echo esc_url( $instance['link'] ); ?>" class="service-icon">
92
  <?php
93
- if ( ! empty( $instance['title'] ) ) { ?>
 
94
  <span class="sr-only">
95
- <?php _e( 'Go to', 'themeisle-companion' ); ?>
96
- <?php echo apply_filters( 'widget_title', $instance['title'] ); ?>
97
- </span>
98
  <?php
99
- } ?>
 
100
  <i class="pixeden"
101
  style="background:url(<?php echo esc_url( $zerif_ourfocus_custom_media_id[0] ); ?>) no-repeat center;width:100%; height:100%;"></i>
102
  </a>
103
  <?php
104
- } else { ?>
 
105
  <div class="service-icon" tabindex="0">
106
  <i class="pixeden"
107
  style="background:url(<?php echo esc_url( $zerif_ourfocus_custom_media_id[0] ); ?>) no-repeat center;width:100%; height:100%;"></i>
@@ -110,17 +119,22 @@ if ( ! class_exists( 'zerif_ourfocus' ) ) {
110
  <?php
111
  }
112
  }
113
- }// End if().
114
  ?>
115
 
116
- <h3 class="red-border-bottom"><?php if ( ! empty( $instance['title'] ) ) : echo apply_filters( 'widget_title', $instance['title'] );
117
- endif; ?></h3>
 
 
 
 
 
118
  <!-- FOCUS HEADING -->
119
 
120
  <?php
121
  if ( ! empty( $instance['text'] ) ) {
122
  echo '<p>';
123
- echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['text'] ) );
124
  echo '</p>';
125
  }
126
  ?>
@@ -129,7 +143,7 @@ endif; ?></h3>
129
 
130
  <?php
131
 
132
- echo $after_widget;
133
 
134
  }
135
 
@@ -141,15 +155,15 @@ endif; ?></h3>
141
  *
142
  * @return mixed
143
  */
144
- function update( $new_instance, $old_instance ) {
145
 
146
  $instance = $old_instance;
147
  $instance['text'] = stripslashes( wp_filter_post_kses( $new_instance['text'] ) );
148
- $instance['title'] = strip_tags( $new_instance['title'] );
149
- $instance['link'] = strip_tags( $new_instance['link'] );
150
- $instance['image_uri'] = strip_tags( $new_instance['image_uri'] );
151
- $instance['custom_media_id'] = strip_tags( $new_instance['custom_media_id'] );
152
- $instance['image_in_customizer'] = strip_tags( $new_instance['image_in_customizer'] );
153
 
154
  return $instance;
155
 
@@ -160,36 +174,51 @@ endif; ?></h3>
160
  *
161
  * @param $instance
162
  */
163
- function form( $instance ) {
164
  ?>
165
 
166
  <p>
167
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title', 'themeisle-companion' ); ?></label><br/>
168
- <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>"
169
- id="<?php echo $this->get_field_id( 'title' ); ?>"
170
- value="<?php if ( ! empty( $instance['title'] ) ) : echo $instance['title'];
171
- endif; ?>"
172
- class="widefat">
 
 
 
 
 
173
  </p>
174
  <p>
175
  <label
176
- for="<?php echo $this->get_field_id( 'text' ); ?>"><?php _e( 'Text', 'themeisle-companion' ); ?></label><br/>
177
- <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>"
178
- id="<?php echo $this->get_field_id( 'text' ); ?>"><?php if ( ! empty( $instance['text'] ) ) : echo htmlspecialchars_decode( $instance['text'] );
179
- endif; ?></textarea>
 
 
 
 
 
180
  </p>
181
  <p>
182
  <label
183
- for="<?php echo $this->get_field_id( 'link' ); ?>"><?php _e( 'Link', 'themeisle-companion' ); ?></label><br/>
184
- <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>"
185
- id="<?php echo $this->get_field_id( 'link' ); ?>"
186
- value="<?php if ( ! empty( $instance['link'] ) ) : echo esc_url( $instance['link'] );
187
- endif; ?>"
188
- class="widefat">
 
 
 
 
 
189
  </p>
190
  <p>
191
  <label
192
- for="<?php echo $this->get_field_id( 'image_uri' ); ?>"><?php _e( 'Image', 'themeisle-companion' ); ?></label><br/>
193
 
194
  <?php
195
  $image_in_customizer = '';
@@ -206,31 +235,50 @@ endif; ?>"
206
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
207
  ?>
208
  <input type="hidden" class="custom_media_display_in_customizer"
209
- name="<?php if ( ! empty( $zerif_image_in_customizer ) ) {
210
- echo $zerif_image_in_customizer;
211
- } ?>"
212
- value="<?php if ( ! empty( $instance['image_in_customizer'] ) ) : echo $instance['image_in_customizer'];
213
- endif; ?>">
214
- <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
215
- style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
216
- alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
 
 
 
 
 
 
 
 
 
217
 
218
  <input type="text" class="widefat custom_media_url"
219
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
220
- id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
221
- value="<?php if ( ! empty( $instance['image_uri'] ) ) : echo $instance['image_uri'];
222
- endif; ?>"
223
- style="margin-top:5px;">
 
 
 
 
 
224
 
225
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
226
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
227
- value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
228
  </p>
229
 
230
- <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
231
- name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
232
- value="<?php if ( ! empty( $instance['custom_media_id'] ) ) : echo $instance['custom_media_id'];
233
- endif; ?>"/>
 
 
 
 
 
234
 
235
  <?php
236
 
12
  * Class zerif_ourfocus
13
  */
14
  if ( ! class_exists( 'zerif_ourfocus' ) ) {
15
+ //phpcs:ignore PEAR.NamingConventions.ValidClassName
16
  class zerif_ourfocus extends WP_Widget {
 
17
  /**
18
  * zerif_ourfocus constructor.
19
  */
33
  *
34
  * @param $hook
35
  */
36
+ public function widget_scripts() {
37
  wp_enqueue_media();
38
  wp_enqueue_script( 'zerif_widget_media_script', THEMEISLE_COMPANION_URL . 'assets/js/widget-media.js', false, '1.1', true );
39
  }
44
  * @param $args
45
  * @param $instance
46
  */
47
+ public function widget( $args, $instance ) {
48
 
49
  extract( $args );
50
 
51
+ echo wp_kses_post( $before_widget );
52
 
53
  ?>
54
 
55
  <div class="col-lg-3 col-sm-3 focus-box" data-scrollreveal="enter left after 0.15s over 1s">
56
 
57
  <?php
58
+ if ( ! empty( $instance['image_uri'] ) && ( preg_match( '/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
59
+ if ( ! empty( $instance['link'] ) ) {
60
+ ?>
61
  <a href="<?php echo esc_url( $instance['link'] ); ?>" class="service-icon">
62
  <?php
63
+ if ( ! empty( $instance['title'] ) ) {
64
+ ?>
65
  <span class="sr-only">
66
+ <?php echo esc_attr( 'Go to', 'themeisle-companion' ); ?>
67
+ <?php echo wp_kses_post( apply_filters( 'widget_title', $instance['title'] ) ); ?>
68
+ </span>
69
  <?php
70
+ }
71
+ ?>
72
 
73
  <i class="pixeden"
74
  style="background:url(<?php echo esc_url( $instance['image_uri'] ); ?>) no-repeat center;width:100%; height:100%;"></i>
75
  </a>
76
  <?php
77
+ } else {
78
+ ?>
79
  <div class="service-icon" tabindex="0">
80
  <i class="pixeden"
81
  style="background:url(<?php echo esc_url( $instance['image_uri'] ); ?>) no-repeat center;width:100%; height:100%;"></i>
82
  <!-- FOCUS ICON-->
83
  </div>
84
  <?php
85
+ }
86
+ ?>
87
 
88
 
89
+ <?php
90
+ } elseif ( ! empty( $instance['custom_media_id'] ) ) {
91
 
92
  $zerif_ourfocus_custom_media_id = wp_get_attachment_image_src( $instance['custom_media_id'] );
93
  if ( ! empty( $zerif_ourfocus_custom_media_id ) && ! empty( $zerif_ourfocus_custom_media_id[0] ) ) {
94
 
95
+ if ( ! empty( $instance['link'] ) ) {
96
+ ?>
97
  <a href="<?php echo esc_url( $instance['link'] ); ?>" class="service-icon">
98
  <?php
99
+ if ( ! empty( $instance['title'] ) ) {
100
+ ?>
101
  <span class="sr-only">
102
+ <?php esc_attr_e( 'Go to', 'themeisle-companion' ); ?>
103
+ <?php echo wp_kses_post( apply_filters( 'widget_title', $instance['title'] ) ); ?>
104
+ </span>
105
  <?php
106
+ }
107
+ ?>
108
  <i class="pixeden"
109
  style="background:url(<?php echo esc_url( $zerif_ourfocus_custom_media_id[0] ); ?>) no-repeat center;width:100%; height:100%;"></i>
110
  </a>
111
  <?php
112
+ } else {
113
+ ?>
114
  <div class="service-icon" tabindex="0">
115
  <i class="pixeden"
116
  style="background:url(<?php echo esc_url( $zerif_ourfocus_custom_media_id[0] ); ?>) no-repeat center;width:100%; height:100%;"></i>
119
  <?php
120
  }
121
  }
122
+ }// End if().
123
  ?>
124
 
125
+ <h3 class="red-border-bottom">
126
+ <?php
127
+ if ( ! empty( $instance['title'] ) ) :
128
+ echo wp_kses_post( apply_filters( 'widget_title', $instance['title'] ) );
129
+ endif;
130
+ ?>
131
+ </h3>
132
  <!-- FOCUS HEADING -->
133
 
134
  <?php
135
  if ( ! empty( $instance['text'] ) ) {
136
  echo '<p>';
137
+ echo wp_kses_post( htmlspecialchars_decode( apply_filters( 'widget_title', $instance['text'] ) ) );
138
  echo '</p>';
139
  }
140
  ?>
143
 
144
  <?php
145
 
146
+ echo wp_kses_post( $after_widget );
147
 
148
  }
149
 
155
  *
156
  * @return mixed
157
  */
158
+ public function update( $new_instance, $old_instance ) {
159
 
160
  $instance = $old_instance;
161
  $instance['text'] = stripslashes( wp_filter_post_kses( $new_instance['text'] ) );
162
+ $instance['title'] = wp_strip_all_tags( $new_instance['title'] );
163
+ $instance['link'] = wp_strip_all_tags( $new_instance['link'] );
164
+ $instance['image_uri'] = wp_strip_all_tags( $new_instance['image_uri'] );
165
+ $instance['custom_media_id'] = wp_strip_all_tags( $new_instance['custom_media_id'] );
166
+ $instance['image_in_customizer'] = wp_strip_all_tags( $new_instance['image_in_customizer'] );
167
 
168
  return $instance;
169
 
174
  *
175
  * @param $instance
176
  */
177
+ public function form( $instance ) {
178
  ?>
179
 
180
  <p>
181
+ <label for="<?php echo wp_kses_post( $this->get_field_id( 'title' ) ); ?>"><?php esc_attr_e( 'Title', 'themeisle-companion' ); ?></label><br/>
182
+ <input type="text" name="<?php echo wp_kses_post( $this->get_field_name( 'title' ) ); ?>"
183
+ id="<?php echo wp_kses_post( $this->get_field_id( 'title' ) ); ?>"
184
+ value="
185
+ <?php
186
+ if ( ! empty( $instance['title'] ) ) :
187
+ echo wp_kses_post( $instance['title'] );
188
+ endif;
189
+ ?>
190
+ "
191
+ class="widefat">
192
  </p>
193
  <p>
194
  <label
195
+ for="<?php echo wp_kses_post( $this->get_field_id( 'text' ) ); ?>"><?php esc_attr_e( 'Text', 'themeisle-companion' ); ?></label><br/>
196
+ <textarea class="widefat" rows="8" cols="20" name="<?php echo wp_kses_post( $this->get_field_name( 'text' ) ); ?>"
197
+ id="<?php echo wp_kses_post( $this->get_field_id( 'text' ) ); ?>">
198
+ <?php
199
+ if ( ! empty( $instance['text'] ) ) :
200
+ echo wp_kses_post( htmlspecialchars_decode( $instance['text'] ) );
201
+ endif;
202
+ ?>
203
+ </textarea>
204
  </p>
205
  <p>
206
  <label
207
+ for="<?php echo wp_kses_post( $this->get_field_id( 'link' ) ); ?>"><?php esc_attr_e( 'Link', 'themeisle-companion' ); ?></label><br/>
208
+ <input type="text" name="<?php echo wp_kses_post( $this->get_field_name( 'link' ) ); ?>"
209
+ id="<?php echo wp_kses_post( $this->get_field_id( 'link' ) ); ?>"
210
+ value="
211
+ <?php
212
+ if ( ! empty( $instance['link'] ) ) :
213
+ echo esc_url( $instance['link'] );
214
+ endif;
215
+ ?>
216
+ "
217
+ class="widefat">
218
  </p>
219
  <p>
220
  <label
221
+ for="<?php echo wp_kses_post( $this->get_field_id( 'image_uri' ) ); ?>"><?php esc_attr_e( 'Image', 'themeisle-companion' ); ?></label><br/>
222
 
223
  <?php
224
  $image_in_customizer = '';
235
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
236
  ?>
237
  <input type="hidden" class="custom_media_display_in_customizer"
238
+ name="
239
+ <?php
240
+ if ( ! empty( $zerif_image_in_customizer ) ) {
241
+ echo wp_kses_post( $zerif_image_in_customizer );
242
+ }
243
+ ?>
244
+ "
245
+ value="
246
+ <?php
247
+ if ( ! empty( $instance['image_in_customizer'] ) ) :
248
+ echo wp_kses_post( $instance['image_in_customizer'] );
249
+ endif;
250
+ ?>
251
+ ">
252
+ <img class="custom_media_image" src="<?php echo esc_url( $image_in_customizer ); ?>"
253
+ style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo esc_attr( $display ); ?>"
254
+ alt="<?php echo esc_attr_e( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
255
 
256
  <input type="text" class="widefat custom_media_url"
257
+ name="<?php echo esc_attr( $this->get_field_name( 'image_uri' ) ); ?>"
258
+ id="<?php echo esc_attr( $this->get_field_id( 'image_uri' ) ); ?>"
259
+ value="
260
+ <?php
261
+ if ( ! empty( $instance['image_uri'] ) ) :
262
+ echo esc_url( $instance['image_uri'] );
263
+ endif;
264
+ ?>
265
+ "
266
+ style="margin-top:5px;">
267
 
268
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
269
+ name="<?php echo esc_attr( $this->get_field_name( 'image_uri' ) ); ?>"
270
+ value="<?php esc_attr_e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
271
  </p>
272
 
273
+ <input class="custom_media_id" id="<?php echo esc_attr( $this->get_field_id( 'custom_media_id' ) ); ?>"
274
+ name="<?php echo esc_attr( $this->get_field_name( 'custom_media_id' ) ); ?>" type="hidden"
275
+ value="
276
+ <?php
277
+ if ( ! empty( $instance['custom_media_id'] ) ) :
278
+ echo esc_attr( $instance['custom_media_id'] );
279
+ endif;
280
+ ?>
281
+ "/>
282
 
283
  <?php
284
 
obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-team.php CHANGED
@@ -57,7 +57,7 @@ if ( ! class_exists( 'zerif_team_widget' ) ) {
57
 
58
  <div class="team-member" tabindex="0">
59
 
60
- <?php if ( ! empty( $instance['image_uri'] ) && ( preg_match('/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) { ?>
61
 
62
 
63
  <figure class="profile-pic">
@@ -66,13 +66,13 @@ if ( ! class_exists( 'zerif_team_widget' ) ) {
66
 
67
  </figure>
68
  <?php
69
- } elseif ( ! empty( $instance['custom_media_id'] ) ) {
70
 
71
- $zerif_team_custom_media_id = wp_get_attachment_image_src( $instance['custom_media_id'] );
72
- $alt = get_post_meta( $instance['custom_media_id'], '_wp_attachment_image_alt', true );
73
 
74
- if ( ! empty( $zerif_team_custom_media_id ) && ! empty( $zerif_team_custom_media_id[0] ) ) {
75
- ?>
76
 
77
  <figure class="profile-pic">
78
 
@@ -82,19 +82,19 @@ if ( ! class_exists( 'zerif_team_widget' ) ) {
82
  </figure>
83
 
84
  <?php
85
- }
86
- }
87
  ?>
88
 
89
  <div class="member-details">
90
 
91
- <?php if ( ! empty( $instance['name'] ) ) : ?>
92
 
93
  <h3 class="dark-text red-border-bottom"><?php echo apply_filters( 'widget_title', $instance['name'] ); ?></h3>
94
 
95
  <?php endif; ?>
96
 
97
- <?php if ( ! empty( $instance['position'] ) ) : ?>
98
 
99
  <div
100
  class="position"><?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['position'] ) ); ?></div>
@@ -114,101 +114,117 @@ if ( ! class_exists( 'zerif_team_widget' ) ) {
114
  ?>
115
 
116
  <?php
117
- if ( ! empty( $instance['fb_link'] ) ) : ?>
 
118
  <li>
119
  <a href="<?php echo apply_filters( 'widget_title', $instance['fb_link'] ); ?>"
120
  target="<?php echo $zerif_team_target; ?>">
121
  <?php
122
- if ( ! empty( $instance['name'] ) ) { ?>
 
123
  <span class="sr-only">
124
- <?php _e( 'Facebook account of', 'themeisle-companion' ); ?>
125
- <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
126
- </span>
127
  <?php
128
- } ?>
 
129
  <i class="fa fa-facebook"></i>
130
  </a>
131
  </li>
132
  <?php
133
  endif;
134
 
135
- if ( ! empty( $instance['tw_link'] ) ) : ?>
 
136
  <li>
137
  <a href="<?php echo apply_filters( 'widget_title', $instance['tw_link'] ); ?>"
138
  target="<?php echo $zerif_team_target; ?>">
139
  <?php
140
- if ( ! empty( $instance['name'] ) ) { ?>
 
141
  <span class="sr-only">
142
- <?php _e( 'Twitter account of', 'themeisle-companion' ); ?>
143
- <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
144
- </span>
145
  <?php
146
- } ?>
 
147
  <i class="fa fa-twitter"></i>
148
  </a>
149
  </li>
150
  <?php
151
  endif;
152
 
153
- if ( ! empty( $instance['bh_link'] ) ) : ?>
 
154
  <li>
155
  <a href="<?php echo apply_filters( 'widget_title', $instance['bh_link'] ); ?>"
156
  target="<?php echo $zerif_team_target; ?>">
157
  <?php
158
- if ( ! empty( $instance['name'] ) ) { ?>
 
159
  <span class="sr-only">
160
- <?php _e( 'Behance account of', 'themeisle-companion' ); ?>
161
- <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
162
- </span>
163
  <?php
164
- } ?>
 
165
  <i class="fa fa-behance"></i>
166
  </a>
167
  </li>
168
  <?php
169
  endif;
170
 
171
- if ( ! empty( $instance['db_link'] ) ) : ?>
 
172
  <li>
173
  <a href="<?php echo apply_filters( 'widget_title', $instance['db_link'] ); ?>"
174
  target="<?php echo $zerif_team_target; ?>">
175
  <?php
176
- if ( ! empty( $instance['name'] ) ) { ?>
 
177
  <span class="sr-only">
178
- <?php _e( 'Dribble account of', 'themeisle-companion' ); ?>
179
- <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
180
- </span>
181
  <?php
182
- } ?>
 
183
  <i class="fa fa-dribbble"></i>
184
  </a>
185
  </li>
186
  <?php
187
  endif;
188
 
189
- if ( ! empty( $instance['ln_link'] ) ) : ?>
 
190
  <li>
191
  <a href="<?php echo apply_filters( 'widget_title', $instance['ln_link'] ); ?>"
192
  target="<?php echo $zerif_team_target; ?>">
193
  <?php
194
- if ( ! empty( $instance['name'] ) ) { ?>
 
195
  <span class="sr-only">
196
- <?php _e( 'Linkedin account of', 'themeisle-companion' ); ?>
197
- <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
198
- </span>
199
  <?php
200
- } ?>
 
201
  <i class="fa fa-linkedin"></i>
202
  </a>
203
  </li>
204
  <?php
205
- endif; ?>
 
206
 
207
  </ul>
208
 
209
  </div>
210
 
211
- <?php if ( ! empty( $instance['description'] ) ) : ?>
212
  <div class="details">
213
 
214
  <?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['description'] ) ); ?>
@@ -268,79 +284,122 @@ if ( ! class_exists( 'zerif_team_widget' ) ) {
268
  <label
269
  for="<?php echo $this->get_field_id( 'name' ); ?>"><?php _e( 'Name', 'themeisle-companion' ); ?></label><br/>
270
  <input type="text" name="<?php echo $this->get_field_name( 'name' ); ?>"
271
- id="<?php echo $this->get_field_id( 'name' ); ?>"
272
- value="<?php if ( ! empty( $instance['name'] ) ) : echo $instance['name'];
273
- endif; ?>"
274
- class="widefat"/>
 
 
 
 
 
275
  </p>
276
  <p>
277
  <label
278
  for="<?php echo $this->get_field_id( 'position' ); ?>"><?php _e( 'Position', 'themeisle-companion' ); ?></label><br/>
279
  <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'position' ); ?>"
280
- id="<?php echo $this->get_field_id( 'position' ); ?>"><?php if ( ! empty( $instance['position'] ) ) : echo htmlspecialchars_decode( $instance['position'] );
281
- endif; ?></textarea>
 
 
 
 
 
282
  </p>
283
  <p>
284
  <label
285
  for="<?php echo $this->get_field_id( 'description' ); ?>"><?php _e( 'Description', 'themeisle-companion' ); ?></label><br/>
286
  <textarea class="widefat" rows="8" cols="20"
287
- name="<?php echo $this->get_field_name( 'description' ); ?>"
288
- id="<?php echo $this->get_field_id( 'description' ); ?>"><?php
289
- if ( ! empty( $instance['description'] ) ) : echo htmlspecialchars_decode( $instance['description'] );
 
 
290
  endif;
291
- ?></textarea>
 
292
  </p>
293
  <p>
294
  <label
295
  for="<?php echo $this->get_field_id( 'fb_link' ); ?>"><?php _e( 'Facebook link', 'themeisle-companion' ); ?></label><br/>
296
  <input type="text" name="<?php echo $this->get_field_name( 'fb_link' ); ?>"
297
- id="<?php echo $this->get_field_id( 'fb_link' ); ?>"
298
- value="<?php if ( ! empty( $instance['fb_link'] ) ) : echo $instance['fb_link'];
299
- endif; ?>"
300
- class="widefat">
 
 
 
 
 
301
 
302
  </p>
303
  <p>
304
  <label
305
  for="<?php echo $this->get_field_id( 'tw_link' ); ?>"><?php _e( 'Twitter link', 'themeisle-companion' ); ?></label><br/>
306
  <input type="text" name="<?php echo $this->get_field_name( 'tw_link' ); ?>"
307
- id="<?php echo $this->get_field_id( 'tw_link' ); ?>"
308
- value="<?php if ( ! empty( $instance['tw_link'] ) ) : echo $instance['tw_link'];
309
- endif; ?>"
310
- class="widefat">
 
 
 
 
 
311
  </p>
312
  <p>
313
  <label
314
  for="<?php echo $this->get_field_id( 'bh_link' ); ?>"><?php _e( 'Behance link', 'themeisle-companion' ); ?></label><br/>
315
  <input type="text" name="<?php echo $this->get_field_name( 'bh_link' ); ?>"
316
- id="<?php echo $this->get_field_id( 'bh_link' ); ?>"
317
- value="<?php if ( ! empty( $instance['bh_link'] ) ) : echo $instance['bh_link'];
318
- endif; ?>"
319
- class="widefat">
 
 
 
 
 
320
 
321
  </p>
322
  <p>
323
  <label
324
  for="<?php echo $this->get_field_id( 'db_link' ); ?>"><?php _e( 'Dribble link', 'themeisle-companion' ); ?></label><br/>
325
  <input type="text" name="<?php echo $this->get_field_name( 'db_link' ); ?>"
326
- id="<?php echo $this->get_field_id( 'db_link' ); ?>"
327
- value="<?php if ( ! empty( $instance['db_link'] ) ) : echo $instance['db_link'];
328
- endif; ?>"
329
- class="widefat">
 
 
 
 
 
330
  </p>
331
  <p>
332
  <label
333
  for="<?php echo $this->get_field_id( 'ln_link' ); ?>"><?php _e( 'Linkedin link', 'themeisle-companion' ); ?></label><br/>
334
  <input type="text" name="<?php echo $this->get_field_name( 'ln_link' ); ?>"
335
- id="<?php echo $this->get_field_id( 'ln_link' ); ?>"
336
- value="<?php if ( ! empty( $instance['ln_link'] ) ) : echo $instance['ln_link'];
337
- endif; ?>"
338
- class="widefat">
 
 
 
 
 
339
  </p>
340
  <p>
341
  <input type="checkbox" name="<?php echo $this->get_field_name( 'open_new_window' ); ?>"
342
- id="<?php echo $this->get_field_id( 'open_new_window' ); ?>" <?php if ( ! empty( $instance['open_new_window'] ) ) : checked( (bool) $instance['open_new_window'], true );
343
- endif; ?> ><?php _e( 'Open links in new window?', 'themeisle-companion' ); ?>
 
 
 
 
 
344
  <br>
345
  </p>
346
  <p>
@@ -362,31 +421,50 @@ endif; ?> ><?php _e( 'Open links in new window?', 'themeisle-companion' ); ?>
362
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
363
  ?>
364
  <input type="hidden" class="custom_media_display_in_customizer"
365
- name="<?php if ( ! empty( $zerif_image_in_customizer ) ) {
 
 
366
  echo $zerif_image_in_customizer;
367
- } ?>"
368
- value="<?php if ( ! empty( $instance['image_in_customizer'] ) ) : echo $instance['image_in_customizer'];
369
- endif; ?>">
 
 
 
 
 
 
 
370
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
371
- style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
372
- alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
373
 
374
  <input type="text" class="widefat custom_media_url"
375
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
376
- id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
377
- value="<?php if ( ! empty( $instance['image_uri'] ) ) : echo $instance['image_uri'];
378
- endif; ?>"
379
- style="margin-top:5px;">
 
 
 
 
 
380
 
381
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
382
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
383
- value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
384
  </p>
385
 
386
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
387
- name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
388
- value="<?php if ( ! empty( $instance['custom_media_id'] ) ) : echo $instance['custom_media_id'];
389
- endif; ?>"/>
 
 
 
 
 
390
 
391
  <?php
392
 
57
 
58
  <div class="team-member" tabindex="0">
59
 
60
+ <?php if ( ! empty( $instance['image_uri'] ) && ( preg_match( '/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) { ?>
61
 
62
 
63
  <figure class="profile-pic">
66
 
67
  </figure>
68
  <?php
69
+ } elseif ( ! empty( $instance['custom_media_id'] ) ) {
70
 
71
+ $zerif_team_custom_media_id = wp_get_attachment_image_src( $instance['custom_media_id'] );
72
+ $alt = get_post_meta( $instance['custom_media_id'], '_wp_attachment_image_alt', true );
73
 
74
+ if ( ! empty( $zerif_team_custom_media_id ) && ! empty( $zerif_team_custom_media_id[0] ) ) {
75
+ ?>
76
 
77
  <figure class="profile-pic">
78
 
82
  </figure>
83
 
84
  <?php
85
+ }
86
+ }
87
  ?>
88
 
89
  <div class="member-details">
90
 
91
+ <?php if ( ! empty( $instance['name'] ) ) : ?>
92
 
93
  <h3 class="dark-text red-border-bottom"><?php echo apply_filters( 'widget_title', $instance['name'] ); ?></h3>
94
 
95
  <?php endif; ?>
96
 
97
+ <?php if ( ! empty( $instance['position'] ) ) : ?>
98
 
99
  <div
100
  class="position"><?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['position'] ) ); ?></div>
114
  ?>
115
 
116
  <?php
117
+ if ( ! empty( $instance['fb_link'] ) ) :
118
+ ?>
119
  <li>
120
  <a href="<?php echo apply_filters( 'widget_title', $instance['fb_link'] ); ?>"
121
  target="<?php echo $zerif_team_target; ?>">
122
  <?php
123
+ if ( ! empty( $instance['name'] ) ) {
124
+ ?>
125
  <span class="sr-only">
126
+ <?php _e( 'Facebook account of', 'themeisle-companion' ); ?>
127
+ <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
128
+ </span>
129
  <?php
130
+ }
131
+ ?>
132
  <i class="fa fa-facebook"></i>
133
  </a>
134
  </li>
135
  <?php
136
  endif;
137
 
138
+ if ( ! empty( $instance['tw_link'] ) ) :
139
+ ?>
140
  <li>
141
  <a href="<?php echo apply_filters( 'widget_title', $instance['tw_link'] ); ?>"
142
  target="<?php echo $zerif_team_target; ?>">
143
  <?php
144
+ if ( ! empty( $instance['name'] ) ) {
145
+ ?>
146
  <span class="sr-only">
147
+ <?php _e( 'Twitter account of', 'themeisle-companion' ); ?>
148
+ <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
149
+ </span>
150
  <?php
151
+ }
152
+ ?>
153
  <i class="fa fa-twitter"></i>
154
  </a>
155
  </li>
156
  <?php
157
  endif;
158
 
159
+ if ( ! empty( $instance['bh_link'] ) ) :
160
+ ?>
161
  <li>
162
  <a href="<?php echo apply_filters( 'widget_title', $instance['bh_link'] ); ?>"
163
  target="<?php echo $zerif_team_target; ?>">
164
  <?php
165
+ if ( ! empty( $instance['name'] ) ) {
166
+ ?>
167
  <span class="sr-only">
168
+ <?php _e( 'Behance account of', 'themeisle-companion' ); ?>
169
+ <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
170
+ </span>
171
  <?php
172
+ }
173
+ ?>
174
  <i class="fa fa-behance"></i>
175
  </a>
176
  </li>
177
  <?php
178
  endif;
179
 
180
+ if ( ! empty( $instance['db_link'] ) ) :
181
+ ?>
182
  <li>
183
  <a href="<?php echo apply_filters( 'widget_title', $instance['db_link'] ); ?>"
184
  target="<?php echo $zerif_team_target; ?>">
185
  <?php
186
+ if ( ! empty( $instance['name'] ) ) {
187
+ ?>
188
  <span class="sr-only">
189
+ <?php _e( 'Dribble account of', 'themeisle-companion' ); ?>
190
+ <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
191
+ </span>
192
  <?php
193
+ }
194
+ ?>
195
  <i class="fa fa-dribbble"></i>
196
  </a>
197
  </li>
198
  <?php
199
  endif;
200
 
201
+ if ( ! empty( $instance['ln_link'] ) ) :
202
+ ?>
203
  <li>
204
  <a href="<?php echo apply_filters( 'widget_title', $instance['ln_link'] ); ?>"
205
  target="<?php echo $zerif_team_target; ?>">
206
  <?php
207
+ if ( ! empty( $instance['name'] ) ) {
208
+ ?>
209
  <span class="sr-only">
210
+ <?php _e( 'Linkedin account of', 'themeisle-companion' ); ?>
211
+ <?php echo apply_filters( 'widget_title', $instance['name'] ); ?>
212
+ </span>
213
  <?php
214
+ }
215
+ ?>
216
  <i class="fa fa-linkedin"></i>
217
  </a>
218
  </li>
219
  <?php
220
+ endif;
221
+ ?>
222
 
223
  </ul>
224
 
225
  </div>
226
 
227
+ <?php if ( ! empty( $instance['description'] ) ) : ?>
228
  <div class="details">
229
 
230
  <?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['description'] ) ); ?>
284
  <label
285
  for="<?php echo $this->get_field_id( 'name' ); ?>"><?php _e( 'Name', 'themeisle-companion' ); ?></label><br/>
286
  <input type="text" name="<?php echo $this->get_field_name( 'name' ); ?>"
287
+ id="<?php echo $this->get_field_id( 'name' ); ?>"
288
+ value="
289
+ <?php
290
+ if ( ! empty( $instance['name'] ) ) :
291
+ echo $instance['name'];
292
+ endif;
293
+ ?>
294
+ "
295
+ class="widefat"/>
296
  </p>
297
  <p>
298
  <label
299
  for="<?php echo $this->get_field_id( 'position' ); ?>"><?php _e( 'Position', 'themeisle-companion' ); ?></label><br/>
300
  <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'position' ); ?>"
301
+ id="<?php echo $this->get_field_id( 'position' ); ?>">
302
+ <?php
303
+ if ( ! empty( $instance['position'] ) ) :
304
+ echo htmlspecialchars_decode( $instance['position'] );
305
+ endif;
306
+ ?>
307
+ </textarea>
308
  </p>
309
  <p>
310
  <label
311
  for="<?php echo $this->get_field_id( 'description' ); ?>"><?php _e( 'Description', 'themeisle-companion' ); ?></label><br/>
312
  <textarea class="widefat" rows="8" cols="20"
313
+ name="<?php echo $this->get_field_name( 'description' ); ?>"
314
+ id="<?php echo $this->get_field_id( 'description' ); ?>">
315
+ <?php
316
+ if ( ! empty( $instance['description'] ) ) :
317
+ echo htmlspecialchars_decode( $instance['description'] );
318
  endif;
319
+ ?>
320
+ </textarea>
321
  </p>
322
  <p>
323
  <label
324
  for="<?php echo $this->get_field_id( 'fb_link' ); ?>"><?php _e( 'Facebook link', 'themeisle-companion' ); ?></label><br/>
325
  <input type="text" name="<?php echo $this->get_field_name( 'fb_link' ); ?>"
326
+ id="<?php echo $this->get_field_id( 'fb_link' ); ?>"
327
+ value="
328
+ <?php
329
+ if ( ! empty( $instance['fb_link'] ) ) :
330
+ echo $instance['fb_link'];
331
+ endif;
332
+ ?>
333
+ "
334
+ class="widefat">
335
 
336
  </p>
337
  <p>
338
  <label
339
  for="<?php echo $this->get_field_id( 'tw_link' ); ?>"><?php _e( 'Twitter link', 'themeisle-companion' ); ?></label><br/>
340
  <input type="text" name="<?php echo $this->get_field_name( 'tw_link' ); ?>"
341
+ id="<?php echo $this->get_field_id( 'tw_link' ); ?>"
342
+ value="
343
+ <?php
344
+ if ( ! empty( $instance['tw_link'] ) ) :
345
+ echo $instance['tw_link'];
346
+ endif;
347
+ ?>
348
+ "
349
+ class="widefat">
350
  </p>
351
  <p>
352
  <label
353
  for="<?php echo $this->get_field_id( 'bh_link' ); ?>"><?php _e( 'Behance link', 'themeisle-companion' ); ?></label><br/>
354
  <input type="text" name="<?php echo $this->get_field_name( 'bh_link' ); ?>"
355
+ id="<?php echo $this->get_field_id( 'bh_link' ); ?>"
356
+ value="
357
+ <?php
358
+ if ( ! empty( $instance['bh_link'] ) ) :
359
+ echo $instance['bh_link'];
360
+ endif;
361
+ ?>
362
+ "
363
+ class="widefat">
364
 
365
  </p>
366
  <p>
367
  <label
368
  for="<?php echo $this->get_field_id( 'db_link' ); ?>"><?php _e( 'Dribble link', 'themeisle-companion' ); ?></label><br/>
369
  <input type="text" name="<?php echo $this->get_field_name( 'db_link' ); ?>"
370
+ id="<?php echo $this->get_field_id( 'db_link' ); ?>"
371
+ value="
372
+ <?php
373
+ if ( ! empty( $instance['db_link'] ) ) :
374
+ echo $instance['db_link'];
375
+ endif;
376
+ ?>
377
+ "
378
+ class="widefat">
379
  </p>
380
  <p>
381
  <label
382
  for="<?php echo $this->get_field_id( 'ln_link' ); ?>"><?php _e( 'Linkedin link', 'themeisle-companion' ); ?></label><br/>
383
  <input type="text" name="<?php echo $this->get_field_name( 'ln_link' ); ?>"
384
+ id="<?php echo $this->get_field_id( 'ln_link' ); ?>"
385
+ value="
386
+ <?php
387
+ if ( ! empty( $instance['ln_link'] ) ) :
388
+ echo $instance['ln_link'];
389
+ endif;
390
+ ?>
391
+ "
392
+ class="widefat">
393
  </p>
394
  <p>
395
  <input type="checkbox" name="<?php echo $this->get_field_name( 'open_new_window' ); ?>"
396
+ id="<?php echo $this->get_field_id( 'open_new_window' ); ?>"
397
+ <?php
398
+ if ( ! empty( $instance['open_new_window'] ) ) :
399
+ checked( (bool) $instance['open_new_window'], true );
400
+ endif;
401
+ ?>
402
+ ><?php _e( 'Open links in new window?', 'themeisle-companion' ); ?>
403
  <br>
404
  </p>
405
  <p>
421
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
422
  ?>
423
  <input type="hidden" class="custom_media_display_in_customizer"
424
+ name="
425
+ <?php
426
+ if ( ! empty( $zerif_image_in_customizer ) ) {
427
  echo $zerif_image_in_customizer;
428
+ }
429
+ ?>
430
+ "
431
+ value="
432
+ <?php
433
+ if ( ! empty( $instance['image_in_customizer'] ) ) :
434
+ echo $instance['image_in_customizer'];
435
+ endif;
436
+ ?>
437
+ ">
438
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
439
+ style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
440
+ alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
441
 
442
  <input type="text" class="widefat custom_media_url"
443
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
444
+ id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
445
+ value="
446
+ <?php
447
+ if ( ! empty( $instance['image_uri'] ) ) :
448
+ echo $instance['image_uri'];
449
+ endif;
450
+ ?>
451
+ "
452
+ style="margin-top:5px;">
453
 
454
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
455
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
456
+ value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
457
  </p>
458
 
459
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
460
+ name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
461
+ value="
462
+ <?php
463
+ if ( ! empty( $instance['custom_media_id'] ) ) :
464
+ echo $instance['custom_media_id'];
465
+ endif;
466
+ ?>
467
+ "/>
468
 
469
  <?php
470
 
obfx_modules/companion-legacy/inc/zerif-lite/widgets/widget-testimonial.php CHANGED
@@ -60,7 +60,7 @@ if ( ! class_exists( 'zerif_testimonial_widget' ) ) {
60
 
61
  <!-- MESSAGE OF THE CLIENT -->
62
 
63
- <?php if ( ! empty( $instance['text'] ) ) : ?>
64
  <div class="message">
65
  <?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['text'] ) ); ?>
66
  </div>
@@ -79,12 +79,22 @@ if ( ! class_exists( 'zerif_testimonial_widget' ) ) {
79
  <div class="client-info">
80
 
81
  <a <?php echo $attribut_new_tab; ?>
82
- class="client-name" <?php if ( ! empty( $instance['link'] ) ) : echo 'href="' . esc_url( $instance['link'] ) . '"';
83
- endif; ?>><?php if ( ! empty( $instance['title'] ) ) : echo apply_filters( 'widget_title', $instance['title'] );
84
- endif; ?></a>
 
 
 
 
 
 
 
 
 
 
85
 
86
 
87
- <?php if ( ! empty( $instance['details'] ) ) : ?>
88
  <div class="client-company">
89
 
90
  <?php echo apply_filters( 'widget_title', $instance['details'] ); ?>
@@ -96,7 +106,7 @@ endif; ?></a>
96
 
97
  <?php
98
 
99
- if ( ! empty( $instance['image_uri'] ) && ( preg_match('/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
100
 
101
  echo '<div class="client-image hidden-xs">';
102
 
@@ -167,35 +177,55 @@ endif; ?></a>
167
  <label
168
  for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Author', 'themeisle-companion' ); ?></label><br/>
169
  <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>"
170
- id="<?php echo $this->get_field_id( 'title' ); ?>"
171
- value="<?php if ( ! empty( $instance['title'] ) ) : echo $instance['title'];
172
- endif; ?>"
173
- class="widefat">
 
 
 
 
 
174
  </p>
175
  <p>
176
  <label
177
  for="<?php echo $this->get_field_id( 'link' ); ?>"><?php _e( 'Author link', 'themeisle-companion' ); ?></label><br/>
178
  <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>"
179
- id="<?php echo $this->get_field_id( 'link' ); ?>"
180
- value="<?php if ( ! empty( $instance['link'] ) ) : echo esc_url( $instance['link'] );
181
- endif; ?>"
182
- class="widefat">
 
 
 
 
 
183
  </p>
184
  <p>
185
  <label
186
  for="<?php echo $this->get_field_id( 'details' ); ?>"><?php _e( 'Author details', 'themeisle-companion' ); ?></label><br/>
187
  <input type="text" name="<?php echo $this->get_field_name( 'details' ); ?>"
188
- id="<?php echo $this->get_field_id( 'details' ); ?>"
189
- value="<?php if ( ! empty( $instance['details'] ) ) : echo $instance['details'];
190
- endif; ?>"
191
- class="widefat">
 
 
 
 
 
192
  </p>
193
  <p>
194
  <label
195
  for="<?php echo $this->get_field_id( 'text' ); ?>"><?php _e( 'Text', 'themeisle-companion' ); ?></label><br/>
196
  <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>"
197
- id="<?php echo $this->get_field_id( 'text' ); ?>"><?php if ( ! empty( $instance['text'] ) ) : echo htmlspecialchars_decode( $instance['text'] );
198
- endif; ?></textarea>
 
 
 
 
 
199
  </p>
200
  <p>
201
  <label
@@ -216,31 +246,50 @@ endif; ?></textarea>
216
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
217
  ?>
218
  <input type="hidden" class="custom_media_display_in_customizer"
219
- name="<?php if ( ! empty( $zerif_image_in_customizer ) ) {
 
 
220
  echo $zerif_image_in_customizer;
221
- } ?>"
222
- value="<?php if ( ! empty( $instance['image_in_customizer'] ) ) : echo $instance['image_in_customizer'];
223
- endif; ?>">
 
 
 
 
 
 
 
224
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
225
- style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
226
- alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
227
 
228
  <input type="text" class="widefat custom_media_url"
229
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
230
- id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
231
- value="<?php if ( ! empty( $instance['image_uri'] ) ) : echo $instance['image_uri'];
232
- endif; ?>"
233
- style="margin-top:5px;">
 
 
 
 
 
234
 
235
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
236
- name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
237
- value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
238
  </p>
239
 
240
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
241
- name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
242
- value="<?php if ( ! empty( $instance['custom_media_id'] ) ) : echo $instance['custom_media_id'];
243
- endif; ?>"/>
 
 
 
 
 
244
 
245
  <?php
246
 
60
 
61
  <!-- MESSAGE OF THE CLIENT -->
62
 
63
+ <?php if ( ! empty( $instance['text'] ) ) : ?>
64
  <div class="message">
65
  <?php echo htmlspecialchars_decode( apply_filters( 'widget_title', $instance['text'] ) ); ?>
66
  </div>
79
  <div class="client-info">
80
 
81
  <a <?php echo $attribut_new_tab; ?>
82
+ class="client-name"
83
+ <?php
84
+ if ( ! empty( $instance['link'] ) ) :
85
+ echo 'href="' . esc_url( $instance['link'] ) . '"';
86
+ endif;
87
+ ?>
88
+ >
89
+ <?php
90
+ if ( ! empty( $instance['title'] ) ) :
91
+ echo apply_filters( 'widget_title', $instance['title'] );
92
+ endif;
93
+ ?>
94
+ </a>
95
 
96
 
97
+ <?php if ( ! empty( $instance['details'] ) ) : ?>
98
  <div class="client-company">
99
 
100
  <?php echo apply_filters( 'widget_title', $instance['details'] ); ?>
106
 
107
  <?php
108
 
109
+ if ( ! empty( $instance['image_uri'] ) && ( preg_match( '/(\.jpg|\.png|\.jpeg|\.gif|\.bmp)$/', $instance['image_uri'] ) ) ) {
110
 
111
  echo '<div class="client-image hidden-xs">';
112
 
177
  <label
178
  for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Author', 'themeisle-companion' ); ?></label><br/>
179
  <input type="text" name="<?php echo $this->get_field_name( 'title' ); ?>"
180
+ id="<?php echo $this->get_field_id( 'title' ); ?>"
181
+ value="
182
+ <?php
183
+ if ( ! empty( $instance['title'] ) ) :
184
+ echo $instance['title'];
185
+ endif;
186
+ ?>
187
+ "
188
+ class="widefat">
189
  </p>
190
  <p>
191
  <label
192
  for="<?php echo $this->get_field_id( 'link' ); ?>"><?php _e( 'Author link', 'themeisle-companion' ); ?></label><br/>
193
  <input type="text" name="<?php echo $this->get_field_name( 'link' ); ?>"
194
+ id="<?php echo $this->get_field_id( 'link' ); ?>"
195
+ value="
196
+ <?php
197
+ if ( ! empty( $instance['link'] ) ) :
198
+ echo esc_url( $instance['link'] );
199
+ endif;
200
+ ?>
201
+ "
202
+ class="widefat">
203
  </p>
204
  <p>
205
  <label
206
  for="<?php echo $this->get_field_id( 'details' ); ?>"><?php _e( 'Author details', 'themeisle-companion' ); ?></label><br/>
207
  <input type="text" name="<?php echo $this->get_field_name( 'details' ); ?>"
208
+ id="<?php echo $this->get_field_id( 'details' ); ?>"
209
+ value="
210
+ <?php
211
+ if ( ! empty( $instance['details'] ) ) :
212
+ echo $instance['details'];
213
+ endif;
214
+ ?>
215
+ "
216
+ class="widefat">
217
  </p>
218
  <p>
219
  <label
220
  for="<?php echo $this->get_field_id( 'text' ); ?>"><?php _e( 'Text', 'themeisle-companion' ); ?></label><br/>
221
  <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>"
222
+ id="<?php echo $this->get_field_id( 'text' ); ?>">
223
+ <?php
224
+ if ( ! empty( $instance['text'] ) ) :
225
+ echo htmlspecialchars_decode( $instance['text'] );
226
+ endif;
227
+ ?>
228
+ </textarea>
229
  </p>
230
  <p>
231
  <label
246
  $zerif_image_in_customizer = $this->get_field_name( 'image_in_customizer' );
247
  ?>
248
  <input type="hidden" class="custom_media_display_in_customizer"
249
+ name="
250
+ <?php
251
+ if ( ! empty( $zerif_image_in_customizer ) ) {
252
  echo $zerif_image_in_customizer;
253
+ }
254
+ ?>
255
+ "
256
+ value="
257
+ <?php
258
+ if ( ! empty( $instance['image_in_customizer'] ) ) :
259
+ echo $instance['image_in_customizer'];
260
+ endif;
261
+ ?>
262
+ ">
263
  <img class="custom_media_image" src="<?php echo $image_in_customizer; ?>"
264
+ style="margin:0;padding:0;max-width:100px;float:left;display:<?php echo $display; ?>"
265
+ alt="<?php echo __( 'Uploaded image', 'themeisle-companion' ); ?>"/><br/>
266
 
267
  <input type="text" class="widefat custom_media_url"
268
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
269
+ id="<?php echo $this->get_field_id( 'image_uri' ); ?>"
270
+ value="
271
+ <?php
272
+ if ( ! empty( $instance['image_uri'] ) ) :
273
+ echo $instance['image_uri'];
274
+ endif;
275
+ ?>
276
+ "
277
+ style="margin-top:5px;">
278
 
279
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
280
+ name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
281
+ value="<?php _e( 'Upload Image', 'themeisle-companion' ); ?>" style="margin-top:5px;">
282
  </p>
283
 
284
  <input class="custom_media_id" id="<?php echo $this->get_field_id( 'custom_media_id' ); ?>"
285
+ name="<?php echo $this->get_field_name( 'custom_media_id' ); ?>" type="hidden"
286
+ value="
287
+ <?php
288
+ if ( ! empty( $instance['custom_media_id'] ) ) :
289
+ echo $instance['custom_media_id'];
290
+ endif;
291
+ ?>
292
+ "/>
293
 
294
  <?php
295
 
obfx_modules/companion-legacy/init.php CHANGED
@@ -47,15 +47,6 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
47
  require_once $this->inc_dir . 'zerif-lite' . DIRECTORY_SEPARATOR . 'functions.php';
48
  }
49
 
50
- if ( $this->is_rhea() ) {
51
- $theme_name = 'Rhea';
52
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'features.widget.php';
53
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'about.widget.php';
54
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'hours.widget.php';
55
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'contact.widget.php';
56
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'progress-bar.widget.php';
57
- require_once $this->inc_dir . 'rhea' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR . 'icon-box.widget.php';
58
- }
59
 
60
  if ( $this->is_hestia() ) {
61
  require_once $this->inc_dir . 'hestia' . DIRECTORY_SEPARATOR . 'functions.php';
@@ -69,18 +60,10 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
69
  $theme_name = 'Hestia Pro';
70
 
71
  }
72
- if( $this->is_shop_isle() ) {
73
  $theme_name = 'Shop Isle';
74
  }
75
 
76
- if ( $this->is_azera_shop() ) {
77
- $theme_name = 'Azera Shop';
78
- }
79
-
80
- if ( $this->is_llorix_one_lite() ) {
81
- $theme_name = 'Llorix One Lite';
82
- }
83
-
84
  $this->name = sprintf( __( '%s enhancements ', 'themeisle-companion' ), $theme_name );
85
  $this->description = sprintf( __( 'Module containing frontpage improvements for %s theme.', 'themeisle-companion' ), $theme_name );
86
  }
@@ -93,13 +76,6 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
93
  return false;
94
  }
95
 
96
- private function is_rhea() {
97
- if ( $this->get_active_theme_dir( true ) == 'rhea' ) {
98
- return true;
99
- }
100
-
101
- return false;
102
- }
103
 
104
  private function is_hestia() {
105
  if ( $this->get_active_theme_dir() == 'hestia' ) {
@@ -109,7 +85,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
109
  return false;
110
  }
111
 
112
- private function is_hestia_pro(){
113
  if ( $this->get_active_theme_dir() == 'hestia-pro' ) {
114
  return true;
115
  }
@@ -118,8 +94,8 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
118
  }
119
 
120
  private function is_shop_isle() {
121
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
122
- if( is_plugin_active( 'shop-isle-companion/shop-isle-companion.php' ) ) {
123
  return false;
124
  }
125
  if ( $this->get_active_theme_dir() == 'shop-isle' ) {
@@ -129,35 +105,6 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
129
  return false;
130
  }
131
 
132
- private function is_azera_shop() {
133
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
134
- if ( is_plugin_active( 'azera-shop-companion/azera-shop-companion.php' ) ) {
135
- return false;
136
- }
137
- if ( is_plugin_active( 'azera-shop-plus/azera-shop-plus.php' ) ) {
138
- return false;
139
- }
140
- if ( $this->get_active_theme_dir() == 'azera-shop' ) {
141
- return true;
142
- }
143
-
144
- return false;
145
- }
146
-
147
- private function is_llorix_one_lite() {
148
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
149
- if ( is_plugin_active( 'llorix-one-companion/llorix-one-companion.php' ) ) {
150
- return false;
151
- }
152
- if ( is_plugin_active( 'llorix-one-plus/llorix_one_plus.php' ) ) {
153
- return false;
154
- }
155
- if ( $this->get_active_theme_dir() == 'llorix-one-lite' ) {
156
- return true;
157
- }
158
-
159
- return false;
160
- }
161
 
162
  /**
163
  * Determine if module should be loaded.
@@ -167,7 +114,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
167
  * @return bool
168
  */
169
  public function enable_module() {
170
- if ( $this->is_hestia() || $this->is_rhea() || $this->is_zerif() || $this->is_hestia_pro() || $this->is_shop_isle() || $this->is_azera_shop() || $this->is_llorix_one_lite() ) {
171
  return true;
172
  } else {
173
  return false;
@@ -186,104 +133,70 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
186
  }
187
  }
188
 
189
- public function rhea_register_widgets() {
190
- register_widget( 'rhea_features_block' );
191
- register_widget( 'Rhea_Progress_Bar' );
192
- register_widget( 'Rhea_Icon_Box' );
193
- register_widget( 'Rhea_About_Company' );
194
- register_widget( 'Rhea_Hours' );
195
- register_widget( 'Rhea_Contact_Company' );
196
- }
197
-
198
- function rhea_load_custom_wp_admin_style() {
199
- wp_enqueue_style( 'fontawesome-style', get_template_directory_uri() . '/css/font-awesome.min.css' );
200
- wp_enqueue_style( 'rhea-admin-style', trailingslashit( THEMEISLE_COMPANION_URL ) . 'inc/rhea/assets/css/admin-style.css' );
201
- wp_enqueue_script( 'fontawesome-icons', trailingslashit( THEMEISLE_COMPANION_URL ) . 'inc/rhea/assets/js/icons.js', false, '1.0.0' );
202
- wp_enqueue_script( 'jquery-ui-dialog' );
203
- wp_enqueue_script( 'fontawesome-script', trailingslashit( THEMEISLE_COMPANION_URL ) . 'inc/rhea/assets/js/fontawesome.jquery.js', false, '1.0.0' );
204
- }
205
-
206
- public function rhea_add_html_to_admin_footer() {
207
- $output = '
208
- <div id="fontawesome-popup">
209
- <div class="left-side">
210
- <label for="fontawesome-live-search">' . esc_html_e( 'Search icon', 'themeisle-companion' ) . ':</label>
211
- <ul class="filter-icons">
212
- <li data-filter="all" class="active">' . esc_html_e( 'All Icons', 'themeisle-companion' ) . '</li>
213
- </ul>
214
- </div>
215
- <div class="right-side">
216
- </div>
217
- </div>
218
- ';
219
-
220
- echo $output;
221
- }
222
 
223
  /**
224
  * Function to import customizer big title settings into first slide.
225
  */
226
  public function shop_isle_get_wporg_options() {
227
  /* import shop isle options */
228
- $shop_isle_mods = get_option('theme_mods_shop-isle');
229
 
230
- if (!empty($shop_isle_mods)) {
231
 
232
  $new_slider = new stdClass();
233
 
234
- foreach ($shop_isle_mods as $shop_isle_mod_k => $shop_isle_mod_v) {
235
 
236
  /* migrate Big title section to Slider section */
237
- if (($shop_isle_mod_k == 'shop_isle_big_title_image') || ($shop_isle_mod_k == 'shop_isle_big_title_title') || ($shop_isle_mod_k == 'shop_isle_big_title_subtitle') || ($shop_isle_mod_k == 'shop_isle_big_title_button_label') || ($shop_isle_mod_k == 'shop_isle_big_title_button_link')) {
238
 
239
- if ($shop_isle_mod_k == 'shop_isle_big_title_image') {
240
- if (!empty($shop_isle_mod_v)) {
241
  $new_slider->image_url = $shop_isle_mod_v;
242
  } else {
243
  $new_slider->image_url = '';
244
  }
245
  }
246
 
247
- if ($shop_isle_mod_k == 'shop_isle_big_title_title') {
248
- if (!empty($shop_isle_mod_v)) {
249
  $new_slider->text = $shop_isle_mod_v;
250
  } else {
251
  $new_slider->text = '';
252
  }
253
  }
254
 
255
- if ($shop_isle_mod_k == 'shop_isle_big_title_subtitle') {
256
- if (!empty($shop_isle_mod_v)) {
257
  $new_slider->subtext = $shop_isle_mod_v;
258
  } else {
259
  $new_slider->subtext = '';
260
  }
261
  }
262
 
263
- if ($shop_isle_mod_k == 'shop_isle_big_title_button_label') {
264
- if (!empty($shop_isle_mod_v)) {
265
  $new_slider->label = $shop_isle_mod_v;
266
  } else {
267
  $new_slider->label = '';
268
  }
269
  }
270
 
271
- if ($shop_isle_mod_k == 'shop_isle_big_title_button_link') {
272
- if (!empty($shop_isle_mod_v)) {
273
  $new_slider->link = $shop_isle_mod_v;
274
  } else {
275
  $new_slider->link = '';
276
  }
277
  }
278
 
279
- if ( !empty($new_slider->image_url) || !empty($new_slider->text) || !empty($new_slider->subtext) || !empty($new_slider->link) ) {
280
- $new_slider_encode = json_encode(array($new_slider));
281
- set_theme_mod('shop_isle_slider', $new_slider_encode);
282
- }
283
-
284
  } else {
285
 
286
- set_theme_mod($shop_isle_mod_k, $shop_isle_mod_v);
287
  }
288
  }
289
  }
@@ -306,7 +219,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
306
  * @since 2.4.5
307
  * @access public
308
  */
309
- public function hestia_fix_duplicate_widgets(){
310
  themeisle_hestia_fix_duplicate_widgets();
311
  }
312
 
@@ -316,7 +229,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
316
  * @since 2.1.1
317
  * @access public
318
  */
319
- public function hestia_load_clients_default_content(){
320
  return themeisle_hestia_clients_default_content();
321
  }
322
 
@@ -325,7 +238,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
325
  *
326
  * @access public
327
  */
328
- public function hestia_enqueue_clients_style(){
329
  themeisle_hestia_enqueue_clients_style();
330
  }
331
 
@@ -335,7 +248,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
335
  * @since 2.1.1
336
  * @access public
337
  */
338
- public function hestia_top_bar_default_alignment(){
339
  return themeisle_hestia_top_bar_default_alignment();
340
  }
341
 
@@ -359,45 +272,6 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
359
  themeisle_hestia_set_frontpage();
360
  }
361
 
362
- /**
363
- * Wrapper method for Azera Shop Companion styles
364
- *
365
- * @since 2.4.5
366
- * @access public
367
- */
368
- public function azera_shop_companion_register_plugin_styles() {
369
- azera_shop_companion_register_plugin_styles();
370
- }
371
-
372
- /**
373
- * Wrapper method for Azera Shop Companion sections
374
- *
375
- * @since 2.4.5
376
- * @access public
377
- */
378
- public function azera_shop_companion_load_sections() {
379
- azera_shop_companion_load_sections();
380
- }
381
-
382
- /**
383
- * Wrapper method for Llorix One Companion styles
384
- *
385
- * @since 2.4.5
386
- * @access public
387
- */
388
- public function llorix_one_companion_register_plugin_styles() {
389
- llorix_one_companion_register_plugin_styles();
390
- }
391
-
392
- /**
393
- * Wrapper method for Llorix One Companion sections
394
- *
395
- * @since 2.4.5
396
- * @access public
397
- */
398
- public function llorix_one_companion_load_sections() {
399
- llorix_one_companion_load_sections();
400
- }
401
 
402
  /**
403
  * The loading logic for the module.
@@ -420,12 +294,7 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
420
  $this->loader->add_action( 'widgets_init', $this, 'zerif_register_widgets' );
421
  }
422
 
423
- if ( $this->is_rhea() ) {
424
- $this->loader->add_action( 'widgets_init', $this, 'rhea_register_widgets' );
425
- $this->loader->add_action( 'admin_enqueue_scripts', $this, 'rhea_load_custom_wp_admin_style' );
426
- $this->loader->add_action( 'admin_footer', $this, 'rhea_add_html_to_admin_footer' );
427
- $this->loader->add_action( 'customize_controls_print_footer_scripts', $this, 'rhea_add_html_to_admin_footer' );
428
- }
429
 
430
  if ( $this->is_hestia() ) {
431
  $this->loader->add_action( 'after_setup_theme', $this, 'hestia_require' );
@@ -443,28 +312,16 @@ class Companion_Legacy_OBFX_Module extends Orbit_Fox_Module_Abstract {
443
  $this->loader->add_filter( 'hestia_top_bar_alignment_default', $this, 'hestia_top_bar_default_alignment' );
444
  }
445
 
446
- if( $this->is_shop_isle() ) {
447
  require_once $this->inc_dir . 'shop-isle' . DIRECTORY_SEPARATOR . 'functions.php';
448
  }
449
-
450
- if ( $this->is_azera_shop() ) {
451
- require_once $this->inc_dir . 'azera-shop' . DIRECTORY_SEPARATOR . 'functions.php';
452
- $this->loader->add_action( 'wp_enqueue_scripts', $this, 'azera_shop_companion_register_plugin_styles' );
453
- $this->loader->add_action( 'plugins_loaded', $this, 'azera_shop_companion_load_sections' );
454
- }
455
-
456
- if ( $this->is_llorix_one_lite() ) {
457
- require_once $this->inc_dir . 'llorix-one-companion' . DIRECTORY_SEPARATOR . 'functions.php';
458
- $this->loader->add_action( 'wp_enqueue_scripts', $this, 'llorix_one_companion_register_plugin_styles' );
459
- $this->loader->add_action( 'plugins_loaded', $this, 'llorix_one_companion_load_sections' );
460
- }
461
  }
462
 
463
  /**
464
  * Import mods if is shop isle.
465
  */
466
  public function activate() {
467
- if( $this->is_shop_isle() ) {
468
  $this->shop_isle_get_wporg_options();
469
  }
470
  }
47
  require_once $this->inc_dir . 'zerif-lite' . DIRECTORY_SEPARATOR . 'functions.php';
48
  }
49
 
 
 
 
 
 
 
 
 
 
50
 
51
  if ( $this->is_hestia() ) {
52
  require_once $this->inc_dir . 'hestia' . DIRECTORY_SEPARATOR . 'functions.php';
60
  $theme_name = 'Hestia Pro';
61
 
62
  }
63
+ if ( $this->is_shop_isle() ) {
64
  $theme_name = 'Shop Isle';
65
  }
66
 
 
 
 
 
 
 
 
 
67
  $this->name = sprintf( __( '%s enhancements ', 'themeisle-companion' ), $theme_name );
68
  $this->description = sprintf( __( 'Module containing frontpage improvements for %s theme.', 'themeisle-companion' ), $theme_name );
69
  }
76
  return false;
77
  }
78
 
 
 
 
 
 
 
 
79
 
80
  private function is_hestia() {
81
  if ( $this->get_active_theme_dir() == 'hestia' ) {
85
  return false;
86
  }
87
 
88
+ private function is_hestia_pro() {
89
  if ( $this->get_active_theme_dir() == 'hestia-pro' ) {
90
  return true;
91
  }
94
  }
95
 
96
  private function is_shop_isle() {
97
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
98
+ if ( is_plugin_active( 'shop-isle-companion/shop-isle-companion.php' ) ) {
99
  return false;
100
  }
101
  if ( $this->get_active_theme_dir() == 'shop-isle' ) {
105
  return false;
106
  }
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
 
109
  /**
110
  * Determine if module should be loaded.
114
  * @return bool
115
  */
116
  public function enable_module() {
117
+ if ( $this->is_hestia() || $this->is_zerif() || $this->is_hestia_pro() || $this->is_shop_isle() ) {
118
  return true;
119
  } else {
120
  return false;
133
  }
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
  /**
138
  * Function to import customizer big title settings into first slide.
139
  */
140
  public function shop_isle_get_wporg_options() {
141
  /* import shop isle options */
142
+ $shop_isle_mods = get_option( 'theme_mods_shop-isle' );
143
 
144
+ if ( ! empty( $shop_isle_mods ) ) {
145
 
146
  $new_slider = new stdClass();
147
 
148
+ foreach ( $shop_isle_mods as $shop_isle_mod_k => $shop_isle_mod_v ) {
149
 
150
  /* migrate Big title section to Slider section */
151
+ if ( ( $shop_isle_mod_k == 'shop_isle_big_title_image' ) || ( $shop_isle_mod_k == 'shop_isle_big_title_title' ) || ( $shop_isle_mod_k == 'shop_isle_big_title_subtitle' ) || ( $shop_isle_mod_k == 'shop_isle_big_title_button_label' ) || ( $shop_isle_mod_k == 'shop_isle_big_title_button_link' ) ) {
152
 
153
+ if ( $shop_isle_mod_k == 'shop_isle_big_title_image' ) {
154
+ if ( ! empty( $shop_isle_mod_v ) ) {
155
  $new_slider->image_url = $shop_isle_mod_v;
156
  } else {
157
  $new_slider->image_url = '';
158
  }
159
  }
160
 
161
+ if ( $shop_isle_mod_k == 'shop_isle_big_title_title' ) {
162
+ if ( ! empty( $shop_isle_mod_v ) ) {
163
  $new_slider->text = $shop_isle_mod_v;
164
  } else {
165
  $new_slider->text = '';
166
  }
167
  }
168
 
169
+ if ( $shop_isle_mod_k == 'shop_isle_big_title_subtitle' ) {
170
+ if ( ! empty( $shop_isle_mod_v ) ) {
171
  $new_slider->subtext = $shop_isle_mod_v;
172
  } else {
173
  $new_slider->subtext = '';
174
  }
175
  }
176
 
177
+ if ( $shop_isle_mod_k == 'shop_isle_big_title_button_label' ) {
178
+ if ( ! empty( $shop_isle_mod_v ) ) {
179
  $new_slider->label = $shop_isle_mod_v;
180
  } else {
181
  $new_slider->label = '';
182
  }
183
  }
184
 
185
+ if ( $shop_isle_mod_k == 'shop_isle_big_title_button_link' ) {
186
+ if ( ! empty( $shop_isle_mod_v ) ) {
187
  $new_slider->link = $shop_isle_mod_v;
188
  } else {
189
  $new_slider->link = '';
190
  }
191
  }
192
 
193
+ if ( ! empty( $new_slider->image_url ) || ! empty( $new_slider->text ) || ! empty( $new_slider->subtext ) || ! empty( $new_slider->link ) ) {
194
+ $new_slider_encode = json_encode( array( $new_slider ) );
195
+ set_theme_mod( 'shop_isle_slider', $new_slider_encode );
196
+ }
 
197
  } else {
198
 
199
+ set_theme_mod( $shop_isle_mod_k, $shop_isle_mod_v );
200
  }
201
  }
202
  }
219
  * @since 2.4.5
220
  * @access public
221
  */
222
+ public function hestia_fix_duplicate_widgets() {
223
  themeisle_hestia_fix_duplicate_widgets();
224
  }
225
 
229
  * @since 2.1.1
230
  * @access public
231
  */
232
+ public function hestia_load_clients_default_content() {
233
  return themeisle_hestia_clients_default_content();
234
  }
235
 
238
  *
239
  * @access public
240
  */
241
+ public function hestia_enqueue_clients_style() {
242
  themeisle_hestia_enqueue_clients_style();
243
  }
244
 
248
  * @since 2.1.1
249
  * @access public
250
  */
251
+ public function hestia_top_bar_default_alignment() {
252
  return themeisle_hestia_top_bar_default_alignment();
253
  }
254
 
272
  themeisle_hestia_set_frontpage();
273
  }
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
 
276
  /**
277
  * The loading logic for the module.
294
  $this->loader->add_action( 'widgets_init', $this, 'zerif_register_widgets' );
295
  }
296
 
297
+
 
 
 
 
 
298
 
299
  if ( $this->is_hestia() ) {
300
  $this->loader->add_action( 'after_setup_theme', $this, 'hestia_require' );
312
  $this->loader->add_filter( 'hestia_top_bar_alignment_default', $this, 'hestia_top_bar_default_alignment' );
313
  }
314
 
315
+ if ( $this->is_shop_isle() ) {
316
  require_once $this->inc_dir . 'shop-isle' . DIRECTORY_SEPARATOR . 'functions.php';
317
  }
 
 
 
 
 
 
 
 
 
 
 
 
318
  }
319
 
320
  /**
321
  * Import mods if is shop isle.
322
  */
323
  public function activate() {
324
+ if ( $this->is_shop_isle() ) {
325
  $this->shop_isle_get_wporg_options();
326
  }
327
  }
obfx_modules/elementor-widgets/init.php CHANGED
@@ -29,8 +29,8 @@ class Elementor_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract {
29
  */
30
  public function __construct() {
31
  parent::__construct();
32
- $this->name = __( 'Page builder widgets', 'themeisle-companion' );
33
- $this->description = __( 'Adds widgets to the most popular builders: Elementor or Beaver. More to come!', 'themeisle-companion' );
34
  $this->active_default = true;
35
  }
36
 
@@ -42,7 +42,7 @@ class Elementor_Widgets_OBFX_Module extends Orbit_Fox_Module_Abstract {
42
  * @return bool
43
  */
44
  public function enable_module() {
45
- require_once( ABSPATH . 'wp-admin' . '/includes/plugin.php' );
46
  return is_plugin_active( 'elementor/elementor.php' );
47
  }
48
 
29
  */
30
  public function __construct() {
31
  parent::__construct();
32
+ $this->name = __( 'Page builder widgets', 'themeisle-companion' );
33
+ $this->description = __( 'Adds widgets to the most popular builders: Elementor or Beaver. More to come!', 'themeisle-companion' );
34
  $this->active_default = true;
35
  }
36
 
42
  * @return bool
43
  */
44
  public function enable_module() {
45
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
46
  return is_plugin_active( 'elementor/elementor.php' );
47
  }
48
 
obfx_modules/google-analytics/init.php CHANGED
@@ -89,12 +89,16 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
89
  * Register endpoint for refreshing analytics.
90
  */
91
  public function register_endpoints() {
92
- register_rest_route( 'obfx-' . $this->slug, '/obfx-analytics', array(
 
 
93
  array(
94
- 'methods' => WP_REST_Server::CREATABLE,
95
- 'callback' => array( $this, 'refresh_tracking_links' )
96
- ),
97
- ) );
 
 
98
  }
99
 
100
  /**
@@ -110,7 +114,7 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
110
 
111
  $obfx_token = get_option( 'obfx_token', '' );
112
 
113
- if ( ( $_POST['deactivate'] === 'unregister' ) ) {
114
  return $this->unregister_website( $obfx_token );
115
  }
116
  if ( empty( $obfx_token ) ) {
@@ -133,13 +137,18 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
133
  delete_option( 'obfx_token' );
134
  delete_option( 'obfx_google_accounts_tracking_codes' );
135
  $req_headers = array( 'x-obfx-auth' => $obfx_token );
136
- $req_body = array( 'site_url' => home_url(), 'site_hash' => $this->get_site_hash() );
 
 
 
137
 
138
- $request = wp_remote_post( $this->api_url . '/remove_website',
 
139
  array(
140
  'headers' => $req_headers,
141
  'body' => $req_body,
142
- ) );
 
143
 
144
  return $request;
145
  }
@@ -170,11 +179,14 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
170
 
171
  $script_handle = $this->slug . '-script';
172
  wp_register_script( $script_handle, plugin_dir_url( $this->get_dir() ) . $this->slug . '/js/script.js', array( 'jquery' ), $this->version, true );
173
- wp_localize_script( $script_handle, 'obfxAnalyticsObj',
 
 
174
  array(
175
  'url' => $this->get_endpoint_url( '/obfx-analytics' ),
176
  'nonce' => wp_create_nonce( 'wp_rest' ),
177
- ) );
 
178
  wp_enqueue_script( $script_handle );
179
  }
180
 
@@ -212,11 +224,14 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
212
  $token = get_option( 'obfx_token', '' );
213
  if ( empty( $token ) ) {
214
  $url = $this->api_url . '/auth';
215
- $url = add_query_arg( array(
216
- 'site_hash' => $this->get_site_hash(),
217
- 'site_url' => home_url(),
218
- 'site_return' => admin_url( 'admin.php?page=obfx_companion#obfx-mod-google-analytics' ),
219
- ), $url );
 
 
 
220
 
221
  return array(
222
  array(
@@ -234,7 +249,7 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
234
 
235
  $accounts = get_option( 'obfx_google_accounts_tracking_codes', array() );
236
 
237
- if ( ! empty ( $accounts ) ) {
238
  foreach ( $accounts as $account ) {
239
  $options[ $account->tracking_code ] = $account->account_name . ' - ' . $account->tracking_code;
240
  }
@@ -249,7 +264,7 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
249
  'link-class' => 'btn btn-primary btn-sm',
250
  'link-id' => 'refresh-analytics-accounts',
251
  'text' => '<i class="dashicons dashicons-update"></i> ' . __( 'Refresh Accounts', 'themeisle-companion' ),
252
- 'url' => ''
253
  ),
254
  array(
255
  'id' => 'analytics_accounts_select',
@@ -265,8 +280,8 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
265
  'link-class' => 'btn btn-sm',
266
  'link-id' => 'unregister-analytics',
267
  'text' => '<i class="dashicons dashicons-no"></i>' . __( 'Unregister Site', 'themeisle-companion' ),
268
- 'url' => ''
269
- )
270
  );
271
  }
272
 
@@ -274,7 +289,7 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
274
  * Get tracking codes from server.
275
  *
276
  * @param string $obfx_token
277
- * @param bool $forced
278
  *
279
  * @return bool|string
280
  */
@@ -288,20 +303,22 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
288
  $req_body = array(
289
  'site_url' => home_url(),
290
  'site_hash' => $this->get_site_hash(),
291
- 'forced_update' => 'not_forced'
292
  );
293
 
294
  if ( $forced === true ) {
295
  $req_body['forced_update'] = 'forced_update';
296
  }
297
 
298
- $request = wp_remote_post( $this->api_url . '/get_tracking_links',
 
299
  array(
300
  'headers' => $req_headers,
301
  'body' => $req_body,
302
- ) );
 
303
 
304
- if ( empty ( $request['body'] ) ) {
305
  return false;
306
  }
307
  $accounts = json_decode( $request['body'] );
@@ -317,13 +334,13 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
317
  *
318
  * @return string
319
  */
320
- private final function get_site_hash() {
321
- $hash_base = '';
322
- if( defined ( 'AUTH_KEY' ) && defined ('SECURE_AUTH_KEY' ) && defined ('LOGGED_IN_KEY' ) ){
323
- $hash_base = AUTH_KEY . SECURE_AUTH_KEY . LOGGED_IN_KEY;
324
- }else{
325
- $hash_base = sha1(ABSPATH ) . sha1( get_site_url( ) );
326
- }
327
  $pre_hash = rtrim( ltrim( sanitize_text_field( preg_replace( '/[^a-zA-Z0-9]/', '', $hash_base ) ) ) );
328
  if ( function_exists( 'mb_strimwidth' ) ) {
329
  return mb_strimwidth( $pre_hash, 0, 100 );
@@ -332,7 +349,7 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
332
  return substr( $pre_hash, 0, 100 );
333
  }
334
 
335
- public final function maybe_save_obfx_token() {
336
  $obfx_token = isset( $_GET['obfx_token'] ) ? sanitize_text_field( $_GET['obfx_token'] ) : '';
337
  if ( empty( $obfx_token ) ) {
338
  return '';
@@ -353,10 +370,10 @@ class Google_Analytics_OBFX_Module extends Orbit_Fox_Module_Abstract {
353
  update_option( 'obfx_token', $obfx_token );
354
  $this->get_tracking_codes( $obfx_token );
355
  wp_safe_redirect( admin_url( 'admin.php?page=obfx_companion' ) );
356
-
357
  }
358
 
359
- public final function output_analytics_code() {
360
  $ua_code = $this->get_option( 'analytics_accounts_select' ); ?>
361
  <!-- Google Analytics -->
362
  <!-- Global site tag (gtag.js) - Google Analytics -->
89
  * Register endpoint for refreshing analytics.
90
  */
91
  public function register_endpoints() {
92
+ register_rest_route(
93
+ 'obfx-' . $this->slug,
94
+ '/obfx-analytics',
95
  array(
96
+ array(
97
+ 'methods' => WP_REST_Server::CREATABLE,
98
+ 'callback' => array( $this, 'refresh_tracking_links' ),
99
+ ),
100
+ )
101
+ );
102
  }
103
 
104
  /**
114
 
115
  $obfx_token = get_option( 'obfx_token', '' );
116
 
117
+ if ( ( $_POST['deactivate'] === 'unregister' ) ) { //phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotValidated
118
  return $this->unregister_website( $obfx_token );
119
  }
120
  if ( empty( $obfx_token ) ) {
137
  delete_option( 'obfx_token' );
138
  delete_option( 'obfx_google_accounts_tracking_codes' );
139
  $req_headers = array( 'x-obfx-auth' => $obfx_token );
140
+ $req_body = array(
141
+ 'site_url' => home_url(),
142
+ 'site_hash' => $this->get_site_hash(),
143
+ );
144
 
145
+ $request = wp_remote_post(
146
+ $this->api_url . '/remove_website',
147
  array(
148
  'headers' => $req_headers,
149
  'body' => $req_body,
150
+ )
151
+ );
152
 
153
  return $request;
154
  }
179
 
180
  $script_handle = $this->slug . '-script';
181
  wp_register_script( $script_handle, plugin_dir_url( $this->get_dir() ) . $this->slug . '/js/script.js', array( 'jquery' ), $this->version, true );
182
+ wp_localize_script(
183
+ $script_handle,
184
+ 'obfxAnalyticsObj',
185
  array(
186
  'url' => $this->get_endpoint_url( '/obfx-analytics' ),
187
  'nonce' => wp_create_nonce( 'wp_rest' ),
188
+ )
189
+ );
190
  wp_enqueue_script( $script_handle );
191
  }
192
 
224
  $token = get_option( 'obfx_token', '' );
225
  if ( empty( $token ) ) {
226
  $url = $this->api_url . '/auth';
227
+ $url = add_query_arg(
228
+ array(
229
+ 'site_hash' => $this->get_site_hash(),
230
+ 'site_url' => home_url(),
231
+ 'site_return' => admin_url( 'admin.php?page=obfx_companion#obfx-mod-google-analytics' ),
232
+ ),
233
+ $url
234
+ );
235
 
236
  return array(
237
  array(
249
 
250
  $accounts = get_option( 'obfx_google_accounts_tracking_codes', array() );
251
 
252
+ if ( ! empty( $accounts ) ) {
253
  foreach ( $accounts as $account ) {
254
  $options[ $account->tracking_code ] = $account->account_name . ' - ' . $account->tracking_code;
255
  }
264
  'link-class' => 'btn btn-primary btn-sm',
265
  'link-id' => 'refresh-analytics-accounts',
266
  'text' => '<i class="dashicons dashicons-update"></i> ' . __( 'Refresh Accounts', 'themeisle-companion' ),
267
+ 'url' => '',
268
  ),
269
  array(
270
  'id' => 'analytics_accounts_select',
280
  'link-class' => 'btn btn-sm',
281
  'link-id' => 'unregister-analytics',
282
  'text' => '<i class="dashicons dashicons-no"></i>' . __( 'Unregister Site', 'themeisle-companion' ),
283
+ 'url' => '',
284
+ ),
285
  );
286
  }
287
 
289
  * Get tracking codes from server.
290
  *
291
  * @param string $obfx_token
292
+ * @param bool $forced
293
  *
294
  * @return bool|string
295
  */
303
  $req_body = array(
304
  'site_url' => home_url(),
305
  'site_hash' => $this->get_site_hash(),
306
+ 'forced_update' => 'not_forced',
307
  );
308
 
309
  if ( $forced === true ) {
310
  $req_body['forced_update'] = 'forced_update';
311
  }
312
 
313
+ $request = wp_remote_post(
314
+ $this->api_url . '/get_tracking_links',
315
  array(
316
  'headers' => $req_headers,
317
  'body' => $req_body,
318
+ )
319
+ );
320
 
321
+ if ( empty( $request['body'] ) ) {
322
  return false;
323
  }
324
  $accounts = json_decode( $request['body'] );
334
  *
335
  * @return string
336
  */
337
+ final private function get_site_hash() {
338
+ $hash_base = '';
339
+ if ( defined( 'AUTH_KEY' ) && defined( 'SECURE_AUTH_KEY' ) && defined( 'LOGGED_IN_KEY' ) ) {
340
+ $hash_base = AUTH_KEY . SECURE_AUTH_KEY . LOGGED_IN_KEY;
341
+ } else {
342
+ $hash_base = sha1( ABSPATH ) . sha1( get_site_url() );
343
+ }
344
  $pre_hash = rtrim( ltrim( sanitize_text_field( preg_replace( '/[^a-zA-Z0-9]/', '', $hash_base ) ) ) );
345
  if ( function_exists( 'mb_strimwidth' ) ) {
346
  return mb_strimwidth( $pre_hash, 0, 100 );
349
  return substr( $pre_hash, 0, 100 );
350
  }
351
 
352
+ final public function maybe_save_obfx_token() {
353
  $obfx_token = isset( $_GET['obfx_token'] ) ? sanitize_text_field( $_GET['obfx_token'] ) : '';
354
  if ( empty( $obfx_token ) ) {
355
  return '';
370
  update_option( 'obfx_token', $obfx_token );
371
  $this->get_tracking_codes( $obfx_token );
372
  wp_safe_redirect( admin_url( 'admin.php?page=obfx_companion' ) );
373
+ exit;
374
  }
375
 
376
+ final public function output_analytics_code() {
377
  $ua_code = $this->get_option( 'analytics_accounts_select' ); ?>
378
  <!-- Google Analytics -->
379
  <!-- Global site tag (gtag.js) - Google Analytics -->
obfx_modules/gutenberg-blocks/init.php CHANGED
@@ -21,21 +21,24 @@ class Gutenberg_Blocks_OBFX_Module extends Orbit_Fox_Module_Abstract {
21
  */
22
  public function __construct() {
23
  parent::__construct();
24
- $this->name = __( 'Gutenberg Blocks <sup class="obfx-title-new">NEW</sup>', 'themeisle-companion' );
25
- $this->description =sprintf( __( 'A set of awesome Gutenberg Blocks provided by %sOtter\'s%s plugin!', 'themeisle-companion' ),'<span class="dashicons dashicons-external"></span><a target="_blank" href="https://wordpress.org/plugins/otter-blocks/">','</a>');
 
 
 
26
  $this->active_default = true;
27
  }
28
 
29
  /**
30
  * Determine if module should be loaded.
31
  *
 
32
  * @since 2.2.5
33
  * @access public
34
- * @return bool
35
  */
36
  public function enable_module() {
37
  global $wp_version;
38
- require_once( ABSPATH . 'wp-admin' . '/includes/plugin.php' );
39
  if ( is_plugin_active( 'otter-blocks/otter-blocks.php' ) ) {
40
  return false;
41
  }
@@ -74,9 +77,9 @@ class Gutenberg_Blocks_OBFX_Module extends Orbit_Fox_Module_Abstract {
74
  * Method that returns an array of scripts and styles to be loaded
75
  * for the front end part.
76
  *
 
77
  * @since 2.2.5
78
  * @access public
79
- * @return array
80
  */
81
  public function public_enqueue() {
82
  return array();
@@ -86,9 +89,9 @@ class Gutenberg_Blocks_OBFX_Module extends Orbit_Fox_Module_Abstract {
86
  * Method that returns an array of scripts and styles to be loaded
87
  * for the admin part.
88
  *
 
89
  * @since 2.2.5
90
  * @access public
91
- * @return array
92
  */
93
  public function admin_enqueue() {
94
  return array();
@@ -97,9 +100,9 @@ class Gutenberg_Blocks_OBFX_Module extends Orbit_Fox_Module_Abstract {
97
  /**
98
  * Method to define the options fields for the module
99
  *
 
100
  * @since 2.2.5
101
  * @access public
102
- * @return array
103
  */
104
  public function options() {
105
  return array();
@@ -108,18 +111,16 @@ class Gutenberg_Blocks_OBFX_Module extends Orbit_Fox_Module_Abstract {
108
  /**
109
  * Load assets for our blocks.
110
  */
111
- function enqueue_block_assets() {
112
- wp_enqueue_style( 'font-awesome-5', plugins_url( 'assets/fontawesome/css/all.min.css', __FILE__ ) );
113
- wp_enqueue_style( 'font-awesome-4-shims', plugins_url( 'assets/fontawesome/css/v4-shims.min.css', __FILE__ ) );
114
  }
115
 
116
  /**
117
  * If the composer library is present let's try to init.
118
  */
119
- function load_gutenberg_blocks() {
120
- if ( class_exists( '\ThemeIsle\GutenbergBlocks' ) ) {
121
- \ThemeIsle\GutenbergBlocks::instance( __( 'Blocks by OrbitFox and Otter', 'themeisle-companion' ) );
122
- }
123
  }
124
 
125
  }
21
  */
22
  public function __construct() {
23
  parent::__construct();
24
+ $this->name = __( 'Gutenberg Blocks <sup class="obfx-title-new">NEW</sup>', 'themeisle-companion' );
25
+ /*
26
+ * translators: %1$s Start anchor tag, %2$s End anchor tag
27
+ */
28
+ $this->description = sprintf( __( 'A set of awesome Gutenberg Blocks provided by %1$sOtter\'s%2$s plugin!', 'themeisle-companion' ), '<span class="dashicons dashicons-external"></span><a target="_blank" href="https://wordpress.org/plugins/otter-blocks/">', '</a>' );
29
  $this->active_default = true;
30
  }
31
 
32
  /**
33
  * Determine if module should be loaded.
34
  *
35
+ * @return bool
36
  * @since 2.2.5
37
  * @access public
 
38
  */
39
  public function enable_module() {
40
  global $wp_version;
41
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
42
  if ( is_plugin_active( 'otter-blocks/otter-blocks.php' ) ) {
43
  return false;
44
  }
77
  * Method that returns an array of scripts and styles to be loaded
78
  * for the front end part.
79
  *
80
+ * @return array
81
  * @since 2.2.5
82
  * @access public
 
83
  */
84
  public function public_enqueue() {
85
  return array();
89
  * Method that returns an array of scripts and styles to be loaded
90
  * for the admin part.
91
  *
92
+ * @return array
93
  * @since 2.2.5
94
  * @access public
 
95
  */
96
  public function admin_enqueue() {
97
  return array();
100
  /**
101
  * Method to define the options fields for the module
102
  *
103
+ * @return array
104
  * @since 2.2.5
105
  * @access public
 
106
  */
107
  public function options() {
108
  return array();
111
  /**
112
  * Load assets for our blocks.
113
  */
114
+ public function enqueue_block_assets() {
115
+ wp_enqueue_style( 'font-awesome-5', plugins_url( 'assets/fontawesome/css/all.min.css', __FILE__ ), [], $this->version );
116
+ wp_enqueue_style( 'font-awesome-4-shims', plugins_url( 'assets/fontawesome/css/v4-shims.min.css', __FILE__ ), [], $this->version );
117
  }
118
 
119
  /**
120
  * If the composer library is present let's try to init.
121
  */
122
+ public function load_gutenberg_blocks() {
123
+ \ThemeIsle\GutenbergBlocks\Main::instance( __( 'Blocks by OrbitFox and Otter', 'themeisle-companion' ) );
 
 
124
  }
125
 
126
  }
obfx_modules/image-cdn/inc/class-orbit-fox-connector.php DELETED
@@ -1,228 +0,0 @@
1
- <?php
2
-
3
- namespace OrbitFox;
4
-
5
- /**
6
- * The class defines way of connecting this user to the OrbitFox Dashboard.
7
- *
8
- * @package \OrbitFox\Connector
9
- * @author Themeisle <friends@themeisle.com>
10
- */
11
- class Connector {
12
- /**
13
- * Option key name for OrbitFox site account.
14
- */
15
- const API_DATA_KEY = 'obfx_connect_data';
16
-
17
- /**
18
- * The instance object.
19
- *
20
- * @var Connector
21
- */
22
- protected static $instance = null;
23
-
24
- /**
25
- * The Root URL of the OrbitFox dashboard.
26
- *
27
- * @var string
28
- */
29
- protected $connect_url = 'https://dashboard.orbitfox.com/api/obfxhq/v1';
30
-
31
- /**
32
- * The CDN details path.
33
- *
34
- * @var string
35
- */
36
- protected $cdn_path = '/image/details';
37
-
38
- /**
39
- * The instance init method.
40
- *
41
- * @static
42
- * @since 1.0.0
43
- * @access public
44
- * @return Connector
45
- */
46
- public static function instance() {
47
- if ( is_null( self::$instance ) ) {
48
- self::$instance = new self();
49
- self::$instance->init();
50
- }
51
-
52
- return self::$instance;
53
- }
54
-
55
- /**
56
- * Init hooks.
57
- */
58
- function init() {
59
- $this->connect_url = apply_filters( 'obfx_dashboard_url', $this->connect_url );
60
-
61
- add_action( 'admin_footer', array( $this, 'admin_inline_js' ) );
62
- }
63
-
64
-
65
- /**
66
- * Sync quota data.
67
- */
68
- public function daily_check() {
69
-
70
- $current_data = get_option( self::API_DATA_KEY );
71
- if ( empty( $current_data ) ) {
72
- return;
73
- }
74
- if ( ! isset( $current_data['api_key'] ) || empty( $current_data['api_key'] ) && strlen( $current_data['api_key'] ) > 10 ) {
75
- return;
76
- }
77
- $request = new \OrbitFox\Request( $this->connect_url . $this->cdn_path, 'POST', $current_data['api_key'] );
78
- $response = $request->get_response();
79
- $response['api_key'] = $current_data['api_key'];
80
-
81
- update_option( self::API_DATA_KEY, $response );
82
-
83
- }
84
-
85
- /**
86
- * When a user requests an url we request a set of temporary token credentials and build a link with them.
87
- * We also save them because we'll need them with the verifier.
88
- *
89
- * @return \WP_REST_Response|\WP_Error The connection handshake.
90
- */
91
- public function rest_handle_connector_url( \WP_REST_Request $request ) {
92
- $disconnect_flag = $request->get_param( 'disconnect' );
93
- if ( ! empty( $disconnect_flag ) ) {
94
- delete_option( self::API_DATA_KEY );
95
-
96
- return new \WP_REST_Response( array( 'code' => 200, 'message' => 'Disconnected' ), 200 );
97
- }
98
- $api_key = $request->get_param( 'api_key' );
99
- if ( empty( $api_key ) ) {
100
- return new \WP_REST_Response( array( 'code' => 'error', 'data' => 'Empty api key provided' ) );
101
- }
102
- $request = new \OrbitFox\Request( $this->connect_url . $this->cdn_path, 'POST', $api_key );
103
-
104
- $response = $request->get_response();
105
-
106
- if ( $response === false ) {
107
- return new \WP_REST_Response(
108
- array(
109
- 'code' => 'error',
110
- 'message' => 'Error connecting to the OrbitFox api. Invalid API key.',
111
- )
112
- );
113
- }
114
- $response['api_key'] = $api_key;
115
- update_option( self::API_DATA_KEY, $response );
116
-
117
- return new \WP_REST_Response( array( 'code' => 'success', 'data' => $response ), 200 );
118
- }
119
-
120
- /**
121
- * Print the inline script which get's the url for the Connector button.
122
- */
123
- function admin_inline_js() {
124
- $connect_endpoint = get_rest_url( null, 'obfx/connector-url' );
125
- $update_replacer = get_rest_url( null, 'obfx/update_replacer' );
126
- wp_enqueue_script( 'wp-api' ); ?>
127
- <script type='text/javascript'>
128
- (function ($) {
129
- $('#obfx_connect').on('click', function (event) {
130
- event.preventDefault();
131
-
132
- $('#obfx_connect').parent().addClass('loading');
133
- var api_key = $('#obfx_connect_api_key').val();
134
-
135
- wp.apiRequest({
136
- url: "<?php echo $connect_endpoint; ?>",
137
- type: 'POST',
138
- data: {api_key: api_key},
139
- dataType: 'json'
140
- }).done(function (response) {
141
- $("#obfx-error-api").remove();
142
- $('#obfx_connect').parent().removeClass('loading');
143
- var elements = $("#obfx-module-form-image-cdn .obfx-loggedin-show, #obfx-module-form-image-cdn .obfx-loggedin-hide");
144
- switch (response.code) {
145
-
146
- case 'error':
147
- $("#obfx-module-form-image-cdn").append('<p class="label label-error" id="obfx-error-api">' + response.message + '</p>');
148
- elements.removeClass('obfx-img-logged-in');
149
- break;
150
- case 'success':
151
-
152
- $("#obfx_connect_api_key").val(response.data.api_key);
153
- $("#obfx-img-display-name").text(response.data.display_name);
154
- $("#obfx-img-cdn-url").text(response.data.image_cdn.key + '.i.optimole.com');
155
- $("#obfx-img-traffic-usage").text((parseInt(response.data.image_cdn.usage) / 1000).toFixed(3) + 'GB');
156
- $(".obfx-img-traffic-quota").text((parseInt(response.data.image_cdn.quota) / 1000).toFixed(0) + 'GB');
157
- elements.addClass('obfx-img-logged-in');
158
- break;
159
- }
160
-
161
- }).fail(function (e) {
162
- $('#obfx_connect').parent().removeClass('loading');
163
- });
164
- });
165
-
166
- $("input[name='enable_cdn_replacer'").on('change', function (event) {
167
- event.preventDefault();
168
- var flag_replacer = $(this).is(":checked");
169
- wp.apiRequest({
170
- url: "<?php echo $update_replacer; ?>",
171
- type: 'POST',
172
- data: {update_replacer: flag_replacer ? 'yes' : 'no'},
173
- dataType: 'json'
174
- }).done(function(){
175
- $("#obfx-module-form-image-cdn").append('<p class="label label-success" id="obfx-feedback-api">Image replacer option saved.</p>');
176
- setTimeout(function(){
177
- $("#obfx-feedback-api").remove();
178
- },1000);
179
- });
180
- });
181
- $('#obfx_disconnect').on('click', function (event) {
182
- event.preventDefault();
183
- $('#obfx_connect').parent().addClass('loading');
184
- wp.apiRequest({
185
- url: "<?php echo $connect_endpoint; ?>",
186
- type: 'POST',
187
- data: {disconnect: true},
188
- dataType: 'json'
189
- }).done(function (response) {
190
- location.reload();
191
- }).fail(function (e) {
192
- $('#obfx_disconnect').parent().removeClass('loading');
193
- });
194
- });
195
-
196
- })(jQuery)
197
- </script>
198
- <?php
199
- }
200
-
201
-
202
- /**
203
- * Throw error on object clone
204
- *
205
- * The whole idea of the singleton design pattern is that there is a single
206
- * object therefore, we don't want the object to be cloned.
207
- *
208
- * @access public
209
- * @since 1.0.0
210
- * @return void
211
- */
212
- public function __clone() {
213
- // Cloning instances of the class is forbidden.
214
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
215
- }
216
-
217
- /**
218
- * Disable unserializing of the class
219
- *
220
- * @access public
221
- * @since 1.0.0
222
- * @return void
223
- */
224
- public function __wakeup() {
225
- // Unserializing instances of the class is forbidden.
226
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
227
- }
228
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/image-cdn/inc/class-orbit-fox-image-replacer.php DELETED
@@ -1,707 +0,0 @@
1
- <?php
2
-
3
- namespace OrbitFox;
4
-
5
- /**
6
- * The class handles the image replacements and optimizations.
7
- *
8
- * @package \OrbitFox\Image_CDN_Replacer
9
- * @author Themeisle <friends@themeisle.com>
10
- */
11
- class Image_CDN_Replacer {
12
- /**
13
- * Cached object instance.
14
- *
15
- * @var Image_CDN_Replacer
16
- */
17
- protected static $instance = null;
18
-
19
-
20
- /**
21
- * A data holder.
22
- *
23
- * @var null
24
- */
25
- protected $connect_data = null;
26
- /**
27
- * A list of allowd extensions.
28
- *
29
- * @var array
30
- */
31
- protected static $extensions = array(
32
- 'jpg|jpeg|jpe' => 'image/jpeg',
33
- 'png' => 'image/png',
34
- 'webp' => 'image/webp',
35
- );
36
-
37
- /**
38
- * Holds an array of image sizes.
39
- *
40
- * @var array
41
- */
42
- protected static $image_sizes;
43
-
44
- /**
45
- * Te cdn url, it will be build on the run.
46
- *
47
- * @var null
48
- */
49
- protected $cdn_url = null;
50
-
51
- /**
52
- * A secret key to encode payload.
53
- *
54
- * @var null
55
- */
56
- protected $cdn_secret = null;
57
-
58
- /**
59
- * Defines which is the maximum width accepted in the optimization process.
60
- *
61
- * @var int
62
- */
63
- protected $max_width = 3000;
64
-
65
- /**
66
- * Defines which is the maximum width accepted in the optimization process.
67
- *
68
- * @var int
69
- */
70
- protected $max_height = 3000;
71
-
72
- /**
73
- * Holds the real images sizes as an array.
74
- *
75
- * @var null
76
- */
77
- protected $img_real_sizes = null;
78
-
79
- /**
80
- * A cached version of `wp_upload_dir`
81
- *
82
- * @var null
83
- */
84
- protected $upload_dir = null;
85
-
86
- /**
87
- * Class instance method.
88
- *
89
- * @static
90
- * @since 1.0.0
91
- * @access public
92
- * @return Image_CDN_Replacer
93
- */
94
- public static function instance() {
95
- if ( is_null( self::$instance ) ) {
96
- self::$instance = new self();
97
- self::$instance->init();
98
- }
99
-
100
- return self::$instance;
101
- }
102
-
103
- /**
104
- * The initialize method.
105
- */
106
- function init() {
107
- $this->set_properties();
108
-
109
- add_filter( 'image_downsize', array( $this, 'filter_image_downsize' ), PHP_INT_MAX, 3 );
110
- add_filter( 'the_content', array( $this, 'filter_the_content' ), PHP_INT_MAX );
111
- add_filter( 'wp_calculate_image_srcset', array( $this, 'filter_srcset_attr' ), PHP_INT_MAX, 5 );
112
- add_filter( 'init', array( $this, 'filter_options_and_mods' ) );
113
- add_action( 'init', array( $this, 'init_html_replacer' ), PHP_INT_MAX );
114
- }
115
-
116
- /**
117
- * Set the cdn url based on the current connected user.
118
- */
119
- protected function set_properties() {
120
- $this->upload_dir = wp_upload_dir();
121
- $this->upload_dir = $this->upload_dir['baseurl'];
122
- $this->connect_data = get_option( 'obfx_connect_data' );
123
-
124
- if ( empty( $this->connect_data ) ) {
125
- return;
126
- }
127
-
128
- if ( empty( $this->connect_data['image_cdn'] ) ) {
129
- return;
130
- }
131
- $this->cdn_secret = $this->connect_data['image_cdn']['secret'];
132
- $this->cdn_url = sprintf(
133
- 'https://%s.%s',
134
- strtolower( $this->connect_data['image_cdn']['key'] ),
135
- 'i.optimole.com'
136
- );
137
- }
138
-
139
- /**
140
- * Init html replacer handler.
141
- */
142
- public function init_html_replacer() {
143
- if ( is_admin() ) {
144
- return;
145
- }
146
- ob_start(
147
- array( &$this, 'filter_raw_content' )
148
- );
149
- }
150
-
151
- /**
152
- * Filter raw content for urls.
153
- *
154
- * @param string $html HTML to filter.
155
- *
156
- * @return mixed Filtered content.
157
- */
158
- public function filter_raw_content( $html ) {
159
- $urls = wp_extract_urls( $html );
160
- $cdn_url = $this->cdn_url;
161
- $site_url = get_site_url();
162
- $urls = array_filter(
163
- $urls,
164
- function ( $url ) use ( $cdn_url, $site_url ) {
165
- if ( strpos( $url, $cdn_url ) !== false ) {
166
- return false;
167
- }
168
- if ( strpos( $url, $site_url ) === false ) {
169
- return false;
170
- }
171
-
172
- return $this->check_mimetype( $url );
173
- }
174
- );
175
- $new_urls = array_map( array( $this, 'get_imgcdn_url' ), $urls );
176
-
177
- return str_replace( $urls, $new_urls, $html );
178
- }
179
-
180
- /**
181
- * Check url mimetype.
182
- *
183
- * @param string $url Url to check.
184
- *
185
- * @return bool Is a valid image url or not.
186
- */
187
- private function check_mimetype( $url ) {
188
-
189
- $mimes = self::$extensions;
190
- $type = wp_check_filetype( $url, $mimes );
191
-
192
- if ( ! isset( $type['ext'] ) || empty( $type['ext'] ) ) {
193
- return false;
194
- }
195
-
196
- return true;
197
- }
198
-
199
- /**
200
- * This filter will replace all the images retrieved via "wp_get_image" type of functions.
201
- *
202
- * @param array $image The filtered value.
203
- * @param int $attachment_id The related attachment id.
204
- * @param array|string $size This could be the name of the thumbnail size or an array of custom dimensions.
205
- *
206
- * @return array
207
- */
208
- public function filter_image_downsize( $image, $attachment_id, $size ) {
209
- // we don't run optimizations on dashboard side
210
- if ( is_admin() ) {
211
- return $image;
212
- }
213
-
214
- $image_url = wp_get_attachment_url( $attachment_id );
215
-
216
- if ( $image_url ) {
217
- // $image_meta = image_get_intermediate_size( $attachment_id, $size );
218
- $image_meta = wp_get_attachment_metadata( $attachment_id );
219
- $image_args = self::image_sizes();
220
-
221
- // default size
222
- $sizes = array(
223
- 'width' => isset( $image_meta['width'] ) ? $image_meta['width'] : 'auto',
224
- 'height' => isset( $image_meta['height'] ) ? $image_meta['height'] : 'auto',
225
- );
226
-
227
- // in case there is a custom image size $size will be an array.
228
- if ( is_array( $size ) ) {
229
- $sizes = array(
230
- 'width' => $size[0],
231
- 'height' => $size[1],
232
- );
233
- } elseif ( 'full' !== $size && isset( $image_args[ $size ] ) ) { // overwrite if there a size
234
- $sizes = array(
235
- 'width' => $image_args[ $size ]['width'],
236
- 'height' => $image_args[ $size ]['height'],
237
- );
238
- }
239
-
240
- $new_sizes = $this->validate_image_sizes( $sizes['width'], $sizes['height'] );
241
-
242
- // resized thumbnails will have their own filenames. we should get those instead of the full image one
243
- if ( is_string( $size ) && ! empty( $image_meta['sizes'] ) && ! empty( $image_meta['sizes'][ $size ] ) ) {
244
- $image_url = str_replace( basename( $image_url ), $image_meta['sizes'][ $size ]['file'], $image_url );
245
- }
246
-
247
- // try to get an optimized image url.
248
- $new_url = $this->get_imgcdn_url( $image_url, $new_sizes );
249
-
250
- $return = array(
251
- $new_url,
252
- $sizes['width'],
253
- $sizes['height'],
254
- false,
255
- );
256
-
257
- return $return;
258
- }
259
-
260
- // in case something wrong comes, well return the default.
261
- return $image;
262
- }
263
-
264
- /**
265
- * Returns the array of image sizes since `get_intermediate_image_sizes` and image metadata doesn't include the
266
- * custom image sizes in a reliable way.
267
- *
268
- * Inspired from jetpack/photon.
269
- *
270
- * @global $wp_additional_image_sizes
271
- *
272
- * @return array
273
- */
274
- protected static function image_sizes() {
275
- if ( null === self::$image_sizes ) {
276
- global $_wp_additional_image_sizes;
277
-
278
- // Populate an array matching the data structure of $_wp_additional_image_sizes so we have a consistent structure for image sizes
279
- $images = array(
280
- 'thumb' => array(
281
- 'width' => intval( get_option( 'thumbnail_size_w' ) ),
282
- 'height' => intval( get_option( 'thumbnail_size_h' ) ),
283
- 'crop' => (bool) get_option( 'thumbnail_crop' ),
284
- ),
285
- 'medium' => array(
286
- 'width' => intval( get_option( 'medium_size_w' ) ),
287
- 'height' => intval( get_option( 'medium_size_h' ) ),
288
- 'crop' => false,
289
- ),
290
- 'large' => array(
291
- 'width' => intval( get_option( 'large_size_w' ) ),
292
- 'height' => intval( get_option( 'large_size_h' ) ),
293
- 'crop' => false,
294
- ),
295
- 'full' => array(
296
- 'width' => null,
297
- 'height' => null,
298
- 'crop' => false,
299
- ),
300
- );
301
-
302
- // Compatibility mapping as found in wp-includes/media.php
303
- $images['thumbnail'] = $images['thumb'];
304
-
305
- // Update class variable, merging in $_wp_additional_image_sizes if any are set
306
- if ( is_array( $_wp_additional_image_sizes ) && ! empty( $_wp_additional_image_sizes ) ) {
307
- self::$image_sizes = array_merge( $images, $_wp_additional_image_sizes );
308
- } else {
309
- self::$image_sizes = $images;
310
- }
311
- }
312
-
313
- return is_array( self::$image_sizes ) ? self::$image_sizes : array();
314
- }
315
-
316
- /**
317
- * Keep the image sizes under a sane limit.
318
- *
319
- * @param string $width The width value which should be sanitized.
320
- * @param string $height The height value which should be sanitized.
321
- *
322
- * @return array
323
- */
324
- protected function validate_image_sizes( $width, $height ) {
325
- global $content_width;
326
- /**
327
- * While we are inside a content filter we need to keep our max_width under the content_width global
328
- * There is no reason the have a image wider than the content width.
329
- */
330
- if (
331
- doing_filter( 'the_content' )
332
- && isset( $GLOBALS['content_width'] )
333
- && apply_filters( 'optml_imgcdn_allow_resize_images_from_content_width', true )
334
- ) {
335
- $content_width = (int) $GLOBALS['content_width'];
336
-
337
- if ( $this->max_width > $content_width ) {
338
- $this->max_width = $content_width;
339
- }
340
- }
341
-
342
- $percentWidth = $percentHeight = null;
343
-
344
- if ( $width > $this->max_width ) {
345
- // we need to remember how much in percentage the width was resized and apply the same treatment to the height.
346
- $percentWidth = ( 1 - $this->max_width / $width ) * 100;
347
- $width = $this->max_width;
348
- $height = round( $height * ( ( 100 - $percentWidth ) / 100 ), 0 );
349
- }
350
-
351
- // now for the height
352
- if ( $height > $this->max_height ) {
353
- $percentHeight = ( 1 - $this->max_height / $height ) * 100;
354
- // if we reduce the height to max_height by $x percentage than we'll also reduce the width for the same amount.
355
- $height = $this->max_height;
356
- $width = round( $width * ( ( 100 - $percentHeight ) / 100 ), 0 );
357
- }
358
-
359
- return array(
360
- 'width' => $width,
361
- 'height' => $height,
362
- );
363
- }
364
-
365
- /**
366
- * Returns a signed image url authorized to be used in our CDN.
367
- *
368
- * @param string $url The url which should be signed.
369
- * @param array $args Dimension params; Supports `width` and `height`.
370
- *
371
- * @return string
372
- */
373
- protected function get_imgcdn_url( $url, $args = array( 'width' => 'auto', 'height' => 'auto' ) ) {
374
-
375
- if ( ! $this->check_mimetype( $url ) ) {
376
- return $url;
377
- }
378
- // not used yet.
379
- $compress_level = 55;
380
- // this will authorize the image
381
- $url_parts = explode( '://', $url );
382
- $scheme = $url_parts[0];
383
- $path = $url_parts[1];
384
- if ( $args['width'] !== 'auto' ) {
385
- $args['width'] = round( $args['width'], 0 );
386
- }
387
- if ( $args['height'] !== 'auto' ) {
388
- $args['height'] = round( $args['height'], 0 );
389
- }
390
- $payload = array(
391
- 'path' => $this->urlception_encode( $path ),
392
- 'scheme' => $scheme,
393
- 'width' => (string) $args['width'],
394
- 'height' => (string) $args['height'],
395
- 'quality' => (string) $compress_level,
396
- );
397
- ksort( $payload );
398
-
399
- $values = array_values( $payload );
400
- $payload = implode( '', $values );
401
- $hash = hash_hmac( 'md5', $payload, $this->cdn_secret );
402
-
403
- $new_url = sprintf(
404
- '%s/%s/%s/%s/%s/%s/%s',
405
- $this->cdn_url,
406
- $hash,
407
- (string) $args['width'],
408
- (string) $args['height'],
409
- (string) $compress_level,
410
- $scheme,
411
- $path
412
- );
413
-
414
- return $new_url;
415
- }
416
-
417
- /**
418
- * Ensures that an url parameter can stand inside an url.
419
- *
420
- * @param string $url The required url.
421
- *
422
- * @return string
423
- */
424
- protected function urlception_encode( $url ) {
425
- $new_url = rtrim( $url, '/' );
426
-
427
- return urlencode( $new_url );
428
- }
429
-
430
- /**
431
- * Identify images in post content.
432
- *
433
- * @param string $content The post content which will be filtered.
434
- *
435
- * @return string
436
- */
437
- public function filter_the_content( $content ) {
438
- $images = self::parse_images_from_html( $content );
439
-
440
- if ( empty( $images ) ) {
441
- return $content; // simple. no images
442
- }
443
-
444
- $image_sizes = self::image_sizes();
445
- foreach ( $images[0] as $index => $tag ) {
446
- $width = $height = false;
447
- $new_tag = $tag;
448
- $src = $images['img_url'][ $index ];
449
-
450
- if ( apply_filters( 'optml_imgcdn_disable_optimization_for_link', false, $src ) ) {
451
- continue;
452
- }
453
-
454
- if ( false !== strpos( $src, 'i.optimole.com' ) ) {
455
- continue; // we already have this
456
- }
457
-
458
- // we handle only images uploaded to this site.
459
- if ( false === strpos( $src, $this->upload_dir ) ) {
460
- continue;
461
- }
462
-
463
- // try to get the declared sizes from the img tag
464
- if ( preg_match( '#width=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $width_string ) ) {
465
- $width = $width_string[1];
466
- }
467
-
468
- if ( preg_match( '#height=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $height_string ) ) {
469
- $height = $height_string[1];
470
- }
471
-
472
- // Detect WP registered image size from HTML class
473
- if ( preg_match( '#class=["|\']?[^"\']*size-([^"\'\s]+)[^"\']*["|\']?#i', $images['img_tag'][ $index ], $size ) ) {
474
- $size = array_pop( $size );
475
-
476
- if ( false === $width && false === $height && 'full' !== $size && array_key_exists( $size, $image_sizes, true ) ) {
477
- $width = (int) $image_sizes[ $size ]['width'];
478
- $height = (int) $image_sizes[ $size ]['height'];
479
- }
480
- } else {
481
- unset( $size );
482
- }
483
-
484
- $new_sizes = $this->validate_image_sizes( $width, $height );
485
-
486
- $new_url = $this->get_imgcdn_url( $src, $new_sizes );
487
-
488
- // replace the url in hrefs or links
489
- if ( ! empty( $images['link_url'][ $index ] ) ) {
490
- if ( $this->check_mimetype( $images['link_url'][ $index ] ) ) {
491
- $new_tag = preg_replace( '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i', '\1' . $new_url . '\2', $tag, 1 );
492
- }
493
- }
494
-
495
- // replace the new sizes
496
- $new_tag = str_replace( 'width="' . $width . '"', 'width="' . $new_sizes['width'] . '"', $new_tag );
497
- $new_tag = str_replace( 'height="' . $height . '"', 'height="' . $new_sizes['height'] . '"', $new_tag );
498
- // replace the new url
499
- $new_tag = str_replace( 'src="' . $src . '"', 'src="' . $new_url . '"', $new_tag );
500
-
501
- $content = str_replace( $tag, $new_tag, $content );
502
- }
503
-
504
- return $content;
505
- }
506
-
507
- /**
508
- * Match all images and any relevant <a> tags in a block of HTML.
509
- *
510
- * @param string $content Some HTML.
511
- *
512
- * @return array An array of $images matches, where $images[0] is
513
- * an array of full matches, and the link_url, img_tag,
514
- * and img_url keys are arrays of those matches.
515
- */
516
- protected static function parse_images_from_html( $content ) {
517
- $images = array();
518
-
519
- if ( preg_match_all( '#(?:<a[^>]+?href=["|\'](?P<link_url>[^\s]+?)["|\'][^>]*?>\s*)?(?P<img_tag><img[^>]*?\s+?src=["|\'](?P<img_url>[^\s]+?)["|\'].*?>){1}(?:\s*</a>)?#is', $content, $images ) ) {
520
- foreach ( $images as $key => $unused ) {
521
- // Simplify the output as much as possible, mostly for confirming test results.
522
- if ( is_numeric( $key ) && $key > 0 ) {
523
- unset( $images[ $key ] );
524
- }
525
- }
526
-
527
- return $images;
528
- }
529
-
530
- return array();
531
- }
532
-
533
- /**
534
- * Replace image URLs in the srcset attributes and in case there is a resize in action, also replace the sizes.
535
- *
536
- * @param array $sources Array of image sources.
537
- * @param array $size_array Array of width and height values in pixels (in that order).
538
- * @param array $image_src The 'src' of the image.
539
- * @param array $image_meta The image meta data as returned by 'wp_get_attachment_metadata()'.
540
- * @param int $attachment_id Image attachment ID.
541
- *
542
- * @return array
543
- */
544
- public function filter_srcset_attr( $sources = array(), $size_array = array(), $image_src = array(), $image_meta = array(), $attachment_id = 0 ) {
545
- if ( ! is_array( $sources ) ) {
546
- return $sources;
547
- }
548
- $used = array();
549
- $new_sources = array();
550
- foreach ( $sources as $i => $source ) {
551
-
552
- list( $width, $height ) = self::parse_dimensions_from_filename( $source['url'] );
553
-
554
- if ( empty( $width ) ) {
555
- $width = $image_meta['width'];
556
- }
557
-
558
- if ( empty( $height ) ) {
559
- $height = $image_meta['height'];
560
- }
561
-
562
- $new_sizes = $this->validate_image_sizes( $width, $height );
563
- $new_url = $this->get_imgcdn_url( $source['url'], $new_sizes );
564
- if ( isset( $used[ md5( $new_url ) ] ) ) {
565
- continue;
566
- }
567
-
568
- $used[ md5( $new_url ) ] = true;
569
- $new_sources[ $i ] = $sources[ $i ];
570
- $new_sources[ $i ]['url'] = $new_url;
571
-
572
- if ( $new_sources[ $i ]['descriptor'] ) {
573
- $new_sources[ $i ]['value'] = $new_sizes['width'];
574
- } else {
575
- $new_sources[ $i ]['value'] = $new_sizes['height'];
576
- }
577
- }
578
-
579
- return $sources;
580
- }
581
-
582
- /**
583
- * Try to determine height and width from strings WP appends to resized image filenames.
584
- *
585
- * @param string $src The image URL.
586
- *
587
- * @return array An array consisting of width and height.
588
- */
589
- public static function parse_dimensions_from_filename( $src ) {
590
- $width_height_string = array();
591
- $extensions = array_keys( self::$extensions );
592
- if ( preg_match( '#-(\d+)x(\d+)\.(?:' . implode( '|', $extensions ) . '){1}$#i', $src, $width_height_string ) ) {
593
- $width = (int) $width_height_string[1];
594
- $height = (int) $width_height_string[2];
595
-
596
- if ( $width && $height ) {
597
- return array( $width, $height );
598
- }
599
- }
600
-
601
- return array( false, false );
602
- }
603
-
604
- /**
605
- * Handles the url replacement in options and theme mods.
606
- */
607
- public function filter_options_and_mods() {
608
- /**
609
- * `optml_imgcdn_options_with_url` is a filter that allows themes or plugins to select which option
610
- * holds an url and needs an optimization.
611
- */
612
- $theme_slug = get_option( 'stylesheet' );
613
-
614
- $options_list = apply_filters(
615
- 'optml_imgcdn_options_with_url',
616
- array(
617
- "theme_mods_$theme_slug",
618
- )
619
- );
620
-
621
- foreach ( $options_list as $option ) {
622
- add_filter( "option_$option", array( $this, 'replace_option_url' ) );
623
-
624
- // this one will not work for theme mods, since get_theme_mod('header_image', $default) has its own default.
625
- // add_filter( "default_option_$option", array( $this, 'replace_option_url' ) );
626
- }
627
-
628
- }
629
-
630
- /**
631
- * A filter which turns a local url into an optimized CDN image url or an array of image urls.
632
- *
633
- * @param string $url The url which should be replaced.
634
- *
635
- * @return string Replaced url.
636
- */
637
- public function replace_option_url( $url ) {
638
- if ( empty( $url ) ) {
639
- return $url;
640
- }
641
- // $url might be an array or an json encoded array with urls.
642
- if ( is_array( $url ) || filter_var( $url, FILTER_VALIDATE_URL ) === false ) {
643
- $array = $url;
644
- $encoded = false;
645
-
646
- // it might a json encoded array
647
- if ( is_string( $url ) ) {
648
- $array = json_decode( $url, true );
649
- $encoded = true;
650
- }
651
-
652
- // in case there is an array, apply it recursively.
653
- if ( is_array( $array ) ) {
654
- foreach ( $array as $index => $value ) {
655
- $array[ $index ] = $this->replace_option_url( $value );
656
- }
657
-
658
- if ( $encoded ) {
659
- return json_encode( $array );
660
- } else {
661
- return $array;
662
- }
663
- }
664
-
665
- if ( filter_var( $url, FILTER_VALIDATE_URL ) === false ) {
666
- return $url;
667
- }
668
- }
669
-
670
- // we handle only images uploaded to this site./
671
- // @TODO this is still wrong, not all the images are coming from the uploads folder.
672
- // if ( false === strpos( $url, $this->upload_dir ) ) {
673
- // return $url;
674
- // }
675
- // get the optimized url.
676
- $new_url = $this->get_imgcdn_url( $url );
677
-
678
- return $new_url;
679
- }
680
-
681
- /**
682
- * Throw error on object clone
683
- *
684
- * The whole idea of the singleton design pattern is that there is a single
685
- * object therefore, we don't want the object to be cloned.
686
- *
687
- * @access public
688
- * @since 1.0.0
689
- * @return void
690
- */
691
- public function __clone() {
692
- // Cloning instances of the class is forbidden.
693
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
694
- }
695
-
696
- /**
697
- * Disable unserializing of the class
698
- *
699
- * @access public
700
- * @since 1.0.0
701
- * @return void
702
- */
703
- public function __wakeup() {
704
- // Unserializing instances of the class is forbidden.
705
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
706
- }
707
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/image-cdn/inc/class-request.php DELETED
@@ -1,127 +0,0 @@
1
- <?php
2
-
3
- namespace OrbitFox;
4
-
5
- /**
6
- * A class for building an Authorization header for http requests.
7
- *
8
- * @package \OrbitFox\Image_CDN_Replacer
9
- * @author Themeisle <friends@themeisle.com>
10
- */
11
- class Request {
12
- /**
13
- * The API key.
14
- *
15
- * @var null
16
- */
17
- protected $api_key = null;
18
-
19
- /**
20
- * The api url where we are trying to connect.
21
- *
22
- * @var null
23
- */
24
- protected $api_url = null;
25
-
26
- /**
27
- * Defines which header brings the authorization key.
28
- *
29
- * @var string
30
- */
31
- protected $auth_header = 'Authorization';
32
-
33
- /**
34
- * A list of extra params in the current request.
35
- *
36
- * @var array
37
- */
38
- protected $extra_params = array();
39
-
40
- /**
41
- * The HTTP method.
42
- *
43
- * @var null|string
44
- */
45
- protected $method = null;
46
-
47
- /**
48
- * Request constructor.
49
- *
50
- * @param string $url The request url.
51
- * @param string $method The request method type.
52
- * @param string $api_key The client key.
53
- * @param array $extra_params Any extra param to be signed.
54
- */
55
- public function __construct( $url, $method = 'GET', $api_key = '', $extra_params = array() ) {
56
-
57
- // The url for our custom endpoint, which returns network settings.
58
- $this->url = esc_url( $url );
59
-
60
- // All we really care about here is GET requests.
61
- $this->method = $method;
62
-
63
- if ( ! empty( $api_key ) ) {
64
- $this->api_key = $api_key;
65
-
66
- return;
67
- }
68
- $connect_data = get_option( 'obfx_connect_data' );
69
-
70
- if ( isset( $connect_data['api_key'] ) ) {
71
- $this->api_key = $connect_data['api_key'];
72
- }
73
-
74
- }
75
-
76
-
77
- /**
78
- * Make an oauth'd http request.
79
- *
80
- * @return string|object The result of an oauth'd http request.
81
- */
82
- public function get_response() {
83
- // Grab the url to which we'll be making the request.
84
- $url = $this->url;
85
-
86
- // If there is a extra, add that as a url var.
87
- if ( 'GET' === $this->method && ! empty( $this->extra_params ) ) {
88
- foreach ( $this->extra_params as $key => $val ) {
89
- $url = add_query_arg( array( $key => $val ), $url );
90
- }
91
- }
92
-
93
- // Args for wp_remote_*().
94
- $args = array(
95
- 'method' => $this->method,
96
- 'timeout' => 45,
97
- 'httpversion' => '1.0',
98
- 'body' => $this->extra_params,
99
- 'sslverify' => false,
100
- 'headers' => array(
101
- $this->auth_header => 'Bearer ' . $this->api_key,
102
- ),
103
- );
104
- $response = wp_remote_request( $url, $args );
105
-
106
- if ( is_wp_error( $response ) ) {
107
- return false;
108
- }
109
- $response = wp_remote_retrieve_body( $response );
110
-
111
- if ( empty( $response ) ) {
112
- return false;
113
- }
114
-
115
- $response = json_decode( $response, true );
116
-
117
- if ( ! $response['code'] ) {
118
- return false;
119
- }
120
- if ( intval( $response['code'] ) !== 200 ) {
121
- return false;
122
- }
123
-
124
- return $response['data'];
125
- }
126
-
127
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/image-cdn/init.php DELETED
@@ -1,411 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * The Orbit Fox Image CDN Module.
5
- *
6
- * @link https://themeisle.com
7
- * @since 1.0.0
8
- *
9
- * @package Image_CDN_OBFX_Module
10
- */
11
-
12
- /**
13
- * The class defines a new module to be used by Orbit Fox plugin.
14
- *
15
- * @package Image_CDN_OBFX_Module
16
- * @author Themeisle <friends@themeisle.com>
17
- */
18
- class Image_CDN_OBFX_Module extends Orbit_Fox_Module_Abstract {
19
- /**
20
- * Dashboard related data.
21
- *
22
- * @var null|array Dashboard related data.
23
- */
24
- protected $connect_data = null;
25
- /**
26
- * @var \OrbitFox\Connector $connector Orbitfox Api connector.
27
- */
28
- private $connector;
29
-
30
- /**
31
- * Image_CDN_OBFX_Module constructor.
32
- *
33
- * @since 1.0.0
34
- * @access public
35
- */
36
- public function __construct() {
37
- parent::__construct();
38
- if ( isset( $_GET['loggedin'] ) && $_GET['loggedin'] == 'true' ) {
39
- $this->show = true;
40
- }
41
- $this->no_save = true;
42
- $this->name = sprintf( __( 'Image Optimization &amp; CDN Module', 'themeisle-companion' ).' <sup class="obfx-title-deprecated">DEPRECATED<sup>' );
43
- $this->description = sprintf( __( 'We are deprecating this module in favor of %sOptimole%s plugin for a more in depth integration and maintainability. You can safely disable this module and further use the dedicated plugin.', 'themeisle-companion' ), '<span class="dashicons dashicons-external"></span><a href="http://wordpress.org/plugins/optimole-wp" target="_blank">', '</a>' );
44
- add_action( 'obfx_module_tile_after', [ $this, 'tryout' ], 10, 2 );
45
- }
46
-
47
- public function tryout( $slug = '', $active = false ) {
48
- if ( $slug !== 'image-cdn' ) {
49
- return;
50
- }
51
- if ( $active ) {
52
- return;
53
- }
54
- echo sprintf( __( '%sTest your site%s','themeisle-companion' ), '<span class="obfx-tryout-message"><a href="' . esc_url( sprintf( 'https://speedtest.optimole.com/?url=%s', get_site_url() ) ) . '" target="_blank">', '</a></span>' );
55
- }
56
-
57
- /**
58
- * Determine if module should be loaded.
59
- *
60
- * @since 1.0.0
61
- * @access public
62
- * @return bool
63
- */
64
- public function enable_module() {
65
- require_once( ABSPATH . 'wp-admin' . '/includes/plugin.php' );
66
- // Bail if we optimole already.
67
- if ( is_plugin_active( 'optimole-wp/optimole-wp.php' ) ) {
68
- return false;
69
- }
70
- return $this->is_replacer_enabled();
71
- }
72
-
73
- /**
74
- * The loading logic for the module.
75
- *
76
- * @since 1.0.0
77
- * @access public
78
- */
79
- public function load() {
80
- }
81
-
82
- /**
83
- * Add top admin bar notice of traffic quota/usage.
84
- *
85
- * @param WP_Admin_Bar $wp_admin_bar Admin bar resource.
86
- */
87
- public function add_traffic_node( $wp_admin_bar ) {
88
- if ( ! is_user_logged_in() ) {
89
- return;
90
- }
91
- $obfx_user_data = $this->get_api_data();
92
- $args = array(
93
- 'id' => 'obfx_img_quota',
94
- 'title' => 'OrbitFox' . __( ' Image Traffic', 'themeisle-companion' ) . ': ' .
95
- number_format( floatval( (
96
- isset( $obfx_user_data['image_cdn']['usage'] ) ? $obfx_user_data['image_cdn']['usage'] : 0 / 1000 ) ), 3 ) . ' / ' .
97
- number_format( floatval( ( isset( $obfx_user_data['image_cdn']['quota'] ) ? $obfx_user_data['image_cdn']['quota'] : 0 / 1000 ) ), 0 ) . 'GB',
98
- 'href' => 'https://dashboard.orbitfox.com/',
99
- 'meta' => array( 'target' => '_blank' )
100
- );
101
- $wp_admin_bar->add_node( $args );
102
-
103
- }
104
-
105
- /**
106
- * Return api data.
107
- *
108
- * @return mixed|string APi data.
109
- */
110
- private function get_api_data() {
111
-
112
- if ( ! $this->get_is_active() ) {
113
- return '';
114
- }
115
-
116
- return class_exists( '\OrbitFox\Connector' ) ? get_option( \OrbitFox\Connector::API_DATA_KEY, '' ) : '';
117
- }
118
-
119
- /**
120
- * Render data from dashboard of orbitfox.com.
121
- */
122
- public function render_connect_data( $html ) {
123
-
124
- $obfx_user_data = $this->get_api_data();
125
- $class = '';
126
- if ( ! empty( $obfx_user_data ) ) {
127
- $class = 'obfx-img-logged-in';
128
- }
129
- $display_name = isset( $obfx_user_data['display_name'] ) ? $obfx_user_data['display_name'] : '';
130
- $usage = ( isset( $obfx_user_data['image_cdn'] ) && isset( $obfx_user_data['image_cdn']['usage'] ) ) ? $obfx_user_data['image_cdn']['usage'] : 0;
131
- $quota = ( isset( $obfx_user_data['image_cdn'] ) && isset( $obfx_user_data['image_cdn']['quota'] ) ) ? $obfx_user_data['image_cdn']['quota'] : 0;
132
- $html = '<div class="obfx-img-logged-in-data obfx-loggedin-show ' . $class . '" > ';
133
- $html .= '<h5>' . __( 'Logged in as', 'themeisle-companion' ) . ' : <b id="obfx-img-display-name">' . esc_attr( $display_name ) . '</b></h5>';
134
- $html .= '<p>' . __( 'Your private CDN url', 'themeisle-companion' ) . ' : <code id="obfx-img-cdn-url">' . $this->get_cdn_url() . '</code></p> ';
135
- $html .= '<p>' . __( 'This month traffic usage', 'themeisle-companion' ) . ' : <code id="obfx-img-traffic-usage">' . number_format( floatval( ( $usage / 1000 ) ), 3 ) . ' GB</code>';
136
- $html .= ' ' . __( 'Your traffic quota', 'themeisle-companion' ) . ' : <code class="obfx-img-traffic-quota">' . number_format( floatval( ( $quota / 1000 ) ), 3 ) . ' GB / month</code></p>';
137
- $html .= '<p><i>' . __( 'You can use our image service and CDN in the limit of <span class="obfx-img-traffic-quota">', 'themeisle-companion' ) . number_format( floatval( ( $quota / 1000 ) ), 0 ) . '</span> per month. </i></p>';
138
- $html .= '</div>';
139
-
140
- return $html;
141
- }
142
-
143
- /**
144
- * Get CDN private url.
145
- *
146
- * @return string Get CDN private url.
147
- */
148
- private function get_cdn_url() {
149
- $obfx_user_data = $this->get_api_data();
150
- if ( empty( $obfx_user_data ) ) {
151
- return '';
152
- }
153
- if ( ! isset( $obfx_user_data['image_cdn']['key'] ) ) {
154
- return '';
155
- }
156
-
157
- return sprintf( '%s.i.optimole.com', strtolower( $obfx_user_data['image_cdn']['key'] ) );
158
-
159
- }
160
-
161
- /**
162
- * Method that returns an array of scripts and styles to be loaded
163
- * for the front end part.
164
- *
165
- * @since 1.0.0
166
- * @access public
167
- * @return array
168
- */
169
- public function public_enqueue() {
170
- return array();
171
- }
172
-
173
- /**
174
- * Method that returns an array of scripts and styles to be loaded
175
- * for the admin part.
176
- *
177
- * @since 1.0.0
178
- * @access public
179
- * @return array|boolean
180
- */
181
- public function admin_enqueue() {
182
- return array();
183
- }
184
-
185
- /**
186
- * Options array for the Orbit Fox module.
187
- *
188
- * @return array
189
- */
190
- public function options() {
191
- //Hack to allow binding of img module connect button as the view for the module options is loaded either if the module is active or not.
192
-
193
- //TODO Remove this when we have a way of loading module options async.
194
- if ( is_admin() ) {
195
- $this->hooks();
196
- }
197
- $obfx_user_data = $this->get_api_data();
198
- if ( empty( $obfx_user_data ) ) {
199
- $this->set_option( 'obfx_connect_api_key', '' );
200
- $this->set_option( 'enable_cdn_replacer', '0' );
201
-
202
- }
203
- $class = '';
204
- if ( ! empty( $obfx_user_data ) ) {
205
- $class = 'obfx-img-logged-in';
206
- }
207
- $fields = array(
208
- array(
209
- 'type' => 'title',
210
- 'name' => 'Tooltip',
211
- 'title' => sprintf( 'In order to get access to free image optimization service you will need an account on <a href="https://dashboard.orbitfox.com/register" target="_blank">orbitfox.com</a>. You will get access to our image optimization and CDN service for free in the limit of 1GB traffic per month.<br/> <i>Note: This is just a basic integration of the <a href="%s" target="_blank"> Optimole </a> service. For a more in-depth experience, try out the dedicated <a href="%s" target="_blank" >plugin</a>.</i>', 'https://optimole.com', 'http://wordpress.org/plugins/optimole-wp' )
212
- ),
213
- array(
214
- 'id' => 'obfx_connect_api_key',
215
- 'name' => 'obfx_connect_api_key',
216
- 'type' => 'password',
217
- 'default' => isset( $obfx_user_data['api_key'] ) ? $obfx_user_data['api_key'] : '',
218
- 'placeholder' => __( 'Your OrbitFox api key', 'themeisle-companion' ),
219
- 'text' => '<span class="dashicons dashicons-share"></span>' . __( 'Connect with Orbitfox', 'themeisle-companion' ),
220
- ),
221
- array(
222
- 'id' => 'obfx-register-service',
223
- 'type' => 'link',
224
- 'target' => '_blank',
225
- 'class' => 'obfx-loggedin-hide ' . $class,
226
- 'url' => 'https://dashboard.orbitfox.com/register',
227
- 'text' => ' Sign-Up for your API key',
228
- 'name' => 'obfx-register-service',
229
- ),
230
-
231
- );
232
- $fields[] = array(
233
- 'id' => 'obfx_connect',
234
- 'name' => 'obfx_connect',
235
- 'type' => 'link',
236
- 'url' => '#',
237
- 'class' => 'obfx-loggedin-hide ' . $class,
238
- 'link-class' => 'btn btn-success',
239
- 'text' => '<span class="dashicons dashicons-share"></span>' . __( 'Connect to OrbitFox service', 'themeisle-companion' ),
240
- );
241
- $fields[] = array(
242
- 'type' => 'custom',
243
- 'id' => 'cdn_logged_in_data',
244
- 'name' => 'cdn_logged_in_data',
245
- );
246
- $fields[] = array(
247
- 'id' => 'obfx_disconnect',
248
- 'name' => 'obfx_disconnect',
249
- 'type' => 'link',
250
- 'class' => 'obfx-loggedin-show ' . $class,
251
- 'url' => '#',
252
- 'link-class' => 'btn btn-danger float-right mb-10 obfx-img-logout ',
253
- 'text' => '<span class="dashicons dashicons-share"></span>' . __( 'Clear OrbitFox API key', 'themeisle-companion' ),
254
- );
255
-
256
- $fields[] = array(
257
- 'id' => 'enable_cdn_replacer',
258
- 'title' => '',
259
- 'name' => 'enable_cdn_replacer',
260
- 'type' => 'toggle',
261
- 'class' => ' obfx-img-cdn-replacer-switch obfx-loggedin-show ' . $class,
262
- 'label' => 'Serve all images optimised through OrbitFox CDN for a boost in speed.',
263
- 'default' => '0',
264
- );
265
-
266
- return $fields;
267
- }
268
-
269
- /**
270
- * Method to define hooks needed.
271
- *
272
- * @since 1.0.0
273
- * @access public
274
- */
275
- public function hooks() {
276
- /**
277
- * Init the connector object and load deps.
278
- */
279
- require_once __DIR__ . '/inc/class-request.php';
280
- require_once __DIR__ . '/inc/class-orbit-fox-connector.php';
281
- add_filter( 'obfx_custom_control_cdn_logged_in_data', array( $this, 'render_connect_data' ) );
282
- $this->connector = \OrbitFox\Connector::instance();
283
-
284
- $this->loader->add_action( 'rest_api_init', $this, 'register_url_endpoints' );
285
- if ( ! $this->get_is_active() ) {
286
- $this->set_option( 'enable_cdn_replacer', '0' );
287
- $this->clear_api_data();
288
- }
289
- /**
290
- * Load the image replacement logic if we are on the frontend,
291
- * connected to the api and the replacement options is on.
292
- */
293
- if ( ! is_admin() && $this->is_replacer_enabled() && $this->is_connected() ) {
294
- require_once __DIR__ . '/inc/class-orbit-fox-image-replacer.php';
295
- \OrbitFox\Image_CDN_Replacer::instance();
296
- $this->loader->add_filter( 'wp_resource_hints', $this, 'add_dns_prefetch', 10, 2 );
297
-
298
- }
299
- /**
300
- * Adds top admin bar notice of traffic, if the module is connected.
301
- */
302
- if ( $this->is_connected() ) {
303
- $this->loader->add_action( 'obfx_img_quota_sync', $this->connector, 'daily_check' );
304
-
305
- if ( ! wp_next_scheduled( 'obfx_img_quota_sync' ) ) {
306
- wp_schedule_event( time() + 10, 'daily', 'obfx_img_quota_sync', array() );
307
- }
308
- $this->loader->add_action( 'admin_bar_menu', $this, 'add_traffic_node', 9999 );
309
- }
310
-
311
- }
312
-
313
- /**
314
- * Return api data.
315
- *
316
- * @return mixed|string APi data.
317
- */
318
- private function clear_api_data() {
319
-
320
-
321
- return update_option( \OrbitFox\Connector::API_DATA_KEY, '' );
322
- }
323
-
324
- /**
325
- * Check if the image replacement is enabled.
326
- *
327
- * @return bool Connection status.
328
- */
329
- private function is_replacer_enabled() {
330
- if ( ! $this->get_is_active() ) {
331
- return false;
332
- }
333
- $enabled = $this->get_option( 'enable_cdn_replacer' );
334
-
335
- return boolval( $enabled );
336
-
337
- }
338
-
339
- /**
340
- * Check if the module is connected to the api.
341
- *
342
- * @return bool Connection status.
343
- */
344
- private function is_connected() {
345
-
346
- $obfx_user_data = $this->get_api_data();
347
-
348
- return ! empty( $obfx_user_data );
349
-
350
- }
351
-
352
- /**
353
- * Adds cdn url for prefetch.
354
- *
355
- * @param array $hints Hints array.
356
- * @param string $relation_type Type of relation.
357
- *
358
- * @return array Altered hints array.
359
- */
360
- public function add_dns_prefetch( $hints, $relation_type ) {
361
- if ( 'dns-prefetch' !== $relation_type ) {
362
- return $hints;
363
- }
364
- $cdn_url = $this->get_cdn_url();
365
- if ( empty( $cdn_url ) ) {
366
- return $hints;
367
- }
368
- $hints[] = sprintf( '//%s', $cdn_url );
369
-
370
- return $hints;
371
- }
372
-
373
- /**
374
- * Update replacer callback.
375
- */
376
- public function update_replacer( WP_REST_Request $request ) {
377
- $flag = $request->get_param( 'update_replacer' );
378
- $this->set_option( 'enable_cdn_replacer', $flag === 'yes' ? '1' : '0' );
379
-
380
- return new WP_REST_Response( 'Replacer updated' );
381
- }
382
-
383
- /**
384
- * Register module rest methods.
385
- */
386
- public function register_url_endpoints() {
387
- register_rest_route(
388
- 'obfx', '/connector-url', array(
389
- array(
390
- 'methods' => \WP_REST_Server::CREATABLE,
391
- 'permission_callback' => function ( \WP_REST_Request $request ) {
392
- return current_user_can( 'manage_options' );
393
- },
394
- 'callback' => array( $this->connector, 'rest_handle_connector_url' ),
395
- ),
396
- )
397
- );
398
- register_rest_route(
399
- 'obfx', '/update_replacer', array(
400
- array(
401
- 'methods' => \WP_REST_Server::CREATABLE,
402
- 'permission_callback' => function ( \WP_REST_Request $request ) {
403
- return current_user_can( 'manage_options' );
404
- },
405
- 'callback' => array( $this, 'update_replacer' ),
406
- ),
407
- )
408
- );
409
- }
410
-
411
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/menu-icons/inc/class-menu-icons-obfx-walker.php CHANGED
@@ -19,7 +19,7 @@ class Menu_Icons_OBFX_Walker extends Walker_Nav_Menu_Edit {
19
  * @param array $args Menu item args.
20
  * @param int $id Nav menu ID.
21
  */
22
- function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
23
  parent::start_el( $output, $item, $depth, $args, $id );
24
  $icon = isset( $item->icon ) ? $item->icon : '';
25
  $output .= sprintf( '<input type="hidden" name="menu-item-icon[%d]" id="menu-item-icon-%d" value="%s">', $item->ID, $item->ID, $icon );
19
  * @param array $args Menu item args.
20
  * @param int $id Nav menu ID.
21
  */
22
+ public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
23
  parent::start_el( $output, $item, $depth, $args, $id );
24
  $icon = isset( $item->icon ) ? $item->icon : '';
25
  $output .= sprintf( '<input type="hidden" name="menu-item-icon[%d]" id="menu-item-icon-%d" value="%s">', $item->ID, $item->ID, $icon );
obfx_modules/menu-icons/init.php CHANGED
@@ -20,7 +20,7 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
20
  /**
21
  * The default icon to use.
22
  */
23
- const DEFAULT_ICON = 'dashicons-obfx-default-icon';
24
 
25
  /**
26
  * Menu_Icons_OBFX_Module constructor.
@@ -30,11 +30,11 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
30
  */
31
  public function __construct() {
32
  parent::__construct();
33
- $this->name = __( 'Menu Icons', 'themeisle-companion' );
34
- $this->description = __( 'Module to define menu icons for navigation.', 'themeisle-companion' );
35
  $this->active_default = true;
36
 
37
- add_action( 'admin_init', array( $this, 'check_conflict' ) , 99 );
38
  }
39
 
40
 
@@ -79,16 +79,16 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
79
  * @return WP_Post $menu the menu object.
80
  */
81
  public function show_menu( $menu ) {
82
- $icon = get_post_meta( $menu->ID, 'obfx_menu_icon', true );
83
  if ( ! empty( $icon ) ) {
84
  $menu->icon = $icon;
85
  if ( ! is_admin() ) {
86
  // usually, icons are of the format fa-x or dashicons-x and when displayed they are displayed with classes 'fa fa-x' or 'dashicons dashicons-x'.
87
  // so let's determine the prefix class.
88
- $array = explode( '-', $icon );
89
- $prefix = reset( $array );
90
- $prefix = apply_filters( 'obfx_menu_icons_icon_class', $prefix, $icon );
91
- $menu->title = sprintf( '<i class="obfx-menu-icon %s %s"></i>%s', $prefix, $icon, $menu->title );
92
  }
93
  }
94
  return $menu;
@@ -113,22 +113,22 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
113
  *
114
  * @return bool
115
  */
116
- private function should_load_fa(){
117
 
118
  // Get all locations
119
  $locations = get_nav_menu_locations();
120
 
121
- if( empty( $locations ) ){
122
  return false;
123
  }
124
- foreach ( $locations as $location => $menu_id ){
125
  $menu_items = wp_get_nav_menu_items( $menu_id );
126
  if ( ! is_array( $menu_items ) ) {
127
  continue;
128
  }
129
  foreach ( $menu_items as $menu_item ) {
130
  $icon = get_post_meta( $menu_item->ID, 'obfx_menu_icon', true );
131
- if ( !empty( $icon ) ){
132
  return true;
133
  }
134
  }
@@ -146,7 +146,7 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
146
  * @return array
147
  */
148
  public function public_enqueue() {
149
- if( $this->should_load_fa() === false ){
150
  return array();
151
  }
152
 
@@ -181,18 +181,21 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
181
  return array();
182
  }
183
 
184
- $this->localized = array(
185
- 'admin' => array(
186
- 'icons' => apply_filters( 'obfx_menu_icons_icon_list', $this->get_dashicons() ),
187
  'icon_default' => self::DEFAULT_ICON,
188
- 'i10n' => array(
 
 
 
189
  'powered_by' => sprintf( __( 'Powered by %s plugin', 'themeisle-companion' ), '<b>' . apply_filters( 'themeisle_companion_friendly_name', '' ) . '</b>' ),
190
  ),
191
  ),
192
  );
193
 
194
  $font_awesome = array(
195
- 'vendor/font-awesome.min' => false,
196
  'vendor/fontawesome-iconpicker.min' => array( 'vendor/font-awesome.min' ),
197
  );
198
  if ( wp_style_is( 'font-awesome', 'registered' ) || wp_style_is( 'font-awesome', 'enqueued' ) ) {
@@ -208,10 +211,10 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
208
  'admin' => array( 'vendor/fontawesome-iconpicker.min' ),
209
  )
210
  ),
211
- 'js' => array(
212
- 'vendor/bootstrap.min' => array( 'jquery' ),
213
  'vendor/fontawesome-iconpicker.min' => array( 'vendor/bootstrap.min' ),
214
- 'admin' => array( 'vendor/fontawesome-iconpicker.min', 'jquery' ),
215
  ),
216
  );
217
  }
@@ -252,8 +255,8 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
252
  }
253
 
254
  if ( ! function_exists( 'get_current_screen' ) ) {
255
- return;
256
- }
257
 
258
  $screen = get_current_screen();
259
  if ( ! $screen instanceof WP_Screen || 'nav-menus' !== $screen->id ) {
@@ -263,9 +266,9 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
263
  check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
264
 
265
  if ( isset( $_POST['menu-item-icon'][ $menu_item_db_id ] ) ) {
266
- $icon = $_POST['menu-item-icon'][ $menu_item_db_id ];
267
  if ( self::DEFAULT_ICON === $icon ) {
268
- $icon = '';
269
  }
270
  update_post_meta( $menu_item_db_id, 'obfx_menu_icon', $icon );
271
  }
@@ -277,33 +280,35 @@ class Menu_Icons_OBFX_Module extends Orbit_Fox_Module_Abstract {
277
  */
278
  public function check_conflict() {
279
  // We need to include this so that the wp_edit_nav_menu_walker filter does not misbehave.
280
- require_once( ABSPATH . 'wp-admin/includes/nav-menu.php' );
281
 
282
  // Let's check if another walker has been defined.
283
  $walker = apply_filters( 'wp_edit_nav_menu_walker', '', '' );
284
 
285
  // Yes, a conflict!
286
  if ( ! empty( $walker ) && $walker !== 'Menu_Icons_OBFX_Walker' ) {
287
- $reflector = new ReflectionClass( $walker );
288
- $path = str_replace( '\\', '/', $reflector->getFileName() );
289
 
290
- $name = '';
291
- $type = '';
292
  if ( false !== strpos( $path, 'themes' ) ) {
293
- $type = __( 'theme', 'themeisle-companion' );
294
- $theme = wp_get_theme();
295
- $name = $theme->get( 'Name' );
296
  } else {
297
  $path = explode( 'plugins', $path );
298
- $path = explode( DIRECTORY_SEPARATOR, isset($path[1]) ? $path[1] : '' );
299
  $path = array_values( array_filter( $path ) );
300
  if ( isset( $path[0] ) ) {
301
  $name = '&nbsp; <b>' . esc_attr( $path[0] ) . '</b>';
302
  }
303
  $type = __( 'plugin', 'themeisle-companion' );
304
  }
305
-
306
- $this->description .= '<br><i class="chip">' . sprintf( __( 'There appears to be a conflict with the %s %s. This module may not work as expected.', 'themeisle-companion' ), $type, $name ) . '</i>';
 
 
307
  $this->active_default = false;
308
  }
309
  }
20
  /**
21
  * The default icon to use.
22
  */
23
+ const DEFAULT_ICON = 'dashicons-obfx-default-icon';
24
 
25
  /**
26
  * Menu_Icons_OBFX_Module constructor.
30
  */
31
  public function __construct() {
32
  parent::__construct();
33
+ $this->name = __( 'Menu Icons', 'themeisle-companion' );
34
+ $this->description = __( 'Module to define menu icons for navigation.', 'themeisle-companion' );
35
  $this->active_default = true;
36
 
37
+ add_action( 'admin_init', array( $this, 'check_conflict' ), 99 );
38
  }
39
 
40
 
79
  * @return WP_Post $menu the menu object.
80
  */
81
  public function show_menu( $menu ) {
82
+ $icon = get_post_meta( $menu->ID, 'obfx_menu_icon', true );
83
  if ( ! empty( $icon ) ) {
84
  $menu->icon = $icon;
85
  if ( ! is_admin() ) {
86
  // usually, icons are of the format fa-x or dashicons-x and when displayed they are displayed with classes 'fa fa-x' or 'dashicons dashicons-x'.
87
  // so let's determine the prefix class.
88
+ $array = explode( '-', $icon );
89
+ $prefix = reset( $array );
90
+ $prefix = apply_filters( 'obfx_menu_icons_icon_class', $prefix, $icon );
91
+ $menu->title = sprintf( '<i class="obfx-menu-icon %s %s"></i>%s', $prefix, $icon, $menu->title );
92
  }
93
  }
94
  return $menu;
113
  *
114
  * @return bool
115
  */
116
+ private function should_load_fa() {
117
 
118
  // Get all locations
119
  $locations = get_nav_menu_locations();
120
 
121
+ if ( empty( $locations ) ) {
122
  return false;
123
  }
124
+ foreach ( $locations as $location => $menu_id ) {
125
  $menu_items = wp_get_nav_menu_items( $menu_id );
126
  if ( ! is_array( $menu_items ) ) {
127
  continue;
128
  }
129
  foreach ( $menu_items as $menu_item ) {
130
  $icon = get_post_meta( $menu_item->ID, 'obfx_menu_icon', true );
131
+ if ( ! empty( $icon ) ) {
132
  return true;
133
  }
134
  }
146
  * @return array
147
  */
148
  public function public_enqueue() {
149
+ if ( $this->should_load_fa() === false ) {
150
  return array();
151
  }
152
 
181
  return array();
182
  }
183
 
184
+ $this->localized = array(
185
+ 'admin' => array(
186
+ 'icons' => apply_filters( 'obfx_menu_icons_icon_list', $this->get_dashicons() ),
187
  'icon_default' => self::DEFAULT_ICON,
188
+ 'i10n' => array(
189
+ /*
190
+ * translators: %s Plugin name
191
+ */
192
  'powered_by' => sprintf( __( 'Powered by %s plugin', 'themeisle-companion' ), '<b>' . apply_filters( 'themeisle_companion_friendly_name', '' ) . '</b>' ),
193
  ),
194
  ),
195
  );
196
 
197
  $font_awesome = array(
198
+ 'vendor/font-awesome.min' => false,
199
  'vendor/fontawesome-iconpicker.min' => array( 'vendor/font-awesome.min' ),
200
  );
201
  if ( wp_style_is( 'font-awesome', 'registered' ) || wp_style_is( 'font-awesome', 'enqueued' ) ) {
211
  'admin' => array( 'vendor/fontawesome-iconpicker.min' ),
212
  )
213
  ),
214
+ 'js' => array(
215
+ 'vendor/bootstrap.min' => array( 'jquery' ),
216
  'vendor/fontawesome-iconpicker.min' => array( 'vendor/bootstrap.min' ),
217
+ 'admin' => array( 'vendor/fontawesome-iconpicker.min', 'jquery' ),
218
  ),
219
  );
220
  }
255
  }
256
 
257
  if ( ! function_exists( 'get_current_screen' ) ) {
258
+ return;
259
+ }
260
 
261
  $screen = get_current_screen();
262
  if ( ! $screen instanceof WP_Screen || 'nav-menus' !== $screen->id ) {
266
  check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
267
 
268
  if ( isset( $_POST['menu-item-icon'][ $menu_item_db_id ] ) ) {
269
+ $icon = sanitize_text_field( $_POST['menu-item-icon'][ $menu_item_db_id ] );
270
  if ( self::DEFAULT_ICON === $icon ) {
271
+ $icon = '';
272
  }
273
  update_post_meta( $menu_item_db_id, 'obfx_menu_icon', $icon );
274
  }
280
  */
281
  public function check_conflict() {
282
  // We need to include this so that the wp_edit_nav_menu_walker filter does not misbehave.
283
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
284
 
285
  // Let's check if another walker has been defined.
286
  $walker = apply_filters( 'wp_edit_nav_menu_walker', '', '' );
287
 
288
  // Yes, a conflict!
289
  if ( ! empty( $walker ) && $walker !== 'Menu_Icons_OBFX_Walker' ) {
290
+ $reflector = new ReflectionClass( $walker );
291
+ $path = str_replace( '\\', '/', $reflector->getFileName() );
292
 
293
+ $name = '';
294
+ $type = '';
295
  if ( false !== strpos( $path, 'themes' ) ) {
296
+ $type = __( 'theme', 'themeisle-companion' );
297
+ $theme = wp_get_theme();
298
+ $name = $theme->get( 'Name' );
299
  } else {
300
  $path = explode( 'plugins', $path );
301
+ $path = explode( DIRECTORY_SEPARATOR, isset( $path[1] ) ? $path[1] : '' );
302
  $path = array_values( array_filter( $path ) );
303
  if ( isset( $path[0] ) ) {
304
  $name = '&nbsp; <b>' . esc_attr( $path[0] ) . '</b>';
305
  }
306
  $type = __( 'plugin', 'themeisle-companion' );
307
  }
308
+ /*
309
+ * translators: %1$s Component name %2$s Component type
310
+ */
311
+ $this->description .= '<br><i class="chip">' . sprintf( __( 'There appears to be a conflict with the %1$s %2$s. This module may not work as expected.', 'themeisle-companion' ), $type, $name ) . '</i>';
312
  $this->active_default = false;
313
  }
314
  }
obfx_modules/mystock-import/inc/photo.php CHANGED
@@ -10,7 +10,7 @@ $pid = $photo['id'];
10
  if ( ! empty( $pid ) ) {
11
  $thumb = $photo['url_m'];
12
  ?>
13
- <li class='obfx-image' data-page="<?php esc_attr( $page ); ?>" data-pid="<?php echo esc_attr( $pid ); ?>" data-url="<?php echo esc_attr( $photo['url_l'] ); ?>">
14
  <div class="obfx-preview">
15
  <div class="thumbnail">
16
  <div class="centered">
10
  if ( ! empty( $pid ) ) {
11
  $thumb = $photo['url_m'];
12
  ?>
13
+ <li class='obfx-image' data-page="<?php esc_attr( $page ); ?>" data-pid="<?php echo esc_attr( $pid ); ?>" data-url="<?php echo esc_url( $photo['url_l'] ); ?>">
14
  <div class="obfx-preview">
15
  <div class="thumbnail">
16
  <div class="centered">
obfx_modules/mystock-import/inc/photos.php CHANGED
@@ -11,7 +11,7 @@
11
  <?php
12
  if ( ! empty( $urls ) ) {
13
  foreach ( $urls as $photo ) {
14
- include( dirname( __FILE__ ) ) . '/photo.php';
15
  }
16
  }
17
  ?>
11
  <?php
12
  if ( ! empty( $urls ) ) {
13
  foreach ( $urls as $photo ) {
14
+ include dirname( __FILE__ ) . '/photo.php';
15
  }
16
  }
17
  ?>
obfx_modules/mystock-import/init.php CHANGED
@@ -93,7 +93,7 @@ class Mystock_Import_OBFX_Module extends Orbit_Fox_Module_Abstract {
93
  public function get_tab_content() {
94
  $urls = $this->get_images();
95
  $page = 1;
96
- require $this->get_dir() . "/inc/photos.php";
97
  wp_die();
98
  }
99
 
@@ -126,7 +126,7 @@ class Mystock_Import_OBFX_Module extends Orbit_Fox_Module_Abstract {
126
  /**
127
  * Upload image.
128
  */
129
- function handle_request() {
130
  check_ajax_referer( $this->slug . filter_input( INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP ), 'security' );
131
 
132
  if ( ! isset( $_POST['url'] ) ) {
@@ -134,7 +134,7 @@ class Mystock_Import_OBFX_Module extends Orbit_Fox_Module_Abstract {
134
  wp_die();
135
  }
136
 
137
- $url = $_POST['url'];
138
  $name = basename( $url );
139
  $tmp_file = download_url( $url );
140
  if ( is_wp_error( $tmp_file ) ) {
@@ -162,17 +162,17 @@ class Mystock_Import_OBFX_Module extends Orbit_Fox_Module_Abstract {
162
  /**
163
  * Ajax function to load new images.
164
  */
165
- function infinite_scroll() {
166
  check_ajax_referer( $this->slug . filter_input( INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP ), 'security' );
167
 
168
  if ( ! isset( $_POST['page'] ) ) {
169
  wp_die();
170
  }
171
 
172
- //Update last page that was loaded
173
  $page = (int) $_POST['page'] + 1;
174
 
175
- //Request new page
176
  $urls = $this->get_images( $page );
177
  if ( ! empty( $urls ) ) {
178
  foreach ( $urls as $photo ) {
93
  public function get_tab_content() {
94
  $urls = $this->get_images();
95
  $page = 1;
96
+ require $this->get_dir() . '/inc/photos.php';
97
  wp_die();
98
  }
99
 
126
  /**
127
  * Upload image.
128
  */
129
+ public function handle_request() {
130
  check_ajax_referer( $this->slug . filter_input( INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP ), 'security' );
131
 
132
  if ( ! isset( $_POST['url'] ) ) {
134
  wp_die();
135
  }
136
 
137
+ $url = esc_url_raw( $_POST['url'] );
138
  $name = basename( $url );
139
  $tmp_file = download_url( $url );
140
  if ( is_wp_error( $tmp_file ) ) {
162
  /**
163
  * Ajax function to load new images.
164
  */
165
+ public function infinite_scroll() {
166
  check_ajax_referer( $this->slug . filter_input( INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP ), 'security' );
167
 
168
  if ( ! isset( $_POST['page'] ) ) {
169
  wp_die();
170
  }
171
 
172
+ // Update last page that was loaded
173
  $page = (int) $_POST['page'] + 1;
174
 
175
+ // Request new page
176
  $urls = $this->get_images( $page );
177
  if ( ! empty( $urls ) ) {
178
  foreach ( $urls as $photo ) {
obfx_modules/policy-notice/init.php CHANGED
@@ -108,7 +108,7 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
108
  'title' => esc_html__( 'Policy Page', 'themeisle-companion' ),
109
  'type' => 'select',
110
  'default' => 0,
111
- 'options' => $this->get_policy_pages_array()
112
  ),
113
  array(
114
  'id' => 'notice_link_label',
@@ -145,7 +145,7 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
145
  $this->loader->add_action( $this->get_slug() . '_before_options_save', $this, 'before_options_save', 10, 1 );
146
 
147
  // if the cookie policy is already accepted we quit.
148
- if ( isset( $_COOKIE['obfx-policy-consent'] ) && 'accepted' === $_COOKIE['obfx-policy-consent'] ) {
149
  return;
150
  }
151
 
@@ -159,9 +159,9 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
159
  * Here we display the cookie bar template based on the given options.
160
  */
161
  public function display_cookie_notice() {
162
- $policy_link = get_option( 'wp_page_for_privacy_policy' ) ? get_permalink( (int) get_option( 'wp_page_for_privacy_policy' ) ) : '#';
163
 
164
- $policy_page = $this->get_option( 'policy_page' );
165
 
166
  if ( ! empty( $policy_page ) ) {
167
  $policy_link = get_permalink( (int) get_option( 'wp_page_for_privacy_policy' ) );
@@ -179,7 +179,6 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
179
  );
180
 
181
  // @TODO maybe think at some template system for a further hookable customization.
182
-
183
  // message output will start with a wrapper and an input tag which will decide if the template is visible or not
184
  $output = '<div class="obfx-cookie-bar-container"><input class="obfx-checkbox-cb" id="obfx-checkbox-cb" type="checkbox" />';
185
 
@@ -193,7 +192,7 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
193
  // combine the buttons with the bar and close the wrapper.
194
  $output .= '<span class="obfx-cookie-bar">' . $policy_text . $buttons . '</span></div>';
195
 
196
- echo apply_filters( 'obfx_cookie_notice_output', $output, $options );
197
  }
198
 
199
  /**
@@ -220,13 +219,15 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
220
  }, false);
221
 
222
  })(window);
223
- </script><?php
 
224
  }
225
 
226
  /**
227
  * This modules needs a few CSS lines so there is no need to load a file for it.
228
  */
229
- public function wp_print_footer_style() { ?>
 
230
  <style>
231
  .obfx-cookie-bar-container {
232
  height: 0;
@@ -268,7 +269,8 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
268
  cursor: pointer;
269
  }
270
  </style>
271
- <?php }
 
272
 
273
  /**
274
  * When the core privacy page is changed, we'll also change the option within our module.
@@ -279,10 +281,10 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
279
  *
280
  * @return mixed
281
  */
282
- public function on_page_for_privacy_policy_save( $old_value, $value, $option ){
283
 
284
  // if this action comes from our dashboard we need to stop and avoid a save loop.
285
- if( doing_action( $this->get_slug() . '_before_options_save' ) ){
286
  return $value;
287
  }
288
 
@@ -293,9 +295,10 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
293
 
294
  /**
295
  * When the OrbitFox Module changes it's value, we also need to change the core version.
 
296
  * @param $options
297
  */
298
- public function before_options_save( $options ){
299
 
300
  // the default option doesn't need a a change.
301
  if ( empty( $options ) ) {
@@ -325,24 +328,26 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
325
  *
326
  * @return array
327
  */
328
- private function get_policy_pages_array(){
329
- $core_policy_suffix = '';
330
- $url = get_option( 'wp_page_for_privacy_policy' );
331
  if ( empty( $url ) ) {
332
- $core_policy_suffix = ' (' . esc_html__( 'Not Set', 'themeisle-companion' ) . ')';
333
  }
334
  $options = array(
335
- '0' => esc_html__( 'Default Core Policy', 'themeisle-companion' ) . $core_policy_suffix
336
  );
337
 
338
- $pages = get_pages( array(
339
- 'echo' => '0',
340
- 'post_status' => array( 'draft', 'publish' ),
341
- 'depth' => 0,
342
- 'child_of' => 0,
343
- 'selected' => 0,
344
- 'value_field' => 'ID',
345
- ) );
 
 
346
 
347
  if ( empty( $pages ) ) {
348
  return $options;
@@ -354,4 +359,4 @@ class Policy_Notice_OBFX_Module extends Orbit_Fox_Module_Abstract {
354
 
355
  return $options;
356
  }
357
- }
108
  'title' => esc_html__( 'Policy Page', 'themeisle-companion' ),
109
  'type' => 'select',
110
  'default' => 0,
111
+ 'options' => $this->get_policy_pages_array(),
112
  ),
113
  array(
114
  'id' => 'notice_link_label',
145
  $this->loader->add_action( $this->get_slug() . '_before_options_save', $this, 'before_options_save', 10, 1 );
146
 
147
  // if the cookie policy is already accepted we quit.
148
+ if ( isset( $_COOKIE['obfx-policy-consent'] ) && 'accepted' === $_COOKIE['obfx-policy-consent'] ) { //phpcs:ignore WordPress.VIP.RestrictedVariables.cache_constraints___COOKIE
149
  return;
150
  }
151
 
159
  * Here we display the cookie bar template based on the given options.
160
  */
161
  public function display_cookie_notice() {
162
+ $policy_link = get_option( 'wp_page_for_privacy_policy' ) ? get_permalink( (int) get_option( 'wp_page_for_privacy_policy' ) ) : '#';
163
 
164
+ $policy_page = $this->get_option( 'policy_page' );
165
 
166
  if ( ! empty( $policy_page ) ) {
167
  $policy_link = get_permalink( (int) get_option( 'wp_page_for_privacy_policy' ) );
179
  );
180
 
181
  // @TODO maybe think at some template system for a further hookable customization.
 
182
  // message output will start with a wrapper and an input tag which will decide if the template is visible or not
183
  $output = '<div class="obfx-cookie-bar-container"><input class="obfx-checkbox-cb" id="obfx-checkbox-cb" type="checkbox" />';
184
 
192
  // combine the buttons with the bar and close the wrapper.
193
  $output .= '<span class="obfx-cookie-bar">' . $policy_text . $buttons . '</span></div>';
194
 
195
+ echo wp_kses_post( apply_filters( 'obfx_cookie_notice_output', $output, $options ) );
196
  }
197
 
198
  /**
219
  }, false);
220
 
221
  })(window);
222
+ </script>
223
+ <?php
224
  }
225
 
226
  /**
227
  * This modules needs a few CSS lines so there is no need to load a file for it.
228
  */
229
+ public function wp_print_footer_style() {
230
+ ?>
231
  <style>
232
  .obfx-cookie-bar-container {
233
  height: 0;
269
  cursor: pointer;
270
  }
271
  </style>
272
+ <?php
273
+ }
274
 
275
  /**
276
  * When the core privacy page is changed, we'll also change the option within our module.
281
  *
282
  * @return mixed
283
  */
284
+ public function on_page_for_privacy_policy_save( $old_value, $value, $option ) {
285
 
286
  // if this action comes from our dashboard we need to stop and avoid a save loop.
287
+ if ( doing_action( $this->get_slug() . '_before_options_save' ) ) {
288
  return $value;
289
  }
290
 
295
 
296
  /**
297
  * When the OrbitFox Module changes it's value, we also need to change the core version.
298
+ *
299
  * @param $options
300
  */
301
+ public function before_options_save( $options ) {
302
 
303
  // the default option doesn't need a a change.
304
  if ( empty( $options ) ) {
328
  *
329
  * @return array
330
  */
331
+ private function get_policy_pages_array() {
332
+ $core_policy_suffix = '';
333
+ $url = get_option( 'wp_page_for_privacy_policy' );
334
  if ( empty( $url ) ) {
335
+ $core_policy_suffix = ' (' . esc_html__( 'Not Set', 'themeisle-companion' ) . ')';
336
  }
337
  $options = array(
338
+ '0' => esc_html__( 'Default Core Policy', 'themeisle-companion' ) . $core_policy_suffix,
339
  );
340
 
341
+ $pages = get_pages(
342
+ array(
343
+ 'echo' => '0',
344
+ 'post_status' => array( 'draft', 'publish' ),
345
+ 'depth' => 0,
346
+ 'child_of' => 0,
347
+ 'selected' => 0,
348
+ 'value_field' => 'ID',
349
+ )
350
+ );
351
 
352
  if ( empty( $pages ) ) {
353
  return $options;
359
 
360
  return $options;
361
  }
362
+ }
obfx_modules/safe-updates/init.php DELETED
@@ -1,556 +0,0 @@
1
- <?php
2
- /**
3
- * A module to check changes before theme updates.
4
- *
5
- * @link https://themeisle.com
6
- * @since 1.0.0
7
- *
8
- * @package Theme_Update_Check_OBFX_Module
9
- */
10
-
11
- /**
12
- * The class defines a new module to be used by Orbit Fox plugin.
13
- *
14
- * @package Theme_Update_Check_OBFX_Module
15
- * @author Themeisle <friends@themeisle.com>
16
- */
17
- class Safe_Updates_OBFX_Module extends Orbit_Fox_Module_Abstract {
18
-
19
- /**
20
- * @var string ThemeCheck api endpoint.
21
- */
22
- const API_ENDPOINT = 'https://dashboard.orbitfox.com/api/obfxhq/v1/updates/create/';
23
-
24
- /**
25
- * Test_OBFX_Module constructor.
26
- *
27
- * @since 1.0.0
28
- * @access public
29
- */
30
- public function __construct() {
31
- parent::__construct();
32
- $this->beta = false;
33
- $this->no_save = true;
34
- $this->name = __( 'Safe Updates', 'themeisle-companion' );
35
- $this->description = __( 'OrbitFox will give you visual feedback on how your current theme updates will affect your site. For the moment this is available only for wordpress.org themes.', 'themeisle-companion' );
36
- }
37
-
38
- /**
39
- * Method to determine if the module is enabled or not.
40
- *
41
- * @since 1.0.0
42
- * @access public
43
- * @return bool
44
- */
45
- public function enable_module() {
46
-
47
- return ( $this->beta ) ? $this->is_lucky_user() : true;
48
- }
49
-
50
- /**
51
- * The method for the module load logic.
52
- *
53
- * @since 1.0.0
54
- * @access public
55
- * @return mixed
56
- */
57
- public function load() {
58
- return;
59
- }
60
-
61
- /**
62
- * Method that returns an array of scripts and styles to be loaded
63
- * for the front end part.
64
- *
65
- * @since 1.0.0
66
- * @access public
67
- * @return array
68
- */
69
- public function public_enqueue() {
70
- return array();
71
- }
72
-
73
- /**
74
- * Method that returns an array of scripts and styles to be loaded
75
- * for the admin part.
76
- *
77
- * @since 1.0.0
78
- * @access public
79
- * @return array
80
- */
81
- public function admin_enqueue() {
82
- if ( ! $this->is_safe_updates_active() ) {
83
- return array();
84
- }
85
- $current_screen = get_current_screen();
86
- if ( $current_screen->id != 'themes' && $current_screen->id != 'update-core' ) {
87
- return array();
88
- }
89
- $info = $this->is_update_available();
90
-
91
- if ( empty( $info ) ) {
92
- return array();
93
- }
94
- $request_data = array(
95
- 'theme' => $info['theme'],
96
- 'current_version' => $info['current_version'],
97
- 'next_version' => $info['new_version'],
98
- );
99
-
100
- $data = $this->get_safe_updates_data( $request_data );
101
- if ( empty( $data ) ) {
102
- return array();
103
- }
104
- $this->localized = array(
105
- 'theme-update-check' => array(
106
- 'slug' => $this->get_active_theme_dir(),
107
- ),
108
- );
109
- $changes_info = $this->get_message_notice( array(
110
- 'global_diff' => $data['global_diff'],
111
- 'current_version' => $info['current_version'],
112
- 'new_version' => $info['new_version'],
113
- 'gallery_url' => $data['gallery_url'],
114
- ) );
115
-
116
- $this->localized['theme-update-check']['check_msg'] = $changes_info;
117
-
118
- return array(
119
- 'js' => array(
120
- 'theme-update-check' => array( 'jquery', 'wp-lists', 'backbone' ),
121
- ),
122
- );
123
- }
124
-
125
- /**
126
- * Check if safe updates is turned on.
127
- *
128
- * @return bool Safe updates status.
129
- */
130
- private function is_safe_updates_active() {
131
-
132
- return (bool) $this->get_option( 'auto_update_checks' );
133
- }
134
-
135
- /**
136
- * Check if there is an update available.
137
- *
138
- * @param null $transient Transient to check.
139
- *
140
- * @return bool Is update available?
141
- */
142
- private function is_update_available( $transient = null ) {
143
-
144
- if ( $transient === null ) {
145
- $transient = get_site_transient( 'update_themes' );
146
- }
147
-
148
- $slug = $this->get_active_theme_dir();
149
-
150
- if ( ! isset( $transient->response[ $slug ]['new_version'] ) ) {
151
- return false;
152
- }
153
- if ( version_compare( $transient->response[ $slug ]['new_version'], $transient->checked[ $slug ], '>' ) ) {
154
- $transient->response[ $slug ]['current_version'] = $transient->checked[ $slug ];
155
-
156
- $this->changes_check( $transient->response[ $slug ] );
157
-
158
- return $transient->response[ $slug ];
159
- }
160
-
161
- return false;
162
- }
163
-
164
- /**
165
- * Check remote api for safe updates data.
166
- *
167
- * @param array $info Theme details.
168
- *
169
- * @return array Remote api message.
170
- */
171
- private function changes_check( $info ) {
172
- if ( ! isset( $info['theme'] ) || empty( $info['theme'] ) ) {
173
- return array();
174
- }
175
- if ( ! isset( $info['new_version'] ) || empty( $info['new_version'] ) ) {
176
- return array();
177
- }
178
- if ( ! isset( $info['current_version'] ) || empty( $info['current_version'] ) ) {
179
- return array();
180
- }
181
- $request_data = array(
182
- 'theme' => $info['theme'],
183
- 'current_version' => $info['current_version'],
184
- 'next_version' => $info['new_version'],
185
- );
186
-
187
- $data = $this->get_safe_updates_data( $request_data );
188
- if ( ! empty( $data ) ) {
189
- return $data;
190
- }
191
- /**
192
- * Set lock and prevent calling the api for the next 30s.
193
- */
194
- ksort( $request_data );
195
- $cache_key = 'obfx_su_' . md5( serialize( $request_data ) );
196
- $lock = get_transient( $cache_key );
197
- if ( $lock === 'yes' ) {
198
- return array();
199
- }
200
- $response = wp_remote_post( self::API_ENDPOINT, array(
201
- 'method' => 'POST',
202
- 'timeout' => 2,
203
- 'body' => $request_data,
204
- )
205
- );
206
- if ( is_wp_error( $response ) ) {
207
- return array();
208
- }
209
- $response_data = json_decode( wp_remote_retrieve_body( $response ), true );
210
- if ( ! is_array( $response_data ) ) {
211
- return array();
212
- }
213
-
214
- set_transient( $cache_key, 'yes', 30 );
215
-
216
- if ( strval( $response_data['code'] ) !== '200' ) {
217
- return array();
218
- }
219
- $response_data = $response_data['data'];
220
- if ( ! is_array( $response_data ) ) {
221
- return array();
222
- }
223
- $option_data = array(
224
- $this->get_safe_updates_hash( $request_data ) => $response_data,
225
- );
226
-
227
- $this->set_option( 'checks', $option_data );
228
-
229
- return $response_data;
230
- }
231
-
232
- /**
233
- * Get cached safe updates api data.
234
- *
235
- * @param array $args Args to check.
236
- *
237
- * @return array Api data.
238
- */
239
- private function get_safe_updates_data( $args = array() ) {
240
-
241
- $payload_sha = $this->get_safe_updates_hash( $args );
242
- $checks = $this->get_option( 'checks' );
243
-
244
- if ( ! isset( $checks[ $payload_sha ] ) || empty( $checks[ $payload_sha ] ) || ! is_array( $checks[ $payload_sha ] ) || $checks[ $payload_sha ]['theme'] !== $args['theme'] ) {
245
- return array();
246
- }
247
-
248
- return $checks[ $payload_sha ];
249
- }
250
-
251
- /**
252
- * Get hash key based on the request data.
253
- *
254
- * @param array $args Arguments used to generate hash.
255
- *
256
- * @return string Hash key.
257
- */
258
- private function get_safe_updates_hash( $args = array() ) {
259
- ksort( $args );
260
-
261
- $payload_sha = hash_hmac( 'sha256', json_encode( $args ), self::API_ENDPOINT );
262
-
263
- return $payload_sha;
264
- }
265
-
266
- /**
267
- * Return message string for safe updates notice.
268
- *
269
- * @param array $args Message placeholder.
270
- *
271
- * @return string Message string.
272
- */
273
- public function get_message_notice( $args ) {
274
- $diff = floatval( $args['global_diff'] );
275
- $message = sprintf(
276
- __( 'According to OrbitFox<sup>&copy;</sup> there is a visual difference of %1$s &#37; between your current version and the latest one. ', 'themeisle-companion' ),
277
- number_format( $diff, 2 )
278
- //$args['new_version']
279
- );
280
- if ( $diff > 0.1 ) {
281
- $message .= sprintf( '<a href="%1$s" target="_blank">', add_query_arg( array( 'from_orbitfox' => 'yes' ), $args['gallery_url'] ) ) . __( 'View report', 'themeisle-companion' ) . '</a> ';
282
- } else {
283
- $message .= __( 'Is very likely that the update is safe. ', 'themeisle-companion' );
284
- }
285
-
286
- return $message;
287
-
288
- }
289
-
290
- /**
291
- * Method to define the options fields for the module
292
- *
293
- * @since 1.0.0
294
- * @access public
295
- * @return array
296
- */
297
- public function options() {
298
-
299
- add_filter( 'obfx_custom_control_auto_update_toggle', array( $this, 'render_custom_control' ) );
300
-
301
- add_action( 'admin_footer', array( $this, 'admin_inline_js' ) );
302
- add_action( 'rest_api_init', array( $this, 'register_endpoints' ) );
303
- if ( ! $this->get_is_active() ) {
304
- $this->set_option( 'auto_update_checks', '0' );
305
- }
306
-
307
- return array(
308
- array(
309
- 'name' => 'checks',
310
- 'type' => 'custom',
311
- 'default' => array(),
312
- ),
313
- array(
314
- 'id' => 'auto_update_toggle',
315
- 'name' => 'auto_update_toggle',
316
- 'type' => 'custom',
317
- ),
318
- );
319
- }
320
-
321
- /**
322
- * Render custom control outpu.
323
- *
324
- * @return string Custom control output.
325
- */
326
- public function render_custom_control() {
327
-
328
- if ( ! $this->is_wp_available() ) {
329
- add_action( 'shutdown', function () {
330
- $this->set_status( 'active', false );
331
- } );
332
-
333
- return __( 'Unfortunately, our service is available only if your are using an wordpress.org theme. We are still working to extend this feature to custom and premium themes soon. ', 'themeisle-companion' );
334
- }
335
-
336
- $output = '<label>' . __( 'OrbitFox<sup>&copy;</sup> will need your current theme slug in order to run a visual comparison report between your current and latest version. We will need your consent in order to do this. <br/>Read <a href="https://orbitfox.com/safe-updates/" target="_blank"><b>more</b></a> about this process.', 'themeisle-companion' ) . '';
337
- if ( ! $this->is_safe_updates_active() ) {
338
- $output .= '</label></br></br><a id="obfx-safe-updates-allow" class="btn btn-success" href="#"><span class="dashicons dashicons-yes"></span> <span>' . __( 'Allow', 'themeisle-companion' ) . '</span></a>';
339
- } else {
340
- $output .= ' If want to disable the update feedback, you can disable the module from the upper module list &#8593;</label><br/><br/>';
341
- $output .= $this->get_safe_updates_status();
342
-
343
- }
344
-
345
- return $output;
346
- }
347
-
348
- /**
349
- * Check if theme is available on wp.org.
350
- *
351
- * @return bool Check result.
352
- */
353
- private function is_wp_available() {
354
-
355
- $slug = $this->get_active_theme_dir();
356
- $cache_key = $slug . '_wporg_check';
357
- $cache = get_transient( $cache_key );
358
- if ( $cache !== false ) {
359
- return $cache === 'yes';
360
- }
361
- $response = wp_remote_get( 'http://api.wordpress.org/themes/info/1.1/?action=theme_information&request[slug]=' . $slug );
362
- if ( is_wp_error( $response ) ) {
363
- set_transient( $cache_key, 'no', HOUR_IN_SECONDS );
364
-
365
- return false;
366
- }
367
- $body = wp_remote_retrieve_body( $response );
368
- if ( empty( $body ) ) {
369
- set_transient( $cache_key, 'no', HOUR_IN_SECONDS );
370
-
371
- return false;
372
- }
373
- $body = json_decode( $body, true );
374
- if ( ! is_array( $body ) ) {
375
- set_transient( $cache_key, 'no', HOUR_IN_SECONDS );
376
-
377
- return false;
378
- }
379
-
380
- set_transient( $cache_key, 'yes', HOUR_IN_SECONDS );
381
-
382
- return true;
383
- }
384
-
385
- /**
386
- * Get safe update process message.
387
- *
388
- * @return string Safe updates process message.
389
- */
390
- private function get_safe_updates_status() {
391
- $theme_data = $this->is_update_available();
392
- if ( $theme_data === false ) {
393
- return __( 'For the moment there is no update for your current theme. We will display a notice on the themes page as soon as there is one.', 'themeisle-companion' );
394
-
395
- }
396
- $changes = $this->changes_check( $theme_data );
397
- if ( empty( $changes ) ) {
398
- return __( 'OrbitFox<sup>&copy;</sup> is now running a visual report for your theme update. Please check the themes <a href="' . admin_url( 'themes.php' ) . '" target="_blank">update</a> page in a few minutes to see the result.', 'themeisle-companion' );
399
- }
400
-
401
- return '<pre class=" obfx-sf-feedback-notice mb-10">' . $this->get_message_notice( $changes ) . '</pre>';
402
-
403
- }
404
-
405
- /**
406
- * Method to define actions and filters needed for the module.
407
- *
408
- * @codeCoverageIgnore
409
- *
410
- * @since 1.0.0
411
- * @access public
412
- */
413
- public function hooks() {
414
-
415
- if ( ! $this->is_safe_updates_active() ) {
416
- return;
417
- }
418
-
419
- $this->loader->add_filter( 'wp_prepare_themes_for_js', $this, 'theme_update_message' );
420
- }
421
-
422
- /**
423
- * Register module safe updates feedback.
424
- */
425
- public function register_endpoints() {
426
- register_rest_route(
427
- 'obfx', '/enable_safe_updates', array(
428
- array(
429
- 'methods' => \WP_REST_Server::CREATABLE,
430
- 'permission_callback' => function ( \WP_REST_Request $request ) {
431
- return current_user_can( 'manage_options' );
432
- },
433
- 'callback' => array( $this, 'safe_updates_enabler' ),
434
- ),
435
- )
436
- );
437
- }
438
-
439
- /**
440
- * Enable safe updates feedback.
441
- *
442
- * @param WP_REST_Request $request Rest request.
443
- *
444
- * @return WP_REST_Response Feedback response.
445
- */
446
- public function safe_updates_enabler( WP_REST_Request $request ) {
447
- $status = $request->get_param( 'status' );
448
- $response = array(
449
- 'message' => '',
450
- 'data' => '',
451
- 'code' => 'error',
452
-
453
- );
454
- if ( $status !== 'activate' && $status !== 'deactivate' ) {
455
- return new WP_REST_Response( $response );
456
- }
457
- if ( $status === 'deactivate' ) {
458
- $this->set_option( 'auto_update_checks', '0' );
459
- $response = wp_parse_args( array(
460
- 'code' => 'success',
461
- 'message' => __( 'Safe updates disabled', 'themeisle-companion' )
462
- ) );
463
-
464
- return new WP_REST_Response( $response );
465
- }
466
- $this->set_option( 'auto_update_checks', '1' );
467
-
468
- $status = $this->get_safe_updates_status();
469
- $response = wp_parse_args( array(
470
- 'code' => 'success',
471
- 'message' => $status
472
- ) );
473
-
474
- return new WP_REST_Response( $response );
475
-
476
- }
477
-
478
- /**
479
- * Add logic for module options.
480
- */
481
- public function admin_inline_js() {
482
- wp_enqueue_script( 'wp-api' );
483
-
484
- $enable_safe_updates = get_rest_url( null, 'obfx/enable_safe_updates' );
485
- ?>
486
- <script type='text/javascript'>
487
- (function ($) {
488
- $('#obfx-safe-updates-allow').on('click', function (event) {
489
- var btn = $(this);
490
- btn.addClass('loading');
491
- $("#obfx-sf-update-error").remove();
492
- wp.apiRequest({
493
- url: "<?php echo esc_url( $enable_safe_updates ); ?>",
494
- data: {status: 'activate'},
495
- type: 'POST',
496
- dataType: 'json'
497
- }).done(function (response) {
498
- btn.removeClass('loading');
499
- if (response.code === 'success') {
500
- btn.hide();
501
- btn.after(response.message);
502
- } else {
503
- btn.after('<p class="label label-error mb-10" id="obfx-sf-update-error">' + response.message + '</p>');
504
- }
505
-
506
- }).fail(function (e) {
507
- btn.removeClass('loading');
508
- $("#obfx-sf-update-error").remove();
509
- btn.after('<p class="label label-error">Can not activate the option. Please try again later.</p>');
510
- });
511
- return false;
512
- });
513
- })(jQuery)
514
- </script>
515
- <?php
516
- }
517
-
518
- /**
519
- * Alter theme update message.
520
- *
521
- * @param array $themes List of themes.
522
- *
523
- * @return mixed Altered message.
524
- */
525
- public function theme_update_message( $themes ) {
526
-
527
- if ( ! $this->is_safe_updates_active() ) {
528
- return $themes;
529
- }
530
- $info = $this->is_update_available();
531
- if ( empty( $info ) ) {
532
- return $themes;
533
- }
534
- $request_data = array(
535
- 'theme' => $info['theme'],
536
- 'current_version' => $info['current_version'],
537
- 'next_version' => $info['new_version'],
538
- );
539
-
540
- $data = $this->get_safe_updates_data( $request_data );
541
- if ( empty( $data ) ) {
542
- return $themes;
543
- }
544
- $changes_info = $this->get_message_notice( array(
545
- 'global_diff' => $data['global_diff'],
546
- 'current_version' => $info['current_version'],
547
- 'new_version' => $info['new_version'],
548
- 'gallery_url' => $data['gallery_url'],
549
- ) );
550
-
551
- $themes[ $info['theme'] ]['update'] = $themes[ $info['theme'] ]['update'] . $changes_info;
552
-
553
- return $themes;
554
- }
555
-
556
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/safe-updates/js/theme-update-check.js DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * Social Sharing Module Admin Script
3
- *
4
- * @since 1.0.0
5
- * @package obfx_modules/theme-update-check/js
6
- *
7
- * @author ThemeIsle
8
- */
9
- /* globals safe_updates */
10
- var obfx_theme_check = function ($) {
11
- 'use strict';
12
-
13
- $(
14
- function () {
15
- if (typeof safe_updates === 'undefined') {
16
- return;
17
- }
18
- if (typeof safe_updates.check_msg !== 'undefined') {
19
- checkUpdateThemeUpdateCore();
20
- setInterval(checkUpdateTheme, 500);
21
- }
22
-
23
- function checkUpdateTheme() {
24
- var safe_update_data = $('#obfx-safe-updates-data');
25
- if (safe_update_data.length > 0) {
26
- return;
27
- }
28
- $('div.theme.active .theme-id-container').prepend('<p id="obfx-safe-updates-data" style="position: absolute;bottom: 37px;background: #ccc;background: #fff8e5;padding: 5px;padding-left: 15px;">' + safe_updates.check_msg + '</p>');
29
- safe_update_data.on('click', 'a', function (e) {
30
- e.stopPropagation();
31
- });
32
- }
33
-
34
- function checkUpdateThemeUpdateCore() {
35
-
36
- $('#update-themes-table input[value=' + safe_updates.slug + ']').parent().next().find('p').append('<p>' + safe_updates.check_msg + '</p>');
37
-
38
- }
39
-
40
- }
41
- );
42
-
43
- };
44
-
45
- obfx_theme_check(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
obfx_modules/social-sharing/init.php CHANGED
@@ -27,17 +27,20 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
27
  */
28
  public function __construct() {
29
  parent::__construct();
30
- $this->name = __( 'Social Sharing Module', 'themeisle-companion' );
31
- $this->description = sprintf( __( 'Add basic social sharing to your posts and pages. Check out the %s to learn more!', 'themeisle-companion' ), sprintf( '<a href="https://demo.themeisle.com/orbit-fox/2018/01/15/social-sharing-modules/" rel="nofollow" target="_blank">%s</a>', __( 'demo', 'themeisle-companion' ) ) );
 
 
 
32
  }
33
 
34
  /**
35
  * Define the array that contains the social networks.
36
  */
37
  private function define_networks() {
38
- $post_categories = strip_tags( get_the_category_list( ',' ) );
39
- $post_title = get_the_title();
40
- $post_link = get_the_permalink();
41
 
42
  $this->social_share_links = array(
43
  'facebook' => array(
@@ -75,19 +78,19 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
75
  'nicename' => 'Reddit',
76
  'icon' => 'reddit',
77
  ),
78
- 'whatsapp' => array(
79
  'link' => 'whatsapp://send?text=' . $post_link,
80
  'nicename' => 'WhatsApp',
81
  'icon' => 'whatsapp',
82
  'target' => '0',
83
  ),
84
- 'mail' => array(
85
  'link' => 'mailto:?&subject=' . $post_title . '&body=' . $post_link,
86
  'nicename' => 'Email',
87
  'icon' => 'mail',
88
- 'target' => '0'
89
  ),
90
- 'sms' => array(
91
  'link' => 'sms://?&body=' . $post_title . ' - ' . $post_link,
92
  'nicename' => 'SMS',
93
  'icon' => 'viber',
@@ -149,59 +152,59 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
149
  * @access public
150
  */
151
  public function load() {
152
- }
153
 
154
- /**
155
- * Method to define hooks needed.
156
- *
157
- * @since 1.0.0
158
- * @access public
159
- * @return mixed | array
160
- */
161
- public function hooks() {
162
- $this->loader->add_filter('kses_allowed_protocols', $this, 'custom_allowed_protocols', 1000 );
163
 
164
- if( $this -> get_option( 'socials_position' ) == 2 ) {
165
- $this->loader->add_filter('hestia_filter_blog_social_icons', $this, 'social_sharing_function' );
166
- return true;
167
- }
168
- $this->loader->add_action('wp_footer', $this, 'social_sharing_function' );
169
- }
170
 
171
  /**
172
- * Display method for the Social Sharing.
173
- *
174
- * @since 1.0.0
175
- * @access public
176
- */
177
- public function social_sharing_function() {
178
- if ( ( $this->get_option('display_on_posts') && is_single() ) || ( $this->get_option('display_on_pages') && is_page() ) ) {
179
- $class_desktop = 'obfx-sharing-left ';
180
- switch ( $this->get_option( 'socials_position' ) ) {
181
- case '1':
182
- $class_desktop = 'obfx-sharing-right ';
183
- break;
184
- case '2':
185
- $class_desktop = 'obfx-sharing-inline ';
186
- }
187
 
188
- $class_mobile = '';
189
- if( $this->get_option( 'mobile_position' ) == '0' ) {
190
- $class_mobile = 'obfx-sharing-bottom';
191
- }
192
- $data = array(
193
- 'desktop_class' => $class_desktop,
194
- 'mobile_class' => $class_mobile,
195
- 'show_name' => $this->get_option( 'network_name' ),
196
- 'social_links_array' => $this->social_links_array(),
197
- );
198
 
199
- if( $this -> get_option( 'socials_position' ) == 2 ) {
200
- return $this->render_view( 'hestia-social-sharing', $data );
201
- }
202
- echo $this->render_view( 'social-sharing', $data );
203
- }
204
- }
205
 
206
  /**
207
  * Create the social links array to be passed to the front end view.
@@ -210,30 +213,30 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
210
  * @access private
211
  * @return array
212
  */
213
- private function social_links_array() {
214
- $social_links = array();
215
  foreach ( $this->social_share_links as $network => $network_links ) {
216
- if( $this->get_option( $network ) ) {
217
- $social_links[ $network ] = $network_links;
218
- $social_links[ $network ][ 'show_mobile' ] = $this->get_option( $network . '-mobile-show' );
219
- $social_links[ $network ][ 'show_desktop' ] = $this->get_option( $network . '-desktop-show' );
220
  }
221
  }
222
- return $social_links;
223
- }
224
 
225
- /**
226
- * Add extra protocols to list of allowed protocols.
227
- *
228
  * @param array $protocols List of protocols from core.
229
- *
230
- * @return array Updated list including extra protocols added.
231
- */
232
- public function custom_allowed_protocols( $protocols ){
233
- $protocols[] = 'whatsapp';
234
- $protocols[] = 'sms';
235
- return $protocols;
236
- }
237
 
238
  /**
239
  * Method that returns an array of scripts and styles to be loaded
@@ -244,31 +247,31 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
244
  * @return array
245
  */
246
  public function public_enqueue() {
247
- $data = get_option( 'obfx_data' );
248
  $display_on_posts = true;
249
  $display_on_pages = false;
250
- if( isset( $data['module_settings']) && isset( $data['module_settings']['social-sharing']) ){
251
- if( isset( $data['module_settings']['social-sharing']['display_on_posts'] ) ){
252
- $display_on_posts = (bool)$data['module_settings']['social-sharing']['display_on_posts'];
253
  }
254
- if( isset( $data['module_settings']['social-sharing']['display_on_pages'] ) ){
255
- $display_on_pages = (bool)$data['module_settings']['social-sharing']['display_on_pages'];
256
  }
257
  }
258
 
259
- if( ( $display_on_posts === false || ! is_single() ) && ( $display_on_pages === false || ! is_page() ) ) {
260
  return array();
261
  }
262
 
263
- return array(
264
- 'css' => array(
265
- 'public' => false,
266
  'vendor/socicon/socicon' => false,
267
- ),
268
- 'js' => array(
269
  'public' => array( 'jquery' ),
270
- ),
271
- );
272
  }
273
 
274
  /**
@@ -291,10 +294,10 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
291
 
292
  return array(
293
  'css' => array(
294
- 'admin' => false,
295
  'vendor/socicon/socicon' => false,
296
  ),
297
- 'js' => array(
298
  'admin' => array( 'jquery' ),
299
  ),
300
  );
@@ -403,9 +406,9 @@ class Social_Sharing_OBFX_Module extends Orbit_Fox_Module_Abstract {
403
  * Add hestia options.
404
  */
405
  private function add_hestia_options( $options ) {
406
- if( defined( 'HESTIA_VERSION' ) ) {
407
- $option_id = $this->search_for_id( 'socials_position', $options );
408
- $options[$option_id]['options']['2'] = 'Inline after content';
409
  }
410
  return $options;
411
  }
27
  */
28
  public function __construct() {
29
  parent::__construct();
30
+ $this->name = __( 'Social Sharing Module', 'themeisle-companion' );
31
+ /*
32
+ * translators: %s Document anchor link.
33
+ */
34
+ $this->description = sprintf( __( 'Add basic social sharing to your posts and pages. Check out the %s to learn more!', 'themeisle-companion' ), sprintf( '<a href="https://demo.themeisle.com/orbit-fox/2018/01/15/social-sharing-modules/" rel="nofollow" target="_blank">%s</a>', __( 'demo', 'themeisle-companion' ) ) );
35
  }
36
 
37
  /**
38
  * Define the array that contains the social networks.
39
  */
40
  private function define_networks() {
41
+ $post_categories = wp_strip_all_tags( get_the_category_list( ',' ) );
42
+ $post_title = get_the_title();
43
+ $post_link = get_the_permalink();
44
 
45
  $this->social_share_links = array(
46
  'facebook' => array(
78
  'nicename' => 'Reddit',
79
  'icon' => 'reddit',
80
  ),
81
+ 'whatsapp' => array(
82
  'link' => 'whatsapp://send?text=' . $post_link,
83
  'nicename' => 'WhatsApp',
84
  'icon' => 'whatsapp',
85
  'target' => '0',
86
  ),
87
+ 'mail' => array(
88
  'link' => 'mailto:?&subject=' . $post_title . '&body=' . $post_link,
89
  'nicename' => 'Email',
90
  'icon' => 'mail',
91
+ 'target' => '0',
92
  ),
93
+ 'sms' => array(
94
  'link' => 'sms://?&body=' . $post_title . ' - ' . $post_link,
95
  'nicename' => 'SMS',
96
  'icon' => 'viber',
152
  * @access public
153
  */
154
  public function load() {
155
+ }
156
 
157
+ /**
158
+ * Method to define hooks needed.
159
+ *
160
+ * @since 1.0.0
161
+ * @access public
162
+ * @return mixed | array
163
+ */
164
+ public function hooks() {
165
+ $this->loader->add_filter( 'kses_allowed_protocols', $this, 'custom_allowed_protocols', 1000 );
166
 
167
+ if ( $this->get_option( 'socials_position' ) == 2 ) {
168
+ $this->loader->add_filter( 'hestia_filter_blog_social_icons', $this, 'social_sharing_function' );
169
+ return true;
170
+ }
171
+ $this->loader->add_action( 'wp_footer', $this, 'social_sharing_function' );
172
+ }
173
 
174
  /**
175
+ * Display method for the Social Sharing.
176
+ *
177
+ * @since 1.0.0
178
+ * @access public
179
+ */
180
+ public function social_sharing_function() {
181
+ if ( ( $this->get_option( 'display_on_posts' ) && is_single() ) || ( $this->get_option( 'display_on_pages' ) && is_page() ) ) {
182
+ $class_desktop = 'obfx-sharing-left ';
183
+ switch ( $this->get_option( 'socials_position' ) ) {
184
+ case '1':
185
+ $class_desktop = 'obfx-sharing-right ';
186
+ break;
187
+ case '2':
188
+ $class_desktop = 'obfx-sharing-inline ';
189
+ }
190
 
191
+ $class_mobile = '';
192
+ if ( $this->get_option( 'mobile_position' ) == '0' ) {
193
+ $class_mobile = 'obfx-sharing-bottom';
194
+ }
195
+ $data = array(
196
+ 'desktop_class' => $class_desktop,
197
+ 'mobile_class' => $class_mobile,
198
+ 'show_name' => $this->get_option( 'network_name' ),
199
+ 'social_links_array' => $this->social_links_array(),
200
+ );
201
 
202
+ if ( $this->get_option( 'socials_position' ) == 2 ) {
203
+ return $this->render_view( 'hestia-social-sharing', $data );
204
+ }
205
+ echo $this->render_view( 'social-sharing', $data ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
206
+ }
207
+ }
208
 
209
  /**
210
  * Create the social links array to be passed to the front end view.
213
  * @access private
214
  * @return array
215
  */
216
+ private function social_links_array() {
217
+ $social_links = array();
218
  foreach ( $this->social_share_links as $network => $network_links ) {
219
+ if ( $this->get_option( $network ) ) {
220
+ $social_links[ $network ] = $network_links;
221
+ $social_links[ $network ]['show_mobile'] = $this->get_option( $network . '-mobile-show' );
222
+ $social_links[ $network ]['show_desktop'] = $this->get_option( $network . '-desktop-show' );
223
  }
224
  }
225
+ return $social_links;
226
+ }
227
 
228
+ /**
229
+ * Add extra protocols to list of allowed protocols.
230
+ *
231
  * @param array $protocols List of protocols from core.
232
+ *
233
+ * @return array Updated list including extra protocols added.
234
+ */
235
+ public function custom_allowed_protocols( $protocols ) {
236
+ $protocols[] = 'whatsapp';
237
+ $protocols[] = 'sms';
238
+ return $protocols;
239
+ }
240
 
241
  /**
242
  * Method that returns an array of scripts and styles to be loaded
247
  * @return array
248
  */
249
  public function public_enqueue() {
250
+ $data = get_option( 'obfx_data' );
251
  $display_on_posts = true;
252
  $display_on_pages = false;
253
+ if ( isset( $data['module_settings'] ) && isset( $data['module_settings']['social-sharing'] ) ) {
254
+ if ( isset( $data['module_settings']['social-sharing']['display_on_posts'] ) ) {
255
+ $display_on_posts = (bool) $data['module_settings']['social-sharing']['display_on_posts'];
256
  }
257
+ if ( isset( $data['module_settings']['social-sharing']['display_on_pages'] ) ) {
258
+ $display_on_pages = (bool) $data['module_settings']['social-sharing']['display_on_pages'];
259
  }
260
  }
261
 
262
+ if ( ( $display_on_posts === false || ! is_single() ) && ( $display_on_pages === false || ! is_page() ) ) {
263
  return array();
264
  }
265
 
266
+ return array(
267
+ 'css' => array(
268
+ 'public' => false,
269
  'vendor/socicon/socicon' => false,
270
+ ),
271
+ 'js' => array(
272
  'public' => array( 'jquery' ),
273
+ ),
274
+ );
275
  }
276
 
277
  /**
294
 
295
  return array(
296
  'css' => array(
297
+ 'admin' => false,
298
  'vendor/socicon/socicon' => false,
299
  ),
300
+ 'js' => array(
301
  'admin' => array( 'jquery' ),
302
  ),
303
  );
406
  * Add hestia options.
407
  */
408
  private function add_hestia_options( $options ) {
409
+ if ( defined( 'HESTIA_VERSION' ) ) {
410
+ $option_id = $this->search_for_id( 'socials_position', $options );
411
+ $options[ $option_id ]['options']['2'] = 'Inline after content';
412
  }
413
  return $options;
414
  }
obfx_modules/template-directory/init.php CHANGED
@@ -63,7 +63,7 @@ class Template_Directory_OBFX_Module extends Orbit_Fox_Module_Abstract {
63
  // Get the full-width pages feature
64
  $this->loader->add_action( 'init', $this, 'load_template_directory_library' );
65
  $this->loader->add_action( 'init', $this, 'load_full_width_page_templates' );
66
- $this->loader->add_filter( 'obfx_template_dir_products',$this, 'add_page', 90 );
67
  }
68
 
69
  /**
@@ -76,11 +76,14 @@ class Template_Directory_OBFX_Module extends Orbit_Fox_Module_Abstract {
76
  wp_enqueue_script( 'plugin-install' );
77
  wp_enqueue_script( 'updates' );
78
  wp_register_script( $script_handle, plugin_dir_url( $this->get_dir() ) . $this->slug . '/js/script.js', array( 'jquery' ), $this->version );
79
- wp_localize_script( $script_handle, 'importer_endpoint',
 
 
80
  array(
81
  'url' => $this->get_endpoint_url( '/import_elementor' ),
82
  'nonce' => wp_create_nonce( 'wp_rest' ),
83
- ) );
 
84
  wp_enqueue_script( $script_handle );
85
  }
86
  }
@@ -98,9 +101,9 @@ class Template_Directory_OBFX_Module extends Orbit_Fox_Module_Abstract {
98
  'directory_page_title' => __( 'Orbit Fox Template Directory', 'themeisle-companion' ),
99
  'parent_page_slug' => 'obfx_companion',
100
  'page_slug' => 'obfx_template_dir',
101
- )
102
  );
103
- return array_merge($products, $sizzify );
104
  }
105
 
106
  /**
@@ -176,7 +179,7 @@ class Template_Directory_OBFX_Module extends Orbit_Fox_Module_Abstract {
176
  *
177
  * @return array
178
  */
179
- public function filter_fwpt_templates_list( $list ){
180
  unset( $list['templates/builder-fullwidth.php'] );
181
  return $list;
182
  }
63
  // Get the full-width pages feature
64
  $this->loader->add_action( 'init', $this, 'load_template_directory_library' );
65
  $this->loader->add_action( 'init', $this, 'load_full_width_page_templates' );
66
+ $this->loader->add_filter( 'obfx_template_dir_products', $this, 'add_page', 90 );
67
  }
68
 
69
  /**
76
  wp_enqueue_script( 'plugin-install' );
77
  wp_enqueue_script( 'updates' );
78
  wp_register_script( $script_handle, plugin_dir_url( $this->get_dir() ) . $this->slug . '/js/script.js', array( 'jquery' ), $this->version );
79
+ wp_localize_script(
80
+ $script_handle,
81
+ 'importer_endpoint',
82
  array(
83
  'url' => $this->get_endpoint_url( '/import_elementor' ),
84
  'nonce' => wp_create_nonce( 'wp_rest' ),
85
+ )
86
+ );
87
  wp_enqueue_script( $script_handle );
88
  }
89
  }
101
  'directory_page_title' => __( 'Orbit Fox Template Directory', 'themeisle-companion' ),
102
  'parent_page_slug' => 'obfx_companion',
103
  'page_slug' => 'obfx_template_dir',
104
+ ),
105
  );
106
+ return array_merge( $products, $sizzify );
107
  }
108
 
109
  /**
179
  *
180
  * @return array
181
  */
182
+ public function filter_fwpt_templates_list( $list ) {
183
  unset( $list['templates/builder-fullwidth.php'] );
184
  return $list;
185
  }
obfx_modules/uptime-monitor/init.php CHANGED
@@ -79,7 +79,10 @@ class Uptime_Monitor_OBFX_Module extends Orbit_Fox_Module_Abstract {
79
  $monitor_url = $this->monitor_url . '/api/monitor/create';
80
  $url = home_url();
81
  $args = array(
82
- 'body' => array( 'url' => $url, 'email' => $email )
 
 
 
83
  );
84
  $response = wp_remote_post( $monitor_url, $args );
85
  }
@@ -106,7 +109,7 @@ class Uptime_Monitor_OBFX_Module extends Orbit_Fox_Module_Abstract {
106
  $monitor_url = $this->monitor_url . '/api/monitor/remove';
107
  $url = home_url();
108
  $args = array(
109
- 'body' => array( 'url' => $url )
110
  );
111
  $response = wp_remote_post( $monitor_url, $args );
112
  $api_response = json_decode( $response['body'] );
@@ -180,7 +183,7 @@ class Uptime_Monitor_OBFX_Module extends Orbit_Fox_Module_Abstract {
180
  'type' => 'email',
181
  'default' => '',
182
  'placeholder' => 'Add your email.',
183
- )
184
  );
185
  }
186
- }
79
  $monitor_url = $this->monitor_url . '/api/monitor/create';
80
  $url = home_url();
81
  $args = array(
82
+ 'body' => array(
83
+ 'url' => $url,
84
+ 'email' => $email,
85
+ ),
86
  );
87
  $response = wp_remote_post( $monitor_url, $args );
88
  }
109
  $monitor_url = $this->monitor_url . '/api/monitor/remove';
110
  $url = home_url();
111
  $args = array(
112
+ 'body' => array( 'url' => $url ),
113
  );
114
  $response = wp_remote_post( $monitor_url, $args );
115
  $api_response = json_decode( $response['body'] );
183
  'type' => 'email',
184
  'default' => '',
185
  'placeholder' => 'Add your email.',
186
+ ),
187
  );
188
  }
189
+ }
readme.md CHANGED
@@ -108,6 +108,14 @@ Activating the Orbit Fox plugin is just like any other plugin. If you've uploade
108
  5. Social Sharing Module
109
 
110
  ## Changelog ##
 
 
 
 
 
 
 
 
111
  ### 2.8.14 - 2019-12-02 ###
112
 
113
  * Fix fatal error with Membership Pro
108
  5. Social Sharing Module
109
 
110
  ## Changelog ##
111
+
112
+ #### [Version 2.9.0](https://github.com/Codeinwp/themeisle-companion/compare/v2.8.14...v2.9.0) (2020-02-03)
113
+
114
+ * Update dependencies
115
+ * Remove legacy modules
116
+
117
+
118
+
119
  ### 2.8.14 - 2019-12-02 ###
120
 
121
  * Fix fatal error with Membership Pro
readme.txt CHANGED
@@ -108,6 +108,14 @@ Activating the Orbit Fox plugin is just like any other plugin. If you've uploade
108
  5. Social Sharing Module
109
 
110
  == Changelog ==
 
 
 
 
 
 
 
 
111
  = 2.8.14 - 2019-12-02 =
112
 
113
  * Fix fatal error with Membership Pro
108
  5. Social Sharing Module
109
 
110
  == Changelog ==
111
+
112
+ #### [Version 2.9.0](https://github.com/Codeinwp/themeisle-companion/compare/v2.8.14...v2.9.0) (2020-02-03)
113
+
114
+ * Update dependencies
115
+ * Remove legacy modules
116
+
117
+
118
+
119
  = 2.8.14 - 2019-12-02 =
120
 
121
  * Fix fatal error with Membership Pro
renovate.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "extends": [
3
- "config:base"
4
- ]
5
- }
 
 
 
 
 
themeisle-companion.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: Orbit Fox Companion
16
  * Plugin URI: https://orbitfox.com/
17
  * Description: This swiss-knife plugin comes with a quality template library, menu/sharing icons modules, Gutenberg blocks, and newly added Elementor/BeaverBuilder page builder widgets on each release.
18
- * Version: 2.8.14
19
  * Author: Themeisle
20
  * Author URI: https://orbitfox.com/
21
  * License: GPL-2.0+
@@ -86,7 +86,7 @@ function run_orbit_fox() {
86
  );
87
  }
88
 
89
- require( 'class-autoloader.php' );
90
  Autoloader::set_plugins_path( plugin_dir_path( __DIR__ ) );
91
  Autoloader::define_namespaces( array( 'Orbit_Fox', 'OBFX', 'OBFX_Module' ) );
92
  /**
15
  * Plugin Name: Orbit Fox Companion
16
  * Plugin URI: https://orbitfox.com/
17
  * Description: This swiss-knife plugin comes with a quality template library, menu/sharing icons modules, Gutenberg blocks, and newly added Elementor/BeaverBuilder page builder widgets on each release.
18
+ * Version: 2.9.0
19
  * Author: Themeisle
20
  * Author URI: https://orbitfox.com/
21
  * License: GPL-2.0+
86
  );
87
  }
88
 
89
+ require 'class-autoloader.php';
90
  Autoloader::set_plugins_path( plugin_dir_path( __DIR__ ) );
91
  Autoloader::define_namespaces( array( 'Orbit_Fox', 'OBFX', 'OBFX_Module' ) );
92
  /**
themeisle-hash.json DELETED
@@ -1 +0,0 @@
1
- {"class-autoloader.php":"61ea652f66f6ca0ead234c6357f88791","index.php":"39ab8276fb0e4bd3fcab3270822c5977","themeisle-companion.php":"3da8830321a7bb9e0736233636d23e3e","uninstall.php":"7abf753a29e0eb3a844c8a0ba9493b7c"}
 
vendor/autoload.php CHANGED
@@ -2,6 +2,6 @@
2
 
3
  // autoload.php @generated by Composer
4
 
5
- require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitcb0da32f0096cc6797604c220560a841::getLoader();
2
 
3
  // autoload.php @generated by Composer
4
 
5
+ require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitaf2b0ef54757986e855151f5842c7fbb::getLoader();
vendor/codeinwp/elementor-extra-widgets/README.md DELETED
@@ -1 +0,0 @@
1
- # elementor-extra-widgets
 
vendor/codeinwp/elementor-extra-widgets/class-elementor-extra-widgets.php CHANGED
@@ -54,7 +54,7 @@ if ( ! class_exists( '\ThemeIsle\ElementorExtraWidgets' ) ) {
54
 
55
  $category_args = apply_filters( 'elementor_extra_widgets_category_args', array(
56
  'slug' => 'obfx-elementor-widgets',
57
- 'title' => __( 'Orbit Fox Addons', 'themeisle-companion' ),
58
  'icon' => 'fa fa-plug',
59
  ) );
60
 
@@ -260,7 +260,7 @@ if ( ! class_exists( '\ThemeIsle\ElementorExtraWidgets' ) ) {
260
  */
261
  public function __clone() {
262
  // Cloning instances of the class is forbidden.
263
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
264
  }
265
 
266
  /**
@@ -272,7 +272,7 @@ if ( ! class_exists( '\ThemeIsle\ElementorExtraWidgets' ) ) {
272
  */
273
  public function __wakeup() {
274
  // Unserializing instances of the class is forbidden.
275
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
276
  }
277
  }
278
  }
54
 
55
  $category_args = apply_filters( 'elementor_extra_widgets_category_args', array(
56
  'slug' => 'obfx-elementor-widgets',
57
+ 'title' => __( 'Orbit Fox Addons', 'textdomain' ),
58
  'icon' => 'fa fa-plug',
59
  ) );
60
 
260
  */
261
  public function __clone() {
262
  // Cloning instances of the class is forbidden.
263
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
264
  }
265
 
266
  /**
272
  */
273
  public function __wakeup() {
274
  // Unserializing instances of the class is forbidden.
275
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
276
  }
277
  }
278
  }
vendor/codeinwp/elementor-extra-widgets/widgets/elementor/posts-grid.php CHANGED
@@ -35,7 +35,7 @@ class Posts_Grid extends Widget_Base {
35
  * @return string
36
  */
37
  public function get_title() {
38
- return __( 'Post Type Grid', 'themeisle-companion' );
39
  }
40
 
41
  /**
@@ -123,7 +123,7 @@ class Posts_Grid extends Widget_Base {
123
  * Get post type categories.
124
  */
125
  private function grid_get_all_post_type_categories( $post_type ) {
126
- $options = array( 'all' => __( 'All Categories', 'themeisle-companion' ) );
127
 
128
  if ( $post_type == 'post' ) {
129
  $taxonomy = 'category';
@@ -180,7 +180,7 @@ class Posts_Grid extends Widget_Base {
180
  $this->start_controls_section(
181
  'section_grid',
182
  [
183
- 'label' => __( 'Grid Options', 'themeisle-companion' ),
184
  ]
185
  );
186
 
@@ -189,7 +189,7 @@ class Posts_Grid extends Widget_Base {
189
  'grid_post_type',
190
  [
191
  'type' => Controls_Manager::SELECT,
192
- 'label' => '<i class="fa fa-tag"></i> ' . __( 'Post Type', 'themeisle-companion' ),
193
  'default' => 'post',
194
  'options' => $this->grid_get_all_post_types(),
195
  ]
@@ -200,7 +200,7 @@ class Posts_Grid extends Widget_Base {
200
  'grid_post_categories',
201
  [
202
  'type' => Controls_Manager::SELECT,
203
- 'label' => '<i class="fa fa-folder"></i> ' . __( 'Category', 'themeisle-companion' ),
204
  'options' => $this->grid_get_all_post_type_categories( 'post' ),
205
  'condition' => [
206
  'grid_post_type' => 'post',
@@ -214,7 +214,7 @@ class Posts_Grid extends Widget_Base {
214
  'grid_product_categories',
215
  [
216
  'type' => Controls_Manager::SELECT,
217
- 'label' => '<i class="fa fa-tag"></i> ' . __( 'Category', 'themeisle-companion' ),
218
  'options' => $this->grid_get_all_post_type_categories( 'product' ),
219
  'condition' => [
220
  'grid_post_type' => 'product',
@@ -227,11 +227,11 @@ class Posts_Grid extends Widget_Base {
227
  'grid_style',
228
  [
229
  'type' => Controls_Manager::SELECT,
230
- 'label' => '<i class="fa fa-paint-brush"></i> ' . __( 'Style', 'themeisle-companion' ),
231
  'default' => 'grid',
232
  'options' => [
233
- 'grid' => __( 'Grid', 'themeisle-companion' ),
234
- 'list' => __( 'List', 'themeisle-companion' ),
235
  ],
236
  ]
237
  );
@@ -241,8 +241,8 @@ class Posts_Grid extends Widget_Base {
241
  'grid_items',
242
  [
243
  'type' => Controls_Manager::NUMBER,
244
- 'label' => '<i class="fa fa-th-large"></i> ' . __( 'Items', 'themeisle-companion' ),
245
- 'placeholder' => __( 'How many items?', 'themeisle-companion' ),
246
  'default' => 6,
247
  ]
248
  );
@@ -252,7 +252,7 @@ class Posts_Grid extends Widget_Base {
252
  'grid_columns',
253
  [
254
  'type' => Controls_Manager::SELECT,
255
- 'label' => '<i class="fa fa-columns"></i> ' . __( 'Columns', 'themeisle-companion' ),
256
  'default' => 3,
257
  'tablet_default' => 2,
258
  'mobile_default' => 1,
@@ -271,14 +271,14 @@ class Posts_Grid extends Widget_Base {
271
  'grid_order_by',
272
  [
273
  'type' => Controls_Manager::SELECT,
274
- 'label' => '<i class="fa fa-sort"></i> ' . __( 'Order by', 'themeisle-companion' ),
275
  'default' => 'date',
276
  'options' => [
277
- 'date' => __( 'Date', 'themeisle-companion' ),
278
- 'title' => __( 'Title', 'themeisle-companion' ),
279
- 'modified' => __( 'Modified date', 'themeisle-companion' ),
280
- 'comment_count' => __( 'Comment count', 'themeisle-companion' ),
281
- 'rand' => __( 'Random', 'themeisle-companion' ),
282
  ],
283
  ]
284
  );
@@ -287,7 +287,7 @@ class Posts_Grid extends Widget_Base {
287
  $this->add_control(
288
  'grid_pagination',
289
  [
290
- 'label' => '<i class="fa fa-arrow-circle-right"></i> ' . __( 'Pagination', 'themeisle-companion' ),
291
  'type' => Controls_Manager::SWITCHER,
292
  'default' => '',
293
  ]
@@ -303,7 +303,7 @@ class Posts_Grid extends Widget_Base {
303
  $this->start_controls_section(
304
  'section_grid_image',
305
  [
306
- 'label' => __( 'Image', 'themeisle-companion' ),
307
  ]
308
  );
309
 
@@ -311,13 +311,13 @@ class Posts_Grid extends Widget_Base {
311
  $this->add_control(
312
  'grid_image_hide',
313
  [
314
- 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'themeisle-companion' ),
315
  'type' => Controls_Manager::SWITCHER,
316
  'default' => '',
317
  ]
318
  );
319
 
320
- $available_size = [ 'full' => __( 'Full size', 'themeisle-companion' ) ];
321
  global $_wp_additional_image_sizes;
322
  if ( ! empty( $_wp_additional_image_sizes ) ) {
323
  foreach ( $_wp_additional_image_sizes as $label => $size_data ) {
@@ -331,7 +331,7 @@ class Posts_Grid extends Widget_Base {
331
  $this->add_control(
332
  'grid_image_size',
333
  [
334
- 'label' => __( 'Image size', 'plugin-domain', 'themeisle-companion' ),
335
  'type' => Controls_Manager::SELECT,
336
  'options' => array_unique( $available_size ),
337
  ]
@@ -341,7 +341,7 @@ class Posts_Grid extends Widget_Base {
341
  $this->add_responsive_control(
342
  'grid_image_height',
343
  [
344
- 'label' => '<i class="fa fa-arrows-h"></i> ' . __( 'Image height', 'themeisle-companion' ),
345
  'type' => Controls_Manager::SLIDER,
346
  'default' => [
347
  'size' => 220,
@@ -363,13 +363,13 @@ class Posts_Grid extends Widget_Base {
363
  $this->add_control(
364
  'grid_image_alignment',
365
  [
366
- 'label' => __( 'Image alignment', 'themeisle-companion' ),
367
  'type' => Controls_Manager::SELECT,
368
  'default' => 'top',
369
  'options' => [
370
- 'top' => __( 'Top', 'themeisle-companion' ),
371
- 'middle' => __( 'Middle', 'themeisle-companion' ),
372
- 'bottom' => __( 'Bottom', 'themeisle-companion' ),
373
  ],
374
  'condition' => [
375
  'grid_style' => 'list'
@@ -382,7 +382,7 @@ class Posts_Grid extends Widget_Base {
382
  $this->add_control(
383
  'grid_image_link',
384
  [
385
- 'label' => '<i class="fa fa-link"></i> ' . __( 'Link', 'themeisle-companion' ),
386
  'type' => Controls_Manager::SWITCHER,
387
  'default' => 'yes',
388
  ]
@@ -398,7 +398,7 @@ class Posts_Grid extends Widget_Base {
398
  $this->start_controls_section(
399
  'section_grid_title',
400
  [
401
- 'label' => __( 'Title', 'themeisle-companion' ),
402
  ]
403
  );
404
 
@@ -406,7 +406,7 @@ class Posts_Grid extends Widget_Base {
406
  $this->add_control(
407
  'grid_title_hide',
408
  [
409
- 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'themeisle-companion' ),
410
  'type' => Controls_Manager::SWITCHER,
411
  'default' => '',
412
  ]
@@ -417,7 +417,7 @@ class Posts_Grid extends Widget_Base {
417
  'grid_title_tag',
418
  [
419
  'type' => Controls_Manager::SELECT,
420
- 'label' => '<i class="fa fa-code"></i> ' . __( 'Tag', 'themeisle-companion' ),
421
  'default' => 'h2',
422
  'options' => [
423
  'h1' => 'H1',
@@ -437,7 +437,7 @@ class Posts_Grid extends Widget_Base {
437
  $this->add_control(
438
  'grid_title_link',
439
  [
440
- 'label' => '<i class="fa fa-link"></i> ' . __( 'Link', 'themeisle-companion' ),
441
  'type' => Controls_Manager::SWITCHER,
442
  'default' => 'yes',
443
  ]
@@ -453,7 +453,7 @@ class Posts_Grid extends Widget_Base {
453
  $this->start_controls_section(
454
  'section_grid_meta',
455
  [
456
- 'label' => __( 'Meta', 'themeisle-companion' ),
457
  ]
458
  );
459
 
@@ -461,7 +461,7 @@ class Posts_Grid extends Widget_Base {
461
  $this->add_control(
462
  'grid_meta_hide',
463
  [
464
- 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'themeisle-companion' ),
465
  'type' => Controls_Manager::SWITCHER,
466
  'default' => '',
467
  ]
@@ -471,17 +471,17 @@ class Posts_Grid extends Widget_Base {
471
  $this->add_control(
472
  'grid_meta_display',
473
  [
474
- 'label' => '<i class="fa fa-info-circle"></i> ' . __( 'Display', 'themeisle-companion' ),
475
  'label_block' => true,
476
  'type' => Controls_Manager::SELECT2,
477
  'default' => [ 'author', 'date' ],
478
  'multiple' => true,
479
  'options' => [
480
- 'author' => __( 'Author', 'themeisle-companion' ),
481
- 'date' => __( 'Date', 'themeisle-companion' ),
482
- 'category' => __( 'Category', 'themeisle-companion' ),
483
- 'tags' => __( 'Tags', 'themeisle-companion' ),
484
- 'comments' => __( 'Comments', 'themeisle-companion' ),
485
  ],
486
  ]
487
  );
@@ -491,9 +491,9 @@ class Posts_Grid extends Widget_Base {
491
  'grid_meta_categories_max',
492
  [
493
  'type' => Controls_Manager::NUMBER,
494
- 'label' => __( 'No. of Categories', 'themeisle-companion' ),
495
- 'placeholder' => __( 'How many categories to display?', 'themeisle-companion' ),
496
- 'default' => __( '1', 'themeisle-companion' ),
497
  'condition' => [
498
  'grid_meta_display' => 'category',
499
  ],
@@ -505,8 +505,8 @@ class Posts_Grid extends Widget_Base {
505
  'grid_meta_tags_max',
506
  [
507
  'type' => Controls_Manager::NUMBER,
508
- 'label' => __( 'No. of Tags', 'themeisle-companion' ),
509
- 'placeholder' => __( 'How many tags to display?', 'themeisle-companion' ),
510
  'condition' => [
511
  'grid_meta_display' => 'tags',
512
  ],
@@ -517,7 +517,7 @@ class Posts_Grid extends Widget_Base {
517
  $this->add_control(
518
  'grid_meta_remove_icons',
519
  [
520
- 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Remove icons', 'themeisle-companion' ),
521
  'type' => Controls_Manager::SWITCHER,
522
  'default' => '',
523
  ]
@@ -533,7 +533,7 @@ class Posts_Grid extends Widget_Base {
533
  $this->start_controls_section(
534
  'section_grid_content',
535
  [
536
- 'label' => __( 'Content', 'themeisle-companion' ),
537
  ]
538
  );
539
 
@@ -541,7 +541,7 @@ class Posts_Grid extends Widget_Base {
541
  $this->add_control(
542
  'grid_content_hide',
543
  [
544
- 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'themeisle-companion' ),
545
  'type' => Controls_Manager::SWITCHER,
546
  'default' => '',
547
  ]
@@ -551,7 +551,7 @@ class Posts_Grid extends Widget_Base {
551
  $this->add_control(
552
  'grid_content_full_post',
553
  [
554
- 'label' => __( 'Show full content', 'themeisle-companion' ),
555
  'type' => Controls_Manager::SWITCHER,
556
  'default' => '',
557
  ]
@@ -562,8 +562,8 @@ class Posts_Grid extends Widget_Base {
562
  'grid_content_length',
563
  [
564
  'type' => Controls_Manager::NUMBER,
565
- 'label' => '<i class="fa fa-arrows-h"></i> ' . __( 'Length (words)', 'themeisle-companion' ),
566
- 'placeholder' => __( 'Length of content (words)', 'themeisle-companion' ),
567
  'default' => 30,
568
  'condition' => [
569
  'grid_content_full_post!' => 'yes'
@@ -575,7 +575,7 @@ class Posts_Grid extends Widget_Base {
575
  $this->add_control(
576
  'grid_content_price',
577
  [
578
- 'label' => '<i class="fa fa-usd"></i> ' . __( 'Price', 'themeisle-companion' ),
579
  'type' => Controls_Manager::SWITCHER,
580
  'default' => 'yes',
581
  'condition' => [
@@ -588,7 +588,7 @@ class Posts_Grid extends Widget_Base {
588
  $this->add_control(
589
  'grid_content_default_btn',
590
  [
591
- 'label' => '<i class="fa fa-check-square"></i> ' . __( 'Button', 'themeisle-companion' ),
592
  'type' => Controls_Manager::SWITCHER,
593
  'default' => 'yes',
594
  'condition' => [
@@ -602,9 +602,9 @@ class Posts_Grid extends Widget_Base {
602
  'grid_content_default_btn_text',
603
  [
604
  'type' => Controls_Manager::TEXT,
605
- 'label' => __( 'Button text', 'themeisle-companion' ),
606
- 'placeholder' => __( 'Read more', 'themeisle-companion' ),
607
- 'default' => __( 'Read more', 'themeisle-companion' ),
608
  'condition' => [
609
  'grid_content_default_btn!' => '',
610
  'section_grid.grid_post_type!' => 'product',
@@ -616,7 +616,7 @@ class Posts_Grid extends Widget_Base {
616
  $this->add_control(
617
  'grid_content_product_btn',
618
  [
619
- 'label' => '<i class="fa fa-check-square"></i> ' . __( 'Button', 'themeisle-companion' ),
620
  'type' => Controls_Manager::SWITCHER,
621
  'default' => 'yes',
622
  'condition' => [
@@ -629,23 +629,23 @@ class Posts_Grid extends Widget_Base {
629
  $this->add_responsive_control(
630
  'grid_content_btn_alignment',
631
  [
632
- 'label' => __( 'Button alignment', 'themeisle-companion' ),
633
  'type' => Controls_Manager::CHOOSE,
634
  'options' => [
635
  'left' => [
636
- 'title' => __( 'Left', 'themeisle-companion' ),
637
  'icon' => 'fa fa-align-left',
638
  ],
639
  'center' => [
640
- 'title' => __( 'Center', 'themeisle-companion' ),
641
  'icon' => 'fa fa-align-center',
642
  ],
643
  'right' => [
644
- 'title' => __( 'Right', 'themeisle-companion' ),
645
  'icon' => 'fa fa-align-right',
646
  ],
647
  'justify' => [
648
- 'title' => __( 'Justified', 'themeisle-companion' ),
649
  'icon' => 'fa fa-align-justify',
650
  ],
651
  ],
@@ -665,19 +665,19 @@ class Posts_Grid extends Widget_Base {
665
  $this->add_responsive_control(
666
  'grid_content_alignment',
667
  [
668
- 'label' => '<i class="fa fa-align-right"></i> ' . __( 'Alignment', 'themeisle-companion' ),
669
  'type' => Controls_Manager::CHOOSE,
670
  'options' => [
671
  'left' => [
672
- 'title' => __( 'Left', 'themeisle-companion' ),
673
  'icon' => 'fa fa-align-left',
674
  ],
675
  'center' => [
676
- 'title' => __( 'Center', 'themeisle-companion' ),
677
  'icon' => 'fa fa-align-center',
678
  ],
679
  'right' => [
680
- 'title' => __( 'Right', 'themeisle-companion' ),
681
  'icon' => 'fa fa-align-right',
682
  ],
683
  ],
@@ -700,7 +700,7 @@ class Posts_Grid extends Widget_Base {
700
  $this->start_controls_section(
701
  'section_grid_pagination',
702
  [
703
- 'label' => __( 'Pagination', 'themeisle-companion' ),
704
  'condition' => [
705
  'section_grid.grid_pagination' => 'yes',
706
  ],
@@ -711,19 +711,19 @@ class Posts_Grid extends Widget_Base {
711
  $this->add_responsive_control(
712
  'grid_pagination_alignment',
713
  [
714
- 'label' => __( 'Alignment', 'themeisle-companion' ),
715
  'type' => Controls_Manager::CHOOSE,
716
  'options' => [
717
  'left' => [
718
- 'title' => __( 'Left', 'themeisle-companion' ),
719
  'icon' => 'fa fa-align-left',
720
  ],
721
  'center' => [
722
- 'title' => __( 'Center', 'themeisle-companion' ),
723
  'icon' => 'fa fa-align-center',
724
  ],
725
  'right' => [
726
- 'title' => __( 'Right', 'themeisle-companion' ),
727
  'icon' => 'fa fa-align-right',
728
  ],
729
  ],
@@ -747,7 +747,7 @@ class Posts_Grid extends Widget_Base {
747
  $this->start_controls_section(
748
  'section_grid_style',
749
  [
750
- 'label' => __( 'Grid Options', 'themeisle-companion' ),
751
  'tab' => Controls_Manager::TAB_STYLE,
752
  ]
753
  );
@@ -756,7 +756,7 @@ class Posts_Grid extends Widget_Base {
756
  $this->add_responsive_control(
757
  'grid_style_columns_margin',
758
  [
759
- 'label' => __( 'Columns margin', 'themeisle-companion' ),
760
  'type' => Controls_Manager::SLIDER,
761
  'default' => [
762
  'size' => 15,
@@ -778,7 +778,7 @@ class Posts_Grid extends Widget_Base {
778
  $this->add_responsive_control(
779
  'grid_style_rows_margin',
780
  [
781
- 'label' => __( 'Rows margin', 'themeisle-companion' ),
782
  'type' => Controls_Manager::SLIDER,
783
  'default' => [
784
  'size' => 30,
@@ -809,7 +809,7 @@ class Posts_Grid extends Widget_Base {
809
  $this->add_control(
810
  'grid_items_style_heading',
811
  [
812
- 'label' => __( 'Items', 'themeisle-companion' ),
813
  'type' => Controls_Manager::HEADING,
814
  'separator' => 'before',
815
  ]
@@ -819,7 +819,7 @@ class Posts_Grid extends Widget_Base {
819
  $this->add_responsive_control(
820
  'grid_items_style_padding',
821
  [
822
- 'label' => __( 'Padding', 'themeisle-companion' ),
823
  'type' => Controls_Manager::DIMENSIONS,
824
  'size_units' => [ 'px', '%' ],
825
  'selectors' => [
@@ -832,7 +832,7 @@ class Posts_Grid extends Widget_Base {
832
  $this->add_control(
833
  'grid_items_style_border_radius',
834
  [
835
- 'label' => __( 'Border Radius', 'themeisle-companion' ),
836
  'type' => Controls_Manager::DIMENSIONS,
837
  'size_units' => [ 'px', '%' ],
838
  'selectors' => [
@@ -872,7 +872,7 @@ class Posts_Grid extends Widget_Base {
872
  $this->start_controls_section(
873
  'section_grid_image_style',
874
  [
875
- 'label' => __( 'Image', 'themeisle-companion' ),
876
  'tab' => Controls_Manager::TAB_STYLE,
877
  'condition' => [
878
  'section_grid_image.grid_image_hide' => '',
@@ -884,7 +884,7 @@ class Posts_Grid extends Widget_Base {
884
  $this->add_control(
885
  'grid_image_style_border_radius',
886
  [
887
- 'label' => __( 'Border Radius', 'themeisle-companion' ),
888
  'type' => Controls_Manager::DIMENSIONS,
889
  'size_units' => [ 'px', '%' ],
890
  'selectors' => [
@@ -913,7 +913,7 @@ class Posts_Grid extends Widget_Base {
913
  $this->add_responsive_control(
914
  'grid_image_style_margin',
915
  [
916
- 'label' => __( 'Margin', 'themeisle-companion' ),
917
  'type' => Controls_Manager::DIMENSIONS,
918
  'size_units' => [ 'px' ],
919
  'selectors' => [
@@ -936,7 +936,7 @@ class Posts_Grid extends Widget_Base {
936
  $this->start_controls_section(
937
  'section_grid_title_style',
938
  [
939
- 'label' => __( 'Title', 'themeisle-companion' ),
940
  'tab' => Controls_Manager::TAB_STYLE,
941
  'condition' => [
942
  'section_grid_title.grid_title_hide' => '',
@@ -959,7 +959,7 @@ class Posts_Grid extends Widget_Base {
959
  'grid_title_style_color',
960
  [
961
  'type' => Controls_Manager::COLOR,
962
- 'label' => __( 'Color', 'themeisle-companion' ),
963
  'scheme' => [
964
  'type' => Scheme_Color::get_type(),
965
  'value' => Scheme_Color::COLOR_1,
@@ -975,7 +975,7 @@ class Posts_Grid extends Widget_Base {
975
  $this->add_responsive_control(
976
  'grid_title_style_margin',
977
  [
978
- 'label' => __( 'Margin', 'themeisle-companion' ),
979
  'type' => Controls_Manager::DIMENSIONS,
980
  'size_units' => [ 'px' ],
981
  'selectors' => [
@@ -995,7 +995,7 @@ class Posts_Grid extends Widget_Base {
995
  $this->start_controls_section(
996
  'section_grid_meta_style',
997
  [
998
- 'label' => __( 'Meta', 'themeisle-companion' ),
999
  'tab' => Controls_Manager::TAB_STYLE,
1000
  'condition' => [
1001
  'section_grid_meta.grid_meta_hide' => '',
@@ -1018,7 +1018,7 @@ class Posts_Grid extends Widget_Base {
1018
  'grid_meta_style_color',
1019
  [
1020
  'type' => Controls_Manager::COLOR,
1021
- 'label' => __( 'Color', 'themeisle-companion' ),
1022
  'scheme' => [
1023
  'type' => Scheme_Color::get_type(),
1024
  'value' => Scheme_Color::COLOR_1,
@@ -1034,7 +1034,7 @@ class Posts_Grid extends Widget_Base {
1034
  $this->add_responsive_control(
1035
  'grid_meta_icon_spacing',
1036
  [
1037
- 'label' => __( 'Icons spacing', 'themeisle-companion' ),
1038
  'type' => Controls_Manager::SLIDER,
1039
  'range' => [
1040
  'px' => [
@@ -1052,7 +1052,7 @@ class Posts_Grid extends Widget_Base {
1052
  $this->add_responsive_control(
1053
  'grid_meta_style_margin',
1054
  [
1055
- 'label' => __( 'Margin', 'themeisle-companion' ),
1056
  'type' => Controls_Manager::DIMENSIONS,
1057
  'size_units' => [ 'px' ],
1058
  'selectors' => [
@@ -1072,7 +1072,7 @@ class Posts_Grid extends Widget_Base {
1072
  $this->start_controls_section(
1073
  'section_grid_content_style',
1074
  [
1075
- 'label' => __( 'Content', 'themeisle-companion' ),
1076
  'tab' => Controls_Manager::TAB_STYLE,
1077
  ]
1078
  );
@@ -1095,7 +1095,7 @@ class Posts_Grid extends Widget_Base {
1095
  'grid_content_style_color',
1096
  [
1097
  'type' => Controls_Manager::COLOR,
1098
- 'label' => __( 'Color', 'themeisle-companion' ),
1099
  'scheme' => [
1100
  'type' => Scheme_Color::get_type(),
1101
  'value' => Scheme_Color::COLOR_1,
@@ -1113,7 +1113,7 @@ class Posts_Grid extends Widget_Base {
1113
  $this->add_responsive_control(
1114
  'grid_content_style_margin',
1115
  [
1116
- 'label' => __( 'Margin', 'themeisle-companion' ),
1117
  'type' => Controls_Manager::DIMENSIONS,
1118
  'size_units' => [ 'px' ],
1119
  'selectors' => [
@@ -1129,7 +1129,7 @@ class Posts_Grid extends Widget_Base {
1129
  $this->add_control(
1130
  'grid_content_price_style_heading',
1131
  [
1132
- 'label' => __( 'Price', 'themeisle-companion' ),
1133
  'type' => Controls_Manager::HEADING,
1134
  'separator' => 'before',
1135
  'condition' => [
@@ -1158,7 +1158,7 @@ class Posts_Grid extends Widget_Base {
1158
  'grid_content_price_style_color',
1159
  [
1160
  'type' => Controls_Manager::COLOR,
1161
- 'label' => __( 'Color', 'themeisle-companion' ),
1162
  'scheme' => [
1163
  'type' => Scheme_Color::get_type(),
1164
  'value' => Scheme_Color::COLOR_1,
@@ -1177,7 +1177,7 @@ class Posts_Grid extends Widget_Base {
1177
  $this->add_responsive_control(
1178
  'grid_content_price_style_margin',
1179
  [
1180
- 'label' => __( 'Margin', 'themeisle-companion' ),
1181
  'type' => Controls_Manager::DIMENSIONS,
1182
  'size_units' => [ 'px' ],
1183
  'selectors' => [
@@ -1204,7 +1204,7 @@ class Posts_Grid extends Widget_Base {
1204
  $this->add_control(
1205
  'grid_button_style_heading',
1206
  [
1207
- 'label' => __( 'Button', 'themeisle-companion' ),
1208
  'type' => Controls_Manager::HEADING,
1209
  'separator' => 'before',
1210
  'condition' => [
@@ -1234,7 +1234,7 @@ class Posts_Grid extends Widget_Base {
1234
  $this->start_controls_tab(
1235
  'grid_button_style_normal',
1236
  [
1237
- 'label' => __( 'Normal', 'themeisle-companion' ),
1238
  'condition' => [
1239
  'section_grid_content.grid_content_default_btn!' => '',
1240
  'section_grid_content.grid_content_product_btn!' => '',
@@ -1247,7 +1247,7 @@ class Posts_Grid extends Widget_Base {
1247
  'grid_button_style_normal_text_color',
1248
  [
1249
  'type' => Controls_Manager::COLOR,
1250
- 'label' => __( 'Text Color', 'themeisle-companion' ),
1251
  'scheme' => [
1252
  'type' => Scheme_Color::get_type(),
1253
  'value' => Scheme_Color::COLOR_1,
@@ -1269,7 +1269,7 @@ class Posts_Grid extends Widget_Base {
1269
  'grid_button_style_normal_bg_color',
1270
  [
1271
  'type' => Controls_Manager::COLOR,
1272
- 'label' => __( 'Background Color', 'themeisle-companion' ),
1273
  'scheme' => [
1274
  'type' => Scheme_Color::get_type(),
1275
  'value' => Scheme_Color::COLOR_1,
@@ -1305,7 +1305,7 @@ class Posts_Grid extends Widget_Base {
1305
  $this->start_controls_tab(
1306
  'grid_button_style_hover',
1307
  [
1308
- 'label' => __( 'Hover', 'themeisle-companion' ),
1309
  'condition' => [
1310
  'section_grid_content.grid_content_default_btn!' => '',
1311
  'section_grid_content.grid_content_product_btn!' => '',
@@ -1318,7 +1318,7 @@ class Posts_Grid extends Widget_Base {
1318
  'grid_button_style_hover_text_color',
1319
  [
1320
  'type' => Controls_Manager::COLOR,
1321
- 'label' => __( 'Text Color', 'themeisle-companion' ),
1322
  'scheme' => [
1323
  'type' => Scheme_Color::get_type(),
1324
  'value' => Scheme_Color::COLOR_1,
@@ -1339,7 +1339,7 @@ class Posts_Grid extends Widget_Base {
1339
  'grid_button_style_hover_bg_color',
1340
  [
1341
  'type' => Controls_Manager::COLOR,
1342
- 'label' => __( 'Background Color', 'themeisle-companion' ),
1343
  'scheme' => [
1344
  'type' => Scheme_Color::get_type(),
1345
  'value' => Scheme_Color::COLOR_1,
@@ -1377,7 +1377,7 @@ class Posts_Grid extends Widget_Base {
1377
  $this->add_control(
1378
  'grid_button_style_padding',
1379
  [
1380
- 'label' => __( 'Button padding', 'themeisle-companion' ),
1381
  'type' => Controls_Manager::DIMENSIONS,
1382
  'size_units' => [ 'px' ],
1383
  'selectors' => [
@@ -1394,7 +1394,7 @@ class Posts_Grid extends Widget_Base {
1394
  $this->add_control(
1395
  'grid_button_style_border_radius',
1396
  [
1397
- 'label' => __( 'Button border radius', 'themeisle-companion' ),
1398
  'type' => Controls_Manager::DIMENSIONS,
1399
  'size_units' => [ 'px', '%' ],
1400
  'selectors' => [
@@ -1416,7 +1416,7 @@ class Posts_Grid extends Widget_Base {
1416
  $this->start_controls_section(
1417
  'section_grid_pagination_style',
1418
  [
1419
- 'label' => __( 'Pagination', 'themeisle-companion' ),
1420
  'tab' => Controls_Manager::TAB_STYLE,
1421
  'condition' => [
1422
  'section_grid.grid_pagination' => 'yes',
@@ -1428,7 +1428,7 @@ class Posts_Grid extends Widget_Base {
1428
  $this->add_responsive_control(
1429
  'grid_pagination_style_margin',
1430
  [
1431
- 'label' => __( 'Margin', 'themeisle-companion' ),
1432
  'type' => Controls_Manager::DIMENSIONS,
1433
  'size_units' => [ 'px' ],
1434
  'selectors' => [
@@ -1554,8 +1554,8 @@ class Posts_Grid extends Widget_Base {
1554
  'end_size' => 1,
1555
  'mid_size' => 3,
1556
  'prev_next' => true,
1557
- 'prev_text' => esc_html__( 'Previous', 'themeisle-companion' ),
1558
- 'next_text' => esc_html__( 'Next', 'themeisle-companion' ),
1559
  'type' => 'plain',
1560
  'add_args' => false,
1561
  );
@@ -1682,9 +1682,9 @@ class Posts_Grid extends Widget_Base {
1682
  echo ( $settings['grid_meta_remove_icons'] == '' ) ? '<i class="fas fa-comment"></i>' : '';
1683
 
1684
  if ( $settings['grid_post_type'] == 'product' ) {
1685
- echo comments_number( __( 'No reviews', 'themeisle-companion' ), __( '1 review', 'themeisle-companion' ), __( '% reviews', 'themeisle-companion' ) );
1686
  } else {
1687
- echo comments_number( __( 'No comments', 'themeisle-companion' ), __( '1 comment', 'themeisle-companion' ), __( '% comments', 'themeisle-companion' ) );
1688
  } ?>
1689
  </span>
1690
  <?php
35
  * @return string
36
  */
37
  public function get_title() {
38
+ return __( 'Post Type Grid', 'textdomain' );
39
  }
40
 
41
  /**
123
  * Get post type categories.
124
  */
125
  private function grid_get_all_post_type_categories( $post_type ) {
126
+ $options = array( 'all' => __( 'All Categories', 'textdomain' ) );
127
 
128
  if ( $post_type == 'post' ) {
129
  $taxonomy = 'category';
180
  $this->start_controls_section(
181
  'section_grid',
182
  [
183
+ 'label' => __( 'Grid Options', 'textdomain' ),
184
  ]
185
  );
186
 
189
  'grid_post_type',
190
  [
191
  'type' => Controls_Manager::SELECT,
192
+ 'label' => '<i class="fa fa-tag"></i> ' . __( 'Post Type', 'textdomain' ),
193
  'default' => 'post',
194
  'options' => $this->grid_get_all_post_types(),
195
  ]
200
  'grid_post_categories',
201
  [
202
  'type' => Controls_Manager::SELECT,
203
+ 'label' => '<i class="fa fa-folder"></i> ' . __( 'Category', 'textdomain' ),
204
  'options' => $this->grid_get_all_post_type_categories( 'post' ),
205
  'condition' => [
206
  'grid_post_type' => 'post',
214
  'grid_product_categories',
215
  [
216
  'type' => Controls_Manager::SELECT,
217
+ 'label' => '<i class="fa fa-tag"></i> ' . __( 'Category', 'textdomain' ),
218
  'options' => $this->grid_get_all_post_type_categories( 'product' ),
219
  'condition' => [
220
  'grid_post_type' => 'product',
227
  'grid_style',
228
  [
229
  'type' => Controls_Manager::SELECT,
230
+ 'label' => '<i class="fa fa-paint-brush"></i> ' . __( 'Style', 'textdomain' ),
231
  'default' => 'grid',
232
  'options' => [
233
+ 'grid' => __( 'Grid', 'textdomain' ),
234
+ 'list' => __( 'List', 'textdomain' ),
235
  ],
236
  ]
237
  );
241
  'grid_items',
242
  [
243
  'type' => Controls_Manager::NUMBER,
244
+ 'label' => '<i class="fa fa-th-large"></i> ' . __( 'Items', 'textdomain' ),
245
+ 'placeholder' => __( 'How many items?', 'textdomain' ),
246
  'default' => 6,
247
  ]
248
  );
252
  'grid_columns',
253
  [
254
  'type' => Controls_Manager::SELECT,
255
+ 'label' => '<i class="fa fa-columns"></i> ' . __( 'Columns', 'textdomain' ),
256
  'default' => 3,
257
  'tablet_default' => 2,
258
  'mobile_default' => 1,
271
  'grid_order_by',
272
  [
273
  'type' => Controls_Manager::SELECT,
274
+ 'label' => '<i class="fa fa-sort"></i> ' . __( 'Order by', 'textdomain' ),
275
  'default' => 'date',
276
  'options' => [
277
+ 'date' => __( 'Date', 'textdomain' ),
278
+ 'title' => __( 'Title', 'textdomain' ),
279
+ 'modified' => __( 'Modified date', 'textdomain' ),
280
+ 'comment_count' => __( 'Comment count', 'textdomain' ),
281
+ 'rand' => __( 'Random', 'textdomain' ),
282
  ],
283
  ]
284
  );
287
  $this->add_control(
288
  'grid_pagination',
289
  [
290
+ 'label' => '<i class="fa fa-arrow-circle-right"></i> ' . __( 'Pagination', 'textdomain' ),
291
  'type' => Controls_Manager::SWITCHER,
292
  'default' => '',
293
  ]
303
  $this->start_controls_section(
304
  'section_grid_image',
305
  [
306
+ 'label' => __( 'Image', 'textdomain' ),
307
  ]
308
  );
309
 
311
  $this->add_control(
312
  'grid_image_hide',
313
  [
314
+ 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'textdomain' ),
315
  'type' => Controls_Manager::SWITCHER,
316
  'default' => '',
317
  ]
318
  );
319
 
320
+ $available_size = [ 'full' => __( 'Full size', 'textdomain' ) ];
321
  global $_wp_additional_image_sizes;
322
  if ( ! empty( $_wp_additional_image_sizes ) ) {
323
  foreach ( $_wp_additional_image_sizes as $label => $size_data ) {
331
  $this->add_control(
332
  'grid_image_size',
333
  [
334
+ 'label' => __( 'Image size', 'plugin-domain' ),
335
  'type' => Controls_Manager::SELECT,
336
  'options' => array_unique( $available_size ),
337
  ]
341
  $this->add_responsive_control(
342
  'grid_image_height',
343
  [
344
+ 'label' => '<i class="fa fa-arrows-h"></i> ' . __( 'Image height', 'textdomain' ),
345
  'type' => Controls_Manager::SLIDER,
346
  'default' => [
347
  'size' => 220,
363
  $this->add_control(
364
  'grid_image_alignment',
365
  [
366
+ 'label' => __( 'Image alignment', 'textdomain' ),
367
  'type' => Controls_Manager::SELECT,
368
  'default' => 'top',
369
  'options' => [
370
+ 'top' => __( 'Top', 'textdomain' ),
371
+ 'middle' => __( 'Middle', 'textdomain' ),
372
+ 'bottom' => __( 'Bottom', 'textdomain' ),
373
  ],
374
  'condition' => [
375
  'grid_style' => 'list'
382
  $this->add_control(
383
  'grid_image_link',
384
  [
385
+ 'label' => '<i class="fa fa-link"></i> ' . __( 'Link', 'textdomain' ),
386
  'type' => Controls_Manager::SWITCHER,
387
  'default' => 'yes',
388
  ]
398
  $this->start_controls_section(
399
  'section_grid_title',
400
  [
401
+ 'label' => __( 'Title', 'textdomain' ),
402
  ]
403
  );
404
 
406
  $this->add_control(
407
  'grid_title_hide',
408
  [
409
+ 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'textdomain' ),
410
  'type' => Controls_Manager::SWITCHER,
411
  'default' => '',
412
  ]
417
  'grid_title_tag',
418
  [
419
  'type' => Controls_Manager::SELECT,
420
+ 'label' => '<i class="fa fa-code"></i> ' . __( 'Tag', 'textdomain' ),
421
  'default' => 'h2',
422
  'options' => [
423
  'h1' => 'H1',
437
  $this->add_control(
438
  'grid_title_link',
439
  [
440
+ 'label' => '<i class="fa fa-link"></i> ' . __( 'Link', 'textdomain' ),
441
  'type' => Controls_Manager::SWITCHER,
442
  'default' => 'yes',
443
  ]
453
  $this->start_controls_section(
454
  'section_grid_meta',
455
  [
456
+ 'label' => __( 'Meta', 'textdomain' ),
457
  ]
458
  );
459
 
461
  $this->add_control(
462
  'grid_meta_hide',
463
  [
464
+ 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'textdomain' ),
465
  'type' => Controls_Manager::SWITCHER,
466
  'default' => '',
467
  ]
471
  $this->add_control(
472
  'grid_meta_display',
473
  [
474
+ 'label' => '<i class="fa fa-info-circle"></i> ' . __( 'Display', 'textdomain' ),
475
  'label_block' => true,
476
  'type' => Controls_Manager::SELECT2,
477
  'default' => [ 'author', 'date' ],
478
  'multiple' => true,
479
  'options' => [
480
+ 'author' => __( 'Author', 'textdomain' ),
481
+ 'date' => __( 'Date', 'textdomain' ),
482
+ 'category' => __( 'Category', 'textdomain' ),
483
+ 'tags' => __( 'Tags', 'textdomain' ),
484
+ 'comments' => __( 'Comments', 'textdomain' ),
485
  ],
486
  ]
487
  );
491
  'grid_meta_categories_max',
492
  [
493
  'type' => Controls_Manager::NUMBER,
494
+ 'label' => __( 'No. of Categories', 'textdomain' ),
495
+ 'placeholder' => __( 'How many categories to display?', 'textdomain' ),
496
+ 'default' => __( '1', 'textdomain' ),
497
  'condition' => [
498
  'grid_meta_display' => 'category',
499
  ],
505
  'grid_meta_tags_max',
506
  [
507
  'type' => Controls_Manager::NUMBER,
508
+ 'label' => __( 'No. of Tags', 'textdomain' ),
509
+ 'placeholder' => __( 'How many tags to display?', 'textdomain' ),
510
  'condition' => [
511
  'grid_meta_display' => 'tags',
512
  ],
517
  $this->add_control(
518
  'grid_meta_remove_icons',
519
  [
520
+ 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Remove icons', 'textdomain' ),
521
  'type' => Controls_Manager::SWITCHER,
522
  'default' => '',
523
  ]
533
  $this->start_controls_section(
534
  'section_grid_content',
535
  [
536
+ 'label' => __( 'Content', 'textdomain' ),
537
  ]
538
  );
539
 
541
  $this->add_control(
542
  'grid_content_hide',
543
  [
544
+ 'label' => '<i class="fa fa-minus-circle"></i> ' . __( 'Hide', 'textdomain' ),
545
  'type' => Controls_Manager::SWITCHER,
546
  'default' => '',
547
  ]
551
  $this->add_control(
552
  'grid_content_full_post',
553
  [
554
+ 'label' => __( 'Show full content', 'textdomain' ),
555
  'type' => Controls_Manager::SWITCHER,
556
  'default' => '',
557
  ]
562
  'grid_content_length',
563
  [
564
  'type' => Controls_Manager::NUMBER,
565
+ 'label' => '<i class="fa fa-arrows-h"></i> ' . __( 'Length (words)', 'textdomain' ),
566
+ 'placeholder' => __( 'Length of content (words)', 'textdomain' ),
567
  'default' => 30,
568
  'condition' => [
569
  'grid_content_full_post!' => 'yes'
575
  $this->add_control(
576
  'grid_content_price',
577
  [
578
+ 'label' => '<i class="fa fa-usd"></i> ' . __( 'Price', 'textdomain' ),
579
  'type' => Controls_Manager::SWITCHER,
580
  'default' => 'yes',
581
  'condition' => [
588
  $this->add_control(
589
  'grid_content_default_btn',
590
  [
591
+ 'label' => '<i class="fa fa-check-square"></i> ' . __( 'Button', 'textdomain' ),
592
  'type' => Controls_Manager::SWITCHER,
593
  'default' => 'yes',
594
  'condition' => [
602
  'grid_content_default_btn_text',
603
  [
604
  'type' => Controls_Manager::TEXT,
605
+ 'label' => __( 'Button text', 'textdomain' ),
606
+ 'placeholder' => __( 'Read more', 'textdomain' ),
607
+ 'default' => __( 'Read more', 'textdomain' ),
608
  'condition' => [
609
  'grid_content_default_btn!' => '',
610
  'section_grid.grid_post_type!' => 'product',
616
  $this->add_control(
617
  'grid_content_product_btn',
618
  [
619
+ 'label' => '<i class="fa fa-check-square"></i> ' . __( 'Button', 'textdomain' ),
620
  'type' => Controls_Manager::SWITCHER,
621
  'default' => 'yes',
622
  'condition' => [
629
  $this->add_responsive_control(
630
  'grid_content_btn_alignment',
631
  [
632
+ 'label' => __( 'Button alignment', 'textdomain' ),
633
  'type' => Controls_Manager::CHOOSE,
634
  'options' => [
635
  'left' => [
636
+ 'title' => __( 'Left', 'textdomain' ),
637
  'icon' => 'fa fa-align-left',
638
  ],
639
  'center' => [
640
+ 'title' => __( 'Center', 'textdomain' ),
641
  'icon' => 'fa fa-align-center',
642
  ],
643
  'right' => [
644
+ 'title' => __( 'Right', 'textdomain' ),
645
  'icon' => 'fa fa-align-right',
646
  ],
647
  'justify' => [
648
+ 'title' => __( 'Justified', 'textdomain' ),
649
  'icon' => 'fa fa-align-justify',
650
  ],
651
  ],
665
  $this->add_responsive_control(
666
  'grid_content_alignment',
667
  [
668
+ 'label' => '<i class="fa fa-align-right"></i> ' . __( 'Alignment', 'textdomain' ),
669
  'type' => Controls_Manager::CHOOSE,
670
  'options' => [
671
  'left' => [
672
+ 'title' => __( 'Left', 'textdomain' ),
673
  'icon' => 'fa fa-align-left',
674
  ],
675
  'center' => [
676
+ 'title' => __( 'Center', 'textdomain' ),
677
  'icon' => 'fa fa-align-center',
678
  ],
679
  'right' => [
680
+ 'title' => __( 'Right', 'textdomain' ),
681
  'icon' => 'fa fa-align-right',
682
  ],
683
  ],
700
  $this->start_controls_section(
701
  'section_grid_pagination',
702
  [
703
+ 'label' => __( 'Pagination', 'textdomain' ),
704
  'condition' => [
705
  'section_grid.grid_pagination' => 'yes',
706
  ],
711
  $this->add_responsive_control(
712
  'grid_pagination_alignment',
713
  [
714
+ 'label' => __( 'Alignment', 'textdomain' ),
715
  'type' => Controls_Manager::CHOOSE,
716
  'options' => [
717
  'left' => [
718
+ 'title' => __( 'Left', 'textdomain' ),
719
  'icon' => 'fa fa-align-left',
720
  ],
721
  'center' => [
722
+ 'title' => __( 'Center', 'textdomain' ),
723
  'icon' => 'fa fa-align-center',
724
  ],
725
  'right' => [
726
+ 'title' => __( 'Right', 'textdomain' ),
727
  'icon' => 'fa fa-align-right',
728
  ],
729
  ],
747
  $this->start_controls_section(
748
  'section_grid_style',
749
  [
750
+ 'label' => __( 'Grid Options', 'textdomain' ),
751
  'tab' => Controls_Manager::TAB_STYLE,
752
  ]
753
  );
756
  $this->add_responsive_control(
757
  'grid_style_columns_margin',
758
  [
759
+ 'label' => __( 'Columns margin', 'textdomain' ),
760
  'type' => Controls_Manager::SLIDER,
761
  'default' => [
762
  'size' => 15,
778
  $this->add_responsive_control(
779
  'grid_style_rows_margin',
780
  [
781
+ 'label' => __( 'Rows margin', 'textdomain' ),
782
  'type' => Controls_Manager::SLIDER,
783
  'default' => [
784
  'size' => 30,
809
  $this->add_control(
810
  'grid_items_style_heading',
811
  [
812
+ 'label' => __( 'Items', 'textdomain' ),
813
  'type' => Controls_Manager::HEADING,
814
  'separator' => 'before',
815
  ]
819
  $this->add_responsive_control(
820
  'grid_items_style_padding',
821
  [
822
+ 'label' => __( 'Padding', 'textdomain' ),
823
  'type' => Controls_Manager::DIMENSIONS,
824
  'size_units' => [ 'px', '%' ],
825
  'selectors' => [
832
  $this->add_control(
833
  'grid_items_style_border_radius',
834
  [
835
+ 'label' => __( 'Border Radius', 'textdomain' ),
836
  'type' => Controls_Manager::DIMENSIONS,
837
  'size_units' => [ 'px', '%' ],
838
  'selectors' => [
872
  $this->start_controls_section(
873
  'section_grid_image_style',
874
  [
875
+ 'label' => __( 'Image', 'textdomain' ),
876
  'tab' => Controls_Manager::TAB_STYLE,
877
  'condition' => [
878
  'section_grid_image.grid_image_hide' => '',
884
  $this->add_control(
885
  'grid_image_style_border_radius',
886
  [
887
+ 'label' => __( 'Border Radius', 'textdomain' ),
888
  'type' => Controls_Manager::DIMENSIONS,
889
  'size_units' => [ 'px', '%' ],
890
  'selectors' => [
913
  $this->add_responsive_control(
914
  'grid_image_style_margin',
915
  [
916
+ 'label' => __( 'Margin', 'textdomain' ),
917
  'type' => Controls_Manager::DIMENSIONS,
918
  'size_units' => [ 'px' ],
919
  'selectors' => [
936
  $this->start_controls_section(
937
  'section_grid_title_style',
938
  [
939
+ 'label' => __( 'Title', 'textdomain' ),
940
  'tab' => Controls_Manager::TAB_STYLE,
941
  'condition' => [
942
  'section_grid_title.grid_title_hide' => '',
959
  'grid_title_style_color',
960
  [
961
  'type' => Controls_Manager::COLOR,
962
+ 'label' => __( 'Color', 'textdomain' ),
963
  'scheme' => [
964
  'type' => Scheme_Color::get_type(),
965
  'value' => Scheme_Color::COLOR_1,
975
  $this->add_responsive_control(
976
  'grid_title_style_margin',
977
  [
978
+ 'label' => __( 'Margin', 'textdomain' ),
979
  'type' => Controls_Manager::DIMENSIONS,
980
  'size_units' => [ 'px' ],
981
  'selectors' => [
995
  $this->start_controls_section(
996
  'section_grid_meta_style',
997
  [
998
+ 'label' => __( 'Meta', 'textdomain' ),
999
  'tab' => Controls_Manager::TAB_STYLE,
1000
  'condition' => [
1001
  'section_grid_meta.grid_meta_hide' => '',
1018
  'grid_meta_style_color',
1019
  [
1020
  'type' => Controls_Manager::COLOR,
1021
+ 'label' => __( 'Color', 'textdomain' ),
1022
  'scheme' => [
1023
  'type' => Scheme_Color::get_type(),
1024
  'value' => Scheme_Color::COLOR_1,
1034
  $this->add_responsive_control(
1035
  'grid_meta_icon_spacing',
1036
  [
1037
+ 'label' => __( 'Icons spacing', 'textdomain' ),
1038
  'type' => Controls_Manager::SLIDER,
1039
  'range' => [
1040
  'px' => [
1052
  $this->add_responsive_control(
1053
  'grid_meta_style_margin',
1054
  [
1055
+ 'label' => __( 'Margin', 'textdomain' ),
1056
  'type' => Controls_Manager::DIMENSIONS,
1057
  'size_units' => [ 'px' ],
1058
  'selectors' => [
1072
  $this->start_controls_section(
1073
  'section_grid_content_style',
1074
  [
1075
+ 'label' => __( 'Content', 'textdomain' ),
1076
  'tab' => Controls_Manager::TAB_STYLE,
1077
  ]
1078
  );
1095
  'grid_content_style_color',
1096
  [
1097
  'type' => Controls_Manager::COLOR,
1098
+ 'label' => __( 'Color', 'textdomain' ),
1099
  'scheme' => [
1100
  'type' => Scheme_Color::get_type(),
1101
  'value' => Scheme_Color::COLOR_1,
1113
  $this->add_responsive_control(
1114
  'grid_content_style_margin',
1115
  [
1116
+ 'label' => __( 'Margin', 'textdomain' ),
1117
  'type' => Controls_Manager::DIMENSIONS,
1118
  'size_units' => [ 'px' ],
1119
  'selectors' => [
1129
  $this->add_control(
1130
  'grid_content_price_style_heading',
1131
  [
1132
+ 'label' => __( 'Price', 'textdomain' ),
1133
  'type' => Controls_Manager::HEADING,
1134
  'separator' => 'before',
1135
  'condition' => [
1158
  'grid_content_price_style_color',
1159
  [
1160
  'type' => Controls_Manager::COLOR,
1161
+ 'label' => __( 'Color', 'textdomain' ),
1162
  'scheme' => [
1163
  'type' => Scheme_Color::get_type(),
1164
  'value' => Scheme_Color::COLOR_1,
1177
  $this->add_responsive_control(
1178
  'grid_content_price_style_margin',
1179
  [
1180
+ 'label' => __( 'Margin', 'textdomain' ),
1181
  'type' => Controls_Manager::DIMENSIONS,
1182
  'size_units' => [ 'px' ],
1183
  'selectors' => [
1204
  $this->add_control(
1205
  'grid_button_style_heading',
1206
  [
1207
+ 'label' => __( 'Button', 'textdomain' ),
1208
  'type' => Controls_Manager::HEADING,
1209
  'separator' => 'before',
1210
  'condition' => [
1234
  $this->start_controls_tab(
1235
  'grid_button_style_normal',
1236
  [
1237
+ 'label' => __( 'Normal', 'textdomain' ),
1238
  'condition' => [
1239
  'section_grid_content.grid_content_default_btn!' => '',
1240
  'section_grid_content.grid_content_product_btn!' => '',
1247
  'grid_button_style_normal_text_color',
1248
  [
1249
  'type' => Controls_Manager::COLOR,
1250
+ 'label' => __( 'Text Color', 'textdomain' ),
1251
  'scheme' => [
1252
  'type' => Scheme_Color::get_type(),
1253
  'value' => Scheme_Color::COLOR_1,
1269
  'grid_button_style_normal_bg_color',
1270
  [
1271
  'type' => Controls_Manager::COLOR,
1272
+ 'label' => __( 'Background Color', 'textdomain' ),
1273
  'scheme' => [
1274
  'type' => Scheme_Color::get_type(),
1275
  'value' => Scheme_Color::COLOR_1,
1305
  $this->start_controls_tab(
1306
  'grid_button_style_hover',
1307
  [
1308
+ 'label' => __( 'Hover', 'textdomain' ),
1309
  'condition' => [
1310
  'section_grid_content.grid_content_default_btn!' => '',
1311
  'section_grid_content.grid_content_product_btn!' => '',
1318
  'grid_button_style_hover_text_color',
1319
  [
1320
  'type' => Controls_Manager::COLOR,
1321
+ 'label' => __( 'Text Color', 'textdomain' ),
1322
  'scheme' => [
1323
  'type' => Scheme_Color::get_type(),
1324
  'value' => Scheme_Color::COLOR_1,
1339
  'grid_button_style_hover_bg_color',
1340
  [
1341
  'type' => Controls_Manager::COLOR,
1342
+ 'label' => __( 'Background Color', 'textdomain' ),
1343
  'scheme' => [
1344
  'type' => Scheme_Color::get_type(),
1345
  'value' => Scheme_Color::COLOR_1,
1377
  $this->add_control(
1378
  'grid_button_style_padding',
1379
  [
1380
+ 'label' => __( 'Button padding', 'textdomain' ),
1381
  'type' => Controls_Manager::DIMENSIONS,
1382
  'size_units' => [ 'px' ],
1383
  'selectors' => [
1394
  $this->add_control(
1395
  'grid_button_style_border_radius',
1396
  [
1397
+ 'label' => __( 'Button border radius', 'textdomain' ),
1398
  'type' => Controls_Manager::DIMENSIONS,
1399
  'size_units' => [ 'px', '%' ],
1400
  'selectors' => [
1416
  $this->start_controls_section(
1417
  'section_grid_pagination_style',
1418
  [
1419
+ 'label' => __( 'Pagination', 'textdomain' ),
1420
  'tab' => Controls_Manager::TAB_STYLE,
1421
  'condition' => [
1422
  'section_grid.grid_pagination' => 'yes',
1428
  $this->add_responsive_control(
1429
  'grid_pagination_style_margin',
1430
  [
1431
+ 'label' => __( 'Margin', 'textdomain' ),
1432
  'type' => Controls_Manager::DIMENSIONS,
1433
  'size_units' => [ 'px' ],
1434
  'selectors' => [
1554
  'end_size' => 1,
1555
  'mid_size' => 3,
1556
  'prev_next' => true,
1557
+ 'prev_text' => esc_html__( 'Previous', 'textdomain' ),
1558
+ 'next_text' => esc_html__( 'Next', 'textdomain' ),
1559
  'type' => 'plain',
1560
  'add_args' => false,
1561
  );
1682
  echo ( $settings['grid_meta_remove_icons'] == '' ) ? '<i class="fas fa-comment"></i>' : '';
1683
 
1684
  if ( $settings['grid_post_type'] == 'product' ) {
1685
+ echo comments_number( __( 'No reviews', 'textdomain' ), __( '1 review', 'textdomain' ), __( '% reviews', 'textdomain' ) );
1686
  } else {
1687
+ echo comments_number( __( 'No comments', 'textdomain' ), __( '1 comment', 'textdomain' ), __( '% comments', 'textdomain' ) );
1688
  } ?>
1689
  </span>
1690
  <?php
vendor/codeinwp/elementor-extra-widgets/widgets/elementor/premium-placeholder.php CHANGED
@@ -74,9 +74,9 @@ abstract class Premium_Placeholder extends \Elementor\Widget_Base {
74
  [
75
  'raw' => sprintf(
76
  '<div><h3>%s</h3><a href="%s" target="_blank">%s</a></div>',
77
- __( 'This widget is part of the pro version of Sizzify.', 'themeisle-companion' ),
78
  $this->get_upsell_link(),
79
- __( 'Upgrade Here!', 'themeisle-companion' )
80
  ),
81
  'type' => \Elementor\Controls_Manager::RAW_HTML,
82
  'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
74
  [
75
  'raw' => sprintf(
76
  '<div><h3>%s</h3><a href="%s" target="_blank">%s</a></div>',
77
+ __( 'This widget is part of the pro version of Sizzify.', 'textdomain' ),
78
  $this->get_upsell_link(),
79
+ __( 'Upgrade Here!', 'textdomain' )
80
  ),
81
  'type' => \Elementor\Controls_Manager::RAW_HTML,
82
  'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
vendor/codeinwp/elementor-extra-widgets/widgets/elementor/pricing-table.php CHANGED
@@ -31,7 +31,7 @@ class Pricing_Table extends Widget_Base {
31
  * @return string
32
  */
33
  public function get_title() {
34
- return __( 'Pricing Table', 'themeisle-companion' );
35
  }
36
 
37
  /**
@@ -100,7 +100,7 @@ class Pricing_Table extends Widget_Base {
100
  $this->start_controls_section(
101
  'section_title',
102
  [
103
- 'label' => __( 'Plan Title', 'themeisle-companion' ),
104
  ]
105
  );
106
 
@@ -108,9 +108,9 @@ class Pricing_Table extends Widget_Base {
108
  'title',
109
  [
110
  'type' => Controls_Manager::TEXT,
111
- 'label' => __( 'Title', 'themeisle-companion' ),
112
- 'placeholder' => __( 'Title', 'themeisle-companion' ),
113
- 'default' => __( 'Pricing Plan', 'themeisle-companion' ),
114
  ]
115
  );
116
 
@@ -118,16 +118,16 @@ class Pricing_Table extends Widget_Base {
118
  'title_tag',
119
  [
120
  'type' => Controls_Manager::SELECT,
121
- 'label' => __( 'Title HTML tag', 'themeisle-companion' ),
122
  'default' => 'h3',
123
  'options' => [
124
- 'h1' => __( 'h1', 'themeisle-companion' ),
125
- 'h2' => __( 'h2', 'themeisle-companion' ),
126
- 'h3' => __( 'h3', 'themeisle-companion' ),
127
- 'h4' => __( 'h4', 'themeisle-companion' ),
128
- 'h5' => __( 'h5', 'themeisle-companion' ),
129
- 'h6' => __( 'h6', 'themeisle-companion' ),
130
- 'p' => __( 'p', 'themeisle-companion' ),
131
  ],
132
  ]
133
  );
@@ -136,9 +136,9 @@ class Pricing_Table extends Widget_Base {
136
  'subtitle',
137
  [
138
  'type' => Controls_Manager::TEXT,
139
- 'label' => __( 'Subtitle', 'themeisle-companion' ),
140
- 'placeholder' => __( 'Subtitle', 'themeisle-companion' ),
141
- 'default' => __( 'Description', 'themeisle-companion' ),
142
  ]
143
  );
144
 
@@ -146,16 +146,16 @@ class Pricing_Table extends Widget_Base {
146
  'subtitle_tag',
147
  [
148
  'type' => Controls_Manager::SELECT,
149
- 'label' => __( 'Subtitle HTML Tag', 'themeisle-companion' ),
150
  'default' => 'p',
151
  'options' => [
152
- 'h1' => __( 'h1', 'themeisle-companion' ),
153
- 'h2' => __( 'h2', 'themeisle-companion' ),
154
- 'h3' => __( 'h3', 'themeisle-companion' ),
155
- 'h4' => __( 'h4', 'themeisle-companion' ),
156
- 'h5' => __( 'h5', 'themeisle-companion' ),
157
- 'h6' => __( 'h6', 'themeisle-companion' ),
158
- 'p' => __( 'p', 'themeisle-companion' ),
159
  ],
160
  ]
161
  );
@@ -169,7 +169,7 @@ class Pricing_Table extends Widget_Base {
169
  $this->start_controls_section(
170
  'section_price_tag',
171
  [
172
- 'label' => __( 'Price Tag', 'themeisle-companion' ),
173
  ]
174
  );
175
 
@@ -177,9 +177,9 @@ class Pricing_Table extends Widget_Base {
177
  'price_tag_text',
178
  [
179
  'type' => Controls_Manager::TEXT,
180
- 'label' => __( 'Price', 'themeisle-companion' ),
181
- 'placeholder' => __( 'Price', 'themeisle-companion' ),
182
- 'default' => __( '50', 'themeisle-companion' ),
183
  'separator' => 'after',
184
  ]
185
  );
@@ -188,9 +188,9 @@ class Pricing_Table extends Widget_Base {
188
  'price_tag_currency',
189
  [
190
  'type' => Controls_Manager::TEXT,
191
- 'label' => __( 'Currency', 'themeisle-companion' ),
192
- 'placeholder' => __( 'Currency', 'themeisle-companion' ),
193
- 'default' => __( '$', 'themeisle-companion' ),
194
  ]
195
  );
196
 
@@ -198,11 +198,11 @@ class Pricing_Table extends Widget_Base {
198
  'price_tag_currency_position',
199
  [
200
  'type' => Controls_Manager::SELECT,
201
- 'label' => __( 'Currency Position', 'themeisle-companion' ),
202
  'default' => 'left',
203
  'options' => [
204
- 'left' => __( 'Before', 'themeisle-companion' ),
205
- 'right' => __( 'After', 'themeisle-companion' ),
206
  ],
207
  ]
208
  );
@@ -211,9 +211,9 @@ class Pricing_Table extends Widget_Base {
211
  'price_tag_period',
212
  [
213
  'type' => Controls_Manager::TEXT,
214
- 'label' => __( 'Period', 'themeisle-companion' ),
215
- 'placeholder' => __( '/month', 'themeisle-companion' ),
216
- 'default' => __( '/month', 'themeisle-companion' ),
217
  'separator' => 'before',
218
  ]
219
  );
@@ -227,50 +227,50 @@ class Pricing_Table extends Widget_Base {
227
  $this->start_controls_section(
228
  'section_features',
229
  [
230
- 'label' => __( 'Features', 'themeisle-companion' ),
231
  ]
232
  );
233
 
234
  $this->add_control(
235
  'feature_list',
236
  [
237
- 'label' => __( 'Plan Features', 'themeisle-companion' ),
238
  'type' => Controls_Manager::REPEATER,
239
  'default' => [
240
  [
241
- 'accent' => __( 'First', 'themeisle-companion' ),
242
- 'text' => __( 'Feature', 'themeisle-companion' ),
243
  ],
244
  [
245
- 'accent' => __( 'Second', 'themeisle-companion' ),
246
- 'text' => __( 'Feature', 'themeisle-companion' ),
247
  ],
248
  [
249
- 'accent' => __( 'Third', 'themeisle-companion' ),
250
- 'text' => __( 'Feature', 'themeisle-companion' ),
251
  ],
252
  ],
253
  'fields' => [
254
  [
255
  'type' => Controls_Manager::TEXT,
256
  'name' => 'accent',
257
- 'label' => __( 'Accented Text', 'themeisle-companion' ),
258
- 'description' => __( 'Appears before feature text', 'themeisle-companion' ),
259
  'label_block' => true,
260
- 'default' => __( 'Accent', 'themeisle-companion' ),
261
  ],
262
  [
263
  'type' => Controls_Manager::TEXT,
264
  'name' => 'text',
265
- 'label' => __( 'Text', 'themeisle-companion' ),
266
  'label_block' => true,
267
- 'placeholder' => __( 'Plan Features', 'themeisle-companion' ),
268
- 'default' => __( 'Feature', 'themeisle-companion' ),
269
  ],
270
  [
271
  'type' => Controls_Manager::ICONS,
272
  'name' => 'feature_icon_new',
273
- 'label' => __( 'Icon', 'themeisle-companion' ),
274
  'default' => [
275
  'value' => 'fas fa-star',
276
  'library' => 'solid',
@@ -285,23 +285,23 @@ class Pricing_Table extends Widget_Base {
285
  $this->add_responsive_control(
286
  'features_align',
287
  [
288
- 'label' => __( 'Alignment', 'themeisle-companion' ),
289
  'type' => Controls_Manager::CHOOSE,
290
  'options' => [
291
  'left' => [
292
- 'title' => __( 'Left', 'themeisle-companion' ),
293
  'icon' => 'fa fa-align-left',
294
  ],
295
  'center' => [
296
- 'title' => __( 'Center', 'themeisle-companion' ),
297
  'icon' => 'fa fa-align-center',
298
  ],
299
  'right' => [
300
- 'title' => __( 'Right', 'themeisle-companion' ),
301
  'icon' => 'fa fa-align-right',
302
  ],
303
  'justify' => [
304
- 'title' => __( 'Justified', 'themeisle-companion' ),
305
  'icon' => 'fa fa-align-justify',
306
  ],
307
  ],
@@ -322,7 +322,7 @@ class Pricing_Table extends Widget_Base {
322
  $this->start_controls_section(
323
  'section_button',
324
  [
325
- 'label' => __( 'Button', 'themeisle-companion' ),
326
  ]
327
  );
328
 
@@ -330,9 +330,9 @@ class Pricing_Table extends Widget_Base {
330
  'button_text',
331
  [
332
  'type' => Controls_Manager::TEXT,
333
- 'label' => __( 'Text', 'themeisle-companion' ),
334
- 'placeholder' => __( 'Buy Now', 'themeisle-companion' ),
335
- 'default' => __( 'Buy Now', 'themeisle-companion' ),
336
  ]
337
  );
338
 
@@ -340,8 +340,8 @@ class Pricing_Table extends Widget_Base {
340
  'button_link',
341
  [
342
  'type' => Controls_Manager::URL,
343
- 'label' => __( 'Link', 'themeisle-companion' ),
344
- 'placeholder' => __( 'https://example.com', 'themeisle-companion' ),
345
  ]
346
  );
347
 
@@ -349,7 +349,7 @@ class Pricing_Table extends Widget_Base {
349
  'button_icon_new',
350
  [
351
  'type' => Controls_Manager::ICONS,
352
- 'label' => __( 'Icon', 'themeisle-companion' ),
353
  'fa4compatibility' => 'button_icon',
354
  ]
355
  );
@@ -358,11 +358,11 @@ class Pricing_Table extends Widget_Base {
358
  'button_icon_align',
359
  [
360
  'type' => Controls_Manager::SELECT,
361
- 'label' => __( 'Icon Position', 'themeisle-companion' ),
362
  'default' => 'left',
363
  'options' => [
364
- 'left' => __( 'Before', 'themeisle-companion' ),
365
- 'right' => __( 'After', 'themeisle-companion' ),
366
  ],
367
  'condition' => [
368
  'button_icon!' => '',
@@ -374,7 +374,7 @@ class Pricing_Table extends Widget_Base {
374
  'button_icon_indent',
375
  [
376
  'type' => Controls_Manager::SLIDER,
377
- 'label' => __( 'Icon Spacing', 'themeisle-companion' ),
378
  'range' => [
379
  'px' => [
380
  'max' => 50,
@@ -399,7 +399,7 @@ class Pricing_Table extends Widget_Base {
399
  $this->start_controls_section(
400
  'section_header_style',
401
  [
402
- 'label' => __( 'Header', 'themeisle-companion' ),
403
  'tab' => Controls_Manager::TAB_STYLE,
404
  ]
405
  );
@@ -407,7 +407,7 @@ class Pricing_Table extends Widget_Base {
407
  $this->add_responsive_control(
408
  'header_padding',
409
  [
410
- 'label' => __( 'Header Padding', 'themeisle-companion' ),
411
  'type' => Controls_Manager::DIMENSIONS,
412
  'size_units' => [ 'px', 'em', '%' ],
413
  'selectors' => [
@@ -420,7 +420,7 @@ class Pricing_Table extends Widget_Base {
420
  'plan_title_color',
421
  [
422
  'type' => Controls_Manager::COLOR,
423
- 'label' => __( 'Title Color', 'themeisle-companion' ),
424
  'scheme' => [
425
  'type' => Scheme_Color::get_type(),
426
  'value' => Scheme_Color::COLOR_1,
@@ -445,7 +445,7 @@ class Pricing_Table extends Widget_Base {
445
  'plan_subtitle_color',
446
  [
447
  'type' => Controls_Manager::COLOR,
448
- 'label' => __( 'Subtitle Color', 'themeisle-companion' ),
449
  'scheme' => [
450
  'type' => Scheme_Color::get_type(),
451
  'value' => Scheme_Color::COLOR_1,
@@ -470,7 +470,7 @@ class Pricing_Table extends Widget_Base {
470
  Group_Control_Background::get_type(),
471
  [
472
  'name' => 'heading_section_bg',
473
- 'label' => __( 'Section Background', 'themeisle-companion' ),
474
  'types' => [ 'classic', 'gradient' ],
475
  'selector' => '{{WRAPPER}} .obfx-title-wrapper',
476
  ]
@@ -485,7 +485,7 @@ class Pricing_Table extends Widget_Base {
485
  $this->start_controls_section(
486
  'section_price_box',
487
  [
488
- 'label' => __( 'Price Tag', 'themeisle-companion' ),
489
  'tab' => Controls_Manager::TAB_STYLE,
490
  ]
491
  );
@@ -494,7 +494,7 @@ class Pricing_Table extends Widget_Base {
494
  'price_box_padding',
495
  [
496
  'type' => Controls_Manager::DIMENSIONS,
497
- 'label' => __( 'Price Box Padding', 'themeisle-companion' ),
498
  'size_units' => [ 'px', 'em', '%' ],
499
  'selectors' => [
500
  '{{WRAPPER}} .obfx-price-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -506,7 +506,7 @@ class Pricing_Table extends Widget_Base {
506
  Group_Control_Typography::get_type(),
507
  [
508
  'name' => 'pricing_section_bg',
509
- 'label' => __( 'Section Background', 'themeisle-companion' ),
510
  'types' => [ 'classic', 'gradient' ],
511
  'selector' => '{{WRAPPER}} .obfx-price-wrapper',
512
  ]
@@ -515,7 +515,7 @@ class Pricing_Table extends Widget_Base {
515
  $this->add_control(
516
  'price_tag_heading_currency',
517
  [
518
- 'label' => __( 'Currency', 'themeisle-companion' ),
519
  'type' => Controls_Manager::HEADING,
520
  'separator' => 'before',
521
  ]
@@ -524,7 +524,7 @@ class Pricing_Table extends Widget_Base {
524
  $this->add_control(
525
  'currency_color',
526
  [
527
- 'label' => __( 'Currency Color', 'themeisle-companion' ),
528
  'type' => Controls_Manager::COLOR,
529
  'scheme' => [
530
  'type' => Scheme_Color::get_type(),
@@ -549,7 +549,7 @@ class Pricing_Table extends Widget_Base {
549
  $this->add_control(
550
  'price_tag_heading_price',
551
  [
552
- 'label' => __( 'Price', 'themeisle-companion' ),
553
  'type' => Controls_Manager::HEADING,
554
  'separator' => 'before',
555
  ]
@@ -558,7 +558,7 @@ class Pricing_Table extends Widget_Base {
558
  $this->add_control(
559
  'price_text_color',
560
  [
561
- 'label' => __( 'Price Color', 'themeisle-companion' ),
562
  'type' => Controls_Manager::COLOR,
563
  'scheme' => [
564
  'type' => Scheme_Color::get_type(),
@@ -583,7 +583,7 @@ class Pricing_Table extends Widget_Base {
583
  $this->add_control(
584
  'price_tag_heading_period',
585
  [
586
- 'label' => __( 'Period', 'themeisle-companion' ),
587
  'type' => Controls_Manager::HEADING,
588
  'separator' => 'before',
589
  ]
@@ -592,7 +592,7 @@ class Pricing_Table extends Widget_Base {
592
  $this->add_control(
593
  'period_color',
594
  [
595
- 'label' => __( 'Period Color', 'themeisle-companion' ),
596
  'type' => Controls_Manager::COLOR,
597
  'scheme' => [
598
  'type' => Scheme_Color::get_type(),
@@ -623,7 +623,7 @@ class Pricing_Table extends Widget_Base {
623
  $this->start_controls_section(
624
  'section_features_style',
625
  [
626
- 'label' => __( 'Features', 'themeisle-companion' ),
627
  'tab' => Controls_Manager::TAB_STYLE,
628
  ]
629
  );
@@ -632,7 +632,7 @@ class Pricing_Table extends Widget_Base {
632
  Group_Control_Background::get_type(),
633
  [
634
  'name' => 'features_section_bg',
635
- 'label' => __( 'Section Background', 'themeisle-companion' ),
636
  'types' => [ 'classic', 'gradient' ],
637
  'selector' => '{{WRAPPER}} .obfx-feature-list',
638
  ]
@@ -642,7 +642,7 @@ class Pricing_Table extends Widget_Base {
642
  'features_box_padding',
643
  [
644
  'type' => Controls_Manager::DIMENSIONS,
645
- 'label' => __( 'Features List Padding', 'themeisle-companion' ),
646
  'size_units' => [ 'px', 'em', '%' ],
647
  'selectors' => [
648
  '{{WRAPPER}} .obfx-feature-list' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
@@ -653,7 +653,7 @@ class Pricing_Table extends Widget_Base {
653
  $this->add_control(
654
  'features_accented_heading',
655
  [
656
- 'label' => __( 'Accented', 'themeisle-companion' ),
657
  'type' => Controls_Manager::HEADING,
658
  'separator' => 'before',
659
  ]
@@ -663,7 +663,7 @@ class Pricing_Table extends Widget_Base {
663
  'features_accented_text_color',
664
  [
665
  'type' => Controls_Manager::COLOR,
666
- 'label' => __( 'Accented Color', 'themeisle-companion' ),
667
  'scheme' => [
668
  'type' => Scheme_Color::get_type(),
669
  'value' => Scheme_Color::COLOR_1,
@@ -687,7 +687,7 @@ class Pricing_Table extends Widget_Base {
687
  $this->add_control(
688
  'features_features_heading',
689
  [
690
- 'label' => __( 'Features', 'themeisle-companion' ),
691
  'type' => Controls_Manager::HEADING,
692
  'separator' => 'before',
693
  ]
@@ -696,7 +696,7 @@ class Pricing_Table extends Widget_Base {
696
  $this->add_control(
697
  'features_text_color',
698
  [
699
- 'label' => __( 'Features Color', 'themeisle-companion' ),
700
  'type' => Controls_Manager::COLOR,
701
  'scheme' => [
702
  'type' => Scheme_Color::get_type(),
@@ -721,7 +721,7 @@ class Pricing_Table extends Widget_Base {
721
  $this->add_control(
722
  'features_icons_heading',
723
  [
724
- 'label' => __( 'Icons', 'themeisle-companion' ),
725
  'type' => Controls_Manager::HEADING,
726
  'separator' => 'before',
727
  ]
@@ -730,7 +730,7 @@ class Pricing_Table extends Widget_Base {
730
  $this->add_control(
731
  'features_icon_color',
732
  [
733
- 'label' => __( 'Icon Color', 'themeisle-companion' ),
734
  'type' => Controls_Manager::COLOR,
735
  'scheme' => [
736
  'type' => Scheme_Color::get_type(),
@@ -747,7 +747,7 @@ class Pricing_Table extends Widget_Base {
747
  'features_icon_size',
748
  [
749
  'type' => Controls_Manager::SLIDER,
750
- 'label' => __( 'Icon Size', 'themeisle-companion' ),
751
  'default' => [
752
  'size' => 16,
753
  ],
@@ -767,7 +767,7 @@ class Pricing_Table extends Widget_Base {
767
  'features_icon_indent',
768
  [
769
  'type' => Controls_Manager::SLIDER,
770
- 'label' => __( 'Icon Spacing', 'themeisle-companion' ),
771
  'default' => [
772
  'size' => 5,
773
  ],
@@ -792,7 +792,7 @@ class Pricing_Table extends Widget_Base {
792
  $this->start_controls_section(
793
  'section_button_style',
794
  [
795
- 'label' => __( 'Button', 'themeisle-companion' ),
796
  'tab' => Controls_Manager::TAB_STYLE,
797
  ]
798
  );
@@ -800,7 +800,7 @@ class Pricing_Table extends Widget_Base {
800
  $this->add_group_control(
801
  Group_Control_Background::get_type(), [
802
  'name' => 'button_section_bg',
803
- 'label' => __( 'Section Background', 'themeisle-companion' ),
804
  'types' => [ 'classic', 'gradient' ],
805
  'selector' => '{{WRAPPER}} .obfx-pricing-table-button-wrapper',
806
  ]
@@ -810,7 +810,7 @@ class Pricing_Table extends Widget_Base {
810
  Group_Control_Typography::get_type(),
811
  [
812
  'name' => 'typography',
813
- 'label' => __( 'Typography', 'themeisle-companion' ),
814
  'scheme' => Scheme_Typography::TYPOGRAPHY_4,
815
  'selector' => '{{WRAPPER}} .obfx-pricing-table-button-wrapper',
816
  ]
@@ -819,7 +819,7 @@ class Pricing_Table extends Widget_Base {
819
  $this->add_control(
820
  'border_radius',
821
  [
822
- 'label' => __( 'Border Radius', 'themeisle-companion' ),
823
  'type' => Controls_Manager::DIMENSIONS,
824
  'size_units' => [ 'px', '%' ],
825
  'selectors' => [
@@ -831,7 +831,7 @@ class Pricing_Table extends Widget_Base {
831
  $this->add_control(
832
  'text_padding',
833
  [
834
- 'label' => __( 'Padding', 'themeisle-companion' ),
835
  'type' => Controls_Manager::DIMENSIONS,
836
  'size_units' => [ 'px', 'em', '%' ],
837
  'selectors' => [
@@ -844,7 +844,7 @@ class Pricing_Table extends Widget_Base {
844
  'button_icon_size',
845
  [
846
  'type' => Controls_Manager::SLIDER,
847
- 'label' => __( 'Icon Size', 'themeisle-companion' ),
848
  'default' => [
849
  'size' => 16,
850
  ],
@@ -875,7 +875,7 @@ class Pricing_Table extends Widget_Base {
875
  $this->start_controls_tab(
876
  'tab_background_normal',
877
  [
878
- 'label' => __( 'Normal', 'themeisle-companion' ),
879
  ]
880
  );
881
 
@@ -883,7 +883,7 @@ class Pricing_Table extends Widget_Base {
883
  'button_text_color',
884
  [
885
  'type' => Controls_Manager::COLOR,
886
- 'label' => __( 'Text Color', 'themeisle-companion' ),
887
  'scheme' => [
888
  'type' => Scheme_Color::get_type(),
889
  'value' => Scheme_Color::COLOR_1,
@@ -898,7 +898,7 @@ class Pricing_Table extends Widget_Base {
898
  'button_bg_color',
899
  [
900
  'type' => Controls_Manager::COLOR,
901
- 'label' => __( 'Background Color', 'themeisle-companion' ),
902
  'scheme' => [
903
  'type' => Scheme_Color::get_type(),
904
  'value' => Scheme_Color::COLOR_1,
@@ -924,7 +924,7 @@ class Pricing_Table extends Widget_Base {
924
  $this->start_controls_tab(
925
  'tab_background_hover',
926
  [
927
- 'label' => __( 'Hover', 'themeisle-companion' ),
928
  ]
929
  );
930
 
@@ -932,7 +932,7 @@ class Pricing_Table extends Widget_Base {
932
  'button_hover_text_color',
933
  [
934
  'type' => Controls_Manager::COLOR,
935
- 'label' => __( 'Text Color', 'themeisle-companion' ),
936
  'scheme' => [
937
  'type' => Scheme_Color::get_type(),
938
  'value' => Scheme_Color::COLOR_1,
@@ -947,7 +947,7 @@ class Pricing_Table extends Widget_Base {
947
  'button_hover_bg_color',
948
  [
949
  'type' => Controls_Manager::COLOR,
950
- 'label' => __( 'Background Color', 'themeisle-companion' ),
951
  'scheme' => [
952
  'type' => Scheme_Color::get_type(),
953
  'value' => Scheme_Color::COLOR_1,
@@ -971,7 +971,7 @@ class Pricing_Table extends Widget_Base {
971
  $this->add_control(
972
  'background_hover_transition',
973
  [
974
- 'label' => __( 'Transition Duration', 'themeisle-companion' ),
975
  'type' => Controls_Manager::SLIDER,
976
  'default' => [
977
  'size' => 0.3,
31
  * @return string
32
  */
33
  public function get_title() {
34
+ return __( 'Pricing Table', 'textdomain' );
35
  }
36
 
37
  /**
100
  $this->start_controls_section(
101
  'section_title',
102
  [
103
+ 'label' => __( 'Plan Title', 'textdomain' ),
104
  ]
105
  );
106
 
108
  'title',
109
  [
110
  'type' => Controls_Manager::TEXT,
111
+ 'label' => __( 'Title', 'textdomain' ),
112
+ 'placeholder' => __( 'Title', 'textdomain' ),
113
+ 'default' => __( 'Pricing Plan', 'textdomain' ),
114
  ]
115
  );
116
 
118
  'title_tag',
119
  [
120
  'type' => Controls_Manager::SELECT,
121
+ 'label' => __( 'Title HTML tag', 'textdomain' ),
122
  'default' => 'h3',
123
  'options' => [
124
+ 'h1' => __( 'h1', 'textdomain' ),
125
+ 'h2' => __( 'h2', 'textdomain' ),
126
+ 'h3' => __( 'h3', 'textdomain' ),
127
+ 'h4' => __( 'h4', 'textdomain' ),
128
+ 'h5' => __( 'h5', 'textdomain' ),
129
+ 'h6' => __( 'h6', 'textdomain' ),
130
+ 'p' => __( 'p', 'textdomain' ),
131
  ],
132
  ]
133
  );
136
  'subtitle',
137
  [
138
  'type' => Controls_Manager::TEXT,
139
+ 'label' => __( 'Subtitle', 'textdomain' ),
140
+ 'placeholder' => __( 'Subtitle', 'textdomain' ),
141
+ 'default' => __( 'Description', 'textdomain' ),
142
  ]
143
  );
144
 
146
  'subtitle_tag',
147
  [
148
  'type' => Controls_Manager::SELECT,
149
+ 'label' => __( 'Subtitle HTML Tag', 'textdomain' ),
150
  'default' => 'p',
151
  'options' => [
152
+ 'h1' => __( 'h1', 'textdomain' ),
153
+ 'h2' => __( 'h2', 'textdomain' ),
154
+ 'h3' => __( 'h3', 'textdomain' ),
155
+ 'h4' => __( 'h4', 'textdomain' ),
156
+ 'h5' => __( 'h5', 'textdomain' ),
157
+ 'h6' => __( 'h6', 'textdomain' ),
158
+ 'p' => __( 'p', 'textdomain' ),
159
  ],
160
  ]
161
  );
169
  $this->start_controls_section(
170
  'section_price_tag',
171
  [
172
+ 'label' => __( 'Price Tag', 'textdomain' ),
173
  ]
174
  );
175
 
177
  'price_tag_text',
178
  [
179
  'type' => Controls_Manager::TEXT,
180
+ 'label' => __( 'Price', 'textdomain' ),
181
+ 'placeholder' => __( 'Price', 'textdomain' ),
182
+ 'default' => __( '50', 'textdomain' ),
183
  'separator' => 'after',
184
  ]
185
  );
188
  'price_tag_currency',
189
  [
190
  'type' => Controls_Manager::TEXT,
191
+ 'label' => __( 'Currency', 'textdomain' ),
192
+ 'placeholder' => __( 'Currency', 'textdomain' ),
193
+ 'default' => __( '$', 'textdomain' ),
194
  ]
195
  );
196
 
198
  'price_tag_currency_position',
199
  [
200
  'type' => Controls_Manager::SELECT,
201
+ 'label' => __( 'Currency Position', 'textdomain' ),
202
  'default' => 'left',
203
  'options' => [
204
+ 'left' => __( 'Before', 'textdomain' ),
205
+ 'right' => __( 'After', 'textdomain' ),
206
  ],
207
  ]
208
  );
211
  'price_tag_period',
212
  [
213
  'type' => Controls_Manager::TEXT,
214
+ 'label' => __( 'Period', 'textdomain' ),
215
+ 'placeholder' => __( '/month', 'textdomain' ),
216
+ 'default' => __( '/month', 'textdomain' ),
217
  'separator' => 'before',
218
  ]
219
  );
227
  $this->start_controls_section(
228
  'section_features',
229
  [
230
+ 'label' => __( 'Features', 'textdomain' ),
231
  ]
232
  );
233
 
234
  $this->add_control(
235
  'feature_list',
236
  [
237
+ 'label' => __( 'Plan Features', 'textdomain' ),
238
  'type' => Controls_Manager::REPEATER,
239
  'default' => [
240
  [
241
+ 'accent' => __( 'First', 'textdomain' ),
242
+ 'text' => __( 'Feature', 'textdomain' ),
243
  ],
244
  [
245
+ 'accent' => __( 'Second', 'textdomain' ),
246
+ 'text' => __( 'Feature', 'textdomain' ),
247
  ],
248
  [
249
+ 'accent' => __( 'Third', 'textdomain' ),
250
+ 'text' => __( 'Feature', 'textdomain' ),
251
  ],
252
  ],
253
  'fields' => [
254
  [
255
  'type' => Controls_Manager::TEXT,
256
  'name' => 'accent',
257
+ 'label' => __( 'Accented Text', 'textdomain' ),
258
+ 'description' => __( 'Appears before feature text', 'textdomain' ),
259
  'label_block' => true,
260
+ 'default' => __( 'Accent', 'textdomain' ),
261
  ],
262
  [
263
  'type' => Controls_Manager::TEXT,
264
  'name' => 'text',
265
+ 'label' => __( 'Text', 'textdomain' ),
266
  'label_block' => true,
267
+ 'placeholder' => __( 'Plan Features', 'textdomain' ),
268
+ 'default' => __( 'Feature', 'textdomain' ),
269
  ],
270
  [
271
  'type' => Controls_Manager::ICONS,
272
  'name' => 'feature_icon_new',
273
+ 'label' => __( 'Icon', 'textdomain' ),
274
  'default' => [
275
  'value' => 'fas fa-star',
276
  'library' => 'solid',
285
  $this->add_responsive_control(
286
  'features_align',
287
  [
288
+ 'label' => __( 'Alignment', 'textdomain' ),
289
  'type' => Controls_Manager::CHOOSE,
290
  'options' => [
291
  'left' => [
292
+ 'title' => __( 'Left', 'textdomain' ),
293
  'icon' => 'fa fa-align-left',
294
  ],
295
  'center' => [
296
+ 'title' => __( 'Center', 'textdomain' ),
297
  'icon' => 'fa fa-align-center',
298
  ],
299
  'right' => [
300
+ 'title' => __( 'Right', 'textdomain' ),
301
  'icon' => 'fa fa-align-right',
302
  ],
303
  'justify' => [
304
+ 'title' => __( 'Justified', 'textdomain' ),
305
  'icon' => 'fa fa-align-justify',
306
  ],
307
  ],
322
  $this->start_controls_section(
323
  'section_button',
324
  [
325
+ 'label' => __( 'Button', 'textdomain' ),
326
  ]
327
  );
328
 
330
  'button_text',
331
  [
332
  'type' => Controls_Manager::TEXT,
333
+ 'label' => __( 'Text', 'textdomain' ),
334
+ 'placeholder' => __( 'Buy Now', 'textdomain' ),
335
+ 'default' => __( 'Buy Now', 'textdomain' ),
336
  ]
337
  );
338
 
340
  'button_link',
341
  [
342
  'type' => Controls_Manager::URL,
343
+ 'label' => __( 'Link', 'textdomain' ),
344
+ 'placeholder' => __( 'https://example.com', 'textdomain' ),
345
  ]
346
  );
347
 
349
  'button_icon_new',
350
  [
351
  'type' => Controls_Manager::ICONS,
352
+ 'label' => __( 'Icon', 'textdomain' ),
353
  'fa4compatibility' => 'button_icon',
354
  ]
355
  );
358
  'button_icon_align',
359
  [
360
  'type' => Controls_Manager::SELECT,
361
+ 'label' => __( 'Icon Position', 'textdomain' ),
362
  'default' => 'left',
363
  'options' => [
364
+ 'left' => __( 'Before', 'textdomain' ),
365
+ 'right' => __( 'After', 'textdomain' ),
366
  ],
367
  'condition' => [
368
  'button_icon!' => '',
374
  'button_icon_indent',
375
  [
376
  'type' => Controls_Manager::SLIDER,
377
+ 'label' => __( 'Icon Spacing', 'textdomain' ),
378
  'range' => [
379
  'px' => [
380
  'max' => 50,
399
  $this->start_controls_section(
400
  'section_header_style',
401
  [
402
+ 'label' => __( 'Header', 'textdomain' ),
403
  'tab' => Controls_Manager::TAB_STYLE,
404
  ]
405
  );
407
  $this->add_responsive_control(
408
  'header_padding',
409
  [
410
+ 'label' => __( 'Header Padding', 'textdomain' ),
411
  'type' => Controls_Manager::DIMENSIONS,
412
  'size_units' => [ 'px', 'em', '%' ],
413
  'selectors' => [
420
  'plan_title_color',
421
  [
422
  'type' => Controls_Manager::COLOR,
423
+ 'label' => __( 'Title Color', 'textdomain' ),
424
  'scheme' => [
425
  'type' => Scheme_Color::get_type(),
426
  'value' => Scheme_Color::COLOR_1,
445
  'plan_subtitle_color',
446
  [
447
  'type' => Controls_Manager::COLOR,
448
+ 'label' => __( 'Subtitle Color', 'textdomain' ),
449
  'scheme' => [
450
  'type' => Scheme_Color::get_type(),
451
  'value' => Scheme_Color::COLOR_1,
470
  Group_Control_Background::get_type(),
471
  [
472
  'name' => 'heading_section_bg',
473
+ 'label' => __( 'Section Background', 'textdomain' ),
474
  'types' => [ 'classic', 'gradient' ],
475
  'selector' => '{{WRAPPER}} .obfx-title-wrapper',
476
  ]
485
  $this->start_controls_section(
486
  'section_price_box',
487
  [
488
+ 'label' => __( 'Price Tag', 'textdomain' ),
489
  'tab' => Controls_Manager::TAB_STYLE,
490
  ]
491
  );
494
  'price_box_padding',
495
  [
496
  'type' => Controls_Manager::DIMENSIONS,
497
+ 'label' => __( 'Price Box Padding', 'textdomain' ),
498
  'size_units' => [ 'px', 'em', '%' ],
499
  'selectors' => [
500
  '{{WRAPPER}} .obfx-price-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
506
  Group_Control_Typography::get_type(),
507
  [
508
  'name' => 'pricing_section_bg',
509
+ 'label' => __( 'Section Background', 'textdomain' ),
510
  'types' => [ 'classic', 'gradient' ],
511
  'selector' => '{{WRAPPER}} .obfx-price-wrapper',
512
  ]
515
  $this->add_control(
516
  'price_tag_heading_currency',
517
  [
518
+ 'label' => __( 'Currency', 'textdomain' ),
519
  'type' => Controls_Manager::HEADING,
520
  'separator' => 'before',
521
  ]
524
  $this->add_control(
525
  'currency_color',
526
  [
527
+ 'label' => __( 'Currency Color', 'textdomain' ),
528
  'type' => Controls_Manager::COLOR,
529
  'scheme' => [
530
  'type' => Scheme_Color::get_type(),
549
  $this->add_control(
550
  'price_tag_heading_price',
551
  [
552
+ 'label' => __( 'Price', 'textdomain' ),
553
  'type' => Controls_Manager::HEADING,
554
  'separator' => 'before',
555
  ]
558
  $this->add_control(
559
  'price_text_color',
560
  [
561
+ 'label' => __( 'Price Color', 'textdomain' ),
562
  'type' => Controls_Manager::COLOR,
563
  'scheme' => [
564
  'type' => Scheme_Color::get_type(),
583
  $this->add_control(
584
  'price_tag_heading_period',
585
  [
586
+ 'label' => __( 'Period', 'textdomain' ),
587
  'type' => Controls_Manager::HEADING,
588
  'separator' => 'before',
589
  ]
592
  $this->add_control(
593
  'period_color',
594
  [
595
+ 'label' => __( 'Period Color', 'textdomain' ),
596
  'type' => Controls_Manager::COLOR,
597
  'scheme' => [
598
  'type' => Scheme_Color::get_type(),
623
  $this->start_controls_section(
624
  'section_features_style',
625
  [
626
+ 'label' => __( 'Features', 'textdomain' ),
627
  'tab' => Controls_Manager::TAB_STYLE,
628
  ]
629
  );
632
  Group_Control_Background::get_type(),
633
  [
634
  'name' => 'features_section_bg',
635
+ 'label' => __( 'Section Background', 'textdomain' ),
636
  'types' => [ 'classic', 'gradient' ],
637
  'selector' => '{{WRAPPER}} .obfx-feature-list',
638
  ]
642
  'features_box_padding',
643
  [
644
  'type' => Controls_Manager::DIMENSIONS,
645
+ 'label' => __( 'Features List Padding', 'textdomain' ),
646
  'size_units' => [ 'px', 'em', '%' ],
647
  'selectors' => [
648
  '{{WRAPPER}} .obfx-feature-list' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
653
  $this->add_control(
654
  'features_accented_heading',
655
  [
656
+ 'label' => __( 'Accented', 'textdomain' ),
657
  'type' => Controls_Manager::HEADING,
658
  'separator' => 'before',
659
  ]
663
  'features_accented_text_color',
664
  [
665
  'type' => Controls_Manager::COLOR,
666
+ 'label' => __( 'Accented Color', 'textdomain' ),
667
  'scheme' => [
668
  'type' => Scheme_Color::get_type(),
669
  'value' => Scheme_Color::COLOR_1,
687
  $this->add_control(
688
  'features_features_heading',
689
  [
690
+ 'label' => __( 'Features', 'textdomain' ),
691
  'type' => Controls_Manager::HEADING,
692
  'separator' => 'before',
693
  ]
696
  $this->add_control(
697
  'features_text_color',
698
  [
699
+ 'label' => __( 'Features Color', 'textdomain' ),
700
  'type' => Controls_Manager::COLOR,
701
  'scheme' => [
702
  'type' => Scheme_Color::get_type(),
721
  $this->add_control(
722
  'features_icons_heading',
723
  [
724
+ 'label' => __( 'Icons', 'textdomain' ),
725
  'type' => Controls_Manager::HEADING,
726
  'separator' => 'before',
727
  ]
730
  $this->add_control(
731
  'features_icon_color',
732
  [
733
+ 'label' => __( 'Icon Color', 'textdomain' ),
734
  'type' => Controls_Manager::COLOR,
735
  'scheme' => [
736
  'type' => Scheme_Color::get_type(),
747
  'features_icon_size',
748
  [
749
  'type' => Controls_Manager::SLIDER,
750
+ 'label' => __( 'Icon Size', 'textdomain' ),
751
  'default' => [
752
  'size' => 16,
753
  ],
767
  'features_icon_indent',
768
  [
769
  'type' => Controls_Manager::SLIDER,
770
+ 'label' => __( 'Icon Spacing', 'textdomain' ),
771
  'default' => [
772
  'size' => 5,
773
  ],
792
  $this->start_controls_section(
793
  'section_button_style',
794
  [
795
+ 'label' => __( 'Button', 'textdomain' ),
796
  'tab' => Controls_Manager::TAB_STYLE,
797
  ]
798
  );
800
  $this->add_group_control(
801
  Group_Control_Background::get_type(), [
802
  'name' => 'button_section_bg',
803
+ 'label' => __( 'Section Background', 'textdomain' ),
804
  'types' => [ 'classic', 'gradient' ],
805
  'selector' => '{{WRAPPER}} .obfx-pricing-table-button-wrapper',
806
  ]
810
  Group_Control_Typography::get_type(),
811
  [
812
  'name' => 'typography',
813
+ 'label' => __( 'Typography', 'textdomain' ),
814
  'scheme' => Scheme_Typography::TYPOGRAPHY_4,
815
  'selector' => '{{WRAPPER}} .obfx-pricing-table-button-wrapper',
816
  ]
819
  $this->add_control(
820
  'border_radius',
821
  [
822
+ 'label' => __( 'Border Radius', 'textdomain' ),
823
  'type' => Controls_Manager::DIMENSIONS,
824
  'size_units' => [ 'px', '%' ],
825
  'selectors' => [
831
  $this->add_control(
832
  'text_padding',
833
  [
834
+ 'label' => __( 'Padding', 'textdomain' ),
835
  'type' => Controls_Manager::DIMENSIONS,
836
  'size_units' => [ 'px', 'em', '%' ],
837
  'selectors' => [
844
  'button_icon_size',
845
  [
846
  'type' => Controls_Manager::SLIDER,
847
+ 'label' => __( 'Icon Size', 'textdomain' ),
848
  'default' => [
849
  'size' => 16,
850
  ],
875
  $this->start_controls_tab(
876
  'tab_background_normal',
877
  [
878
+ 'label' => __( 'Normal', 'textdomain' ),
879
  ]
880
  );
881
 
883
  'button_text_color',
884
  [
885
  'type' => Controls_Manager::COLOR,
886
+ 'label' => __( 'Text Color', 'textdomain' ),
887
  'scheme' => [
888
  'type' => Scheme_Color::get_type(),
889
  'value' => Scheme_Color::COLOR_1,
898
  'button_bg_color',
899
  [
900
  'type' => Controls_Manager::COLOR,
901
+ 'label' => __( 'Background Color', 'textdomain' ),
902
  'scheme' => [
903
  'type' => Scheme_Color::get_type(),
904
  'value' => Scheme_Color::COLOR_1,
924
  $this->start_controls_tab(
925
  'tab_background_hover',
926
  [
927
+ 'label' => __( 'Hover', 'textdomain' ),
928
  ]
929
  );
930
 
932
  'button_hover_text_color',
933
  [
934
  'type' => Controls_Manager::COLOR,
935
+ 'label' => __( 'Text Color', 'textdomain' ),
936
  'scheme' => [
937
  'type' => Scheme_Color::get_type(),
938
  'value' => Scheme_Color::COLOR_1,
947
  'button_hover_bg_color',
948
  [
949
  'type' => Controls_Manager::COLOR,
950
+ 'label' => __( 'Background Color', 'textdomain' ),
951
  'scheme' => [
952
  'type' => Scheme_Color::get_type(),
953
  'value' => Scheme_Color::COLOR_1,
971
  $this->add_control(
972
  'background_hover_transition',
973
  [
974
+ 'label' => __( 'Transition Duration', 'textdomain' ),
975
  'type' => Controls_Manager::SLIDER,
976
  'default' => [
977
  'size' => 0.3,
vendor/codeinwp/elementor-extra-widgets/widgets/elementor/services.php CHANGED
@@ -39,7 +39,7 @@ class Services extends Widget_Base {
39
  * @return string
40
  */
41
  public function get_title() {
42
- return __( 'Services', 'themeisle-companion' );
43
  }
44
 
45
  /**
@@ -88,19 +88,19 @@ class Services extends Widget_Base {
88
  $this->start_controls_section(
89
  'section_content',
90
  [
91
- 'label' => __( 'Services', 'themeisle-companion' ),
92
  ]
93
  );
94
 
95
  $this->add_control(
96
  'services_list',
97
  [
98
- 'label' => __( 'Services', 'themeisle-companion' ),
99
  'type' => Controls_Manager::REPEATER,
100
  'default' => [
101
  [
102
- 'title' => __( 'Award-Winning​', 'themeisle-companion' ),
103
- 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'themeisle-companion' ),
104
  'icon_new' => [
105
  'value' => 'fas fa-trophy',
106
  'library' => 'solid',
@@ -109,8 +109,8 @@ class Services extends Widget_Base {
109
  'type' => 'icon',
110
  ],
111
  [
112
- 'title' => __( 'Professional​', 'themeisle-companion' ),
113
- 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'themeisle-companion' ),
114
  'icon_new' => [
115
  'value' => 'fas fa-suitcase',
116
  'library' => 'solid',
@@ -119,8 +119,8 @@ class Services extends Widget_Base {
119
  'type' => 'icon',
120
  ],
121
  [
122
- 'title' => __( 'Consulting​', 'themeisle-companion' ),
123
- 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'themeisle-companion' ),
124
  'icon_new' => [
125
  'value' => 'fas fa-handshake',
126
  'library' => 'solid',
@@ -134,15 +134,15 @@ class Services extends Widget_Base {
134
  'type' => Controls_Manager::CHOOSE,
135
  'name' => 'type',
136
  'label_block' => true,
137
- 'label' => __( 'Type', 'themeisle-companion' ),
138
  'default' => 'icon',
139
  'options' => [
140
  'icon' => [
141
- 'title' => __( 'Icon', 'themeisle-companion' ),
142
  'icon' => 'fa fa-diamond',
143
  ],
144
  'image' => [
145
- 'title' => __( 'Image', 'themeisle-companion' ),
146
  'icon' => 'fa fa-photo',
147
  ],
148
  ],
@@ -151,19 +151,19 @@ class Services extends Widget_Base {
151
  'type' => Controls_Manager::TEXT,
152
  'name' => 'title',
153
  'label_block' => true,
154
- 'label' => __( 'Title & Description', 'themeisle-companion' ),
155
- 'default' => __( 'Service Title', 'themeisle-companion' ),
156
  ],
157
  [
158
  'type' => Controls_Manager::TEXTAREA,
159
  'name' => 'text',
160
- 'placeholder' => __( 'Plan Features', 'themeisle-companion' ),
161
- 'default' => __( 'Feature', 'themeisle-companion' ),
162
  ],
163
  [
164
  'type' => Controls_Manager::ICONS,
165
  'name' => 'icon_new',
166
- 'label' => __( 'Icon', 'themeisle-companion' ),
167
  'default' => [
168
  'value' => 'fas fa-gem',
169
  'library' => 'solid',
@@ -177,7 +177,7 @@ class Services extends Widget_Base {
177
  'type' => Controls_Manager::COLOR,
178
  'name' => 'color',
179
  'label_block' => false,
180
- 'label' => __( 'Icon Color', 'themeisle-companion' ),
181
  'default' => '#333333',
182
  'condition' => [
183
  'type' => 'icon',
@@ -186,7 +186,7 @@ class Services extends Widget_Base {
186
  [
187
  'type' => Controls_Manager::MEDIA,
188
  'name' => 'image',
189
- 'label' => __( 'Image', 'themeisle-companion' ),
190
  'condition' => [
191
  'type' => 'image',
192
  ],
@@ -194,9 +194,9 @@ class Services extends Widget_Base {
194
  [
195
  'type' => Controls_Manager::URL,
196
  'name' => 'link',
197
- 'label' => __( 'Link to', 'themeisle-companion' ),
198
  'separator' => 'before',
199
- 'placeholder' => __( 'https://example.com', 'themeisle-companion' ),
200
  ],
201
  ],
202
  'title_field' => '{{title}}',
@@ -206,19 +206,19 @@ class Services extends Widget_Base {
206
  $this->add_control(
207
  'align',
208
  [
209
- 'label' => '<i class="fa fa-arrows"></i> ' . __( 'Icon Position', 'themeisle-companion' ),
210
  'type' => Controls_Manager::CHOOSE,
211
  'options' => [
212
  'left' => [
213
- 'title' => __( 'Left', 'themeisle-companion' ),
214
  'icon' => 'fa fa-angle-left',
215
  ],
216
  'top' => [
217
- 'title' => __( 'Top', 'themeisle-companion' ),
218
  'icon' => 'fa fa-angle-up',
219
  ],
220
  'right' => [
221
- 'title' => __( 'Right', 'themeisle-companion' ),
222
  'icon' => 'fa fa-angle-right',
223
  ],
224
  ],
@@ -233,7 +233,7 @@ class Services extends Widget_Base {
233
  'grid_columns',
234
  [
235
  'type' => Controls_Manager::SELECT,
236
- 'label' => '<i class="fa fa-columns"></i> ' . __( 'Columns', 'themeisle-companion' ),
237
  'default' => 3,
238
  'tablet_default' => 2,
239
  'mobile_default' => 1,
@@ -256,14 +256,14 @@ class Services extends Widget_Base {
256
  $this->start_controls_section(
257
  'section_style_icon',
258
  [
259
- 'label' => __( 'Icon / Image', 'themeisle-companion' ),
260
  'tab' => Controls_Manager::TAB_STYLE,
261
  ]
262
  );
263
  $this->add_control(
264
  'icon_space',
265
  [
266
- 'label' => __( 'Spacing', 'themeisle-companion' ),
267
  'type' => Controls_Manager::SLIDER,
268
  'default' => [
269
  'size' => 15,
@@ -284,7 +284,7 @@ class Services extends Widget_Base {
284
  $this->add_control(
285
  'icon_size',
286
  [
287
- 'label' => __( 'Size', 'themeisle-companion' ),
288
  'type' => Controls_Manager::SLIDER,
289
  'range' => [
290
  'px' => [
@@ -306,7 +306,7 @@ class Services extends Widget_Base {
306
  $this->start_controls_section(
307
  'section_style_content',
308
  [
309
- 'label' => __( 'Content', 'themeisle-companion' ),
310
  'tab' => Controls_Manager::TAB_STYLE,
311
  ]
312
  );
@@ -314,21 +314,21 @@ class Services extends Widget_Base {
314
  $this->add_responsive_control(
315
  'text_align',
316
  [
317
- 'label' => __( 'Alignment', 'themeisle-companion' ),
318
  'type' => Controls_Manager::CHOOSE,
319
  'toggle' => false,
320
  'default' => 'center',
321
  'options' => [
322
  'left' => [
323
- 'title' => __( 'Left', 'themeisle-companion' ),
324
  'icon' => 'fa fa-align-left',
325
  ],
326
  'center' => [
327
- 'title' => __( 'Center', 'themeisle-companion' ),
328
  'icon' => 'fa fa-align-center',
329
  ],
330
  'right' => [
331
- 'title' => __( 'Right', 'themeisle-companion' ),
332
  'icon' => 'fa fa-align-right',
333
  ],
334
  ],
@@ -342,7 +342,7 @@ class Services extends Widget_Base {
342
  $this->add_control(
343
  'heading_title',
344
  [
345
- 'label' => __( 'Title', 'themeisle-companion' ),
346
  'type' => Controls_Manager::HEADING,
347
  'separator' => 'before',
348
  ]
@@ -351,7 +351,7 @@ class Services extends Widget_Base {
351
  $this->add_responsive_control(
352
  'title_bottom_space',
353
  [
354
- 'label' => __( 'Spacing', 'themeisle-companion' ),
355
  'type' => Controls_Manager::SLIDER,
356
  'range' => [
357
  'px' => [
@@ -368,7 +368,7 @@ class Services extends Widget_Base {
368
  $this->add_control(
369
  'title_color',
370
  [
371
- 'label' => __( 'Color', 'themeisle-companion' ),
372
  'type' => Controls_Manager::COLOR,
373
  'default' => '',
374
  'selectors' => [
@@ -389,7 +389,7 @@ class Services extends Widget_Base {
389
  $this->add_control(
390
  'heading_description',
391
  [
392
- 'label' => __( 'Description', 'themeisle-companion' ),
393
  'type' => Controls_Manager::HEADING,
394
  'separator' => 'before',
395
  ]
@@ -398,7 +398,7 @@ class Services extends Widget_Base {
398
  $this->add_control(
399
  'description_color',
400
  [
401
- 'label' => __( 'Color', 'themeisle-companion' ),
402
  'type' => Controls_Manager::COLOR,
403
  'default' => '',
404
  'selectors' => [
@@ -430,7 +430,7 @@ class Services extends Widget_Base {
430
  $this->start_controls_section(
431
  'section_grid_style',
432
  [
433
- 'label' => __( 'Grid', 'themeisle-companion' ),
434
  'tab' => Controls_Manager::TAB_STYLE,
435
  ]
436
  );
@@ -439,7 +439,7 @@ class Services extends Widget_Base {
439
  $this->add_control(
440
  'grid_style_columns_margin',
441
  [
442
- 'label' => __( 'Columns margin', 'themeisle-companion' ),
443
  'type' => Controls_Manager::SLIDER,
444
  'default' => [
445
  'size' => 15,
@@ -461,7 +461,7 @@ class Services extends Widget_Base {
461
  $this->add_control(
462
  'grid_style_rows_margin',
463
  [
464
- 'label' => __( 'Rows margin', 'themeisle-companion' ),
465
  'type' => Controls_Manager::SLIDER,
466
  'default' => [
467
  'size' => 30,
@@ -492,7 +492,7 @@ class Services extends Widget_Base {
492
  $this->add_control(
493
  'grid_items_style_heading',
494
  [
495
- 'label' => __( 'Items', 'themeisle-companion' ),
496
  'type' => Controls_Manager::HEADING,
497
  'separator' => 'before',
498
  ]
@@ -502,7 +502,7 @@ class Services extends Widget_Base {
502
  $this->add_control(
503
  'grid_items_style_padding',
504
  [
505
- 'label' => __( 'Padding', 'themeisle-companion' ),
506
  'type' => Controls_Manager::DIMENSIONS,
507
  'size_units' => [ 'px', '%' ],
508
  'selectors' => [
@@ -515,7 +515,7 @@ class Services extends Widget_Base {
515
  $this->add_control(
516
  'grid_items_style_border_radius',
517
  [
518
- 'label' => __( 'Border Radius', 'themeisle-companion' ),
519
  'type' => Controls_Manager::DIMENSIONS,
520
  'size_units' => [ 'px', '%' ],
521
  'selectors' => [
@@ -537,7 +537,7 @@ class Services extends Widget_Base {
537
  $this->start_controls_tab(
538
  'tab_background_normal',
539
  [
540
- 'label' => __( 'Normal', 'themeisle-companion' ),
541
  ]
542
  );
543
 
@@ -563,7 +563,7 @@ class Services extends Widget_Base {
563
  $this->start_controls_tab(
564
  'tab_background_hover',
565
  [
566
- 'label' => __( 'Hover', 'themeisle-companion' ),
567
  ]
568
  );
569
 
@@ -587,7 +587,7 @@ class Services extends Widget_Base {
587
  $this->add_control(
588
  'hover_transition',
589
  [
590
- 'label' => __( 'Transition Duration', 'themeisle-companion' ),
591
  'type' => Controls_Manager::SLIDER,
592
  'default' => [
593
  'size' => 0.3,
39
  * @return string
40
  */
41
  public function get_title() {
42
+ return __( 'Services', 'textdomain' );
43
  }
44
 
45
  /**
88
  $this->start_controls_section(
89
  'section_content',
90
  [
91
+ 'label' => __( 'Services', 'textdomain' ),
92
  ]
93
  );
94
 
95
  $this->add_control(
96
  'services_list',
97
  [
98
+ 'label' => __( 'Services', 'textdomain' ),
99
  'type' => Controls_Manager::REPEATER,
100
  'default' => [
101
  [
102
+ 'title' => __( 'Award-Winning​', 'textdomain' ),
103
+ 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'textdomain' ),
104
  'icon_new' => [
105
  'value' => 'fas fa-trophy',
106
  'library' => 'solid',
109
  'type' => 'icon',
110
  ],
111
  [
112
+ 'title' => __( 'Professional​', 'textdomain' ),
113
+ 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'textdomain' ),
114
  'icon_new' => [
115
  'value' => 'fas fa-suitcase',
116
  'library' => 'solid',
119
  'type' => 'icon',
120
  ],
121
  [
122
+ 'title' => __( 'Consulting​', 'textdomain' ),
123
+ 'text' => __( 'Add some text here to describe your services to the page visitors.​', 'textdomain' ),
124
  'icon_new' => [
125
  'value' => 'fas fa-handshake',
126
  'library' => 'solid',
134
  'type' => Controls_Manager::CHOOSE,
135
  'name' => 'type',
136
  'label_block' => true,
137
+ 'label' => __( 'Type', 'textdomain' ),
138
  'default' => 'icon',
139
  'options' => [
140
  'icon' => [
141
+ 'title' => __( 'Icon', 'textdomain' ),
142
  'icon' => 'fa fa-diamond',
143
  ],
144
  'image' => [
145
+ 'title' => __( 'Image', 'textdomain' ),
146
  'icon' => 'fa fa-photo',
147
  ],
148
  ],
151
  'type' => Controls_Manager::TEXT,
152
  'name' => 'title',
153
  'label_block' => true,
154
+ 'label' => __( 'Title & Description', 'textdomain' ),
155
+ 'default' => __( 'Service Title', 'textdomain' ),
156
  ],
157
  [
158
  'type' => Controls_Manager::TEXTAREA,
159
  'name' => 'text',
160
+ 'placeholder' => __( 'Plan Features', 'textdomain' ),
161
+ 'default' => __( 'Feature', 'textdomain' ),
162
  ],
163
  [
164
  'type' => Controls_Manager::ICONS,
165
  'name' => 'icon_new',
166
+ 'label' => __( 'Icon', 'textdomain' ),
167
  'default' => [
168
  'value' => 'fas fa-gem',
169
  'library' => 'solid',
177
  'type' => Controls_Manager::COLOR,
178
  'name' => 'color',
179
  'label_block' => false,
180
+ 'label' => __( 'Icon Color', 'textdomain' ),
181
  'default' => '#333333',
182
  'condition' => [
183
  'type' => 'icon',
186
  [
187
  'type' => Controls_Manager::MEDIA,
188
  'name' => 'image',
189
+ 'label' => __( 'Image', 'textdomain' ),
190
  'condition' => [
191
  'type' => 'image',
192
  ],
194
  [
195
  'type' => Controls_Manager::URL,
196
  'name' => 'link',
197
+ 'label' => __( 'Link to', 'textdomain' ),
198
  'separator' => 'before',
199
+ 'placeholder' => __( 'https://example.com', 'textdomain' ),
200
  ],
201
  ],
202
  'title_field' => '{{title}}',
206
  $this->add_control(
207
  'align',
208
  [
209
+ 'label' => '<i class="fa fa-arrows"></i> ' . __( 'Icon Position', 'textdomain' ),
210
  'type' => Controls_Manager::CHOOSE,
211
  'options' => [
212
  'left' => [
213
+ 'title' => __( 'Left', 'textdomain' ),
214
  'icon' => 'fa fa-angle-left',
215
  ],
216
  'top' => [
217
+ 'title' => __( 'Top', 'textdomain' ),
218
  'icon' => 'fa fa-angle-up',
219
  ],
220
  'right' => [
221
+ 'title' => __( 'Right', 'textdomain' ),
222
  'icon' => 'fa fa-angle-right',
223
  ],
224
  ],
233
  'grid_columns',
234
  [
235
  'type' => Controls_Manager::SELECT,
236
+ 'label' => '<i class="fa fa-columns"></i> ' . __( 'Columns', 'textdomain' ),
237
  'default' => 3,
238
  'tablet_default' => 2,
239
  'mobile_default' => 1,
256
  $this->start_controls_section(
257
  'section_style_icon',
258
  [
259
+ 'label' => __( 'Icon / Image', 'textdomain' ),
260
  'tab' => Controls_Manager::TAB_STYLE,
261
  ]
262
  );
263
  $this->add_control(
264
  'icon_space',
265
  [
266
+ 'label' => __( 'Spacing', 'textdomain' ),
267
  'type' => Controls_Manager::SLIDER,
268
  'default' => [
269
  'size' => 15,
284
  $this->add_control(
285
  'icon_size',
286
  [
287
+ 'label' => __( 'Size', 'textdomain' ),
288
  'type' => Controls_Manager::SLIDER,
289
  'range' => [
290
  'px' => [
306
  $this->start_controls_section(
307
  'section_style_content',
308
  [
309
+ 'label' => __( 'Content', 'textdomain' ),
310
  'tab' => Controls_Manager::TAB_STYLE,
311
  ]
312
  );
314
  $this->add_responsive_control(
315
  'text_align',
316
  [
317
+ 'label' => __( 'Alignment', 'textdomain' ),
318
  'type' => Controls_Manager::CHOOSE,
319
  'toggle' => false,
320
  'default' => 'center',
321
  'options' => [
322
  'left' => [
323
+ 'title' => __( 'Left', 'textdomain' ),
324
  'icon' => 'fa fa-align-left',
325
  ],
326
  'center' => [
327
+ 'title' => __( 'Center', 'textdomain' ),
328
  'icon' => 'fa fa-align-center',
329
  ],
330
  'right' => [
331
+ 'title' => __( 'Right', 'textdomain' ),
332
  'icon' => 'fa fa-align-right',
333
  ],
334
  ],
342
  $this->add_control(
343
  'heading_title',
344
  [
345
+ 'label' => __( 'Title', 'textdomain' ),
346
  'type' => Controls_Manager::HEADING,
347
  'separator' => 'before',
348
  ]
351
  $this->add_responsive_control(
352
  'title_bottom_space',
353
  [
354
+ 'label' => __( 'Spacing', 'textdomain' ),
355
  'type' => Controls_Manager::SLIDER,
356
  'range' => [
357
  'px' => [
368
  $this->add_control(
369
  'title_color',
370
  [
371
+ 'label' => __( 'Color', 'textdomain' ),
372
  'type' => Controls_Manager::COLOR,
373
  'default' => '',
374
  'selectors' => [
389
  $this->add_control(
390
  'heading_description',
391
  [
392
+ 'label' => __( 'Description', 'textdomain' ),
393
  'type' => Controls_Manager::HEADING,
394
  'separator' => 'before',
395
  ]
398
  $this->add_control(
399
  'description_color',
400
  [
401
+ 'label' => __( 'Color', 'textdomain' ),
402
  'type' => Controls_Manager::COLOR,
403
  'default' => '',
404
  'selectors' => [
430
  $this->start_controls_section(
431
  'section_grid_style',
432
  [
433
+ 'label' => __( 'Grid', 'textdomain' ),
434
  'tab' => Controls_Manager::TAB_STYLE,
435
  ]
436
  );
439
  $this->add_control(
440
  'grid_style_columns_margin',
441
  [
442
+ 'label' => __( 'Columns margin', 'textdomain' ),
443
  'type' => Controls_Manager::SLIDER,
444
  'default' => [
445
  'size' => 15,
461
  $this->add_control(
462
  'grid_style_rows_margin',
463
  [
464
+ 'label' => __( 'Rows margin', 'textdomain' ),
465
  'type' => Controls_Manager::SLIDER,
466
  'default' => [
467
  'size' => 30,
492
  $this->add_control(
493
  'grid_items_style_heading',
494
  [
495
+ 'label' => __( 'Items', 'textdomain' ),
496
  'type' => Controls_Manager::HEADING,
497
  'separator' => 'before',
498
  ]
502
  $this->add_control(
503
  'grid_items_style_padding',
504
  [
505
+ 'label' => __( 'Padding', 'textdomain' ),
506
  'type' => Controls_Manager::DIMENSIONS,
507
  'size_units' => [ 'px', '%' ],
508
  'selectors' => [
515
  $this->add_control(
516
  'grid_items_style_border_radius',
517
  [
518
+ 'label' => __( 'Border Radius', 'textdomain' ),
519
  'type' => Controls_Manager::DIMENSIONS,
520
  'size_units' => [ 'px', '%' ],
521
  'selectors' => [
537
  $this->start_controls_tab(
538
  'tab_background_normal',
539
  [
540
+ 'label' => __( 'Normal', 'textdomain' ),
541
  ]
542
  );
543
 
563
  $this->start_controls_tab(
564
  'tab_background_hover',
565
  [
566
+ 'label' => __( 'Hover', 'textdomain' ),
567
  ]
568
  );
569
 
587
  $this->add_control(
588
  'hover_transition',
589
  [
590
+ 'label' => __( 'Transition Duration', 'textdomain' ),
591
  'type' => Controls_Manager::SLIDER,
592
  'default' => [
593
  'size' => 0.3,
vendor/codeinwp/elementor-extra-widgets/widgets/woo/best-products.php CHANGED
@@ -12,11 +12,11 @@ class Woo_Best_Products extends EAW_WP_Widget {
12
  public function __construct() {
13
  $widget_ops = array(
14
  'classname' => 'woo_best_products',
15
- 'description' => __( 'Woo Best Selling Products - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
16
  'customize_selective_refresh' => true,
17
  );
18
 
19
- parent::__construct( 'woo-best-products', __( 'Woo Best Selling Products', 'themeisle-companion' ), $widget_ops );
20
  $this->alt_option_name = 'woo_best_products';
21
 
22
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -47,7 +47,7 @@ class Woo_Best_Products extends EAW_WP_Widget {
47
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
48
 
49
  if ( '' == $title ) {
50
- $title = __( 'Best Sellers', 'themeisle-companion' );
51
  }
52
 
53
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
@@ -138,19 +138,19 @@ class Woo_Best_Products extends EAW_WP_Widget {
138
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
139
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
140
  <p>
141
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
142
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
143
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
144
  </p>
145
 
146
  <p>
147
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'themeisle-companion' ); ?></label>
148
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
149
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
150
  size="3"/></p>
151
 
152
  <p>
153
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
155
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
156
  size="3"/>
12
  public function __construct() {
13
  $widget_ops = array(
14
  'classname' => 'woo_best_products',
15
+ 'description' => __( 'Woo Best Selling Products - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
16
  'customize_selective_refresh' => true,
17
  );
18
 
19
+ parent::__construct( 'woo-best-products', __( 'Woo Best Selling Products', 'textdomain' ), $widget_ops );
20
  $this->alt_option_name = 'woo_best_products';
21
 
22
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
47
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
48
 
49
  if ( '' == $title ) {
50
+ $title = __( 'Best Sellers', 'textdomain' );
51
  }
52
 
53
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
138
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
139
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
140
  <p>
141
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
142
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
143
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
144
  </p>
145
 
146
  <p>
147
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'textdomain' ); ?></label>
148
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
149
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
150
  size="3"/></p>
151
 
152
  <p>
153
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
155
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
156
  size="3"/>
vendor/codeinwp/elementor-extra-widgets/widgets/woo/featured-products.php CHANGED
@@ -10,11 +10,11 @@ class Woo_Featured_Products extends EAW_WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_featured_products',
13
- 'description' => __( 'Woo Featured Products - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'woo-featured-products', __( 'Woo Featured Products', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'woo_featured_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -52,7 +52,7 @@ class Woo_Featured_Products extends EAW_WP_Widget {
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
- $title = __( 'Recommended For You', 'themeisle-companion' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
@@ -146,19 +146,19 @@ class Woo_Featured_Products extends EAW_WP_Widget {
146
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
147
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
148
  <p>
149
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
150
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
151
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
152
  </p>
153
 
154
  <p>
155
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'themeisle-companion' ); ?></label>
156
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
157
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
158
  size="3"/></p>
159
 
160
  <p>
161
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
162
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
163
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
164
  size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_featured_products',
13
+ 'description' => __( 'Woo Featured Products - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'woo-featured-products', __( 'Woo Featured Products', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'woo_featured_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
+ $title = __( 'Recommended For You', 'textdomain' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
146
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
147
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
148
  <p>
149
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
150
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
151
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
152
  </p>
153
 
154
  <p>
155
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'textdomain' ); ?></label>
156
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
157
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
158
  size="3"/></p>
159
 
160
  <p>
161
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
162
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
163
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
164
  size="3"/></p>
vendor/codeinwp/elementor-extra-widgets/widgets/woo/popular-products.php CHANGED
@@ -10,11 +10,11 @@ class Woo_Popular_Products extends EAW_WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_popular_products',
13
- 'description' => __( 'Woo Popular Products - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'woo-popular-products', __( 'Woo Popular Products', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'woo_popular_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -52,7 +52,7 @@ class Woo_Popular_Products extends EAW_WP_Widget {
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
- $title = __( 'Fan Favorites', 'themeisle-companion' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
@@ -146,19 +146,19 @@ class Woo_Popular_Products extends EAW_WP_Widget {
146
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
147
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
148
  <p>
149
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
150
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
151
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
152
  </p>
153
 
154
  <p>
155
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'themeisle-companion' ); ?></label>
156
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
157
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
158
  size="3"/></p>
159
 
160
  <p>
161
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
162
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
163
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
164
  size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_popular_products',
13
+ 'description' => __( 'Woo Popular Products - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'woo-popular-products', __( 'Woo Popular Products', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'woo_popular_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
+ $title = __( 'Fan Favorites', 'textdomain' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
146
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
147
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
148
  <p>
149
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
150
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
151
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
152
  </p>
153
 
154
  <p>
155
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'textdomain' ); ?></label>
156
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
157
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
158
  size="3"/></p>
159
 
160
  <p>
161
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
162
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
163
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
164
  size="3"/></p>
vendor/codeinwp/elementor-extra-widgets/widgets/woo/products-categories.php CHANGED
@@ -10,11 +10,11 @@ class Woo_Product_Categories extends EAW_WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_product_categories',
13
- 'description' => __( 'Woo Product Categories - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'woo-product-categories', __( 'Woo Product Categories', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'woo_product_categories';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -52,7 +52,7 @@ class Woo_Product_Categories extends EAW_WP_Widget {
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
- $title = __( 'Shop By Categories', 'themeisle-companion' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 3;
@@ -148,19 +148,19 @@ class Woo_Product_Categories extends EAW_WP_Widget {
148
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 3;
149
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 3; ?>
150
  <p>
151
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
152
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
153
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
154
  </p>
155
 
156
  <p>
157
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of categories to show:', 'themeisle-companion' ); ?></label>
158
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
159
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
160
  size="3"/></p>
161
 
162
  <p>
163
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
164
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
165
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
166
  size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_product_categories',
13
+ 'description' => __( 'Woo Product Categories - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'woo-product-categories', __( 'Woo Product Categories', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'woo_product_categories';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
+ $title = __( 'Shop By Categories', 'textdomain' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 3;
148
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 3;
149
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 3; ?>
150
  <p>
151
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
152
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
153
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
154
  </p>
155
 
156
  <p>
157
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of categories to show:', 'textdomain' ); ?></label>
158
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
159
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
160
  size="3"/></p>
161
 
162
  <p>
163
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
164
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
165
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
166
  size="3"/></p>
vendor/codeinwp/elementor-extra-widgets/widgets/woo/recent-products.php CHANGED
@@ -10,11 +10,11 @@ class Woo_Recent_Products extends EAW_WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_recent_products',
13
- 'description' => __( 'Woo Recent Products - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'woo-recent-products', __( 'Woo Recent Products', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'woo_recent_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -52,7 +52,7 @@ class Woo_Recent_Products extends EAW_WP_Widget {
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
- $title = __( 'New In', 'themeisle-companion' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
@@ -144,19 +144,19 @@ class Woo_Recent_Products extends EAW_WP_Widget {
144
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
145
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
146
  <p>
147
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
148
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
149
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
150
  </p>
151
 
152
  <p>
153
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'themeisle-companion' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
155
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
156
  size="3"/></p>
157
 
158
  <p>
159
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
160
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
161
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
162
  size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_recent_products',
13
+ 'description' => __( 'Woo Recent Products - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'woo-recent-products', __( 'Woo Recent Products', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'woo_recent_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
+ $title = __( 'New In', 'textdomain' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
144
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
145
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
146
  <p>
147
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
148
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
149
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
150
  </p>
151
 
152
  <p>
153
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'textdomain' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
155
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
156
  size="3"/></p>
157
 
158
  <p>
159
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
160
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
161
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
162
  size="3"/></p>
vendor/codeinwp/elementor-extra-widgets/widgets/woo/sale-products.php CHANGED
@@ -10,11 +10,11 @@ class Woo_Sale_Products extends EAW_WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_sale_products',
13
- 'description' => __( 'Woo On Sale Products - designed for use with the Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'woo-sale-products', __( 'Woo On Sale Products', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'woo_sale_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -52,7 +52,7 @@ class Woo_Sale_Products extends EAW_WP_Widget {
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
- $title = __( 'On Sale', 'themeisle-companion' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
@@ -144,19 +144,19 @@ class Woo_Sale_Products extends EAW_WP_Widget {
144
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
145
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
146
  <p>
147
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
148
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
149
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
150
  </p>
151
 
152
  <p>
153
- <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'themeisle-companion' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
155
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
156
  size="3"/></p>
157
 
158
  <p>
159
- <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'themeisle-companion' ); ?></label>
160
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
161
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
162
  size="3"/>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'woo_sale_products',
13
+ 'description' => __( 'Woo On Sale Products - designed for use with the Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'woo-sale-products', __( 'Woo On Sale Products', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'woo_sale_products';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
52
  $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
53
 
54
  if ( '' == $title ) {
55
+ $title = __( 'On Sale', 'textdomain' );
56
  }
57
 
58
  $limit = ( ! empty( $instance['limit'] ) ) ? absint( $instance['limit'] ) : 4;
144
  $limit = isset( $instance['limit'] ) ? absint( $instance['limit'] ) : 4;
145
  $columns = isset( $instance['columns '] ) ? absint( $instance['columns '] ) : 4; ?>
146
  <p>
147
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
148
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
149
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
150
  </p>
151
 
152
  <p>
153
+ <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e( 'Number of products to show:', 'textdomain' ); ?></label>
154
  <input id="<?php echo $this->get_field_id( 'limit' ); ?>"
155
  name="<?php echo $this->get_field_name( 'limit' ); ?>" type="text" value="<?php echo $limit; ?>"
156
  size="3"/></p>
157
 
158
  <p>
159
+ <label for="<?php echo $this->get_field_id( 'columns' ); ?>"><?php _e( 'Number of Columns:', 'textdomain' ); ?></label>
160
  <input id="<?php echo $this->get_field_id( 'columns' ); ?>"
161
  name="<?php echo $this->get_field_name( 'columns' ); ?>" type="text" value="<?php echo $columns; ?>"
162
  size="3"/>
vendor/codeinwp/elementor-extra-widgets/widgets/wp/eaw-posts-widget-plus.php CHANGED
@@ -10,11 +10,11 @@ class EAW_Recent_Posts_Plus extends WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'widget_recent_posts_plus',
13
- 'description' => __( 'Recent posts with featured image - ideal for use with Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'eaw-recent-posts-plus', __( 'EAW: Elementor Posts By Category', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'widget_recent_entries_plus';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -154,19 +154,19 @@ class EAW_Recent_Posts_Plus extends WP_Widget {
154
  $show_excerpt = isset( $instance['show_excerpt'] ) ? (bool) $instance['show_excerpt'] : false;
155
  $category = isset( $instance['category'] ) ? $instance['category'] : ''; ?>
156
  <p>
157
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
158
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
159
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
160
  </p>
161
 
162
  <p>
163
- <label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:', 'themeisle-companion' ); ?></label>
164
  <input id="<?php echo $this->get_field_id( 'number' ); ?>"
165
  name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>"
166
  size="3"/></p>
167
 
168
  <p>
169
- <label for="rpjc_widget_cat_recent_posts_category"><?php _e( 'Category', 'themeisle-companion' ); ?>:</label>
170
  <?php
171
  wp_dropdown_categories(
172
  array(
@@ -184,11 +184,11 @@ class EAW_Recent_Posts_Plus extends WP_Widget {
184
  <p><input class="checkbox" type="checkbox" <?php checked( $show_excerpt ); ?>
185
  id="<?php echo $this->get_field_id( 'show_excerpt' ); ?>"
186
  name="<?php echo $this->get_field_name( 'show_excerpt' ); ?>"/>
187
- <label for="<?php echo $this->get_field_id( 'show_dexcerpt' ); ?>"><?php _e( 'Display post excerpt?', 'themeisle-companion' ); ?></label>
188
  </p>
189
 
190
  <p>
191
- <label for="<?php echo $this->get_field_id( 'excerptcount' ); ?>"><?php _e( 'Excerpt length to show:', 'themeisle-companion' ); ?></label>
192
  <input id="<?php echo $this->get_field_id( 'excerptcount' ); ?>"
193
  name="<?php echo $this->get_field_name( 'excerptcount' ); ?>" type="text"
194
  value="<?php echo $excerptcount; ?>" size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'widget_recent_posts_plus',
13
+ 'description' => __( 'Recent posts with featured image - ideal for use with Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'eaw-recent-posts-plus', __( 'EAW: Elementor Posts By Category', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'widget_recent_entries_plus';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
154
  $show_excerpt = isset( $instance['show_excerpt'] ) ? (bool) $instance['show_excerpt'] : false;
155
  $category = isset( $instance['category'] ) ? $instance['category'] : ''; ?>
156
  <p>
157
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
158
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
159
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
160
  </p>
161
 
162
  <p>
163
+ <label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:', 'textdomain' ); ?></label>
164
  <input id="<?php echo $this->get_field_id( 'number' ); ?>"
165
  name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>"
166
  size="3"/></p>
167
 
168
  <p>
169
+ <label for="rpjc_widget_cat_recent_posts_category"><?php _e( 'Category', 'textdomain' ); ?>:</label>
170
  <?php
171
  wp_dropdown_categories(
172
  array(
184
  <p><input class="checkbox" type="checkbox" <?php checked( $show_excerpt ); ?>
185
  id="<?php echo $this->get_field_id( 'show_excerpt' ); ?>"
186
  name="<?php echo $this->get_field_name( 'show_excerpt' ); ?>"/>
187
+ <label for="<?php echo $this->get_field_id( 'show_dexcerpt' ); ?>"><?php _e( 'Display post excerpt?', 'textdomain' ); ?></label>
188
  </p>
189
 
190
  <p>
191
+ <label for="<?php echo $this->get_field_id( 'excerptcount' ); ?>"><?php _e( 'Excerpt length to show:', 'textdomain' ); ?></label>
192
  <input id="<?php echo $this->get_field_id( 'excerptcount' ); ?>"
193
  name="<?php echo $this->get_field_name( 'excerptcount' ); ?>" type="text"
194
  value="<?php echo $excerptcount; ?>" size="3"/></p>
vendor/codeinwp/elementor-extra-widgets/widgets/wp/eaw-posts-widget.php CHANGED
@@ -10,11 +10,11 @@ class EAW_Recent_Posts extends WP_Widget {
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'widget_recent_posts',
13
- 'description' => __( 'Recent posts with featured image - ideal for use with Elementor Page Builder plugin', 'themeisle-companion' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
- parent::__construct( 'eaw-recent-posts', __( 'EAW: Elementor Recent Posts', 'themeisle-companion' ), $widget_ops );
18
  $this->alt_option_name = 'widget_recent_entries';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
@@ -149,13 +149,13 @@ class EAW_Recent_Posts extends WP_Widget {
149
  $excerptcount = isset( $instance['excerptcount '] ) ? absint( $instance['excerptcount '] ) : 20;
150
  $show_excerpt = isset( $instance['show_excerpt'] ) ? (bool) $instance['show_excerpt'] : false; ?>
151
  <p>
152
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'themeisle-companion' ); ?></label>
153
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
154
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
155
  </p>
156
 
157
  <p>
158
- <label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:', 'themeisle-companion' ); ?></label>
159
  <input id="<?php echo $this->get_field_id( 'number' ); ?>"
160
  name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>"
161
  size="3"/></p>
@@ -163,11 +163,11 @@ class EAW_Recent_Posts extends WP_Widget {
163
  <p><input class="checkbox" type="checkbox" <?php checked( $show_excerpt ); ?>
164
  id="<?php echo $this->get_field_id( 'show_excerpt' ); ?>"
165
  name="<?php echo $this->get_field_name( 'show_excerpt' ); ?>"/>
166
- <label for="<?php echo $this->get_field_id( 'show_dexcerpt' ); ?>"><?php _e( 'Display post excerpt?', 'themeisle-companion' ); ?></label>
167
  </p>
168
 
169
  <p>
170
- <label for="<?php echo $this->get_field_id( 'excerptcount' ); ?>"><?php _e( 'Excerpt length to show:', 'themeisle-companion' ); ?></label>
171
  <input id="<?php echo $this->get_field_id( 'excerptcount' ); ?>"
172
  name="<?php echo $this->get_field_name( 'excerptcount' ); ?>" type="text"
173
  value="<?php echo $excerptcount; ?>" size="3"/></p>
10
  public function __construct() {
11
  $widget_ops = array(
12
  'classname' => 'widget_recent_posts',
13
+ 'description' => __( 'Recent posts with featured image - ideal for use with Elementor Page Builder plugin', 'textdomain' ),
14
  'customize_selective_refresh' => true,
15
  );
16
 
17
+ parent::__construct( 'eaw-recent-posts', __( 'EAW: Elementor Recent Posts', 'textdomain' ), $widget_ops );
18
  $this->alt_option_name = 'widget_recent_entries';
19
 
20
  add_action( 'save_post', array( $this, 'flush_widget_cache' ) );
149
  $excerptcount = isset( $instance['excerptcount '] ) ? absint( $instance['excerptcount '] ) : 20;
150
  $show_excerpt = isset( $instance['show_excerpt'] ) ? (bool) $instance['show_excerpt'] : false; ?>
151
  <p>
152
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'textdomain' ); ?></label>
153
  <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
154
  name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>"/>
155
  </p>
156
 
157
  <p>
158
+ <label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:', 'textdomain' ); ?></label>
159
  <input id="<?php echo $this->get_field_id( 'number' ); ?>"
160
  name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>"
161
  size="3"/></p>
163
  <p><input class="checkbox" type="checkbox" <?php checked( $show_excerpt ); ?>
164
  id="<?php echo $this->get_field_id( 'show_excerpt' ); ?>"
165
  name="<?php echo $this->get_field_name( 'show_excerpt' ); ?>"/>
166
+ <label for="<?php echo $this->get_field_id( 'show_dexcerpt' ); ?>"><?php _e( 'Display post excerpt?', 'textdomain' ); ?></label>
167
  </p>
168
 
169
  <p>
170
+ <label for="<?php echo $this->get_field_id( 'excerptcount' ); ?>"><?php _e( 'Excerpt length to show:', 'textdomain' ); ?></label>
171
  <input id="<?php echo $this->get_field_id( 'excerptcount' ); ?>"
172
  name="<?php echo $this->get_field_name( 'excerptcount' ); ?>" type="text"
173
  value="<?php echo $excerptcount; ?>" size="3"/></p>
vendor/codeinwp/full-width-page-templates/README.md DELETED
@@ -1,119 +0,0 @@
1
- # Full-Width Templates
2
- -------------
3
- A composer library which injects, in WordPress Dashboard, a Full-Width option in the Page Template selector.
4
-
5
- [![Codacy Badge](https://api.codacy.com/project/badge/Grade/ff19f3a4a9724f5c97f88d64fbbc1493)](https://www.codacy.com/app/andrei.lupu/full-width-page-templates?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Codeinwp/full-width-page-templates&amp;utm_campaign=Badge_Grade)
6
-
7
- #### Supported Builders:
8
- * A plain simple WordPress page
9
- * Elementor
10
-
11
- ### Compatible themes?
12
- At this moment this library ensures compatibility with the follwing WordPress themes(and more to come):
13
- * [Hestia](https://wordpress.org/themes/hestia/) - by ThemeIsle
14
- * [Hestia Pro](https://themeisle.com/themes/hestia-pro/) - by ThemeIsle
15
- * [Zerif Lite](https://themeisle.com/themes/zerif-lite) - by ThemeIsle
16
- * [ShopIsle](https://wordpress.org/themes/shop-isle/) - by ThemeIsle
17
- * [Orfeo](https://themeisle.com/themes/orfeo) - by ThemeIsle
18
- * [Edge](https://wordpress.org/themes/edge/) - By themefreesia
19
- * [Experon](https://wordpress.org/themes/experon/) - ThinkUpThemes
20
- * [Genesis](http://my.studiopress.com/themes/genesis/) - By StudioPress
21
- * [GeneratePress](https://wordpress.org/themes/generatepress/) - By Tom Usborne
22
- * [Storefront](https://wordpress.org/themes/storefront/) - by WooThemes/Automattic
23
- * [TwentyTwelve](https://wordpress.org/themes/twentytwelve/) - by WordPress.org
24
- * [TwentyThirteen](https://wordpress.org/themes/twentythirteen/) - by WordPress.org
25
- * [TwentyFourteen](https://wordpress.org/themes/twentyfourteen/) - by WordPress.org
26
- * [TwentyFifteen](https://wordpress.org/themes/twentyfifteen/) - by WordPress.org
27
- * [TwentySixteen](https://wordpress.org/themes/twentysixteen/) - by WordPress.org
28
- * [TwentySeventeen](https://wordpress.org/themes/twentyseventeen/) - by WordPress.org
29
- * [Vantage](https://wordpress.org/themes/vantage/) - by Greg Priday
30
- * [Virtue](https://wordpress.org/themes/virtue/) - by Kadence Themes
31
- * [Enlightenment](https://wordpress.org/themes/enlightenment/) - by Daniel Tara
32
- * [Actions](https://wordpress.org/themes/actions/) - by WPDevHQ
33
- * [ActionsPro](https://wpdevhq.com/themes/actions-pro/) - by WPDevHQ
34
- * [Kale](https://wordpress.org/themes/kale/) - by lyrathemes
35
- * [InVogue](https://wordpress.org/themes/invogue) - by Kaira
36
- * [Universal-Store](https://wordpress.org/themes/universal-store/) - by Themes4WP
37
- * [Editorial](https://wordpress.org/themes/editorial/) - by Mystery Themes
38
- * [Renden Business](https://wordpress.org/themes/renden-business/) - by ThinkUpThemes
39
- * [Spacious](https://wordpress.org/themes/spacious/) - by ThemeGrill
40
- * [Flash](https://wordpress.org/themes/spacious/) - by ThemeGrill
41
- * [Writee](https://wordpress.org/themes/writee/) - by Scissor Themes
42
- * [VT Blogging](https://wordpress.org/themes/vt-blogging/) - by VolThemes
43
- * [One Page Express](https://wordpress.org/themes/one-page-express/) - by horearadu
44
- * [Primer](https://wordpress.org/themes/primer/) - by GoDaddy
45
- * [Vantage](https://wordpress.org/themes/vantage/) - by SiteOrigin
46
- * [Customizr](https://wordpress.org/themes/customizr/) - by Nicolas Guillaume
47
- * [Nikko Portfolio](https://wordpress.org/themes/nikko-portfolio/) - by Colormelon
48
- * [Poseidon](https://wordpress.org/themes/poseidon/) - by ThemeZee
49
- * [Envo Business](https://wordpress.org/themes/envo-business/) - by EnvoThemes
50
- * [Hueman](https://wordpress.org/themes/hueman/) - by Nicolas Guillaume
51
- * [News Portal](https://wordpress.org/themes/news-portal/) - by Mystery Themes
52
- * [Illdy](https://wordpress.org/themes/illdy/) - by Silkalns
53
- * [Envy Blog](https://wordpress.org/themes/envy-blog/) - by Precise Themes
54
- * [Avant](https://wordpress.org/themes/avant/) - by Kaira
55
- * [OceanWP](https://wordpress.org/themes/oceanwp/) - by oceanwp
56
- * [Astra](https://wordpress.org/themes/astra/) - by Brainstorm Force
57
- * [Mesmerize](https://wordpress.org/themes/mesmerize/) - by horearadu
58
- * [Sydney](https://wordpress.org/themes/sydney/) - by athemes
59
- * [Ashe](https://wordpress.org/themes/ashe/) - by Royal Flush
60
- * [Lodestar](https://wordpress.org/themes/lodestar/) - by Automattic
61
- * [Total](https://wordpress.org/themes/total/) - by Hash Themes
62
- * [Consulting](https://wordpress.org/themes/consulting/) - by ThinkUpThemes
63
- * [ColorMag](https://wordpress.org/themes/colormag/) - by ThemeGrill
64
- * [OnePress](https://wordpress.org/themes/onepress/) - by FameThemes
65
- * [Shapely](https://wordpress.org/themes/shapely/) - by Silkalns
66
- * [HitMag](https://wordpress.org/themes/hitmag/) - by ThemezHut
67
- * [Divi](https://www.elegantthemes.com/gallery/divi) - by Elegant Themes
68
-
69
- ### How to use it?
70
- Well, this is a Composer library so you will need to add this it as a dependency on your project( either plugin or a theme ) like this:
71
- ```
72
- "require": {
73
- "codeinwp/full-width-page-templates": "master"
74
- }
75
- ```
76
- And run a via the terminal a `composer install` and hope that you have Composer installed globally.
77
-
78
- The last step is the initialization. Call this wherever you like:
79
- ```
80
- if ( class_exists( '\ThemeIsle\FullWidthTemplates' ) ) {
81
- \ThemeIsle\FullWidthTemplates::instance();
82
- }
83
- ```
84
-
85
- ### Work with this repository?
86
- To work directly with this repository, I use and recommend the following way.
87
-
88
- Clone this repository inside the [mu-plugins](https://codex.wordpress.org/Must_Use_Plugins) WordPress directory. This way, we can be sure that the cloned version of this
89
- library will have priority before the one loaded from Composer.
90
- After cloning you need to create a php file, like `load-fwt-lib.php`(I'm so bad at naming) and inside you will need to require the loader like this:
91
- ```
92
- <?php
93
- require_once( dirname( __FILE__ ) . '/full-width-page-templates/load.php' );
94
- ```
95
-
96
- ### How to make a theme compatible with the full-width template?
97
-
98
- To add a new theme to the compatibility list, clone this repository(as we talked above) create a new directory with the
99
- theme's name in the `themes` directory.
100
- This theme directory supports two files:
101
-
102
- * `inline-style.php` - A file loaded at the right moment to add an inline style
103
- * `functions.php` - An optional file to add actions and filters.
104
-
105
- Our goal here is to add a CSS snippet which will make sure that the page container width full.
106
- So make use of the `inline-style.php` and add a snipet like this:
107
- ```
108
- <?php
109
- /* Support for the {Theme Name} theme */
110
- $style = '.page-template-builder-fullwidth-std .site-content {
111
- width: 100%;
112
- padding: 0;
113
- margin:0;
114
- }';
115
- wp_add_inline_style( '{theme-style}', $style );
116
- ```
117
- Where `{theme-style}` must be an enqueued style.(For example, Twenty Seventeen has 'twentyseventeen-style')
118
-
119
- Don't forget to add the new theme to this README.md ;)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/full-width-page-templates/builders/class-elementor-full-width-templates.php CHANGED
@@ -104,7 +104,7 @@ class Elementor {
104
  */
105
  public function __clone() {
106
  // Cloning instances of the class is forbidden.
107
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
108
  }
109
 
110
  /**
@@ -116,6 +116,6 @@ class Elementor {
116
  */
117
  public function __wakeup() {
118
  // Unserializing instances of the class is forbidden.
119
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
120
  }
121
  }
104
  */
105
  public function __clone() {
106
  // Cloning instances of the class is forbidden.
107
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
108
  }
109
 
110
  /**
116
  */
117
  public function __wakeup() {
118
  // Unserializing instances of the class is forbidden.
119
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
120
  }
121
  }
vendor/codeinwp/full-width-page-templates/builders/class-none-full-width-templates.php CHANGED
@@ -76,7 +76,7 @@ class None {
76
  */
77
  public function __clone() {
78
  // Cloning instances of the class is forbidden.
79
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
80
  }
81
 
82
  /**
@@ -88,6 +88,6 @@ class None {
88
  */
89
  public function __wakeup() {
90
  // Unserializing instances of the class is forbidden.
91
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
92
  }
93
  }
76
  */
77
  public function __clone() {
78
  // Cloning instances of the class is forbidden.
79
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
80
  }
81
 
82
  /**
88
  */
89
  public function __wakeup() {
90
  // Unserializing instances of the class is forbidden.
91
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
92
  }
93
  }
vendor/codeinwp/full-width-page-templates/class-full-width-templates.php CHANGED
@@ -39,8 +39,8 @@ if ( ! class_exists( '\ThemeIsle\FullWidthTemplates' ) ) {
39
 
40
  // Add your templates to this array.
41
  $this->templates = apply_filters( 'fwpt_templates_list', array(
42
- 'templates/builder-fullwidth.php' => html_entity_decode( '&harr; ' ) . __( 'Page Builder - Full Width - Blank', 'themeisle-companion' ),
43
- 'templates/builder-fullwidth-std.php' => html_entity_decode( '&harr; ' ) . __( 'Page Builder - Full Width', 'themeisle-companion' ),
44
  ) );
45
 
46
  add_filter( 'theme_page_templates', array( $this, 'add_pages_in_dropdown' ) );
@@ -194,7 +194,7 @@ if ( ! class_exists( '\ThemeIsle\FullWidthTemplates' ) ) {
194
  */
195
  public function __clone() {
196
  // Cloning instances of the class is forbidden.
197
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
198
  }
199
 
200
  /**
@@ -206,7 +206,7 @@ if ( ! class_exists( '\ThemeIsle\FullWidthTemplates' ) ) {
206
  */
207
  public function __wakeup() {
208
  // Unserializing instances of the class is forbidden.
209
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'themeisle-companion' ), '1.0.0' );
210
  }
211
  }
212
  }
39
 
40
  // Add your templates to this array.
41
  $this->templates = apply_filters( 'fwpt_templates_list', array(
42
+ 'templates/builder-fullwidth.php' => html_entity_decode( '&harr; ' ) . __( 'Page Builder - Full Width - Blank', 'textdomain' ),
43
+ 'templates/builder-fullwidth-std.php' => html_entity_decode( '&harr; ' ) . __( 'Page Builder - Full Width', 'textdomain' ),
44
  ) );
45
 
46
  add_filter( 'theme_page_templates', array( $this, 'add_pages_in_dropdown' ) );
194
  */
195
  public function __clone() {
196
  // Cloning instances of the class is forbidden.
197
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
198
  }
199
 
200
  /**
206
  */
207
  public function __wakeup() {
208
  // Unserializing instances of the class is forbidden.
209
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; huh?', 'textdomain' ), '1.0.0' );
210
  }
211
  }
212
  }
vendor/codeinwp/gutenberg-blocks/CHANGELOG.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##### [Version 1.3.5](https://github.com/Codeinwp/gutenberg-blocks/compare/v1.3.4...v1.3.5) (2020-02-03)
2
+
3
+ * Fix issue with library autoloading in different plugins
4
+
5
+ ##### [Version 1.3.4](https://github.com/Codeinwp/gutenberg-blocks/compare/v1.3.3...v1.3.4) (2020-01-09)
6
+
7
+ Fix issue with icons not appearing in Chrome
8
+ Fix issue with icons not appearing in Chrome
9
+
10
+ ##### [Version 1.3.3](https://github.com/Codeinwp/gutenberg-blocks/compare/v1.3.2...v1.3.3) (2020-01-09)
11
+
12
+ Fix composer loading condition
13
+
14
+ ##### [Version 1.3.2](https://github.com/Codeinwp/gutenberg-blocks/compare/v1.3.1...v1.3.2) (2020-01-09)
15
+
16
+ - Add Slider Transforms [#142](https://github.com/Codeinwp/gutenberg-blocks/issues/142)
17
+ - Improve Onboarding Experience & New Icons: [#144](https://github.com/Codeinwp/gutenberg-blocks/issues/144)
18
+ - Remove deprecated blocks: [#103](https://github.com/Codeinwp/gutenberg-blocks/issues/103)
19
+ - React Hooks: [#145](https://github.com/Codeinwp/gutenberg-blocks/issues/145)
20
+ - Remove background from Posts Block: [#149](https://github.com/Codeinwp/gutenberg-blocks/issues/149)
21
+ - Allow changing Title tag in Posts Block: [#147](https://github.com/Codeinwp/gutenberg-blocks/issues/147)
22
+ - Change Category from H6 to Span: [#148](https://github.com/Codeinwp/gutenberg-blocks/issues/148)
23
+ - Option to remove the image's box-shadow: [#146](https://github.com/Codeinwp/gutenberg-blocks/issues/146)
24
+ - Fix domino effect in Sizing Component: [#151](https://github.com/Codeinwp/gutenberg-blocks/issues/151)
vendor/codeinwp/gutenberg-blocks/Readme.md DELETED
@@ -1,19 +0,0 @@
1
- ThemeIsle Gutenberg Blocks
2
- --------------------------
3
-
4
- General structure of this module should be as the following:
5
-
6
- * Load the transpiled code from the `build` dir, aka the "dist" folder.
7
- * The functionality for each block should be isolated in it's own folder inside the `blocks` dir.
8
- * If a block needs server side rendering than it should have an extension class of the `Base_Block` class.
9
- * Any server side data handling should happen in the `store`.
10
-
11
- You can include this library like this::
12
-
13
- ```
14
- if ( class_exists( '\ThemeIsle\GutenbergBlocks' ) ) {
15
- \ThemeIsle\GutenbergBlocks::instance( __( 'Orbit Fox', 'textdomain' ) );
16
- }
17
- ```
18
-
19
- You also need to enqueue Font Awesome 5 for this module to work. Font Awesome 4 shims are recommended to avoid conflict with plugins, but not required.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/gutenberg-blocks/assets/glide/glide.core.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .glide{position:relative;width:100%;box-sizing:border-box}.glide *{box-sizing:inherit}.glide__track{overflow:hidden}.glide__slides{position:relative;width:100%;list-style:none;backface-visibility:hidden;transform-style:preserve-3d;touch-action:pan-Y;overflow:hidden;padding:0;white-space:nowrap;display:flex;flex-wrap:nowrap;will-change:transform}.glide__slides--dragging{user-select:none}.glide__slide{width:100%;height:100%;flex-shrink:0;white-space:normal;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.glide__slide a{user-select:none;-webkit-user-drag:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows{-webkit-touch-callout:none;user-select:none}.glide__bullets{-webkit-touch-callout:none;user-select:none}.glide--rtl{direction:rtl}
vendor/codeinwp/gutenberg-blocks/assets/glide/glide.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*!
2
+ * Glide.js v3.3.0
3
+ * (c) 2013-2019 Jędrzej Chałubek <jedrzej.chalubek@gmail.com> (http://jedrzejchalubek.com/)
4
+ * Released under the MIT License.
5
+ */
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Glide=e()}(this,function(){"use strict";var n={type:"slider",startAt:0,perView:1,focusAt:0,gap:10,autoplay:!1,hoverpause:!0,keyboard:!0,bound:!1,swipeThreshold:80,dragThreshold:120,perSwipe:"|",touchRatio:.5,touchAngle:45,animationDuration:400,rewind:!0,rewindDuration:800,animationTimingFunc:"cubic-bezier(.165, .840, .440, 1)",waitForTransition:!0,throttle:10,direction:"ltr",peek:0,breakpoints:{},classes:{swipeable:"glide--swipeable",dragging:"glide--dragging",direction:{ltr:"glide--ltr",rtl:"glide--rtl"},type:{slider:"glide--slider",carousel:"glide--carousel"},slide:{clone:"glide__slide--clone",active:"glide__slide--active"},arrow:{disabled:"glide__arrow--disabled"},nav:{active:"glide__bullet--active"}}};function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t=function(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),t};function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var a=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function y(t){return parseInt(t)}function o(t){return"string"==typeof t}function u(t){var e=void 0===t?"undefined":r(t);return"function"===e||"object"===e&&!!t}function c(t){return"function"==typeof t}function l(t){return void 0===t}function f(t){return t.constructor===Array}function d(t,e,n){Object.defineProperty(t,e,n)}function h(t,e){var n=a({},t,e);return e.hasOwnProperty("classes")&&(n.classes=a({},t.classes,e.classes),e.classes.hasOwnProperty("direction")&&(n.classes.direction=a({},t.classes.direction,e.classes.direction)),e.classes.hasOwnProperty("type")&&(n.classes.type=a({},t.classes.type,e.classes.type)),e.classes.hasOwnProperty("slide")&&(n.classes.slide=a({},t.classes.slide,e.classes.slide)),e.classes.hasOwnProperty("arrow")&&(n.classes.arrow=a({},t.classes.arrow,e.classes.arrow)),e.classes.hasOwnProperty("nav")&&(n.classes.nav=a({},t.classes.nav,e.classes.nav))),e.hasOwnProperty("breakpoints")&&(n.breakpoints=a({},t.breakpoints,e.breakpoints)),n}var v=(t(e,[{key:"on",value:function(t,e){if(f(t))for(var n=0;n<t.length;n++)this.on(t[n],e);this.hop.call(this.events,t)||(this.events[t]=[]);var i=this.events[t].push(e)-1;return{remove:function(){delete this.events[t][i]}}}},{key:"emit",value:function(t,e){if(f(t))for(var n=0;n<t.length;n++)this.emit(t[n],e);this.hop.call(this.events,t)&&this.events[t].forEach(function(t){t(e||{})})}}]),e);function e(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.events=t,this.hop=t.hasOwnProperty}var p=(t(m,[{key:"mount",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};return this._e.emit("mount.before"),u(e)&&(this._c=function(t,e,n){var i={};for(var r in e)c(e[r])&&(i[r]=e[r](t,i,n));for(var s in i)c(i[s].mount)&&i[s].mount();return i}(this,e,this._e)),this._e.emit("mount.after"),this}},{key:"mutate",value:function(t){var e=0<arguments.length&&void 0!==t?t:[];return f(e)&&(this._t=e),this}},{key:"update",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};return this.settings=h(this.settings,e),e.hasOwnProperty("startAt")&&(this.index=e.startAt),this._e.emit("update"),this}},{key:"go",value:function(t){return this._c.Run.make(t),this}},{key:"move",value:function(t){return this._c.Transition.disable(),this._c.Move.make(t),this}},{key:"destroy",value:function(){return this._e.emit("destroy"),this}},{key:"play",value:function(t){var e=0<arguments.length&&void 0!==t&&t;return e&&(this.settings.autoplay=e),this._e.emit("play"),this}},{key:"pause",value:function(){return this._e.emit("pause"),this}},{key:"disable",value:function(){return this.disabled=!0,this}},{key:"enable",value:function(){return this.disabled=!1,this}},{key:"on",value:function(t,e){return this._e.on(t,e),this}},{key:"isType",value:function(t){return this.settings.type===t}},{key:"settings",get:function(){return this._o},set:function(t){u(t)&&(this._o=t)}},{key:"index",get:function(){return this._i},set:function(t){this._i=y(t)}},{key:"type",get:function(){return this.settings.type}},{key:"disabled",get:function(){return this._d},set:function(t){this._d=!!t}}]),m);function m(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};i(this,m),this._c={},this._t=[],this._e=new v,this.disabled=!1,this.selector=t,this.settings=h(n,e),this.index=this.settings.startAt}function g(){return(new Date).getTime()}function b(n,i,r){var s=void 0,o=void 0,u=void 0,a=void 0,c=0;r=r||{};function l(){c=!1===r.leading?0:g(),s=null,a=n.apply(o,u),s||(o=u=null)}function t(){var t=g();c||!1!==r.leading||(c=t);var e=i-(t-c);return o=this,u=arguments,e<=0||i<e?(s&&(clearTimeout(s),s=null),c=t,a=n.apply(o,u),s||(o=u=null)):s||!1===r.trailing||(s=setTimeout(l,e)),a}return t.cancel=function(){clearTimeout(s),c=0,s=o=u=null},t}var w={ltr:["marginLeft","marginRight"],rtl:["marginRight","marginLeft"]};function _(t){if(t&&t.parentNode){for(var e=t.parentNode.firstChild,n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}return[]}function k(t){return!!(t&&t instanceof window.HTMLElement)}var S='[data-glide-el="track"]';var H=(t(T,[{key:"on",value:function(t,e,n,i){var r=3<arguments.length&&void 0!==i&&i;o(t)&&(t=[t]);for(var s=0;s<t.length;s++)this.listeners[t[s]]=n,e.addEventListener(t[s],this.listeners[t[s]],r)}},{key:"off",value:function(t,e,n){var i=2<arguments.length&&void 0!==n&&n;o(t)&&(t=[t]);for(var r=0;r<t.length;r++)e.removeEventListener(t[r],this.listeners[t[r]],i)}},{key:"destroy",value:function(){delete this.listeners}}]),T);function T(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};i(this,T),this.listeners=t}var O=["ltr","rtl"],x={">":"<","<":">","=":"="};function A(t,e){return{modify:function(t){return e.Direction.is("rtl")?-t:t}}}function P(i,r,s){var o=[function(t,n){return{modify:function(t){var e=Math.floor(t/n.Sizes.slideWidth);return t+n.Gaps.value*e}}},function(t,e){return{modify:function(t){return t+e.Clones.grow/2}}},function(n,i){return{modify:function(t){if(0<=n.settings.focusAt){var e=i.Peek.value;return u(e)?t-e.before:t-e}return t}}},function(s,o){return{modify:function(t){var e=o.Gaps.value,n=o.Sizes.width,i=s.settings.focusAt,r=o.Sizes.slideWidth;return"center"===i?t-(n/2-r/2):t-r*i-e*i}}}].concat(i._t,[A]);return{mutate:function(t){for(var e=0;e<o.length;e++){var n=o[e];c(n)&&c(n().modify)&&(t=n(i,r,s).modify(t))}return t}}}var M=!1;try{var z=Object.defineProperty({},"passive",{get:function(){M=!0}});window.addEventListener("testPassive",null,z),window.removeEventListener("testPassive",null,z)}catch(t){}var C=M,L=["touchstart","mousedown"],R=["touchmove","mousemove"],D=["touchend","touchcancel","mouseup","mouseleave"],E=["mousedown","mousemove","mouseup","mouseleave"];function j(t){return u(t)?function(n){return Object.keys(n).sort().reduce(function(t,e){return t[e]=n[e],t[e],t},{})}(t):{}}var W={Html:function(e,t){var n={mount:function(){this.root=e.selector,this.track=this.root.querySelector(S),this.slides=Array.prototype.slice.call(this.wrapper.children).filter(function(t){return!t.classList.contains(e.settings.classes.slide.clone)})}};return d(n,"root",{get:function(){return n._r},set:function(t){o(t)&&(t=document.querySelector(t)),k(t)&&(n._r=t)}}),d(n,"track",{get:function(){return n._t},set:function(t){k(t)&&(n._t=t)}}),d(n,"wrapper",{get:function(){return n.track.children[0]}}),n},Translate:function(i,r,n){var s={set:function(t){var e=P(i,r).mutate(t);r.Html.wrapper.style.transform="translate3d("+-1*e+"px, 0px, 0px)"},remove:function(){r.Html.wrapper.style.transform=""},getStartIndex:function(){var t=r.Sizes.length,e=i.index,n=i.settings.perView;return r.Run.isOffset(">")||r.Run.isOffset("|>")?t+(e-n):(e+n)%t},getTravelDistance:function(){var t=r.Sizes.slideWidth*i.settings.perView;return r.Run.isOffset(">")||r.Run.isOffset("|>")?-1*t:t}};return n.on("move",function(t){if(!i.isType("carousel")||!r.Run.isOffset())return s.set(t.movement);r.Transition.after(function(){n.emit("translate.jump"),s.set(r.Sizes.slideWidth*i.index)});var e=r.Sizes.slideWidth*r.Translate.getStartIndex();return s.set(e-r.Translate.getTravelDistance())}),n.on("destroy",function(){s.remove()}),s},Transition:function(n,i,t){var r=!1,e={compose:function(t){var e=n.settings;return r?t+" 0ms "+e.animationTimingFunc:t+" "+this.duration+"ms "+e.animationTimingFunc},set:function(t){var e=0<arguments.length&&void 0!==t?t:"transform";i.Html.wrapper.style.transition=this.compose(e)},remove:function(){i.Html.wrapper.style.transition=""},after:function(t){setTimeout(function(){t()},this.duration)},enable:function(){r=!1,this.set()},disable:function(){r=!0,this.set()}};return d(e,"duration",{get:function(){var t=n.settings;return n.isType("slider")&&i.Run.offset?t.rewindDuration:t.animationDuration}}),t.on("move",function(){e.set()}),t.on(["build.before","resize","translate.jump"],function(){e.disable()}),t.on("run",function(){e.enable()}),t.on("destroy",function(){e.remove()}),e},Direction:function(t,e,n){var i={mount:function(){this.value=t.settings.direction},resolve:function(t){var e=t.slice(0,1);return this.is("rtl")?t.split(e).join(x[e]):t},is:function(t){return this.value===t},addClass:function(){e.Html.root.classList.add(t.settings.classes.direction[this.value])},removeClass:function(){e.Html.root.classList.remove(t.settings.classes.direction[this.value])}};return d(i,"value",{get:function(){return i._v},set:function(t){-1<O.indexOf(t)&&(i._v=t)}}),n.on(["destroy","update"],function(){i.removeClass()}),n.on("update",function(){i.mount()}),n.on(["build.before","update"],function(){i.addClass()}),i},Peek:function(n,t,e){var i={mount:function(){this.value=n.settings.peek}};return d(i,"value",{get:function(){return i._v},set:function(t){u(t)?(t.before=y(t.before),t.after=y(t.after)):t=y(t),i._v=t}}),d(i,"reductor",{get:function(){var t=i.value,e=n.settings.perView;return u(t)?t.before/e+t.after/e:2*t/e}}),e.on(["resize","update"],function(){i.mount()}),i},Sizes:function(t,i,e){var n={setupSlides:function(){for(var t=this.slideWidth+"px",e=i.Html.slides,n=0;n<e.length;n++)e[n].style.width=t},setupWrapper:function(){i.Html.wrapper.style.width=this.wrapperSize+"px"},remove:function(){for(var t=i.Html.slides,e=0;e<t.length;e++)t[e].style.width="";i.Html.wrapper.style.width=""}};return d(n,"length",{get:function(){return i.Html.slides.length}}),d(n,"width",{get:function(){return i.Html.root.offsetWidth}}),d(n,"wrapperSize",{get:function(){return n.slideWidth*n.length+i.Gaps.grow+i.Clones.grow}}),d(n,"slideWidth",{get:function(){return n.width/t.settings.perView-i.Peek.reductor-i.Gaps.reductor}}),e.on(["build.before","resize","update"],function(){n.setupSlides(),n.setupWrapper()}),e.on("destroy",function(){n.remove()}),n},Gaps:function(e,s,t){var n={apply:function(t){for(var e=0,n=t.length;e<n;e++){var i=t[e].style,r=s.Direction.value;i[w[r][0]]=0!==e?this.value/2+"px":"",e!==t.length-1?i[w[r][1]]=this.value/2+"px":i[w[r][1]]=""}},remove:function(t){for(var e=0,n=t.length;e<n;e++){var i=t[e].style;i.marginLeft="",i.marginRight=""}}};return d(n,"value",{get:function(){return y(e.settings.gap)}}),d(n,"grow",{get:function(){return n.value*s.Sizes.length}}),d(n,"reductor",{get:function(){var t=e.settings.perView;return n.value*(t-1)/t}}),t.on(["build.after","update"],b(function(){n.apply(s.Html.wrapper.children)},30)),t.on("destroy",function(){n.remove(s.Html.wrapper.children)}),n},Move:function(t,i,r){var e={mount:function(){this._o=0},make:function(t){var e=this,n=0<arguments.length&&void 0!==t?t:0;this.offset=n,r.emit("move",{movement:this.value}),i.Transition.after(function(){r.emit("move.after",{movement:e.value})})}};return d(e,"offset",{get:function(){return e._o},set:function(t){e._o=l(t)?0:y(t)}}),d(e,"translate",{get:function(){return i.Sizes.slideWidth*t.index}}),d(e,"value",{get:function(){var t=this.offset,e=this.translate;return i.Direction.is("rtl")?e+t:e-t}}),r.on(["build.before","run"],function(){e.make()}),e},Clones:function(v,p,t){var e={mount:function(){this.items=[],v.isType("carousel")&&(this.items=this.collect())},collect:function(t){for(var e=0<arguments.length&&void 0!==t?t:[],n=p.Html.slides,i=v.settings,r=i.perView,s=i.classes,o=r+ +!!v.settings.peek+Math.round(r/2),u=n.slice(0,o).reverse(),a=n.slice(-1*o),c=0;c<Math.max(1,Math.floor(r/n.length));c++){for(var l=0;l<u.length;l++){var f=u[l].cloneNode(!0);f.classList.add(s.slide.clone),e.push(f)}for(var d=0;d<a.length;d++){var h=a[d].cloneNode(!0);h.classList.add(s.slide.clone),e.unshift(h)}}return e},append:function(){for(var t=this.items,e=p.Html,n=e.wrapper,i=e.slides,r=Math.floor(t.length/2),s=t.slice(0,r).reverse(),o=t.slice(-1*r).reverse(),u=p.Sizes.slideWidth+"px",a=0;a<o.length;a++)n.appendChild(o[a]);for(var c=0;c<s.length;c++)n.insertBefore(s[c],i[0]);for(var l=0;l<t.length;l++)t[l].style.width=u},remove:function(){for(var t=this.items,e=0;e<t.length;e++)p.Html.wrapper.removeChild(t[e])}};return d(e,"grow",{get:function(){return(p.Sizes.slideWidth+p.Gaps.value)*e.items.length}}),t.on("update",function(){e.remove(),e.mount(),e.append()}),t.on("build.before",function(){v.isType("carousel")&&e.append()}),t.on("destroy",function(){e.remove()}),e},Resize:function(t,e,n){var i=new H,r={mount:function(){this.bind()},bind:function(){i.on("resize",window,b(function(){n.emit("resize")},t.settings.throttle))},unbind:function(){i.off("resize",window)}};return n.on("destroy",function(){r.unbind(),i.destroy()}),r},Build:function(i,r,t){var e={mount:function(){t.emit("build.before"),this.typeClass(),this.activeClass(),t.emit("build.after")},typeClass:function(){r.Html.root.classList.add(i.settings.classes.type[i.settings.type])},activeClass:function(){var e=i.settings.classes,t=r.Html.slides[i.index];t&&(t.classList.add(e.slide.active),_(t).forEach(function(t){t.classList.remove(e.slide.active)}))},removeClasses:function(){var t=i.settings.classes,e=t.type,n=t.slide;r.Html.root.classList.remove(e[i.settings.type]),r.Html.slides.forEach(function(t){t.classList.remove(n.active)})}};return t.on(["destroy","update"],function(){e.removeClasses()}),t.on(["resize","update"],function(){e.mount()}),t.on("move.after",function(){e.activeClass()}),e},Run:function(u,n,i){var a={mount:function(){this._o=!1},make:function(t){var e=this;u.disabled||(u.settings.waitForTransition&&u.disable(),this.move=t,i.emit("run.before",this.move),this.calculate(),i.emit("run",this.move),n.Transition.after(function(){e.isStart()&&i.emit("run.start",e.move),e.isEnd()&&i.emit("run.end",e.move),e.isOffset()&&(e._o=!1,i.emit("run.offset",e.move)),i.emit("run.after",e.move),u.enable()}))},calculate:function(){var t=this.move,e=this.length,n=t.steps,i=t.direction,r=1;if("="!==i)if(">"!==i||">"!==n)if("<"!==i||"<"!==n){if("|"===i&&(r=u.settings.perView||1),">"===i||"|"===i&&">"===n){var s=function(t){var e=u.index;if(u.isType("carousel"))return e+t;return e+(t-e%t)}(r);return e<s&&(this._o=!0),void(u.index=function(t,e){var n=a.length;if(t<=n)return t;if(u.isType("carousel"))return t-(n+1);if(u.settings.rewind)return a.isBound()&&!a.isEnd()?n:0;if(a.isBound())return n;return Math.floor(n/e)*e}(s,r))}if("<"===i||"|"===i&&"<"===n){var o=function(t){var e=u.index;if(u.isType("carousel"))return e-t;return(Math.ceil(e/t)-1)*t}(r);return o<0&&(this._o=!0),void(u.index=function(t,e){var n=a.length;if(0<=t)return t;if(u.isType("carousel"))return t+(n+1);if(u.settings.rewind)return a.isBound()&&a.isStart()?n:Math.floor(n/e)*e;return 0}(o,r))}}else u.index=0;else u.index=e;else u.index=n},isStart:function(){return u.index<=0},isEnd:function(){return u.index>=this.length},isOffset:function(t){var e=0<arguments.length&&void 0!==t?t:void 0;return e?!!this._o&&("|>"===e?"|"===this.move.direction&&">"===this.move.steps:"|<"===e?"|"===this.move.direction&&"<"===this.move.steps:this.move.direction===e):this._o},isBound:function(){return u.isType("slider")&&"center"!==u.settings.focusAt&&u.settings.bound}};return d(a,"move",{get:function(){return this._m},set:function(t){var e=t.substr(1);this._m={direction:t.substr(0,1),steps:e?y(e)?y(e):e:0}}}),d(a,"length",{get:function(){var t=u.settings,e=n.Html.slides.length;return this.isBound()?e-1-(y(t.perView)-1)+y(t.focusAt):e-1}}),d(a,"offset",{get:function(){return this._o}}),a},Swipe:function(d,h,v){var r=new H,p=0,m=0,g=0,n=!1,s=!!C&&{passive:!0},t={mount:function(){this.bindSwipeStart()},start:function(t){if(!n&&!d.disabled){this.disable();var e=this.touches(t);p=null,m=y(e.pageX),g=y(e.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),v.emit("swipe.start")}},move:function(t){if(!d.disabled){var e=d.settings,n=e.touchAngle,i=e.touchRatio,r=e.classes,s=this.touches(t),o=y(s.pageX)-m,u=y(s.pageY)-g,a=Math.abs(o<<2),c=Math.abs(u<<2),l=Math.sqrt(a+c),f=Math.sqrt(c);if(!(180*(p=Math.asin(f/l))/Math.PI<n))return!1;t.stopPropagation(),h.Move.make(o*function(t){return parseFloat(t)}(i)),h.Html.root.classList.add(r.dragging),v.emit("swipe.move")}},end:function(t){if(!d.disabled){var e=d.settings,n=e.perSwipe,i=e.touchAngle,r=e.classes,s=this.touches(t),o=this.threshold(t),u=s.pageX-m,a=180*p/Math.PI;this.enable(),o<u&&a<i?h.Run.make(h.Direction.resolve(n+"<")):u<-o&&a<i?h.Run.make(h.Direction.resolve(n+">")):h.Move.make(),h.Html.root.classList.remove(r.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),v.emit("swipe.end")}},bindSwipeStart:function(){var e=this,t=d.settings,n=t.swipeThreshold,i=t.dragThreshold;n&&r.on(L[0],h.Html.wrapper,function(t){e.start(t)},s),i&&r.on(L[1],h.Html.wrapper,function(t){e.start(t)},s)},unbindSwipeStart:function(){r.off(L[0],h.Html.wrapper,s),r.off(L[1],h.Html.wrapper,s)},bindSwipeMove:function(){var e=this;r.on(R,h.Html.wrapper,b(function(t){e.move(t)},d.settings.throttle),s)},unbindSwipeMove:function(){r.off(R,h.Html.wrapper,s)},bindSwipeEnd:function(){var e=this;r.on(D,h.Html.wrapper,function(t){e.end(t)})},unbindSwipeEnd:function(){r.off(D,h.Html.wrapper)},touches:function(t){return-1<E.indexOf(t.type)?t:t.touches[0]||t.changedTouches[0]},threshold:function(t){var e=d.settings;return-1<E.indexOf(t.type)?e.dragThreshold:e.swipeThreshold},enable:function(){return n=!1,h.Transition.enable(),this},disable:function(){return n=!0,h.Transition.disable(),this}};return v.on("build.after",function(){h.Html.root.classList.add(d.settings.classes.swipeable)}),v.on("destroy",function(){t.unbindSwipeStart(),t.unbindSwipeMove(),t.unbindSwipeEnd(),r.destroy()}),t},Images:function(t,e,n){var i=new H,r={mount:function(){this.bind()},bind:function(){i.on("dragstart",e.Html.wrapper,this.dragstart)},unbind:function(){i.off("dragstart",e.Html.wrapper)},dragstart:function(t){t.preventDefault()}};return n.on("destroy",function(){r.unbind(),i.destroy()}),r},Anchors:function(t,e,n){var i=new H,r=!1,s=!1,o={mount:function(){this._a=e.Html.wrapper.querySelectorAll("a"),this.bind()},bind:function(){i.on("click",e.Html.wrapper,this.click)},unbind:function(){i.off("click",e.Html.wrapper)},click:function(t){s&&(t.stopPropagation(),t.preventDefault())},detach:function(){if(s=!0,!r){for(var t=0;t<this.items.length;t++)this.items[t].draggable=!1,this.items[t].setAttribute("data-href",this.items[t].getAttribute("href")),this.items[t].removeAttribute("href");r=!0}return this},attach:function(){if(s=!1,r){for(var t=0;t<this.items.length;t++)this.items[t].draggable=!0,this.items[t].setAttribute("href",this.items[t].getAttribute("data-href"));r=!1}return this}};return d(o,"items",{get:function(){return o._a}}),n.on("swipe.move",function(){o.detach()}),n.on("swipe.end",function(){e.Transition.after(function(){o.attach()})}),n.on("destroy",function(){o.attach(),o.unbind(),i.destroy()}),o},Controls:function(i,e,t){var n=new H,r=!!C&&{passive:!0},s={mount:function(){this._n=e.Html.root.querySelectorAll('[data-glide-el="controls[nav]"]'),this._c=e.Html.root.querySelectorAll('[data-glide-el^="controls"]'),this.addBindings()},setActive:function(){for(var t=0;t<this._n.length;t++)this.addClass(this._n[t].children)},removeActive:function(){for(var t=0;t<this._n.length;t++)this.removeClass(this._n[t].children)},addClass:function(t){var e=i.settings,n=t[i.index];n&&(n.classList.add(e.classes.nav.active),_(n).forEach(function(t){t.classList.remove(e.classes.nav.active)}))},removeClass:function(t){var e=t[i.index];e&&e.classList.remove(i.settings.classes.nav.active)},addBindings:function(){for(var t=0;t<this._c.length;t++)this.bind(this._c[t].children)},removeBindings:function(){for(var t=0;t<this._c.length;t++)this.unbind(this._c[t].children)},bind:function(t){for(var e=0;e<t.length;e++)n.on("click",t[e],this.click),n.on("touchstart",t[e],this.click,r)},unbind:function(t){for(var e=0;e<t.length;e++)n.off(["click","touchstart"],t[e])},click:function(t){t.preventDefault(),e.Run.make(e.Direction.resolve(t.currentTarget.getAttribute("data-glide-dir")))}};return d(s,"items",{get:function(){return s._c}}),t.on(["mount.after","move.after"],function(){s.setActive()}),t.on("destroy",function(){s.removeBindings(),s.removeActive(),n.destroy()}),s},Keyboard:function(t,e,n){var i=new H,r={mount:function(){t.settings.keyboard&&this.bind()},bind:function(){i.on("keyup",document,this.press)},unbind:function(){i.off("keyup",document)},press:function(t){39===t.keyCode&&e.Run.make(e.Direction.resolve(">")),37===t.keyCode&&e.Run.make(e.Direction.resolve("<"))}};return n.on(["destroy","update"],function(){r.unbind()}),n.on("update",function(){r.mount()}),n.on("destroy",function(){i.destroy()}),r},Autoplay:function(e,n,t){var i=new H,r={mount:function(){this.start(),e.settings.hoverpause&&this.bind()},start:function(){var t=this;e.settings.autoplay&&l(this._i)&&(this._i=setInterval(function(){t.stop(),n.Run.make(">"),t.start()},this.time))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var t=this;i.on("mouseover",n.Html.root,function(){t.stop()}),i.on("mouseout",n.Html.root,function(){t.start()})},unbind:function(){i.off(["mouseover","mouseout"],n.Html.root)}};return d(r,"time",{get:function(){var t=n.Html.slides[e.index].getAttribute("data-glide-autoplay");return y(t||e.settings.autoplay)}}),t.on(["destroy","update"],function(){r.unbind()}),t.on(["run.before","pause","destroy","swipe.start","update"],function(){r.stop()}),t.on(["run.after","play","swipe.end"],function(){r.start()}),t.on("update",function(){r.mount()}),t.on("destroy",function(){i.destroy()}),r},Breakpoints:function(t,e,n){var i=new H,r=t.settings,s=j(r.breakpoints),o=a({},r),u={match:function(t){if(void 0!==window.matchMedia)for(var e in t)if(t.hasOwnProperty(e)&&window.matchMedia("(max-width: "+e+"px)").matches)return t[e];return o}};return a(r,u.match(s)),i.on("resize",window,b(function(){t.settings=h(r,u.match(s))},t.settings.throttle)),n.on("update",function(){s=j(s),o=a({},r)}),n.on("destroy",function(){i.off("resize",window)}),u}};function B(){return i(this,B),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(B.__proto__||Object.getPrototypeOf(B)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(B,p),t(B,[{key:"mount",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};return function t(e,n,i){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,n);if(void 0===r){var s=Object.getPrototypeOf(e);return null===s?void 0:t(s,n,i)}if("value"in r)return r.value;var o=r.get;return void 0!==o?o.call(i):void 0}(B.prototype.__proto__||Object.getPrototypeOf(B.prototype),"mount",this).call(this,a({},W,e))}}]),B});
vendor/codeinwp/gutenberg-blocks/assets/glide/glide.theme.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .glide__arrow{position:absolute;display:block;top:50%;z-index:2;color:white;text-transform:uppercase;padding:9px 12px;background-color:transparent;border:2px solid rgba(255,255,255,0.5);border-radius:4px;box-shadow:0 0.25em 0.5em 0 rgba(0,0,0,0.1);text-shadow:0 0.25em 0.5em rgba(0,0,0,0.1);opacity:1;cursor:pointer;transition:opacity 150ms ease, border 300ms ease-in-out;transform:translateY(-50%);line-height:1}.glide__arrow:focus{outline:none}.glide__arrow:hover{border-color:white}.glide__arrow--left{left:2em}.glide__arrow--right{right:2em}.glide__arrow--disabled{opacity:0.33}.glide__bullets{position:absolute;z-index:2;bottom:2em;left:50%;display:inline-flex;list-style:none;transform:translateX(-50%)}.glide__bullet{background-color:rgba(255,255,255,0.5);width:9px;height:9px;padding:0;border-radius:50%;border:2px solid transparent;transition:all 300ms ease-in-out;cursor:pointer;line-height:0;box-shadow:0 0.25em 0.5em 0 rgba(0,0,0,0.1);margin:0 0.25em}.glide__bullet:focus{outline:none}.glide__bullet:hover,.glide__bullet:focus{border:2px solid white;background-color:rgba(255,255,255,0.5)}.glide__bullet--active{background-color:white}.glide--swipeable{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.glide--dragging{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}
vendor/codeinwp/gutenberg-blocks/autoloader.php CHANGED
@@ -7,6 +7,11 @@
7
 
8
  namespace ThemeIsle\GutenbergBlocks;
9
 
 
 
 
 
 
10
  class Autoloader {
11
  /**
12
  * An associative array where the key is a namespace prefix and the value
@@ -31,24 +36,24 @@ class Autoloader {
31
  * @param string $prefix The namespace prefix.
32
  * @param string $base_dir A base directory for class files in the
33
  * namespace.
34
- * @param bool $prepend If true, prepend the base directory to the stack
35
- * instead of appending it; this causes it to be searched first rather
36
- * than last.
37
  * @return void
38
  */
39
  public function add_namespace( $prefix, $base_dir, $prepend = false ) {
40
- // normalize namespace prefix
41
  $prefix = trim( $prefix, '\\' ) . '\\';
42
 
43
- // normalize the base directory with a trailing separator
44
  $base_dir = rtrim( $base_dir, DIRECTORY_SEPARATOR ) . '/';
45
 
46
- // initialize the namespace prefix array
47
  if ( isset( $this->prefixes[ $prefix ] ) === false ) {
48
  $this->prefixes[ $prefix ] = array();
49
  }
50
 
51
- // retain the base directory for the namespace prefix
52
  if ( $prepend ) {
53
  array_unshift( $this->prefixes[ $prefix ], $base_dir );
54
  } else {
@@ -64,31 +69,31 @@ class Autoloader {
64
  * failure.
65
  */
66
  public function load_class( $class ) {
67
- // the current namespace prefix
68
  $prefix = $class;
69
 
70
- // work backwards through the namespace names of the fully-qualified
71
- // class name to find a mapped file name
72
- while ( false !== $pos = strrpos( $prefix, '\\' ) ) {
73
 
74
- // retain the trailing namespace separator in the prefix
75
  $prefix = substr( $class, 0, $pos + 1 );
76
 
77
- // the rest is the relative class name
78
  $relative_class = substr( $class, $pos + 1 );
79
 
80
- // try to load a mapped file for the prefix and relative class
81
  $mapped_file = $this->load_mapped_file( $prefix, $relative_class );
82
  if ( $mapped_file ) {
83
  return $mapped_file;
84
  }
85
 
86
- // remove the trailing namespace separator for the next iteration
87
- // of strrpos()
88
  $prefix = rtrim( $prefix, '\\' );
89
  }
90
 
91
- // never found a mapped file
92
  return false;
93
  }
94
 
@@ -106,12 +111,12 @@ class Autoloader {
106
  return false;
107
  }
108
 
109
- // look through base directories for this namespace prefix
110
  foreach ( $this->prefixes[ $prefix ] as $base_dir ) {
111
 
112
  // replace the namespace prefix with the base directory,
113
  // replace namespace separators with directory separators
114
- // in the relative class name, append with .php
115
  $relative_class = strtolower( str_replace( '\\', '/', $relative_class ) );
116
  $relative_class = str_replace( '_', '-', $relative_class );
117
 
@@ -122,14 +127,14 @@ class Autoloader {
122
  }
123
  $file = $base_dir . $relative_class . '.php';
124
 
125
- // if the mapped file exists, require it
126
  if ( $this->require_file( $file ) ) {
127
- // yes, we're done
128
  return $file;
129
  }
130
  }
131
 
132
- // never found it
133
  return false;
134
  }
135
 
7
 
8
  namespace ThemeIsle\GutenbergBlocks;
9
 
10
+ /**
11
+ * Class Autoloader
12
+ *
13
+ * @package ThemeIsle\GutenbergBlocks
14
+ */
15
  class Autoloader {
16
  /**
17
  * An associative array where the key is a namespace prefix and the value
36
  * @param string $prefix The namespace prefix.
37
  * @param string $base_dir A base directory for class files in the
38
  * namespace.
39
+ * @param bool $prepend If true, prepend the base directory to the stack
40
+ * instead of appending it; this causes it to be searched first rather
41
+ * than last.
42
  * @return void
43
  */
44
  public function add_namespace( $prefix, $base_dir, $prepend = false ) {
45
+ // normalize namespace prefix.
46
  $prefix = trim( $prefix, '\\' ) . '\\';
47
 
48
+ // normalize the base directory with a trailing separator.
49
  $base_dir = rtrim( $base_dir, DIRECTORY_SEPARATOR ) . '/';
50
 
51
+ // initialize the namespace prefix array.
52
  if ( isset( $this->prefixes[ $prefix ] ) === false ) {
53
  $this->prefixes[ $prefix ] = array();
54
  }
55
 
56
+ // retain the base directory for the namespace prefix.
57
  if ( $prepend ) {
58
  array_unshift( $this->prefixes[ $prefix ], $base_dir );
59
  } else {
69
  * failure.
70
  */
71
  public function load_class( $class ) {
72
+ // the current namespace prefix.
73
  $prefix = $class;
74
 
75
+ // work backwards through the namespace names of the fully-qualified.
76
+ // class name to find a mapped file name.
77
+ while ( false !== $pos = strrpos( $prefix, '\\' ) ) { //phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
78
 
79
+ // retain the trailing namespace separator in the prefix.
80
  $prefix = substr( $class, 0, $pos + 1 );
81
 
82
+ // the rest is the relative class name.
83
  $relative_class = substr( $class, $pos + 1 );
84
 
85
+ // try to load a mapped file for the prefix and relative class.
86
  $mapped_file = $this->load_mapped_file( $prefix, $relative_class );
87
  if ( $mapped_file ) {
88
  return $mapped_file;
89
  }
90
 
91
+ // remove the trailing namespace separator for the next iteration.
92
+ // of strrpos().
93
  $prefix = rtrim( $prefix, '\\' );
94
  }
95
 
96
+ // never found a mapped file.
97
  return false;
98
  }
99
 
111
  return false;
112
  }
113
 
114
+ // look through base directories for this namespace prefix.
115
  foreach ( $this->prefixes[ $prefix ] as $base_dir ) {
116
 
117
  // replace the namespace prefix with the base directory,
118
  // replace namespace separators with directory separators
119
+ // in the relative class name, append with .php.
120
  $relative_class = strtolower( str_replace( '\\', '/', $relative_class ) );
121
  $relative_class = str_replace( '_', '-', $relative_class );
122
 
127
  }
128
  $file = $base_dir . $relative_class . '.php';
129
 
130
+ // if the mapped file exists, require it.
131
  if ( $this->require_file( $file ) ) {
132
+ // yes, we're done.
133
  return $file;
134
  }
135
  }
136
 
137
+ // never found it.
138
  return false;
139
  }
140
 
vendor/codeinwp/gutenberg-blocks/build/blocks.js CHANGED
@@ -1 +1 @@
1
- !function(e){function t(t){for(var o,r,i=t[0],c=t[1],s=t[2],u=0,m=[];u<i.length;u++)r=i[u],Object.prototype.hasOwnProperty.call(a,r)&&a[r]&&m.push(a[r][0]),a[r]=0;for(o in c)Object.prototype.hasOwnProperty.call(c,o)&&(e[o]=c[o]);for(p&&p(t);m.length;)m.shift()();return l.push.apply(l,s||[]),n()}function n(){for(var e,t=0;t<l.length;t++){for(var n=l[t],o=!0,i=1;i<n.length;i++){var c=n[i];0!==a[c]&&(o=!1)}o&&(l.splice(t--,1),e=r(r.s=n[0]))}return e}var o={},a={2:0},l=[];function r(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var t=[],n=a[e];if(0!==n)if(n)t.push(n[2]);else{var o=new Promise((function(t,o){n=a[e]=[t,o]}));t.push(n[2]=o);var l,i=document.createElement("script");i.charset="utf-8",i.timeout=120,r.nc&&i.setAttribute("nonce",r.nc),i.src=function(e){return r.p+"chunk-"+({}[e]||e)+".js"}(e);var c=new Error;l=function(t){i.onerror=i.onload=null,clearTimeout(s);var n=a[e];if(0!==n){if(n){var o=t&&("load"===t.type?"missing":t.type),l=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+o+": "+l+")",c.name="ChunkLoadError",c.type=o,c.request=l,n[1](c)}a[e]=void 0}};var s=setTimeout((function(){l({type:"timeout",target:i})}),12e4);i.onerror=i.onload=l,document.head.appendChild(i)}return Promise.all(t)},r.m=e,r.c=o,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.oe=function(e){throw console.error(e),e};var i=window.tiOtterWebpackJsonp=window.tiOtterWebpackJsonp||[],c=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var p=c;l.push([40,0]),n()}([,,function(e,t,n){"use strict";n.d(t,"l",(function(){return r})),n.d(t,"a",(function(){return i})),n.d(t,"d",(function(){return c})),n.d(t,"f",(function(){return s})),n.d(t,"e",(function(){return p})),n.d(t,"h",(function(){return u})),n.d(t,"g",(function(){return m})),n.d(t,"q",(function(){return d})),n.d(t,"i",(function(){return b})),n.d(t,"n",(function(){return g})),n.d(t,"m",(function(){return h})),n.d(t,"p",(function(){return f})),n.d(t,"o",(function(){return y})),n.d(t,"r",(function(){return w})),n.d(t,"b",(function(){return v})),n.d(t,"s",(function(){return k})),n.d(t,"j",(function(){return E})),n.d(t,"c",(function(){return C})),n.d(t,"k",(function(){return x}));var o=wp.components,a=o.Path,l=o.SVG,r=function(){return wp.element.createElement(l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 29 32",width:"20",height:"20",className:"otter-icon"},wp.element.createElement(a,{d:"M19.831 7.877c0.001-0.003 0.001-0.005 0.001-0.009s-0-0.006-0.001-0.009l0 0c-0.047-0.081-0.092-0.164-0.132-0.247l-0.057-0.115c-0.277-0.498-0.381-0.99-1.033-1.064h-0.045c-0.001 0-0.002 0-0.003 0-0.486 0-0.883 0.382-0.908 0.862l-0 0.002c0.674 0.126 1.252 0.278 1.813 0.468l-0.092-0.027 0.283 0.096 0.147 0.053s0.028 0 0.028-0.011z"}),wp.element.createElement(a,{d:"M23.982 13.574c-0.008-2.41-0.14-4.778-0.39-7.112l0.026 0.299 0.070-0.019c0.459-0.139 0.787-0.558 0.787-1.053 0-0.479-0.307-0.887-0.735-1.037l-0.008-0.002h-0.026c-0.479-0.164-0.874-0.468-1.149-0.861l-0.005-0.007c-2.7-3.96-8.252-3.781-8.252-3.781s-5.55-0.179-8.25 3.781c-0.28 0.401-0.676 0.704-1.14 0.862l-0.016 0.005c-0.441 0.148-0.754 0.557-0.754 1.040 0 0.009 0 0.017 0 0.026l-0-0.001c-0 0.010-0.001 0.022-0.001 0.034 0 0.493 0.335 0.907 0.789 1.029l0.007 0.002 0.045 0.011c-0.224 2.034-0.356 4.403-0.364 6.801l-0 0.012s-9.493 13.012-1.277 17.515c4.733 2.431 6.881-0.769 6.881-0.769s1.397-1.661-1.784-3.355v-4.609c0.006-0.344 0.282-0.621 0.625-0.628h1.212v-0.59c0-0.275 0.223-0.498 0.498-0.498v0h1.665c0.274 0.001 0.496 0.224 0.496 0.498 0 0 0 0 0 0v0 0.59h2.721v-0.59c0-0.275 0.223-0.498 0.498-0.498v0h1.665c0.271 0.005 0.49 0.226 0.49 0.498 0 0 0 0 0 0v0 0.59h1.209c0 0 0 0 0 0 0.349 0 0.633 0.28 0.639 0.627v4.584c-3.193 1.703-1.784 3.355-1.784 3.355s2.148 3.193 6.879 0.769c8.222-4.503-1.269-17.515-1.269-17.515zM22.586 10.261c-0.097 1.461-0.67 2.772-1.563 3.797l0.007-0.008c-1.703 2.010-4.407 3.249-6.721 4.432v0c-2.325-1.177-5.026-2.416-6.736-4.432-0.883-1.019-1.455-2.329-1.555-3.769l-0.001-0.020c-0.126-2.22 0.583-5.929 3.044-6.74 2.416-0.788 3.947 1.288 4.494 2.227 0.152 0.258 0.429 0.428 0.745 0.428s0.593-0.17 0.743-0.424l0.002-0.004c0.551-0.932 2.080-3.008 4.494-2.22 2.474 0.805 3.174 4.513 3.046 6.734z"}),wp.element.createElement(a,{d:"M19.463 10.087h-0.028c-0.192 0.026-0.121 0.251-0.047 0.356 0.254 0.349 0.407 0.787 0.407 1.26 0 0.006-0 0.012-0 0.018v-0.001c-0.001 0.469-0.255 0.878-0.633 1.1l-0.006 0.003c-0.739 0.426-1.377-0.145-2.054-0.398-0.72-0.269-1.552-0.434-2.42-0.455l-0.009-0v-1.033c1.020-0.233 1.894-0.76 2.551-1.486l0.004-0.004c0.151-0.163 0.244-0.383 0.244-0.623 0-0.316-0.159-0.595-0.402-0.76l-0.003-0.002c-0.768-0.551-1.728-0.881-2.764-0.881-1.054 0-2.029 0.341-2.819 0.92l0.013-0.009c-0.224 0.166-0.367 0.429-0.367 0.726 0 0.226 0.083 0.433 0.221 0.591l-0.001-0.001c0.665 0.751 1.55 1.295 2.553 1.53l0.033 0.007v1.050c-0.742 0.021-1.448 0.14-2.118 0.343l0.057-0.015c-0.341 0.103-0.631 0.219-0.908 0.358l0.033-0.015c-0.519 0.26-1.037 0.436-1.58 0.121-0.371-0.213-0.617-0.607-0.617-1.058 0-0.002 0-0.004 0-0.007v0c0-0.002 0-0.004 0-0.007 0-0.47 0.153-0.905 0.411-1.257l-0.004 0.006c0.047-0.068 0.089-0.17 0.026-0.241s-0.189 0-0.27 0.030c-0.189 0.099-0.348 0.227-0.479 0.381l-0.002 0.002c-0.245 0.296-0.394 0.679-0.394 1.097 0 0.004 0 0.007 0 0.011v-0.001c0.008 0.706 0.393 1.321 0.964 1.651l0.009 0.005c0.296 0.178 0.654 0.283 1.036 0.283 0.364 0 0.706-0.095 1.001-0.263l-0.010 0.005c0.877-0.461 1.917-0.731 3.019-0.731 0.069 0 0.137 0.001 0.206 0.003l-0.010-0h0.030c1.277 0 2.382 0.266 3.266 0.775 0.27 0.159 0.594 0.253 0.94 0.253 0.001 0 0.002 0 0.003 0h-0c0.355-0.002 0.688-0.098 0.974-0.265l-0.009 0.005c0.606-0.357 1.007-1.007 1.007-1.75 0-0.001 0-0.003 0-0.004v0c0.001-0.026 0.002-0.056 0.002-0.086 0-0.625-0.34-1.171-0.846-1.462l-0.008-0.004c-0.056-0.040-0.125-0.065-0.199-0.070l-0.001-0zM13.101 8.831c-0.238 0.213-0.468 0.581-0.832 0.345-0.061-0.041-0.114-0.086-0.161-0.136l-0-0c-0.063-0.063-0.101-0.15-0.101-0.247 0-0.133 0.074-0.248 0.182-0.308l0.002-0.001c0.594-0.309 1.203-0.543 1.884-0.49-0.324 0.281-0.649 0.56-0.973 0.837z"}),wp.element.createElement(a,{d:"M15.89 13.578c-0.367 0.483-0.941 0.792-1.588 0.792s-1.221-0.309-1.585-0.787l-0.004-0.005c-0.064-0.103-0.177-0.171-0.306-0.171-0.199 0-0.36 0.161-0.36 0.36 0 0.091 0.034 0.174 0.090 0.238l-0-0c0.499 0.659 1.283 1.080 2.164 1.080s1.665-0.421 2.159-1.073l0.005-0.007c0.043-0.059 0.068-0.132 0.068-0.212 0-0.116-0.055-0.22-0.14-0.286l-0.001-0.001c-0.059-0.045-0.134-0.072-0.215-0.072-0.117 0-0.221 0.056-0.286 0.143l-0.001 0.001z"}),wp.element.createElement(a,{d:"M18.507 11.707c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"}),wp.element.createElement(a,{d:"M17.389 11.049c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"}),wp.element.createElement(a,{d:"M10.798 11.707c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"}),wp.element.createElement(a,{d:"M11.918 11.049c0 0.194-0.157 0.351-0.351 0.351s-0.351-0.157-0.351-0.351c0-0.194 0.157-0.351 0.351-0.351s0.351 0.157 0.351 0.351z"}),wp.element.createElement(a,{d:"M8.773 7.877c-0.001-0.003-0.002-0.005-0.002-0.009s0.001-0.006 0.002-0.009l-0 0c0.047-0.081 0.089-0.164 0.132-0.247 0.019-0.038 0.036-0.079 0.057-0.115 0.275-0.498 0.379-0.99 1.033-1.064h0.045c0 0 0.001 0 0.001 0 0.487 0 0.884 0.382 0.91 0.862l0 0.002c-0.678 0.124-1.261 0.277-1.827 0.468l0.092-0.027-0.275 0.096-0.1 0.036-0.045 0.017s-0.023 0-0.023-0.011z"}))},i=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M17.348 20.657v-0.135c1.029-0.471 1.758-1.446 1.916-2.563 0.434-0.157 0.739-0.576 0.739-1.051 0-0.408-0.221-0.774-0.562-0.969 0.036-0.111 0.065-0.223 0.087-0.335 0.182-0.901-0.025-1.822-0.583-2.592-0.548-0.758-1.373-1.281-2.321-1.473-0.255-0.051-0.515-0.077-0.773-0.077-0.813 0-1.607 0.262-2.234 0.739-0.646 0.49-1.088 1.187-1.244 1.962-0.118 0.587-0.070 1.193 0.139 1.762-0.355 0.191-0.59 0.566-0.59 0.985 0 0.481 0.31 0.901 0.751 1.055 0.163 1.144 0.916 2.128 1.978 2.587v0.106c-2.207 0.5-3.729 2.151-3.729 4.079v0.515h10.153v-0.515c0-1.929-1.522-3.58-3.729-4.080zM15.853 12.492c0.189 0 0.381 0.019 0.569 0.057 0.693 0.14 1.293 0.519 1.689 1.066 0.369 0.511 0.518 1.111 0.423 1.701-0.507-0.237-1.173-0.487-1.874-0.583-1.318-0.18-1.339-0.241-1.417-0.469l-0.252-0.728-0.579 0.512c-0.062 0.054-0.528 0.464-1.066 0.91-0.015-0.198-0.002-0.396 0.037-0.593 0.219-1.086 1.257-1.873 2.469-1.873zM13.67 16.025c0.361-0.292 0.718-0.594 0.977-0.816 0.358 0.323 0.916 0.414 1.874 0.545 0.65 0.089 1.287 0.349 1.748 0.578v1.161c0 1.268-1.031 2.299-2.299 2.299s-2.299-1.031-2.299-2.299v-1.468zM15.682 20.81c0.213 0.019 0.425 0.017 0.635-0.006v0.318l-0.318 0.177-0.317-0.176v-0.313zM12.006 24.22c0.237-1.154 1.25-2.113 2.646-2.501v0.010l1.346 0.748 1.35-0.748v-0.010c1.396 0.388 2.409 1.348 2.646 2.502l-7.987-0zM21.076 27.499h-10.153c-0.307 0-0.556-0.249-0.556-0.556s0.249-0.556 0.556-0.556h10.153c0.307 0 0.556 0.249 0.556 0.556s-0.249 0.556-0.556 0.556zM28.112 3.393h-9.422v-1.689c0-0.832-0.677-1.509-1.509-1.509h-2.363c-0.832 0-1.509 0.677-1.509 1.509v1.689h-9.422c-0.832 0-1.509 0.677-1.509 1.509v25.395c0 0.832 0.677 1.509 1.509 1.509h24.225c0.832 0 1.509-0.677 1.509-1.509v-25.395c-0-0.832-0.677-1.509-1.509-1.509zM14.421 1.703c0-0.219 0.178-0.397 0.397-0.397h2.363c0.219 0 0.397 0.178 0.397 0.397v5.083c0 0.219-0.178 0.397-0.397 0.397h-2.363c-0.219 0-0.397-0.178-0.397-0.397v-5.083zM28.509 30.297c0 0.219-0.178 0.397-0.397 0.397h-24.225c-0.219 0-0.397-0.178-0.397-0.397v-25.395c0-0.219 0.178-0.397 0.397-0.397h9.422v2.282c0 0.832 0.677 1.509 1.509 1.509h2.363c0.832 0 1.509-0.677 1.509-1.509v-2.282h9.422c0.219 0 0.397 0.178 0.397 0.397v25.395z"}))},c=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M30.457 11.777h-28.914c-0.829 0-1.503 0.674-1.503 1.503v5.606c0 0.829 0.674 1.503 1.503 1.503h28.914c0.829 0 1.503-0.674 1.503-1.503v-5.606c-0-0.829-0.674-1.503-1.503-1.503zM30.84 18.886c0 0.211-0.172 0.383-0.383 0.383h-28.914c-0.211 0-0.383-0.172-0.383-0.383v-5.606c0-0.211 0.172-0.383 0.383-0.383h28.914c0.211 0 0.383 0.172 0.383 0.383v5.606zM4.67 15.133c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95 0.95-0.425 0.95-0.95c0-0.525-0.425-0.95-0.95-0.95zM7.947 15.133c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM11.224 15.133c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM27.871 15.523h-11.386c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h11.386c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM30.457 23.388h-28.914c-0.829 0-1.503 0.674-1.503 1.503v5.606c0 0.829 0.674 1.503 1.503 1.503h28.914c0.829 0 1.503-0.674 1.503-1.503v-5.606c-0-0.829-0.674-1.503-1.503-1.503zM30.84 30.497c0 0.211-0.172 0.383-0.383 0.383h-28.914c-0.211 0-0.383-0.172-0.383-0.383v-5.606c0-0.211 0.172-0.383 0.383-0.383h28.914c0.211 0 0.383 0.172 0.383 0.383v5.606zM4.67 26.744c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95 0.95-0.425 0.95-0.95c0-0.525-0.425-0.95-0.95-0.95zM7.947 26.744c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM11.224 26.744c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM27.871 27.134h-11.386c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h11.386c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM30.457 0h-28.914c-0.829 0-1.503 0.674-1.503 1.503v5.606c0 0.829 0.674 1.503 1.503 1.503h28.914c0.829 0 1.503-0.674 1.503-1.503v-5.606c0-0.829-0.674-1.503-1.503-1.503zM30.84 7.109c0 0.211-0.172 0.383-0.383 0.383h-28.914c-0.211 0-0.383-0.172-0.383-0.383v-5.606c0-0.211 0.172-0.383 0.383-0.383h28.914c0.211 0 0.383 0.172 0.383 0.383v5.606zM5.62 4.306c0 0.525-0.425 0.95-0.95 0.95s-0.95-0.425-0.95-0.95c0-0.525 0.425-0.95 0.95-0.95s0.95 0.425 0.95 0.95zM7.947 3.356c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM11.224 3.356c-0.525 0-0.95 0.425-0.95 0.95s0.425 0.95 0.95 0.95c0.525 0 0.95-0.425 0.95-0.95s-0.425-0.95-0.95-0.95zM27.871 3.746h-11.386c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h11.386c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56z"}))},s=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M30.584 0.099h-29.068c-0.781 0-1.417 0.635-1.417 1.416v29.068c0 0.781 0.635 1.416 1.417 1.416h29.068c0.781 0 1.416-0.635 1.416-1.416v-29.068c0-0.781-0.635-1.416-1.416-1.416zM1.515 1.219h29.068c0.163 0 0.296 0.133 0.296 0.296v3.476h-29.661v-3.476c0-0.163 0.133-0.296 0.296-0.296zM30.584 30.88h-29.068c-0.163 0-0.296-0.133-0.296-0.296v-24.472h29.661v24.472c0 0.163-0.133 0.296-0.296 0.296zM26.999 20.461h-21.062c-0.838 0-1.52 0.682-1.52 1.52v5.601c0 0.838 0.682 1.52 1.52 1.52h21.062c0.838 0 1.52-0.682 1.52-1.52v-5.601c0-0.838-0.682-1.52-1.52-1.52zM27.399 27.582c0 0.221-0.18 0.4-0.4 0.4h-21.062c-0.221 0-0.4-0.18-0.4-0.4v-5.601c0-0.221 0.179-0.4 0.4-0.4h21.062c0.221 0 0.4 0.179 0.4 0.4v5.601zM5.937 16.247h5.432c0.838 0 1.52-0.682 1.52-1.52v-5.432c0-0.838-0.682-1.52-1.52-1.52h-5.432c-0.838 0-1.52 0.682-1.52 1.52v5.432c0 0.838 0.682 1.52 1.52 1.52zM5.537 9.294c0-0.221 0.179-0.4 0.4-0.4h5.432c0.221 0 0.4 0.179 0.4 0.4v5.432c0 0.221-0.18 0.4-0.4 0.4h-5.432c-0.221 0-0.4-0.18-0.4-0.4v-5.432zM27.959 17.714h-22.982c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h22.982c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM27.959 14.793h-12.696c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h12.696c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM27.959 11.433h-12.696c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h12.696c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM27.959 8.072h-12.696c-0.309 0-0.56 0.251-0.56 0.56s0.251 0.56 0.56 0.56h12.696c0.309 0 0.56-0.251 0.56-0.56s-0.251-0.56-0.56-0.56zM4.543 3.051c0 0.497-0.403 0.9-0.9 0.9s-0.9-0.403-0.9-0.9c0-0.497 0.403-0.9 0.9-0.9s0.9 0.403 0.9 0.9zM7.384 3.051c0 0.497-0.403 0.9-0.9 0.9s-0.9-0.403-0.9-0.9c0-0.497 0.403-0.9 0.9-0.9s0.9 0.403 0.9 0.9zM10.224 3.051c0 0.497-0.403 0.9-0.9 0.9s-0.9-0.403-0.9-0.9c0-0.497 0.403-0.9 0.9-0.9s0.9 0.403 0.9 0.9z"}))},p=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M31.276 3.351h-14.587l-3.23-3.028c-0.103-0.097-0.239-0.15-0.38-0.15h-12.354c-0.307 0-0.556 0.249-0.556 0.556v30.697c0 0.307 0.249 0.556 0.556 0.556h30.551c0.307 0 0.556-0.249 0.556-0.556v-27.518c0-0.307-0.249-0.556-0.556-0.556zM1.281 1.286h11.578l3.23 3.028c0.103 0.097 0.239 0.15 0.38 0.15h14.25v3.013h-29.439v-6.191zM30.719 30.87h-29.439v-22.281h29.439v22.281z"}))},u=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M30.958 13.988h-0.64c-0.572-5.298-4.029-9.744-8.764-11.73h5.439v0.555c0 0.309 0.25 0.559 0.559 0.559h2.23c0.309 0 0.559-0.25 0.559-0.559v-2.229c0-0.309-0.25-0.559-0.559-0.559h-2.23c-0.309 0-0.559 0.25-0.559 0.559v0.555h-9.319v-0.555c0-0.309-0.25-0.559-0.559-0.559h-2.23c-0.309 0-0.559 0.25-0.559 0.559v0.555h-9.319v-0.555c0-0.309-0.25-0.559-0.559-0.559h-2.229c-0.309 0-0.559 0.25-0.559 0.559v2.229c0 0.309 0.25 0.559 0.559 0.559h2.229c0.309 0 0.559-0.25 0.559-0.559v-0.555h5.439c-4.735 1.987-8.191 6.432-8.764 11.73h-0.64c-0.309 0-0.559 0.25-0.559 0.559v2.229c0 0.309 0.25 0.559 0.559 0.559h2.23c0.309 0 0.559-0.25 0.559-0.559v-2.229c0-0.309-0.25-0.559-0.559-0.559h-0.464c0.709-6.044 5.49-10.86 11.518-11.621v0.446c0 0.309 0.25 0.559 0.559 0.559h2.23c0.309 0 0.559-0.25 0.559-0.559v-0.446c6.028 0.761 10.809 5.578 11.518 11.621h-0.464c-0.309 0-0.559 0.25-0.559 0.559v2.23c0 0.309 0.25 0.559 0.559 0.559h2.23c0.309 0 0.559-0.25 0.559-0.559v-2.229c0-0.309-0.25-0.559-0.559-0.559zM29.223 2.253h-1.111v-1.111h1.111v1.111zM2.777 1.142h1.111v1.111h-1.111v-1.111zM2.712 15.608v0.609h-1.111v-0.973c0.001-0.046 0.002-0.092 0.003-0.138h1.108v0.501zM16 1.142c0.186 0 0.371 0.005 0.555 0.012v1.099h-1.111v-1.099c0.184-0.007 0.37-0.012 0.556-0.012zM30.399 15.25v0.967h-1.111v-1.111h1.107c0.002 0.048 0.003 0.096 0.004 0.144zM16.512 4.461c-0.089-0.204-0.29-0.336-0.513-0.336s-0.424 0.132-0.513 0.336l-7.287 16.694c-0.058 0.134-0.062 0.285-0.011 0.421l0.009 0.023c0.059 0.157 0.186 0.279 0.345 0.333 1.743 0.585 2.914 2.213 2.914 4.052 0 0.766-0.206 1.518-0.595 2.175-0.012 0.020-0.022 0.041-0.032 0.063-0.063 0.091-0.101 0.201-0.101 0.32v2.832c0 0.307 0.248 0.557 0.555 0.559l9.42 0.068c0.001 0 0.003 0 0.004 0 0.307 0 0.557-0.248 0.559-0.555 0.002-0.309-0.246-0.561-0.555-0.563l-8.865-0.064v-1.405h8.654c0.234 0 0.443-0.145 0.524-0.364l0.153-0.41c0.059-0.158 0.043-0.335-0.043-0.48-0.389-0.657-0.595-1.409-0.595-2.174 0-1.838 1.171-3.467 2.914-4.052 0.16-0.054 0.287-0.176 0.346-0.334l0.009-0.023c0.051-0.136 0.047-0.287-0.011-0.42l-7.287-16.694zM16 20.028c0.619 0 1.122 0.503 1.122 1.122s-0.504 1.122-1.122 1.122c-0.619 0-1.122-0.503-1.122-1.122s0.503-1.122 1.122-1.122zM19.424 25.983c0 0.802 0.179 1.591 0.52 2.31h-7.887c0.341-0.719 0.52-1.509 0.52-2.31 0-2.121-1.235-4.020-3.127-4.894l5.991-13.726v11.616c-0.966 0.249-1.682 1.128-1.682 2.17 0 1.236 1.005 2.241 2.241 2.241s2.241-1.005 2.241-2.241c0-1.043-0.716-1.921-1.682-2.17v-11.616l5.991 13.726c-1.892 0.874-3.127 2.773-3.127 4.894z"}))},m=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M30.424 0.171h-28.847c-0.775 0-1.406 0.631-1.406 1.406v28.848c0 0.775 0.631 1.406 1.406 1.406h28.847c0.775 0 1.406-0.631 1.406-1.406v-28.848c0-0.775-0.631-1.406-1.406-1.406zM1.576 1.282h28.847c0.162 0 0.294 0.132 0.294 0.294v3.45h-29.435v-3.45c0-0.162 0.132-0.294 0.294-0.294zM30.424 30.718h-28.847c-0.162 0-0.294-0.132-0.294-0.294v-24.286h29.435v24.286c0 0.162-0.132 0.294-0.294 0.294zM3.688 3.994c0.493 0 0.893-0.4 0.893-0.893s-0.4-0.893-0.893-0.893-0.893 0.4-0.893 0.893c0 0.493 0.4 0.893 0.893 0.893zM6.507 3.994c0.493 0 0.893-0.4 0.893-0.893s-0.4-0.893-0.893-0.893-0.893 0.4-0.893 0.893c0 0.493 0.4 0.893 0.893 0.893zM9.326 3.994c0.493 0 0.893-0.4 0.893-0.893s-0.4-0.893-0.893-0.893-0.893 0.4-0.893 0.893c0 0.493 0.4 0.893 0.893 0.893zM20.662 19.394l3.855-3.758c0.152-0.148 0.206-0.369 0.141-0.57s-0.239-0.348-0.449-0.378l-5.328-0.774-2.383-4.828c-0.094-0.19-0.287-0.31-0.498-0.31s-0.405 0.12-0.498 0.31l-2.383 4.828-5.328 0.774c-0.209 0.030-0.383 0.177-0.449 0.378s-0.011 0.422 0.141 0.57l3.855 3.758-0.91 5.307c-0.036 0.209 0.050 0.419 0.221 0.544s0.398 0.141 0.585 0.042l4.766-2.506 4.766 2.506c0.081 0.043 0.17 0.064 0.259 0.064 0.115 0 0.23-0.036 0.327-0.106 0.171-0.124 0.257-0.335 0.221-0.544l-0.91-5.307zM16.259 21.661c-0.162-0.085-0.355-0.085-0.517 0l-4.027 2.117 0.769-4.485c0.031-0.18-0.029-0.364-0.16-0.492l-3.258-3.176 4.503-0.654c0.181-0.026 0.338-0.14 0.418-0.304l2.014-4.080 2.014 4.080c0.081 0.164 0.238 0.278 0.419 0.304l4.503 0.654-3.258 3.176c-0.131 0.128-0.191 0.312-0.16 0.492l0.769 4.485-4.027-2.117zM16 25.179c-0.307 0-0.556 0.249-0.556 0.556v1.887c0 0.307 0.249 0.556 0.556 0.556s0.556-0.249 0.556-0.556v-1.887c0-0.307-0.249-0.556-0.556-0.556zM25.319 20.446l-1.794-0.583c-0.293-0.095-0.606 0.065-0.7 0.357s0.065 0.606 0.357 0.7l1.794 0.583c0.057 0.019 0.115 0.027 0.172 0.027 0.234 0 0.452-0.149 0.529-0.384 0.095-0.292-0.065-0.606-0.357-0.7zM20.218 12.197c0.099 0.072 0.213 0.106 0.326 0.106 0.172 0 0.341-0.079 0.45-0.229l1.109-1.526c0.18-0.248 0.125-0.596-0.123-0.776s-0.596-0.125-0.776 0.123l-1.109 1.526c-0.18 0.248-0.125 0.596 0.123 0.776zM11.006 12.075c0.109 0.15 0.278 0.229 0.45 0.229 0.113 0 0.228-0.034 0.326-0.106 0.248-0.18 0.303-0.528 0.123-0.776l-1.109-1.526c-0.18-0.248-0.528-0.303-0.776-0.123s-0.303 0.528-0.123 0.776l1.109 1.526zM8.475 19.863l-1.794 0.583c-0.292 0.095-0.452 0.408-0.357 0.7 0.076 0.235 0.294 0.384 0.529 0.384 0.057 0 0.115-0.009 0.172-0.027l1.794-0.583c0.292-0.095 0.452-0.408 0.357-0.7s-0.408-0.452-0.7-0.357z"}))},d=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M6.348 13.197c-0.308 0-0.557 0.249-0.557 0.557s0.249 0.557 0.557 0.557c0.495 0 1.655 0.598 1.655 1.759 0 0.308 0.249 0.557 0.557 0.557s0.557-0.249 0.557-0.557c0-1.886-1.803-2.873-2.769-2.873zM25.842 3.161c0.495 0 1.655 0.598 1.655 1.759 0 0.308 0.249 0.557 0.557 0.557s0.557-0.249 0.557-0.557c0-1.886-1.802-2.873-2.769-2.873-0.308 0-0.557 0.249-0.557 0.557s0.249 0.557 0.557 0.557zM25.742 22.433c-0.826 0-1.641 0.22-2.359 0.636-0.567 0.328-1.040 0.758-1.41 1.252l-11.344-6.569c0.069-0.174 0.13-0.353 0.179-0.537 0.276-1.036 0.194-2.11-0.226-3.079l11.319-6.555c0.878 1.235 2.316 1.986 3.848 1.986 0.825 0 1.641-0.22 2.359-0.636 1.090-0.631 1.869-1.649 2.194-2.866s0.155-2.488-0.476-3.578c-0.841-1.452-2.406-2.353-4.085-2.353-0.826 0-1.641 0.22-2.359 0.636-2.051 1.188-2.872 3.694-2.015 5.833l-11.344 6.569c-0.884-1.176-2.285-1.888-3.776-1.888-0.825 0-1.641 0.22-2.359 0.636-2.25 1.303-3.021 4.194-1.718 6.444 0.841 1.452 2.406 2.353 4.085 2.353 0.826 0 1.641-0.22 2.359-0.636 0.595-0.345 1.097-0.805 1.483-1.35l11.319 6.554c-0.567 1.323-0.526 2.888 0.249 4.227 0.841 1.452 2.406 2.353 4.085 2.353 0.825 0 1.641-0.22 2.359-0.636 1.090-0.631 1.869-1.649 2.194-2.866s0.155-2.488-0.476-3.578c-0.841-1.452-2.406-2.353-4.085-2.353zM23.941 1.734c0.549-0.318 1.171-0.486 1.801-0.486 1.283 0 2.479 0.689 3.121 1.798 0.482 0.833 0.611 1.803 0.363 2.733s-0.843 1.707-1.675 2.189c-0.549 0.318-1.171 0.486-1.801 0.486-1.283 0-2.479-0.689-3.121-1.798-0.995-1.719-0.407-3.927 1.312-4.922zM8.056 19.117c-0.549 0.318-1.171 0.486-1.801 0.486-1.283 0-2.479-0.689-3.121-1.797-0.995-1.719-0.407-3.927 1.312-4.922 0.549-0.318 1.171-0.486 1.801-0.486 1.283 0 2.479 0.689 3.121 1.798 0.482 0.833 0.611 1.803 0.363 2.733s-0.843 1.707-1.675 2.189zM29.226 28.077c-0.248 0.93-0.843 1.707-1.675 2.189-0.549 0.318-1.171 0.486-1.801 0.486-1.283 0-2.479-0.689-3.121-1.797-0.995-1.719-0.407-3.927 1.312-4.922 0.549-0.318 1.171-0.486 1.801-0.486 1.283 0 2.479 0.689 3.121 1.798 0.482 0.832 0.611 1.803 0.363 2.733zM25.842 24.346c-0.308 0-0.557 0.249-0.557 0.557s0.249 0.557 0.557 0.557c0.495 0 1.655 0.598 1.655 1.759 0 0.308 0.249 0.557 0.557 0.557s0.557-0.249 0.557-0.557c0-1.886-1.802-2.873-2.769-2.873z"}))},b=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M16 27.667l7.849-7.849c0.146-0.139 0.464-0.469 0.478-0.483l0.006-0.007c1.972-2.116 3.059-4.874 3.059-7.766 0-6.282-5.11-11.392-11.392-11.392s-11.392 5.11-11.392 11.392c0 2.893 1.086 5.651 3.058 7.766l8.334 8.339zM16 1.265c5.677 0 10.297 4.619 10.297 10.297 0 2.613-0.981 5.104-2.761 7.016-0.092 0.096-0.343 0.353-0.446 0.451l-7.089 7.089-7.539-7.543c-1.779-1.911-2.758-4.401-2.758-7.012 0-5.678 4.619-10.297 10.297-10.297zM17.755 4.005c1.966 0 5.792 2.149 5.792 6.090 0 0.303 0.245 0.548 0.548 0.548s0.548-0.245 0.548-0.548c0-2.051-0.906-3.953-2.552-5.354-1.306-1.112-3.008-1.831-4.335-1.831-0.302 0-0.548 0.245-0.548 0.548s0.245 0.548 0.548 0.548zM22.875 24.197c-0.427-0.174-0.886-0.33-1.371-0.467l-0.897 0.897c2.645 0.631 4.275 1.756 4.275 2.802 0 1.564-3.648 3.306-8.882 3.306s-8.882-1.742-8.882-3.306c0-1.045 1.631-2.171 4.275-2.802l-0.897-0.897c-0.485 0.137-0.944 0.293-1.371 0.467-2.001 0.818-3.102 1.966-3.102 3.232s1.102 2.415 3.102 3.232c1.845 0.754 4.287 1.169 6.875 1.169s5.030-0.415 6.875-1.169c2.001-0.818 3.102-1.966 3.102-3.232s-1.102-2.415-3.102-3.232zM16.032 16.804c-3.043 0-5.519-2.476-5.519-5.519s2.476-5.519 5.519-5.519c3.043 0 5.519 2.476 5.519 5.519s-2.476 5.519-5.519 5.519zM16.032 6.862c-2.439 0-4.423 1.984-4.423 4.423s1.984 4.423 4.423 4.423c2.439 0 4.423-1.984 4.423-4.423s-1.984-4.423-4.423-4.423z"}))},g=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M4.285 5.775c0.004 0 0.009 0.001 0.013 0.001h8.279c0.307 0 0.556-0.249 0.556-0.556s-0.249-0.556-0.556-0.556h-8.279c-0.307 0-0.556 0.249-0.556 0.556 0 0.302 0.242 0.548 0.542 0.555zM3.743 8.005c0 0.307 0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556s-0.249-0.556-0.556-0.556h-13.679c-0.307 0-0.556 0.249-0.556 0.556zM17.977 10.236h-13.679c-0.145 0-0.276 0.056-0.375 0.147-0.11 0.102-0.18 0.247-0.18 0.409 0 0.307 0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556 0-0.162-0.070-0.307-0.18-0.409-0.099-0.091-0.23-0.147-0.375-0.147zM17.977 13.022h-13.679c-0.307 0-0.556 0.249-0.556 0.556s0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556s-0.249-0.556-0.556-0.556zM17.977 15.807h-13.679c-0.145 0-0.276 0.056-0.375 0.147-0.11 0.102-0.18 0.247-0.18 0.409 0 0.307 0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556 0-0.162-0.070-0.307-0.18-0.409-0.099-0.091-0.23-0.147-0.375-0.147zM17.977 18.593h-13.679c-0.307 0-0.556 0.249-0.556 0.555s0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556s-0.249-0.555-0.556-0.555zM17.977 21.379h-13.679c-0.307 0-0.556 0.249-0.556 0.556s0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556s-0.249-0.556-0.556-0.556zM17.977 24.165h-13.679c-0.145 0-0.276 0.056-0.375 0.147-0.11 0.102-0.18 0.247-0.18 0.409 0 0.307 0.249 0.556 0.556 0.556h13.679c0.307 0 0.556-0.249 0.556-0.556 0-0.162-0.070-0.307-0.18-0.409-0.099-0.091-0.23-0.147-0.375-0.147zM21.93 4.466l-4.277-3.87c-0.094-0.085-0.212-0.132-0.334-0.139h-15.831c-0.812 0-1.473 0.664-1.473 1.481v28.153c0 0.817 0.661 1.481 1.473 1.481h19.174c0.812 0 1.473-0.664 1.473-1.481v-25.222c-0.008-0.163-0.086-0.308-0.205-0.403zM17.833 2.238l2.331 2.109h-2.331v-2.109zM21.043 30.091c0 0.215-0.171 0.39-0.381 0.39h-19.174c-0.21 0-0.382-0.175-0.382-0.39v-28.153c0-0.215 0.171-0.39 0.382-0.39h15.251v3.348c0 0.303 0.245 0.549 0.547 0.549h3.758v24.647zM31.975 3.213c-0.125-1.57-1.442-2.809-3.044-2.809-0 0-0 0-0 0-0.816 0-1.583 0.318-2.16 0.895-0.519 0.519-0.827 1.191-0.884 1.915h-0.010v0.242c0 0.001-0 0.002-0 0.003s0 0.001 0 0.001l-0 24.342h0.003c0.010 0.096 0.045 0.191 0.108 0.273l2.509 3.305c0.103 0.136 0.264 0.216 0.435 0.216s0.331-0.080 0.435-0.216l2.508-3.305c0.063-0.083 0.098-0.177 0.108-0.274h0.003v-24.589h-0.011zM27.543 2.070c0.371-0.371 0.864-0.575 1.388-0.575h0c0.893 0 1.649 0.6 1.886 1.417h-3.772c0.091-0.315 0.26-0.604 0.498-0.842zM28.362 26.711l-1.394 0 0-22.406h3.926v22.406h-1.442l0-18.071-1.090 0 0 18.071zM28.931 30.148l-1.781-2.346 3.562-0-1.781 2.346z"}))},h=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M31.908 1.543c0-0.815-0.677-1.478-1.51-1.478h-28.731c-0.815 0-1.478 0.677-1.478 1.51v14.441c0 0.022 0.002 0.044 0.004 0.065-0.003 0.021-0.004 0.043-0.004 0.065v14.357c0 0.815 0.677 1.478 1.51 1.478h28.731c0.815 0 1.478-0.677 1.478-1.51v-14.441c0-0.022-0.002-0.044-0.004-0.065 0.003-0.021 0.004-0.043 0.004-0.065v-14.357zM30.792 1.543v13.799h-4.324c0.587-0.66 0.932-1.525 0.932-2.453 0-0.737-0.218-1.423-0.592-2-0.648-1.066-1.82-1.78-3.156-1.78-2.034 0-3.689 1.655-3.689 3.689 0 0.745 0.223 1.449 0.615 2.039 0.111 0.178 0.236 0.347 0.376 0.504h-4.372v-6.025c0-0.184-0.090-0.347-0.228-0.449-0.101-0.103-0.242-0.167-0.398-0.167h-0.173c-0.24 0-0.453 0.153-0.529 0.38-0.352 1.049-1.332 1.754-2.439 1.754-0.419 0-0.815-0.101-1.166-0.28-0.776-0.444-1.301-1.279-1.301-2.235 0-1.419 1.154-2.574 2.574-2.574 0.408 0 0.799 0.096 1.147 0.27 0.546 0.305 0.976 0.804 1.185 1.426 0.052 0.155 0.169 0.275 0.314 0.335 0.092 0.065 0.204 0.103 0.322 0.103h0.133c0.308 0 0.558-0.25 0.558-0.558v-6.142h13.816c0.217 0 0.394 0.162 0.394 0.362zM1.305 1.575c0-0.217 0.162-0.394 0.362-0.394h13.732v4.404c-0.239-0.216-0.505-0.401-0.793-0.549-0.536-0.297-1.148-0.464-1.791-0.464-2.034 0-3.689 1.655-3.689 3.689 0 1.423 0.81 2.659 1.992 3.274 0.534 0.301 1.149 0.473 1.804 0.473 0.939 0 1.813-0.354 2.476-0.955v4.404h-6.016c-0.308 0-0.558 0.25-0.558 0.558v0.173c0 0.127 0.043 0.245 0.117 0.34 0.065 0.129 0.178 0.231 0.321 0.279 0.562 0.189 1.023 0.558 1.332 1.030 0.232 0.39 0.364 0.842 0.364 1.318 0 1.419-1.154 2.574-2.574 2.574-0.894 0-1.682-0.458-2.144-1.151-0.236-0.389-0.372-0.844-0.372-1.331-0-1.107 0.705-2.087 1.754-2.44 0.227-0.076 0.38-0.289 0.38-0.529v-0.133c0-0.106-0.030-0.204-0.081-0.288-0.068-0.231-0.282-0.4-0.535-0.4h-6.084v-13.883zM1.305 30.505v-13.799h4.324c-0.587 0.66-0.932 1.525-0.932 2.453 0 0.737 0.218 1.424 0.592 2 0.647 1.066 1.82 1.78 3.156 1.78 2.034 0 3.689-1.655 3.689-3.689-0-0.745-0.223-1.449-0.615-2.040-0.111-0.178-0.236-0.347-0.376-0.504h4.372v6.025c0 0.184 0.090 0.347 0.228 0.449 0.101 0.103 0.242 0.167 0.398 0.167h0.173c0.24 0 0.453-0.153 0.529-0.38 0.352-1.049 1.332-1.754 2.439-1.754 0.419 0 0.815 0.101 1.165 0.28 0.776 0.444 1.301 1.279 1.301 2.236 0 1.419-1.154 2.574-2.574 2.574-0.408 0-0.799-0.096-1.147-0.27-0.546-0.305-0.976-0.804-1.185-1.426-0.052-0.155-0.169-0.275-0.314-0.336-0.092-0.065-0.204-0.103-0.322-0.103h-0.133c-0.308 0-0.558 0.25-0.558 0.558v6.142h-13.816c-0.217-0-0.394-0.163-0.394-0.362zM30.792 30.472c0 0.217-0.162 0.394-0.362 0.394h-13.732v-4.404c0.239 0.216 0.505 0.401 0.792 0.548 0.536 0.297 1.148 0.464 1.791 0.464 2.034 0 3.689-1.655 3.689-3.689 0-1.423-0.81-2.659-1.993-3.274-0.534-0.301-1.149-0.473-1.804-0.473-0.939 0-1.813 0.354-2.476 0.955v-4.404h6.016c0.308 0 0.558-0.25 0.558-0.558v-0.173c0-0.126-0.044-0.245-0.117-0.34-0.064-0.129-0.178-0.231-0.321-0.279-0.562-0.189-1.023-0.558-1.332-1.030-0.232-0.389-0.363-0.842-0.363-1.318 0-1.419 1.154-2.574 2.574-2.574 0.894 0 1.682 0.458 2.144 1.151 0.236 0.389 0.372 0.844 0.372 1.331 0 1.107-0.705 2.087-1.754 2.439-0.227 0.076-0.38 0.289-0.38 0.529v0.133c0 0.106 0.030 0.204 0.081 0.289 0.068 0.231 0.282 0.4 0.535 0.4h6.084v13.883z"}))},f=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M15.517 23.581c-0.036 0.002-0.069-0.003-0.102-0.009-0.108-0.019-0.211-0.070-0.294-0.153l-9.153-9.153c-0.104-0.104-0.162-0.245-0.162-0.392s0.058-0.288 0.163-0.392l2.13-2.129c0.217-0.217 0.568-0.217 0.784 0l6.633 6.633 12.94-12.94c0.217-0.217 0.568-0.217 0.785 0l2.13 2.13c0.104 0.104 0.163 0.245 0.163 0.392s-0.058 0.288-0.162 0.392l-15.46 15.46c-0.104 0.104-0.245 0.163-0.392 0.163zM7.145 13.873l8.37 8.37 14.678-14.678-1.345-1.345-12.94 12.94c-0.217 0.217-0.568 0.217-0.785 0l-6.633-6.633-1.345 1.345zM30.087 11.781c0.401 1.337 0.618 2.753 0.618 4.219 0 8.108-6.596 14.704-14.705 14.704s-14.704-6.596-14.704-14.704c0-8.108 6.596-14.705 14.704-14.705 3.79 0 7.25 1.442 9.86 3.805l0.785-0.785c-2.812-2.564-6.549-4.129-10.645-4.129-8.72 0-15.814 7.094-15.814 15.814s7.094 15.814 15.814 15.814c8.72 0 15.814-7.094 15.814-15.814 0-1.784-0.297-3.501-0.845-5.102l-0.883 0.883z"}))},y=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M17.425 25.368h-3.22v-2.107c-1.234-0.109-2.518-0.463-3.389-0.944l-0.373-0.206 0.93-3.628 0.622 0.341c0.602 0.33 1.835 0.883 3.323 0.883 0.769 0 1.545-0.244 1.545-0.789 0-0.365-0.235-0.783-1.938-1.358-1.985-0.668-4.264-1.78-4.264-4.477 0-2.098 1.387-3.709 3.652-4.289v-2.162h3.22v1.931c1.366 0.11 2.263 0.465 2.838 0.736l0.416 0.196-0.937 3.53-0.621-0.298c-0.539-0.259-1.442-0.692-2.853-0.692-0.488 0-1.307 0.088-1.307 0.681 0 0.448 1.192 0.94 2.231 1.319 2.781 0.973 3.971 2.344 3.971 4.58 0 1.114-0.391 2.124-1.13 2.922-0.668 0.721-1.601 1.236-2.716 1.503v2.328zM15.307 24.266h1.016v-2.139l0.457-0.079c2.090-0.36 3.389-1.676 3.389-3.433 0-1.446-0.551-2.601-3.24-3.542-1.624-0.592-2.962-1.176-2.962-2.357 0-0.862 0.633-1.783 2.409-1.783 1.213 0 2.119 0.278 2.746 0.536l0.36-1.354c-0.565-0.222-1.372-0.445-2.517-0.479l-0.535-0.016v-1.886h-1.016v1.959l-0.45 0.084c-2.005 0.375-3.202 1.61-3.202 3.305 0 1.577 1.051 2.604 3.514 3.432 1.396 0.472 2.688 1.089 2.688 2.402 0 1.149-1.039 1.891-2.647 1.891-1.312 0-2.447-0.366-3.222-0.708l-0.369 1.437c0.709 0.309 1.808 0.617 3.045 0.654l0.535 0.016v2.058zM15.901 30.607c-8.054 0-14.607-6.552-14.607-14.606s6.552-14.607 14.607-14.607c8.054 0 14.607 6.552 14.607 14.607 0 2.567-0.667 4.981-1.834 7.079l1.095 0.293c1.174-2.2 1.841-4.71 1.841-7.373 0-8.662-7.047-15.709-15.709-15.709s-15.709 7.047-15.709 15.709 7.047 15.709 15.709 15.709c2.752 0 5.34-0.712 7.592-1.96l-0.294-1.099c-2.148 1.244-4.641 1.957-7.297 1.957zM29.539 31.709c-0.141 0-0.282-0.054-0.39-0.161l-2.673-2.673-0.86 1.786c-0.1 0.208-0.32 0.331-0.548 0.31s-0.421-0.184-0.481-0.406l-1.977-7.377c-0.051-0.19 0.004-0.393 0.143-0.532s0.342-0.194 0.532-0.143l7.377 1.977c0.222 0.060 0.385 0.252 0.406 0.481s-0.102 0.448-0.31 0.548l-1.787 0.86 2.673 2.672c0.103 0.103 0.161 0.244 0.161 0.39s-0.058 0.286-0.161 0.39l-1.717 1.717c-0.108 0.107-0.249 0.161-0.39 0.161zM26.318 27.385c0.145 0 0.285 0.057 0.39 0.161l2.832 2.832 0.938-0.938-2.832-2.832c-0.126-0.126-0.184-0.306-0.154-0.482s0.143-0.327 0.304-0.404l1.148-0.552-5.020-1.345 1.345 5.020 0.552-1.148c0.077-0.161 0.228-0.274 0.404-0.304 0.031-0.005 0.062-0.008 0.092-0.008zM20.272 5.201c1.977 0 5.826 2.162 5.826 6.126 0 0.304 0.247 0.551 0.551 0.551s0.551-0.247 0.551-0.551c0-2.063-0.912-3.976-2.568-5.387-1.314-1.119-3.025-1.842-4.361-1.842-0.304 0-0.551 0.247-0.551 0.551s0.247 0.551 0.551 0.551z"}))},w=function(){return wp.element.createElement(l,{viewBox:"0 0 32 32",style:{padding:"1px",fill:"#000000"},xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M31.438 1.423h-30.877c-0.31 0-0.562 0.251-0.562 0.562v22.175c0 0.31 0.251 0.562 0.562 0.562h3.103v5.294c0 0.201 0.107 0.386 0.281 0.486 0.087 0.050 0.184 0.075 0.281 0.075s0.194-0.025 0.281-0.075l10.012-5.78h16.919c0.31 0 0.562-0.251 0.562-0.562v-22.175c0-0.31-0.251-0.562-0.562-0.562zM30.877 23.598h-16.508c-0.099 0-0.195 0.026-0.281 0.075l-9.3 5.369v-4.883c0-0.31-0.251-0.562-0.562-0.562h-3.103v-21.052h29.753v21.052zM4.386 7.532h22.894c0.31 0 0.562-0.251 0.562-0.562s-0.251-0.562-0.562-0.562h-22.894c-0.31 0-0.562 0.251-0.562 0.562s0.251 0.562 0.562 0.562zM4.386 11.865h22.894c0.31 0 0.562-0.251 0.562-0.562s-0.251-0.562-0.562-0.562h-22.894c-0.31 0-0.562 0.251-0.562 0.562s0.251 0.562 0.562 0.562zM4.386 16.198h22.894c0.31 0 0.562-0.251 0.562-0.562s-0.251-0.562-0.562-0.562h-22.894c-0.31 0-0.562 0.251-0.562 0.562s0.251 0.562 0.562 0.562zM4.386 20.53h22.894c0.31 0 0.562-0.251 0.562-0.562s-0.251-0.562-0.562-0.562h-22.894c-0.31 0-0.562 0.252-0.562 0.562s0.251 0.562 0.562 0.562z"}))},v=function(){return wp.element.createElement(l,{viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"}))},k=function(){return wp.element.createElement(l,{className:"custom-icon",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z"}),wp.element.createElement("rect",{x:"4.489",y:"4.744",width:"11.022",height:"2.512"}))},E=function(){return wp.element.createElement(l,{className:"custom-icon",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z"}),wp.element.createElement("rect",{y:"8.744",width:"11.022",x:"4.489",height:"2.512"}))},C=function(){return wp.element.createElement(l,{className:"custom-icon",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},wp.element.createElement(a,{d:"M17.294,17.287l-14.588,0l0,-14.574l14.588,0c0,4.858 0,9.716 0,14.574Zm-13.738,-0.85l12.888,0l0,-12.874l-12.888,0c0,4.291 0,8.583 0,12.874Z"}),wp.element.createElement("rect",{x:"4.489",y:"12.802",width:"11.022",height:"2.512"}))},x=wp.element.createElement(l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"20",height:"20"},wp.element.createElement(a,{d:"M5 5H3v2h2V5zm3 8h11v-2H8v2zm9-8H6v2h11V5zM7 11H5v2h2v-2zm0 8h2v-2H7v2zm3-2v2h11v-2H10z"}))},function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return l}));var o=wp.i18n.__,a=function(e){var t=document.createElement("div");return t.innerHTML=e,void 0!==t.innerText?t.innerText:t.textContent},l=function(e){var t=[o("January"),o("February"),o("March"),o("April"),o("May"),o("June"),o("July"),o("August"),o("September"),o("October"),o("November"),o("December")],n=(e=new Date(e)).getDate(),a=e.getMonth(),l=e.getFullYear();return n+" "+t[a]+", "+l}},function(e,t,n){"use strict";var o=n(0),a=n.n(o);n(57);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function i(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var p=wp.i18n.__,u=wp.components,m=u.Dropdown,d=u.IconButton,b=u.RangeControl,g=wp.compose.withInstanceId,h=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,c(t).apply(this,arguments))}var n,o,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){var e=this,t="inspector-sizing-control-".concat(this.props.instanceId);return this.props.options&&1>this.props.options.length?p("Please specify more options."):wp.element.createElement("div",{id:t,className:"wp-block-themeisle-blocks-sizing-control"},wp.element.createElement("div",{className:"components-base-control__field"},this.props.label&&wp.element.createElement("label",{className:"components-base-control__label",htmlFor:t},this.props.label),wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-sizing-control-wrapper",{linking:this.props.type})},this.props.options.map((function(t,n){return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-sizing-control-item"},t.disabled?wp.element.createElement("input",{type:"number",disabled:t.disabled,className:"wp-block-themeisle-blocks-sizing-control-item-input",id:"wp-block-themeisle-blocks-sizing-control-item-input-".concat(n)}):wp.element.createElement(m,{position:"top center",focusOnMount:!1,renderToggle:function(o){o.isOpen;var a=o.onToggle;return wp.element.createElement("input",{type:"number",className:"wp-block-themeisle-blocks-sizing-control-item-input",id:"wp-block-themeisle-blocks-sizing-control-item-input-".concat(n,"-").concat(e.props.instanceId),value:t.value,min:e.props.min,max:e.props.max,onFocus:a,onChange:function(n){return e.props.onChange(t.type,parseInt(n.target.value))}})},renderContent:function(n){return n.onToggle,wp.element.createElement("div",{className:"wp-block-themeisle-blocks-sizing-control-overlay"},wp.element.createElement(b,{value:t.value,initialPosition:t.value,beforeIcon:"minus",afterIcon:"plus",min:e.props.min,max:e.props.max,onChange:function(n){return e.props.onChange(t.type,n)}}))}}),t.label&&wp.element.createElement("label",{className:"wp-block-themeisle-blocks-sizing-control-item-label",htmlFor:"wp-block-themeisle-blocks-sizing-control-item-input-".concat(n,"-").concat(e.props.instanceId)},t.label))})),this.props.type&&wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-sizing-control-item","toggle-linking",{"is-linked":"linked"===this.props.type})},wp.element.createElement(d,{icon:"linked"===this.props.type?"admin-links":"editor-unlink",tooltip:"linked"===this.props.type?p("Unlink Values"):p("Link Values"),className:"wp-block-themeisle-blocks-sizing-control-item-input",onClick:function(){return e.props.changeType("linked"===e.props.type?"unlinked":"linked")}})))))}}])&&r(n.prototype,o),l&&r(n,l),t}(wp.element.Component);t.a=g(h)},,function(e,t,n){"use strict";var o=n(0),a=n.n(o),l=(n(56),wp.i18n.__),r=wp.components,i=r.Button,c=r.Dashicon,s=r.Dropdown,p=r.IconButton,u=wp.compose.withInstanceId;t.a=u((function(e){var t=e.label,n=e.instanceId,o=e.changeViewType,r=e.view,u=e.children,m="inspector-responsive-control-".concat(n);return wp.element.createElement("div",{id:m,className:"wp-block-themeisle-blocks-responsive-control"},wp.element.createElement("div",{className:"components-base-control__field"},wp.element.createElement("div",{className:"components-base-control__title"},wp.element.createElement("label",{className:"components-base-control__label"},t),wp.element.createElement("div",{className:"floating-controls"},wp.element.createElement(s,{position:"top left",renderToggle:function(e){var t=e.isOpen,n=e.onToggle;return wp.element.createElement(p,{icon:"mobile"===r?"smartphone":r,label:l("Responsiveness Settings"),className:"is-button",onClick:n,"aria-expanded":t})},renderContent:function(e){var t=e.onToggle;return wp.element.createElement("div",{className:"wp-block-themeisle-responsiveness-settings"},wp.element.createElement("div",{className:"responsiveness-title"},l("Responsiveness Settings")),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"desktop"===r}),onClick:function(){t(),o("desktop")}},wp.element.createElement(c,{icon:"desktop"}),wp.element.createElement("span",{className:"popover-title"},l("Desktop"))),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"tablet"===r}),onClick:function(){t(),o("tablet")}},wp.element.createElement(c,{icon:"tablet"}),wp.element.createElement("span",{className:"popover-title"},l("Tablet Devices"))),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"mobile"===r}),onClick:function(){t(),o("mobile")}},wp.element.createElement(c,{icon:"smartphone"}),wp.element.createElement("span",{className:"popover-title"},l("Smartphones"))))}}))),u))}))},function(e,t,n){"use strict";n(55);var o=wp.components,a=o.Dropdown,l=o.IconButton,r=wp.compose.withInstanceId;t.a=r((function(e){var t=e.label,n=e.instanceId,o=e.children,r="inspector-control-panel-control-".concat(n);return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-control-panel-control"},wp.element.createElement("div",{className:"components-base-control__field"},wp.element.createElement("div",{className:"components-base-control__title"},wp.element.createElement("label",{className:"components-base-control__label",for:r},t),wp.element.createElement("div",{className:"floating-controls"},wp.element.createElement(a,{position:"top left",headerTitle:t,expandOnMobile:!0,renderToggle:function(e){var n=e.isOpen,o=e.onToggle;return wp.element.createElement(l,{id:r,icon:"admin-settings",label:t,className:"is-button",onClick:o,"aria-expanded":n})},renderContent:function(){return wp.element.createElement("div",{className:"wp-block-themeisle-popover-settings"},o)}})))))}))},function(e,t){e.exports=React},function(e,t,n){"use strict";n.r(t);var o=n(0),a=n.n(o),l=(n(100),n(101),wp.components),r=l.SVG,i=l.Path;t.default=function(e){var t=e.type,n=e.front,o=e.style,l=e.fill,c=e.invert,s=e.width,p=e.height;return"none"!==o&&wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-advanced-columns-separators",t),style:!n&&s?{transform:"".concat(s?"scaleX( ".concat(s/100," )"):"")}:{}},"bigTriangle"===o&&!1===c&&wp.element.createElement(r,{id:"bigTriangle",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"bottom"===t?{transform:"".concat("bottom"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 0 L50 100 L100 0 Z"})),"bigTriangle"===o&&!0===c&&wp.element.createElement(r,{id:"bigTriangle",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"top"===t?{transform:"".concat("top"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M100, 0l-50, 100l-50, -100l0, 100l100, 0l0, -100Z"})),"rightCurve"===o&&!1===c&&wp.element.createElement(r,{id:"rightCurve",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"top"===t?{transform:"".concat("top"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 100 C 20 0 50 0 100 100 Z"})),"rightCurve"===o&&!0===c&&wp.element.createElement(r,{id:"rightCurve",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"top"===t?{transform:"".concat("top"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 100 C 50 0 70 0 100 100 Z"})),"curve"===o&&wp.element.createElement(r,{id:"curve",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"top"===t?{transform:"".concat("top"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 100 C40 0 60 0 100 100 Z"})),"slant"===o&&!1===c&&wp.element.createElement(r,{id:"slant",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"bottom"===t?{transform:"".concat("bottom"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 0 L100 100 L100 0 Z"})),"slant"===o&&!0===c&&wp.element.createElement(r,{id:"slant",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"bottom"===t?{transform:"".concat("bottom"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M0 0 L0 100 L100 0 Z"})),"cloud"===o&&wp.element.createElement(r,{id:"cloud",fill:l,viewBox:"0 0 100 100",width:"100%",height:p?"".concat(p,"px"):"100",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg",style:"top"===t?{transform:"".concat("top"===t?"rotate(180deg)":"")}:{}},wp.element.createElement(i,{d:"M-5 100 Q 10 -100 15 100 Z M10 100 Q 20 -20 30 100 M25 100 Q 35 -70 45 100 M40 100 Q 50 -100 60 100 M55 100 Q 65 -20 75 100 M70 100 Q 75 -45 90 100 M85 100 Q 90 -50 95 100 M90 100 Q 95 -25 105 100 Z"})))}},,function(e,t,n){"use strict";n.r(t);var o=n(0),a=n.n(o),l=(n(90),n(2)),r=wp.i18n.__,i=wp.components,c=i.Button,s=i.ButtonGroup,p=i.Icon,u=i.IconButton,m=i.Tooltip,d=wp.compose.withInstanceId;t.default=d((function(e){var t=e.label,n=e.instanceId,o=e.backgroundType,i=e.changeBackgroundType,d="inspector-background-control-".concat(n);return wp.element.createElement("div",{id:d,className:"components-base-control wp-block-themeisle-blocks-advanced-columns-background-control"},wp.element.createElement("div",{className:"components-base-control__field"},wp.element.createElement("div",{className:"components-base-control__title"},wp.element.createElement("label",{className:"components-base-control__label"},t),wp.element.createElement(s,{className:"linking-controls"},wp.element.createElement(u,{icon:"admin-customizer",label:r("Color"),className:a()("is-button",{"is-primary":"color"===o}),onClick:function(){i("color")}}),wp.element.createElement(u,{icon:"format-image",label:r("Image"),className:a()("is-button",{"is-primary":"image"===o}),onClick:function(){i("image")}}),wp.element.createElement(m,{text:r("Gradient")},wp.element.createElement(c,{label:r("Gradient"),className:a()("is-button",{"is-primary":"gradient"===o}),onClick:function(){i("gradient")}},wp.element.createElement(p,{icon:l.b})))))))}))},function(e,t,n){"use strict";var o=n(0),a=n.n(o);n(54);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(e,t,n,o,a,l,r){try{var i=e[l](r),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function c(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function s(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var m=lodash,d=m.startCase,b=m.toLower,g=wp.i18n.__,h=wp.compose.withInstanceId,f=wp.components,y=f.Button,w=f.BaseControl,v=f.Dropdown,k=f.MenuGroup,E=f.MenuItem,C=f.SelectControl,x=f.TextControl,T=function(e){function t(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=s(this,p(t).apply(this,arguments))).state={fonts:null,font:[],variants:null,search:""},e}var n,o,l,m,h;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:(m=regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("https://www.googleapis.com/webfonts/v1/webfonts?key=AIzaSyClGdkPJ1BvgLOol5JAkQY4Mv2lkLYu00k").then((function(e){return e.json()})).then((function(e){t.setState({fonts:e.items}),t.props.value&&e.items.find((function(e){if(t.props.value===e.family){var n=e.variants.filter((function(e){return!1===e.includes("italic")})).map((function(e){return{label:d(b(e)),value:e}}));return t.setState({variants:n})}}))}));case 2:case"end":return e.stop()}}),e)})),h=function(){var e=this,t=arguments;return new Promise((function(n,o){var a=m.apply(e,t);function l(e){i(a,n,o,l,r,"next",e)}function r(e){i(a,n,o,l,r,"throw",e)}l(void 0)}))},function(){return h.apply(this,arguments)})},{key:"render",value:function(){var e=this,t="inspector-google-fonts-control-".concat(this.props.instanceId);return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-google-fonts-control"},wp.element.createElement(w,{label:this.props.label,id:t},null!==this.state.fonts?this.props.isSelect?wp.element.createElement(C,{value:this.props.value||"",id:t,options:[{label:g("Default"),value:""}].concat(r(this.state.fonts.map((function(e){return{label:e.family,value:e.family}})))),onChange:function(t){e.props.onChangeFontFamily(t),e.props.onChangeFontVariant("regular");var n=e.state.fonts.find((function(e){return t===e.family})),o=n.variants.filter((function(e){return!1===e.includes("italic")})).map((function(e){return{label:d(b(e)),value:e}}));e.setState({font:n,variants:o})}}):wp.element.createElement(v,{contentClassName:"wp-block-themeisle-blocks-google-fonts-popover",position:"bottom center",renderToggle:function(n){var o=n.isOpen,a=n.onToggle;return wp.element.createElement(y,{isLarge:!0,className:"wp-block-themeisle-blocks-google-fonts-button",id:t,onClick:a,"aria-expanded":o},e.props.value?e.props.value:g("Select Font Family"))},renderContent:function(t){var n=t.onToggle;return wp.element.createElement(k,{label:g("Google Fonts")},wp.element.createElement(x,{value:e.state.search,onChange:function(t){return e.setState({search:t})}}),wp.element.createElement("div",{className:"components-popover__items"},wp.element.createElement(E,{onClick:function(){n(),e.props.onChangeFontFamily(""),e.setState({font:[],variants:[],search:""})}},g("Default")),e.state.fonts.map((function(t){if(!e.state.search||t.family.toLowerCase().includes(e.state.search.toLowerCase()))return wp.element.createElement(E,{className:a()({"is-selected":t.family===e.props.value}),onClick:function(){n(),e.props.onChangeFontFamily(t.family),e.props.onChangeFontVariant("regular");var o=t.variants.filter((function(e){return!1===e.includes("italic")})).map((function(e){return{label:d(b(e)),value:e}}));e.setState({font:t,variants:o,search:""})}},t.family)}))))}}):g("Loading…")),this.state.variants&&wp.element.createElement(C,{label:g("Font Width"),value:this.props.valueVariant||"regular",options:this.state.variants,onChange:this.props.onChangeFontVariant}),wp.element.createElement(C,{label:g("Font Style"),value:this.props.valueStyle,options:[{label:g("Regular"),value:"normal"},{label:g("Italic"),value:"italic"}],onChange:this.props.onChangeFontStyle}),!this.props.disableTransform&&wp.element.createElement(C,{label:g("Font Transform"),value:this.props.valueTransform,options:[{label:g("Default"),value:"none"},{label:g("Uppercase"),value:"uppercase"},{label:g("Lowercase"),value:"lowercase"},{label:g("Capitalize"),value:"capitalize"}],onChange:this.props.onChangeTextTransform}))}}])&&c(n.prototype,o),l&&c(n,l),t}(wp.element.Component);t.a=h(T)},,function(e,t,n){"use strict";n.d(t,"b",(function(){return b})),n.d(t,"a",(function(){return g}));var o=n(0),a=n.n(o),l=(n(84),wp.components),r=l.BaseControl,i=l.Button,c=l.Dropdown,s=l.IconButton,p=l.Toolbar,u=wp.compose.withInstanceId,m=(wp.blockEditor||wp.editor).BlockControls,d=wp.element.Fragment,b=u((function(e){var t=e.instanceId,n=e.label,o=e.value,l=e.options,c=e.onChange,s="inspector-style-switcher-control-".concat(t);return wp.element.createElement(r,{id:s,label:n},wp.element.createElement("div",{className:"wp-block-themeisle-blocks-style-switcher"},l.map((function(e){return wp.element.createElement(i,{className:a()("blocks-style-switcher-item",{"is-active":e.value===o}),tabIndex:"0",onClick:function(){return function(e){return c(e)}(e.value)}},wp.element.createElement("div",{className:"blocks-style-switcher-item-preview"},wp.element.createElement("img",{src:e.image})),wp.element.createElement("div",{className:"blocks-style-switcher-item-label"},e.label))}))))})),g=function(e){var t=e.label,n=e.value,o=e.options,l=e.onChange;return wp.element.createElement(m,null,wp.element.createElement(p,{className:"wp-themesiel-blocks-block-styles-components-toolbar"},wp.element.createElement(c,{contentClassName:"wp-themesiel-blocks-block-styles-popover-content",position:"bottom center",renderToggle:function(e){var n=e.isOpen,o=e.onToggle;return wp.element.createElement(s,{className:"components-dropdown-menu__toggle",icon:"admin-appearance",onClick:o,"aria-haspopup":"true","aria-expanded":n,label:t,tooltip:t},wp.element.createElement("span",{className:"components-dropdown-menu__indicator"}))},renderContent:function(){return wp.element.createElement(d,null,wp.element.createElement("div",{className:"wp-block-themeisle-blocks-style-switcher"},o.map((function(e){return wp.element.createElement(i,{className:a()("blocks-style-switcher-item",{"is-active":e.value===n}),tabIndex:"0",onClick:function(){return function(e){return l(e)}(e.value)}},wp.element.createElement("div",{className:"blocks-style-switcher-item-preview"},wp.element.createElement("img",{src:e.image})),wp.element.createElement("div",{className:"blocks-style-switcher-item-label"},e.label))}))))}})))}},function(e,t){e.exports=ReactDOM},,function(e,t,n){"use strict";var o=n(0),a=n.n(o),l=n(38);n(60);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var u=wp.i18n.__,m=wp.apiFetch,d=wp.components,b=d.BaseControl,g=d.IconButton,h=d.Popover,f=wp.compose,y=f.compose,w=f.withInstanceId,v=wp.data.withSelect,k=wp.element,E=k.Component,C=k.createRef,x=wp.keycodes,T=x.DOWN,S=x.ENTER,B=x.TAB,O=x.UP,M=wp.url.addQueryArgs,L=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=c(t).apply(this,arguments))||"object"!==r(o)&&"function"!=typeof o?s(n):o).bindSuggestionNode=e.bindSuggestionNode.bind(s(e)),e.updateSuggestions=e.updateSuggestions.bind(s(e)),e.onChangeValue=e.onChangeValue.bind(s(e)),e.clickSuggestion=e.clickSuggestion.bind(s(e)),e.onKeyDown=e.onKeyDown.bind(s(e)),e.autocompleteRef=e.autocompleteRef||C(),e.scrollingIntoView=!1,e.suggestionNodes=[],e.state={isOpen:!1,showSuggestions:!1,selectedSuggestion:null,suggestions:[]},e}var n,o,d;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(t,e),n=t,(o=[{key:"componentDidUpdate",value:function(){var e=this;this.state.showSuggestions&&null!==this.state.selectedSuggestion&&!this.scrollingIntoView&&null!==this.autocompleteRef.current&&(this.scrollingIntoView=!0,Object(l.a)(this.suggestionNodes[this.state.selectedSuggestion],this.autocompleteRef.current,{onlyScrollIfNeeded:!0}),setTimeout((function(){e.scrollingIntoView=!1}),100))}},{key:"componentWillUnmount",value:function(){delete this.suggestionsRequest}},{key:"bindSuggestionNode",value:function(e){var t=this;return function(n){t.suggestionNodes[e]=n}}},{key:"updateSuggestions",value:function(e){var t,n=this,o=this.props.fetchLinkSuggestions;1>=e.length||/^https?:/.test(e)?this.setState({showSuggestions:!1}):(this.setState({showSuggestions:!0}),(t=o?o(e):m({path:M("/wp/v2/search",{search:e,per_page:20,type:"post"})})).then((function(e){n.suggestionsRequest===t&&n.setState({suggestions:e})})),this.suggestionsRequest=t)}},{key:"onChangeValue",value:function(e){this.props.onChange(e.target.value),this.props.suggestions||this.updateSuggestions(e.target.value)}},{key:"clickSuggestion",value:function(e){this.props.onChange(e),this.setState({showSuggestions:!1})}},{key:"onKeyDown",value:function(e){if(this.state.showSuggestions&&1<=this.state.suggestions.length){var t=this.state.suggestions[this.state.selectedSuggestion];switch(e.keyCode){case O:e.stopPropagation(),e.preventDefault();var n=this.state.selectedSuggestion?this.state.selectedSuggestion-1:this.state.suggestions.length-1;this.setState({selectedSuggestion:n});break;case T:e.stopPropagation(),e.preventDefault();var o=null===this.state.selectedSuggestion||this.state.selectedSuggestion===this.state.suggestions.length-1?0:this.state.selectedSuggestion+1;this.setState({selectedSuggestion:o});break;case B:case S:null!==this.state.selectedSuggestion&&(e.stopPropagation(),this.clickSuggestion(t.url))}}}},{key:"render",value:function(){var e=this,t="inspector-link-control-".concat(this.props.instanceId);return wp.element.createElement(b,{id:t,label:this.props.label,help:this.props.help,className:this.props.className},wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-link-control-wrapper",{"is-open":this.state.isOpen})},wp.element.createElement("input",{type:"url",placeholder:this.props.placeholder,value:this.props.value,onChange:this.onChangeValue,onKeyDown:this.onKeyDown,className:a()("components-text-control__input",{"is-full":void 0===this.props.children})}),this.state.showSuggestions&&0<this.state.suggestions.length&&wp.element.createElement(h,{position:"bottom",noArrow:!0,focusOnMount:!1,className:"wp-block-themeisle-blocks-link-control-popover"},wp.element.createElement("div",{ref:this.autocompleteRef,className:"wp-block-themeisle-blocks-link-control-popover-container"},this.state.suggestions.map((function(t,n){return wp.element.createElement("button",{key:t.id,role:"option",tabIndex:"-1",ref:e.bindSuggestionNode(n),className:a()("block-editor-url-input__suggestion","editor-url-input__suggestion",{"is-selected":n===e.state.selectedSuggestion}),onClick:function(){return e.clickSuggestion(t.url)}},t.title||u("Untitled Post"))})))),void 0!==this.props.children&&wp.element.createElement(g,{icon:"admin-generic",tooltip:u("Link Options"),onClick:function(){return e.setState({isOpen:!e.state.isOpen})}})),this.state.isOpen&&this.props.children)}}])&&i(n.prototype,o),d&&i(n,d),t}(E);t.a=y(w,v((function(e){if(e("core/block-editor"))return{fetchLinkSuggestions:(0,e("core/block-editor").getSettings)().__experimentalFetchLinkSuggestions}})))(L)},,,function(e,t,n){"use strict";n.r(t);var o=n(0),a=n.n(o),l=(n(91),wp.i18n.__),r=wp.components,i=r.Button,c=r.Dashicon,s=r.Dropdown,p=r.IconButton,u=r.Path,m=r.SVG,d=r.Tooltip,b=wp.compose.withInstanceId,g=wp.element.Fragment;t.default=b((function(e){var t,n=e.label,o=e.instanceId,r=e.onClick,b=e.layout,h=e.layoutTablet,f=e.layoutMobile,y=e.columns,w=e.changeViewType,v=e.view,k="inspector-layout-control-".concat(o);return"desktop"===v?t=b:"tablet"===v?t=h:"mobile"===v&&(t=f),wp.element.createElement("div",{id:k,className:"wp-block-themeisle-blocks-advanced-columns-layout-control"},wp.element.createElement("div",{className:"components-base-control__field"},wp.element.createElement("div",{className:"components-base-control__title"},wp.element.createElement("label",{className:"components-base-control__label"},n),wp.element.createElement("div",{className:"linking-controls"},wp.element.createElement(s,{position:"top left",renderToggle:function(e){var t=e.isOpen,n=e.onToggle;return wp.element.createElement(p,{icon:"mobile"===v?"smartphone":v,label:l("Responsiveness Settings"),className:"is-button",onClick:n,"aria-expanded":t})},renderContent:function(e){var t=e.onToggle;return wp.element.createElement("div",{className:"wp-block-themeisle-responsiveness-settings"},wp.element.createElement("div",{className:"responsiveness-title"},l("Responsiveness Settings")),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"desktop"===v}),onClick:function(){t(),w("desktop")}},wp.element.createElement(c,{icon:"desktop"}),wp.element.createElement("span",{className:"popover-title"},l("Desktop"))),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"tablet"===v}),onClick:function(){t(),w("tablet")}},wp.element.createElement(c,{icon:"tablet"}),wp.element.createElement("span",{className:"popover-title"},l("Tablet Devices"))),wp.element.createElement(i,{className:a()("responsiveness-item",{"is-selected":"mobile"===v}),onClick:function(){t(),w("mobile")}},wp.element.createElement(c,{icon:"smartphone"}),wp.element.createElement("span",{className:"popover-title"},l("Smartphones"))))}}))),1===y&&wp.element.createElement(d,{text:l("Single Row")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M100,0V50H0V0Z"}))))||2===y&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Equal")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M49,0V50H0V0Z M100,0V50H51V0Z"})))),wp.element.createElement(d,{text:l("1:2")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"oneTwo"===t}),onClick:function(){return r("oneTwo")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M32.6667,0V50H0V0Z M100,0V50H34.6667V0Z"})))),wp.element.createElement(d,{text:l("2:1")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"twoOne"===t}),onClick:function(){return r("twoOne")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M65.3333,0V50H0V0Z M100,0V50H67.3333V0Z"})))),("mobile"==v||"tablet"==v)&&wp.element.createElement(d,{text:l("Collapsed Rows")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"collapsedRows"===t}),onClick:function(){return r("collapsedRows")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 100 0 L 100 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 0 26 L 100 26 L 100 50 L 0 50 L 0 26"})))))||3===y&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Equal")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M32,0V50H0V0Z M66,0V50H34V0Z M100,0V50H68V0Z"})))),wp.element.createElement(d,{text:l("1:1:2")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"oneOneTwo"===t}),onClick:function(){return r("oneOneTwo")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M24,0V50H0V0Z M50,0V50H26V0Z M100,0V50H52V0Z"})))),wp.element.createElement(d,{text:l("2:1:1")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"twoOneOne"===t}),onClick:function(){return r("twoOneOne")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M48,0V50H0V0Z M74,0V50H50V0Z M100,0V50H76V0Z"})))),wp.element.createElement(d,{text:l("1:2:1")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"oneTwoOne"===t}),onClick:function(){return r("oneTwoOne")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M24,0V50H0V0Z M74,0V50H26V0Z M100,0V50H76V0Z"})))),wp.element.createElement(d,{text:l("1:3:1")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"oneThreeOne"===t}),onClick:function(){return r("oneThreeOne")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M20,0V50H0V0Z M78,0V50H22V0Z M100,0V50H80V0Z"})))),("mobile"==v||"tablet"==v)&&wp.element.createElement(d,{text:l("Collapsed Rows")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"collapsedRows"===t}),onClick:function(){return r("collapsedRows")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 100 0 L 100 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 0 26 L 100 26 L 100 50 L 0 50 L 0 26"})))))||4===y&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Equal")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M23.5,0V50H0V0Z M49,0V50H25.5V0Z M74.5,0V50H51V0Z M100,0V50H76.5V0Z"})))),("mobile"==v||"tablet"==v)&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Two Column Grid")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"twoColumnGrid"===t}),onClick:function(){return r("twoColumnGrid")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 50 0 L 50 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 51 0 L 100 0 L 100 24 L 51 24 L 51 0"}),wp.element.createElement(u,{d:"M 0 26 L 50 26 L 50 50 L 0 50 L 0 26"}),wp.element.createElement(u,{d:"M 51 26 L 100 26 L 100 60 L 51 60 L 51 26"})))),wp.element.createElement(d,{text:l("Collapsed Rows")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"collapsedRows"===t}),onClick:function(){return r("collapsedRows")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 100 0 L 100 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 0 26 L 100 26 L 100 50 L 0 50 L 0 26"}))))))||5===y&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Equal")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M18.4,0V50H0V0Z M38.8,0V50H20.4V0Z M59.2,0V50H40.8V0Z M79.6,0V50H61.2V0Z M100,0V50H81.6V0Z"})))),("mobile"==v||"tablet"==v)&&wp.element.createElement(d,{text:l("Collapsed Rows")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"collapsedRows"===t}),onClick:function(){return r("collapsedRows")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 100 0 L 100 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 0 26 L 100 26 L 100 50 L 0 50 L 0 26"})))))||6===y&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Equal")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"equal"===t}),onClick:function(){return r("equal")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M15,0V50H0V0Z M32,0V50H17V0Z M49,0V50H34V0Z M66,0V50H51V0Z M83,0V50H68V0Z M100,0V50H85V0Z"})))),("mobile"==v||"tablet"==v)&&wp.element.createElement(g,null,wp.element.createElement(d,{text:l("Two Column Grid")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"twoColumnGrid"===t}),onClick:function(){return r("twoColumnGrid")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 50 0 L 50 16 L 0 16 L 0 0"}),wp.element.createElement(u,{d:"M 51 0 L 100 0 L 100 16 L 51 16 L 51 0"}),wp.element.createElement(u,{d:"M 0 17 L 50 17 L 50 33 L 0 33 L 0 17"}),wp.element.createElement(u,{d:"M 51 17 L 100 17 L 100 33 L 51 33 L 51 17"}),wp.element.createElement(u,{d:"M 0 34 L 50 34 L 50 50 L 0 50 L 0 34"}),wp.element.createElement(u,{d:"M 51 34 L 100 34 L 100 50 L 51 50 L 51 34"})))),wp.element.createElement(d,{text:l("Three Column Grid")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"threeColumnGrid"===t}),onClick:function(){return r("threeColumnGrid")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 33 0 L 33 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 34 0 L 66 0 L 66 24 L 34 24 L 34 0"}),wp.element.createElement(u,{d:"M 67 0 L 100 0 L 100 24 L 67 24 L 67 0"}),wp.element.createElement(u,{d:"M 0 26 L 33 26 L 33 50 L 0 50 L 0 26"}),wp.element.createElement(u,{d:"M 34 26 L 66 26 L 66 60 L 34 60 L 34 26"}),wp.element.createElement(u,{d:"M 67 26 L 100 26 L 100 60 L 67 60 L 67 26"})))),wp.element.createElement(d,{text:l("Collapsed Rows")},wp.element.createElement(i,{className:a()("wp-block-themeisle-blocks-advanced-column-layout",{selected:"collapsedRows"===t}),onClick:function(){return r("collapsedRows")}},wp.element.createElement(m,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(u,{d:"M 0 0 L 100 0 L 100 24 L 0 24 L 0 0"}),wp.element.createElement(u,{d:"M 0 26 L 100 26 L 100 50 L 0 50 L 0 26"}))))))))}))},,function(e,t,n){"use strict";n.r(t);n(92);var o=n(2),a=n(0),l=n.n(a),r=n(13),c=n.n(r);n(93);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function u(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var g=lodash,h=g.startCase,f=g.toLower,y=wp.i18n.__,w=wp.components,v=w.Button,k=w.Dashicon,E=w.Icon,C=w.TextControl,x=w.Tooltip,T=w.SelectControl,S=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=m(t).apply(this,arguments))||"object"!==s(o)&&"function"!=typeof o?d(n):o).getOptions=e.getOptions.bind(d(e)),e}var n,a,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,e),n=t,(a=[{key:"getOptions",value:function(){var e;return e=("block"===this.props.tab?this.props.blocksCategories:this.props.templateCategories).map((function(e){return{label:h(f(e)),value:e}})),[{label:y("All Categories"),value:"all"}].concat(p(e))}},{key:"render",value:function(){var e=this,t=this.getOptions();return wp.element.createElement("div",{className:"library-modal-control-panel"},wp.element.createElement("div",{className:"library-modal-header"},wp.element.createElement("div",{className:"library-modal-header-logo"},this.props.preview?wp.element.createElement(v,{className:"library-modal-header-tabs-button back-to-library","aria-label":y("Back to Library"),onClick:this.props.togglePreview},wp.element.createElement(k,{icon:"arrow-left-alt"})," ",y("Back to Library")):wp.element.createElement("div",{className:"library-modal-header-tabs-button"},wp.element.createElement(E,{icon:o.l}))),!this.props.preview&&wp.element.createElement("div",{className:"library-modal-header-tabs"},wp.element.createElement(v,{className:l()("library-modal-header-tabs-button",{"is-selected":"block"===this.props.tab}),onClick:function(){return e.props.changeTab("block")}},wp.element.createElement(k,{icon:"screenoptions"}),y("Blocks")),wp.element.createElement(v,{className:l()("library-modal-header-tabs-button",{"is-selected":"template"===this.props.tab}),onClick:function(){return e.props.changeTab("template")}},wp.element.createElement(k,{icon:"editor-table"}),y("Templates"))),wp.element.createElement("div",{className:"library-modal-header-actions"},this.props.preview&&wp.element.createElement(v,{className:"library-modal-header-tabs-button insert-button",onClick:function(){return e.props.importTemplate(e.props.selectedTemplate.template_url)},tabindex:"0"},wp.element.createElement(k,{icon:"arrow-down-alt",size:16}),y("Insert")),wp.element.createElement(x,{text:y("Close")},wp.element.createElement(v,{className:"library-modal-header-tabs-button","aria-label":y("Close settings"),onClick:this.props.close},wp.element.createElement(k,{icon:"no-alt"}))))),!this.props.preview&&wp.element.createElement("div",{className:"library-modal-actions"},wp.element.createElement(T,{className:"library-modal-category-control",value:"all"===this.props.selectedCategory?"all":this.props.selectedCategory,onChange:this.props.selectCategory,options:t}),wp.element.createElement(C,{type:"text",value:this.props.search||"",placeholder:y("Search"),className:"library-modal-search-control",onChange:this.props.changeSearch})))}}])&&u(n.prototype,a),r&&u(n,r),t}(wp.element.Component);function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function M(e,t){return!t||"object"!==B(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function L(e){return(L=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var A=wp.i18n.__,P=wp.components.Notice,_=wp.element,R=_.Component,I=_.Fragment,z=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),M(this,L(t).apply(this,arguments))}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){return wp.element.createElement(I,null,!Boolean(themeisleGutenberg.isCompatible)&&wp.element.createElement("div",{className:"library-modal-error"},wp.element.createElement(P,{status:"warning",isDismissible:!1,className:"version-warning",actions:[{label:A("Update Now"),url:themeisleGutenberg.updatePath}]},A("You are using an older version of Otter. Use the latest version of Otter to have maximum compatibility with Template Library."))),this.props.isError&&wp.element.createElement("div",{className:"library-modal-error"},wp.element.createElement(P,{status:"error",onRemove:this.props.removeError},A("There seems to be an error. Please try again."))),this.props.isMissing&&wp.element.createElement("div",{className:"library-modal-error"},wp.element.createElement(P,{status:"warning",className:"library-modal-missing",onRemove:this.props.removeMissing},A("You seem to be missing some blocks that are required by your selected template."),wp.element.createElement("details",null,wp.element.createElement("summary",null,A("View Missing Blocks")),wp.element.createElement("ul",null,this.props.missingBlocks.map((function(e){return wp.element.createElement("li",null,e)})))))))}}])&&O(n.prototype,o),a&&O(n,a),t}(R),V=n(18),H=n.n(V);function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function D(e,t){return!t||"object"!==j(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function G(e){return(G=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function W(e,t){return(W=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Z=wp.i18n.__,q=wp.components.Button,U=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),D(this,G(t).apply(this,arguments))}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&W(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){var e=this;return wp.element.createElement("div",{"aria-label":this.props.template.title||Z("Untitled Gutenberg Template"),className:"library-modal-content__item",tabindex:"0"},wp.element.createElement("div",{className:"library-modal-content__preview"},wp.element.createElement(H.a,null,wp.element.createElement("img",{src:this.props.template.screenshot_url||"https://raw.githubusercontent.com/Codeinwp/gutenberg-templates/master/assets/images/default.jpg"}))),wp.element.createElement("div",{className:"library-modal-content__footer"},wp.element.createElement("div",{className:"library-modal-content__footer_meta"},this.props.template.title&&"template"===this.props.template.type&&wp.element.createElement("h4",{className:"library-modal-content__footer_meta_title"},this.props.template.title,this.props.template.author&&Z(" by ")+this.props.template.author," "),this.props.template.author&&"block"===this.props.template.type&&wp.element.createElement("h4",{className:"library-modal-content__footer_meta_author"},Z("Author:")," ",this.props.template.author)),wp.element.createElement("div",{className:"library-modal-content__footer_actions"},this.props.template.demo_url&&wp.element.createElement(q,{isDefault:!0,isLarge:!0,className:"library-modal-overlay__actions",onClick:function(){return e.props.togglePreview(i)},tabindex:"0"},Z("Preview")),wp.element.createElement(q,{isPrimary:!0,isLarge:!0,className:"library-modal-overlay__actions",onClick:function(){return e.props.importTemplate(e.props.template.template_url)},tabindex:"0"},Z("Insert")))))}}])&&F(n.prototype,o),a&&F(n,a),t}(wp.element.Component);function K(e){return(K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Q(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function J(e,t){return!t||"object"!==K(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $(e,t){return($=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var X=wp.i18n.__,ee=wp.components.Spinner,te=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),J(this,Y(t).apply(this,arguments))}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){var e=this;return this.props.preview?wp.element.createElement("div",{className:"library-modal-preview"},wp.element.createElement("iframe",{src:this.props.selectedTemplate.demo_url})):this.props.isLoaded?wp.element.createElement("div",{className:"library-modal-content"},this.props.data.map((function(t){if(t.template_url&&("all"===e.props.selectedCategory||t.categories&&t.categories.includes(e.props.selectedCategory))&&(!e.props.search||t.keywords&&t.keywords.some((function(t){return t.toLowerCase().includes(e.props.search.toLowerCase())})))&&e.props.tab===t.type)return wp.element.createElement(U,{template:t,togglePreview:e.props.togglePreview,importTemplate:e.props.importTemplate})})),wp.element.createElement("div",{"aria-label":X("Coming Soon"),className:"library-modal-content__item"},wp.element.createElement("div",{className:"library-modal-content__preview"},wp.element.createElement(H.a,null,wp.element.createElement("img",{src:"https://raw.githubusercontent.com/Codeinwp/gutenberg-templates/master/assets/images/coming-soon.jpg"}))))):wp.element.createElement("div",{className:"library-modal-loader"},wp.element.createElement(ee,null))}}])&&Q(n.prototype,o),a&&Q(n,a),t}(wp.element.Component);function ne(e){return(ne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oe(e,t,n,o,a,l,r){try{var i=e[l](r),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function ae(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var l=e.apply(t,n);function r(e){oe(l,o,a,r,i,"next",e)}function i(e){oe(l,o,a,r,i,"throw",e)}r(void 0)}))}}function le(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function re(e){return(re=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ie(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ce(e,t){return(ce=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}wp.i18n.__;var se=wp.apiFetch,pe=wp.components.Modal,ue=wp.compose.compose,me=wp.data,de=me.withSelect,be=me.withDispatch,ge=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=re(t).apply(this,arguments))||"object"!==ne(o)&&"function"!=typeof o?ie(n):o).changeTab=e.changeTab.bind(ie(e)),e.togglePreview=e.togglePreview.bind(ie(e)),e.removeError=e.removeError.bind(ie(e)),e.removeMissing=e.removeMissing.bind(ie(e)),e.selectCategory=e.selectCategory.bind(ie(e)),e.changeSearch=e.changeSearch.bind(ie(e)),e.changeClientId=e.changeClientId.bind(ie(e)),e.validateBlocks=e.validateBlocks.bind(ie(e)),e.importTemplate=e.importTemplate.bind(ie(e)),e.state={tab:"block",isLoaded:!1,isError:!1,isMissing:!1,selectedCategory:"all",search:"",blocksCategories:[],templateCategories:[],data:[],preview:!1,selectedTemplate:null,missingBlocks:[]},e}var n,o,a,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ce(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:(i=ae(regeneratorRuntime.mark((function e(){var t,n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({path:"themeisle-gutenberg-blocks/v1/fetch_templates"});case 2:t=e.sent,n=[],o=[],t.map((function(e){e.categories&&e.template_url&&("block"===e.type&&e.categories.map((function(e){n.push(e)})),"template"===e.type&&e.categories.map((function(e){o.push(e)})))})),n=n.filter((function(e,t,n){return n.indexOf(e)===t})).sort(),o=o.filter((function(e,t,n){return n.indexOf(e)===t})).sort(),this.setState({blocksCategories:n,templateCategories:o,data:t,isLoaded:!0});case 9:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"changeTab",value:function(e){this.setState({tab:e,selectedCategory:"all",search:""})}},{key:"togglePreview",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.setState({preview:!this.state.preview,selectedTemplate:e})}},{key:"removeError",value:function(){this.setState({isError:!1})}},{key:"removeMissing",value:function(){this.setState({isMissing:!1})}},{key:"selectCategory",value:function(e){this.setState({selectedCategory:e})}},{key:"changeSearch",value:function(e){this.setState({search:e})}},{key:"changeClientId",value:function(e){var t=this;return Array.isArray(e)?e.map((function(e){return t.changeClientId(e)})):"object"===ne(e)&&Object.keys(e).map((function(n){"clientId"===n&&(e[n]=c()()),"innerBlocks"===n&&e[n].map((function(e){t.changeClientId(e)}))})),e}},{key:"validateBlocks",value:function(e){var t=this,n=!1,o=[];return Array.isArray(e)?e.map((function(e){return t.validateBlocks(e)})):"object"===ne(e)&&Object.keys(e).some((function(a){"name"===a&&void 0===t.props.availableBlocks.find((function(t){return t.name===e.name}))&&(o.push(e.name),n=!0),"innerBlocks"===a&&e[a].map((function(e){return t.validateBlocks(e)}))})),o=this.state.missingBlocks.concat(o).filter((function(e,t,n){return n.indexOf(e)===t})),this.setState({missingBlocks:o}),n}},{key:"importTemplate",value:(r=ae(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setState({preview:!1,isLoaded:!1,missingBlocks:[]}),e.next=3,se({path:"themeisle-gutenberg-blocks/v1/import_template?url=".concat(t)});case 3:n=e.sent,null!==(n=this.changeClientId(n))?(this.setState({isLoaded:!0}),this.validateBlocks(n)?this.setState({isMissing:!0}):this.props.import(n)):this.setState({isLoaded:!0,isError:!0});case 6:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"render",value:function(){return wp.element.createElement(pe,{className:l()("wp-block-themeisle-library-modal",{"is-preview":this.state.preview}),onRequestClose:this.props.close,isDismissable:!1,shouldCloseOnClickOutside:!1},wp.element.createElement(S,{preview:this.state.preview,tab:this.state.tab,changeTab:this.changeTab,blocksCategories:this.state.blocksCategories,templateCategories:this.state.templateCategories,selectedTemplate:this.state.selectedTemplate,selectedCategory:this.state.selectedCategory,search:this.state.search,togglePreview:this.togglePreview,close:this.props.close,importTemplate:this.importTemplate,selectCategory:this.selectCategory,changeSearch:this.changeSearch}),wp.element.createElement(z,{isError:this.state.isError,isMissing:this.state.isMissing,missingBlocks:this.state.missingBlocks,removeError:this.removeError,removeMissing:this.removeMissing}),wp.element.createElement(te,{preview:this.state.preview,isLoaded:this.state.isLoaded,data:this.state.data,tab:this.state.tab,selectedTemplate:this.state.selectedTemplate,selectedCategory:this.state.selectedCategory,search:this.state.search,togglePreview:this.togglePreview,importTemplate:this.importTemplate}))}}])&&le(n.prototype,o),a&&le(n,a),t}(wp.element.Component),he=ue(de((function(e,t){var n=t.clientId,o=(e("core/block-editor")||e("core/editor")).getBlock,a=e("core/blocks").getBlockTypes;return{block:o(n),availableBlocks:a()}})),be((function(e,t){var n=t.block,o=(e("core/block-editor")||e("core/editor")).replaceBlocks;return{import:function(e){return o(n.clientId,e)}}})))(ge);function fe(e){return(fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ye(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function we(e){return(we=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ve(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ke(e,t){return(ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ee=wp.i18n.__,Ce=wp.components,xe=Ce.Button,Te=Ce.Dashicon,Se=Ce.Icon,Be=Ce.Path,Oe=Ce.Placeholder,Me=Ce.SVG,Le=Ce.Tooltip,Ne=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=we(t).apply(this,arguments))||"object"!==fe(o)&&"function"!=typeof o?ve(n):o).closeModal=e.closeModal.bind(ve(e)),e.state={isLibraryOpen:!1},e}var n,a,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ke(e,t)}(t,e),n=t,(a=[{key:"closeModal",value:function(){this.setState({isLibraryOpen:!1})}},{key:"render",value:function(){var e=this;return wp.element.createElement(Oe,{label:Ee("Select Layout"),icon:wp.element.createElement(Se,{icon:o.f}),className:"wp-block-themeisle-onboarding-component"},wp.element.createElement("div",{className:"wp-block-themeisle-layout-picker"},wp.element.createElement(Le,{text:Ee("Single Row")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(1,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M100,0V50H0V0Z"})))),wp.element.createElement(Le,{text:Ee("Equal")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(2,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M49,0V50H0V0Z M100,0V50H51V0Z"})))),wp.element.createElement(Le,{text:Ee("1:2")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(2,"oneTwo")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M32.6667,0V50H0V0Z M100,0V50H34.6667V0Z"})))),wp.element.createElement(Le,{text:Ee("2:1")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(2,"twoOne")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M65.3333,0V50H0V0Z M100,0V50H67.3333V0Z"})))),wp.element.createElement(Le,{text:Ee("Equal")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(3,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M32,0V50H0V0Z M66,0V50H34V0Z M100,0V50H68V0Z"})))),wp.element.createElement(Le,{text:Ee("1:1:2")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(3,"oneOneTwo")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M24,0V50H0V0Z M50,0V50H26V0Z M100,0V50H52V0Z"})))),wp.element.createElement(Le,{text:Ee("2:1:1")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(3,"twoOneOne")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M48,0V50H0V0Z M74,0V50H50V0Z M100,0V50H76V0Z"})))),wp.element.createElement(Le,{text:Ee("1:2:1")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(3,"oneTwoOne")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M24,0V50H0V0Z M74,0V50H26V0Z M100,0V50H76V0Z"})))),wp.element.createElement(Le,{text:Ee("1:3:1")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(3,"oneThreeOne")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M20,0V50H0V0Z M78,0V50H22V0Z M100,0V50H80V0Z"})))),wp.element.createElement(Le,{text:Ee("Equal")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(4,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M23.5,0V50H0V0Z M49,0V50H25.5V0Z M74.5,0V50H51V0Z M100,0V50H76.5V0Z"})))),wp.element.createElement(Le,{text:Ee("Equal")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(5,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M18.4,0V50H0V0Z M38.8,0V50H20.4V0Z M59.2,0V50H40.8V0Z M79.6,0V50H61.2V0Z M100,0V50H81.6V0Z"})))),wp.element.createElement(Le,{text:Ee("Equal")},wp.element.createElement(xe,{className:"wp-block-themeisle-blocks-advanced-column-layout",onClick:function(){return e.props.setupColumns(6,"equal")}},wp.element.createElement(Me,{viewBox:"0 0 100 50",xmlns:"http://www.w3.org/1999/xlink"},wp.element.createElement(Be,{d:"M15,0V50H0V0Z M32,0V50H17V0Z M49,0V50H34V0Z M66,0V50H51V0Z M83,0V50H68V0Z M100,0V50H85V0Z"}))))),wp.element.createElement(Le,{text:Ee("Open Template Library")},wp.element.createElement(xe,{isPrimary:!0,isLarge:!0,className:"wp-block-themeisle-template-library",onClick:function(){return e.setState({isLibraryOpen:!0})}},wp.element.createElement(Te,{icon:"category"}),Ee("Template Library")),this.state.isLibraryOpen&&wp.element.createElement(he,{clientId:this.props.clientId,close:this.closeModal})))}}])&&ye(n.prototype,a),l&&ye(n,l),t}(wp.element.Component);t.default=Ne},function(e,t,n){"use strict";n.r(t);var o=n(0),a=n.n(o),l=n(3);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function c(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var u=wp.components,m=u.Placeholder,d=u.Spinner,b=wp.data.withSelect,g=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,s(t).apply(this,arguments))}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){var e=this.props,t=e.alt,n=e.id,o=e.thumbnail,a=e.link,l=wp.element.createElement(m,null,wp.element.createElement(d,null));return o&&(l=wp.element.createElement("img",{src:o,alt:t,"data-id":n})),wp.element.createElement("div",{className:"posts-grid-post-image"},wp.element.createElement("a",{href:a},l))}}])&&i(n.prototype,o),a&&i(n,a),t}(wp.element.Component),h=b((function(e,t){var n=t.id,o=t.alt,a=t.size,l=n?e("core").getMedia(n):void 0,r=l?0<Object.keys(l.media_details.sizes).length?l.media_details.sizes[a].source_url:l.source_url:null;return l?{thumbnail:r,alt:l.alt_text||o}:{alt:o}}))(g),f=wp.i18n,y=f.__,w=f.sprintf,v=function(e){var t=e.className,n=e.attributes,o=e.posts,r=e.categoriesList,i=e.authors;return wp.element.createElement("div",{className:a()(t,"is-grid","posts-grid-columns-".concat(n.columns))},o.map((function(e){var t,o;return r&&(t=r.find((function(t){return t.id===e.categories[0]}))),i&&(o=i.find((function(t){return t.id===e.author}))),wp.element.createElement("div",{className:"posts-grid-post-blog posts-grid-post-plain"},wp.element.createElement("div",{className:"posts-grid-post"},0!==e.featured_media&&n.displayFeaturedImage&&wp.element.createElement(h,{id:e.featured_media,link:e.link,alt:e.title.rendered,size:n.imageSize}),wp.element.createElement("div",{className:"posts-grid-post-body"},n.template.map((function(a){return"category"===a&&void 0!==t&&n.displayCategory&&r?wp.element.createElement("h6",{class:"posts-grid-post-category"},t.name):"title"===a&&n.displayTitle?wp.element.createElement("h5",{className:"posts-grid-post-title"},wp.element.createElement("a",{href:e.link},Object(l.b)(e.title.rendered))):"meta"===a&&n.displayMeta&&(n.displayDate||n.displayAuthor)?wp.element.createElement("p",{className:"posts-grid-post-meta"},n.displayDate&&w(y("on %s"),Object(l.a)(e.date)),n.displayAuthor&&void 0!==o&&i&&w(y(" by %s"),o.name)):"description"===a&&0<n.excerptLength&&n.displayDescription?wp.element.createElement("p",{className:"posts-grid-post-description"},Object(l.b)(e.excerpt.rendered).substring(0,n.excerptLength)+"…"):void 0})))))})))},k=wp.i18n,E=k.__,C=k.sprintf,x=function(e){var t=e.className,n=e.attributes,o=e.posts,r=e.categoriesList,i=e.authors;return wp.element.createElement("div",{className:a()(t,"is-list")},o.map((function(e){var t,o;return r&&(t=r.find((function(t){return t.id===e.categories[0]}))),i&&(o=i.find((function(t){return t.id===e.author}))),wp.element.createElement("div",{className:"posts-grid-post-blog posts-grid-post-plain"},wp.element.createElement("div",{className:"posts-grid-post"},0!==e.featured_media&&n.displayFeaturedImage&&wp.element.createElement(h,{id:e.featured_media,link:e.link,alt:e.title.rendered,size:n.imageSize}),wp.element.createElement("div",{className:a()("posts-grid-post-body",{"is-full":!n.displayFeaturedImage})},n.template.map((function(a){return"category"===a&&void 0!==t&&n.displayCategory&&r?wp.element.createElement("h6",{class:"posts-grid-post-category"},t.name):"title"===a&&n.displayTitle?wp.element.createElement("h5",{className:"posts-grid-post-title"},wp.element.createElement("a",{href:e.link},Object(l.b)(e.title.rendered))):"meta"===a&&n.displayMeta&&(n.displayDate||n.displayAuthor)?wp.element.createElement("p",{className:"posts-grid-post-meta"},n.displayDate&&C(E("on %s"),Object(l.a)(e.date)),n.displayAuthor&&void 0!==o&&i&&C(E(" by %s"),o.name)):"description"===a&&0<n.excerptLength&&n.displayDescription?wp.element.createElement("p",{className:"posts-grid-post-description"},Object(l.b)(e.excerpt.rendered).substring(0,n.excerptLength)+"…"):void 0})))))})))};t.default=function(e){var t=e.className,n=e.attributes,o=e.posts,a=e.categoriesList,l=e.authors;return"grid"===n.style?wp.element.createElement(v,{className:t,attributes:n,posts:o,categoriesList:a,authors:l}):"list"===n.style?wp.element.createElement(x,{className:t,attributes:n,posts:o,categoriesList:a,authors:l}):void 0}},,function(e,t,n){"use strict";n.r(t);n(61),n(62),n(63),n(64)},function(e,t){var n=wp.i18n.__,o=wp.blocks.registerBlockType,a=wp.components,l=a.ExternalLink,r=a.Notice;o("themeisle-blocks/chart-pie",{title:n("Pie Chart"),description:n("Display a beautiful Pie Chart on your blog post with Pie Chart block."),icon:"chart-pie",category:"themeisle-blocks",keywords:[n("pie"),n("chart"),n("orbitfox")],attributes:{data:{type:"string",default:'[["Label","Data"],["Dogs",40],["Cats",30],["Racoons",20],["Monkeys",10]]'},options:{type:"object",default:{title:"Animals",is3D:!0}},id:{type:"string",default:""}},supports:{inserter:!1},edit:function(e){return wp.element.createElement("div",{className:e.className},wp.element.createElement(r,{status:"warning",isDismissible:!1},n("We have deprecated Pie Chart Block and it will be removed soon. For advance options and more charts, please install our Visualizer plugin:")," ",wp.element.createElement(l,{href:"http://wordpress.org/plugins/visualizer/"},n("Visualizer: Tables and Charts Manager for WordPress"))))},save:function(){return null}})},function(e,t,n){"use strict";n.r(t);n(66),n(67);var o=wp.i18n.__,a=wp.blocks.registerBlockType,l=(wp.blockEditor||wp.editor).RichText,r=wp.components.Notice;a("themeisle-blocks/notice",{title:o("Notice"),description:o("Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages."),icon:"info",category:"themeisle-blocks",keywords:["notice","info"],attributes:{content:{type:"array",source:"children",selector:"p.components-notice__content"}},supports:{align:["wide","full"],inserter:!1},styles:[{name:"sucess",label:o("Success"),isDefault:!0},{name:"info",label:o("Info")},{name:"warning",label:o("Warning")},{name:"error",label:o("Error")}],edit:function(e){var t="success";return e.attributes.className&&e.attributes.className.includes("is-style-info")?t="":e.attributes.className&&e.attributes.className.includes("is-style-warning")?t="warning":e.attributes.className&&e.attributes.className.includes("is-style-error")&&(t="error"),wp.element.createElement(r,{className:e.className,isDismissible:!1,status:t},wp.element.createElement(l,{tagName:"p",placeholder:o("Lorem ipsum dolor sit amet, consectetur adipiscing elit."),value:e.attributes.content,className:"components-notice__content",onChange:function(t){return e.setAttributes({content:t})},keepPlaceholderOnFocus:"true"}))},save:function(e){var t="success";return e.attributes.className&&e.attributes.className.includes("is-style-info")?t="":e.attributes.className&&e.attributes.className.includes("is-style-warning")?t="warning":e.attributes.className&&e.attributes.className.includes("is-style-error")&&(t="error"),wp.element.createElement(r,{className:"themeisle-block-notice",isDismissible:!1,status:t},wp.element.createElement(l.Content,{tagName:"p",className:"components-notice__content",value:e.attributes.content}))}})},function(e,t,n){"use strict";n.r(t);n(76),n(77);var o=wp.i18n.__,a=lodash.get,l=wp.blocks,r=l.registerBlockType,i=l.createBlock,c=wp.components,s=c.Toolbar,p=c.TextControl,u=wp.data.withSelect,m=wp.blockEditor||wp.editor,d=m.BlockControls,b=m.RichText;r("themeisle-blocks/tweetable",{title:o("Click To Tweet"),description:o("Click to Tweet allows visitors to easily share your content on Twitter."),icon:"twitter",category:"themeisle-blocks",keywords:[o("twitter"),o("tweet"),o("orbitfox")],attributes:{quote:{type:"string",source:"children",selector:"p",default:[]},permalink:{type:"url"},via:{type:"string"},buttonText:{type:"string",default:o("Click to Tweet")}},supports:{inserter:!1},transforms:{from:[{type:"block",blocks:["core/paragraph"],transform:function(e){var t=e.content;return i("themeisle-blocks/tweetable",{quote:t})}},{type:"block",blocks:["core/quote"],transform:function(e){var t=e.value,n=e.citation;return t&&t.length||n?(t||[]).map((function(e){return i("themeisle-blocks/tweetable",{quote:[a(e,"children.props.children","")]})})).concat(n?i("core/paragraph",{content:n}):[]):i("themeisle-blocks/tweetable")}},{type:"block",blocks:["core/pullquote"],transform:function(e){var t=e.value,n=e.citation;return t&&t.length||n?(t||[]).map((function(e){return i("themeisle-blocks/tweetable",{quote:[a(e,"children.props.children","")]})})).concat(n?i("core/paragraph",{quote:n}):[]):i("themeisle-blocks/tweetable")}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(e){e.content;var t=e.quote;return t&&t.length?(t||[]).map((function(e){return i("core/paragraph",{content:t})})):i("core/paragraph")}},{type:"block",blocks:["core/quote"],transform:function(e){var t=e.quote;return i("core/quote",{value:[{children:wp.element.createElement("p",{key:"1"},t)}]})}},{type:"block",blocks:["core/pullquote"],transform:function(e){var t=e.quote;return i("core/pullquote",{value:[{children:wp.element.createElement("p",{key:"1"},t)}]})}}]},edit:u((function(e,t){var n=e("core/editor").getPermalink;return void 0===t.attributes.permalink&&t.setAttributes({permalink:n()}),{permalink:n(),props:t}}))((function(e){var t=e.props,n=e.className;return[wp.element.createElement(d,{key:"controls"},wp.element.createElement(s,null,wp.element.createElement("i",{className:"fas fa-at tweetable-icon"}),wp.element.createElement(p,{type:"text",placeholder:"Username",className:"tweetable-controls",value:t.attributes.via,onChange:function(e){t.setAttributes({via:e})}}))),wp.element.createElement("blockquote",{className:n},wp.element.createElement(b,{tagName:"p",multiline:"false",placeholder:o("What should we tweet?"),value:t.attributes.quote,formattingControls:[],onChange:function(e){t.setAttributes({quote:e})},keepPlaceholderOnFocus:!0}),wp.element.createElement(b,{tagName:"span",placeholder:o("Tweet this!"),className:"tweetbutton",value:t.attributes.buttonText?t.attributes.buttonText:o("Tweet this!"),formattingControls:[],onChange:function(e){t.setAttributes({buttonText:e})},keepPlaceholderOnFocus:!0}))]})),save:function(e){var t=e.attributes.via?"&via=".concat(e.attributes.via):"",n="http://twitter.com/share?&text=".concat(encodeURIComponent(e.attributes.quote),"&url=").concat(e.attributes.permalink).concat(t);return wp.element.createElement("blockquote",null,wp.element.createElement(b.Content,{tagName:"p",value:e.attributes.quote}),wp.element.createElement(b.Content,{tagName:"a",className:"tweetbutton",href:n,value:e.attributes.buttonText,target:"_blank"}))}})},,,,function(e,t,n){"use strict";n.r(t);var o=n(2),a=wp.i18n.__,l=wp.blocks.registerBlockType,r=(wp.blockEditor||wp.editor).InnerBlocks;l("themeisle-blocks/pricing",{title:a("Pricing"),description:a("Pricing tables are a critical part in showcasing your services, prices and overall offerings."),icon:o.o,category:"themeisle-blocks",keywords:["pricing","table","money"],edit:function(e){var t=[["themeisle-blocks/advanced-heading",{content:a("Basic"),align:"center",tag:"h5"}],["themeisle-blocks/advanced-heading",{content:a("$9.99"),align:"center",tag:"h3",fontSize:36,fontFamily:"Roboto Slab",fontVariant:"normal"}],["themeisle-blocks/advanced-heading",{content:a("Per Month"),align:"center",tag:"p",fontSize:12,marginBottom:0}],["core/separator",{}],["themeisle-blocks/advanced-heading",{content:a("First Feature"),align:"center",tag:"p",fontSize:12,marginBottom:0}],["core/separator",{}],["themeisle-blocks/advanced-heading",{content:a("Second Feature"),align:"center",tag:"p",fontSize:12,marginBottom:0}],["core/separator",{}],["themeisle-blocks/advanced-heading",{content:a("Last Feature"),align:"center",tag:"p",fontSize:12,marginBottom:0}],["core/separator",{}],["themeisle-blocks/button-group",{align:"center",buttons:1,data:[{text:a("Buy Now"),newTab:!1,color:"#ffffff",background:"#32373c",hoverColor:"#ffffff",hoverBackground:"#444a50",borderSize:0,borderRadius:3,boxShadow:!1,boxShadowColorOpacity:50,boxShadowBlur:5,boxShadowSpread:1,boxShadowHorizontal:0,boxShadowVertical:0,hoverBoxShadowColorOpacity:50,hoverBoxShadowBlur:5,hoverBoxShadowSpread:1,hoverBoxShadowHorizontal:0,hoverBoxShadowVertical:0,iconType:"none",paddingTopBottom:12,paddingLeftRight:24}]}]];return[wp.element.createElement("div",{className:e.className},wp.element.createElement(r,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:e.className},wp.element.createElement(r.Content,null))}})},function(e,t,n){"use strict";n.r(t);var o=n(2),a=wp.i18n.__,l=wp.blocks.registerBlockType,r=(wp.blockEditor||wp.editor).InnerBlocks;l("themeisle-blocks/service",{title:a("Service"),description:a("Use this Service block to showcase services your website offers."),icon:o.p,category:"themeisle-blocks",keywords:["services","icon","features"],edit:function(e){var t=[["themeisle-blocks/font-awesome-icons",{fontSize:62,prefix:"fab",icon:"angellist"}],["themeisle-blocks/advanced-heading",{content:a("Basic"),align:"center",tag:"h4",marginBottom:20}],["themeisle-blocks/advanced-heading",{content:a("Lorem ipsum dolor sit amet elit do, consectetur adipiscing, sed eiusmod tempor incididunt ut labore et dolore magna aliqua."),align:"center",color:"#999999",tag:"p",fontSize:14,marginBottom:20}],["themeisle-blocks/button-group",{align:"center",buttons:1,data:[{text:a("Know More"),newTab:!1,color:"#ffffff",background:"#32373c",hoverColor:"#ffffff",hoverBackground:"#444a50",borderSize:0,borderRadius:3,boxShadow:!1,boxShadowColorOpacity:50,boxShadowBlur:5,boxShadowSpread:1,boxShadowHorizontal:0,boxShadowVertical:0,hoverBoxShadowColorOpacity:50,hoverBoxShadowBlur:5,hoverBoxShadowSpread:1,hoverBoxShadowHorizontal:0,hoverBoxShadowVertical:0,iconType:"none",paddingTopBottom:12,paddingLeftRight:24}]}]];return[wp.element.createElement("div",{className:e.className},wp.element.createElement(r,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:e.className},wp.element.createElement(r.Content,null))}})},function(e,t,n){"use strict";n.r(t);var o=n(2),a=wp.i18n.__,l=wp.blocks.registerBlockType,r=(wp.blockEditor||wp.editor).InnerBlocks;l("themeisle-blocks/testimonials",{title:a("Testimonials"),description:a("Display kudos from customers and clients and display them on your website."),icon:o.r,category:"themeisle-blocks",keywords:["testimonials","quotes","business"],edit:function(e){var t=[["core/image",{align:"center"}],["themeisle-blocks/advanced-heading",{content:a("John Doe"),align:"center",fontSize:24,tag:"h3",marginTop:25,marginBottom:10,marginTopTablet:25,marginTopMobile:25}],["themeisle-blocks/advanced-heading",{content:a("Jedi Master"),align:"center",fontSize:14,tag:"h6",marginTop:10,marginBottom:10}],["themeisle-blocks/advanced-heading",{content:a('"What is the point of being alive if you don’t at least try to do something remarkable?"'),align:"center",color:"#999999",tag:"p",fontSize:14,marginTop:10,marginBottom:20}]];return[wp.element.createElement("div",{className:e.className},wp.element.createElement(r,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:e.className},wp.element.createElement(r.Content,null))}})},function(e,t,n){"use strict";n.r(t);n(68),n(69);var o=n(0),a=n.n(o),l=wp.i18n.__,r=wp.blocks.registerBlockType,i=wp.blockEditor||wp.editor,c=i.ColorPalette,s=i.InnerBlocks,p=i.InspectorControls,u=i.MediaPlaceholder,m=wp.components,d=m.Button,b=m.ToggleControl,g=m.SelectControl,h=m.PanelBody,f=wp.element.Fragment;r("themeisle-blocks/pricing-table",{title:l("Pricing Table"),description:l("Pricing tables are a critical part in showcasing your services, prices and overall offerings."),icon:"slides",category:"themeisle-blocks",keywords:["pricing","table","orbitfox"],attributes:{backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string",default:"#ffffff"},backgroundImageID:{type:"string"},backgroundImageURL:{type:"string"},backgroundDimmed:{type:"boolean",default:!0},backgroundParallax:{type:"boolean",default:!1}},supports:{align:["wide","full"],inserter:!1},edit:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return[wp.element.createElement(p,null,wp.element.createElement(h,{title:l("Background")},wp.element.createElement(g,{label:l("Background Type"),value:e.attributes.backgroundType,options:[{label:"Color",value:"color"},{label:"Image",value:"image"}],onChange:function(t){e.setAttributes({backgroundType:t})}}),"color"===e.attributes.backgroundType?wp.element.createElement(c,{label:l("Background Color"),value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})}}):e.attributes.backgroundImageURL?wp.element.createElement(f,null,wp.element.createElement(b,{label:l("Dimmed Background"),checked:e.attributes.backgroundDimmed,onChange:function(){e.setAttributes({backgroundDimmed:!e.attributes.backgroundDimmed})}}),wp.element.createElement(b,{label:l("Parallax Background"),checked:e.attributes.backgroundParallax,onChange:function(){e.setAttributes({backgroundParallax:!e.attributes.backgroundParallax})}}),wp.element.createElement("img",{src:e.attributes.backgroundImageURL}),wp.element.createElement(d,{isLarge:!0,onClick:function(){e.setAttributes({backgroundImageID:"",backgroundImageURL:""})},style:{marginTop:"10px"}},l("Change or Remove Image"))):wp.element.createElement(u,{icon:"format-image",labels:{title:l("Background Image"),name:l("an image")},value:e.attributes.backgroundImageID,onSelect:function(t){e.setAttributes({backgroundImageID:t.id,backgroundImageURL:t.url})},accept:"image/*",allowedTypes:["image"]}))),wp.element.createElement("div",{className:a()(e.className,{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s,{allowedBlocks:["themeisle-blocks/pricing-block"],template:[["themeisle-blocks/pricing-block"],["themeisle-blocks/pricing-block"],["themeisle-blocks/pricing-block"]]}))]},save:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-pricing-table",{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s.Content,null))}});var y=wp.i18n.__,w=wp.blocks.registerBlockType,v=wp.blockEditor||wp.editor,k=v.InnerBlocks,E=v.BlockControls,C=v.InspectorControls,x=v.PanelColorSettings,T=wp.components,S=T.Dashicon,B=T.Toolbar,O=T.Button,M=T.Tooltip;w("themeisle-blocks/pricing-block",{title:y("Pricing Block"),description:y("Pricing tables are a critical part in showcasing your services, prices and overall offerings."),parent:["themeisle-blocks/pricing-table"],icon:"slides",category:"themeisle-blocks",keywords:["pricing","table","orbitfox"],attributes:{featured:{type:"boolean",default:!1},backgroundColor:{type:"string",default:"#ffffff"}},supports:{inserter:!1},edit:function(e){var t=[["core/heading",{content:y("Basic"),className:"pricing-title",align:"center",level:5}],["core/paragraph",{content:y("$9.99"),align:"center",customFontSize:36}],["core/paragraph",{content:y("Per Month"),align:"center",customFontSize:12}],["core/separator",{}],["core/paragraph",{content:y("First Feature"),align:"center",fontSize:"small"}],["core/separator",{}],["core/paragraph",{content:y("Second Feature"),align:"center",fontSize:"small"}],["core/separator",{}],["core/paragraph",{content:y("Last Feature"),align:"center",fontSize:"small"}],["core/separator",{}],["core/button",{text:y("Buy Now"),className:"pricing-button",align:"center"}]];return[wp.element.createElement(E,{key:"toolbar-controls"},wp.element.createElement(B,{className:"components-toolbar"},wp.element.createElement(M,{text:y("Feature Table")},wp.element.createElement(O,{className:a()("components-icon-button","components-toolbar__control",{"is-active":e.attributes.featured}),onClick:function(){e.setAttributes({featured:!e.attributes.featured})}},wp.element.createElement(S,{icon:"star-empty"}))))),wp.element.createElement(C,null,wp.element.createElement(x,{title:y("Color Settings"),initialOpen:!0,colorSettings:[{value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})},label:y("Background Color")}]})),wp.element.createElement("div",{className:a()("wp-block-column",{raised:e.attributes.featured}),style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(k,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:a()("wp-block-column",{raised:e.attributes.featured}),style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(k.Content,null))}})},function(e,t,n){"use strict";n.r(t);n(73),n(74);var o=n(0),a=n.n(o),l=wp.i18n.__,r=wp.blocks.registerBlockType,i=wp.blockEditor||wp.editor,c=i.ColorPalette,s=i.InnerBlocks,p=i.InspectorControls,u=i.MediaPlaceholder,m=wp.components,d=m.Button,b=m.ToggleControl,g=m.SelectControl,h=m.PanelBody,f=wp.element.Fragment;r("themeisle-blocks/testimonials-area",{title:l("Testimonials Area"),description:l("Display kudos from customers and clients and display them on your website."),icon:"testimonial",category:"themeisle-blocks",keywords:["testimonials","clients","quotes"],attributes:{backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string",default:"#ffffff"},backgroundImageID:{type:"string"},backgroundImageURL:{type:"string"},backgroundDimmed:{type:"boolean",default:!0},backgroundParallax:{type:"boolean",default:!1}},supports:{align:["wide","full"],inserter:!1},edit:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return[wp.element.createElement(p,null,wp.element.createElement(h,{title:l("Background")},wp.element.createElement(g,{label:l("Background Type"),value:e.attributes.backgroundType,options:[{label:"Color",value:"color"},{label:"Image",value:"image"}],onChange:function(t){e.setAttributes({backgroundType:t})}}),"color"===e.attributes.backgroundType?wp.element.createElement(c,{label:l("Background Color"),value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})}}):e.attributes.backgroundImageURL?wp.element.createElement(f,null,wp.element.createElement(b,{label:l("Dimmed Background"),checked:e.attributes.backgroundDimmed,onChange:function(){e.setAttributes({backgroundDimmed:!e.attributes.backgroundDimmed})}}),wp.element.createElement(b,{label:l("Parallax Background"),checked:e.attributes.backgroundParallax,onChange:function(){e.setAttributes({backgroundParallax:!e.attributes.backgroundParallax})}}),wp.element.createElement("img",{src:e.attributes.backgroundImageURL}),wp.element.createElement(d,{isLarge:!0,onClick:function(){e.setAttributes({backgroundImageID:"",backgroundImageURL:""})},style:{marginTop:"10px"}},l("Change or Remove Image"))):wp.element.createElement(u,{icon:"format-image",labels:{title:l("Background Image"),name:l("an image")},value:e.attributes.backgroundImageID,onSelect:function(t){e.setAttributes({backgroundImageID:t.id,backgroundImageURL:t.url})},accept:"image/*",allowedTypes:["image"]}))),wp.element.createElement("div",{className:a()(e.className,{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s,{allowedBlocks:["themeisle-blocks/testimonials-block"],template:[["themeisle-blocks/testimonials-block"],["themeisle-blocks/testimonials-block"],["themeisle-blocks/testimonials-block"]]}))]},save:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-testimonials-area",{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s.Content,null))}});n(75)},function(e,t,n){"use strict";n.r(t);n(70),n(71);var o=n(0),a=n.n(o),l=wp.i18n.__,r=wp.blocks.registerBlockType,i=wp.blockEditor||wp.editor,c=i.ColorPalette,s=i.InnerBlocks,p=i.InspectorControls,u=i.MediaPlaceholder,m=wp.components,d=m.Button,b=m.ToggleControl,g=m.SelectControl,h=m.PanelBody,f=wp.element.Fragment;r("themeisle-blocks/services",{title:l("Our Services"),description:l("Use this Services table to showcase services your website offers."),icon:"columns",category:"themeisle-blocks",keywords:["services","features","orbitfox"],attributes:{backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string",default:"#ffffff"},backgroundImageID:{type:"string"},backgroundImageURL:{type:"string"},backgroundDimmed:{type:"boolean",default:!0},backgroundParallax:{type:"boolean",default:!1}},supports:{align:["wide","full"],inserter:!1},edit:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return[wp.element.createElement(p,null,wp.element.createElement(h,{title:l("Background")},wp.element.createElement(g,{label:l("Background Type"),value:e.attributes.backgroundType,options:[{label:"Color",value:"color"},{label:"Image",value:"image"}],onChange:function(t){e.setAttributes({backgroundType:t})}}),"color"===e.attributes.backgroundType?wp.element.createElement(c,{label:l("Background Color"),value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})}}):e.attributes.backgroundImageURL?wp.element.createElement(f,null,wp.element.createElement(b,{label:l("Dimmed Background"),checked:e.attributes.backgroundDimmed,onChange:function(){e.setAttributes({backgroundDimmed:!e.attributes.backgroundDimmed})}}),wp.element.createElement(b,{label:l("Parallax Background"),checked:e.attributes.backgroundParallax,onChange:function(){e.setAttributes({backgroundParallax:!e.attributes.backgroundParallax})}}),wp.element.createElement("img",{src:e.attributes.backgroundImageURL}),wp.element.createElement(d,{isLarge:!0,onClick:function(){e.setAttributes({backgroundImageID:"",backgroundImageURL:""})},style:{marginTop:"10px"}},l("Change or Remove Image"))):wp.element.createElement(u,{icon:"format-image",labels:{title:l("Background Image"),name:l("an image")},value:e.attributes.backgroundImageID,onSelect:function(t){e.setAttributes({backgroundImageID:t.id,backgroundImageURL:t.url})},accept:"image/*",allowedTypes:["image"]}))),wp.element.createElement("div",{className:a()(e.className,{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s,{allowedBlocks:["themeisle-blocks/service-block"],template:[["themeisle-blocks/service-block"],["themeisle-blocks/service-block"],["themeisle-blocks/service-block"]]}))]},save:function(e){var t={background:"color"===e.attributes.backgroundType?e.attributes.backgroundColor:"url(' ".concat(e.attributes.backgroundImageURL," ')")};return wp.element.createElement("div",{className:a()("wp-block-themeisle-blocks-services",{"is-dim":"image"===e.attributes.backgroundType&&e.attributes.backgroundDimmed},{"is-parallax":"image"===e.attributes.backgroundType&&e.attributes.backgroundParallax}),style:t},wp.element.createElement(s.Content,null))}});n(72)},,,function(e,t,n){n(41),n(116),n(45),n(48),n(115),n(25),n(26),n(65),n(27),n(35),n(37),n(36),n(28),n(114),n(111),n(85),n(23),n(112),n(11),n(20),n(22),n(9),n(110),n(113),n(107),n(32),n(33),e.exports=n(34)},function(e,t,n){n.p=window.themeisleGutenberg.packagePath},,,function(e,t){function n(e,t,n,o,a,l,r){try{var i=e[l](r),c=i.value}catch(e){return void n(e)}i.done?t(c):Promise.resolve(c).then(o,a)}function o(e){return function(){var t=this,o=arguments;return new Promise((function(a,l){var r=e.apply(t,o);function i(e){n(r,a,l,i,c,"next",e)}function c(e){n(r,a,l,i,c,"throw",e)}i(void 0)}))}}var a=lodash.debounce,l=wp.apiFetch,r=wp.data,i=r.select,c=r.subscribe,s=a(o(regeneratorRuntime.mark((function e(){var t,n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=i("core/editor"),n=t.getCurrentPostId,o=n(),e.next=4,l({path:"themeisle-gutenberg-blocks/v1/save_post_meta/".concat(o),method:"POST"});case 4:case"end":return e.stop()}}),e)}))),1e3),p={};c((function(){var e=i("core/editor"),t=e.isCurrentPostPublished,n=e.isSavingPost,o=e.isPublishingPost,a=e.isAutosavingPost,r=e.__experimentalGetReusableBlocks,c=e.__experimentalIsSavingReusableBlock,u=a(),m=o(),d=n(),b=r(),g=t();b.map((function(e){if(e){var t=(n=e.id,c(n));t&&!e.isTemporary&&(p[e.id]={id:e.id,isSaving:!0}),t||e.isTemporary||!p[e.id]||e.id===p[e.id].id&&!t&&p[e.id].isSaving&&(p[e.id].isSaving=!1,l({path:"themeisle-gutenberg-blocks/v1/save_block_meta/".concat(e.id),method:"POST"}))}var n})),!(m||g&&d)||u||status||s()}))},function(e,t,n){"use strict";n.r(t);n(46),n(47);var o=n(2),a=wp.i18n.__,l=wp.blocks.registerBlockType,r=wp.compose,i=r.compose,c=r.withState,s=wp.components.Spinner,p=wp.data.withSelect;l("themeisle-blocks/about-author",{title:a("About Author"),description:a("About Author block is the easiest way to add a author bio below your posts."),icon:o.a,category:"themeisle-blocks",keywords:["about","author","profile"],attributes:{id:{type:"number"}},supports:{html:!1},edit:i([p((function(e,t){return{postAuthor:e("core/editor").getEditedPostAttribute("author"),authors:e("core").getAuthors(),props:t}})),c({status:0,authorDetails:{}})])((function(e){var t=e.postAuthor,n=e.authors,o=e.status,l=e.authorDetails,r=e.setState,i=e.props,c=e.className;return 0===o&&t&&n&&n.find((function(e){if(e.id===t)return t!==i.attributes.id&&i.setAttributes({id:e.id}),r({authorDetails:e,status:1}),e.id===t})),1===o&&t&&n?wp.element.createElement("section",{className:c},wp.element.createElement("div",{className:"wp-block-themeisle-author-image"},wp.element.createElement("img",{className:"author-image",src:l.avatar_urls[96],alt:l.name})),wp.element.createElement("div",{className:"wp-block-themeisle-author-data"},wp.element.createElement("h4",null,l.name),wp.element.createElement("p",null,l.description))):wp.element.createElement("div",{key:"loading",className:"wp-block-embed is-loading"},wp.element.createElement(s,null),wp.element.createElement("p",null,a("Loading…")))})),save:function(){return null}})},,function(e,t,n){},function(e,t,n){"use strict";n.r(t);var o=n(0),a=n.n(o),l=n(5),r=n.n(l),i=n(16),c=n.n(i),s=(n(51),n(52),n(53),n(2)),p=n(12),u=n(7),m=n(6),d=n(4);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(n,!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=wp.i18n.__,y=wp.blocks,w=y.createBlock,v=y.registerBlockType,k=wp.components,E=k.Button,C=k.Dashicon,x=k.Dropdown,T=k.DropdownMenu,S=k.IconButton,B=k.PanelBody,O=k.RangeControl,M=k.SVG,L=k.ToggleControl,N=k.Toolbar,A=wp.compose,P=A.compose,_=A.withState,R=wp.data.withSelect,I=wp.blockEditor||wp.editor,z=I.AlignmentToolbar,V=I.BlockControls,H=I.ColorPalette,j=I.InspectorControls,F=I.RichText,D=wp.element.Fragment,G=wp.viewport.withViewportMatch;v("themeisle-blocks/advanced-heading",{title:f("Advanced Heading"),description:f("Advanced Heading gives a spin to editor's Heading block with much needed customization options."),icon:s.h,category:"themeisle-blocks",keywords:[f("heading"),f("title"),f("advanced heading")],attributes:{id:{type:"string"},content:{type:"string",source:"html",selector:"h1,h2,h3,h4,h5,h6,div,p,span",default:""},tag:{default:"h2",type:"string"},align:{type:"string"},alignTablet:{type:"string"},alignMobile:{type:"string"},headingColor:{type:"string",default:"#000000"},highlightColor:{type:"string"},highlightBackground:{type:"string"},fontSize:{type:"number"},fontSizeTablet:{type:"number"},fontSizeMobile:{type:"number"},fontFamily:{type:"string"},fontVariant:{type:"string"},fontStyle:{type:"string",default:"normal"},textTransform:{type:"string",default:"none"},lineHeight:{type:"number"},letterSpacing:{type:"number"},textShadow:{type:"boolean",default:!1},textShadowColor:{type:"string",default:"#000000"},textShadowColorOpacity:{type:"number",default:50},textShadowBlur:{type:"number",default:5},textShadowHorizontal:{type:"number",default:0},textShadowVertical:{type:"number",default:0},paddingType:{type:"string",default:"linked"},paddingTypeTablet:{type:"string",default:"linked"},paddingTypeMobile:{type:"string",default:"linked"},padding:{type:"number",default:0},paddingTablet:{type:"number",default:0},paddingMobile:{type:"number",default:0},paddingTop:{type:"number",default:0},paddingTopTablet:{type:"number",default:0},paddingTopMobile:{type:"number",default:0},paddingRight:{type:"number",default:0},paddingRightTablet:{type:"number",default:0},paddingRightMobile:{type:"number",default:0},paddingBottom:{type:"number",default:0},paddingBottomTablet:{type:"number",default:0},paddingBottomMobile:{type:"number",default:0},paddingLeft:{type:"number",default:0},paddingLeftTablet:{type:"number",default:0},paddingLeftMobile:{type:"number",default:0},marginType:{type:"string",default:"unlinked"},marginTypeTablet:{type:"string",default:"unlinked"},marginTypeMobile:{type:"string",default:"unlinked"},margin:{type:"number",default:0},marginTablet:{type:"number",default:0},marginMobile:{type:"number",default:0},marginTop:{type:"number",default:0},marginTopTablet:{type:"number",default:0},marginTopMobile:{type:"number",default:0},marginBottom:{type:"number",default:25},marginBottomTablet:{type:"number",default:25},marginBottomMobile:{type:"number",default:20}},transforms:{from:[{type:"block",blocks:["core/heading"],transform:function(e){var t=e.content;return w("themeisle-blocks/advanced-heading",{content:t})}},{type:"block",blocks:["core/paragraph"],transform:function(e){var t=e.content;return w("themeisle-blocks/advanced-heading",{content:t})}}],to:[{type:"block",blocks:["core/paragraph"],transform:function(e){var t=e.content;return w("core/paragraph",{content:t})}}]},edit:P([R((function(e,t){return{props:t}})),_({tab:"style",fontSizeViewType:"desktop",alignmentViewType:"desktop",paddingViewType:"desktop",marginViewType:"desktop"}),G({isLarger:">= large",isLarge:"<= large",isSmall:">= small",isSmaller:"<= small"})])((function(e){var t=e.tab,n=e.fontSizeViewType,o=e.alignmentViewType,l=e.paddingViewType,i=e.marginViewType,s=e.setState,b=e.isLarger,y=e.isLarge,v=e.isSmall,k=e.isSmaller,A=e.props,P=A.attributes,_=P.id,R=P.content,I=P.tag,G=P.align,W=P.alignTablet,Z=P.alignMobile,q=P.headingColor,U=P.highlightColor,K=P.highlightBackground,Q=P.fontSize,J=P.fontSizeTablet,Y=P.fontSizeMobile,$=P.fontFamily,X=P.fontVariant,ee=P.fontStyle,te=P.textTransform,ne=P.lineHeight,oe=P.letterSpacing,ae=P.textShadow,le=P.textShadowColor,re=P.textShadowColorOpacity,ie=P.textShadowBlur,ce=P.textShadowHorizontal,se=P.textShadowVertical,pe=P.paddingType,ue=P.paddingTypeTablet,me=P.paddingTypeMobile,de=P.padding,be=P.paddingTablet,ge=P.paddingMobile,he=P.paddingTop,fe=P.paddingTopTablet,ye=P.paddingTopMobile,we=P.paddingRight,ve=P.paddingRightTablet,ke=P.paddingRightMobile,Ee=P.paddingBottom,Ce=P.paddingBottomTablet,xe=P.paddingBottomMobile,Te=P.paddingLeft,Se=P.paddingLeftTablet,Be=P.paddingLeftMobile,Oe=P.marginType,Me=P.marginTypeTablet,Le=P.marginTypeMobile,Ne=P.margin,Ae=P.marginTablet,Pe=P.marginMobile,_e=P.marginTop,Re=P.marginTopTablet,Ie=P.marginTopMobile,ze=P.marginBottom,Ve=P.marginBottomTablet,He=P.marginBottomMobile;if(void 0===_||_.substr(_.length-8)!==A.clientId.substr(0,8)){var je="wp-block-themeisle-blocks-advanced-heading-".concat(A.clientId.substr(0,8));A.setAttributes({id:je})}var Fe=b&&!y&&v&&!k,De=!b&&!y&&v&&!k,Ge=!(b||y||v||k),We=function(e){A.setAttributes({tag:e})},Ze=function(e){return"h1"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H1")):"h2"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H2")):"h3"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H3")):"h4"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H4")):"h5"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H5")):"h6"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"H6")):"div"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"DIV")):"p"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{x:"0",y:"15"},"P")):"span"===e?wp.element.createElement(M,{style:{width:"25px",height:"20px"}},wp.element.createElement("text",{style:{fontSize:"12px"},x:"0",y:"15"},"SPAN")):void 0},qe=function(){var e;return"desktop"===n&&(e=Q),"tablet"===n&&(e=J),"mobile"===n&&(e=Y),e};qe=qe();var Ue=function(){var e;return"desktop"===o&&(e=G),"tablet"===o&&(e=W),"mobile"===o&&(e=Z),e};Ue=Ue();var Ke=function(e){A.setAttributes({fontFamily:e,fontVariant:"normal",fontStyle:"normal"})},Qe=function(e){A.setAttributes({fontVariant:e})},Je=function(e){A.setAttributes({fontStyle:e})},Ye=function(e){A.setAttributes({textTransform:e})},$e=function(e){A.setAttributes({lineHeight:e})},Xe=function(e){A.setAttributes({letterSpacing:e})},et=function(e){var t;return"top"==e&&("desktop"===l&&(t="linked"===pe?de:he),"tablet"===l&&(t="linked"===ue?be:fe),"mobile"===l&&(t="linked"===me?ge:ye)),"right"==e&&("desktop"===l&&(t="linked"===pe?de:we),"tablet"===l&&(t="linked"===ue?be:ve),"mobile"===l&&(t="linked"===me?ge:ke)),"bottom"==e&&("desktop"===l&&(t="linked"===pe?de:Ee),"tablet"===l&&(t="linked"===ue?be:Ce),"mobile"===l&&(t="linked"===me?ge:xe)),"left"==e&&("desktop"===l&&(t="linked"===pe?de:Te),"tablet"===l&&(t="linked"===ue?be:Se),"mobile"===l&&(t="linked"===me?ge:Be)),t},tt={top:"paddingTop",right:"paddingRight",bottom:"paddingBottom",left:"paddingLeft"},nt={top:"paddingTopTablet",right:"paddingRightTablet",bottom:"paddingBottomTablet",left:"paddingLeftTablet"},ot={top:"paddingTopMobile",right:"paddingRightMobile",bottom:"paddingBottomMobile",left:"paddingLeftMobile"},at=function(){var e;return"desktop"===l&&(e=pe),"tablet"===l&&(e=ue),"mobile"===l&&(e=me),e};at=at();var lt,rt,it,ct=function(e){var t;return"top"==e&&("desktop"===i&&(t="linked"===Oe?Ne:_e),"tablet"===i&&(t="linked"===Me?Ae:Re),"mobile"===i&&(t="linked"===Le?Pe:Ie)),"bottom"==e&&("desktop"===i&&(t="linked"===Oe?Ne:ze),"tablet"===i&&(t="linked"===Me?Ae:Ve),"mobile"===i&&(t="linked"===Le?Pe:He)),t},st={top:"marginTop",bottom:"marginBottom"},pt={top:"marginTopTablet",bottom:"marginBottomTablet"},ut={top:"marginTopMobile",bottom:"marginBottomMobile"},mt=function(){var e;return"desktop"===i&&(e=Oe),"tablet"===i&&(e=Me),"mobile"===i&&(e=Le),e};mt=mt(),Fe&&(lt={fontSize:"".concat(Q,"px")},rt={textAlign:G,paddingTop:"".concat("linked"===pe?de:he,"px"),paddingRight:"".concat("linked"===pe?de:we,"px"),paddingBottom:"".concat("linked"===pe?de:Ee,"px"),paddingLeft:"".concat("linked"===pe?de:Te,"px"),marginTop:"".concat("linked"===Oe?Ne:_e,"px"),marginBottom:"".concat("linked"===Oe?Ne:ze,"px")}),De&&(lt={fontSize:"".concat(J,"px")},rt={textAlign:W,paddingTop:"".concat("linked"===ue?be:fe,"px"),paddingRight:"".concat("linked"===ue?be:ve,"px"),paddingBottom:"".concat("linked"===ue?be:Ce,"px"),paddingLeft:"".concat("linked"===ue?be:Se,"px"),marginTop:"".concat("linked"===Me?Ae:Re,"px"),marginBottom:"".concat("linked"===Me?Ae:Ve,"px")}),Ge&&(lt={fontSize:"".concat(Y,"px")},rt={textAlign:Z,paddingTop:"".concat("linked"===me?ge:ye,"px"),paddingRight:"".concat("linked"===me?ge:ke,"px"),paddingBottom:"".concat("linked"===me?ge:xe,"px"),paddingLeft:"".concat("linked"===me?ge:Be,"px"),marginTop:"".concat("linked"===Le?Pe:Ie,"px"),marginBottom:"".concat("linked"===Le?Pe:He,"px")}),ae&&(it={textShadow:"".concat(ce,"px ").concat(se,"px ").concat(ie,"px ").concat(r()(le||"#000000",re))});var dt=g({color:q},lt,{fontFamily:$||"inherit",fontWeight:"regular"===X?"normal":X,fontStyle:ee,textTransform:te,lineHeight:ne&&"".concat(ne,"px"),letterSpacing:oe&&"".concat(oe,"px")},rt,{},it);return wp.element.createElement(D,null,wp.element.createElement("style",null,".".concat(_," mark {\n\t\t\t\t\t\tcolor: ").concat(U,";\n\t\t\t\t\t\tbackground: ").concat(K,";\n\t\t\t\t\t}")),$&&wp.element.createElement(c.a,{fonts:[{font:$,weights:X&&["".concat(X+("italic"===ee?":i":""))]}]}),wp.element.createElement(V,null,wp.element.createElement(T,{icon:Ze(I),label:f("Select tag"),className:"components-toolbar",controls:[{title:f("Heading 1"),icon:Ze("h1"),onClick:function(){return We("h1")}},{title:f("Heading 2"),icon:Ze("h2"),onClick:function(){return We("h2")}},{title:f("Heading 3"),icon:Ze("h3"),onClick:function(){return We("h3")}},{title:f("Heading 4"),icon:Ze("h4"),onClick:function(){return We("h4")}},{title:f("Heading 5"),icon:Ze("h5"),onClick:function(){return We("h5")}},{title:f("Heading 6"),icon:Ze("h6"),onClick:function(){return We("h6")}},{title:f("Division"),icon:Ze("div"),onClick:function(){return We("div")}},{title:f("Paragraph"),icon:Ze("p"),onClick:function(){return We("p")}},{title:f("Span Tag"),icon:Ze("span"),onClick:function(){return We("span")}}]}),wp.element.createElement(N,{className:"wp-themesiel-blocks-advanced-heading-components-toolbar"},wp.element.createElement(x,{contentClassName:"wp-themesiel-blocks-advanced-heading-popover-content",position:"bottom center",renderToggle:function(e){var t=e.isOpen,n=e.onToggle;return wp.element.createElement(S,{className:"components-dropdown-menu__toggle",icon:"editor-textcolor",onClick:n,"aria-haspopup":"true","aria-expanded":t,label:f("Typography Settings"),tooltip:f("Typography Settings")},wp.element.createElement("span",{className:"components-dropdown-menu__indicator"}))},renderContent:function(){return wp.element.createElement(D,null,wp.element.createElement(p.a,{label:f("Font Family"),value:$,onChangeFontFamily:Ke,isSelect:!0,valueVariant:X,onChangeFontVariant:Qe,valueStyle:ee,onChangeFontStyle:Je,valueTransform:te,onChangeTextTransform:Ye}),wp.element.createElement(O,{label:f("Line Height"),value:ne,onChange:$e,min:0,max:200}),wp.element.createElement(O,{label:f("Letter Spacing"),value:oe,onChange:Xe,min:-50,max:100}))}}))),wp.element.createElement(j,null,wp.element.createElement(B,{className:"wp-block-themeisle-blocks-advanced-heading-header-panel"},wp.element.createElement(E,{className:a()("header-tab",{"is-selected":"style"===t}),onClick:function(){return s({tab:"style"})}},wp.element.createElement("span",null,wp.element.createElement(C,{icon:"admin-customizer"}),f("Style"))),wp.element.createElement(E,{className:a()("header-tab",{"is-selected":"advanced"===t}),onClick:function(){return s({tab:"advanced"})}},wp.element.createElement("span",null,wp.element.createElement(C,{icon:"admin-generic"}),f("Advanced")))),"style"===t&&wp.element.createElement(D,null,wp.element.createElement(B,{title:f("General Settings")},wp.element.createElement(D,null,wp.element.createElement("p",null,f("Heading Color")),wp.element.createElement(H,{label:"Heading Color",value:q,onChange:function(e){A.setAttributes({headingColor:e})}})),wp.element.createElement(m.a,{label:"Font Size",view:n,changeViewType:function(e){s({fontSizeViewType:e})}},wp.element.createElement(O,{value:qe||"",onChange:function(e){"desktop"===n&&A.setAttributes({fontSize:e}),"tablet"===n&&A.setAttributes({fontSizeTablet:e}),"mobile"===n&&A.setAttributes({fontSizeMobile:e})},min:1,max:500})),wp.element.createElement(m.a,{label:"Alignment",view:o,changeViewType:function(e){s({alignmentViewType:e})}},wp.element.createElement(z,{value:Ue,onChange:function(e){"desktop"===o&&A.setAttributes({align:e}),"tablet"===o&&A.setAttributes({alignTablet:e}),"mobile"===o&&A.setAttributes({alignMobile:e})}}))),wp.element.createElement(B,{title:f("Typography Settings"),initialOpen:!1},wp.element.createElement(p.a,{label:f("Font Family"),value:$,onChangeFontFamily:Ke,valueVariant:X,onChangeFontVariant:Qe,valueStyle:ee,onChangeFontStyle:Je,valueTransform:te,onChangeTextTransform:Ye}),wp.element.createElement(O,{label:f("Line Height"),value:ne,onChange:$e,min:0,max:200}),wp.element.createElement(O,{label:f("Letter Spacing"),value:oe,onChange:Xe,min:-50,max:100}),wp.element.createElement(L,{label:"Shadow Properties",checked:ae,onChange:function(e){A.setAttributes({textShadow:e})}}),ae&&wp.element.createElement(D,null,wp.element.createElement(D,null,wp.element.createElement("p",null,f("Color")),wp.element.createElement(H,{label:f("Color"),value:le,onChange:function(e){A.setAttributes({textShadowColor:e})}})),wp.element.createElement(u.a,{label:"Shadow Properties"},wp.element.createElement(O,{label:f("Opacity"),value:re,onChange:function(e){A.setAttributes({textShadowColorOpacity:e})},min:0,max:100}),wp.element.createElement(O,{label:f("Blur"),value:ie,onChange:function(e){A.setAttributes({textShadowBlur:e})},min:0,max:100}),wp.element.createElement(O,{label:f("Horizontal"),value:ce,onChange:function(e){A.setAttributes({textShadowHorizontal:e})},min:-100,max:100}),wp.element.createElement(O,{label:f("Vertical"),value:se,onChange:function(e){A.setAttributes({textShadowVertical:e})},min:-100,max:100})))))||"advanced"===t&&wp.element.createElement(D,null,wp.element.createElement(B,{title:f("Highlight Color")},wp.element.createElement(D,null,wp.element.createElement("p",null,f("Highlight Color")),wp.element.createElement(H,{label:"Highlight Color",value:U,onChange:function(e){A.setAttributes({highlightColor:e})}})),wp.element.createElement(D,null,wp.element.createElement("p",null,f("Highlight Background")),wp.element.createElement(H,{label:"Highlight Background",value:K,onChange:function(e){A.setAttributes({highlightBackground:e})}}))),wp.element.createElement(B,{title:f("Padding & Margin"),initialOpen:!1},wp.element.createElement(m.a,{label:"Padding",view:l,changeViewType:function(e){s({paddingViewType:e})}},wp.element.createElement(d.a,{type:at,min:0,max:500,changeType:function(e){"desktop"===l&&A.setAttributes({paddingType:e}),"tablet"===l&&A.setAttributes({paddingTypeTablet:e}),"mobile"===l&&A.setAttributes({paddingTypeMobile:e})},onChange:function(e,t){"desktop"===l&&("linked"===pe?A.setAttributes({padding:t}):A.setAttributes(h({},tt[e],t))),"tablet"===l&&("linked"===ue?A.setAttributes({paddingTablet:t}):A.setAttributes(h({},nt[e],t))),"mobile"===l&&("linked"===me?A.setAttributes({paddingMobile:t}):A.setAttributes(h({},ot[e],t)))},options:[{label:f("Top"),type:"top",value:et("top")},{label:f("Right"),type:"right",value:et("right")},{label:f("Bottom"),type:"bottom",value:et("bottom")},{label:f("Left"),type:"left",value:et("left")}]})),wp.element.createElement(m.a,{label:"Margin",view:i,changeViewType:function(e){s({marginViewType:e})}},wp.element.createElement(d.a,{type:mt,min:-500,max:500,changeType:function(e){"desktop"===i&&A.setAttributes({marginType:e}),"tablet"===i&&A.setAttributes({marginTypeTablet:e}),"mobile"===i&&A.setAttributes({marginTypeMobile:e})},onChange:function(e,t){"desktop"===i&&("linked"===Oe?A.setAttributes({margin:t}):A.setAttributes(h({},st[e],t))),"tablet"===i&&("linked"===Me?A.setAttributes({marginTablet:t}):A.setAttributes(h({},pt[e],t))),"mobile"===i&&("linked"===Le?A.setAttributes({marginMobile:t}):A.setAttributes(h({},ut[e],t)))},options:[{label:f("Top"),type:"top",value:ct("top")},{label:f("Right"),disabled:!0},{label:f("Bottom"),type:"bottom",value:ct("bottom")},{label:f("Left"),disabled:!0}]}))))),wp.element.createElement(F,{identifier:"content",className:a()(_,A.className),value:R,placeholder:f("Write heading…"),tagName:I,formattingControls:["bold","italic","link","strikethrough","mark"],allowedFormats:["core/bold","core/italic","core/link","core/strikethrough","themeisle-blocks/mark"],onMerge:A.mergeBlocks,unstableOnSplit:A.insertBlocksAfter?function(e,t){A.setAttributes({content:e});for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;a<n;a++)o[a-2]=arguments[a];A.insertBlocksAfter([].concat(o,[w("core/paragraph",{content:t})]))}:void 0,onRemove:function(){return A.onReplace([])},style:dt,onChange:function(e){A.setAttributes({content:e})}}))})),save:function(e){var t,n=e.attributes,o=n.id,l=n.content,i=n.tag,c=n.headingColor,s=n.fontFamily,p=n.fontVariant,u=n.fontStyle,m=n.textTransform,d=n.lineHeight,b=n.letterSpacing,h=n.textShadow,f=n.textShadowColor,y=n.textShadowColorOpacity,w=n.textShadowBlur,v=n.textShadowHorizontal,k=n.textShadowVertical;h&&(t={textShadow:"".concat(v,"px ").concat(k,"px ").concat(w,"px ").concat(r()(f||"#000000",y))});var E=g({color:c,fontFamily:s,fontWeight:"regular"===p?"normal":p,fontStyle:u,textTransform:m,lineHeight:d&&"".concat(d,"px"),letterSpacing:b&&"".concat(b,"px")},t);return wp.element.createElement(F.Content,{tagName:i,value:l,id:o,className:a()(o,e.className),style:E})}})},,,,function(e,t,n){},function(e,t){var n=wp.i18n.__,o=wp.richText,a=o.registerFormatType,l=o.toggleFormat,r=wp.blockEditor||wp.editor,i=r.RichTextShortcut,c=r.RichTextToolbarButton,s=wp.element.Fragment,p="themeisle-blocks/mark";a(p,{name:p,title:n("Highlight"),tagName:"mark",className:null,edit:function(e){var t=e.isActive,o=e.value,a=e.onChange,r=function(){return a(l(o,{type:p}))};return wp.element.createElement(s,null,wp.element.createElement(i,{type:"primary",character:"m",onUse:r}),wp.element.createElement(c,{icon:"admin-customizer",title:n("Highlight"),onClick:r,isActive:t,shortcutType:"access",shortcutCharacter:"m"}))}})},,,,,,function(e,t,n){},,function(e,t,n){},,function(e,t){var n=wp.i18n.__,o=wp.blocks.registerBlockType,a=(wp.blockEditor||wp.editor).InnerBlocks;o("themeisle-blocks/accordion-area",{title:n("Accordion"),description:n("Accordion block allows you to add beautiful accordions in your posts."),icon:"menu",category:"themeisle-blocks",keywords:["accordion","collapsible","orbitfox"],supports:{inserter:!1},edit:function(e){return wp.element.createElement("div",{className:e.className},wp.element.createElement("ul",null,wp.element.createElement(a,{allowedBlocks:["themeisle-blocks/accordion-block"],template:[["themeisle-blocks/accordion-block"],["themeisle-blocks/accordion-block"],["themeisle-blocks/accordion-block"]]})))},save:function(){return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-accordion-box"},wp.element.createElement("ul",null,wp.element.createElement(a.Content,null)))}})},function(e,t){var n=wp.i18n.__,o=wp.blocks.registerBlockType,a=wp.blockEditor||wp.editor,l=a.RichText,r=a.InnerBlocks;o("themeisle-blocks/accordion-block",{title:n("Accordion Item"),description:n("Accordion block allows you to add beautiful accordions in your posts."),parent:["themeisle-blocks/accordion-area"],icon:"menu",category:"themeisle-blocks",keywords:["accordion","collapsible","orbitfox"],attributes:{heading:{type:"array",source:"children",selector:".accordion-heading"}},supports:{inserter:!1},edit:function(e){var t=[["core/paragraph",{content:n("What is the point of being alive if you don’t at least try to do something remarkable?"),className:"accordion-content"}]];return wp.element.createElement("li",{className:e.className},wp.element.createElement(l,{tagName:"h4",className:"accordion-heading",value:e.attributes.heading,placeholder:"Section Title",onChange:function(t){return e.setAttributes({heading:t})}}),wp.element.createElement("div",{className:"accordion-content"},wp.element.createElement(r,{template:t,id:"accordion-content"})))},save:function(e){return wp.element.createElement("li",null,wp.element.createElement("input",{type:"checkbox",checked:!0}),wp.element.createElement("i",null),wp.element.createElement(l.Content,{tagName:"h4",className:"accordion-heading",value:e.attributes.heading}),wp.element.createElement("div",{className:"accordion-content"},wp.element.createElement(r.Content,null)))}})},function(e,t,n){"use strict";n.r(t);n(25),n(26),n(27),n(35),n(37),n(36),n(28)},function(e,t,n){},,function(e,t,n){},,function(e,t,n){},,function(e,t){var n=wp.i18n.__,o=wp.blocks.registerBlockType,a=wp.blockEditor||wp.editor,l=a.InnerBlocks,r=a.InspectorControls,i=a.PanelColorSettings;o("themeisle-blocks/service-block",{title:n("Service Block"),description:n("Use this Services table to showcase services your website offers."),parent:["themeisle-blocks/services"],icon:"slides",category:"themeisle-blocks",keywords:["pricing","table","orbitfox"],attributes:{backgroundColor:{type:"string",default:"#ffffff"}},supports:{inserter:!1},edit:function(e){var t=[["themeisle-blocks/font-awesome-icons",{fontSize:62,prefix:"fab",icon:"angellist"}],["core/heading",{content:n("Panel"),className:"service-title",align:"center",level:4}],["core/paragraph",{content:n("Small description, but a pretty long one."),className:"service-content",align:"center"}],["core/button",{text:n("Learn More"),className:"service-button",align:"center"}]];return[wp.element.createElement(r,null,wp.element.createElement(i,{title:n("Color Settings"),initialOpen:!0,colorSettings:[{value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})},label:n("Background Color")}]})),wp.element.createElement("div",{className:"wp-block-column",style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(l,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:"wp-block-column",style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(l.Content,null))}})},function(e,t,n){},,function(e,t){var n=wp.i18n.__,o=wp.blocks.registerBlockType,a=wp.blockEditor||wp.editor,l=a.InnerBlocks,r=a.InspectorControls,i=a.PanelColorSettings;o("themeisle-blocks/testimonials-block",{title:n("Testimonials Block"),description:n("Display kudos from customers and clients and display them on your website."),parent:["themeisle-blocks/testimonials-area"],icon:"testimonial",category:"themeisle-blocks",keywords:["testimonials","clients","quotes"],attributes:{backgroundColor:{type:"string",default:"#ffffff"}},supports:{inserter:!1},edit:function(e){var t=[["core/image",{align:"center"}],["core/heading",{content:n("John Doe"),className:"testimonials-title",align:"center",level:3}],["core/heading",{content:n("Jedi Master"),className:"testimonials-subtitle",align:"center",level:6}],["core/paragraph",{content:n("What is the point of being alive if you don’t at least try to do something remarkable?"),className:"testimonials-content",align:"center"}]];return[wp.element.createElement(r,null,wp.element.createElement(i,{title:n("Color Settings"),initialOpen:!0,colorSettings:[{value:e.attributes.backgroundColor,onChange:function(t){e.setAttributes({backgroundColor:t})},label:n("Background Color")}]})),wp.element.createElement("div",{className:"wp-block-column",style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(l,{template:t}))]},save:function(e){return wp.element.createElement("div",{className:"wp-block-column",style:{backgroundColor:e.attributes.backgroundColor}},wp.element.createElement(l.Content,null))}})},,function(e,t,n){},function(e,t,n){},,function(e,t,n){},,,,,function(e,t,n){"use strict";n.r(t);n(86),n(87);var o=n(2),a=n(3),l=wp.i18n.__,r=wp.apiFetch,i=wp.blocks.registerBlockType,c=wp.components,s=c.Placeholder,p=c.Dashicon,u=c.TextControl,m=c.Spinner,d=c.Button,b=c.Toolbar,g=c.Tooltip,h=wp.compose,f=h.compose,y=h.withState,w=(wp.blockEditor||wp.editor).BlockControls,v=wp.data.withSelect,k=wp.keycodes.ENTER;i("themeisle-blocks/plugin-cards",{title:l("Plugin Card"),description:l("Plugin Card block lets you display plugins data in your blog posts."),icon:o.m,category:"themeisle-blocks",keywords:["plugin","card","orbitfox"],attributes:{slug:{type:"string"},pluginIcon:{type:"string"},pluginName:{type:"string"},pluginAuthor:{type:"string"},pluginRating:{type:"number"},pluginDescription:{type:"string"},pluginInstalls:{type:"number"},pluginVersion:{type:"string"},pluginTested:{type:"string"},pluginLink:{type:"string"}},supports:{html:!1},edit:f([v((function(e,t){return{props:t}})),y({status:0,results:{}})])((function(e){var t,n,o,i,c,h=e.props,f=e.className,y=e.status,v=e.results,E=e.setState;return[h.attributes.pluginName&&wp.element.createElement(w,{key:"toolbar-controls"},wp.element.createElement(b,{className:"components-toolbar"},wp.element.createElement(g,{text:l("Edit Plugin Card")},wp.element.createElement(d,{className:"components-icon-button components-toolbar__control edit-plugin-card",onClick:function(){h.setAttributes({pluginIcon:"",pluginName:"",pluginAuthor:"",pluginRating:"",pluginDescription:"",pluginInstalls:"",pluginVersion:"",pluginTested:"",pluginLink:""})}},wp.element.createElement(p,{icon:"edit"}))))),wp.element.createElement("div",{className:f},h.attributes.pluginName?wp.element.createElement("div",{className:"wp-block-themeisle-plugin-card"},wp.element.createElement("div",{className:"card-header"},wp.element.createElement("div",{className:"card-main"},wp.element.createElement("div",{className:"card-logo"},wp.element.createElement("img",{src:h.attributes.pluginIcon,alt:Object(a.b)(h.attributes.pluginName),title:Object(a.b)(h.attributes.pluginName)})),wp.element.createElement("div",{className:"card-info"},wp.element.createElement("h4",null,Object(a.b)(h.attributes.pluginName)),wp.element.createElement("h5",{dangerouslySetInnerHTML:{__html:_.unescape(h.attributes.pluginAuthor)}})),wp.element.createElement("div",{className:"card-ratings",dangerouslySetInnerHTML:{__html:_.unescape((t=h.attributes.pluginRating,n=Math.floor(t/10)/2,o=Math.floor(n),i=Math.ceil(n-o),c=5-o-i,'<span className="star-full"></span>'.repeat(o)+'<span className="star-half"></span>'.repeat(i)+'<span className="star-empty"></span>'.repeat(c)))}}))),wp.element.createElement("div",{className:"card-details"},wp.element.createElement("div",{className:"card-description"},Object(a.b)(h.attributes.pluginDescription)),wp.element.createElement("div",{className:"card-stats"},wp.element.createElement("h5",null,l("Plugin Stats")),wp.element.createElement("div",{className:"card-stats-list"},wp.element.createElement("div",{className:"card-stat"},wp.element.createElement("span",{className:"card-text-large"},h.attributes.pluginInstalls.toLocaleString(),"+"),l("active installs")),wp.element.createElement("div",{className:"card-stat"},wp.element.createElement("span",{className:"card-text-large"},h.attributes.pluginVersion),l("version")),wp.element.createElement("div",{className:"card-stat"},wp.element.createElement("span",{className:"card-text-large"},h.attributes.pluginTested),l("tested up to"))))),wp.element.createElement("div",{className:"card-download"},wp.element.createElement("a",{href:h.attributes.pluginLink},l("Download")))):wp.element.createElement(s,{icon:"admin-plugins",label:l("Plugin Card")},wp.element.createElement("div",{className:"search-plugin-field"},wp.element.createElement(p,{icon:"search"}),1===y&&wp.element.createElement(m,null),wp.element.createElement(u,{type:"text",placeholder:l("Search for plugin…"),value:h.attributes.slug,onChange:function(e){h.setAttributes({slug:e})},onKeyDown:function(e){var t;e.keyCode===k&&(t=e.target.value,E({status:1}),r({path:"themeisle-gutenberg-blocks/v1/get_plugins?search='".concat(encodeURIComponent(t))}).then((function(e){var t=e.data.plugins;E({status:0,results:t})})))}}),v&&wp.element.createElement("div",{className:"plugin-card-search-results"},wp.element.createElement("div",null,Object.keys(v).map((function(e,t){var n,o=v[e];return o.icons.svg&&(n=o.icons.svg),o.icons["2x"]&&(n=o.icons["2x"]),o.icons["1x"]&&(n=o.icons["1x"]),o.icons.default&&(n=o.icons.default),wp.element.createElement("div",{className:"plugin-card-list-item",key:e,onClick:function(e){e.preventDefault(),function(e){var t;e.icons.svg&&(t=e.icons.svg),e.icons["2x"]&&(t=e.icons["2x"]),e.icons["1x"]&&(t=e.icons["1x"]),e.icons.default&&(t=e.icons.default),h.setAttributes({slug:e.slug,pluginIcon:t,pluginName:e.name,pluginAuthor:e.author,pluginRating:e.rating,pluginDescription:e.short_description,pluginInstalls:e.active_installs,pluginVersion:e.version,pluginTested:e.tested,pluginLink:e.download_link}),E({results:{}})}(o)}},wp.element.createElement("img",{src:n}),wp.element.createElement("span",{dangerouslySetInnerHTML:{__html:_.unescape(o.name)}}))})))))))]})),save:function(){return null}})},,function(e,t,n){},function(e,t,n){},,,,,,,,,,,,function(e,t,n){},,function(e,t,n){},,,function(e,t,n){},,function(e,t,n){"use strict";n.r(t);n(32),n(33),n(34)},,,function(e,t,n){"use strict";n.r(t);n(102),n(103);var o=n(0),a=n.n(o),l=n(5),r=n.n(l),i=n(2),c={1:{equal:["100"]},2:{equal:["50","50"],oneTwo:["33.34","66.66"],twoOne:["66.66","33.34"]},3:{equal:["33.33","33.33","33.33"],oneOneTwo:["25","25","50"],twoOneOne:["50","25","25"],oneTwoOne:["25","50","25"],oneThreeOne:["20","60","20"]},4:{equal:["25","25","25","25"]},5:{equal:["20","20","20","20","20"]},6:{equal:["16.66","16.66","16.66","16.66","16.66","16.66"]}},s=n(20),p=n(4),u=n(6),m=n(11),d=(n(104),wp.components),b=d.Dashicon,g=d.Tooltip,h=function(e){var t=e.title,n=e.firstColor,o=e.secondColor,l=e.isSelected,r=e.onChange,i=wp.element.createElement("button",{type:"button","aria-pressed":l,className:a()("wp-block-themeisle-blocks-responsive-control-option",{"is-active":l}),style:{background:"linear-gradient(90deg, ".concat(n," 0%, ").concat(o," 100%)")},onClick:function(){return r(n,0,o,100,"linear",90,"center center")}});return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-responsive-control-option-wrapper"},t?wp.element.createElement(g,{text:t},i):i,l&&wp.element.createElement(b,{icon:"saved"}))},f=wp.i18n.__,y=[{title:f("Reef"),firstColor:"#36d1dc",secondColor:"#5b86e5"},{title:f("Mild"),firstColor:"#67B26F",secondColor:"#4ca2cd"},{title:f("Mojito"),firstColor:"#1D976C",secondColor:"#93F9B9"},{title:f("Nelson"),firstColor:"#f2709c",secondColor:"#ff9472"},{title:f("Orange Fun"),firstColor:"#fc4a1a",secondColor:"#f7b733"},{title:f("Evening Night"),firstColor:"#005AA7",secondColor:"#FFFDE4"},{title:f("Calm Darya"),firstColor:"#5f2c82",secondColor:"#49a09d"},{title:f("Opa"),firstColor:"#3D7EAA",secondColor:"#FFE47A"},{title:f("Bora Bora"),firstColor:"#2BC0E4",secondColor:"#EAECC6"},{title:f("Electric Violet"),firstColor:"#4776E6",secondColor:"#8E54E9"},{title:f("Pinky"),firstColor:"#DD5E89",secondColor:"#F7BB97"},{title:f("Purple Paradise"),firstColor:"#1D2B64",secondColor:"#F8CDDA"}],w=wp.i18n.__,v=wp.components,k=v.Button,E=v.ColorIndicator,C=v.Dropdown,x=v.RangeControl,T=v.SelectControl,S=wp.compose.withInstanceId,B=(wp.blockEditor||wp.editor).ColorPalette,O=wp.element.Fragment,M=S((function(e){var t,n=e.label,o=e.instanceId,a=e.value,l=e.customGradient,r=void 0===l||l,i=e.onChange,c="inspector-gradient-picker-control-".concat(o),s=function(e){var t=e.firstColor,n=void 0===t?a.firstColor:t,o=e.firstLocation,l=void 0===o?a.firstLocation:o,r=e.secondColor,c=void 0===r?a.secondColor:r,s=e.secondLocation,p=void 0===s?a.secondLocation:s,u=e.type,m=void 0===u?a.type:u,d=e.angle,b=void 0===d?a.angle:d,g=e.position,h=void 0===g?a.position:g;i(n,l,c,p,m,b,h)};t="linear"===a.type?"".concat(a.angle,"deg"):"at ".concat(a.position);var p="".concat(a.type,"-gradient( ").concat(t,", ").concat(a.firstColor||"rgba( 0, 0, 0, 0 )"," ").concat(a.firstLocation,"%, ").concat(a.secondColor||"rgba( 0, 0, 0, 0 )"," ").concat(a.secondLocation,"% )"),u=y.some((function(e){return e.firstColor===a.firstColor&&e.secondColor===a.secondColor}));return wp.element.createElement("div",{id:c,className:"wp-block-themeisle-blocks-responsive-control"},wp.element.createElement("div",{className:"components-base-control__field"},n&&wp.element.createElement("div",{className:"components-base-control__title"},wp.element.createElement("label",{className:"components-base-control__label"},n,!u&&wp.element.createElement(E,{colorValue:p}))),wp.element.createElement("div",{className:"wp-block-themeisle-blocks-responsive-control-presets"},y.map((function(e){return wp.element.createElement(h,{title:e.title,firstColor:e.firstColor,secondColor:e.secondColor,isSelected:e.firstColor===a.firstColor&&e.secondColor===a.secondColor,onChange:i})})),wp.element.createElement("div",{className:"wp-block-themeisle-blocks-responsive-control-custom-wrapper"},r&&wp.element.createElement(C,{className:"wp-block-themeisle-blocks-responsive-control-dropdown-link-action",contentClassName:"wp-block-themeisle-blocks-responsive-control-dropdown-content",renderToggle:function(e){var t=e.isOpen,n=e.onToggle;return wp.element.createElement(k,{"aria-expanded":t,onClick:n,isLink:!0},w("Custom Gradient"))},renderContent:function(){return wp.element.createElement(O,null,wp.element.createElement("p",null,w("First Color")),wp.element.createElement(B,{label:w("Color"),clearable:!1,value:a.firstColor,onChange:function(e){return s({firstColor:e})}}),wp.element.createElement(x,{label:w("Location"),value:a.firstLocation,min:0,max:100,onChange:function(e){return s({firstLocation:e})}}),wp.element.createElement("p",null,w("Second Color")),wp.element.createElement(B,{label:w("Color"),clearable:!1,value:a.secondColor,onChange:function(e){return s({secondColor:e})}}),wp.element.createElement(x,{label:w("Location"),value:a.secondLocation,min:0,max:100,onChange:function(e){return s({secondLocation:e})}}),wp.element.createElement(T,{label:w("Type"),value:a.type,options:[{label:"Linear",value:"linear"},{label:"Radial",value:"radial"}],onChange:function(e){return s({type:e})}}),"linear"===a.type?wp.element.createElement(x,{label:w("Angle"),value:a.angle,min:0,max:360,onChange:function(e){return s({angle:e})}}):wp.element.createElement(T,{label:w("Position"),value:a.position,options:[{label:"Top Left",value:"top left"},{label:"Top Center",value:"top center"},{label:"Top Right",value:"top right"},{label:"Center Left",value:"center left"},{label:"Center Center",value:"center center"},{label:"Center Right",value:"center right"},{label:"Bottom Left",value:"bottom left"},{label:"Bottom Center",value:"bottom center"},{label:"Bottom Right",value:"bottom right"}],onChange:function(e){return s({position:e})}}))}}),wp.element.createElement(k,{className:"wp-block-themeisle-blocks-responsive-control-clear",type:"button",isSmall:!0,isDefault:!0,onClick:function(){return i("#ffffff",0,"#ffffff",100,"linear",90,"center center")}},w("Clear"))))))})),L=n(7);function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function A(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var I=wp.i18n.__,z=wp.blockEditor||wp.editor,V=z.__experimentalBlockNavigationList,H=z.BlockControls,j=wp.components,F=j.IconButton,D=j.Modal,G=j.Toolbar,W=wp.compose.compose,Z=wp.data,q=Z.withSelect,U=Z.withDispatch,K=wp.element,Q=K.Component,J=K.Fragment,Y=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=P(t).apply(this,arguments))||"object"!==N(o)&&"function"!=typeof o?_(n):o).toggleNavigator=e.toggleNavigator.bind(_(e)),e.state={isNavigationListOpen:!1},e}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&R(e,t)}(t,e),n=t,(o=[{key:"toggleNavigator",value:function(e){this.setState({isNavigationListOpen:e})}},{key:"render",value:function(){var e=this;return wp.element.createElement(J,null,wp.element.createElement(H,null,wp.element.createElement(G,{className:"wp-themesiel-blocks-block-navigator-components-toolbar"},wp.element.createElement(F,{className:"components-toolbar__control",label:I("Open block navigator"),onClick:function(){return e.toggleNavigator(!0)},icon:i.k}))),this.state.isNavigationListOpen&&wp.element.createElement(D,{title:I("Block Navigator"),closeLabel:I("Close"),onRequestClose:function(){e.toggleNavigator(!1)}},wp.element.createElement(V,{blocks:[this.props.block],selectedBlockClientId:this.props.selectedBlockClientId,selectBlock:this.props.selectBlock,showNestedBlocks:!0})))}}])&&A(n.prototype,o),a&&A(n,a),t}(Q),$=W(q((function(e,t){var n=t.clientId,o=e("core/block-editor")||e("core/editor"),a=o.getSelectedBlockClientId;return{block:(0,o.getBlock)(n),selectedBlockClientId:a()}})),U((function(e,t){t.block;return{selectBlock:(e("core/block-editor")||e("core/editor")).selectBlock}})))(Y),X=n(9),ee=n(22);function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(n,!0).forEach((function(t){oe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ae=(wp.blockEditor||wp.editor).InnerBlocks,le=[{attributes:{align:{type:"string"},id:{type:"string"},columns:{type:"number"},layout:{type:"string"},layoutTablet:{type:"string",default:"equal"},layoutMobile:{type:"string",default:"equal"},columnsGap:{type:"string",default:"default"},paddingType:{type:"string",default:"linked"},paddingTypeTablet:{type:"string",default:"linked"},paddingTypeMobile:{type:"string",default:"linked"},padding:{type:"number",default:20},paddingTablet:{type:"number",default:20},paddingMobile:{type:"number",default:20},paddingTop:{type:"number",default:20},paddingTopTablet:{type:"number",default:20},paddingTopMobile:{type:"number",default:20},paddingRight:{type:"number",default:20},paddingRightTablet:{type:"number",default:20},paddingRightMobile:{type:"number",default:20},paddingBottom:{type:"number",default:20},paddingBottomTablet:{type:"number",default:20},paddingBottomMobile:{type:"number",default:20},paddingLeft:{type:"number",default:20},paddingLeftTablet:{type:"number",default:20},paddingLeftMobile:{type:"number",default:20},marginType:{type:"string",default:"unlinked"},marginTypeTablet:{type:"string",default:"unlinked"},marginTypeMobile:{type:"string",default:"unlinked"},margin:{type:"number",default:20},marginTablet:{type:"number",default:20},marginMobile:{type:"number",default:20},marginTop:{type:"number",default:20},marginTopTablet:{type:"number",default:20},marginTopMobile:{type:"number",default:20},marginBottom:{type:"number",default:20},marginBottomTablet:{type:"number",default:20},marginBottomMobile:{type:"number",default:20},columnsWidth:{type:"number"},columnsHeight:{type:"string",default:"auto"},columnsHeightCustom:{type:"number"},columnsHeightCustomTablet:{type:"number"},columnsHeightCustomMobile:{type:"number"},horizontalAlign:{type:"string",default:"unset"},verticalAlign:{type:"string",default:"unset"},backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string"},backgroundImageID:{type:"number"},backgroundImageURL:{type:"string"},backgroundAttachment:{type:"string",default:"scroll"},backgroundPosition:{type:"string",default:"top left"},backgroundRepeat:{type:"string",default:"repeat"},backgroundSize:{type:"string",default:"auto"},backgroundGradientFirstColor:{type:"string",default:"#36d1dc"},backgroundGradientFirstLocation:{type:"number",default:0},backgroundGradientSecondColor:{type:"string",default:"#5b86e5"},backgroundGradientSecondLocation:{type:"number",default:100},backgroundGradientType:{type:"string",default:"linear"},backgroundGradientAngle:{type:"number",default:90},backgroundGradientPosition:{type:"string",default:"center center"},backgroundOverlayOpacity:{type:"number",default:50},backgroundOverlayType:{type:"string",default:"color"},backgroundOverlayColor:{type:"string"},backgroundOverlayImageID:{type:"number"},backgroundOverlayImageURL:{type:"string"},backgroundOverlayAttachment:{type:"string",default:"scroll"},backgroundOverlayPosition:{type:"string",default:"top left"},backgroundOverlayRepeat:{type:"string",default:"repeat"},backgroundOverlaySize:{type:"string",default:"auto"},backgroundOverlayGradientFirstColor:{type:"string",default:"#36d1dc"},backgroundOverlayGradientFirstLocation:{type:"number",default:0},backgroundOverlayGradientSecondColor:{type:"string",default:"#5b86e5"},backgroundOverlayGradientSecondLocation:{type:"number",default:100},backgroundOverlayGradientType:{type:"string",default:"linear"},backgroundOverlayGradientAngle:{type:"number",default:90},backgroundOverlayGradientPosition:{type:"string",default:"center center"},backgroundOverlayFilterBlur:{type:"number",default:0},backgroundOverlayFilterBrightness:{type:"number",default:10},backgroundOverlayFilterContrast:{type:"number",default:10},backgroundOverlayFilterGrayscale:{type:"number",default:0},backgroundOverlayFilterHue:{type:"number",default:0},backgroundOverlayFilterSaturate:{type:"number",default:10},backgroundOverlayBlend:{type:"string",default:"normal"},borderType:{type:"string",default:"linked"},border:{type:"number",default:0},borderTop:{type:"number",default:0},borderRight:{type:"number",default:0},borderBottom:{type:"number",default:0},borderLeft:{type:"number",default:0},borderColor:{type:"string",default:"#000000"},borderRadiusType:{type:"string",default:"linked"},borderRadius:{type:"number",default:0},borderRadiusTop:{type:"number",default:0},borderRadiusRight:{type:"number",default:0},borderRadiusBottom:{type:"number",default:0},borderRadiusLeft:{type:"number",default:0},boxShadow:{type:"boolean",default:!1},boxShadowColor:{type:"string",default:"#000000"},boxShadowColorOpacity:{type:"number",default:50},boxShadowBlur:{type:"number",default:5},boxShadowSpread:{type:"number",default:0},boxShadowHorizontal:{type:"number",default:0},boxShadowVertical:{type:"number",default:0},dividerTopType:{type:"string",default:"none"},dividerTopColor:{type:"string",default:"#000000"},dividerTopWidth:{type:"number",default:100},dividerTopWidthTablet:{type:"number",default:100},dividerTopWidthMobile:{type:"number",default:100},dividerTopHeight:{type:"number",default:100},dividerTopHeightTablet:{type:"number",default:100},dividerTopHeightMobile:{type:"number",default:100},dividerTopInvert:{type:"boolean",default:!1},dividerBottomType:{type:"string",default:"none"},dividerBottomColor:{type:"string",default:"#000000"},dividerBottomWidth:{type:"number",default:100},dividerBottomWidthTablet:{type:"number",default:100},dividerBottomWidthMobile:{type:"number",default:100},dividerBottomHeight:{type:"number",default:100},dividerBottomHeightTablet:{type:"number",default:100},dividerBottomHeightMobile:{type:"number",default:100},dividerBottomInvert:{type:"boolean",default:!1},hide:{type:"boolean",default:!1},hideTablet:{type:"boolean",default:!1},hideMobile:{type:"boolean",default:!1},columnsHTMLTag:{type:"string",default:"div"}},supports:{align:["wide","full"],html:!1},save:function(e){var t,n,o,l,i,c,s=e.attributes,p=s.id,u=s.columns,m=s.layout,d=s.layoutTablet,b=s.layoutMobile,g=s.columnsGap,h=s.columnsWidth,f=s.horizontalAlign,y=s.verticalAlign,w=s.backgroundType,v=s.backgroundColor,k=s.backgroundImageURL,E=s.backgroundAttachment,C=s.backgroundPosition,x=s.backgroundRepeat,T=s.backgroundSize,S=s.backgroundGradientFirstColor,B=s.backgroundGradientFirstLocation,O=s.backgroundGradientSecondColor,M=s.backgroundGradientSecondLocation,L=s.backgroundGradientType,N=s.backgroundGradientAngle,A=s.backgroundGradientPosition,P=s.backgroundOverlayOpacity,_=s.backgroundOverlayType,R=s.backgroundOverlayColor,I=s.backgroundOverlayImageURL,z=s.backgroundOverlayAttachment,V=s.backgroundOverlayPosition,H=s.backgroundOverlayRepeat,j=s.backgroundOverlaySize,F=s.backgroundOverlayGradientFirstColor,D=s.backgroundOverlayGradientFirstLocation,G=s.backgroundOverlayGradientSecondColor,W=s.backgroundOverlayGradientSecondLocation,Z=s.backgroundOverlayGradientType,q=s.backgroundOverlayGradientAngle,U=s.backgroundOverlayGradientPosition,K=s.backgroundOverlayFilterBlur,Q=s.backgroundOverlayFilterBrightness,J=s.backgroundOverlayFilterContrast,Y=s.backgroundOverlayFilterGrayscale,$=s.backgroundOverlayFilterHue,ee=s.backgroundOverlayFilterSaturate,te=s.backgroundOverlayBlend,oe=s.borderType,le=s.border,re=s.borderTop,ie=s.borderRight,ce=s.borderBottom,se=s.borderLeft,pe=s.borderColor,ue=s.borderRadiusType,me=s.borderRadius,de=s.borderRadiusTop,be=s.borderRadiusRight,ge=s.borderRadiusBottom,he=s.borderRadiusLeft,fe=s.boxShadow,ye=s.boxShadowColor,we=s.boxShadowColorOpacity,ve=s.boxShadowBlur,ke=s.boxShadowSpread,Ee=s.boxShadowHorizontal,Ce=s.boxShadowVertical,xe=s.dividerTopType,Te=s.dividerTopColor,Se=s.dividerTopInvert,Be=s.dividerBottomType,Oe=s.dividerBottomColor,Me=s.dividerBottomInvert,Le=s.hide,Ne=s.hideTablet,Ae=s.hideMobile,Pe=s.columnsHTMLTag;("color"===w&&(t={background:v}),"image"===w&&(t={backgroundImage:"url( '".concat(k,"' )"),backgroundAttachment:E,backgroundPosition:C,backgroundRepeat:x,backgroundSize:T}),"gradient"===w)&&(c="linear"===L?"".concat(N,"deg"):"at ".concat(A),t={background:"".concat(L,"-gradient( ").concat(c,", ").concat(S||"rgba( 0, 0, 0, 0 )"," ").concat(B,"%, ").concat(O||"rgba( 0, 0, 0, 0 )"," ").concat(M,"% )")});"linked"===oe&&(o={borderWidth:"".concat(le,"px"),borderStyle:"solid",borderColor:pe}),"unlinked"===oe&&(o={borderTopWidth:"".concat(re,"px"),borderRightWidth:"".concat(ie,"px"),borderBottomWidth:"".concat(ce,"px"),borderLeftWidth:"".concat(se,"px"),borderStyle:"solid",borderColor:pe}),"linked"===ue&&(l={borderRadius:"".concat(me,"px")}),"unlinked"===ue&&(l={borderTopLeftRadius:"".concat(de,"px"),borderTopRightRadius:"".concat(be,"px"),borderBottomRightRadius:"".concat(ge,"px"),borderBottomLeftRadius:"".concat(he,"px")}),!0===fe&&(i={boxShadow:"".concat(Ee,"px ").concat(Ce,"px ").concat(ve,"px ").concat(ke,"px ").concat(r()(ye||"#000000",we))});var _e,Re=ne({},t,{},o,{},l,{},i,{justifyContent:f});("color"===_&&(n={background:R,opacity:P/100}),"image"===_&&(n={backgroundImage:"url( '".concat(I,"' )"),backgroundAttachment:z,backgroundPosition:V,backgroundRepeat:H,backgroundSize:j,opacity:P/100}),"gradient"===_)&&(_e="linear"===Z?"".concat(q,"deg"):"at ".concat(U),n={background:"".concat(Z,"-gradient( ").concat(_e,", ").concat(F||"rgba( 0, 0, 0, 0 )"," ").concat(D,"%, ").concat(G||"rgba( 0, 0, 0, 0 )"," ").concat(W,"% )"),opacity:P/100});var Ie=ne({},n,{mixBlendMode:te,filter:"blur( ".concat(K/10,"px ) brightness( ").concat(Q/10," ) contrast( ").concat(J/10," ) grayscale( ").concat(Y/100," ) hue-rotate( ").concat($,"deg ) saturate( ").concat(ee/10," )")}),ze={};h&&(ze={maxWidth:h+"px"});var Ve=Le?"":"has-desktop-".concat(m,"-layout"),He=Ne?"":"has-tablet-".concat(d,"-layout"),je=Ae?"":"has-mobile-".concat(b,"-layout"),Fe=a()(e.className,"has-".concat(u,"-columns"),Ve,He,je,{"hide-in-desktop":Le},{"hide-in-tablet":Ne},{"hide-in-mobile":Ae},"has-".concat(g,"-gap"),"has-vertical-".concat(y));return wp.element.createElement(Pe,{className:Fe,id:p,style:Re},wp.element.createElement("div",{className:"wp-themeisle-block-overlay",style:Ie}),wp.element.createElement(X.default,{type:"top",front:!0,style:xe,fill:Te,invert:Se}),wp.element.createElement("div",{className:"innerblocks-wrap",style:ze},wp.element.createElement(ae.Content,null)),wp.element.createElement(X.default,{type:"bottom",front:!0,style:Be,fill:Oe,invert:Me}))}}];function re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(n,!0).forEach((function(t){ce(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var se=lodash.times,pe=wp.i18n.__,ue=wp.blocks.registerBlockType,me=wp.components,de=me.BaseControl,be=me.Button,ge=me.ButtonGroup,he=me.Dashicon,fe=me.Icon,ye=me.IconButton,we=me.PanelBody,ve=me.Tooltip,ke=me.ToggleControl,Ee=me.RangeControl,Ce=me.SelectControl,xe=me.TextControl,Te=wp.compose,Se=Te.compose,Be=Te.withState,Oe=wp.data,Me=Oe.withDispatch,Le=Oe.withSelect,Ne=wp.blockEditor||wp.editor,Ae=Ne.__experimentalBlockNavigationList,Pe=Ne.ColorPalette,_e=Ne.InnerBlocks,Re=Ne.InspectorAdvancedControls,Ie=Ne.InspectorControls,ze=Ne.MediaPlaceholder,Ve=wp.element.Fragment,He=wp.viewport.withViewportMatch;function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?je(n,!0).forEach((function(t){De(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):je(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function De(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}ue("themeisle-blocks/advanced-columns",{title:pe("Section"),description:pe("Add a Section block that displays content in multiple columns, then add whatever content blocks you’d like."),icon:i.f,category:"themeisle-blocks",keywords:["advanced columns","layout","grid"],attributes:{id:{type:"string"},columns:{type:"number"},layout:{type:"string"},layoutTablet:{type:"string",default:"equal"},layoutMobile:{type:"string",default:"equal"},columnsGap:{type:"string",default:"default"},paddingType:{type:"string",default:"linked"},paddingTypeTablet:{type:"string",default:"linked"},paddingTypeMobile:{type:"string",default:"linked"},padding:{type:"number",default:20},paddingTablet:{type:"number",default:20},paddingMobile:{type:"number",default:20},paddingTop:{type:"number",default:20},paddingTopTablet:{type:"number",default:20},paddingTopMobile:{type:"number",default:20},paddingRight:{type:"number",default:20},paddingRightTablet:{type:"number",default:20},paddingRightMobile:{type:"number",default:20},paddingBottom:{type:"number",default:20},paddingBottomTablet:{type:"number",default:20},paddingBottomMobile:{type:"number",default:20},paddingLeft:{type:"number",default:20},paddingLeftTablet:{type:"number",default:20},paddingLeftMobile:{type:"number",default:20},marginType:{type:"string",default:"unlinked"},marginTypeTablet:{type:"string",default:"unlinked"},marginTypeMobile:{type:"string",default:"unlinked"},margin:{type:"number",default:20},marginTablet:{type:"number",default:20},marginMobile:{type:"number",default:20},marginTop:{type:"number",default:20},marginTopTablet:{type:"number",default:20},marginTopMobile:{type:"number",default:20},marginBottom:{type:"number",default:20},marginBottomTablet:{type:"number",default:20},marginBottomMobile:{type:"number",default:20},columnsWidth:{type:"number"},horizontalAlign:{type:"string",default:"unset"},columnsHeight:{type:"string",default:"auto"},columnsHeightCustom:{type:"number"},columnsHeightCustomTablet:{type:"number"},columnsHeightCustomMobile:{type:"number"},verticalAlign:{type:"string",default:"unset"},backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string"},backgroundImageID:{type:"number"},backgroundImageURL:{type:"string"},backgroundAttachment:{type:"string",default:"scroll"},backgroundPosition:{type:"string",default:"top left"},backgroundRepeat:{type:"string",default:"repeat"},backgroundSize:{type:"string",default:"auto"},backgroundGradientFirstColor:{type:"string",default:"#36d1dc"},backgroundGradientFirstLocation:{type:"number",default:0},backgroundGradientSecondColor:{type:"string",default:"#5b86e5"},backgroundGradientSecondLocation:{type:"number",default:100},backgroundGradientType:{type:"string",default:"linear"},backgroundGradientAngle:{type:"number",default:90},backgroundGradientPosition:{type:"string",default:"center center"},backgroundOverlayOpacity:{type:"number",default:50},backgroundOverlayType:{type:"string",default:"color"},backgroundOverlayColor:{type:"string"},backgroundOverlayImageID:{type:"number"},backgroundOverlayImageURL:{type:"string"},backgroundOverlayAttachment:{type:"string",default:"scroll"},backgroundOverlayPosition:{type:"string",default:"top left"},backgroundOverlayRepeat:{type:"string",default:"repeat"},backgroundOverlaySize:{type:"string",default:"auto"},backgroundOverlayGradientFirstColor:{type:"string",default:"#36d1dc"},backgroundOverlayGradientFirstLocation:{type:"number",default:0},backgroundOverlayGradientSecondColor:{type:"string",default:"#5b86e5"},backgroundOverlayGradientSecondLocation:{type:"number",default:100},backgroundOverlayGradientType:{type:"string",default:"linear"},backgroundOverlayGradientAngle:{type:"number",default:90},backgroundOverlayGradientPosition:{type:"string",default:"center center"},backgroundOverlayFilterBlur:{type:"number",default:0},backgroundOverlayFilterBrightness:{type:"number",default:10},backgroundOverlayFilterContrast:{type:"number",default:10},backgroundOverlayFilterGrayscale:{type:"number",default:0},backgroundOverlayFilterHue:{type:"number",default:0},backgroundOverlayFilterSaturate:{type:"number",default:10},backgroundOverlayBlend:{type:"string",default:"normal"},borderType:{type:"string",default:"linked"},border:{type:"number",default:0},borderTop:{type:"number",default:0},borderRight:{type:"number",default:0},borderBottom:{type:"number",default:0},borderLeft:{type:"number",default:0},borderColor:{type:"string",default:"#000000"},borderRadiusType:{type:"string",default:"linked"},borderRadius:{type:"number",default:0},borderRadiusTop:{type:"number",default:0},borderRadiusRight:{type:"number",default:0},borderRadiusBottom:{type:"number",default:0},borderRadiusLeft:{type:"number",default:0},boxShadow:{type:"boolean",default:!1},boxShadowColor:{type:"string",default:"#000000"},boxShadowColorOpacity:{type:"number",default:50},boxShadowBlur:{type:"number",default:5},boxShadowSpread:{type:"number",default:0},boxShadowHorizontal:{type:"number",default:0},boxShadowVertical:{type:"number",default:0},dividerTopType:{type:"string",default:"none"},dividerTopColor:{type:"string",default:"#000000"},dividerTopWidth:{type:"number",default:100},dividerTopWidthTablet:{type:"number",default:100},dividerTopWidthMobile:{type:"number",default:100},dividerTopHeight:{type:"number",default:100},dividerTopHeightTablet:{type:"number",default:100},dividerTopHeightMobile:{type:"number",default:100},dividerTopInvert:{type:"boolean",default:!1},dividerBottomType:{type:"string",default:"none"},dividerBottomColor:{type:"string",default:"#000000"},dividerBottomWidth:{type:"number",default:100},dividerBottomWidthTablet:{type:"number",default:100},dividerBottomWidthMobile:{type:"number",default:100},dividerBottomHeight:{type:"number",default:100},dividerBottomHeightTablet:{type:"number",default:100},dividerBottomHeightMobile:{type:"number",default:100},dividerBottomInvert:{type:"boolean",default:!1},hide:{type:"boolean",default:!1},hideTablet:{type:"boolean",default:!1},hideMobile:{type:"boolean",default:!1},columnsHTMLTag:{type:"string",default:"div"}},supports:{align:["wide","full"],html:!1},deprecated:le,edit:Se([Me((function(e){return{updateBlockAttributes:(e("core/block-editor")||e("core/editor")).updateBlockAttributes}})),Le((function(e,t){var n=t.clientId;return{sectionBlock:(0,(e("core/block-editor")||e("core/editor")).getBlock)(n),props:t}})),Be({tab:"layout",columnsViewType:"desktop",paddingViewType:"desktop",marginViewType:"desktop",heightViewType:"desktop",dividerViewType:"top",dividerWidthViewType:"desktop",dividerHeightViewType:"desktop"}),He({isLarger:">= large",isLarge:"<= large",isSmall:">= small",isSmaller:"<= small"})])((function(e){var t=e.tab,n=e.columnsViewType,o=e.paddingViewType,l=e.marginViewType,d=e.heightViewType,b=e.dividerViewType,g=e.dividerWidthViewType,h=e.dividerHeightViewType,f=e.setState,y=e.isLarger,w=e.isLarge,v=e.isSmall,k=e.isSmaller,E=e.props,C=e.sectionBlock,x=e.updateBlockAttributes,T=E.attributes,S=T.id,B=T.columns,O=T.layout,N=T.layoutTablet,A=T.layoutMobile,P=T.columnsGap,_=T.paddingType,R=T.paddingTypeTablet,I=T.paddingTypeMobile,z=T.padding,V=T.paddingTablet,H=T.paddingMobile,j=T.paddingTop,F=T.paddingTopTablet,D=T.paddingTopMobile,G=T.paddingRight,W=T.paddingRightTablet,Z=T.paddingRightMobile,q=T.paddingBottom,U=T.paddingBottomTablet,K=T.paddingBottomMobile,Q=T.paddingLeft,J=T.paddingLeftTablet,Y=T.paddingLeftMobile,te=T.marginType,ne=T.marginTypeTablet,oe=T.marginTypeMobile,ae=T.margin,le=T.marginTablet,re=T.marginMobile,ue=T.marginTop,me=T.marginTopTablet,Te=T.marginTopMobile,Se=T.marginBottom,Be=T.marginBottomTablet,Oe=T.marginBottomMobile,Me=T.columnsWidth,Le=T.columnsHeight,Ne=T.columnsHeightCustom,He=T.columnsHeightCustomTablet,je=T.columnsHeightCustomMobile,Fe=T.horizontalAlign,De=T.verticalAlign,Ge=T.backgroundType,We=T.backgroundColor,Ze=T.backgroundImageID,qe=T.backgroundImageURL,Ue=T.backgroundAttachment,Ke=T.backgroundPosition,Qe=T.backgroundRepeat,Je=T.backgroundSize,Ye=T.backgroundGradientFirstColor,$e=T.backgroundGradientFirstLocation,Xe=T.backgroundGradientSecondColor,et=T.backgroundGradientSecondLocation,tt=T.backgroundGradientType,nt=T.backgroundGradientAngle,ot=T.backgroundGradientPosition,at=T.backgroundOverlayOpacity,lt=T.backgroundOverlayType,rt=T.backgroundOverlayColor,it=T.backgroundOverlayImageID,ct=T.backgroundOverlayImageURL,st=T.backgroundOverlayAttachment,pt=T.backgroundOverlayPosition,ut=T.backgroundOverlayRepeat,mt=T.backgroundOverlaySize,dt=T.backgroundOverlayGradientFirstColor,bt=T.backgroundOverlayGradientFirstLocation,gt=T.backgroundOverlayGradientSecondColor,ht=T.backgroundOverlayGradientSecondLocation,ft=T.backgroundOverlayGradientType,yt=T.backgroundOverlayGradientAngle,wt=T.backgroundOverlayGradientPosition,vt=T.backgroundOverlayFilterBlur,kt=T.backgroundOverlayFilterBrightness,Et=T.backgroundOverlayFilterContrast,Ct=T.backgroundOverlayFilterGrayscale,xt=T.backgroundOverlayFilterHue,Tt=T.backgroundOverlayFilterSaturate,St=T.backgroundOverlayBlend,Bt=T.borderType,Ot=T.border,Mt=T.borderTop,Lt=T.borderRight,Nt=T.borderBottom,At=T.borderLeft,Pt=T.borderColor,_t=T.borderRadiusType,Rt=T.borderRadius,It=T.borderRadiusTop,zt=T.borderRadiusRight,Vt=T.borderRadiusBottom,Ht=T.borderRadiusLeft,jt=T.boxShadow,Ft=T.boxShadowColor,Dt=T.boxShadowColorOpacity,Gt=T.boxShadowBlur,Wt=T.boxShadowSpread,Zt=T.boxShadowHorizontal,qt=T.boxShadowVertical,Ut=T.dividerTopType,Kt=T.dividerTopColor,Qt=T.dividerTopWidth,Jt=T.dividerTopWidthTablet,Yt=T.dividerTopWidthMobile,$t=T.dividerTopHeight,Xt=T.dividerTopHeightTablet,en=T.dividerTopHeightMobile,tn=T.dividerTopInvert,nn=T.dividerBottomType,on=T.dividerBottomColor,an=T.dividerBottomWidth,ln=T.dividerBottomWidthTablet,rn=T.dividerBottomWidthMobile,cn=T.dividerBottomHeight,sn=T.dividerBottomHeightTablet,pn=T.dividerBottomHeightMobile,un=T.dividerBottomInvert,mn=T.hide,dn=T.hideTablet,bn=T.hideMobile,gn=T.columnsHTMLTag;if(void 0===S||S.substr(S.length-8)!==E.clientId.substr(0,8)){var hn="wp-block-themeisle-blocks-advanced-columns-".concat(E.clientId.substr(0,8));E.setAttributes({id:hn})}var fn,yn,wn,vn,kn,En,Cn,xn=y&&!w&&v&&!k,Tn=!y&&!w&&v&&!k,Sn=!(y||w||v||k),Bn=gn;(xn&&(fn={paddingRight:"".concat("linked"===_?z:G,"px"),paddingLeft:"".concat("linked"===_?z:Q,"px"),marginTop:"".concat("linked"===te?ae:ue,"px"),marginBottom:"".concat("linked"===te?ae:Se,"px"),minHeight:"custom"===Le?"".concat(Ne,"px"):Le}),Tn&&(fn={paddingRight:"".concat("linked"===R?V:W,"px"),paddingLeft:"".concat("linked"===R?V:J,"px"),marginTop:"".concat("linked"===ne?le:me,"px"),marginBottom:"".concat("linked"===ne?le:Be,"px"),minHeight:"custom"===Le?"".concat(He,"px"):Le}),Sn&&(fn={paddingRight:"".concat("linked"===I?H:Z,"px"),paddingLeft:"".concat("linked"===I?H:Y,"px"),marginTop:"".concat("linked"===oe?re:Te,"px"),marginBottom:"".concat("linked"===oe?re:Oe,"px"),minHeight:"custom"===Le?"".concat(je,"px"):Le}),"color"===Ge&&(yn={background:We}),"image"===Ge&&(yn={backgroundImage:"url( '".concat(qe,"' )"),backgroundAttachment:Ue,backgroundPosition:Ke,backgroundRepeat:Qe,backgroundSize:Je}),"gradient"===Ge)&&(Cn="linear"===tt?"".concat(nt,"deg"):"at ".concat(ot),(Ye||Xe)&&(yn={background:"".concat(tt,"-gradient( ").concat(Cn,", ").concat(Ye||"rgba( 0, 0, 0, 0 )"," ").concat($e,"%, ").concat(Xe||"rgba( 0, 0, 0, 0 )"," ").concat(et,"% )")}));"linked"===Bt&&(vn={borderWidth:"".concat(Ot,"px"),borderStyle:"solid",borderColor:Pt}),"unlinked"===Bt&&(vn={borderTopWidth:"".concat(Mt,"px"),borderRightWidth:"".concat(Lt,"px"),borderBottomWidth:"".concat(Nt,"px"),borderLeftWidth:"".concat(At,"px"),borderStyle:"solid",borderColor:Pt}),"linked"===_t&&(kn={borderRadius:"".concat(Rt,"px")}),"unlinked"===_t&&(kn={borderTopLeftRadius:"".concat(It,"px"),borderTopRightRadius:"".concat(zt,"px"),borderBottomRightRadius:"".concat(Vt,"px"),borderBottomLeftRadius:"".concat(Ht,"px")}),!0===jt&&(En={boxShadow:"".concat(Zt,"px ").concat(qt,"px ").concat(Gt,"px ").concat(Wt,"px ").concat(r()(Ft||"#000000",Dt))});var On,Mn=ie({},fn,{},yn,{},vn,{},kn,{},En,{alignItems:Fe,justifyContent:De});("color"===lt&&(wn={background:rt,opacity:at/100}),"image"===lt&&(wn={backgroundImage:"url( '".concat(ct,"' )"),backgroundAttachment:st,backgroundPosition:pt,backgroundRepeat:ut,backgroundSize:mt,opacity:at/100}),"gradient"===lt)&&(On="linear"===ft?"".concat(yt,"deg"):"at ".concat(wt),wn={background:"".concat(ft,"-gradient( ").concat(On,", ").concat(dt||"rgba( 0, 0, 0, 0 )"," ").concat(bt,"%, ").concat(gt||"rgba( 0, 0, 0, 0 )"," ").concat(ht,"% )"),opacity:at/100});var Ln=ie({},wn,{mixBlendMode:St,filter:"blur( ".concat(vt/10,"px ) brightness( ").concat(kt/10," ) contrast( ").concat(Et/10," ) grayscale( ").concat(Ct/100," ) hue-rotate( ").concat(xt,"deg ) saturate( ").concat(Tt/10," )")}),Nn={};Me&&(Nn={maxWidth:Me+"px"});var An=a()(E.className,"has-".concat(B,"-columns"),"has-desktop-".concat(O,"-layout"),"has-tablet-".concat(N,"-layout"),"has-mobile-".concat(A,"-layout"),"has-".concat(P,"-gap")),Pn=function(e){f({dividerViewType:e})},_n=function(e,t){C.innerBlocks.map((function(n,o){x(n.clientId,{columnWidth:parseFloat(c[e][t][o])})}))},Rn=function(e){var t;return"top"==e&&("desktop"===o&&(t="linked"===_?z:j),"tablet"===o&&(t="linked"===R?V:F),"mobile"===o&&(t="linked"===I?H:D)),"right"==e&&("desktop"===o&&(t="linked"===_?z:G),"tablet"===o&&(t="linked"===R?V:W),"mobile"===o&&(t="linked"===I?H:Z)),"bottom"==e&&("desktop"===o&&(t="linked"===_?z:q),"tablet"===o&&(t="linked"===R?V:U),"mobile"===o&&(t="linked"===I?H:K)),"left"==e&&("desktop"===o&&(t="linked"===_?z:Q),"tablet"===o&&(t="linked"===R?V:J),"mobile"===o&&(t="linked"===I?H:Y)),t},In=function(e){var t;return"top"==e&&(xn&&(t="linked"===_?z:j),Tn&&(t="linked"===R?V:F),Sn&&(t="linked"===I?H:D)),"bottom"==e&&(xn&&(t="linked"===_?z:q),Tn&&(t="linked"===R?V:U),Sn&&(t="linked"===I?H:K)),t},zn={top:"paddingTop",right:"paddingRight",bottom:"paddingBottom",left:"paddingLeft"},Vn={top:"paddingTopTablet",right:"paddingRightTablet",bottom:"paddingBottomTablet",left:"paddingLeftTablet"},Hn={top:"paddingTopMobile",right:"paddingRightMobile",bottom:"paddingBottomMobile",left:"paddingLeftMobile"},jn=function(){var e;return"desktop"===o&&(e=_),"tablet"===o&&(e=R),"mobile"===o&&(e=I),e};jn=jn();var Fn=function(e){var t;return"top"==e&&("desktop"===l&&(t="linked"===te?ae:ue),"tablet"===l&&(t="linked"===ne?le:me),"mobile"===l&&(t="linked"===oe?re:Te)),"bottom"==e&&("desktop"===l&&(t="linked"===te?ae:Se),"tablet"===l&&(t="linked"===ne?le:Be),"mobile"===l&&(t="linked"===oe?re:Oe)),t},Dn={top:"marginTop",bottom:"marginBottom"},Gn={top:"marginTopTablet",bottom:"marginBottomTablet"},Wn={top:"marginTopMobile",bottom:"marginBottomMobile"},Zn=function(){var e;return"desktop"===l&&(e=te),"tablet"===l&&(e=ne),"mobile"===l&&(e=oe),e};Zn=Zn();var qn=function(){var e;return"desktop"===d&&(e=Ne),"tablet"===d&&(e=He),"mobile"===d&&(e=je),e};qn=qn();var Un=function(e){if(Fe===e)return E.setAttributes({horizontalAlign:"unset"});E.setAttributes({horizontalAlign:e})},Kn=function(e){if(De===e)return E.setAttributes({verticalAlign:"unset"});E.setAttributes({verticalAlign:e})},Qn=function(){E.setAttributes({backgroundImageID:"",backgroundImageURL:""})},Jn=function(){E.setAttributes({backgroundOverlayImageID:"",backgroundOverlayImageURL:""})},Yn=function(e){var t;return"top"==e&&(t="linked"===Bt?Ot:Mt),"right"==e&&(t="linked"===Bt?Ot:Lt),"bottom"==e&&(t="linked"===Bt?Ot:Nt),"left"==e&&(t="linked"===Bt?Ot:At),t},$n={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"},Xn=function(e){var t;return"top"==e&&(t="linked"===_t?Rt:It),"right"==e&&(t="linked"===_t?Rt:zt),"bottom"==e&&(t="linked"===_t?Rt:Vt),"left"==e&&(t="linked"===_t?Rt:Ht),t},eo={top:"borderRadiusTop",right:"borderRadiusRight",bottom:"borderRadiusBottom",left:"borderRadiusLeft"},to=function(){var e;return"top"==b&&(e=Ut),"bottom"==b&&(e=nn),e};to=to();var no=function(){var e;return"top"==b&&(e=Kt),"bottom"==b&&(e=on),e};no=no();var oo=function(){var e;return"top"==b&&(e=tn),"bottom"==b&&(e=un),e};oo=oo();var ao=function(){var e;return"top"==b&&("desktop"==g&&(e=Qt),"tablet"==g&&(e=Jt),"mobile"==g&&(e=Yt)),"bottom"==b&&("desktop"==g&&(e=an),"tablet"==g&&(e=ln),"mobile"==g&&(e=rn)),e};ao=ao();var lo=function(){var e;return xn&&(e=Qt),Tn&&(e=Jt),Sn&&(e=Yt),e};lo=lo();var ro=function(){var e;return xn&&(e=an),Tn&&(e=ln),Sn&&(e=rn),e};ro=ro();var io=function(){var e;return"top"==b&&("desktop"==h&&(e=$t),"tablet"==h&&(e=Xt),"mobile"==h&&(e=en)),"bottom"==b&&("desktop"==h&&(e=cn),"tablet"==h&&(e=sn),"mobile"==h&&(e=pn)),e};io=io();var co=function(){var e;return xn&&(e=$t),Tn&&(e=Xt),Sn&&(e=en),e};co=co();var so=function(){var e;return xn&&(e=cn),Tn&&(e=sn),Sn&&(e=pn),e};so=so();var po=function(e,t){"desktop"===t&&E.setAttributes({hide:e}),"tablet"===t&&E.setAttributes({hideTablet:e}),"mobile"===t&&E.setAttributes({hideMobile:e})};return B?wp.element.createElement(Ve,null,Ae&&wp.element.createElement($,{clientId:E.clientId}),wp.element.createElement(Ie,null,wp.element.createElement(we,{className:"wp-block-themeisle-blocks-advanced-columns-header-panel"},wp.element.createElement(be,{className:a()("header-tab",{"is-selected":"layout"===t}),onClick:function(){return f({tab:"layout"})}},wp.element.createElement("span",null,wp.element.createElement(he,{icon:"editor-table"}),pe("Layout"))),wp.element.createElement(be,{className:a()("header-tab",{"is-selected":"style"===t}),onClick:function(){return f({tab:"style"})}},wp.element.createElement("span",null,wp.element.createElement(he,{icon:"admin-customizer"}),pe("Style"))),wp.element.createElement(be,{className:a()("header-tab",{"is-selected":"advanced"===t}),onClick:function(){return f({tab:"advanced"})}},wp.element.createElement("span",null,wp.element.createElement(he,{icon:"admin-generic"}),pe("Advanced")))),"layout"===t&&wp.element.createElement(Ve,null,wp.element.createElement(we,{title:pe("Columns & Layout")},wp.element.createElement(Ee,{label:pe("Columns"),value:B,onChange:function(e){6>=e&&(E.setAttributes({columns:e,layout:"equal",layoutTablet:"equal",layoutMobile:"collapsedRows"}),_n(e,"equal")),6<e&&(E.setAttributes({columns:6,layout:"equal",layoutTablet:"equal",layoutMobile:"collapsedRows"}),_n(6,"equal")),1>=e&&(E.setAttributes({columns:1,layout:"equal",layoutTablet:"equal",layoutMobile:"equal"}),_n(1,"equal"))},min:1,max:6}),wp.element.createElement(s.default,{label:pe("Layout"),columns:B,changeViewType:function(e){f({columnsViewType:e})},onClick:function(e){"desktop"===n&&(E.setAttributes({layout:e}),_n(B,e)),"tablet"===n&&E.setAttributes({layoutTablet:e}),"mobile"===n&&E.setAttributes({layoutMobile:e})},layout:O,layoutTablet:N,layoutMobile:A,view:n}),wp.element.createElement(Ce,{label:pe("Columns Gap"),value:P,options:[{label:"Default (10px)",value:"default"},{label:"No Gap",value:"nogap"},{label:"Narrow (5px)",value:"narrow"},{label:"Extended (15px)",value:"extended"},{label:"Wide (20px)",value:"wide"},{label:"Wider (30px)",value:"wider"}],onChange:function(e){E.setAttributes({columnsGap:e})}})),wp.element.createElement(we,{title:pe("Padding & Margin"),initialOpen:!1},wp.element.createElement(u.a,{label:"Padding",view:o,changeViewType:function(e){f({paddingViewType:e})}},wp.element.createElement(p.a,{type:jn,min:0,max:500,changeType:function(e){"desktop"===o&&E.setAttributes({paddingType:e}),"tablet"===o&&E.setAttributes({paddingTypeTablet:e}),"mobile"===o&&E.setAttributes({paddingTypeMobile:e})},onChange:function(e,t){"desktop"===o&&("linked"===_?E.setAttributes({padding:t}):E.setAttributes(ce({},zn[e],t))),"tablet"===o&&("linked"===R?E.setAttributes({paddingTablet:t}):E.setAttributes(ce({},Vn[e],t))),"mobile"===o&&("linked"===I?E.setAttributes({paddingMobile:t}):E.setAttributes(ce({},Hn[e],t)))},options:[{label:pe("Top"),type:"top",value:Rn("top")},{label:pe("Right"),type:"right",value:Rn("right")},{label:pe("Bottom"),type:"bottom",value:Rn("bottom")},{label:pe("Left"),type:"left",value:Rn("left")}]})),wp.element.createElement(u.a,{label:"Margin",view:l,changeViewType:function(e){f({marginViewType:e})}},wp.element.createElement(p.a,{type:Zn,min:-500,max:500,changeType:function(e){"desktop"===l&&E.setAttributes({marginType:e}),"tablet"===l&&E.setAttributes({marginTypeTablet:e}),"mobile"===l&&E.setAttributes({marginTypeMobile:e})},onChange:function(e,t){"desktop"===l&&("linked"===te?E.setAttributes({margin:t}):E.setAttributes(ce({},Dn[e],t))),"tablet"===l&&("linked"===ne?E.setAttributes({marginTablet:t}):E.setAttributes(ce({},Gn[e],t))),"mobile"===l&&("linked"===oe?E.setAttributes({marginMobile:t}):E.setAttributes(ce({},Wn[e],t)))},options:[{label:pe("Top"),type:"top",value:Fn("top")},{label:pe("Right"),disabled:!0},{label:pe("Bottom"),type:"bottom",value:Fn("bottom")},{label:pe("Left"),disabled:!0}]}))),wp.element.createElement(we,{title:pe("Section Structure"),initialOpen:!1},wp.element.createElement(Ee,{label:pe("Maximum Content Width"),value:Me||"",onChange:function(e){(0<=e&&1200>=e||void 0===e)&&E.setAttributes({columnsWidth:e})},min:0,max:1200}),Me&&wp.element.createElement(de,{label:"Horizontal Align"},wp.element.createElement(ge,{className:"icon-buttom-group"},wp.element.createElement(ve,{text:pe("Left")},wp.element.createElement(ye,{icon:"editor-alignleft",className:"is-button is-large",isPrimary:"flex-start"===Fe,onClick:function(){return Un("flex-start")}})),wp.element.createElement(ve,{text:pe("Center")},wp.element.createElement(ye,{icon:"editor-aligncenter",className:"is-button is-large",isPrimary:"center"===Fe,onClick:function(){return Un("center")}})),wp.element.createElement(ve,{text:pe("Right")},wp.element.createElement(ye,{icon:"editor-alignright",className:"is-button is-large",isPrimary:"flex-end"===Fe,onClick:function(){return Un("flex-end")}})))),wp.element.createElement(Ce,{label:pe("Minimum Height"),value:Le,options:[{label:"Default",value:"auto"},{label:"Fit to Screen",value:"100vh"},{label:"Custom",value:"custom"}],onChange:function(e){E.setAttributes({columnsHeight:e})}}),"custom"===Le&&wp.element.createElement(u.a,{label:"Custom Height",view:d,changeViewType:function(e){f({heightViewType:e})}},wp.element.createElement(Ee,{value:qn||"",onChange:function(e){"desktop"===d&&E.setAttributes({columnsHeightCustom:e}),"tablet"===d&&E.setAttributes({columnsHeightCustomTablet:e}),"mobile"===d&&E.setAttributes({columnsHeightCustomMobile:e})},min:0,max:1e3})),"auto"!==Le&&wp.element.createElement(de,{label:"Vertical Align"},wp.element.createElement(ge,{className:"icon-buttom-group"},wp.element.createElement(ve,{text:pe("Top")},wp.element.createElement(be,{className:"components-icon-button is-button is-large",isPrimary:"flex-start"===De,onClick:function(){return Kn("flex-start")}},wp.element.createElement(fe,{icon:i.s,size:20}))),wp.element.createElement(ve,{text:pe("Middle")},wp.element.createElement(be,{className:"components-icon-button is-button is-large",isPrimary:"center"===De,onClick:function(){return Kn("center")}},wp.element.createElement(fe,{icon:i.j,size:20}))),wp.element.createElement(ve,{text:pe("Bottom")},wp.element.createElement(be,{className:"components-icon-button is-button is-large",isPrimary:"flex-end"===De,onClick:function(){return Kn("flex-end")}},wp.element.createElement(fe,{icon:i.c,size:20})))))))||"style"===t&&wp.element.createElement(Ve,null,wp.element.createElement(we,{title:pe("Background Settings"),className:"wp-block-themeisle-image-container"},wp.element.createElement(m.default,{label:pe("Background Type"),backgroundType:Ge,changeBackgroundType:function(e){E.setAttributes({backgroundType:e})}}),"color"===Ge&&wp.element.createElement(Ve,null,wp.element.createElement("p",null,pe("Background Color")),wp.element.createElement(Pe,{label:"Background Color",value:We,onChange:function(e){E.setAttributes({backgroundColor:e})}}))||"image"===Ge&&(qe?wp.element.createElement(Ve,null,wp.element.createElement("div",{className:"image-body"},wp.element.createElement("div",{className:"image-container"},wp.element.createElement("div",{className:"image-holder",style:{backgroundImage:"url('".concat(qe,"')")}}),wp.element.createElement("div",{className:"image-delete",onClick:Qn},wp.element.createElement(he,{icon:"trash"}),wp.element.createElement("span",null,pe("Remove Image"))))),wp.element.createElement(be,{isDefault:!0,className:"image-delete-button",onClick:Qn},pe("Change or Remove Image")),wp.element.createElement(L.a,{label:"Background Settings"},wp.element.createElement(Ce,{label:pe("Background Attachment"),value:Ue,options:[{label:"Scroll",value:"scroll"},{label:"Fixed",value:"fixed"},{label:"Local",value:"local"}],onChange:function(e){E.setAttributes({backgroundAttachment:e})}}),wp.element.createElement(Ce,{label:pe("Background Position"),value:Ke,options:[{label:"Default",value:"top left"},{label:"Top Left",value:"top left"},{label:"Top Center",value:"top center"},{label:"Top Right",value:"top right"},{label:"Center Left",value:"center left"},{label:"Center Center",value:"center center"},{label:"Center Right",value:"center right"},{label:"Bottom Left",value:"bottom left"},{label:"Bottom Center",value:"bottom center"},{label:"Bottom Right",value:"bottom right"}],onChange:function(e){E.setAttributes({backgroundPosition:e})}}),wp.element.createElement(Ce,{label:pe("Background Repeat"),value:Qe,options:[{label:"Repeat",value:"repeat"},{label:"No-repeat",value:"no-repeat"}],onChange:function(e){E.setAttributes({backgroundRepeat:e})}}),wp.element.createElement(Ce,{label:pe("Background Size"),value:Je,options:[{label:"Auto",value:"auto"},{label:"Cover",value:"cover"},{label:"Contain",value:"contain"}],onChange:function(e){E.setAttributes({backgroundSize:e})}}))):wp.element.createElement(ze,{icon:"format-image",labels:{title:pe("Background Image"),name:pe("an image")},value:Ze,onSelect:function(e){E.setAttributes({backgroundImageID:e.id,backgroundImageURL:e.url})},accept:"image/*",allowedTypes:["image"]}))||"gradient"===Ge&&wp.element.createElement(M,{label:"Background Gradient",value:{firstColor:Ye,firstLocation:$e,secondColor:Xe,secondLocation:et,type:tt,angle:nt,position:ot},onChange:function(e,t,n,o,a,l,r){E.setAttributes({backgroundGradientFirstColor:e,backgroundGradientFirstLocation:t,backgroundGradientSecondColor:n,backgroundGradientSecondLocation:o,backgroundGradientType:a,backgroundGradientAngle:l,backgroundGradientPosition:r})}})),wp.element.createElement(we,{title:pe("Background Overlay"),className:"wp-block-themeisle-image-container",initialOpen:!1},wp.element.createElement(m.default,{label:pe("Overlay Type"),backgroundType:lt,changeBackgroundType:function(e){E.setAttributes({backgroundOverlayType:e})}}),wp.element.createElement(Ee,{label:pe("Overlay Opacity"),value:at,onChange:function(e){E.setAttributes({backgroundOverlayOpacity:e})},min:0,max:100}),"color"===lt&&wp.element.createElement(Ve,null,wp.element.createElement("p",null,pe("Overlay Color")),wp.element.createElement(Pe,{label:"Overlay Color",value:rt,onChange:function(e){E.setAttributes({backgroundOverlayColor:e})}}))||"image"===lt&&(ct?wp.element.createElement(Ve,null,wp.element.createElement("div",{className:"image-body"},wp.element.createElement("div",{className:"image-container"},wp.element.createElement("div",{className:"image-holder",style:{backgroundImage:"url('".concat(ct,"')")}}),wp.element.createElement("div",{className:"image-delete",onClick:Jn},wp.element.createElement(he,{icon:"trash"}),wp.element.createElement("span",null,pe("Remove Image"))))),wp.element.createElement(be,{isDefault:!0,className:"image-delete-button",onClick:Jn},pe("Change or Remove Image")),wp.element.createElement(L.a,{label:"Background Settings"},wp.element.createElement(Ce,{label:pe("Background Attachment"),value:st,options:[{label:"Scroll",value:"scroll"},{label:"Fixed",value:"fixed"},{label:"Local",value:"local"}],onChange:function(e){E.setAttributes({backgroundOverlayAttachment:e})}}),wp.element.createElement(Ce,{label:pe("Background Position"),value:pt,options:[{label:"Default",value:"top left"},{label:"Top Left",value:"top left"},{label:"Top Center",value:"top center"},{label:"Top Right",value:"top right"},{label:"Center Left",value:"center left"},{label:"Center Center",value:"center center"},{label:"Center Right",value:"center right"},{label:"Bottom Left",value:"bottom left"},{label:"Bottom Center",value:"bottom center"},{label:"Bottom Right",value:"bottom right"}],onChange:function(e){E.setAttributes({backgroundOverlayPosition:e})}}),wp.element.createElement(Ce,{label:pe("Background Repeat"),value:ut,options:[{label:"Repeat",value:"repeat"},{label:"No-repeat",value:"no-repeat"}],onChange:function(e){E.setAttributes({backgroundOverlayRepeat:e})}}),wp.element.createElement(Ce,{label:pe("Background Size"),value:mt,options:[{label:"Auto",value:"auto"},{label:"Cover",value:"cover"},{label:"Contain",value:"contain"}],onChange:function(e){E.setAttributes({backgroundOverlaySize:e})}}))):wp.element.createElement(ze,{icon:"format-image",labels:{title:pe("Background Image"),name:pe("an image")},value:it,onSelect:function(e){E.setAttributes({backgroundOverlayImageID:e.id,backgroundOverlayImageURL:e.url})},accept:"image/*",allowedTypes:["image"]}))||"gradient"===lt&&wp.element.createElement(M,{label:"Background Gradient",value:{firstColor:dt,firstLocation:bt,secondColor:gt,secondLocation:ht,type:ft,angle:yt,position:wt},onChange:function(e,t,n,o,a,l,r){E.setAttributes({backgroundOverlayGradientFirstColor:e,backgroundOverlayGradientFirstLocation:t,backgroundOverlayGradientSecondColor:n,backgroundOverlayGradientSecondLocation:o,backgroundOverlayGradientType:a,backgroundOverlayGradientAngle:l,backgroundOverlayGradientPosition:r})}}),wp.element.createElement(L.a,{label:"CSS Filters"},wp.element.createElement(Ee,{label:pe("Blur"),value:vt,onChange:function(e){E.setAttributes({backgroundOverlayFilterBlur:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Brightness"),value:kt,onChange:function(e){E.setAttributes({backgroundOverlayFilterBrightness:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Contrast"),value:Et,onChange:function(e){E.setAttributes({backgroundOverlayFilterContrast:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Grayscale"),value:Ct,onChange:function(e){E.setAttributes({backgroundOverlayFilterGrayscale:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Hue"),value:xt,onChange:function(e){E.setAttributes({backgroundOverlayFilterHue:e})},min:0,max:360}),wp.element.createElement(Ee,{label:pe("Saturation"),value:Tt,onChange:function(e){E.setAttributes({backgroundOverlayFilterSaturate:e})},min:0,max:100})),wp.element.createElement(Ce,{label:pe("Blend Mode"),value:St,options:[{label:"Normal",value:"normal"},{label:"Multiply",value:"multiply"},{label:"Screen",value:"screen"},{label:"Overlay",value:"overlay"},{label:"Darken",value:"darken"},{label:"Lighten",value:"lighten"},{label:"Color Dodge",value:"color-dodge"},{label:"Color Burn",value:"color-burn"},{label:"Hard Light",value:"hard-light"},{label:"Soft Light",value:"soft-light"},{label:"Difference",value:"difference"},{label:"Exclusion",value:"exclusion"},{label:"Hue",value:"hue"},{label:"Saturation",value:"saturation"},{label:"Color",value:"color"},{label:"Luminosity",value:"luminosity"}],onChange:function(e){E.setAttributes({backgroundOverlayBlend:e})}})),wp.element.createElement(we,{title:pe("Border"),className:"wp-block-themeisle-border-container",initialOpen:!1},wp.element.createElement(p.a,{label:pe("Border Width"),type:Bt,min:0,max:500,changeType:function(e){E.setAttributes({borderType:e})},onChange:function(e,t){"linked"===Bt?E.setAttributes({border:t}):E.setAttributes(ce({},$n[e],t))},options:[{label:pe("Top"),type:"top",value:Yn("top")},{label:pe("Right"),type:"right",value:Yn("right")},{label:pe("Bottom"),type:"bottom",value:Yn("bottom")},{label:pe("Left"),type:"left",value:Yn("left")}]}),wp.element.createElement(Ve,null,wp.element.createElement("p",null,pe("Border Color")),wp.element.createElement(Pe,{label:"Border Color",value:Pt,onChange:function(e){E.setAttributes({borderColor:e})}})),wp.element.createElement(p.a,{label:pe("Border Radius"),type:_t,min:0,max:500,changeType:function(e){E.setAttributes({borderRadiusType:e})},onChange:function(e,t){"linked"===_t?E.setAttributes({borderRadius:t}):E.setAttributes(ce({},eo[e],t))},options:[{label:pe("Top"),type:"top",value:Xn("top")},{label:pe("Right"),type:"right",value:Xn("right")},{label:pe("Bottom"),type:"bottom",value:Xn("bottom")},{label:pe("Left"),type:"left",value:Xn("left")}]}),wp.element.createElement(ke,{label:"Box Shadow",checked:jt,onChange:function(){E.setAttributes({boxShadow:!jt})}}),jt&&wp.element.createElement(Ve,null,wp.element.createElement(Ve,null,wp.element.createElement("p",null,pe("Shadow Color")),wp.element.createElement(Pe,{label:"Shadow Color",value:Ft,onChange:function(e){E.setAttributes({boxShadowColor:e})}})),wp.element.createElement(L.a,{label:"Border Shadow"},wp.element.createElement(Ee,{label:pe("Opacity"),value:Dt,onChange:function(e){E.setAttributes({boxShadowColorOpacity:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Blur"),value:Gt,onChange:function(e){E.setAttributes({boxShadowBlur:e})},min:0,max:100}),wp.element.createElement(Ee,{label:pe("Spread"),value:Wt,onChange:function(e){E.setAttributes({boxShadowSpread:e})},min:-100,max:100}),wp.element.createElement(Ee,{label:pe("Horizontal"),value:Zt,onChange:function(e){E.setAttributes({boxShadowHorizontal:e})},min:-100,max:100}),wp.element.createElement(Ee,{label:pe("Vertical"),value:qt,onChange:function(e){E.setAttributes({boxShadowVertical:e})},min:-100,max:100})))),wp.element.createElement(we,{title:pe("Shape Divider"),initialOpen:!1,className:"wp-block-themeisle-shape-divider"},wp.element.createElement(ge,null,wp.element.createElement(be,{className:"is-button",isPrimary:"top"===b,onClick:function(){return Pn("top")}},pe("Top")),wp.element.createElement(be,{className:"is-button",isPrimary:"bottom"===b,onClick:function(){return Pn("bottom")}},pe("Bottom"))),wp.element.createElement(Ce,{label:pe("Type"),value:to,options:[{label:"None",value:"none"},{label:"Triangle",value:"bigTriangle"},{label:"Right Curve",value:"rightCurve"},{label:"Curve",value:"curve"},{label:"Slant",value:"slant"},{label:"Cloud",value:"cloud"}],onChange:function(e){"top"==b&&E.setAttributes({dividerTopType:e}),"bottom"==b&&E.setAttributes({dividerBottomType:e})}}),"none"!==to&&wp.element.createElement(Ve,null,wp.element.createElement(Ve,null,wp.element.createElement("p",null,pe("Color")),wp.element.createElement(Pe,{label:pe("Color"),value:no,onChange:function(e){"top"==b&&E.setAttributes({dividerTopColor:e}),"bottom"==b&&E.setAttributes({dividerBottomColor:e})}})),wp.element.createElement(u.a,{label:"Width",view:g,changeViewType:function(e){f({dividerWidthViewType:e})}},wp.element.createElement(Ee,{value:ao,onChange:function(e){"top"==b&&("desktop"==g&&E.setAttributes({dividerTopWidth:e}),"tablet"==g&&E.setAttributes({dividerTopWidthTablet:e}),"mobile"==g&&E.setAttributes({dividerTopWidthMobile:e})),"bottom"==b&&("desktop"==g&&E.setAttributes({dividerBottomWidth:e}),"tablet"==g&&E.setAttributes({dividerBottomWidthTablet:e}),"mobile"==g&&E.setAttributes({dividerBottomWidthMobile:e}))},min:0,max:500})),wp.element.createElement(u.a,{label:"Height",view:h,changeViewType:function(e){f({dividerHeightViewType:e})}},wp.element.createElement(Ee,{value:io,onChange:function(e){"top"==b&&("desktop"==h&&E.setAttributes({dividerTopHeight:e}),"tablet"==h&&E.setAttributes({dividerTopHeightTablet:e}),"mobile"==h&&E.setAttributes({dividerTopHeightMobile:e})),"bottom"==b&&("desktop"==h&&E.setAttributes({dividerBottomHeight:e}),"tablet"==h&&E.setAttributes({dividerBottomHeightTablet:e}),"mobile"==h&&E.setAttributes({dividerBottomHeightMobile:e}))},min:0,max:500})),"curve"!==to&&"cloud"!==to&&wp.element.createElement(ke,{label:"Invert Shape Divider",checked:oo,onChange:function(){"top"==b&&E.setAttributes({dividerTopInvert:!tn}),"bottom"==b&&E.setAttributes({dividerBottomInvert:!un})}}))))||"advanced"===t&&wp.element.createElement(Ve,null,wp.element.createElement(we,{title:pe("Section Visibility")},wp.element.createElement(ke,{label:"Hide this section in Desktop devices?",checked:mn,onChange:function(e){return po(e,"desktop")}}),wp.element.createElement(ke,{label:"Hide this section in Tablet devices?",checked:dn,onChange:function(e){return po(e,"tablet")}}),wp.element.createElement(ke,{label:"Hide this section in Mobile devices?",checked:bn,onChange:function(e){return po(e,"mobile")}})),wp.element.createElement(we,{title:pe("Section Settings"),initialOpen:!1},wp.element.createElement(Ce,{label:pe("HTML Tag"),value:gn,options:[{label:"Default",value:"div"},{label:"div",value:"div"},{label:"section",value:"section"},{label:"header",value:"header"},{label:"footer",value:"footer"},{label:"article",value:"article"},{label:"main",value:"main"}],onChange:function(e){E.setAttributes({columnsHTMLTag:e})}})))),wp.element.createElement(Re,null,wp.element.createElement(xe,{label:pe("HTML Anchor"),help:pe("Anchors lets you link directly to a section on a page."),value:S,readonly:"readonly",onClick:function(e){return e.target.select()}})),wp.element.createElement(Bn,{className:An,style:Mn},wp.element.createElement("div",{className:"wp-themeisle-block-overlay",style:Ln}),wp.element.createElement("div",{className:"wp-themeisle-block-advanced-columns-padding-container",style:{height:"".concat(In("top"),"px")}},wp.element.createElement("div",{className:"block-space-size"},wp.element.createElement("span",{id:"paddingTop"},"".concat(In("top"),"px")))),wp.element.createElement(X.default,{type:"top",style:Ut,fill:Kt,invert:tn,width:lo,height:co}),wp.element.createElement("div",{className:"innerblocks-wrap",style:Nn},wp.element.createElement(_e,{allowedBlocks:["themeisle-blocks/advanced-columns"],template:function(e){return se(e,(function(t){return["themeisle-blocks/advanced-column",{columnWidth:parseFloat(c[e][O][t])}]}))}(B),templateLock:"all"})),wp.element.createElement(X.default,{type:"bottom",style:nn,fill:on,invert:un,width:ro,height:so}),wp.element.createElement("div",{className:"wp-themeisle-block-advanced-columns-padding-container",style:{height:"".concat(In("bottom"),"px")}},wp.element.createElement("div",{className:"block-space-size"},wp.element.createElement("span",{id:"paddingBottom"},"".concat(In("bottom"),"px")))))):wp.element.createElement(ee.default,{clientId:E.clientId,setupColumns:function(e,t){1>=e?E.setAttributes({columns:e,layout:t,layoutTablet:"equal",layoutMobile:"equal"}):E.setAttributes({columns:e,layout:t,layoutTablet:"equal",layoutMobile:"collapsedRows"})}})})),save:function(e){var t,n,o,l,i,c,s=e.attributes,p=s.id,u=s.columns,m=s.layout,d=s.layoutTablet,b=s.layoutMobile,g=s.columnsGap,h=s.columnsWidth,f=s.horizontalAlign,y=s.verticalAlign,w=s.backgroundType,v=s.backgroundColor,k=s.backgroundImageURL,E=s.backgroundAttachment,C=s.backgroundPosition,x=s.backgroundRepeat,T=s.backgroundSize,S=s.backgroundGradientFirstColor,B=s.backgroundGradientFirstLocation,O=s.backgroundGradientSecondColor,M=s.backgroundGradientSecondLocation,L=s.backgroundGradientType,N=s.backgroundGradientAngle,A=s.backgroundGradientPosition,P=s.backgroundOverlayOpacity,_=s.backgroundOverlayType,R=s.backgroundOverlayColor,I=s.backgroundOverlayImageURL,z=s.backgroundOverlayAttachment,V=s.backgroundOverlayPosition,H=s.backgroundOverlayRepeat,j=s.backgroundOverlaySize,F=s.backgroundOverlayGradientFirstColor,D=s.backgroundOverlayGradientFirstLocation,G=s.backgroundOverlayGradientSecondColor,W=s.backgroundOverlayGradientSecondLocation,Z=s.backgroundOverlayGradientType,q=s.backgroundOverlayGradientAngle,U=s.backgroundOverlayGradientPosition,K=s.backgroundOverlayBlend,Q=s.borderType,J=s.border,Y=s.borderTop,$=s.borderRight,ee=s.borderBottom,te=s.borderLeft,ne=s.borderColor,oe=s.borderRadiusType,ae=s.borderRadius,le=s.borderRadiusTop,re=s.borderRadiusRight,ce=s.borderRadiusBottom,se=s.borderRadiusLeft,pe=s.boxShadow,ue=s.boxShadowColor,me=s.boxShadowColorOpacity,de=s.boxShadowBlur,be=s.boxShadowSpread,ge=s.boxShadowHorizontal,he=s.boxShadowVertical,fe=s.dividerTopType,ye=s.dividerTopColor,we=s.dividerTopInvert,ve=s.dividerBottomType,ke=s.dividerBottomColor,Ee=s.dividerBottomInvert,Ce=s.hide,xe=s.hideTablet,Te=s.hideMobile,Se=s.columnsHTMLTag;("color"===w&&(t={background:v}),"image"===w&&(t={backgroundImage:"url( '".concat(k,"' )"),backgroundAttachment:E,backgroundPosition:C,backgroundRepeat:x,backgroundSize:T}),"gradient"===w)&&(c="linear"===L?"".concat(N,"deg"):"at ".concat(A),t={background:"".concat(L,"-gradient( ").concat(c,", ").concat(S||"rgba( 0, 0, 0, 0 )"," ").concat(B,"%, ").concat(O||"rgba( 0, 0, 0, 0 )"," ").concat(M,"% )")});"linked"===Q&&(o={borderWidth:"".concat(J,"px"),borderStyle:"solid",borderColor:ne}),"unlinked"===Q&&(o={borderTopWidth:"".concat(Y,"px"),borderRightWidth:"".concat($,"px"),borderBottomWidth:"".concat(ee,"px"),borderLeftWidth:"".concat(te,"px"),borderStyle:"solid",borderColor:ne}),"linked"===oe&&(l={borderRadius:"".concat(ae,"px")}),"unlinked"===oe&&(l={borderTopLeftRadius:"".concat(le,"px"),borderTopRightRadius:"".concat(re,"px"),borderBottomRightRadius:"".concat(ce,"px"),borderBottomLeftRadius:"".concat(se,"px")}),!0===pe&&(i={boxShadow:"".concat(ge,"px ").concat(he,"px ").concat(de,"px ").concat(be,"px ").concat(r()(ue||"#000000",me))});var Be,Oe=ie({},t,{},o,{},l,{},i,{justifyContent:f});("color"===_&&(n={background:R,opacity:P/100}),"image"===_&&(n={backgroundImage:"url( '".concat(I,"' )"),backgroundAttachment:z,backgroundPosition:V,backgroundRepeat:H,backgroundSize:j,opacity:P/100}),"gradient"===_)&&(Be="linear"===Z?"".concat(q,"deg"):"at ".concat(U),n={background:"".concat(Z,"-gradient( ").concat(Be,", ").concat(F||"rgba( 0, 0, 0, 0 )"," ").concat(D,"%, ").concat(G||"rgba( 0, 0, 0, 0 )"," ").concat(W,"% )"),opacity:P/100});var Me=ie({},n,{mixBlendMode:K}),Le={};h&&(Le={maxWidth:h+"px"});var Ne=Ce?"":"has-desktop-".concat(m,"-layout"),Ae=xe?"":"has-tablet-".concat(d,"-layout"),Pe=Te?"":"has-mobile-".concat(b,"-layout"),Re=a()(e.className,"has-".concat(u,"-columns"),Ne,Ae,Pe,{"hide-in-desktop":Ce},{"hide-in-tablet":xe},{"hide-in-mobile":Te},"has-".concat(g,"-gap"),"has-vertical-".concat(y));return wp.element.createElement(Se,{className:Re,id:p,style:Oe},wp.element.createElement("div",{className:"wp-themeisle-block-overlay",style:Me}),wp.element.createElement(X.default,{type:"top",front:!0,style:fe,fill:ye,invert:we}),wp.element.createElement("div",{className:"innerblocks-wrap",style:Le},wp.element.createElement(_e.Content,null)),wp.element.createElement(X.default,{type:"bottom",front:!0,style:ve,fill:ke,invert:Ee}))}});var Ge=wp.i18n.__,We=wp.blocks.registerBlockType,Ze=wp.components,qe=Ze.Button,Ue=Ze.Dashicon,Ke=Ze.PanelBody,Qe=Ze.ToggleControl,Je=Ze.RangeControl,Ye=Ze.ResizableBox,$e=Ze.SelectControl,Xe=wp.compose,et=Xe.compose,tt=Xe.withState,nt=wp.data,ot=nt.withDispatch,at=nt.withSelect,lt=wp.blockEditor||wp.editor,rt=lt.ColorPalette,it=lt.InnerBlocks,ct=lt.InspectorControls,st=lt.MediaPlaceholder,pt=wp.element.Fragment,ut=wp.viewport.withViewportMatch;We("themeisle-blocks/advanced-column",{title:Ge("Section Column"),description:Ge("A single column within a Section block."),parent:["themeisle-blocks/advanced-columns"],icon:i.e,category:"themeisle-blocks",attributes:{id:{type:"string"},paddingType:{type:"string",default:"linked"},paddingTypeTablet:{type:"string",default:"linked"},paddingTypeMobile:{type:"string",default:"linked"},padding:{type:"number",default:20},paddingTablet:{type:"number",default:20},paddingMobile:{type:"number",default:20},paddingTop:{type:"number",default:20},paddingTopTablet:{type:"number",default:20},paddingTopMobile:{type:"number",default:20},paddingRight:{type:"number",default:20},paddingRightTablet:{type:"number",default:20},paddingRightMobile:{type:"number",default:20},paddingBottom:{type:"number",default:20},paddingBottomTablet:{type:"number",default:20},paddingBottomMobile:{type:"number",default:20},paddingLeft:{type:"number",default:20},paddingLeftTablet:{type:"number",default:20},paddingLeftMobile:{type:"number",default:20},marginType:{type:"string",default:"unlinked"},marginTypeTablet:{type:"string",default:"unlinked"},marginTypeMobile:{type:"string",default:"unlinked"},margin:{type:"number",default:20},marginTablet:{type:"number",default:20},marginMobile:{type:"number",default:20},marginTop:{type:"number",default:20},marginTopTablet:{type:"number",default:20},marginTopMobile:{type:"number",default:20},marginRight:{type:"number",default:0},marginRightTablet:{type:"number",default:0},marginRightMobile:{type:"number",default:0},marginBottom:{type:"number",default:20},marginBottomTablet:{type:"number",default:20},marginBottomMobile:{type:"number",default:20},marginLeft:{type:"number",default:0},marginLeftTablet:{type:"number",default:0},marginLeftMobile:{type:"number",default:0},backgroundType:{type:"string",default:"color"},backgroundColor:{type:"string"},backgroundImageID:{type:"number"},backgroundImageURL:{type:"string"},backgroundAttachment:{type:"string",default:"scroll"},backgroundPosition:{type:"string",default:"top left"},backgroundRepeat:{type:"string",default:"repeat"},backgroundSize:{type:"string",default:"auto"},backgroundGradientFirstColor:{type:"string",default:"#36d1dc"},backgroundGradientFirstLocation:{type:"number",default:0},backgroundGradientSecondColor:{type:"string",default:"#5b86e5"},backgroundGradientSecondLocation:{type:"number",default:100},backgroundGradientType:{type:"string",default:"linear"},backgroundGradientAngle:{type:"number",default:90},backgroundGradientPosition:{type:"string",default:"center center"},borderType:{type:"string",default:"linked"},border:{type:"number",default:0},borderTop:{type:"number",default:0},borderRight:{type:"number",default:0},borderBottom:{type:"number",default:0},borderLeft:{type:"number",default:0},borderColor:{type:"string",default:"#000000"},borderRadiusType:{type:"string",default:"linked"},borderRadius:{type:"number",default:0},borderRadiusTop:{type:"number",default:0},borderRadiusRight:{type:"number",default:0},borderRadiusBottom:{type:"number",default:0},borderRadiusLeft:{type:"number",default:0},boxShadow:{type:"boolean",default:!1},boxShadowColor:{type:"string",default:"#000000"},boxShadowColorOpacity:{type:"number",default:50},boxShadowBlur:{type:"number",default:5},boxShadowSpread:{type:"number",default:0},boxShadowHorizontal:{type:"number",default:0},boxShadowVertical:{type:"number",default:0},columnsHTMLTag:{type:"string",default:"div"},columnWidth:{type:"string"}},supports:{inserter:!1,reusable:!1,html:!1},edit:et([ot((function(e){return{updateBlockAttributes:(e("core/block-editor")||e("core/editor")).updateBlockAttributes}})),at((function(e,t){var n=t.clientId,o=e("core/block-editor")||e("core/editor"),a=o.getAdjacentBlockClientId,l=o.getBlock,r=o.getBlockRootClientId,i=l(n),c=a(n),s=l(c),p=r(n);return{adjacentBlockClientId:c,adjacentBlock:s,parentClientId:p,parentBlock:l(p),hasInnerBlocks:!(!i||!i.innerBlocks.length),props:t}})),tt({tab:"layout",paddingViewType:"desktop",marginViewType:"desktop",currentWidth:0,nextWidth:0}),ut({isLarger:">= large",isLarge:"<= large",isSmall:">= small",isSmaller:"<= small"})])((function(e){var t=e.tab,n=e.paddingViewType,o=e.marginViewType,l=e.currentWidth,i=e.nextWidth,s=e.setState,d=e.isLarger,b=e.isLarge,g=e.isSmall,h=e.isSmaller,f=e.props,y=e.adjacentBlockClientId,w=e.adjacentBlock,v=e.parentClientId,k=e.parentBlock,E=e.hasInnerBlocks,C=e.updateBlockAttributes,x=f.attributes,T=x.id,S=x.paddingType,B=x.paddingTypeTablet,O=x.paddingTypeMobile,N=x.padding,A=x.paddingTablet,P=x.paddingMobile,_=x.paddingTop,R=x.paddingTopTablet,I=x.paddingTopMobile,z=x.paddingRight,V=x.paddingRightTablet,H=x.paddingRightMobile,j=x.paddingBottom,F=x.paddingBottomTablet,D=x.paddingBottomMobile,G=x.paddingLeft,W=x.paddingLeftTablet,Z=x.paddingLeftMobile,q=x.marginType,U=x.marginTypeTablet,K=x.marginTypeMobile,Q=x.margin,J=x.marginTablet,Y=x.marginMobile,$=x.marginTop,X=x.marginTopTablet,ee=x.marginTopMobile,te=x.marginRight,ne=x.marginRightTablet,oe=x.marginRightMobile,ae=x.marginBottom,le=x.marginBottomTablet,re=x.marginBottomMobile,ie=x.marginLeft,ce=x.marginLeftTablet,se=x.marginLeftMobile,pe=x.backgroundType,ue=x.backgroundColor,me=x.backgroundImageID,de=x.backgroundImageURL,be=x.backgroundAttachment,ge=x.backgroundPosition,he=x.backgroundRepeat,fe=x.backgroundSize,ye=x.backgroundGradientFirstColor,we=x.backgroundGradientFirstLocation,ve=x.backgroundGradientSecondColor,ke=x.backgroundGradientSecondLocation,Ee=x.backgroundGradientType,Ce=x.backgroundGradientAngle,xe=x.backgroundGradientPosition,Te=x.borderType,Se=x.border,Be=x.borderTop,Oe=x.borderRight,Me=x.borderBottom,Le=x.borderLeft,Ne=x.borderColor,Ae=x.borderRadiusType,Pe=x.borderRadius,_e=x.borderRadiusTop,Re=x.borderRadiusRight,Ie=x.borderRadiusBottom,ze=x.borderRadiusLeft,Ve=x.boxShadow,He=x.boxShadowColor,je=x.boxShadowColorOpacity,We=x.boxShadowBlur,Ze=x.boxShadowSpread,Xe=x.boxShadowHorizontal,et=x.boxShadowVertical,tt=x.columnsHTMLTag,nt=x.columnWidth;if(void 0===T||T.substr(T.length-8)!==f.clientId.substr(0,8)){var ot="wp-block-themeisle-blocks-advanced-column-".concat(f.clientId.substr(0,8));f.setAttributes({id:ot})}var at=d&&!b&&g&&!h,lt=!d&&!b&&g&&!h,ut=!(d||b||g||h);void 0===nt&&k.innerBlocks.map((function(e,t){if(f.clientId===e.clientId){var n=k.attributes.columns,o=k.attributes.layout;C(f.clientId,{columnWidth:parseFloat(c[n][o][t])})}}));var mt=document.getElementById("block-".concat(f.clientId));null!==mt&&(mt.style.flexBasis=at?"".concat(nt,"%"):"");var dt,bt,gt,ht,ft,yt,wt=tt;(at&&(dt={paddingTop:"".concat("linked"===S?N:_,"px"),paddingRight:"".concat("linked"===S?N:z,"px"),paddingBottom:"".concat("linked"===S?N:j,"px"),paddingLeft:"".concat("linked"===S?N:G,"px"),marginTop:"".concat("linked"===q?Q:$,"px"),marginRight:"".concat("linked"===q?Q:te,"px"),marginBottom:"".concat("linked"===q?Q:ae,"px"),marginLeft:"".concat("linked"===q?Q:ie,"px")}),lt&&(dt={paddingTop:"".concat("linked"===B?A:R,"px"),paddingRight:"".concat("linked"===B?A:V,"px"),paddingBottom:"".concat("linked"===B?A:F,"px"),paddingLeft:"".concat("linked"===B?A:W,"px"),marginTop:"".concat("linked"===U?J:X,"px"),marginRight:"".concat("linked"===U?J:ne,"px"),marginBottom:"".concat("linked"===U?J:le,"px"),marginLeft:"".concat("linked"===U?J:ce,"px")}),ut&&(dt={paddingTop:"".concat("linked"===O?P:I,"px"),paddingRight:"".concat("linked"===O?P:H,"px"),paddingBottom:"".concat("linked"===O?P:D,"px"),paddingLeft:"".concat("linked"===O?P:Z,"px"),marginTop:"".concat("linked"===K?Y:ee,"px"),marginRight:"".concat("linked"===K?Y:oe,"px"),marginBottom:"".concat("linked"===K?Y:re,"px"),marginLeft:"".concat("linked"===K?Y:se,"px")}),"color"===pe&&(bt={background:ue}),"image"===pe&&(bt={backgroundImage:"url( '".concat(de,"' )"),backgroundAttachment:be,backgroundPosition:ge,backgroundRepeat:he,backgroundSize:fe}),"gradient"===pe)&&(yt="linear"===Ee?"".concat(Ce,"deg"):"at ".concat(xe),(ye||ve)&&(bt={background:"".concat(Ee,"-gradient( ").concat(yt,", ").concat(ye||"rgba( 0, 0, 0, 0 )"," ").concat(we,"%, ").concat(ve||"rgba( 0, 0, 0, 0 )"," ").concat(ke,"% )")}));"linked"===Te&&(gt={borderWidth:"".concat(Se,"px"),borderStyle:"solid",borderColor:Ne}),"unlinked"===Te&&(gt={borderTopWidth:"".concat(Be,"px"),borderRightWidth:"".concat(Oe,"px"),borderBottomWidth:"".concat(Me,"px"),borderLeftWidth:"".concat(Le,"px"),borderStyle:"solid",borderColor:Ne}),"linked"===Ae&&(ht={borderRadius:"".concat(Pe,"px")}),"unlinked"===Ae&&(ht={borderTopLeftRadius:"".concat(_e,"px"),borderTopRightRadius:"".concat(Re,"px"),borderBottomRightRadius:"".concat(Ie,"px"),borderBottomLeftRadius:"".concat(ze,"px")}),!0===Ve&&(ft={boxShadow:"".concat(Xe,"px ").concat(et,"px ").concat(We,"px ").concat(Ze,"px ").concat(r()(He||"#000000",je))});var vt=Fe({},dt,{},bt,{},gt,{},ht,{},ft),kt=function(e){var t;return"top"==e&&("desktop"===n&&(t="linked"===S?N:_),"tablet"===n&&(t="linked"===B?A:R),"mobile"===n&&(t="linked"===O?P:I)),"right"==e&&("desktop"===n&&(t="linked"===S?N:z),"tablet"===n&&(t="linked"===B?A:V),"mobile"===n&&(t="linked"===O?P:H)),"bottom"==e&&("desktop"===n&&(t="linked"===S?N:j),"tablet"===n&&(t="linked"===B?A:F),"mobile"===n&&(t="linked"===O?P:D)),"left"==e&&("desktop"===n&&(t="linked"===S?N:G),"tablet"===n&&(t="linked"===B?A:W),"mobile"===n&&(t="linked"===O?P:Z)),t},Et={top:"paddingTop",right:"paddingRight",bottom:"paddingBottom",left:"paddingLeft"},Ct={top:"paddingTopTablet",right:"paddingRightTablet",bottom:"paddingBottomTablet",left:"paddingLeftTablet"},xt={top:"paddingTopMobile",right:"paddingRightMobile",bottom:"paddingBottomMobile",left:"paddingLeftMobile"},Tt=function(){var e;return"desktop"===n&&(e=S),"tablet"===n&&(e=B),"mobile"===n&&(e=O),e};Tt=Tt();var St=function(e){var t;return"top"==e&&("desktop"===o&&(t="linked"===q?Q:$),"tablet"===o&&(t="linked"===U?J:X),"mobile"===o&&(t="linked"===K?Y:ee)),"right"==e&&("desktop"===o&&(t="linked"===q?Q:te),"tablet"===o&&(t="linked"===U?J:ne),"mobile"===o&&(t="linked"===K?Y:oe)),"bottom"==e&&("desktop"===o&&(t="linked"===q?Q:ae),"tablet"===o&&(t="linked"===U?J:le),"mobile"===o&&(t="linked"===K?Y:re)),"left"==e&&("desktop"===o&&(t="linked"===q?Q:ie),"tablet"===o&&(t="linked"===U?J:ce),"mobile"===o&&(t="linked"===K?Y:se)),t},Bt={top:"marginTop",right:"marginRight",bottom:"marginBottom",left:"marginLeft"},Ot={top:"marginTopTablet",right:"marginRightTablet",bottom:"marginBottomTablet",left:"marginLeftTablet"},Mt={top:"marginTopMobile",right:"marginRightMobile",bottom:"marginBottomMobile",left:"marginLeftMobile"},Lt=function(){var e;return"desktop"===o&&(e=q),"tablet"===o&&(e=U),"mobile"===o&&(e=K),e};Lt=Lt();var Nt=function(){f.setAttributes({backgroundImageID:"",backgroundImageURL:""})},At=function(e){var t;return"top"==e&&(t="linked"===Te?Se:Be),"right"==e&&(t="linked"===Te?Se:Oe),"bottom"==e&&(t="linked"===Te?Se:Me),"left"==e&&(t="linked"===Te?Se:Le),t},Pt={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"},_t=function(e){var t;return"top"==e&&(t="linked"===Ae?Pe:_e),"right"==e&&(t="linked"===Ae?Pe:Re),"bottom"==e&&(t="linked"===Ae?Pe:Ie),"left"==e&&(t="linked"===Ae?Pe:ze),t},Rt={top:"borderRadiusTop",right:"borderRadiusRight",bottom:"borderRadiusBottom",left:"borderRadiusLeft"};return wp.element.createElement(pt,null,wp.element.createElement(ct,null,wp.element.createElement(Ke,{className:"wp-block-themeisle-blocks-advanced-columns-header-panel"},wp.element.createElement(qe,{className:a()("header-tab",{"is-selected":"layout"===t}),onClick:function(){return s({tab:"layout"})}},wp.element.createElement("span",null,wp.element.createElement(Ue,{icon:"editor-table"}),Ge("Layout"))),wp.element.createElement(qe,{className:a()("header-tab",{"is-selected":"style"===t}),onClick:function(){return s({tab:"style"})}},wp.element.createElement("span",null,wp.element.createElement(Ue,{icon:"admin-customizer"}),Ge("Style"))),wp.element.createElement(qe,{className:a()("header-tab",{"is-selected":"advanced"===t}),onClick:function(){return s({tab:"advanced"})}},wp.element.createElement("span",null,wp.element.createElement(Ue,{icon:"admin-generic"}),Ge("Advanced")))),"layout"===t&&wp.element.createElement(pt,null,wp.element.createElement(Ke,{title:Ge("Padding & Margin")},wp.element.createElement(u.a,{label:"Padding",view:n,changeViewType:function(e){s({paddingViewType:e})}},wp.element.createElement(p.a,{type:Tt,min:0,max:500,changeType:function(e){"desktop"===n&&f.setAttributes({paddingType:e}),"tablet"===n&&f.setAttributes({paddingTypeTablet:e}),"mobile"===n&&f.setAttributes({paddingTypeMobile:e})},onChange:function(e,t){"desktop"===n&&("linked"===S?f.setAttributes({padding:t}):f.setAttributes(De({},Et[e],t))),"tablet"===n&&("linked"===B?f.setAttributes({paddingTablet:t}):f.setAttributes(De({},Ct[e],t))),"mobile"===n&&("linked"===O?f.setAttributes({paddingMobile:t}):f.setAttributes(De({},xt[e],t)))},options:[{label:Ge("Top"),type:"top",value:kt("top")},{label:Ge("Right"),type:"right",value:kt("right")},{label:Ge("Bottom"),type:"bottom",value:kt("bottom")},{label:Ge("Left"),type:"left",value:kt("left")}]})),wp.element.createElement(u.a,{label:"Margin",view:o,changeViewType:function(e){s({marginViewType:e})}},wp.element.createElement(p.a,{type:Lt,min:-500,max:500,changeType:function(e){"desktop"===o&&f.setAttributes({marginType:e}),"tablet"===o&&f.setAttributes({marginTypeTablet:e}),"mobile"===o&&f.setAttributes({marginTypeMobile:e})},onChange:function(e,t){"desktop"===o&&("linked"===q?f.setAttributes({margin:t}):f.setAttributes(De({},Bt[e],t))),"tablet"===o&&("linked"===U?f.setAttributes({marginTablet:t}):f.setAttributes(De({},Ot[e],t))),"mobile"===o&&("linked"===K?f.setAttributes({marginMobile:t}):f.setAttributes(De({},Mt[e],t)))},options:[{label:Ge("Top"),type:"top",value:St("top")},{label:Ge("Right"),type:"right",value:St("right")},{label:Ge("Bottom"),type:"bottom",value:St("bottom")},{label:Ge("Left"),type:"left",value:St("left")}]}))))||"style"===t&&wp.element.createElement(pt,null,wp.element.createElement(Ke,{title:Ge("Background Settings"),className:"wp-block-themeisle-image-container"},wp.element.createElement(m.default,{label:Ge("Background Type"),backgroundType:pe,changeBackgroundType:function(e){f.setAttributes({backgroundType:e})}}),"color"===pe&&wp.element.createElement(pt,null,wp.element.createElement("p",null,Ge("Background Color")),wp.element.createElement(rt,{label:"Background Color",value:ue,onChange:function(e){f.setAttributes({backgroundColor:e})}}))||"image"===pe&&(de?wp.element.createElement(pt,null,wp.element.createElement("div",{className:"image-body"},wp.element.createElement("div",{className:"image-container"},wp.element.createElement("div",{className:"image-holder",style:{backgroundImage:"url('".concat(de,"')")}}),wp.element.createElement("div",{className:"image-delete",onClick:Nt},wp.element.createElement(Ue,{icon:"trash"}),wp.element.createElement("span",null,Ge("Remove Image"))))),wp.element.createElement(qe,{isDefault:!0,className:"image-delete-button",onClick:Nt},Ge("Change or Remove Image")),wp.element.createElement(L.a,{label:"Background Settings"},wp.element.createElement($e,{label:Ge("Background Attachment"),value:be,options:[{label:"Scroll",value:"scroll"},{label:"Fixed",value:"fixed"},{label:"Local",value:"local"}],onChange:function(e){f.setAttributes({backgroundAttachment:e})}}),wp.element.createElement($e,{label:Ge("Background Position"),value:ge,options:[{label:"Default",value:"top left"},{label:"Top Left",value:"top left"},{label:"Top Center",value:"top center"},{label:"Top Right",value:"top right"},{label:"Center Left",value:"center left"},{label:"Center Center",value:"center center"},{label:"Center Right",value:"center right"},{label:"Bottom Left",value:"bottom left"},{label:"Bottom Center",value:"bottom center"},{label:"Bottom Right",value:"bottom right"}],onChange:function(e){f.setAttributes({backgroundPosition:e})}}),wp.element.createElement($e,{label:Ge("Background Repeat"),value:he,options:[{label:"Repeat",value:"repeat"},{label:"No-repeat",value:"no-repeat"}],onChange:function(e){f.setAttributes({backgroundRepeat:e})}}),wp.element.createElement($e,{label:Ge("Background Size"),value:fe,options:[{label:"Auto",value:"auto"},{label:"Cover",value:"cover"},{label:"Contain",value:"contain"}],onChange:function(e){f.setAttributes({backgroundSize:e})}}))):wp.element.createElement(st,{icon:"format-image",labels:{title:Ge("Background Image"),name:Ge("an image")},value:me,onSelect:function(e){f.setAttributes({backgroundImageID:e.id,backgroundImageURL:e.url})},accept:"image/*",allowedTypes:["image"]}))||"gradient"===pe&&wp.element.createElement(M,{label:"Background Gradient",value:{firstColor:ye,firstLocation:we,secondColor:ve,secondLocation:ke,type:Ee,angle:Ce,position:xe},onChange:function(e,t,n,o,a,l,r){f.setAttributes({backgroundGradientFirstColor:e,backgroundGradientFirstLocation:t,backgroundGradientSecondColor:n,backgroundGradientSecondLocation:o,backgroundGradientType:a,backgroundGradientAngle:l,backgroundGradientPosition:r})}})),wp.element.createElement(Ke,{title:Ge("Border"),className:"wp-block-themeisle-border-container",initialOpen:!1},wp.element.createElement(p.a,{label:Ge("Border Width"),type:Te,min:0,max:500,changeType:function(e){f.setAttributes({borderType:e})},onChange:function(e,t){"linked"===Te?f.setAttributes({border:t}):f.setAttributes(De({},Pt[e],t))},options:[{label:Ge("Top"),type:"top",value:At("top")},{label:Ge("Right"),type:"right",value:At("right")},{label:Ge("Bottom"),type:"bottom",value:At("bottom")},{label:Ge("Left"),type:"left",value:At("left")}]}),wp.element.createElement(pt,null,wp.element.createElement("p",null,Ge("Border Color")),wp.element.createElement(rt,{label:"Border Color",value:Ne,onChange:function(e){f.setAttributes({borderColor:e})}})),wp.element.createElement(p.a,{label:Ge("Border Radius"),type:Ae,min:0,max:500,changeType:function(e){f.setAttributes({borderRadiusType:e})},onChange:function(e,t){"linked"===Ae?f.setAttributes({borderRadius:t}):f.setAttributes(De({},Rt[e],t))},options:[{label:Ge("Top"),type:"top",value:_t("top")},{label:Ge("Right"),type:"right",value:_t("right")},{label:Ge("Bottom"),type:"bottom",value:_t("bottom")},{label:Ge("Left"),type:"left",value:_t("left")}]}),wp.element.createElement(Qe,{label:"Box Shadow",checked:Ve,onChange:function(){f.setAttributes({boxShadow:!Ve})}}),Ve&&wp.element.createElement(pt,null,wp.element.createElement(pt,null,wp.element.createElement("p",null,Ge("Shadow Color")),wp.element.createElement(rt,{label:"Shadow Color",value:He,onChange:function(e){f.setAttributes({boxShadowColor:e})}})),wp.element.createElement(L.a,{label:"Shadow Properties"},wp.element.createElement(Je,{label:Ge("Opacity"),value:je,onChange:function(e){f.setAttributes({boxShadowColorOpacity:e})},min:0,max:100}),wp.element.createElement(Je,{label:Ge("Blur"),value:We,onChange:function(e){f.setAttributes({boxShadowBlur:e})},min:0,max:100}),wp.element.createElement(Je,{label:Ge("Spread"),value:Ze,onChange:function(e){f.setAttributes({boxShadowSpread:e})},min:-100,max:100}),wp.element.createElement(Je,{label:Ge("Horizontal"),value:Xe,onChange:function(e){f.setAttributes({boxShadowHorizontal:e})},min:-100,max:100}),wp.element.createElement(Je,{label:Ge("Vertical"),value:et,onChange:function(e){f.setAttributes({boxShadowVertical:e})},min:-100,max:100})))))||"advanced"===t&&wp.element.createElement(Ke,{title:Ge("Section Settings")},wp.element.createElement($e,{label:Ge("HTML Tag"),value:tt,options:[{label:"Default",value:"div"},{label:"div",value:"div"},{label:"section",value:"section"},{label:"header",value:"header"},{label:"footer",value:"footer"},{label:"article",value:"article"},{label:"main",value:"main"}],onChange:function(e){f.setAttributes({columnsHTMLTag:e})}}))),wp.element.createElement(Ye,{className:"block-library-spacer__resize-container wp-themeisle-block-advanced-column-resize-container",enable:{right:!!y},handleWrapperClass:"wp-themeisle-block-advanced-column-resize-container-handle",onResizeStart:function(e,t,n,o){var a=document.querySelector("#block-".concat(f.clientId," .wp-themeisle-block-advanced-column-resize-container-handle .components-resizable-box__handle")),l=document.createElement("div"),r=document.createElement("div");l.setAttribute("class","resizable-tooltip resizable-tooltip-left"),l.innerHTML="".concat(parseFloat(nt).toFixed(0),"%"),a.appendChild(l),r.setAttribute("class","resizable-tooltip resizable-tooltip-right"),r.innerHTML="".concat(parseFloat(w.attributes.columnWidth).toFixed(0),"%"),a.appendChild(r),s({currentWidth:nt,nextWidth:w.attributes.columnWidth}),f.toggleSelection(!1)},onResize:function(e,t,n,o){var a=document.getElementById("block-".concat(v)).getBoundingClientRect().width,r=o.width/a*100,c=parseFloat(l)+r,s=i-r,p=document.querySelector(".resizable-tooltip-left"),u=document.querySelector(".resizable-tooltip-right");10<=c&&10<=s&&(p.innerHTML="".concat(c.toFixed(0),"%"),u.innerHTML="".concat(s.toFixed(0),"%"),f.setAttributes({columnWidth:c.toFixed(2)}),C(y,{columnWidth:s.toFixed(2)}))},onResizeStop:function(e,t,n,o){var a=document.querySelector(".resizable-tooltip-left"),l=document.querySelector(".resizable-tooltip-right");a.parentNode.removeChild(a),l.parentNode.removeChild(l),f.toggleSelection(!0)}},wp.element.createElement(wt,{className:f.className,id:T,style:vt},wp.element.createElement(it,{templateLock:!1,renderAppender:!E&&it.ButtonBlockAppender}))))})),save:function(e){var t,n,o,a,l,i=e.attributes,c=i.id,s=i.backgroundType,p=i.backgroundColor,u=i.backgroundImageURL,m=i.backgroundAttachment,d=i.backgroundPosition,b=i.backgroundRepeat,g=i.backgroundSize,h=i.backgroundGradientFirstColor,f=i.backgroundGradientFirstLocation,y=i.backgroundGradientSecondColor,w=i.backgroundGradientSecondLocation,v=i.backgroundGradientType,k=i.backgroundGradientAngle,E=i.backgroundGradientPosition,C=i.borderType,x=i.border,T=i.borderTop,S=i.borderRight,B=i.borderBottom,O=i.borderLeft,M=i.borderColor,L=i.borderRadiusType,N=i.borderRadius,A=i.borderRadiusTop,P=i.borderRadiusRight,_=i.borderRadiusBottom,R=i.borderRadiusLeft,I=i.boxShadow,z=i.boxShadowColor,V=i.boxShadowColorOpacity,H=i.boxShadowBlur,j=i.boxShadowSpread,F=i.boxShadowHorizontal,D=i.boxShadowVertical,G=i.columnsHTMLTag;("color"===s&&(t={background:p}),"image"===s&&(t={backgroundImage:"url( '".concat(u,"' )"),backgroundAttachment:m,backgroundPosition:d,backgroundRepeat:b,backgroundSize:g}),"gradient"===s)&&(l="linear"===v?"".concat(k,"deg"):"at ".concat(E),t={background:"".concat(v,"-gradient( ").concat(l,", ").concat(h||"rgba( 0, 0, 0, 0 )"," ").concat(f,"%, ").concat(y||"rgba( 0, 0, 0, 0 )"," ").concat(w,"% )")});"linked"===C&&(n={borderWidth:"".concat(x,"px"),borderStyle:"solid",borderColor:M}),"unlinked"===C&&(n={borderTopWidth:"".concat(T,"px"),borderRightWidth:"".concat(S,"px"),borderBottomWidth:"".concat(B,"px"),borderLeftWidth:"".concat(O,"px"),borderStyle:"solid",borderColor:M}),"linked"===L&&(o={borderRadius:"".concat(N,"px")}),"unlinked"===L&&(o={borderTopLeftRadius:"".concat(A,"px"),borderTopRightRadius:"".concat(P,"px"),borderBottomRightRadius:"".concat(_,"px"),borderBottomLeftRadius:"".concat(R,"px")}),!0===I&&(a={boxShadow:"".concat(F,"px ").concat(D,"px ").concat(H,"px ").concat(j,"px ").concat(r()(z||"#000000",V))});var W=Fe({},t,{},n,{},o,{},a);return wp.element.createElement(G,{className:e.className,id:c,style:W},wp.element.createElement(it.Content,null))}})},function(e,t,n){"use strict";n.r(t);n(80),n(81);var o=n(2),a=n(0),l=n.n(a),r=n(13),i=n.n(r),c=n(14);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var b=wp.i18n.__,g=wp.components,h=g.BaseControl,f=g.Button,y=g.ExternalLink,w=g.IconButton,v=g.SelectControl,k=g.TextControl,E=g.TextareaControl,C=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=u(t).apply(this,arguments))||"object"!==s(o)&&"function"!=typeof o?m(n):o).initSearch=e.initSearch.bind(m(e)),e.changeLocation=e.changeLocation.bind(m(e)),e}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(t,e),n=t,(o=[{key:"initSearch",value:function(e){var t=this,n=document.getElementsByClassName("pac-container");Object.keys(n).forEach((function(e){return n[e].remove()})),this.searchBox=new google.maps.places.SearchBox(e.target),this.searchBox.addListener("places_changed",(function(){var e=t.searchBox.getPlaces();e&&0<e.length&&e.forEach((function(e){var n=e.formatted_address||e.name,o=e.geometry.location.lat(),a=e.geometry.location.lng();t.props.changeMarkerProp(t.props.marker.id,"location",n),t.props.changeMarkerProp(t.props.marker.id,"latitude",o),t.props.changeMarkerProp(t.props.marker.id,"longitude",a)}))}))}},{key:"changeLocation",value:function(e){this.props.changeMarkerProp(this.props.marker.id,"location",e.target.value)}},{key:"render",value:function(){var e=this;return wp.element.createElement("div",{className:"wp-block-themeisle-blocks-google-map-marker"},wp.element.createElement("div",{className:"wp-block-themeisle-blocks-google-map-marker-title-area"},wp.element.createElement(f,{className:"wp-block-themeisle-blocks-google-map-marker-title",onClick:function(){return e.props.openMarker(e.props.marker.id)}},this.props.marker.title||b("Custom Marker")),wp.element.createElement(w,{icon:"no-alt",label:b("Remove Marker"),className:"wp-block-themeisle-blocks-google-map-marker-remove",onClick:function(){return e.props.removeMarker(e.props.marker.id)}})),wp.element.createElement("div",{className:l()("wp-block-themeisle-blocks-google-map-marker-control-area",{opened:this.props.marker.id===this.props.isOpen})},wp.element.createElement(h,{label:b("Location"),id:"themeisle-location-search-".concat(this.props.marker.id)},wp.element.createElement("input",{type:"text",id:"themeisle-location-search-".concat(this.props.marker.id),placeholder:b("Enter a location…"),value:this.props.marker.location,className:"wp-block-themeisle-blocks-google-map-search",onFocus:function(t){return e.initSearch(t)},onChange:function(t){return e.changeLocation(t)},disabled:!this.props.isPlaceAPIAvailable}),!this.props.isPlaceAPIAvailable&&wp.element.createElement("p",null,b("To enable locations earch, please ensure Places API is activated in the Google Developers Console.")+" ",wp.element.createElement(y,{href:"https://developers.google.com/places/web-service/intro"},b("More info.")))),wp.element.createElement(k,{label:b("Latitude"),type:"text",value:this.props.marker.latitude,onChange:function(t){return e.props.changeMarkerProp(e.props.marker.id,"latitude",t)}}),wp.element.createElement(k,{label:b("Longitude"),type:"text",value:this.props.marker.longitude,onChange:function(t){return e.props.changeMarkerProp(e.props.marker.id,"longitude",t)}}),wp.element.createElement(v,{label:b("Map Icon"),value:this.props.marker.icon||"https://maps.google.com/mapfiles/ms/icons/red-dot.png",options:[{label:b("Red"),value:"https://maps.google.com/mapfiles/ms/icons/red-dot.png"},{label:b("Blue"),value:"https://maps.google.com/mapfiles/ms/icons/blue-dot.png"},{label:b("Yellow"),value:"https://maps.google.com/mapfiles/ms/icons/yellow-dot.png"},{label:b("Green"),value:"https://maps.google.com/mapfiles/ms/icons/green-dot.png"},{label:b("Orange"),value:"https://maps.google.com/mapfiles/ms/icons/orange-dot.png"}],onChange:function(t){return e.props.changeMarkerProp(e.props.marker.id,"icon",t)}}),wp.element.createElement(k,{label:b("Title"),type:"text",value:this.props.marker.title,onChange:function(t){return e.props.changeMarkerProp(e.props.marker.id,"title",t)}}),wp.element.createElement(E,{label:b("Description"),type:"text",value:this.props.marker.description,onChange:function(t){return e.props.changeMarkerProp(e.props.marker.id,"description",t)}})))}}])&&p(n.prototype,o),a&&p(n,a),t}(wp.element.Component);function x(e){return(x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function T(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var M=wp.i18n.__,L=wp.components.Button,N=wp.element,A=N.Component,P=N.Fragment,_=function(e){function t(){var e,n,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(e=!(o=S(t).apply(this,arguments))||"object"!==x(o)&&"function"!=typeof o?B(n):o).openMarker=e.openMarker.bind(B(e)),e.state={isOpen:null},e}var n,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){!1!==this.props.initialOpen&&this.setState({isOpen:this.props.initialOpen})}},{key:"componentDidUpdate",value:function(e){this.props.initialOpen!==e.initialOpen&&!1!==this.props.initialOpen&&this.setState({isOpen:this.props.initialOpen})}},{key:"openMarker",value:function(e){this.state.isOpen===e&&(e=null),this.setState({isOpen:e})}},{key:"render",value:function(){var e=this;return wp.element.createElement(P,null,wp.element.createElement("div",{className:"wp-block-themeisle-blocks-google-map-marker-group"},this.props.markers.map((function(t){return wp.element.createElement(C,{marker:t,isOpen:e.state.isOpen,isPlaceAPIAvailable:e.props.isPlaceAPIAvailable,openMarker:e.openMarker,removeMarker:e.props.removeMarker,changeMarkerProp:e.props.changeMarkerProp})}))),wp.element.createElement(L,{isDefault:!0,isLarge:!0,className:"wp-block-themeisle-blocks-google-map-marker-add",onClick:this.props.addMarker},M("Add Marker")))}}])&&T(n.prototype,o),a&&T(n,a),t}(A);function R(e){return(R=
Â