WooLentor – Elementor WooCommerce Builder Addons, Variation Swatches Addons, Gutenberg WooCommerce Product block, grid, slider, templates, widgets, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution - Version 2.4.1

Version Description

Download this release

Release Info

Developer devitemsllc
Plugin Icon 128x128 WooLentor – Elementor WooCommerce Builder Addons, Variation Swatches Addons, Gutenberg WooCommerce Product block, grid, slider, templates, widgets, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution
Version 2.4.1
Comparing to
See all releases

Code changes from version 2.3.2 to 2.4.1

Files changed (85) hide show
  1. assets/css/woolentor-widgets-rtl.css +2 -2
  2. assets/css/woolentor-widgets.css +583 -16
  3. assets/js/woolentor-widgets-active.js +2 -0
  4. classes/class.assest_management.php +13 -0
  5. classes/class.default_data.php +49 -13
  6. classes/class.quickview_manage.php +1 -1
  7. includes/addons/universal_product.php +9 -1
  8. includes/addons/wb_archive_catalog_ordering.php +1 -1
  9. includes/addons/wb_archive_product.php +0 -1
  10. includes/addons/wb_archive_result_count.php +1 -1
  11. includes/addons/wb_product_add_to_cart.php +971 -6
  12. includes/addons/wb_product_additional_information.php +1 -1
  13. includes/addons/wb_product_categories.php +20 -1
  14. includes/addons/wb_product_data_tab.php +1 -1
  15. includes/addons/wb_product_description.php +1 -4
  16. includes/addons/wb_product_image.php +1 -1
  17. includes/addons/wb_product_meta.php +1 -1
  18. includes/addons/wb_product_price.php +1 -1
  19. includes/addons/wb_product_qr_code.php +1 -1
  20. includes/addons/wb_product_rating.php +1 -1
  21. includes/addons/wb_product_related.php +1 -1
  22. includes/addons/wb_product_reviews.php +1 -1
  23. includes/addons/wb_product_short_description.php +1 -1
  24. includes/addons/wb_product_sku.php +20 -1
  25. includes/addons/wb_product_stock.php +1 -1
  26. includes/addons/wb_product_tags.php +20 -1
  27. includes/addons/wb_product_title.php +1 -1
  28. includes/addons/wb_product_upsell.php +1 -1
  29. includes/addons/wl_archive_title.php +1 -1
  30. includes/addons/wl_product_video_gallery.php +2 -2
  31. includes/admin/admin-init.php +3 -8
  32. includes/admin/assets/css/template_edit_manager.css +31 -34
  33. includes/admin/assets/css/woolentor-admin.css +148 -6
  34. includes/admin/assets/images/helping-screenshot.png +0 -0
  35. includes/admin/assets/images/icons/menu-bar_32x32.png +0 -0
  36. includes/admin/assets/js/template_edit_manager.js +56 -8
  37. includes/admin/assets/js/template_library_manager.js +5 -1
  38. includes/admin/assets/js/woolentor-admin.js +7 -45
  39. includes/admin/assets/js/woolentor-condition.js +47 -0
  40. includes/admin/include/admin_field-manager.php +6 -7
  41. includes/admin/include/admin_fields.php +634 -7
  42. includes/admin/include/class.extension-manager.php +2 -16
  43. includes/admin/include/class.template-manager.php +114 -32
  44. includes/admin/include/class.template_cpt.php +60 -0
  45. includes/admin/templates/dashboard-gutenberg.php +67 -0
  46. includes/admin/templates/dashboard-module.php +1 -0
  47. includes/admin/templates/dashboard-navs.php +16 -8
  48. includes/admin/templates/dashboard-sidebar.php +3 -3
  49. includes/admin/templates/dashboard-welcome.php +0 -1
  50. includes/admin/templates/template_edit_popup.php +22 -4
  51. includes/base.php +9 -2
  52. includes/helper-function.php +52 -8
  53. includes/manage_wc_template.php +323 -0
  54. includes/modules/class.module-manager.php +16 -1
  55. includes/modules/compare/includes/classes/Frontend/Manage_Compare.php +4 -0
  56. includes/modules/shopify-like-checkout/assets/shopify-like-checkout.css +11 -0
  57. includes/modules/shopify-like-checkout/class.shopify-like-checkout.php +56 -6
  58. includes/modules/shopify-like-checkout/templates/form-checkout.php +6 -36
  59. includes/modules/shopify-like-checkout/templates/payment.php +4 -0
  60. includes/modules/variation-swatch/assets/css/admin.css +305 -0
  61. includes/modules/variation-swatch/assets/css/frontend.css +526 -0
  62. includes/modules/variation-swatch/assets/js/add-to-cart-variation.js +878 -0
  63. includes/modules/variation-swatch/assets/js/admin.js +331 -0
  64. includes/modules/variation-swatch/assets/js/frontend.js +648 -0
  65. includes/modules/variation-swatch/assets/js/wp-color-picker-alpha.min.js +11 -0
  66. includes/modules/variation-swatch/includes/Admin.php +58 -0
  67. includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php +400 -0
  68. includes/modules/variation-swatch/includes/Admin/Product_Metabox.php +441 -0
  69. includes/modules/variation-swatch/includes/Admin/Woo_Config.php +105 -0
  70. includes/modules/variation-swatch/includes/Frontend.php +163 -0
  71. includes/modules/variation-swatch/includes/Frontend/Woo_Config.php +1008 -0
  72. includes/modules/variation-swatch/includes/Helper.php +217 -0
  73. includes/modules/variation-swatch/includes/ajax-actions.php +187 -0
  74. includes/modules/variation-swatch/includes/functions.php +20 -0
  75. includes/modules/variation-swatch/init.php +118 -0
  76. includes/modules/wishlist/includes/classes/Admin/Settings_Api.php +0 -792
  77. includes/modules/wishlist/includes/classes/Ajax.php +2 -2
  78. languages/woolentor.pot +788 -243
  79. readme.txt +287 -33
  80. wl-woo-templates/archive-product-canvas.php +7 -2
  81. wl-woo-templates/archive-product-fullwidth.php +9 -2
  82. wl-woo-templates/single-product-canvas.php +9 -3
  83. wl-woo-templates/single-product-fullwidth.php +5 -2
  84. woolentor-blocks/build/blocks-woolentor.asset.php +1 -1
  85. woolentor-blocks/build/blocks-woolentor.js +1 -1
assets/css/woolentor-widgets-rtl.css CHANGED
@@ -1,6 +1,6 @@
1
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap .ht-product-ratting .ht-product-user-ratting {
2
- left: auto;
3
- right: 5px;
4
  }
5
  .ht-products .ht-product.ht-product-category-right-bottom .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap {
6
  padding-bottom: 30px;
1
  .ht-products .ht-product .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap .ht-product-ratting .ht-product-user-ratting {
2
+ left: auto;
3
+ right: 5px;
4
  }
5
  .ht-products .ht-product.ht-product-category-right-bottom .ht-product-inner .ht-product-content .ht-product-content-inner .ht-product-ratting-wrap {
6
  padding-bottom: 30px;
assets/css/woolentor-widgets.css CHANGED
@@ -116,6 +116,9 @@
116
  position: relative;
117
  background: transparent;
118
  }
 
 
 
119
  .product-item .actions a::before {
120
  color: #fff;
121
  content: "";
@@ -165,6 +168,7 @@
165
  transition: all 0.4s ease 0s;
166
  visibility: hidden;
167
  width: 100%;
 
168
  }
169
  .product_information_area .content {
170
  padding-bottom: 15px;
@@ -429,15 +433,15 @@ li.woolentor-cart .button:before {
429
  overflow: hidden;
430
  }
431
  .woolentor-product-same-height.ht-products .ht-product .ht-product-inner {
432
- height: 100%;
433
- display: flex;
434
- flex-direction: column;
435
  }
436
  .woolentor-product-same-height.ht-products .ht-product .ht-product-content {
437
- flex: 1 0;
438
  }
439
  .woolentor-product-same-height.ht-products.product-slider .slick-list,.woolentor-product-same-height.ht-products.product-slider .slick-track,.woolentor-product-same-height.ht-products.product-slider .ht-product{
440
- height: 100% !important;
441
  }
442
  .ht-products .ht-product .ht-product-inner .ht-product-countdown-wrap {
443
  position: absolute;
@@ -1184,7 +1188,7 @@ li.woolentor-cart .button:before {
1184
  padding: 10px;
1185
  }
1186
 
1187
- .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom span.wishsuite-btn-text {
1188
  left: 50%;
1189
  right: auto;
1190
  top: auto;
@@ -1274,7 +1278,10 @@ li.woolentor-cart .button:before {
1274
  padding: 10px;
1275
  }
1276
 
1277
- .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom-content span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom-content span.wishsuite-btn-text {
 
 
 
1278
  left: 50%;
1279
  right: auto;
1280
  top: auto;
@@ -1901,9 +1908,7 @@ li.woolentor-cart .button:before {
1901
  }
1902
 
1903
  /* Capability With Wishsuite */
1904
- .wishsuite-button.wltooltip_no span.wishsuite-btn-text{
1905
- display: none;
1906
- }
1907
  .ht-product-action-bottom .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-bottom-content .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-middle .ht-product-inner .wishsuite-button.wishlist,.wl_single-product-item .product-content .action li .wishsuite-button.wishlist{
1908
  padding-top: 4px;
1909
  }
@@ -2047,7 +2052,13 @@ li.woolentor-cart .button:before {
2047
  width: 100%;
2048
  }
2049
 
 
2050
 
 
 
 
 
 
2051
  .wlds-css{
2052
  display: flex;
2053
  justify-content: center;
@@ -3416,6 +3427,561 @@ span.woolentor-order-item-title .product-thumbnail{
3416
  display: none;
3417
  }
3418
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3419
  /* Product Filter Start */
3420
  .woolentor-filter-wrap{
3421
  overflow: hidden;
@@ -4512,6 +5078,7 @@ h2.wl_filter_title {
4512
  }
4513
  .wl_single-product-item .product-content .action a.added_to_cart.wc-forward {
4514
  text-indent: -9999px;
 
4515
  }
4516
 
4517
  .wl_single-product-item .product-content .action .action-item.loading:before {
@@ -5146,12 +5713,12 @@ div[class*="woolentor-single-select-drop"] .select2-results__option::before{
5146
  }
5147
 
5148
  .woolentor-no-view-product {
5149
- padding: 15px 15px 15px 20px;
5150
- margin-bottom: 10px;
5151
- color: #000000;
5152
- font-size: 14px;
5153
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
5154
- background-color: #ffffff;
5155
  }
5156
 
5157
  /**
116
  position: relative;
117
  background: transparent;
118
  }
119
+ .product-item .actions a{
120
+ border-radius: 20px 0 0 20px;
121
+ }
122
  .product-item .actions a::before {
123
  color: #fff;
124
  content: "";
168
  transition: all 0.4s ease 0s;
169
  visibility: hidden;
170
  width: 100%;
171
+ z-index: 9;
172
  }
173
  .product_information_area .content {
174
  padding-bottom: 15px;
433
  overflow: hidden;
434
  }
435
  .woolentor-product-same-height.ht-products .ht-product .ht-product-inner {
436
+ height: 100%;
437
+ display: flex;
438
+ flex-direction: column;
439
  }
440
  .woolentor-product-same-height.ht-products .ht-product .ht-product-content {
441
+ flex: 1 0;
442
  }
443
  .woolentor-product-same-height.ht-products.product-slider .slick-list,.woolentor-product-same-height.ht-products.product-slider .slick-track,.woolentor-product-same-height.ht-products.product-slider .ht-product{
444
+ height: 100% !important;
445
  }
446
  .ht-products .ht-product .ht-product-inner .ht-product-countdown-wrap {
447
  position: absolute;
1188
  padding: 10px;
1189
  }
1190
 
1191
+ .ht-products .ht-product.ht-product-action-bottom .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom .wishsuite-button.wishlist span.wishsuite-btn-text {
1192
  left: 50%;
1193
  right: auto;
1194
  top: auto;
1278
  padding: 10px;
1279
  }
1280
 
1281
+ :is(.ht-products .ht-product.ht-product-action-bottom-content,.ht-products .ht-product.ht-product-action-bottom) .wishsuite-button.wishlist{
1282
+ padding-top: 0;
1283
+ }
1284
+ .ht-products .ht-product.ht-product-action-bottom-content .ht-product-inner .ht-product-action ul li a .ht-product-action-tooltip,.ht-products .ht-product.ht-product-action-bottom-content span.woolentor-tip,.ht-products .ht-product.ht-product-action-bottom-content .wishsuite-button.wishlist span.wishsuite-btn-text {
1285
  left: 50%;
1286
  right: auto;
1287
  top: auto;
1908
  }
1909
 
1910
  /* Capability With Wishsuite */
1911
+
 
 
1912
  .ht-product-action-bottom .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-bottom-content .ht-product-inner .wishsuite-button.wishlist,.ht-product-action-middle .ht-product-inner .wishsuite-button.wishlist,.wl_single-product-item .product-content .action li .wishsuite-button.wishlist{
1913
  padding-top: 4px;
1914
  }
2052
  width: 100%;
2053
  }
2054
 
2055
+ /* single product meta */
2056
 
2057
+ .woocommerce .elementor-widget-wl-single-product-meta .product_meta > span{
2058
+ position: relative;
2059
+ }
2060
+
2061
+ /* end single product meta */
2062
  .wlds-css{
2063
  display: flex;
2064
  justify-content: center;
3427
  display: none;
3428
  }
3429
 
3430
+ /* single product advance addto cart */
3431
+
3432
+ .wl-quantity-wrap .label, .wl-quantity-wrap .wl-quantity, .wl-cart-icon,.wl-wishlist-compare-txt{
3433
+ display: none;
3434
+ }
3435
+
3436
+ .wl-addto-cart .wishsuite-button.wltooltip_no span.wishsuite-btn-text{
3437
+ display: none;
3438
+ }
3439
+
3440
+ .woolentor_current_theme_blocksy .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap span.label{
3441
+ margin: 22px 0px;
3442
+ }
3443
+
3444
+ .woolentor_current_theme_blocksy .wl-addto-cart a.htcompare-btn{
3445
+ display: unset !important;
3446
+ }
3447
+
3448
+ .woolentor_current_theme_oceanwp .wl-addto-cart form.cart .quantity{
3449
+ min-width: unset;
3450
+ }
3451
+
3452
+ .woolentor_current_theme_blocksy .wl-addto-cart.grouped.wl-style-5 form.cart .wl-cart-wrap,
3453
+ .woolentor_current_theme_blocksy .wl-addto-cart.variable.wl-style-3 form.cart .wl-quantity-wrap,
3454
+ #holmes .wl-addto-cart.variable.wl-style-3 form.cart .wl-quantity-wrap,
3455
+ #holmes .wl-addto-cart.variable.wl-style-5 form.cart .wl-quantity-wrap{
3456
+ flex-wrap: unset !important;
3457
+ }
3458
+
3459
+ #holmes .wl-addto-cart form.cart .button{
3460
+ height: auto !important;
3461
+ }
3462
+
3463
+ /*blocsky support*/
3464
+ .woolentor_current_theme_blocksy .wl-addto-cart.wl-style-2 .quantity .qty,
3465
+ .woolentor_current_theme_blocksy .wl-addto-cart.wl-style-3 .quantity .qty,
3466
+ .woolentor_current_theme_blocksy .wl-addto-cart.wl-style-5 .quantity .qty{
3467
+ width: inherit !important;
3468
+ text-align: center !important;
3469
+ }
3470
+
3471
+ .woolentor_current_theme_blocksy .wl-addto-cart.grouped.wl-style-5 form.cart .wl-cart-wrap,
3472
+ .woolentor_current_theme_blocksy .wl-addto-cart.variable.wl-style-3 form.cart .wl-quantity-wrap{
3473
+ flex-wrap: unset !important;
3474
+ }
3475
+
3476
+ .wl-addto-cart.wl-style-2 .cart .quantity[data-type=type-2] .ct-increase,
3477
+ .wl-addto-cart.wl-style-4 .cart .quantity[data-type=type-2] .ct-increase,
3478
+ .wl-addto-cart.wl-style-4 .cart .quantity[data-type=type-2] .ct-decrease,
3479
+ .wl-addto-cart.wl-style-2 .cart .quantity[data-type=type-2] .ct-decrease{
3480
+ display: none;
3481
+ }
3482
+
3483
+ /*ocean wp support*/
3484
+ .wl-addto-cart.wl-style-2 .cart .quantity a.plus,
3485
+ .wl-addto-cart.wl-style-4 .cart .quantity a.minus,
3486
+ .wl-addto-cart.wl-style-4 .cart .quantity a.plus,
3487
+ .wl-addto-cart.wl-style-2 .cart .quantity a.minus,
3488
+ .wl-addto-cart.wl-style-4 .cart .quantity > .plus,
3489
+ .wl-addto-cart.wl-style-2 .cart .quantity > .minus,
3490
+ .woolentor_current_theme_oceanwp .wl-addto-cart .cart .quantity a.plus,
3491
+ .woolentor_current_theme_oceanwp .wl-addto-cart .cart .quantity a.minus{
3492
+ display: none;
3493
+ }
3494
+
3495
+ .wl-addto-cart.wl-style-2 .wl-quantity-wrap .label,
3496
+ .wl-addto-cart.wl-style-2 .wl-quantity-wrap .wl-quantity,
3497
+ .wl-addto-cart.wl-style-3 .wl-quantity-wrap .label,
3498
+ .wl-addto-cart.wl-style-5 .wl-quantity-wrap .label{
3499
+ display: inline-block;
3500
+ }
3501
+
3502
+ .wl-addto-cart form.cart > a.wishsuite-product-before_cart_btn,
3503
+ .wl-addto-cart.grouped form.cart .wl-cart-wrap > a.wishsuite-product-before_cart_btn,
3504
+ .wl-addto-cart.variable form.cart .single_variation_wrap .woocommerce-variation-add-to-cart > a.wishsuite-product-before_cart_btn{
3505
+ display: none;
3506
+ }
3507
+
3508
+ .wl-addto-cart form.cart .htcompare-button-area,
3509
+ .wl-addto-cart form.cart .single_variation_wrap .woocommerce-variation-add-to-cart .htcompare-button-area{
3510
+ display: none;
3511
+ }
3512
+
3513
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart div.quantity,
3514
+ .wl-addto-cart.wl-style-2 form.cart div.quantity{
3515
+ float: none;
3516
+ margin-right: 0px;
3517
+ }
3518
+
3519
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap{
3520
+ display: flex;
3521
+ margin-bottom: 30px;
3522
+ }
3523
+
3524
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity-cal{
3525
+ display: flex;
3526
+ flex-wrap: wrap;
3527
+ border-bottom: 1px solid #333333;
3528
+ align-items: center;
3529
+ margin-left: 80px;
3530
+ }
3531
+
3532
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap span.label{
3533
+ font-size: 14px;
3534
+ font-weight: 400;
3535
+ letter-spacing: 1px;
3536
+ text-transform: uppercase;
3537
+ color: #333333;
3538
+ margin-top: 5px;
3539
+ }
3540
+
3541
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity{
3542
+ background: transparent;
3543
+ color: #666;
3544
+ font-size: 14px;
3545
+ }
3546
+
3547
+ .woocommerce .wl-addto-cart.wl-style-2 .quantity input[type=number]{
3548
+ border-width: 0px;
3549
+ color: #212529;
3550
+ font-weight: 500;
3551
+ text-align: center;
3552
+ width: 4em;
3553
+ }
3554
+
3555
+ .wl-addto-cart form.cart .wl-quantity-wrap .wl-quantity{
3556
+ cursor: pointer;
3557
+ }
3558
+
3559
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity{
3560
+ padding-left: 0px;
3561
+ padding-right: 35px;
3562
+ }
3563
+
3564
+ .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-plus{
3565
+ padding-right: 0px;
3566
+ padding-left: 35px;
3567
+ }
3568
+
3569
+ .woocommerce .wl-addto-cart.wl-style-2 .quantity input[type=number]::-webkit-outer-spin-button,
3570
+ .woocommerce .wl-addto-cart.wl-style-2 .quantity input[type=number]::-webkit-inner-spin-button {
3571
+ -webkit-appearance: none;
3572
+ margin: 0;
3573
+ }
3574
+
3575
+ .woocommerce .wl-addto-cart.wl-style-2 .quantity input[type=number] {
3576
+ -moz-appearance: textfield;
3577
+ }
3578
+
3579
+ .woocommerce div.product .wl-addto-cart form.cart:after,
3580
+ .woocommerce div.product .wl-addto-cart form.cart:before,
3581
+ .wl-addto-cart form.cart:after,
3582
+ .wl-addto-cart form.cart:before{
3583
+ display: none;
3584
+ }
3585
+
3586
+ .woocommerce div.product .wl-addto-cart.external.wl-style-2 form.cart .button,
3587
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .button,
3588
+ .wl-addto-cart.wl-style-2 form.cart .button,
3589
+ .wl-addto-cart.external.wl-style-2 form.cart .button{
3590
+ vertical-align: baseline;
3591
+ float: none;
3592
+ font-weight: 400;
3593
+ line-height: 24px;
3594
+ margin-bottom: 10px;
3595
+ padding: 15px 40px;
3596
+ text-align: center;
3597
+ white-space: nowrap;
3598
+ letter-spacing: 1px;
3599
+ text-transform: uppercase;
3600
+ color: #FFFFFF;
3601
+ border: 1px solid #333333;
3602
+ border-radius: 500px;
3603
+ background-color: #333333;
3604
+ }
3605
+
3606
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .button:hover,
3607
+ .wl-addto-cart.wl-style-2 form.cart .button:hover{
3608
+ background: #FFFFFF;
3609
+ color: #333333;
3610
+ border: 1px solid #333333;
3611
+ }
3612
+
3613
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap,
3614
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap{
3615
+ display: flex;
3616
+ margin-bottom: 30px;
3617
+ gap: 15px;
3618
+ }
3619
+
3620
+ .woocommerce div.product .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap,
3621
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap{
3622
+ display: flex;
3623
+ flex-wrap: wrap;
3624
+ gap: 15px;
3625
+
3626
+ }
3627
+
3628
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.after .single_add_to_cart_button,
3629
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.after .single_add_to_cart_button{
3630
+ order: 1;
3631
+ }
3632
+
3633
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.after .wishlist,
3634
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.after .wishlist{
3635
+ order: 2;
3636
+ }
3637
+
3638
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.after .compare,
3639
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.after .compare{
3640
+ order: 3;
3641
+ }
3642
+
3643
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.before .single_add_to_cart_button,
3644
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.before .single_add_to_cart_button{
3645
+ order: 3;
3646
+ }
3647
+
3648
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.before .wishlist,
3649
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.before .wishlist{
3650
+ order: 1;
3651
+ }
3652
+
3653
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.before .compare,
3654
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.before .compare{
3655
+ order: 2;
3656
+ }
3657
+
3658
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.both .single_add_to_cart_button,
3659
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.both .single_add_to_cart_button{
3660
+ order: 2;
3661
+ }
3662
+
3663
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.both .wishlist,
3664
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.both .wishlist{
3665
+ order: 1;
3666
+ }
3667
+
3668
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap.both .compare,
3669
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap.both .compare{
3670
+ order: 3;
3671
+ }
3672
+
3673
+ .wl-addto-cart.external.before.wl-style-2 form.cart .single_add_to_cart_button,
3674
+ .wl-addto-cart.external.before.wl-style-5 form.cart .single_add_to_cart_button{
3675
+ order: 3;
3676
+ }
3677
+
3678
+ .wl-addto-cart.external.before.wl-style-2 form.cart .wishlist,
3679
+ .wl-addto-cart.external.before.wl-style-5 form.cart .wishlist{
3680
+ order: 1;
3681
+ }
3682
+
3683
+ .wl-addto-cart.external.before.wl-style-2 form.cart .compare,
3684
+ .wl-addto-cart.external.before.wl-style-5 form.cart .compare{
3685
+ order: 2;
3686
+ }
3687
+
3688
+ .wl-addto-cart.external.after.wl-style-2 form.cart .single_add_to_cart_button,
3689
+ .wl-addto-cart.external.after.wl-style-5 form.cart .single_add_to_cart_button{
3690
+ order: 1;
3691
+ }
3692
+
3693
+ .wl-addto-cart.external.after.wl-style-2 form.cart .wishlist,
3694
+ .wl-addto-cart.external.after.wl-style-5 form.cart .wishlist{
3695
+ order: 2;
3696
+ }
3697
+
3698
+ .wl-addto-cart.external.after.wl-style-2 form.cart .compare,
3699
+ .wl-addto-cart.external.after.wl-style-5 form.cart .compare{
3700
+ order: 3;
3701
+ }
3702
+
3703
+ .wl-addto-cart.external.both.wl-style-2 form.cart .single_add_to_cart_button,
3704
+ .wl-addto-cart.external.both.wl-style-5 form.cart .single_add_to_cart_button{
3705
+ order: 2;
3706
+ }
3707
+
3708
+ .wl-addto-cart.external.both.wl-style-2 form.cart .wishlist,
3709
+ .wl-addto-cart.external.both.wl-style-5 form.cart .wishlist{
3710
+ order: 1;
3711
+ }
3712
+
3713
+ .wl-addto-cart.external.both.wl-style-2 form.cart .compare,
3714
+ .wl-addto-cart.external.both.wl-style-5 form.cart .compare{
3715
+ order: 3;
3716
+ }
3717
+
3718
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon,
3719
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon,
3720
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon{
3721
+ width: 56px;
3722
+ height: 56px;
3723
+ display: block;
3724
+ color: #333333;
3725
+ border: 1px solid #696969;
3726
+ background-color: transparent;
3727
+ border-radius: 50%;
3728
+ display: block;
3729
+ text-align: center;
3730
+ font-size: 22px;
3731
+ line-height: 56px;
3732
+ cursor: pointer;
3733
+ transition: 1.2s;
3734
+ }
3735
+
3736
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon.wishlist .wishsuite-button svg{
3737
+ height: 22px;
3738
+ width: 22px;
3739
+ }
3740
+
3741
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon{
3742
+ border-radius: 0px;
3743
+ }
3744
+
3745
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon:hover,
3746
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon:hover,
3747
+ .woocommerce div.product .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon:hover,
3748
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon:hover{
3749
+ color: #FFFFFF;
3750
+ background: #333333;
3751
+ }
3752
+
3753
+ .woocommerce div.product .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon:hover > a,
3754
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon:hover > a,
3755
+ .woocommerce div.product .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon:hover > a,
3756
+ .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon:hover > a{
3757
+ color: #FFFFFF;
3758
+ }
3759
+
3760
+ .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon a svg{
3761
+ width: 19px;
3762
+ height: 18px;
3763
+ }
3764
+
3765
+ .wl-addto-cart.external.wl-style-2 form.cart{
3766
+ display: flex;
3767
+ flex-wrap: wrap;
3768
+ gap:10px;
3769
+ }
3770
+
3771
+ .woocommerce div.product .wl-addto-cart.external.wl-style-5 form.cart .button,
3772
+ .wl-addto-cart.external.wl-style-5 form.cart .button{
3773
+ padding: 15px 40px;
3774
+ line-height: 24px;
3775
+ }
3776
+
3777
+ .wl-addto-cart.wl-style-3 form.cart,
3778
+ .wl-addto-cart.wl-style-4 form.cart,
3779
+ .wl-addto-cart.wl-style-5 form.cart,
3780
+ .wl-addto-cart.variable.wl-style-3 form.cart .single_variation_wrap .woocommerce-variation-add-to-cart,
3781
+ .wl-addto-cart.variable.wl-style-4 form.cart .single_variation_wrap .woocommerce-variation-add-to-cart,
3782
+ .wl-addto-cart.variable.wl-style-5 form.cart .single_variation_wrap .woocommerce-variation-add-to-cart{
3783
+ display: flex;
3784
+ flex-wrap: wrap;
3785
+ gap: 15px;
3786
+ flex-direction: row;
3787
+ margin-bottom: 30px;
3788
+ align-items: center;
3789
+ }
3790
+
3791
+ .woolentor-quickview-content-builder .wl-addto-cart.external.wl-style-5 form.cart{
3792
+ flex-wrap: unset;
3793
+ }
3794
+
3795
+ .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap,
3796
+ .wl-addto-cart.wl-style-5 form.cart .wl-quantity-wrap{
3797
+ display: flex;
3798
+ align-items: center;
3799
+ flex-wrap: wrap;
3800
+ gap: 15px;
3801
+ }
3802
+
3803
+ .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap{
3804
+ flex: 1;
3805
+ }
3806
+
3807
+ .woocommerce div.product .wl-addto-cart.wl-style-3 form.cart .wl-cart-wrap,
3808
+ .wl-addto-cart.wl-style-3 form.cart .wl-cart-wrap,
3809
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart .wl-cart-wrap,
3810
+ .wl-addto-cart.wl-style-4 form.cart .wl-cart-wrap{
3811
+ flex: 1.5;
3812
+ }
3813
+
3814
+ .woocommerce div.product .wl-addto-cart.wl-style-3 form.cart .button,
3815
+ .wl-addto-cart.wl-style-3 form.cart .button,
3816
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart .button,
3817
+ .wl-addto-cart.wl-style-4 form.cart .button{
3818
+ float: none;
3819
+ width: 100%;
3820
+ }
3821
+
3822
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart .button,
3823
+ .wl-addto-cart.wl-style-4 form.cart .button{
3824
+ padding: 19px 0px;
3825
+ border-radius: 5px;
3826
+ }
3827
+
3828
+ .woocommerce div.product .wl-addto-cart.wl-style-3 form.cart .button,
3829
+ .wl-addto-cart.wl-style-3 form.cart .button{
3830
+ padding: 15px 0px;
3831
+ border-radius: 5px;
3832
+ }
3833
+
3834
+ .woocommerce .wl-addto-cart.wl-style-5 .quantity .qty{
3835
+ width: 4.631em;
3836
+ text-align: left;
3837
+ min-height: 54px;
3838
+ }
3839
+
3840
+ .woocommerce .wl-addto-cart.wl-style-5 .quantity input[type=number]{
3841
+ padding: 0px 7px;
3842
+ }
3843
+
3844
+ .woocommerce .wl-addto-cart.wl-style-3 .quantity input[type=number]{
3845
+ text-align: left;
3846
+ width: 100%;
3847
+ padding: 10px 9px;
3848
+ border-radius: 5px;
3849
+
3850
+ }
3851
+ .woocommerce div.product .wl-addto-cart.wl-style-3 .wl-quantity-wrap .label,
3852
+ .wl-addto-cart.wl-style-3 .wl-quantity-wrap .label{
3853
+ flex: 1;
3854
+ }
3855
+
3856
+ .woolentor-quickview-content-builder .wl-addto-cart.wl-style-3 .wl-quantity-wrap .label{
3857
+ flex: unset;
3858
+ }
3859
+
3860
+ .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap .wl-quantity-cal{
3861
+ flex: 2;
3862
+ }
3863
+
3864
+ .woolentor-quickview-content-builder .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap .wl-quantity-cal{
3865
+ flex: unset;
3866
+ }
3867
+
3868
+ .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal{
3869
+ display: flex;
3870
+ background: #F7F8FA;
3871
+ align-items: center;
3872
+ padding: 8px 0px;
3873
+ border-radius: 5px;
3874
+ }
3875
+
3876
+ .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap{
3877
+ display: flex;
3878
+ align-items: center;
3879
+ flex-wrap: wrap;
3880
+ }
3881
+
3882
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity,
3883
+ .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity{
3884
+ float: none;
3885
+ display: inline-block;
3886
+ text-align: center;
3887
+ width: 50px;
3888
+ height: auto;
3889
+ }
3890
+
3891
+ .woocommerce .wl-addto-cart.wl-style-4 .quantity input[type=number]{
3892
+ border-width: 0px;
3893
+ color: #212529;
3894
+ font-weight: 500;
3895
+ text-align: center;
3896
+ padding: 0px;
3897
+ background: transparent;
3898
+ }
3899
+
3900
+ .woocommerce .wl-addto-cart.wl-style-4 .quantity input[type=number]::-webkit-outer-spin-button,
3901
+ .woocommerce .wl-addto-cart.wl-style-4 .quantity input[type=number]::-webkit-inner-spin-button {
3902
+ -webkit-appearance: none;
3903
+ margin: 0;
3904
+ }
3905
+
3906
+ .woocommerce .wl-addto-cart.wl-style-4 .quantity input[type=number] {
3907
+ -moz-appearance: textfield;
3908
+ }
3909
+
3910
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart div.quantity,
3911
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart div.quantity{
3912
+ margin: 0px;
3913
+ }
3914
+
3915
+ .woocommerce div.product .wl-addto-cart.wl-style-3 form.cart .wl-wishlist-compare-txt,
3916
+ .wl-addto-cart.wl-style-3 form.cart .wl-wishlist-compare-txt{
3917
+ display: block;
3918
+ }
3919
+
3920
+ .wl-wishlist-compare-txt{
3921
+ margin: 0;
3922
+ padding: 0;
3923
+ width: 100%;
3924
+ margin-top: 15px;
3925
+ }
3926
+
3927
+ .wl-wishlist-compare-txt li {
3928
+ list-style: none;
3929
+ }
3930
+
3931
+ .wl-wishlist-compare-txt .wishsuite-button.wltooltip_no span.wishsuite-btn-text{
3932
+ display: block;
3933
+ }
3934
+
3935
+ .wl-wishlist-compare-txt .htcompare-btn.woolentor-compare{
3936
+ margin-left: 6px;
3937
+ }
3938
+
3939
+ .woocommerce div.product .wl-addto-cart.wl-style-4 form.cart .wl-wishlist-compare-txt,
3940
+ .wl-addto-cart.wl-style-4 form.cart .wl-wishlist-compare-txt{
3941
+ display: flex;
3942
+ flex-wrap: wrap;
3943
+ gap: 20px;
3944
+ }
3945
+
3946
+ .wl-addto-cart.grouped .wl-quantity-grouped-cal{
3947
+ display: flex;
3948
+ align-items: center;
3949
+ }
3950
+
3951
+ .wl-addto-cart.grouped .wl-quantity-grouped-cal .wl-quantity{
3952
+ padding: 2px 16px;
3953
+ border: 1px solid #eaeaea;
3954
+ cursor: pointer;
3955
+ }
3956
+
3957
+ .wl-addto-cart.grouped.wl-style-1 .wl-quantity-grouped-cal .wl-quantity{
3958
+ display: none;
3959
+ }
3960
+
3961
+ .wl-addto-cart.grouped .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-minus{
3962
+ border-right: none;
3963
+ }
3964
+
3965
+ .wl-addto-cart.grouped .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-plus{
3966
+ border-left: none;
3967
+ }
3968
+
3969
+ .wl-addto-cart.grouped.wl-style-3 .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-minus,
3970
+ .wl-addto-cart.grouped.wl-style-5 .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-minus{
3971
+ display: none;
3972
+ }
3973
+
3974
+ .wl-addto-cart.grouped.wl-style-3 .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-plus,
3975
+ .wl-addto-cart.grouped.wl-style-5 .wl-quantity-grouped-cal .wl-quantity.wl-qunatity-plus{
3976
+ display: none;
3977
+ }
3978
+
3979
+ .wl-addto-cart.grouped .wl-quantity-grouped-cal .quantity input[type=number]{
3980
+ border: 1px solid #eaeaea;
3981
+ }
3982
+
3983
+ /* end single product advance addto cart */
3984
+
3985
  /* Product Filter Start */
3986
  .woolentor-filter-wrap{
3987
  overflow: hidden;
5078
  }
5079
  .wl_single-product-item .product-content .action a.added_to_cart.wc-forward {
5080
  text-indent: -9999px;
5081
+ padding: 0;
5082
  }
5083
 
5084
  .wl_single-product-item .product-content .action .action-item.loading:before {
5713
  }
5714
 
5715
  .woolentor-no-view-product {
5716
+ padding: 15px 15px 15px 20px;
5717
+ margin-bottom: 10px;
5718
+ color: #000000;
5719
+ font-size: 14px;
5720
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15);
5721
+ background-color: #ffffff;
5722
  }
5723
 
5724
  /**
assets/js/woolentor-widgets-active.js CHANGED
@@ -276,6 +276,8 @@
276
  woolentorquickviewThumb();
277
  woolentor_render_variation_quick_view_data( $('.woolentorquickview-open') );
278
  woolentorquickviewAjaxCart( ".htwl-modal-content .single_add_to_cart_button:not(.disabled)" );
 
 
279
  }, 300 );
280
  },
281
  complete: function () {
276
  woolentorquickviewThumb();
277
  woolentor_render_variation_quick_view_data( $('.woolentorquickview-open') );
278
  woolentorquickviewAjaxCart( ".htwl-modal-content .single_add_to_cart_button:not(.disabled)" );
279
+
280
+ $(document).trigger('woolentor_quick_view_rendered');
281
  }, 300 );
282
  },
283
  complete: function () {
classes/class.assest_management.php CHANGED
@@ -235,6 +235,16 @@ class Assets_Management{
235
  'deps' => [ 'jquery', 'countdown-min' ]
236
  ],
237
 
 
 
 
 
 
 
 
 
 
 
238
  'woolentor-admin-main' =>[
239
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/js/woolentor-admin.js',
240
  'version' => WOOLENTOR_VERSION,
@@ -390,6 +400,9 @@ class Assets_Management{
390
  wp_enqueue_style( 'woolentor-widgets-rtl' );
391
  }
392
 
 
 
 
393
  }
394
 
395
 
235
  'deps' => [ 'jquery', 'countdown-min' ]
236
  ],
237
 
238
+ 'woolentor-jquery-interdependencies' => [
239
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/lib/js/jquery-interdependencies.min.js',
240
+ 'version' => WOOLENTOR_VERSION,
241
+ 'deps' => [ 'jquery' ],
242
+ ],
243
+ 'woolentor-condition' => [
244
+ 'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/js/woolentor-condition.js',
245
+ 'version' => WOOLENTOR_VERSION,
246
+ 'deps' => [ 'jquery'],
247
+ ],
248
  'woolentor-admin-main' =>[
249
  'src' => WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/js/woolentor-admin.js',
250
  'version' => WOOLENTOR_VERSION,
400
  wp_enqueue_style( 'woolentor-widgets-rtl' );
401
  }
402
 
403
+ // .woocommerce div.product .woocommerce-tabs ul.tabs
404
+ // wp_enqueue_script('wc-single-product');
405
+
406
  }
407
 
408
 
classes/class.default_data.php CHANGED
@@ -44,9 +44,26 @@ class WooLentor_Default_Data{
44
  add_filter( 'post_class', [ $this, 'post_class' ] );
45
  }
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  /**
48
  * [body_class] Body Classes
49
- * @param [type] $classes String
50
  * @return [void]
51
  */
52
  public function body_class( $classes ){
@@ -63,7 +80,7 @@ class WooLentor_Default_Data{
63
 
64
  /**
65
  * [post_class] Post Classes
66
- * @param [type] $classes String
67
  * @return [void]
68
  */
69
  public function post_class( $classes ){
@@ -121,7 +138,7 @@ class WooLentor_Default_Data{
121
  $current_theme = wp_get_theme();
122
 
123
  // For Astra Theme
124
- if( 'astra' === $current_theme->get( 'TextDomain' ) || 'hello-elementor' === $current_theme->get( 'TextDomain' ) ){
125
 
126
  if( $name === 'woolentor-product-archive-addons' ){
127
 
@@ -201,7 +218,7 @@ class WooLentor_Default_Data{
201
  }else{
202
  if( function_exists('woolentor_get_last_product_id') ){
203
  self::$product_id = woolentor_get_last_product_id();
204
- $product = wc_get_product( woolentor_get_last_product_id() );
205
  }
206
  }
207
 
@@ -228,24 +245,31 @@ class WooLentor_Default_Data{
228
  ob_start();
229
  $short_description = get_the_excerpt( self::$product_id );
230
  $short_description = apply_filters( 'woocommerce_short_description', $short_description );
231
- if ( empty( $short_description ) ) { echo '<p>'.esc_html__('Short description dose not set this product.','woolentor').'</p>'; return; }
232
- ?>
233
- <div class="woocommerce-product-details__short-description"><?php echo wp_kses_post( $short_description ); ?></div>
234
- <?php
 
 
 
235
  return ob_get_clean();
236
  break;
237
 
238
  case 'wl-single-product-description':
239
  ob_start();
240
  $description = get_post_field( 'post_content', self::$product_id );
241
- if ( empty( $description ) ) { echo '<p>'.esc_html__('Description dose not set this product.','woolentor').'</p>'; return; }
242
- return $description .= ob_get_clean();
 
 
 
 
243
  break;
244
 
245
  case 'wl-single-product-rating':
246
  ob_start();
247
  if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
248
- echo '<div class="wl-nodata">'.__('Rating dose not enable','woolentor').'</div>';
249
  }
250
  $rating_count = $product->get_rating_count();
251
  $review_count = $product->get_review_count();
@@ -255,7 +279,7 @@ class WooLentor_Default_Data{
255
  <div class="product">
256
  <div class="woocommerce-product-rating">
257
  <?php echo wc_get_rating_html( $average, $rating_count ); // WPCS: XSS ok. ?>
258
- <?php if ( comments_open() ) : ?>
259
  <?php //phpcs:disable ?>
260
  <a href="#reviews" class="woocommerce-review-link" rel="nofollow">(<?php printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woolentor' ), '<span class="count">' . esc_html( $review_count ) . '</span>' ); ?>)</a>
261
  <?php // phpcs:enable ?>
@@ -270,6 +294,7 @@ class WooLentor_Default_Data{
270
 
271
  case 'wl-single-product-image':
272
  ob_start();
 
273
  $columns = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
274
  $thumbnail_id = $product->get_image_id();
275
  $wrapper_classes = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
@@ -408,10 +433,21 @@ class WooLentor_Default_Data{
408
  echo '</div>';
409
  return ob_get_clean();
410
  break;
 
 
 
 
 
 
 
 
 
 
 
411
 
412
  case 'wl-single-product-reviews':
413
  ob_start();
414
- if( comments_open() ){
415
  comments_template();
416
  }
417
  return ob_get_clean();
44
  add_filter( 'post_class', [ $this, 'post_class' ] );
45
  }
46
 
47
+ // public function wc_fontend_includes() {
48
+ // if( defined( 'WC_ABSPATH' ) ){
49
+ // include_once WC_ABSPATH . 'includes/wc-cart-functions.php';
50
+ // include_once WC_ABSPATH . 'includes/wc-notice-functions.php';
51
+ // include_once WC_ABSPATH . 'includes/wc-template-hooks.php';
52
+ // include_once WC_ABSPATH . 'includes/class-wc-template-loader.php';
53
+ // include_once WC_ABSPATH . 'includes/class-wc-frontend-scripts.php';
54
+ // include_once WC_ABSPATH . 'includes/class-wc-form-handler.php';
55
+ // include_once WC_ABSPATH . 'includes/class-wc-cart.php';
56
+ // include_once WC_ABSPATH . 'includes/class-wc-tax.php';
57
+ // include_once WC_ABSPATH . 'includes/class-wc-shipping-zones.php';
58
+ // include_once WC_ABSPATH . 'includes/class-wc-customer.php';
59
+ // include_once WC_ABSPATH . 'includes/class-wc-embed.php';
60
+ // include_once WC_ABSPATH . 'includes/class-wc-session-handler.php';
61
+ // }
62
+ // }
63
+
64
  /**
65
  * [body_class] Body Classes
66
+ * @param [array] $classes body class list
67
  * @return [void]
68
  */
69
  public function body_class( $classes ){
80
 
81
  /**
82
  * [post_class] Post Classes
83
+ * @param [array] $classes post class list
84
  * @return [void]
85
  */
86
  public function post_class( $classes ){
138
  $current_theme = wp_get_theme();
139
 
140
  // For Astra Theme
141
+ if( 'astra' === $current_theme->get( 'TextDomain' ) || 'hello-elementor' === $current_theme->get( 'TextDomain' ) || 'blocksy' === $current_theme->get( 'TextDomain' ) ){
142
 
143
  if( $name === 'woolentor-product-archive-addons' ){
144
 
218
  }else{
219
  if( function_exists('woolentor_get_last_product_id') ){
220
  self::$product_id = woolentor_get_last_product_id();
221
+ $product = $this->get_product('');
222
  }
223
  }
224
 
245
  ob_start();
246
  $short_description = get_the_excerpt( self::$product_id );
247
  $short_description = apply_filters( 'woocommerce_short_description', $short_description );
248
+ if ( empty( $short_description ) ) {
249
+ echo '<p>'.esc_html__('The short description does not set this product.','woolentor').'</p>';
250
+ }else{
251
+ ?>
252
+ <div class="woocommerce-product-details__short-description"><?php echo wp_kses_post( $short_description ); ?></div>
253
+ <?php
254
+ }
255
  return ob_get_clean();
256
  break;
257
 
258
  case 'wl-single-product-description':
259
  ob_start();
260
  $description = get_post_field( 'post_content', self::$product_id );
261
+ if ( empty( $description ) ) {
262
+ echo '<p>'.esc_html__('The description does not set this product.','woolentor').'</p>';
263
+ }else{
264
+ echo wp_kses_post( $description );
265
+ }
266
+ return ob_get_clean();
267
  break;
268
 
269
  case 'wl-single-product-rating':
270
  ob_start();
271
  if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
272
+ echo '<div class="wl-nodata">'.__('Rating does not enable.','woolentor').'</div>';
273
  }
274
  $rating_count = $product->get_rating_count();
275
  $review_count = $product->get_review_count();
279
  <div class="product">
280
  <div class="woocommerce-product-rating">
281
  <?php echo wc_get_rating_html( $average, $rating_count ); // WPCS: XSS ok. ?>
282
+ <?php if ( comments_open( self::$product_id ) ) : ?>
283
  <?php //phpcs:disable ?>
284
  <a href="#reviews" class="woocommerce-review-link" rel="nofollow">(<?php printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woolentor' ), '<span class="count">' . esc_html( $review_count ) . '</span>' ); ?>)</a>
285
  <?php // phpcs:enable ?>
294
 
295
  case 'wl-single-product-image':
296
  ob_start();
297
+
298
  $columns = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
299
  $thumbnail_id = $product->get_image_id();
300
  $wrapper_classes = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
433
  echo '</div>';
434
  return ob_get_clean();
435
  break;
436
+
437
+ case 'wl-product-data-tabs2':
438
+ // setup_postdata( $product->get_id() );
439
+ $post = get_post( $product->get_id() );
440
+ ob_start();
441
+ if( get_post_type() == 'elementor_library' ){
442
+ add_filter( 'the_content', [ $this, 'product_content' ] );
443
+ }
444
+ wc_get_template( 'single-product/tabs/tabs.php' );
445
+ return ob_get_clean();
446
+ break;
447
 
448
  case 'wl-single-product-reviews':
449
  ob_start();
450
+ if( comments_open( self::$product_id ) ){
451
  comments_template();
452
  }
453
  return ob_get_clean();
classes/class.quickview_manage.php CHANGED
@@ -31,7 +31,7 @@ class Quick_View_Manager{
31
  global $post, $product, $woocommerce;
32
  $id = ( int ) $_POST['id'];
33
  $post = get_post( $id );
34
- $product = get_product( $id );
35
  if ( $product ) {
36
  include ( apply_filters( 'woolentor_quickview_tmp', WOOLENTOR_ADDONS_PL_PATH.'includes/quickview-content.php' ) );
37
  }
31
  global $post, $product, $woocommerce;
32
  $id = ( int ) $_POST['id'];
33
  $post = get_post( $id );
34
+ $product = wc_get_product( $id );
35
  if ( $product ) {
36
  include ( apply_filters( 'woolentor_quickview_tmp', WOOLENTOR_ADDONS_PL_PATH.'includes/quickview-content.php' ) );
37
  }
includes/addons/universal_product.php CHANGED
@@ -2282,7 +2282,7 @@ class Woolentor_Universal_Product_Widget extends Widget_Base {
2282
  ?>
2283
  </ul>
2284
  </div>
2285
- <?php }; ?>
2286
 
2287
  <?php if( is_array( $product_cats ) && (count( $product_cats ) > 0) && ( $settings['product_layout_style'] == 'tab' ) ): ?>
2288
  <div class="<?php echo $same_height_box == 'yes' ? 'woolentor-product-same-height' : ''; ?> ht-products woocommerce">
@@ -2438,8 +2438,12 @@ class Woolentor_Universal_Product_Widget extends Widget_Base {
2438
  <div class="ht-product-content">
2439
  <div class="ht-product-content-inner">
2440
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
 
2441
  <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
 
 
2442
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
 
2443
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2444
 
2445
  <?php if( $settings['show_action_button'] == 'yes' ){ if( $settings['action_button_position'] == 'contentbottom' ): ?>
@@ -2621,8 +2625,12 @@ class Woolentor_Universal_Product_Widget extends Widget_Base {
2621
  <div class="ht-product-content">
2622
  <div class="ht-product-content-inner">
2623
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
 
2624
  <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
 
 
2625
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
 
2626
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2627
 
2628
  <?php if( $settings['show_action_button'] == 'yes' ){ if( $settings['action_button_position'] == 'contentbottom' ): ?>
2282
  ?>
2283
  </ul>
2284
  </div>
2285
+ <?php } ?>
2286
 
2287
  <?php if( is_array( $product_cats ) && (count( $product_cats ) > 0) && ( $settings['product_layout_style'] == 'tab' ) ): ?>
2288
  <div class="<?php echo $same_height_box == 'yes' ? 'woolentor-product-same-height' : ''; ?> ht-products woocommerce">
2438
  <div class="ht-product-content">
2439
  <div class="ht-product-content-inner">
2440
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2441
+ <?php do_action( 'woolentor_universal_before_title' ); ?>
2442
  <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
2443
+ <?php do_action( 'woolentor_universal_after_title' ); ?>
2444
+ <?php do_action( 'woolentor_universal_before_price' ); ?>
2445
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2446
+ <?php do_action( 'woolentor_universal_after_price' ); ?>
2447
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2448
 
2449
  <?php if( $settings['show_action_button'] == 'yes' ){ if( $settings['action_button_position'] == 'contentbottom' ): ?>
2625
  <div class="ht-product-content">
2626
  <div class="ht-product-content-inner">
2627
  <div class="ht-product-categories"><?php woolentor_get_product_category_list(); ?></div>
2628
+ <?php do_action( 'woolentor_universal_before_title' ); ?>
2629
  <?php echo sprintf( "<%s class='ht-product-title'><a href='%s'>%s</a></%s>", $title_html_tag, get_the_permalink(), get_the_title(), $title_html_tag ); ?>
2630
+ <?php do_action( 'woolentor_universal_after_title' ); ?>
2631
+ <?php do_action( 'woolentor_universal_before_price' ); ?>
2632
  <div class="ht-product-price"><?php woocommerce_template_loop_price();?></div>
2633
+ <?php do_action( 'woolentor_universal_after_price' ); ?>
2634
  <div class="ht-product-ratting-wrap"><?php echo woolentor_wc_get_rating_html(); ?></div>
2635
 
2636
  <?php if( $settings['show_action_button'] == 'yes' ){ if( $settings['action_button_position'] == 'contentbottom' ): ?>
includes/addons/wb_archive_catalog_ordering.php CHANGED
@@ -134,7 +134,7 @@ class Woolentor_Wb_Archive_Catalog_Ordering_Widget extends Widget_Base {
134
 
135
  $settings = $this->get_settings_for_display();
136
 
137
- if( Plugin::instance()->editor->is_edit_mode() ){
138
  echo '<div class="woolentor_archive_catalog_ordering">';
139
  woolentor_product_shorting('menu_order');
140
  echo '</div>';
134
 
135
  $settings = $this->get_settings_for_display();
136
 
137
+ if( woolentor_is_preview_mode() ){
138
  echo '<div class="woolentor_archive_catalog_ordering">';
139
  woolentor_product_shorting('menu_order');
140
  echo '</div>';
includes/addons/wb_archive_product.php CHANGED
@@ -931,7 +931,6 @@ class Woolentor_Wb_Archive_Product_Widget extends Widget_Base {
931
  protected function render( $instance = [] ) {
932
 
933
  $settings = $this->get_settings_for_display();
934
-
935
  if ( WC()->session && function_exists('wc_print_notices') ) {
936
  wc_print_notices();
937
  }
931
  protected function render( $instance = [] ) {
932
 
933
  $settings = $this->get_settings_for_display();
 
934
  if ( WC()->session && function_exists('wc_print_notices') ) {
935
  wc_print_notices();
936
  }
includes/addons/wb_archive_result_count.php CHANGED
@@ -129,7 +129,7 @@ class Woolentor_Wb_Archive_Result_Count_Widget extends Widget_Base {
129
 
130
  $settings = $this->get_settings_for_display();
131
 
132
- if( Plugin::instance()->editor->is_edit_mode() ){
133
  echo '<div class="woolentor_archive_result_count">';
134
  $args = array(
135
  'total' => wp_count_posts( 'product' )->publish,
129
 
130
  $settings = $this->get_settings_for_display();
131
 
132
+ if( woolentor_is_preview_mode() ){
133
  echo '<div class="woolentor_archive_result_count">';
134
  $args = array(
135
  'total' => wp_count_posts( 'product' )->publish,
includes/addons/wb_product_add_to_cart.php CHANGED
@@ -28,6 +28,10 @@ class Woolentor_Wb_Product_Add_To_Cart_Widget extends Widget_Base {
28
  public function get_style_depends(){
29
  return [
30
  'woolentor-widgets',
 
 
 
 
31
  ];
32
  }
33
 
@@ -38,10 +42,786 @@ class Woolentor_Wb_Product_Add_To_Cart_Widget extends Widget_Base {
38
  protected function register_controls() {
39
 
40
  $this->start_controls_section(
41
- 'add_to_cart_button_style',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  [
43
  'label' => __( 'Button', 'woolentor' ),
44
  'tab' => Controls_Manager::TAB_STYLE,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  ]
46
  );
47
 
@@ -52,6 +832,7 @@ class Woolentor_Wb_Product_Add_To_Cart_Widget extends Widget_Base {
52
  'type' => Controls_Manager::SWITCHER,
53
  'selectors' => [
54
  '{{WRAPPER}} .quantity,{{WRAPPER}} form.cart input[type=number]' => 'display: none !important;',
 
55
  ],
56
  ]
57
  );
@@ -193,21 +974,205 @@ class Woolentor_Wb_Product_Add_To_Cart_Widget extends Widget_Base {
193
 
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  protected function render() {
197
- $settings = $this->get_settings();
198
- global $product;
199
- $product = wc_get_product();
 
 
 
 
 
 
 
 
 
 
 
200
  if ( Plugin::instance()->editor->is_edit_mode() ) {
201
- echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
 
 
 
 
 
 
 
 
202
  }else{
203
  if ( empty( $product ) ) { return; }
 
204
  ?>
205
- <div class="<?php echo esc_attr( wc_get_product()->get_type() ); ?>">
206
  <?php woocommerce_template_single_add_to_cart(); ?>
207
  </div>
208
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  }
210
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
  }
212
 
213
  }
28
  public function get_style_depends(){
29
  return [
30
  'woolentor-widgets',
31
+ 'elementor-icons-shared-0-css',
32
+ 'elementor-icons-fa-brands',
33
+ 'elementor-icons-fa-regular',
34
+ 'elementor-icons-fa-solid'
35
  ];
36
  }
37
 
42
  protected function register_controls() {
43
 
44
  $this->start_controls_section(
45
+ 'product_advance_single_addtocart_content',
46
+ array(
47
+ 'label' => __( 'Layout', 'woolentor' ),
48
+ 'tab' => Controls_Manager::TAB_CONTENT,
49
+ )
50
+ );
51
+
52
+ $this->add_control(
53
+ 'single_product_advance_layout_style',
54
+ [
55
+ 'label' => __( 'Layout', 'woolentor' ),
56
+ 'type' => Controls_Manager::SELECT,
57
+ 'default' => 'wl-style-1',
58
+ 'options' => [
59
+ 'wl-style-1' => __( 'Default', 'woolentor' ),
60
+ 'wl-style-2' => __( 'Layout One', 'woolentor' ),
61
+ 'wl-style-3' => __( 'Layout Two', 'woolentor' ),
62
+ 'wl-style-4' => __( 'Layout Three', 'woolentor' ),
63
+ 'wl-style-5' => __( 'Layout Four', 'woolentor' ),
64
+ ],
65
+ ]
66
+ );
67
+
68
+ $this->end_controls_section();
69
+
70
+ $this->start_controls_section(
71
+ 'product_advance_single_addtocart_content_settings',
72
+ array(
73
+ 'label' => __( 'Settings', 'woolentor' ),
74
+ 'tab' => Controls_Manager::TAB_CONTENT,
75
+ 'conditions' => [
76
+ 'relation' => 'or',
77
+ 'terms' => [
78
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
79
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
80
+ ]
81
+ ],
82
+ )
83
+ );
84
+
85
+ $this->add_control(
86
+ 'advance_cart_quantity_text',
87
+ [
88
+ 'label' => __( 'Quantity Text', 'woolentor' ),
89
+ 'type' => Controls_Manager::TEXT,
90
+ 'default' => 'Quantity',
91
+ 'conditions' => [
92
+ 'relation' => 'or',
93
+ 'terms' => [
94
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
95
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
96
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-5'],
97
+ ]
98
+ ],
99
+ ]
100
+ );
101
+
102
+ $this->add_control(
103
+ 'quantity_plus_icon',
104
+ [
105
+ 'label' => esc_html__( 'Plus Icon', 'woolentor' ),
106
+ 'type' => Controls_Manager::ICONS,
107
+ 'default' => [
108
+ 'value'=>'fas fa-plus',
109
+ 'library' => 'solid',
110
+ ],
111
+ 'label_block' => true,
112
+ 'fa4compatibility' => 'buttonicon'
113
+ ]
114
+ );
115
+
116
+
117
+ $this->add_control(
118
+ 'qunantity_minus_icon',
119
+ [
120
+ 'label' => esc_html__( 'Minus Icon', 'woolentor' ),
121
+ 'type' => Controls_Manager::ICONS,
122
+ 'default' => [
123
+ 'value'=>'fas fa-minus',
124
+ 'library' => 'solid',
125
+ ],
126
+ 'label_block' => true,
127
+ 'fa4compatibility' => 'buttonicon'
128
+ ]
129
+ );
130
+
131
+ $this->end_controls_section();
132
+
133
+ $this->start_controls_section(
134
+ 'add_to_cart_advance_quaantity_style',
135
+ [
136
+ 'label' => __( 'Quantity', 'woolentor' ),
137
+ 'tab' => Controls_Manager::TAB_STYLE,
138
+ ]
139
+ );
140
+
141
+ $this->start_controls_tabs(
142
+ 'advance_quantity_style_tabs'
143
+ );
144
+ // Normal Style Tab
145
+ $this->start_controls_tab(
146
+ 'style_arvance_quantity_normal_tab',
147
+ [
148
+ 'label' => __( 'Normal', 'woolentor' ),
149
+ ]
150
+ );
151
+
152
+ $this->add_control(
153
+ 'advance_quantity_minus_icon_color',
154
+ [
155
+ 'label' => __( 'Minus Icon Color', 'woolentor' ),
156
+ 'type' => Controls_Manager::COLOR,
157
+ 'selectors' => [
158
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-minus' => 'color: {{VALUE}}',
159
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-minus' => 'color: {{VALUE}}',
160
+ ],
161
+ 'conditions' => [
162
+ 'relation' => 'or',
163
+ 'terms' => [
164
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
165
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
166
+ ]
167
+ ],
168
+ ]
169
+ );
170
+
171
+ $this->add_control(
172
+ 'advance_quantity_plus_icon_color',
173
+ [
174
+ 'label' => __( 'Plus Icon Color', 'woolentor' ),
175
+ 'type' => Controls_Manager::COLOR,
176
+ 'selectors' => [
177
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-plus' => 'color: {{VALUE}}',
178
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-plus' => 'color: {{VALUE}}',
179
+ ],
180
+ 'conditions' => [
181
+ 'relation' => 'or',
182
+ 'terms' => [
183
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
184
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
185
+ ]
186
+ ],
187
+ ]
188
+ );
189
+
190
+ $this->add_control(
191
+ 'advance_quantity_number_color',
192
+ [
193
+ 'label' => __( 'Quantity Number', 'woolentor' ),
194
+ 'type' => Controls_Manager::COLOR,
195
+ 'selectors' => [
196
+ '{{WRAPPER}} .wl-addto-cart.wl-style-1 .quantity input[type=number]' => 'color: {{VALUE}}',
197
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 .quantity input[type=number]' => 'color: {{VALUE}}',
198
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 .quantity input[type=number]' => 'color: {{VALUE}}',
199
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 .quantity input[type=number]' => 'color: {{VALUE}}',
200
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 .quantity input[type=number]' => 'color: {{VALUE}}',
201
+ ],
202
+ ]
203
+ );
204
+
205
+ $this->add_control(
206
+ 'advance_quantity_background_color',
207
+ [
208
+ 'label' => __( 'Quantity Backgeound', 'woolentor' ),
209
+ 'type' => Controls_Manager::COLOR,
210
+ 'selectors' => [
211
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'background: {{VALUE}}',
212
+ ],
213
+ 'condition'=>[
214
+ 'single_product_advance_layout_style' => 'wl-style-4',
215
+ ],
216
+ ]
217
+ );
218
+
219
+ $this->add_control(
220
+ 'advance_quantity_text_color',
221
+ [
222
+ 'label' => __( 'Qunantity Text Color', 'woolentor' ),
223
+ 'type' => Controls_Manager::COLOR,
224
+ 'selectors' => [
225
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap span.label' => 'color: {{VALUE}}',
226
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap span.label' => 'color: {{VALUE}}',
227
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-quantity-wrap span.label' => 'color: {{VALUE}}',
228
+ ],
229
+ 'conditions' => [
230
+ 'relation' => 'or',
231
+ 'terms' => [
232
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
233
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
234
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-5'],
235
+ ]
236
+ ],
237
+ ]
238
+ );
239
+
240
+ $this->end_controls_tab();
241
+
242
+ // Hover Style Tab
243
+ $this->start_controls_tab(
244
+ 'style_arvance_quantity_hover_tab',
245
+ [
246
+ 'label' => __( 'Hover', 'woolentor' ),
247
+ ]
248
+ );
249
+
250
+ $this->add_control(
251
+ 'advance_quantity_hover_minus_icon_color',
252
+ [
253
+ 'label' => __( 'Minus Icon Color', 'woolentor' ),
254
+ 'type' => Controls_Manager::COLOR,
255
+ 'selectors' => [
256
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-minus:hover' => 'color: {{VALUE}}',
257
+ ],
258
+ 'conditions' => [
259
+ 'relation' => 'or',
260
+ 'terms' => [
261
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
262
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
263
+ ]
264
+ ],
265
+ ]
266
+ );
267
+
268
+ $this->add_control(
269
+ 'advance_quantity_hover_plus_icon_color',
270
+ [
271
+ 'label' => __( 'Plus Icon Color', 'woolentor' ),
272
+ 'type' => Controls_Manager::COLOR,
273
+ 'selectors' => [
274
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity.wl-qunatity-plus:hover' => 'color: {{VALUE}}',
275
+ ],
276
+ 'conditions' => [
277
+ 'relation' => 'or',
278
+ 'terms' => [
279
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
280
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
281
+ ]
282
+ ],
283
+ ]
284
+ );
285
+
286
+ $this->add_control(
287
+ 'advance_quantity_hover_number_color',
288
+ [
289
+ 'label' => __( 'Quantity Number', 'woolentor' ),
290
+ 'type' => Controls_Manager::COLOR,
291
+ 'selectors' => [
292
+ '{{WRAPPER}} .wl-addto-cart.wl-style-1 .quantity input[type=number]:hover' => 'color: {{VALUE}}',
293
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 .quantity input[type=number]:hover' => 'color: {{VALUE}}',
294
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 .quantity input[type=number]:hover' => 'color: {{VALUE}}',
295
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 .quantity input[type=number]:hover' => 'color: {{VALUE}}',
296
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 .quantity input[type=number]:hover' => 'color: {{VALUE}}',
297
+ ],
298
+ ]
299
+ );
300
+
301
+ $this->add_control(
302
+ 'advance_quantity_text_hover_color',
303
+ [
304
+ 'label' => __( 'Qunantity Text Color', 'woolentor' ),
305
+ 'type' => Controls_Manager::COLOR,
306
+ 'selectors' => [
307
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap span.label:hover' => 'color: {{VALUE}}',
308
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 form.cart .wl-quantity-wrap span.label:hover' => 'color: {{VALUE}}',
309
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-quantity-wrap span.label:hover' => 'color: {{VALUE}}',
310
+ ],
311
+ 'conditions' => [
312
+ 'relation' => 'or',
313
+ 'terms' => [
314
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
315
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
316
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-5'],
317
+ ]
318
+ ],
319
+ ]
320
+ );
321
+
322
+ $this->add_control(
323
+ 'advance_quantity_background_hover_color',
324
+ [
325
+ 'label' => __( 'Quantity Backgeound', 'woolentor' ),
326
+ 'type' => Controls_Manager::COLOR,
327
+ 'selectors' => [
328
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal:hover' => 'background: {{VALUE}}',
329
+ ],
330
+ 'condition'=>[
331
+ 'single_product_advance_layout_style' => 'wl-style-4',
332
+ ],
333
+ ]
334
+ );
335
+
336
+ $this->end_controls_tab();
337
+ $this->end_controls_tabs();
338
+
339
+ $this->add_group_control(
340
+ Group_Control_Border::get_type(),
341
+ [
342
+ 'name' => 'advance_quantity_border',
343
+ 'label' => __( 'Quantity Border', 'woolentor' ),
344
+ 'selector' => '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity-cal,{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal,{{WRAPPER}} .wl-addto-cart.wl-style-1 .quantity input[type=number],{{WRAPPER}} .wl-addto-cart.wl-style-3 .quantity input[type=number],{{WRAPPER}} .wl-addto-cart.wl-style-5 .quantity input[type=number]',
345
+ 'separator' =>'before',
346
+ ]
347
+ );
348
+
349
+ $this->add_responsive_control(
350
+ 'advance_add_to_cart_quantity_radius',
351
+ [
352
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
353
+ 'size_units' => [ 'px', '%' ],
354
+ 'type' => Controls_Manager::DIMENSIONS,
355
+ 'selectors' => [
356
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
357
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
358
+ '{{WRAPPER}} .wl-addto-cart.wl-style-1 .quantity input[type=number]' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
359
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 .quantity input[type=number]' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
360
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 .quantity input[type=number]' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
361
+ ],
362
+ ]
363
+ );
364
+
365
+ $this->add_responsive_control(
366
+ 'advance_qunatity_padding',
367
+ [
368
+ 'label' => __( 'Padding', 'woolentor' ),
369
+ 'type' => Controls_Manager::DIMENSIONS,
370
+ 'size_units' => [ 'px', '%', 'em' ],
371
+ 'selectors' => [
372
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
373
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
374
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 .quantity input[type=number]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
375
+ '{{WRAPPER}} .wl-addto-cart.wl-style-1 .quantity input[type=number]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
376
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 .quantity input[type=number]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
377
+ ],
378
+ ]
379
+ );
380
+
381
+ $this->add_control(
382
+ 'single_product_quantity_spacing',
383
+ [
384
+ 'label' => esc_html__( 'Spacing', 'woolentor' ),
385
+ 'type' => Controls_Manager::SLIDER,
386
+ 'size_units' => [ 'px' ],
387
+ 'range' => [
388
+ 'px' => [
389
+ 'min' => 0,
390
+ 'max' => 200,
391
+ 'step' => 5,
392
+ ],
393
+ ],
394
+ 'default' => [
395
+ 'unit' => 'px',
396
+ 'size' => 80,
397
+ ],
398
+ 'selectors' => [
399
+ '.woocommerce {{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-quantity-wrap .wl-quantity-cal' => 'margin-left: {{SIZE}}{{UNIT}};',
400
+ ],
401
+ 'condition'=>[
402
+ 'single_product_advance_layout_style' => 'wl-style-2',
403
+ ],
404
+ ]
405
+ );
406
+
407
+ $this->end_controls_section();
408
+
409
+ $this->start_controls_section(
410
+ 'add_to_cart_advance_icon_style',
411
  [
412
  'label' => __( 'Button', 'woolentor' ),
413
  'tab' => Controls_Manager::TAB_STYLE,
414
+ 'conditions' => [
415
+ 'relation' => 'or',
416
+ 'terms' => [
417
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
418
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-5'],
419
+ ]
420
+ ],
421
+ ]
422
+ );
423
+
424
+ $this->add_control(
425
+ 'hide_advance_cart_wishlist_icon',
426
+ [
427
+ 'label' => __( 'Hide Wishlist', 'woolentor' ),
428
+ 'type' => Controls_Manager::SWITCHER,
429
+ 'return_value' => 'yes',
430
+ 'default' => '',
431
+ ]
432
+ );
433
+
434
+ $this->add_control(
435
+ 'hide_advance_cart_compare_icon',
436
+ [
437
+ 'label' => __( 'Hide Compare', 'woolentor' ),
438
+ 'type' => Controls_Manager::SWITCHER,
439
+ 'return_value' => 'yes',
440
+ 'default' => '',
441
+ ]
442
+ );
443
+
444
+ $this->add_control(
445
+ 'product_wishlist_compare_btn_position',
446
+ [
447
+ 'label' => __( 'Position', 'woolentor' ),
448
+ 'type' => Controls_Manager::SELECT,
449
+ 'description' => __('Only for wishlist and compare button.','woolentor'),
450
+ 'default' => 'both',
451
+ 'options' => [
452
+ 'before' => __( 'Befor Add to Cart', 'woolentor' ),
453
+ 'after' => __( 'After Add to Cart', 'woolentor' ),
454
+ 'both' => __( 'Both Side of Add to Cart', 'woolentor' ),
455
+ ],
456
+ 'conditions' => [
457
+ 'relation' => 'or',
458
+ 'terms' => [
459
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-2'],
460
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-5'],
461
+ ]
462
+ ],
463
+ ]
464
+ );
465
+
466
+ $this->start_controls_tabs(
467
+ 'advance_button_icon_tabs',
468
+ [
469
+ 'conditions' => [
470
+ 'relation' => 'or',
471
+ 'terms' => [
472
+ ['name' => 'hide_advance_cart_wishlist_icon', 'operator' => '===', 'value' => ''],
473
+ ['name' => 'hide_advance_cart_compare_icon', 'operator' => '===', 'value' => ''],
474
+ ]
475
+ ],
476
+ ]
477
+ );
478
+ // Normal Style Tab
479
+ $this->start_controls_tab(
480
+ 'style_advance_cart_icon_normal_tab',
481
+ [
482
+ 'label' => __( 'Normal', 'woolentor' )
483
+ ]
484
+ );
485
+
486
+ $this->add_control(
487
+ 'advance_cart_icon_wishlist_color',
488
+ [
489
+ 'label' => __( 'Wishlist Icon Color', 'woolentor' ),
490
+ 'type' => Controls_Manager::COLOR,
491
+ 'selectors' => [
492
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.wishlist' => 'color: {{VALUE}}',
493
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.wishlist' => 'color: {{VALUE}}',
494
+ ],
495
+ 'condition'=>[
496
+ 'hide_advance_cart_wishlist_icon' => '',
497
+ ],
498
+ ]
499
+ );
500
+
501
+ $this->add_control(
502
+ 'advance_cart_icon_wishlist_background',
503
+ [
504
+ 'label' => __( 'Wishlist Background Color', 'woolentor' ),
505
+ 'type' => Controls_Manager::COLOR,
506
+ 'selectors' => [
507
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.wishlist' => 'background: {{VALUE}}',
508
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.wishlist' => 'background: {{VALUE}}',
509
+ ],
510
+ 'condition'=>[
511
+ 'hide_advance_cart_wishlist_icon' => '',
512
+ ],
513
+ ]
514
+ );
515
+
516
+ $this->add_control(
517
+ 'advance_cart_icon_compare_color',
518
+ [
519
+ 'label' => __( 'Compare Icon Color', 'woolentor' ),
520
+ 'type' => Controls_Manager::COLOR,
521
+ 'selectors' => [
522
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.compare' => 'color: {{VALUE}}',
523
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.compare' => 'color: {{VALUE}}',
524
+ ],
525
+ 'condition'=>[
526
+ 'hide_advance_cart_compare_icon' => '',
527
+ ],
528
+ ]
529
+ );
530
+
531
+ $this->add_control(
532
+ 'advance_cart_icon_compare_background',
533
+ [
534
+ 'label' => __( 'Compare Background Color', 'woolentor' ),
535
+ 'type' => Controls_Manager::COLOR,
536
+ 'selectors' => [
537
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.compare' => 'background: {{VALUE}}',
538
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.compare' => 'background: {{VALUE}}',
539
+ ],
540
+ 'condition'=>[
541
+ 'hide_advance_cart_compare_icon' => '',
542
+ ],
543
+ ]
544
+ );
545
+
546
+ $this->add_group_control(
547
+ Group_Control_Border::get_type(),
548
+ [
549
+ 'name' => 'advance_cart_icon_border',
550
+ 'label' => __( 'Border', 'woolentor' ),
551
+ 'selector' => '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon,{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon',
552
+ ]
553
+ );
554
+
555
+ $this->add_responsive_control(
556
+ 'advance_cart_icon_border_radius',
557
+ [
558
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
559
+ 'size_units' => [ 'px', '%' ],
560
+ 'type' => Controls_Manager::DIMENSIONS,
561
+ 'selectors' => [
562
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
563
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
564
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
565
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
566
+ ],
567
+ ]
568
+ );
569
+
570
+ $this->end_controls_tab();
571
+
572
+ // Hover Style Tab
573
+ $this->start_controls_tab(
574
+ 'style_advance_icon_hover_tab',
575
+ [
576
+ 'label' => __( 'Hover', 'woolentor' )
577
+ ]
578
+ );
579
+
580
+ $this->add_control(
581
+ 'advance_cart_hover_icon_wishlist_color',
582
+ [
583
+ 'label' => __( 'Wishlist Icon Color', 'woolentor' ),
584
+ 'type' => Controls_Manager::COLOR,
585
+ 'selectors' => [
586
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.wishlist:hover > a' => 'color: {{VALUE}}',
587
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.wishlist:hover > a' => 'color: {{VALUE}}',
588
+ ],
589
+ 'condition'=>[
590
+ 'hide_advance_cart_wishlist_icon' => '',
591
+ ],
592
+ ]
593
+ );
594
+
595
+ $this->add_control(
596
+ 'advance_cart_hover_icon_wishlist_background',
597
+ [
598
+ 'label' => __( 'Wishlist Background Color', 'woolentor' ),
599
+ 'type' => Controls_Manager::COLOR,
600
+ 'selectors' => [
601
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.wishlist:hover' => 'background: {{VALUE}}',
602
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.wishlist:hover' => 'background: {{VALUE}}',
603
+ ],
604
+ 'condition'=>[
605
+ 'hide_advance_cart_wishlist_icon' => '',
606
+ ],
607
+ ]
608
+ );
609
+
610
+ $this->add_control(
611
+ 'advance_cart_hover_icon_compare_color',
612
+ [
613
+ 'label' => __( 'Compare Icon Color', 'woolentor' ),
614
+ 'type' => Controls_Manager::COLOR,
615
+ 'selectors' => [
616
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.compare:hover > a' => 'color: {{VALUE}}',
617
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.compare:hover > a' => 'color: {{VALUE}}',
618
+ ],
619
+ 'condition'=>[
620
+ 'hide_advance_cart_compare_icon' => '',
621
+ ],
622
+ ]
623
+ );
624
+
625
+ $this->add_control(
626
+ 'advance_cart_hover_icon_compare_background',
627
+ [
628
+ 'label' => __( 'Compare Background Color', 'woolentor' ),
629
+ 'type' => Controls_Manager::COLOR,
630
+ 'selectors' => [
631
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon.compare:hover' => 'background: {{VALUE}}',
632
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon.compare:hover' => 'background: {{VALUE}}',
633
+ ],
634
+ 'condition'=>[
635
+ 'hide_advance_cart_compare_icon' => '',
636
+ ],
637
+ ]
638
+ );
639
+
640
+ $this->add_group_control(
641
+ Group_Control_Border::get_type(),
642
+ [
643
+ 'name' => 'advance_cart_hover_icon_border',
644
+ 'label' => __( 'Border', 'woolentor' ),
645
+ 'selector' => '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon:hover,{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon:hover',
646
+ ]
647
+ );
648
+
649
+ $this->add_responsive_control(
650
+ 'advance_cart_hover_icon_border_radius',
651
+ [
652
+ 'label' => esc_html__( 'Border Radius', 'woolentor' ),
653
+ 'type' => Controls_Manager::DIMENSIONS,
654
+ 'size_units' => [ 'px', '%' ],
655
+ 'selectors' => [
656
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-wrap .wl-cart-icon:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
657
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-wrap .wl-cart-icon:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
658
+ '{{WRAPPER}} .wl-addto-cart.wl-style-2 form.cart .wl-cart-icon:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
659
+ '{{WRAPPER}} .wl-addto-cart.wl-style-5 form.cart .wl-cart-icon:hover' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
660
+ ],
661
+ ]
662
+ );
663
+
664
+ $this->end_controls_tab();
665
+
666
+ $this->end_controls_tabs();
667
+
668
+ $this->end_controls_section();
669
+
670
+ $this->start_controls_section(
671
+ 'add_to_cart_advance_text_style',
672
+ [
673
+ 'label' => __( 'Button', 'woolentor' ),
674
+ 'tab' => Controls_Manager::TAB_STYLE,
675
+ 'conditions' => [
676
+ 'relation' => 'or',
677
+ 'terms' => [
678
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
679
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
680
+ ]
681
+ ],
682
+ ]
683
+ );
684
+
685
+
686
+ $this->add_control(
687
+ 'hide_advance_cart_wishlist_text',
688
+ [
689
+ 'label' => __( 'Hide Wishlist', 'woolentor' ),
690
+ 'type' => Controls_Manager::SWITCHER,
691
+ 'return_value' => 'yes',
692
+ 'default' => '',
693
+ ]
694
+ );
695
+
696
+ $this->add_control(
697
+ 'hide_advance_cart_compare_text',
698
+ [
699
+ 'label' => __( 'Hide Compare', 'woolentor' ),
700
+ 'type' => Controls_Manager::SWITCHER,
701
+ 'return_value' => 'yes',
702
+ 'default' => '',
703
+ ]
704
+ );
705
+
706
+ $this->start_controls_tabs(
707
+ 'advance_add_to_cart_icon_text_style_tabs'
708
+ );
709
+ // Normal Style Tab
710
+ $this->start_controls_tab(
711
+ 'advance_cart_icon_text_tab',
712
+ [
713
+ 'label' => __( 'Normal', 'woolentor' ),
714
+ ]
715
+ );
716
+
717
+ $this->add_control(
718
+ 'advance_quantity_cart_icon_text_color',
719
+ [
720
+ 'label' => __( 'Color', 'woolentor' ),
721
+ 'type' => Controls_Manager::COLOR,
722
+ 'selectors' => [
723
+ '{{WRAPPER}} .wl-wishlist-compare-txt li a' => 'color: {{VALUE}}',
724
+ '{{WRAPPER}} .wl-wishlist-compare-txt li span' => 'color: {{VALUE}}',
725
+ ]
726
+ ]
727
+ );
728
+
729
+ $this->end_controls_tab();
730
+
731
+ // Hover Style Tab
732
+ $this->start_controls_tab(
733
+ 'advance_quantity_cart_icon_text_hover_tab',
734
+ [
735
+ 'label' => __( 'Hover', 'woolentor' ),
736
+ ]
737
+ );
738
+
739
+ $this->add_control(
740
+ 'advance_quantity_cart_icon_text_hover_color',
741
+ [
742
+ 'label' => __( 'Color', 'woolentor' ),
743
+ 'type' => Controls_Manager::COLOR,
744
+ 'selectors' => [
745
+ '{{WRAPPER}} .wl-wishlist-compare-txt li:hover a' => 'color: {{VALUE}}',
746
+ '{{WRAPPER}} .wl-wishlist-compare-txt li:hover span' => 'color: {{VALUE}}',
747
+ ]
748
+ ]
749
+ );
750
+
751
+ $this->end_controls_tab();
752
+ $this->end_controls_tabs();
753
+
754
+ $this->add_control(
755
+ 'product_wishlist_compare_button',
756
+ [
757
+ 'label' => __( 'Font Size', 'woolentor-pro' ),
758
+ 'type' => Controls_Manager::SLIDER,
759
+ 'size_units' => [ 'px', '%' ],
760
+ 'range' => [
761
+ 'px' => [
762
+ 'min' => 0,
763
+ 'max' => 100,
764
+ 'step' => 1,
765
+ ],
766
+ '%' => [
767
+ 'min' => 0,
768
+ 'max' => 100,
769
+ ],
770
+ ],
771
+ 'selectors' => [
772
+ '{{WRAPPER}} .wl-wishlist-compare-txt li a' => 'font-size: {{SIZE}}{{UNIT}}',
773
+ '{{WRAPPER}} .wl-wishlist-compare-txt li a svg' => 'width: {{SIZE}}{{UNIT}};height: {{SIZE}}{{UNIT}}',
774
+ '{{WRAPPER}} .wl-wishlist-compare-txt li span' => 'font-size: {{SIZE}}{{UNIT}}',
775
+ ],
776
+ 'conditions' => [
777
+ 'relation' => 'or',
778
+ 'terms' => [
779
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
780
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
781
+ ]
782
+ ],
783
+ ]
784
+ );
785
+
786
+ $this->add_control(
787
+ 'product_wishlist_compare_txt_spacing',
788
+ [
789
+ 'label' => __( 'Space Between', 'woolentor-pro' ),
790
+ 'type' => Controls_Manager::SLIDER,
791
+ 'size_units' => [ 'px', '%' ],
792
+ 'range' => [
793
+ 'px' => [
794
+ 'min' => 0,
795
+ 'max' => 100,
796
+ 'step' => 1,
797
+ ],
798
+ '%' => [
799
+ 'min' => 0,
800
+ 'max' => 100,
801
+ ],
802
+ ],
803
+ 'selectors' => [
804
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 span.wishsuite-btn-text' => 'margin-left: {{SIZE}}{{UNIT}}',
805
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 span.wishsuite-btn-text' => 'margin-left: {{SIZE}}{{UNIT}}',
806
+ '{{WRAPPER}} .wl-addto-cart.wl-style-4 .htcompare-btn.woolentor-compare' => 'margin-left: {{SIZE}}{{UNIT}}',
807
+ '{{WRAPPER}} .wl-addto-cart.wl-style-3 .htcompare-btn.woolentor-compare' => 'margin-left: {{SIZE}}{{UNIT}}',
808
+ ],
809
+ 'conditions' => [
810
+ 'relation' => 'or',
811
+ 'terms' => [
812
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-3'],
813
+ ['name' => 'single_product_advance_layout_style', 'operator' => '===', 'value' => 'wl-style-4'],
814
+ ]
815
+ ],
816
+ ]
817
+ );
818
+ $this->end_controls_section();
819
+
820
+ $this->start_controls_section(
821
+ 'add_to_cart_button_style',
822
+ [
823
+ 'label' => __( 'Add to Cart', 'woolentor' ),
824
+ 'tab' => Controls_Manager::TAB_STYLE,
825
  ]
826
  );
827
 
832
  'type' => Controls_Manager::SWITCHER,
833
  'selectors' => [
834
  '{{WRAPPER}} .quantity,{{WRAPPER}} form.cart input[type=number]' => 'display: none !important;',
835
+ '{{WRAPPER}} .wl-addto-cart form.cart .wl-quantity-wrap' => 'display: none;',
836
  ],
837
  ]
838
  );
974
 
975
  }
976
 
977
+ protected function customise_single_product_add_to_cart($settings, $porduct_type){
978
+ $plus_icon = !empty( $settings['quantity_plus_icon']['value'] ) ? woolentor_render_icon( $settings, 'quantity_plus_icon', 'buttonicon' ) : '<i class="ion-plus"></i>';
979
+ $minus_icon = !empty( $settings['qunantity_minus_icon']['value'] ) ? woolentor_render_icon( $settings, 'qunantity_minus_icon', 'buttonicon' ) : '<i class="ion-minus"></i>';
980
+
981
+ if( 'grouped' != $porduct_type ){
982
+ add_action( 'woocommerce_before_add_to_cart_quantity', function() use ($settings, $minus_icon) {
983
+ echo '<div class="wl-quantity-wrap">';
984
+ if(!empty($settings['advance_cart_quantity_text'])){
985
+ echo '<span class="label">'.$settings['advance_cart_quantity_text'].'</span>';
986
+ }
987
+ echo '<div class="wl-quantity-cal">';
988
+ echo '<span class="wl-quantity wl-qunatity-minus" >'.$minus_icon.'</span>';
989
+ });
990
+
991
+ add_action( 'woocommerce_after_add_to_cart_quantity', function() use ($settings, $plus_icon) {
992
+ echo '<span class="wl-quantity wl-qunatity-plus" >'.$plus_icon.'</span>';
993
+ echo '</div>';
994
+ echo '</div>';
995
+ echo '<div class="wl-cart-wrap '.$settings['product_wishlist_compare_btn_position'].'">';
996
+ if( 'wl-style-5' !== $settings['single_product_advance_layout_style']){
997
+ if( true === woolentor_has_wishlist_plugin() && 'yes' !== $settings['hide_advance_cart_wishlist_icon'] ){
998
+ echo '<span class="wl-cart-icon wishlist">'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'no').'</span>';
999
+ }
1000
+ }
1001
+ } );
1002
+ }else{
1003
+ add_action( 'woocommerce_before_add_to_cart_quantity', function() use ($settings, $minus_icon) {
1004
+ echo '<div class="wl-quantity-grouped-cal">';
1005
+ echo '<span class="wl-quantity wl-qunatity-minus" >'.$minus_icon.'</span>';
1006
+ });
1007
+
1008
+ add_action( 'woocommerce_after_add_to_cart_quantity', function() use ($settings, $plus_icon) {
1009
+ echo '<span class="wl-quantity wl-qunatity-plus" >'.$plus_icon.'</span>';
1010
+ echo '</div>';
1011
+ } );
1012
+ add_action( 'woocommerce_before_add_to_cart_button', function() use ($settings) {
1013
+ echo '<div class="wl-cart-wrap '.$settings['product_wishlist_compare_btn_position'].'">';
1014
+ if( 'wl-style-5' !== $settings['single_product_advance_layout_style']){
1015
+ if( true === woolentor_has_wishlist_plugin() && 'yes' !== $settings['hide_advance_cart_wishlist_icon'] ){
1016
+ echo '<span class="wl-cart-icon wishlist">'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'no').'</span>';
1017
+ }
1018
+ }
1019
+ });
1020
+ }
1021
+
1022
+ add_action( 'woocommerce_after_add_to_cart_button', function() use ($settings, $porduct_type) {
1023
+ if( 'simple' == $porduct_type || 'grouped' == $porduct_type || 'variable' == $porduct_type){
1024
+ if( 'wl-style-5' === $settings['single_product_advance_layout_style']){
1025
+ if( true === woolentor_has_wishlist_plugin() && 'yes' !== $settings['hide_advance_cart_wishlist_icon'] ){
1026
+ echo '<span class="wl-cart-icon wishlist">'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'no').'</span>';
1027
+ }
1028
+ }
1029
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() && 'yes' !== $settings['hide_advance_cart_compare_icon'] ){
1030
+ echo '<span class="wl-cart-icon compare">';
1031
+ woolentor_compare_button(
1032
+ array(
1033
+ 'style'=> 2,
1034
+ 'btn_text'=> '<i class="sli sli-refresh"></i>',
1035
+ 'btn_added_txt'=> '<i class="sli sli-check"></i>'
1036
+ )
1037
+ );
1038
+ echo '</span>';
1039
+ }
1040
+ echo "</div>";
1041
+ }elseif ('external' == $porduct_type) {
1042
+ if( true === woolentor_has_wishlist_plugin() && 'yes' !== $settings['hide_advance_cart_wishlist_icon'] ){
1043
+ echo '<span class="wl-cart-icon wishlist">'.woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'no').'</span>';
1044
+ }
1045
+ if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() && 'yes' !== $settings['hide_advance_cart_compare_icon'] ){
1046
+ echo '<span class="wl-cart-icon compare">';
1047
+ woolentor_compare_button(
1048
+ array(
1049
+ 'style'=> 2,
1050
+ 'btn_text'=> '<i class="sli sli-refresh"></i>',
1051
+ 'btn_added_txt'=> '<i class="sli sli-check"></i>'
1052
+ )
1053
+ );
1054
+ echo '</span>';
1055
+ }
1056
+ }
1057
+ ?>
1058
+ <ul class="wl-wishlist-compare-txt">
1059
+ <?php if( true === woolentor_has_wishlist_plugin() ): ?>
1060
+ <li>
1061
+ <?php if( '' == $settings['hide_advance_cart_wishlist_text']): ?>
1062
+ <?php echo woolentor_add_to_wishlist_button('<i class="sli sli-heart"></i>','<i class="sli sli-heart"></i>', 'yes'); ?>
1063
+ <?php endif; ?>
1064
+ </li>
1065
+ <?php endif; ?>
1066
+ <?php if( function_exists('woolentor_compare_button') && true === woolentor_exist_compare_plugin() ): ?>
1067
+ <li>
1068
+ <?php if( '' == $settings['hide_advance_cart_compare_text']): ?>
1069
+ <span><i class="sli sli-refresh"></i></span>
1070
+ <?php echo woolentor_compare_button(
1071
+ array(
1072
+ 'style'=> 2,
1073
+ 'btn_text'=> 'Compare',
1074
+ 'btn_added_txt'=> 'Already Compared'
1075
+ )
1076
+ );
1077
+ ?>
1078
+ <?php endif; ?>
1079
+ </li>
1080
+ <?php endif; ?>
1081
+ </ul>
1082
+ <?php
1083
+ } );
1084
+ }
1085
+
1086
  protected function render() {
1087
+ $settings = $this->get_settings();
1088
+ if( Plugin::instance()->editor->is_edit_mode() ){
1089
+ $product = wc_get_product( woolentor_get_last_product_id() );
1090
+ }else{
1091
+ global $product;
1092
+ }
1093
+
1094
+ $product_layout_class = $settings['single_product_advance_layout_style'];
1095
+ $poduct_type = $product ? $product->get_type() : '';
1096
+
1097
+ if( 'wl-style-1' != $product_layout_class ){
1098
+ $this->customise_single_product_add_to_cart($settings, $poduct_type);
1099
+ }
1100
+
1101
  if ( Plugin::instance()->editor->is_edit_mode() ) {
1102
+ if('external' == $poduct_type){
1103
+ echo '<div class="wl-addto-cart '.esc_attr( $poduct_type ).' '.esc_attr( $settings['product_wishlist_compare_btn_position']).' '.esc_attr( $product_layout_class ).'">';
1104
+ echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
1105
+ echo '</div>';
1106
+ }else{
1107
+ echo '<div class="wl-addto-cart '.esc_attr( $poduct_type ).' '.esc_attr( $product_layout_class ).'">';
1108
+ echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
1109
+ echo '</div>';
1110
+ }
1111
  }else{
1112
  if ( empty( $product ) ) { return; }
1113
+ if('wl-style-1' == $product_layout_class):
1114
  ?>
1115
+ <div class="<?php echo esc_attr( $product->get_type() ).' '.esc_attr( $product_layout_class ); ?>">
1116
  <?php woocommerce_template_single_add_to_cart(); ?>
1117
  </div>
1118
  <?php
1119
+ elseif('external' == $poduct_type):
1120
+ ?>
1121
+ <div class="wl-addto-cart <?php echo esc_attr( $product->get_type() ).' '.esc_attr($settings['product_wishlist_compare_btn_position']).' '.esc_attr( $product_layout_class ); ?>">
1122
+ <?php woocommerce_template_single_add_to_cart(); ?>
1123
+ </div>
1124
+ <?php
1125
+ else:
1126
+ ?>
1127
+ <div class="wl-addto-cart <?php echo esc_attr( $product->get_type() ).' '.esc_attr( $product_layout_class ); ?>">
1128
+ <?php woocommerce_template_single_add_to_cart(); ?>
1129
+ </div>
1130
+ <?php
1131
+ endif;
1132
  }
1133
 
1134
+ ?>
1135
+ <script type="text/javascript">
1136
+ ;jQuery(document).ready(function($){
1137
+ $('form.cart').on( 'click', 'span.wl-qunatity-plus, span.wl-qunatity-minus', function() {
1138
+
1139
+ // Get current quantity values
1140
+ <?php if('grouped' != $poduct_type): ?>
1141
+ var qty = $( this ).closest( 'form.cart' ).find( '.qty' );
1142
+ var val = parseFloat(qty.val());
1143
+ var min_val = 1;
1144
+ <?php else: ?>
1145
+ var qty = $( this ).closest( '.wl-quantity-grouped-cal' ).find( '.qty' );
1146
+ var val = !qty.val() ? 0 : parseFloat(qty.val());
1147
+ var min_val = 0;
1148
+ <?php endif; ?>
1149
+ var max = parseFloat(qty.attr( 'max' ));
1150
+ var min = parseFloat(qty.attr( 'min' ));
1151
+ var step = parseFloat(qty.attr( 'step' ));
1152
+
1153
+ // Change the value if plus or minus
1154
+ if ( $( this ).is( '.wl-qunatity-plus' ) ) {
1155
+ if ( max && ( max <= val ) ) {
1156
+ qty.val( max );
1157
+ }
1158
+ else{
1159
+ qty.val( val + step );
1160
+ }
1161
+ }
1162
+ else {
1163
+ if ( min && ( min >= val ) ) {
1164
+ qty.val( min );
1165
+ }
1166
+ else if ( val > min_val ) {
1167
+ qty.val( val - step );
1168
+ }
1169
+ }
1170
+
1171
+ });
1172
+ });
1173
+ </script>
1174
+ <?php
1175
+
1176
  }
1177
 
1178
  }
includes/addons/wb_product_additional_information.php CHANGED
@@ -147,7 +147,7 @@ class Woolentor_Wb_Product_Additional_Information_Widget extends Widget_Base {
147
  protected function render( $instance = [] ) {
148
 
149
  $settings = $this->get_settings_for_display();
150
- if ( Plugin::instance()->editor->is_edit_mode() ) {
151
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
152
  } else{
153
  global $product;
147
  protected function render( $instance = [] ) {
148
 
149
  $settings = $this->get_settings_for_display();
150
+ if( woolentor_is_preview_mode() ){
151
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
152
  } else{
153
  global $product;
includes/addons/wb_product_categories.php CHANGED
@@ -126,6 +126,25 @@ class Woolentor_Wb_Product_Categories_Widget extends Widget_Base {
126
  ]
127
  );
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  $this->add_responsive_control(
130
  'categories_margin',
131
  [
@@ -149,7 +168,7 @@ class Woolentor_Wb_Product_Categories_Widget extends Widget_Base {
149
  global $product;
150
  $product = wc_get_product();
151
 
152
- if( Plugin::instance()->editor->is_edit_mode() ){
153
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
154
  } else{
155
  if ( empty( $product ) ) { return; }
126
  ]
127
  );
128
 
129
+ $this->add_control(
130
+ 'category_spacing',
131
+ [
132
+ 'label' => esc_html__( 'Spacing', 'woolentor' ),
133
+ 'type' => \Elementor\Controls_Manager::SLIDER,
134
+ 'size_units' => [ 'px' ],
135
+ 'range' => [
136
+ 'px' => [
137
+ 'min' => 0,
138
+ 'max' => 100,
139
+ 'step' => 5,
140
+ ],
141
+ ],
142
+ 'selectors' => [
143
+ '.woocommerce {{WRAPPER}} .woolentor_product_categories_info .posted_in a' => 'margin-left: {{SIZE}}{{UNIT}};',
144
+ ],
145
+ ]
146
+ );
147
+
148
  $this->add_responsive_control(
149
  'categories_margin',
150
  [
168
  global $product;
169
  $product = wc_get_product();
170
 
171
+ if( woolentor_is_preview_mode() ){
172
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
173
  } else{
174
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_data_tab.php CHANGED
@@ -275,7 +275,7 @@ class Woolentor_Wb_Product_Data_Tab_Widget extends Widget_Base {
275
 
276
  $settings = $this->get_settings_for_display();
277
 
278
- if ( Plugin::instance()->editor->is_edit_mode() ) {
279
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
280
  }else{
281
  global $product;
275
 
276
  $settings = $this->get_settings_for_display();
277
 
278
+ if( woolentor_is_preview_mode() ){
279
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
280
  }else{
281
  global $product;
includes/addons/wb_product_description.php CHANGED
@@ -102,16 +102,13 @@ class Woolentor_Wb_Product_Description_Widget extends Widget_Base {
102
  protected function render( $instance = [] ) {
103
  global $product, $post;
104
  $product = wc_get_product();
105
- if ( Plugin::instance()->editor->is_edit_mode() ) {
106
  echo '<div class="woocommerce_product_description">'.\WooLentor_Default_Data::instance()->default( $this->get_name() ).'</div>';
107
  }else{
108
  if ( empty( $product ) ) { return; }
109
  echo '<div class="woocommerce_product_description">';
110
  the_content();
111
  echo '</div>';
112
- //echo '<div class="woocommerce_product_description">'.$post->post_content.'</div>';
113
- //echo '<div class="woocommerce_product_description">'.$product->get_description().'</div>';
114
-
115
  }
116
  }
117
 
102
  protected function render( $instance = [] ) {
103
  global $product, $post;
104
  $product = wc_get_product();
105
+ if( woolentor_is_preview_mode() ){
106
  echo '<div class="woocommerce_product_description">'.\WooLentor_Default_Data::instance()->default( $this->get_name() ).'</div>';
107
  }else{
108
  if ( empty( $product ) ) { return; }
109
  echo '<div class="woocommerce_product_description">';
110
  the_content();
111
  echo '</div>';
 
 
 
112
  }
113
  }
114
 
includes/addons/wb_product_image.php CHANGED
@@ -136,7 +136,7 @@ class Woolentor_Wb_Product_Image_Widget extends Widget_Base {
136
  global $product;
137
  $product = wc_get_product();
138
 
139
- if( Plugin::instance()->editor->is_edit_mode() ){
140
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
141
  } else{
142
  if ( empty( $product ) ) { return; }
136
  global $product;
137
  $product = wc_get_product();
138
 
139
+ if( woolentor_is_preview_mode() ){
140
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
141
  } else{
142
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_meta.php CHANGED
@@ -109,7 +109,7 @@ class Woolentor_Wb_Product_Meta_Widget extends Widget_Base {
109
  global $product;
110
  $product = wc_get_product();
111
 
112
- if( Plugin::instance()->editor->is_edit_mode() ){
113
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
114
  } else{
115
  if ( empty( $product ) ) { return; }
109
  global $product;
110
  $product = wc_get_product();
111
 
112
+ if( woolentor_is_preview_mode() ){
113
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
114
  } else{
115
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_price.php CHANGED
@@ -118,7 +118,7 @@ class Woolentor_Wb_Product_Price_Widget extends Widget_Base {
118
  global $product;
119
  $product = wc_get_product();
120
 
121
- if( Plugin::instance()->editor->is_edit_mode() ){
122
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
123
  }else{
124
  if ( empty( $product ) ) { return; }
118
  global $product;
119
  $product = wc_get_product();
120
 
121
+ if( woolentor_is_preview_mode() ){
122
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
123
  }else{
124
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_qr_code.php CHANGED
@@ -115,7 +115,7 @@ class Woolentor_Wb_Product_Qr_Code_Widget extends Widget_Base {
115
  $settings = $this->get_settings_for_display();
116
  $this->add_render_attribute( 'area_attr', 'class', 'woolentor-qrcode' );
117
 
118
- if( Plugin::instance()->editor->is_edit_mode() ){
119
  $product_id = woolentor_get_last_product_id();
120
  } else{
121
  $product_id = get_the_ID();
115
  $settings = $this->get_settings_for_display();
116
  $this->add_render_attribute( 'area_attr', 'class', 'woolentor-qrcode' );
117
 
118
+ if( woolentor_is_preview_mode() ){
119
  $product_id = woolentor_get_last_product_id();
120
  } else{
121
  $product_id = get_the_ID();
includes/addons/wb_product_rating.php CHANGED
@@ -101,7 +101,7 @@ class Woolentor_Wb_Product_Rating_Widget extends Widget_Base {
101
  global $product;
102
  $product = wc_get_product();
103
 
104
- if( Plugin::instance()->editor->is_edit_mode() ){
105
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
106
  } else{
107
  if ( empty( $product ) ) { return; }
101
  global $product;
102
  $product = wc_get_product();
103
 
104
+ if( woolentor_is_preview_mode() ){
105
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
106
  } else{
107
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_related.php CHANGED
@@ -197,7 +197,7 @@ class Woolentor_Wb_Product_Related_Widget extends Widget_Base {
197
  global $product;
198
  $product = wc_get_product();
199
 
200
- if( Plugin::instance()->editor->is_edit_mode() ){
201
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
202
  } else{
203
  if ( ! $product ) { return; }
197
  global $product;
198
  $product = wc_get_product();
199
 
200
+ if( woolentor_is_preview_mode() ){
201
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
202
  } else{
203
  if ( ! $product ) { return; }
includes/addons/wb_product_reviews.php CHANGED
@@ -65,7 +65,7 @@ class Woolentor_Wb_Product_Reviews_Widget extends Widget_Base {
65
  global $product;
66
  $product = wc_get_product();
67
 
68
- if( Plugin::instance()->editor->is_edit_mode() ){
69
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
70
  } else{
71
  if ( empty( $product ) ) { return; }
65
  global $product;
66
  $product = wc_get_product();
67
 
68
+ if( woolentor_is_preview_mode() ){
69
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
70
  } else{
71
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_short_description.php CHANGED
@@ -105,7 +105,7 @@ class Woolentor_Wb_Product_Short_Description_Widget extends Widget_Base {
105
  protected function render( $instance = [] ) {
106
  global $product;
107
  $product = wc_get_product();
108
- if ( Plugin::instance()->editor->is_edit_mode() ) {
109
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
110
  }else{
111
  if ( empty( $product ) ) {
105
  protected function render( $instance = [] ) {
106
  global $product;
107
  $product = wc_get_product();
108
+ if( woolentor_is_preview_mode() ){
109
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
110
  }else{
111
  if ( empty( $product ) ) {
includes/addons/wb_product_sku.php CHANGED
@@ -114,6 +114,25 @@ class Woolentor_Wb_Product_Sku_Widget extends Widget_Base {
114
  ]
115
  );
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  $this->add_responsive_control(
118
  'sku_margin',
119
  [
@@ -137,7 +156,7 @@ class Woolentor_Wb_Product_Sku_Widget extends Widget_Base {
137
  global $product;
138
  $product = wc_get_product();
139
 
140
- if( Plugin::instance()->editor->is_edit_mode() ){
141
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
142
  } else{
143
  if ( empty( $product ) ) { return; }
114
  ]
115
  );
116
 
117
+ $this->add_control(
118
+ 'sku_spacing',
119
+ [
120
+ 'label' => esc_html__( 'Spacing', 'woolentor' ),
121
+ 'type' => \Elementor\Controls_Manager::SLIDER,
122
+ 'size_units' => [ 'px' ],
123
+ 'range' => [
124
+ 'px' => [
125
+ 'min' => 0,
126
+ 'max' => 100,
127
+ 'step' => 5,
128
+ ],
129
+ ],
130
+ 'selectors' => [
131
+ '.woocommerce {{WRAPPER}} .woolentor_product_sku_info .sku' => 'margin-left: {{SIZE}}{{UNIT}};',
132
+ ],
133
+ ]
134
+ );
135
+
136
  $this->add_responsive_control(
137
  'sku_margin',
138
  [
156
  global $product;
157
  $product = wc_get_product();
158
 
159
+ if( woolentor_is_preview_mode() ){
160
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
161
  } else{
162
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_stock.php CHANGED
@@ -88,7 +88,7 @@ class Woolentor_Wb_Product_Stock_Widget extends Widget_Base {
88
  global $product;
89
  $product = wc_get_product();
90
 
91
- if( Plugin::instance()->editor->is_edit_mode() ){
92
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
93
  } else{
94
  if ( empty( $product ) ) { return; }
88
  global $product;
89
  $product = wc_get_product();
90
 
91
+ if( woolentor_is_preview_mode() ){
92
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
93
  } else{
94
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_tags.php CHANGED
@@ -126,6 +126,25 @@ class Woolentor_Wb_Product_Tags_Widget extends Widget_Base {
126
  ]
127
  );
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  $this->add_responsive_control(
130
  'tags_margin',
131
  [
@@ -149,7 +168,7 @@ class Woolentor_Wb_Product_Tags_Widget extends Widget_Base {
149
  global $product;
150
  $product = wc_get_product();
151
 
152
- if( Plugin::instance()->editor->is_edit_mode() ){
153
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
154
  } else{
155
  if ( empty( $product ) ) { return; }
126
  ]
127
  );
128
 
129
+ $this->add_control(
130
+ 'tag_spacing',
131
+ [
132
+ 'label' => esc_html__( 'Spacing', 'woolentor' ),
133
+ 'type' => \Elementor\Controls_Manager::SLIDER,
134
+ 'size_units' => [ 'px' ],
135
+ 'range' => [
136
+ 'px' => [
137
+ 'min' => 0,
138
+ 'max' => 100,
139
+ 'step' => 5,
140
+ ],
141
+ ],
142
+ 'selectors' => [
143
+ '.woocommerce {{WRAPPER}} .woolentor_product_tags_info .tagged_as a:first-child' => 'margin-left: {{SIZE}}{{UNIT}};',
144
+ ],
145
+ ]
146
+ );
147
+
148
  $this->add_responsive_control(
149
  'tags_margin',
150
  [
168
  global $product;
169
  $product = wc_get_product();
170
 
171
+ if( woolentor_is_preview_mode() ){
172
  echo \WooLentor_Default_Data::instance()->default( $this->get_name() );
173
  } else{
174
  if ( empty( $product ) ) { return; }
includes/addons/wb_product_title.php CHANGED
@@ -130,7 +130,7 @@ class Woolentor_Wb_Product_Title_Widget extends Widget_Base {
130
 
131
  $title_html_tag = woolentor_validate_html_tag( $settings['product_title_html_tag'] );
132
 
133
- if( Plugin::instance()->editor->is_edit_mode() ){
134
  $title = get_the_title( woolentor_get_last_product_id() );
135
  echo sprintf( "<%s class='product_title entry-title'>%s</%s>", $title_html_tag, $title, $title_html_tag );
136
  }else{
130
 
131
  $title_html_tag = woolentor_validate_html_tag( $settings['product_title_html_tag'] );
132
 
133
+ if( woolentor_is_preview_mode() ){
134
  $title = get_the_title( woolentor_get_last_product_id() );
135
  echo sprintf( "<%s class='product_title entry-title'>%s</%s>", $title_html_tag, $title, $title_html_tag );
136
  }else{
includes/addons/wb_product_upsell.php CHANGED
@@ -174,7 +174,7 @@ class Woolentor_Wb_Product_Upsell_Widget extends Widget_Base {
174
  $order = $settings['order'];
175
  }
176
 
177
- if( Plugin::instance()->editor->is_edit_mode() ){
178
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
179
  }else{
180
  woocommerce_upsell_display( $product_per_page, $columns, $orderby, $order );
174
  $order = $settings['order'];
175
  }
176
 
177
+ if( woolentor_is_preview_mode() ){
178
  echo \WooLentor_Default_Data::instance()->default( $this->get_name(), $settings );
179
  }else{
180
  woocommerce_upsell_display( $product_per_page, $columns, $orderby, $order );
includes/addons/wl_archive_title.php CHANGED
@@ -220,7 +220,7 @@ class Woolentor_Wl_Archive_Title_Widget extends Widget_Base {
220
  $data = woolentor_get_archive_data();
221
  $title_tag = woolentor_validate_html_tag( $settings['title_html_tag'] );
222
 
223
- if( Plugin::instance()->editor->is_edit_mode() ){
224
  $data['title'] = esc_html__('Archive Title','woolentor');
225
  $data['image_url'] = '';
226
  $data['desc'] = esc_html__('Archive Description','woolentor');
220
  $data = woolentor_get_archive_data();
221
  $title_tag = woolentor_validate_html_tag( $settings['title_html_tag'] );
222
 
223
+ if( woolentor_is_preview_mode() ){
224
  $data['title'] = esc_html__('Archive Title','woolentor');
225
  $data['image_url'] = '';
226
  $data['desc'] = esc_html__('Archive Description','woolentor');
includes/addons/wl_product_video_gallery.php CHANGED
@@ -209,7 +209,7 @@ class Woolentor_Wl_Product_Video_Gallery_Widget extends Widget_Base {
209
  $this->add_render_attribute( 'wl_product_thumbnails_attr', 'class', 'wlpro-product-videothumbnails thumbnails-tab-position-'.$settings['tab_thumbnails_position'] );
210
 
211
  global $post;
212
- if( Plugin::instance()->editor->is_edit_mode() ){
213
  $product = wc_get_product( woolentor_get_last_product_id() );
214
  } else{
215
  global $product;
@@ -255,7 +255,7 @@ class Woolentor_Wl_Product_Video_Gallery_Widget extends Widget_Base {
255
 
256
  <div class="woolentor-product-gallery-video">
257
  <?php
258
- if( Plugin::instance()->editor->is_edit_mode() ){
259
  if ( $product->is_on_sale() ) {
260
  echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woolentor-pro' ) . '</span>', $post, $product );
261
  }
209
  $this->add_render_attribute( 'wl_product_thumbnails_attr', 'class', 'wlpro-product-videothumbnails thumbnails-tab-position-'.$settings['tab_thumbnails_position'] );
210
 
211
  global $post;
212
+ if( woolentor_is_preview_mode() ){
213
  $product = wc_get_product( woolentor_get_last_product_id() );
214
  } else{
215
  global $product;
255
 
256
  <div class="woolentor-product-gallery-video">
257
  <?php
258
+ if( woolentor_is_preview_mode() ){
259
  if ( $product->is_on_sale() ) {
260
  echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woolentor-pro' ) . '</span>', $post, $product );
261
  }
includes/admin/admin-init.php CHANGED
@@ -149,14 +149,9 @@ class Woolentor_Admin_Init{
149
  TRUE
150
  );
151
 
152
- wp_enqueue_script(
153
- 'woolentor-jquery-interdependencies',
154
- WOOLENTOR_ADDONS_PL_URL . 'includes/admin/assets/lib/js/jquery-interdependencies.min.js',
155
- array( 'jquery' ),
156
- WOOLENTOR_VERSION,
157
- TRUE
158
- );
159
 
 
 
160
  wp_enqueue_script('woolentor-sweetalert');
161
  wp_enqueue_script('woolentor-admin-main');
162
 
@@ -167,7 +162,6 @@ class Woolentor_Admin_Init{
167
  'iconset' => Woolentor_Icon_List::icon_sets(),
168
  ]
169
  );
170
-
171
  }
172
  }
173
 
@@ -194,6 +188,7 @@ class Woolentor_Admin_Init{
194
  <?php self::load_template('navs'); ?>
195
  <div class="woolentor-admin-main-body">
196
  <?php self::load_template('welcome'); ?>
 
197
  <?php self::load_template('settings'); ?>
198
  <?php self::load_template('element'); ?>
199
  <?php self::load_template('style'); ?>
149
  TRUE
150
  );
151
 
 
 
 
 
 
 
 
152
 
153
+ wp_enqueue_script('woolentor-jquery-interdependencies');
154
+ wp_enqueue_script('woolentor-condition');
155
  wp_enqueue_script('woolentor-sweetalert');
156
  wp_enqueue_script('woolentor-admin-main');
157
 
162
  'iconset' => Woolentor_Icon_List::icon_sets(),
163
  ]
164
  );
 
165
  }
166
  }
167
 
188
  <?php self::load_template('navs'); ?>
189
  <div class="woolentor-admin-main-body">
190
  <?php self::load_template('welcome'); ?>
191
+ <?php self::load_template('gutenberg'); ?>
192
  <?php self::load_template('settings'); ?>
193
  <?php self::load_template('element'); ?>
194
  <?php self::load_template('style'); ?>
includes/admin/assets/css/template_edit_manager.css CHANGED
@@ -394,54 +394,46 @@ body.post-type-woolentor-template.open-editor{
394
  .woolenor-help-tip {
395
  color: #666;
396
  display: inline-block;
397
- height: 16px;
398
- line-height: 16px;
399
  position: relative;
400
- width: 16px;
401
- font-size: 20px;
402
- top: 1px;
403
  }
404
- .woolenor-help-tip::after {
405
- font-family: Dashicons;
406
- font-weight: 400;
407
- text-transform: none;
408
- line-height: 1;
409
- -webkit-font-smoothing: antialiased;
410
- text-indent: 0px;
411
  position: absolute;
412
- top: 0px;
413
- left: 0px;
414
- width: 100%;
415
- height: 100%;
416
- text-align: center;
417
- content: "";
418
- cursor: help;
419
- font-variant: normal;
420
- margin: 0px;
421
- }
422
- span.woolenor-help-text {
423
  opacity: 0;
424
- visibility: hidden;
425
- position: absolute;
426
- top: -53px;
427
- line-height: 14px;
428
- background: #333;
429
- color: #fff;
430
  padding: 5px 5px;
431
- font-size: 11px;
 
 
432
  font-weight: 400;
433
  text-align: center;
 
 
434
  border-radius: 3px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  left: 50%;
436
- transition: 0.4s;
437
- width: 200px;
438
- margin-left: -100px;
439
  }
440
  .woolenor-help-tip:hover span.woolenor-help-text{
441
  opacity: 1;
442
  visibility: visible;
443
  }
444
-
445
  .woolentor-template-edit-body {
446
  padding: 15px 50px;
447
  }
@@ -831,6 +823,10 @@ label.woolentor-template-edit-demo-plan.woolentor-tmp-pro.slick-slide .woolentor
831
  background-color: #19934e !important;
832
  }
833
 
 
 
 
 
834
  /* Loader */
835
  .woolentor-template-loading{
836
  position: relative;
@@ -858,6 +854,7 @@ label.woolentor-template-edit-demo-plan.woolentor-tmp-pro.slick-slide .woolentor
858
  left: 50%;
859
  margin-top: -25px;
860
  margin-left: -25px;
 
861
  }
862
  @keyframes woolentorloaderspin {
863
  0% { transform: rotate(0deg); }
394
  .woolenor-help-tip {
395
  color: #666;
396
  display: inline-block;
 
 
397
  position: relative;
 
 
 
398
  }
399
+ .woolenor-help-text {
 
 
 
 
 
 
400
  position: absolute;
401
+ max-width: 200px;
402
+ width: -webkit-max-content;
403
+ width: -moz-max-content;
404
+ width: max-content;
 
 
 
 
 
 
 
405
  opacity: 0;
 
 
 
 
 
 
406
  padding: 5px 5px;
407
+ background-color: #333;
408
+ font-size: 12px;
409
+ line-height: 14px;
410
  font-weight: 400;
411
  text-align: center;
412
+ z-index: 1;
413
+ transition: all 0.15s ease-in-out;
414
  border-radius: 3px;
415
+ color: #fff;
416
+ pointer-events: none;
417
+ bottom: calc(100% + 10px);
418
+ left: 50%;
419
+ transform: translate(-50%, 5px);
420
+ }
421
+ .woolenor-help-text::before {
422
+ content: "";
423
+ position: absolute;
424
+ width: 0;
425
+ height: 0;
426
+ border: 0.375rem solid transparent;
427
+ border-top-color: #333;
428
+ top: 100%;
429
+ transform: translate(-50%, 0);
430
  left: 50%;
 
 
 
431
  }
432
  .woolenor-help-tip:hover span.woolenor-help-text{
433
  opacity: 1;
434
  visibility: visible;
435
  }
436
+
437
  .woolentor-template-edit-body {
438
  padding: 15px 50px;
439
  }
823
  background-color: #19934e !important;
824
  }
825
 
826
+ .woolentor-template-button-item[class*="woolentor-editor-"]:not(.button-show){
827
+ display: none !important;
828
+ }
829
+
830
  /* Loader */
831
  .woolentor-template-loading{
832
  position: relative;
854
  left: 50%;
855
  margin-top: -25px;
856
  margin-left: -25px;
857
+ z-index: 9;
858
  }
859
  @keyframes woolentorloaderspin {
860
  0% { transform: rotate(0deg); }
includes/admin/assets/css/woolentor-admin.css CHANGED
@@ -127,6 +127,89 @@
127
  transform: translateX(-50%) rotate(45deg);
128
  background-color: #333333;
129
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
 
131
  /* Button */
132
  .woolentor-admin-btn {
@@ -253,7 +336,7 @@
253
  .woolentor-admin-number {
254
  position: relative;
255
  display: flex;
256
- width: 65px;
257
  }
258
  .woolentor-admin-number input[type=number] {
259
  display: flex;
@@ -705,6 +788,10 @@
705
  transition: all 0.15s ease 0s;
706
  opacity: 0.75;
707
  }
 
 
 
 
708
  .woolentor-admin-main-nav-btn.wlactive, .woolentor-admin-main-nav-btn:hover {
709
  color: #FFFFFF;
710
  background-color: #007EFF;
@@ -721,6 +808,57 @@
721
  .woolentor-admin-main-nav-btn:focus {
722
  color: #007EFF;
723
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
724
 
725
  .woolentor-admin-wrapper {
726
  display: flex;
@@ -755,7 +893,7 @@
755
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.1);
756
  }
757
 
758
- .woolentor-admin-main-tab-pane:not(.wlactive) {
759
  display: none;
760
  }
761
  .woolentor-admin-main-tab-pane-inner {
@@ -892,7 +1030,7 @@
892
  .woolentor-admin-switch-block-content {
893
  display: flex;
894
  flex-wrap: wrap;
895
- max-width: calc(100% - 90px);
896
  margin-bottom: -5px;
897
  }
898
  .woolentor-admin-switch-block-title {
@@ -940,7 +1078,7 @@
940
  display: flex;
941
  align-items: center;
942
  justify-content: flex-end;
943
- width: 90px;
944
  }
945
  .woolentor-admin-switch-block-setting {
946
  display: flex;
@@ -1407,7 +1545,7 @@
1407
  padding-left: 0;
1408
  }
1409
  }
1410
- #woolentor_elements_tabs .woolentor-admin-header{
1411
  border-bottom: 1px solid #E7E7E7;
1412
  margin-bottom: 0;
1413
  padding-bottom: 10px;
@@ -1807,7 +1945,6 @@
1807
  color: #FFFFFF;
1808
  background-color: #007EFF;
1809
  }
1810
-
1811
  /* Extension Tabs */
1812
  .extension-admin-tab-area.wp-filter {
1813
  padding: 0;
@@ -1995,4 +2132,9 @@
1995
  }
1996
  .woolentor-condition-on{
1997
  display: none !important;
 
 
 
 
 
1998
  }
127
  transform: translateX(-50%) rotate(45deg);
128
  background-color: #333333;
129
  }
130
+
131
+ /* Help Tip */
132
+ .woolenor-help-tip {
133
+ color: #666;
134
+ display: inline-block;
135
+ position: relative;
136
+ }
137
+ .woolenor-help-text {
138
+ position: absolute;
139
+ max-width: 200px;
140
+ width: -webkit-max-content;
141
+ width: -moz-max-content;
142
+ width: max-content;
143
+ opacity: 0;
144
+ padding: 10px 10px;
145
+ background-color: #333;
146
+ font-size: 11px;
147
+ line-height: 16px;
148
+ font-weight: 400;
149
+ text-align: center;
150
+ z-index: 1;
151
+ transition: all 0.15s ease-in-out;
152
+ border-radius: 3px;
153
+ color: #fff;
154
+ pointer-events: none;
155
+ }
156
+ .woolenor-help-text::before {
157
+ content: "";
158
+ position: absolute;
159
+ width: 0;
160
+ height: 0;
161
+ border: 0.375rem solid transparent;
162
+ border-top-color: #333;
163
+ }
164
+ .woolenor-help-tip:hover span.woolenor-help-text{
165
+ opacity: 1;
166
+ visibility: visible;
167
+ }
168
+ .woolenor-help-tip .woolentor-helptip-top, .woolenor-help-tip .woolentor-helptip-bottom {
169
+ left: 50%;
170
+ transform: translate(-50%, 5px);
171
+ }
172
+ .woolenor-help-tip .woolentor-helptip-top {
173
+ bottom: calc(100% + 10px);
174
+ }
175
+ .woolenor-help-tip .woolentor-helptip-bottom {
176
+ top: 100%;
177
+ }
178
+ .woolenor-help-tip .woolentor-helptip-left, .woolenor-help-tip .woolentor-helptip-right {
179
+ top: 50%;
180
+ }
181
+ .woolenor-help-tip .woolentor-helptip-left {
182
+ right: 100%;
183
+ transform: translate(-5px, -50%);
184
+ }
185
+ .woolenor-help-tip .woolentor-helptip-right {
186
+ left: 100%;
187
+ transform: translate(5px, -50%);
188
+ }
189
+
190
+ /* Arrow Position */
191
+ .woolenor-help-tip .woolentor-helptip-top:before, .woolenor-help-tip .woolentor-helptip-bottom:before {
192
+ left: 50%;
193
+ }
194
+ .woolenor-help-tip .woolentor-helptip-top:before {
195
+ top: 100%;
196
+ transform: translate(-50%, 0);
197
+ }
198
+ .woolenor-help-tip .woolentor-helptip-bottom:before {
199
+ bottom: 100%;
200
+ transform: translate(-50%, 0) rotate(180deg);
201
+ }
202
+ .woolenor-help-tip .woolentor-helptip-left:before, .woolenor-help-tip .woolentor-helptip-right:before {
203
+ top: 50%;
204
+ }
205
+ .woolenor-help-tip .woolentor-helptip-left:before {
206
+ left: 100%;
207
+ transform: translate(0, -50%) rotate(-90deg);
208
+ }
209
+ .woolenor-help-tip .woolentor-helptip-right:before {
210
+ right: 100%;
211
+ transform: translate(0, -50%) rotate(90deg);
212
+ }
213
 
214
  /* Button */
215
  .woolentor-admin-btn {
336
  .woolentor-admin-number {
337
  position: relative;
338
  display: flex;
339
+ width: 85px;
340
  }
341
  .woolentor-admin-number input[type=number] {
342
  display: flex;
788
  transition: all 0.15s ease 0s;
789
  opacity: 0.75;
790
  }
791
+ .woolentor-admin-main-nav-btn i.dashicons{
792
+ font-size: 18px;
793
+ margin-right: 5px;
794
+ }
795
  .woolentor-admin-main-nav-btn.wlactive, .woolentor-admin-main-nav-btn:hover {
796
  color: #FFFFFF;
797
  background-color: #007EFF;
808
  .woolentor-admin-main-nav-btn:focus {
809
  color: #007EFF;
810
  }
811
+
812
+ /* Nested Tab */
813
+ #woolentor_gutenberg_tabs .woolentor-admin-main-tab-pane-inner {
814
+ padding-top: 10px;
815
+ }
816
+ .woolentor-nested-tabs-area {
817
+ margin-bottom: 30px;
818
+ border-bottom: 2px solid #EAEAEA;
819
+ }
820
+ ul.woolentor-nested-tabs {
821
+ margin: 0;
822
+ list-style: none;
823
+ display: block;
824
+ }
825
+ ul.woolentor-nested-tabs li {
826
+ display: inline-block;
827
+ margin: 0 5px;
828
+ }
829
+ ul.woolentor-nested-tabs li:first-child{
830
+ margin: 0;
831
+ }
832
+ ul.woolentor-nested-tabs li:last-child {
833
+ margin-right: 0;
834
+ }
835
+ ul.woolentor-nested-tabs li a {
836
+ padding: 15px 0;
837
+ margin-right: 20px;
838
+ display: block;
839
+ text-decoration: none;
840
+ color: #6D7175;
841
+ position: relative;
842
+ font-size: 14px;
843
+ font-weight: 400;
844
+ line-height: 1;
845
+ }
846
+ ul.woolentor-nested-tabs li a:after {
847
+ content: "";
848
+ background: transparent;
849
+ width: 100%;
850
+ height: 3px;
851
+ position: absolute;
852
+ bottom: -2px;
853
+ left: 0;
854
+ }
855
+ ul.woolentor-nested-tabs li a.wlactive:after,ul.woolentor-nested-tabs li a:hover:after{
856
+ background: #007EFF;
857
+ }
858
+ ul.woolentor-nested-tabs li a.wlactive{
859
+ color: #000000;
860
+ font-weight: 700;
861
+ }
862
 
863
  .woolentor-admin-wrapper {
864
  display: flex;
893
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.1);
894
  }
895
 
896
+ .woolentor-admin-main-tab-pane:not(.wlactive),.woolentor-admin-nested-tab-pane:not(.wlactive) {
897
  display: none;
898
  }
899
  .woolentor-admin-main-tab-pane-inner {
1030
  .woolentor-admin-switch-block-content {
1031
  display: flex;
1032
  flex-wrap: wrap;
1033
+ max-width: calc(100% - 85px);
1034
  margin-bottom: -5px;
1035
  }
1036
  .woolentor-admin-switch-block-title {
1078
  display: flex;
1079
  align-items: center;
1080
  justify-content: flex-end;
1081
+ width: 85px;
1082
  }
1083
  .woolentor-admin-switch-block-setting {
1084
  display: flex;
1545
  padding-left: 0;
1546
  }
1547
  }
1548
+ #woolentor_elements_tabs .woolentor-admin-header, .woolentor-admin-header-two{
1549
  border-bottom: 1px solid #E7E7E7;
1550
  margin-bottom: 0;
1551
  padding-bottom: 10px;
1945
  color: #FFFFFF;
1946
  background-color: #007EFF;
1947
  }
 
1948
  /* Extension Tabs */
1949
  .extension-admin-tab-area.wp-filter {
1950
  padding: 0;
2132
  }
2133
  .woolentor-condition-on{
2134
  display: none !important;
2135
+ }
2136
+
2137
+ .woolentor-adv-pro-notice > *,.woolentor-adv-pro-opacity{
2138
+ opacity: 0.5;
2139
+ pointer-events: none;
2140
  }
includes/admin/assets/images/helping-screenshot.png CHANGED
Binary file
includes/admin/assets/images/icons/menu-bar_32x32.png ADDED
Binary file
includes/admin/assets/js/template_edit_manager.js CHANGED
@@ -5,17 +5,38 @@
5
 
6
  instance: [],
7
  templateId: 0,
 
 
 
 
 
8
 
9
  init: function() {
10
  this.renderPopup();
11
  this.slickSlider();
12
 
13
  $('#woolentor-template-type').on('change', function() {
14
- woolentorTemplateAdmin.showSampleDemoTypeWise( this.value );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  });
16
 
17
  $( 'body.post-type-woolentor-template #wpcontent' )
18
- .on( 'click.woolentorTemplateAdmin', '.page-title-action, .row-title, .row-actions [class*="edit"] a', this.openPopup );
19
 
20
  $( document )
21
  .on( 'click.woolentorTemplateAdmin', '.woolentor-body-overlay,.woolentor-template-edit-cross', this.closePopup )
@@ -34,7 +55,9 @@
34
  content = null;
35
 
36
  content = popupTmp( {
 
37
  templatetype: WLTMCPT.templatetype,
 
38
  heading: WLTMCPT.labels,
39
  templatelist: WLTMCPT.templatelist,
40
  } );
@@ -61,7 +84,7 @@
61
  },
62
 
63
  // Show Demo template
64
- showSampleDemoTypeWise: function( tmpType ){
65
 
66
  // Sample design showing button hide/show
67
  if( $('.woolentor-template-edit-demo-design-show-wrap').find('.woolentor-template-edit-demo-design-slider.demo-'+tmpType).length == 0 ){
@@ -70,11 +93,22 @@
70
  $('.woolentor-template-edit-set-design').show();
71
  }
72
 
73
- $('.woolentor-template-edit-demo-design-slider').removeClass('demo-show');
74
- $('.woolentor-template-edit-demo-design-slider.demo-'+tmpType).addClass('demo-show').slick('refresh');
 
 
 
 
 
75
 
76
  },
77
 
 
 
 
 
 
 
78
  // Active Save Button
79
  activeSaveButton: function( event ){
80
  $(".woolentor-tmp-save").removeClass("disabled");
@@ -120,6 +154,9 @@
120
  tmpId = rowId.replace( 'post-', '' );
121
  editLink = 'post.php?post='+tmpId+'&action=edit';
122
  elementorEditlink = 'post.php?post='+tmpId+'&action=elementor';
 
 
 
123
  }
124
  $('.woolentor-tmp-save').attr( 'data-tmpid', tmpId );
125
  $('.woolentor-tmp-gutenberg').attr( { 'data-link': editLink, 'data-tmpid': tmpId } );
@@ -153,11 +190,17 @@
153
  $('#woolentor-template-default').prop('checked', false);
154
  }
155
 
 
 
 
 
 
156
  // Enable edit button
157
- woolentorTemplateAdmin.enableDisableEditorButton('yes');
 
158
 
159
  // Show Demo Design
160
- woolentorTemplateAdmin.showSampleDemoTypeWise( response.data.tmpType );
161
 
162
  },
163
 
@@ -186,6 +229,9 @@
186
  // Show Demo Design
187
  woolentorTemplateAdmin.showSampleDemoTypeWise('single');
188
 
 
 
 
189
  }
190
 
191
  $('body.post-type-woolentor-template').addClass('open-editor');
@@ -210,10 +256,11 @@
210
  title = $('#woolentor-template-title').val(),
211
  setdefault = $('#woolentor-template-default').is(":checked") ? 'yes' : 'no',
212
  tmpType = $('#woolentor-template-type').val(),
 
213
  sampleDemoId = '',
214
  sampleDemoBuilder = '';
215
 
216
- if( $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]').is(":checked") ){
217
  sampleDemoId = $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]:checked').val();
218
  sampleDemoBuilder = $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]:checked').data('builder');
219
  }
@@ -226,6 +273,7 @@
226
  'tmpId' : tmpId,
227
  'title' : title,
228
  'tmpType' : tmpType,
 
229
  'setDefault' : setdefault,
230
  'sampleTmpID' : sampleDemoId,
231
  'sampleTmpBuilder' : sampleDemoBuilder,
5
 
6
  instance: [],
7
  templateId: 0,
8
+ templateType:[
9
+ 'shop',
10
+ 'archive',
11
+ 'single',
12
+ ],
13
 
14
  init: function() {
15
  this.renderPopup();
16
  this.slickSlider();
17
 
18
  $('#woolentor-template-type').on('change', function() {
19
+ var selectedEditor = $('#woolentor-template-editor').val() ? $('#woolentor-template-editor').val() : 'gutenberg';
20
+ if( woolentorTemplateAdmin.templateType.indexOf(this.value) == -1 ){
21
+ $('#woolentor-template-editor').find('option[value="gutenberg"]').attr('disabled',true);
22
+ $('#woolentor-template-editor').find('option[value="elementor"]').prop("selected",true);
23
+ selectedEditor = 'elementor';
24
+ woolentorTemplateAdmin.manageEditButton( selectedEditor );
25
+ }else{
26
+ woolentorTemplateAdmin.manageEditButton( selectedEditor );
27
+ $('#woolentor-template-editor').find('option[value="gutenberg"]').removeAttr('disabled');
28
+ }
29
+ woolentorTemplateAdmin.showSampleDemoTypeWise( this.value, selectedEditor );
30
+ });
31
+
32
+ $('#woolentor-template-editor').on('change', function() {
33
+ var selectedType = $('#woolentor-template-type').val();
34
+ woolentorTemplateAdmin.manageEditButton( this.value );
35
+ woolentorTemplateAdmin.showSampleDemoTypeWise( selectedType, this.value );
36
  });
37
 
38
  $( 'body.post-type-woolentor-template #wpcontent' )
39
+ .on( 'click.woolentorTemplateAdmin', '.page-title-action, .row-title, .row-actions .edit > a', this.openPopup );
40
 
41
  $( document )
42
  .on( 'click.woolentorTemplateAdmin', '.woolentor-body-overlay,.woolentor-template-edit-cross', this.closePopup )
55
  content = null;
56
 
57
  content = popupTmp( {
58
+ haselementor: WLTMCPT.haselementor,
59
  templatetype: WLTMCPT.templatetype,
60
+ editor: WLTMCPT.editor,
61
  heading: WLTMCPT.labels,
62
  templatelist: WLTMCPT.templatelist,
63
  } );
84
  },
85
 
86
  // Show Demo template
87
+ showSampleDemoTypeWise: function( tmpType = 'single', tmpEditor = 'elementor' ){
88
 
89
  // Sample design showing button hide/show
90
  if( $('.woolentor-template-edit-demo-design-show-wrap').find('.woolentor-template-edit-demo-design-slider.demo-'+tmpType).length == 0 ){
93
  $('.woolentor-template-edit-set-design').show();
94
  }
95
 
96
+ if( tmpEditor === 'gutenberg'){
97
+ $('.woolentor-template-edit-set-design').hide();
98
+ $('.woolentor-template-edit-demo-design-slider.demo-'+tmpType).removeClass('demo-show').slick('refresh');
99
+ }else{
100
+ $('.woolentor-template-edit-demo-design-slider').removeClass('demo-show');
101
+ $('.woolentor-template-edit-demo-design-slider.demo-'+tmpType).addClass('demo-show').slick('refresh');
102
+ }
103
 
104
  },
105
 
106
+ // Manage Edit button based on Editor
107
+ manageEditButton : function ( editor ){
108
+ $('.woolentor-template-button-item[class*="woolentor-editor-"]').removeClass('button-show');
109
+ $('.woolentor-template-button-item.woolentor-editor-'+editor).addClass('button-show');
110
+ },
111
+
112
  // Active Save Button
113
  activeSaveButton: function( event ){
114
  $(".woolentor-tmp-save").removeClass("disabled");
154
  tmpId = rowId.replace( 'post-', '' );
155
  editLink = 'post.php?post='+tmpId+'&action=edit';
156
  elementorEditlink = 'post.php?post='+tmpId+'&action=elementor';
157
+ // Hide Editor Selector Field
158
+ $('.woolentor-template-editor-field').hide();
159
+ woolentorTemplateAdmin.enableDisableEditorButton();
160
  }
161
  $('.woolentor-tmp-save').attr( 'data-tmpid', tmpId );
162
  $('.woolentor-tmp-gutenberg').attr( { 'data-link': editLink, 'data-tmpid': tmpId } );
190
  $('#woolentor-template-default').prop('checked', false);
191
  }
192
 
193
+ let tmpBuilder = 'gutenberg';
194
+ if( WLTMCPT.haselementor === 'yes' ){
195
+ tmpBuilder = response.data.tmpEditor;
196
+ }
197
+
198
  // Enable edit button
199
+ woolentorTemplateAdmin.manageEditButton( tmpBuilder );
200
+ woolentorTemplateAdmin.enableDisableEditorButton( 'yes' );
201
 
202
  // Show Demo Design
203
+ woolentorTemplateAdmin.showSampleDemoTypeWise( response.data.tmpType, tmpBuilder );
204
 
205
  },
206
 
229
  // Show Demo Design
230
  woolentorTemplateAdmin.showSampleDemoTypeWise('single');
231
 
232
+ // Show Editor Selector Field
233
+ $('.woolentor-template-editor-field').show();
234
+
235
  }
236
 
237
  $('body.post-type-woolentor-template').addClass('open-editor');
256
  title = $('#woolentor-template-title').val(),
257
  setdefault = $('#woolentor-template-default').is(":checked") ? 'yes' : 'no',
258
  tmpType = $('#woolentor-template-type').val(),
259
+ tmpEditor = $('#woolentor-template-editor').val(),
260
  sampleDemoId = '',
261
  sampleDemoBuilder = '';
262
 
263
+ if( $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]:visible').is(":checked") ){
264
  sampleDemoId = $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]:checked').val();
265
  sampleDemoBuilder = $('.woolentor-template-edit-demo-plan input[name="woolentor-template-edit-demo-plan"]:checked').data('builder');
266
  }
273
  'tmpId' : tmpId,
274
  'title' : title,
275
  'tmpType' : tmpType,
276
+ 'tmpEditor' : tmpEditor,
277
  'setDefault' : setdefault,
278
  'sampleTmpID' : sampleDemoId,
279
  'sampleTmpBuilder' : sampleDemoBuilder,
includes/admin/assets/js/template_library_manager.js CHANGED
@@ -142,7 +142,8 @@
142
 
143
  let htwptPrintDataArray = Array.from(new Set(htwptProjectData.map(i => i.shareId))).map(j => htwptProjectData.find(a => a.shareId === j)),
144
  htwptPrintData = htwptPrintDataArray.slice(htwptProjectStartCount, htwptProjectEndCount),
145
- html = '';
 
146
  for (let i = 0; i < htwptPrintData.length; i++) {
147
  let {
148
  thumbnail,
@@ -153,6 +154,9 @@
153
  } = htwptPrintData[i],
154
  totalItem = htwptProjectData.filter(i => i.shareId == shareId).length,
155
  singleItem = totalItem == 1 ? 'htwpt-project-item-signle' : '';
 
 
 
156
  html += `<div class="${singleItem} col-xl-4 col-md-6 col-12">
157
  <div class="htwpt-project-item ${singleItem}" data-group="${shareId}">
158
  <div class="htwpt-project-thumb">
142
 
143
  let htwptPrintDataArray = Array.from(new Set(htwptProjectData.map(i => i.shareId))).map(j => htwptProjectData.find(a => a.shareId === j)),
144
  htwptPrintData = htwptPrintDataArray.slice(htwptProjectStartCount, htwptProjectEndCount),
145
+ html = '',
146
+ excludeCategory = ["No Category", "Email Customizer"];
147
  for (let i = 0; i < htwptPrintData.length; i++) {
148
  let {
149
  thumbnail,
154
  } = htwptPrintData[i],
155
  totalItem = htwptProjectData.filter(i => i.shareId == shareId).length,
156
  singleItem = totalItem == 1 ? 'htwpt-project-item-signle' : '';
157
+ if( excludeCategory.includes( shareId ) === true ){
158
+ continue;
159
+ }
160
  html += `<div class="${singleItem} col-xl-4 col-md-6 col-12">
161
  <div class="htwpt-project-item ${singleItem}" data-group="${shareId}">
162
  <div class="htwpt-project-thumb">
includes/admin/assets/js/woolentor-admin.js CHANGED
@@ -12,6 +12,12 @@
12
  });
13
  }
14
 
 
 
 
 
 
 
15
  // Navigation Tabs
16
  $('.woolentor-admin-main-nav').on('click', '.woolentor-admin-main-nav-btn', function(e) {
17
  e.preventDefault()
@@ -567,55 +573,11 @@
567
  woolentor_repeater_field();
568
 
569
  // Extension Tabs
570
- woolentor_admin_tabs( $(".woolentor-admin-tabs"), '.woolentor-admin-tab-pane' );
571
 
572
  // Field Dependency
573
  $(document).ready(function() {
574
  $('.woolentor-dashboard').children('.woolentor-admin-options').woolentor_conditions();
575
  });
576
-
577
- // Fields Conditions System
578
- $.fn.woolentor_conditions = function() {
579
- return this.each( function() {
580
-
581
- var $this = $(this),
582
- $fields = $this.children('[data-controller]');
583
-
584
- if( $fields.length ) {
585
-
586
- var condition_ruleset = $.woolentor_deps.createRuleset(),
587
- all_conditions = [];
588
-
589
- $fields.each( function() {
590
-
591
- var $field = $(this),
592
- controllers = $field.data('controller').split('|'),
593
- conditions = $field.data('condition').split('|'),
594
- values = $field.data('value').toString().split('|'),
595
- ruleset = condition_ruleset;
596
-
597
- $.each( controllers, function( index, depend_id ) {
598
-
599
- var value = values[index] || '',
600
- condition = conditions[index] || conditions[0];
601
-
602
- ruleset = ruleset.createRule('[data-depend-id="'+ depend_id +'"]', condition, value );
603
-
604
- ruleset.include( $field );
605
-
606
- all_conditions.push( depend_id );
607
-
608
- });
609
-
610
- });
611
-
612
- if ( all_conditions.length ) {
613
- $.woolentor_deps.enable($this, condition_ruleset, all_conditions);
614
- }
615
-
616
- }
617
-
618
- });
619
- };
620
 
621
  })(jQuery);
12
  });
13
  }
14
 
15
+ // Navigation tabs Nested tabs
16
+ woolentor_admin_tabs( $(".woolentor-nested-tabs"), '.woolentor-admin-nested-tab-pane' );
17
+
18
+ // Extension Tabs
19
+ woolentor_admin_tabs( $(".woolentor-admin-tabs"), '.woolentor-admin-tab-pane' );
20
+
21
  // Navigation Tabs
22
  $('.woolentor-admin-main-nav').on('click', '.woolentor-admin-main-nav-btn', function(e) {
23
  e.preventDefault()
573
  woolentor_repeater_field();
574
 
575
  // Extension Tabs
576
+ // woolentor_admin_tabs( $(".woolentor-admin-tabs"), '.woolentor-admin-tab-pane' );
577
 
578
  // Field Dependency
579
  $(document).ready(function() {
580
  $('.woolentor-dashboard').children('.woolentor-admin-options').woolentor_conditions();
581
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
582
 
583
  })(jQuery);
includes/admin/assets/js/woolentor-condition.js ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Fields Conditions System
2
+ ;( function ( $ ) {
3
+ "use strict";
4
+
5
+ $.fn.woolentor_conditions = function() {
6
+ return this.each( function() {
7
+
8
+ var $this = $(this),
9
+ $fields = $this.children('[data-controller]');
10
+
11
+ if( $fields.length ) {
12
+
13
+ var condition_ruleset = $.woolentor_deps.createRuleset(),
14
+ all_conditions = [];
15
+
16
+ $fields.each( function() {
17
+
18
+ var $field = $(this),
19
+ controllers = $field.data('controller').split('|'),
20
+ conditions = $field.data('condition').split('|'),
21
+ values = $field.data('value').toString().split('|'),
22
+ ruleset = condition_ruleset;
23
+
24
+ $.each( controllers, function( index, depend_id ) {
25
+
26
+ var value = values[index] || '',
27
+ condition = conditions[index] || conditions[0];
28
+
29
+ ruleset = ruleset.createRule('[data-depend-id="'+ depend_id +'"]', condition, value );
30
+
31
+ ruleset.include( $field );
32
+
33
+ all_conditions.push( depend_id );
34
+
35
+ });
36
+
37
+ });
38
+
39
+ if ( all_conditions.length ) {
40
+ $.woolentor_deps.enable($this, condition_ruleset, all_conditions);
41
+ }
42
+
43
+ }
44
+
45
+ });
46
+ };
47
+ })(jQuery);
includes/admin/include/admin_field-manager.php CHANGED
@@ -41,6 +41,7 @@ class Woolentor_Admin_Fields_Manager {
41
  $depend_id = isset( $option['option_depend_id'] ) ? $option['option_depend_id'] : $option['name'];
42
  $value = isset( $option['value'] ) ? $option['value'] : '';
43
  $type = isset( $option['type'] ) ? $option['type'] : 'text';
 
44
  $label = isset( $option['label'] ) ? $option['label'] : '';
45
  $preview = isset( $option['preview'] ) ? $option['preview'] : '';
46
  $section = isset( $option['section'] ) ? $option['section'] : $section;
@@ -80,7 +81,7 @@ class Woolentor_Admin_Fields_Manager {
80
  'depend_id' => $depend_id,
81
  'class' => isset( $option['class'] ) ? $option['class'] : $name,
82
  'desc' => isset( $option['desc'] ) ? $option['desc'] : '',
83
- 'name' => $label,
84
  'value' => $value,
85
  'title_field' => isset( $option['title_field'] ) ? $option['title_field'] : '',
86
  'section' => $section,
@@ -346,8 +347,8 @@ class Woolentor_Admin_Fields_Manager {
346
  $html .= '<div class="woolentor-admin-switch-block-content">';
347
  $html .= sprintf('<h6 class="woolentor-admin-switch-block-title">%1$s</h6>', $args['name'] );
348
  $html .= '<div class="woolentor-admin-switch-block-info">';
349
- $html .= !empty( $args['additional_info']['preview'] ) ? '<a href="'.$args['additional_info']['preview'].'" data-woolentor-tooltip="'.esc_attr__('Preview','woolentor').'"><i class="wli wli-monitor"></i></a>' : '';
350
- $html .= !empty( $args['additional_info']['documentation'] ) ? '<a href="'.$args['additional_info']['documentation'].'" data-woolentor-tooltip="'.esc_attr__('Documentation','woolentor').'"><i class="wli wli-question"></i></a>' : '';
351
  $html .= $probadge;
352
  $html .= '</div>';
353
  $html .= '</div>';
@@ -442,7 +443,6 @@ class Woolentor_Admin_Fields_Manager {
442
  public function callback_element( $args ) {
443
 
444
  $value = ( isset( $args['value'] ) && !empty ( $args['value'] ) ) ? esc_attr( $args['value'] ) : esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
445
-
446
  $checked = checked( $value, 'on', false );
447
  $switch_id = esc_attr('data-switch-id=element');
448
  $probadge = $data_atr = '';
@@ -466,8 +466,8 @@ class Woolentor_Admin_Fields_Manager {
466
  $html .= '<div class="woolentor-admin-switch-block-content">';
467
  $html .= sprintf('<h6 class="woolentor-admin-switch-block-title">%1$s</h6>', $args['name'] );
468
  $html .= '<div class="woolentor-admin-switch-block-info">';
469
- $html .= !empty( $args['additional_info']['preview'] ) ? '<a href="'.$args['additional_info']['preview'].'" data-woolentor-tooltip="'.esc_attr__('Preview','woolentor').'"><i class="wli wli-monitor"></i></a>' : '';
470
- $html .= !empty( $args['additional_info']['documentation'] ) ? '<a href="'.$args['additional_info']['documentation'].'" data-woolentor-tooltip="'.esc_attr__('Documentation','woolentor').'"><i class="wli wli-question"></i></a>' : '';
471
  $html .= $probadge;
472
  $html .= '</div>';
473
  $html .= '</div>';
@@ -948,7 +948,6 @@ class Woolentor_Admin_Fields_Manager {
948
  </script>
949
  <?php
950
  }
951
-
952
 
953
 
954
  }
41
  $depend_id = isset( $option['option_depend_id'] ) ? $option['option_depend_id'] : $option['name'];
42
  $value = isset( $option['value'] ) ? $option['value'] : '';
43
  $type = isset( $option['type'] ) ? $option['type'] : 'text';
44
+ $tooltip = isset( $option['tooltip'] ) && is_array( $option['tooltip'] ) ? sprintf( '<span class="woolenor-help-tip"><span class="woolentor-help-tip-trigger">%s</span><span class="woolenor-help-text woolentor-helptip-%s">%s</span></span>','<i class="dashicons dashicons-editor-help"></i>',$option['tooltip']['placement'], $option['tooltip']['text'] ) : '';
45
  $label = isset( $option['label'] ) ? $option['label'] : '';
46
  $preview = isset( $option['preview'] ) ? $option['preview'] : '';
47
  $section = isset( $option['section'] ) ? $option['section'] : $section;
81
  'depend_id' => $depend_id,
82
  'class' => isset( $option['class'] ) ? $option['class'] : $name,
83
  'desc' => isset( $option['desc'] ) ? $option['desc'] : '',
84
+ 'name' => $label.$tooltip,
85
  'value' => $value,
86
  'title_field' => isset( $option['title_field'] ) ? $option['title_field'] : '',
87
  'section' => $section,
347
  $html .= '<div class="woolentor-admin-switch-block-content">';
348
  $html .= sprintf('<h6 class="woolentor-admin-switch-block-title">%1$s</h6>', $args['name'] );
349
  $html .= '<div class="woolentor-admin-switch-block-info">';
350
+ $html .= !empty( $args['additional_info']['preview'] ) ? '<a href="'.$args['additional_info']['preview'].'" data-woolentor-tooltip="'.esc_attr__('Preview','woolentor').'" target="_blank"><i class="wli wli-monitor"></i></a>' : '';
351
+ $html .= !empty( $args['additional_info']['documentation'] ) ? '<a href="'.$args['additional_info']['documentation'].'" data-woolentor-tooltip="'.esc_attr__('Documentation','woolentor').'" target="_blank"><i class="wli wli-question"></i></a>' : '';
352
  $html .= $probadge;
353
  $html .= '</div>';
354
  $html .= '</div>';
443
  public function callback_element( $args ) {
444
 
445
  $value = ( isset( $args['value'] ) && !empty ( $args['value'] ) ) ? esc_attr( $args['value'] ) : esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
 
446
  $checked = checked( $value, 'on', false );
447
  $switch_id = esc_attr('data-switch-id=element');
448
  $probadge = $data_atr = '';
466
  $html .= '<div class="woolentor-admin-switch-block-content">';
467
  $html .= sprintf('<h6 class="woolentor-admin-switch-block-title">%1$s</h6>', $args['name'] );
468
  $html .= '<div class="woolentor-admin-switch-block-info">';
469
+ $html .= !empty( $args['additional_info']['preview'] ) ? '<a href="'.$args['additional_info']['preview'].'" data-woolentor-tooltip="'.esc_attr__('Preview','woolentor').'" target="_blank"><i class="wli wli-monitor"></i></a>' : '';
470
+ $html .= !empty( $args['additional_info']['documentation'] ) ? '<a href="'.$args['additional_info']['documentation'].'" data-woolentor-tooltip="'.esc_attr__('Documentation','woolentor').'" target="_blank"><i class="wli wli-question"></i></a>' : '';
471
  $html .= $probadge;
472
  $html .= '</div>';
473
  $html .= '</div>';
948
  </script>
949
  <?php
950
  }
 
951
 
952
 
953
  }
includes/admin/include/admin_fields.php CHANGED
@@ -27,11 +27,11 @@ class Woolentor_Admin_Fields {
27
  public function field_sections(){
28
 
29
  $sections = array(
30
-
31
  array(
32
  'id' => 'woolentor_general_tabs',
33
  'title' => esc_html__( 'General', 'woolentor' ),
34
- 'icon' => 'wli-cog'
35
  ),
36
 
37
  array(
@@ -40,6 +40,12 @@ class Woolentor_Admin_Fields {
40
  'icon' => 'wli-store'
41
  ),
42
 
 
 
 
 
 
 
43
  array(
44
  'id' => 'woolentor_elements_tabs',
45
  'title' => esc_html__( 'Elements', 'woolentor' ),
@@ -243,6 +249,245 @@ class Woolentor_Admin_Fields {
243
 
244
  ),
245
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
246
  'woolentor_elements_tabs' => array(
247
 
248
  array(
@@ -672,6 +917,14 @@ class Woolentor_Admin_Fields {
672
  'is_pro' => true,
673
  ),
674
 
 
 
 
 
 
 
 
 
675
  array(
676
  'name' => 'cart_widget_heading',
677
  'headding' => esc_html__( 'Cart', 'woolentor' ),
@@ -729,7 +982,7 @@ class Woolentor_Admin_Fields {
729
 
730
  array(
731
  'name' => 'checkout_widget_heading',
732
- 'headding' => esc_html__( 'Checkout', 'woolentor-pro' ),
733
  'type' => 'title',
734
  'class' => 'woolentor_heading_style_two'
735
  ),
@@ -895,7 +1148,7 @@ class Woolentor_Admin_Fields {
895
 
896
  array(
897
  'name' => 'thankyou_widget_heading',
898
- 'headding' => esc_html__( 'Thank You', 'woolentor-pro' ),
899
  'type' => 'title',
900
  'class' => 'woolentor_heading_style_two'
901
  ),
@@ -961,6 +1214,7 @@ class Woolentor_Admin_Fields {
961
  'section' => 'woolentor_rename_label_tabs',
962
  'option_id'=> 'enablerenamelabel',
963
  'require_settings'=> true,
 
964
  'setting_fields' => array(
965
 
966
  array(
@@ -1058,6 +1312,7 @@ class Woolentor_Admin_Fields {
1058
  'section' => 'woolentor_sales_notification_tabs',
1059
  'option_id'=> 'enableresalenotification',
1060
  'require_settings'=> true,
 
1061
  'setting_fields' => array(
1062
 
1063
  array(
@@ -1461,6 +1716,7 @@ class Woolentor_Admin_Fields {
1461
  'section' => 'woolentor_shopify_checkout_settings',
1462
  'option_id'=> 'enable',
1463
  'require_settings' => true,
 
1464
  'setting_fields' => array(
1465
 
1466
  array(
@@ -1494,6 +1750,22 @@ class Woolentor_Admin_Fields {
1494
  'class' => 'woolentor-action-field-left'
1495
  ),
1496
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1497
  array(
1498
  'name' => 'hide_cart_nivigation',
1499
  'label' => esc_html__( 'Hide Cart Navigation', 'woolentor' ),
@@ -1576,6 +1848,7 @@ class Woolentor_Admin_Fields {
1576
  'section' => 'woolentor_flash_sale_settings',
1577
  'option_id'=> 'enable',
1578
  'require_settings' => true,
 
1579
  'setting_fields' => array(
1580
 
1581
  array(
@@ -1682,7 +1955,7 @@ class Woolentor_Admin_Fields {
1682
 
1683
  array(
1684
  'name' => 'discount_value',
1685
- 'label' => esc_html__( 'Discount Value', 'woolentor-pro' ),
1686
  'min' => 0.0,
1687
  'step' => 0.01,
1688
  'type' => 'number',
@@ -1777,6 +2050,7 @@ class Woolentor_Admin_Fields {
1777
  'section' => 'woolentor_backorder_settings',
1778
  'option_id'=> 'enable',
1779
  'require_settings' => true,
 
1780
  'setting_fields' => array(
1781
 
1782
  array(
@@ -1816,11 +2090,360 @@ class Woolentor_Admin_Fields {
1816
 
1817
  ),
1818
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1819
  array(
1820
  'name' => 'wishlist',
1821
  'label' => esc_html__( 'Wishlist', 'woolentor' ),
1822
  'type' => 'element',
1823
  'default' => 'off',
 
1824
  ),
1825
 
1826
  array(
@@ -1828,6 +2451,7 @@ class Woolentor_Admin_Fields {
1828
  'label' => esc_html__( 'Compare', 'woolentor' ),
1829
  'type' => 'element',
1830
  'default' => 'off',
 
1831
  ),
1832
 
1833
  array(
@@ -1836,6 +2460,7 @@ class Woolentor_Admin_Fields {
1836
  'desc' => esc_html__( 'AJAX Search Widget', 'woolentor' ),
1837
  'type' => 'element',
1838
  'default' => 'off',
 
1839
  ),
1840
 
1841
  array(
@@ -1844,6 +2469,7 @@ class Woolentor_Admin_Fields {
1844
  'desc' => esc_html__( 'AJAX Add to Cart on Single Product page', 'woolentor' ),
1845
  'type' => 'element',
1846
  'default' => 'off',
 
1847
  ),
1848
 
1849
  array(
@@ -1924,7 +2550,7 @@ class Woolentor_Admin_Fields {
1924
 
1925
  array(
1926
  'name' => 'redirect_add_to_cartp',
1927
- 'label' => esc_html__( 'Redirect to Checkout', 'woolentor-pro' ),
1928
  'type' => 'element',
1929
  'default'=> 'off',
1930
  'is_pro' => true
@@ -2178,10 +2804,11 @@ class Woolentor_Admin_Fields {
2178
 
2179
  $settings_fields['woolentor_others_tabs']['modules'][] = [
2180
  'name' => 'postduplicator',
2181
- 'label' => esc_html__( 'Post Duplicator', 'woolentor-pro' ),
2182
  'type' => 'element',
2183
  'default' => 'off',
2184
  'require_settings' => true,
 
2185
  'setting_fields' => array(
2186
 
2187
  array(
27
  public function field_sections(){
28
 
29
  $sections = array(
30
+
31
  array(
32
  'id' => 'woolentor_general_tabs',
33
  'title' => esc_html__( 'General', 'woolentor' ),
34
+ 'icon' => 'dashicons-admin-home'
35
  ),
36
 
37
  array(
40
  'icon' => 'wli-store'
41
  ),
42
 
43
+ array(
44
+ 'id' => 'woolentor_gutenberg_tabs',
45
+ 'title' => esc_html__( 'Gutenberg', 'woolentor' ),
46
+ 'icon' => 'wli-cog'
47
+ ),
48
+
49
  array(
50
  'id' => 'woolentor_elements_tabs',
51
  'title' => esc_html__( 'Elements', 'woolentor' ),
249
 
250
  ),
251
 
252
+ 'woolentor_gutenberg_tabs' => array(
253
+
254
+ 'settings' => array(
255
+
256
+ array(
257
+ 'name' => 'css_add_via',
258
+ 'label' => esc_html__( 'Add CSS through', 'woolentor' ),
259
+ 'desc' => esc_html__( 'Choose how you want to add the newly generated CSS.', 'woolentor' ),
260
+ 'type' => 'select',
261
+ 'default' => 'internal',
262
+ 'options' => array(
263
+ 'internal' => esc_html__('Internal','woolentor'),
264
+ 'external' => esc_html__('External','woolentor'),
265
+ )
266
+ ),
267
+
268
+ array(
269
+ 'name' => 'container_width',
270
+ 'label' => esc_html__( 'Container Width', 'woolentor' ),
271
+ 'desc' => esc_html__( 'You can set the container width from here.', 'woolentor' ),
272
+ 'min' => 1,
273
+ 'max' => 10000,
274
+ 'step' => '1',
275
+ 'type' => 'number',
276
+ 'default' => '1140',
277
+ 'sanitize_callback' => 'floatval'
278
+ ),
279
+
280
+ ),
281
+
282
+ 'blocks' => array(
283
+
284
+ array(
285
+ 'name' => 'general_blocks_heading',
286
+ 'headding' => esc_html__( 'General', 'woolentor' ),
287
+ 'type' => 'title',
288
+ 'class' => 'woolentor_heading_style_two'
289
+ ),
290
+
291
+ array(
292
+ 'name' => 'product_tab',
293
+ 'label' => esc_html__( 'Product Tab', 'woolentor' ),
294
+ 'type' => 'element',
295
+ 'default' => 'on'
296
+ ),
297
+
298
+ array(
299
+ 'name' => 'promo_banner',
300
+ 'label' => esc_html__( 'Promo Banner', 'woolentor' ),
301
+ 'type' => 'element',
302
+ 'default' => 'on'
303
+ ),
304
+
305
+ array(
306
+ 'name' => 'special_day_offer',
307
+ 'label' => esc_html__( 'Special Day Offer', 'woolentor' ),
308
+ 'type' => 'element',
309
+ 'default' => 'on'
310
+ ),
311
+
312
+ array(
313
+ 'name' => 'image_marker',
314
+ 'label' => esc_html__( 'Image Marker', 'woolentor' ),
315
+ 'type' => 'element',
316
+ 'default' => 'on'
317
+ ),
318
+
319
+ array(
320
+ 'name' => 'store_feature',
321
+ 'label' => esc_html__( 'Store Feature', 'woolentor' ),
322
+ 'type' => 'element',
323
+ 'default' => 'on'
324
+ ),
325
+
326
+ array(
327
+ 'name' => 'brand_logo',
328
+ 'label' => esc_html__( 'Brand Logo', 'woolentor' ),
329
+ 'type' => 'element',
330
+ 'default' => 'on'
331
+ ),
332
+
333
+ array(
334
+ 'name' => 'category_grid',
335
+ 'label' => esc_html__( 'Category Grid', 'woolentor' ),
336
+ 'type' => 'element',
337
+ 'default' => 'on'
338
+ ),
339
+
340
+ array(
341
+ 'name' => 'faq',
342
+ 'label' => esc_html__( 'FAQ', 'woolentor' ),
343
+ 'type' => 'element',
344
+ 'default' => 'on'
345
+ ),
346
+
347
+ array(
348
+ 'name' => 'product_curvy',
349
+ 'label' => esc_html__( 'Product Curvy', 'woolentor' ),
350
+ 'type' => 'element',
351
+ 'default' => 'on'
352
+ ),
353
+
354
+ array(
355
+ 'name' => 'archive_title',
356
+ 'label' => esc_html__( 'Archive Title', 'woolentor' ),
357
+ 'type' => 'element',
358
+ 'default' => 'on'
359
+ ),
360
+
361
+ array(
362
+ 'name' => 'breadcrumbs',
363
+ 'label' => esc_html__( 'Breadcrumbs', 'woolentor' ),
364
+ 'type' => 'element',
365
+ 'default' => 'on'
366
+ ),
367
+
368
+ array(
369
+ 'name' => 'shop_blocks_heading',
370
+ 'headding' => esc_html__( 'Shop / Archive', 'woolentor' ),
371
+ 'type' => 'title',
372
+ 'class' => 'woolentor_heading_style_two'
373
+ ),
374
+
375
+ array(
376
+ 'name' => 'shop_archive_product',
377
+ 'label' => esc_html__( 'Product Archive (Default)', 'woolentor' ),
378
+ 'type' => 'element',
379
+ 'default' => 'on'
380
+ ),
381
+
382
+ array(
383
+ 'name' => 'single_blocks_heading',
384
+ 'headding' => esc_html__( 'Single Product', 'woolentor' ),
385
+ 'type' => 'title',
386
+ 'class' => 'woolentor_heading_style_two'
387
+ ),
388
+
389
+ array(
390
+ 'name' => 'product_title',
391
+ 'label' => esc_html__('Product Title','woolentor'),
392
+ 'type' => 'element',
393
+ 'default' => 'on'
394
+ ),
395
+
396
+ array(
397
+ 'name' => 'product_price',
398
+ 'label' => esc_html__('Product Price','woolentor'),
399
+ 'type' => 'element',
400
+ 'default' => 'on'
401
+ ),
402
+
403
+ array(
404
+ 'name' => 'product_addtocart',
405
+ 'label' => esc_html__('Product Add To Cart','woolentor'),
406
+ 'type' => 'element',
407
+ 'default' => 'on'
408
+ ),
409
+
410
+ array(
411
+ 'name' => 'product_short_description',
412
+ 'label' => esc_html__('Product Short Description','woolentor'),
413
+ 'type' => 'element',
414
+ 'default' => 'on'
415
+ ),
416
+
417
+ array(
418
+ 'name' => 'product_description',
419
+ 'label' => esc_html__('Product Description','woolentor'),
420
+ 'type' => 'element',
421
+ 'default' => 'on'
422
+ ),
423
+
424
+ array(
425
+ 'name' => 'product_rating',
426
+ 'label' => esc_html__('Product Rating','woolentor'),
427
+ 'type' => 'element',
428
+ 'default' => 'on'
429
+ ),
430
+
431
+ array(
432
+ 'name' => 'product_image',
433
+ 'label' => esc_html__('Product Image','woolentor'),
434
+ 'type' => 'element',
435
+ 'default' => 'on'
436
+ ),
437
+
438
+ array(
439
+ 'name' => 'product_meta',
440
+ 'label' => esc_html__('Product Meta','woolentor'),
441
+ 'type' => 'element',
442
+ 'default' => 'on'
443
+ ),
444
+
445
+ array(
446
+ 'name' => 'product_additional_info',
447
+ 'label' => esc_html__('Product Additional Info','woolentor'),
448
+ 'type' => 'element',
449
+ 'default' => 'on'
450
+ ),
451
+
452
+ array(
453
+ 'name' => 'product_tabs',
454
+ 'label' => esc_html__('Product Tabs','woolentor'),
455
+ 'type' => 'element',
456
+ 'default' => 'on'
457
+ ),
458
+
459
+ array(
460
+ 'name' => 'product_stock',
461
+ 'label' => esc_html__('Product Stock','woolentor'),
462
+ 'type' => 'element',
463
+ 'default' => 'on'
464
+ ),
465
+
466
+ array(
467
+ 'name' => 'product_qrcode',
468
+ 'label' => esc_html__('Product QR Code','woolentor'),
469
+ 'type' => 'element',
470
+ 'default' => 'on'
471
+ ),
472
+
473
+ array(
474
+ 'name' => 'product_related',
475
+ 'label' => esc_html__('Product Related','woolentor'),
476
+ 'type' => 'element',
477
+ 'default' => 'on'
478
+ ),
479
+
480
+ array(
481
+ 'name' => 'product_upsell',
482
+ 'label' => esc_html__('Product Upsell','woolentor'),
483
+ 'type' => 'element',
484
+ 'default' => 'on'
485
+ )
486
+
487
+ )
488
+
489
+ ),
490
+
491
  'woolentor_elements_tabs' => array(
492
 
493
  array(
917
  'is_pro' => true,
918
  ),
919
 
920
+ array(
921
+ 'name' => 'wl_single_pdoduct_navigation',
922
+ 'label' => __( 'Product Navigation', 'woolentor-pro' ),
923
+ 'type' => 'element',
924
+ 'default' => 'off',
925
+ 'is_pro'=> true,
926
+ ),
927
+
928
  array(
929
  'name' => 'cart_widget_heading',
930
  'headding' => esc_html__( 'Cart', 'woolentor' ),
982
 
983
  array(
984
  'name' => 'checkout_widget_heading',
985
+ 'headding' => esc_html__( 'Checkout', 'woolentor' ),
986
  'type' => 'title',
987
  'class' => 'woolentor_heading_style_two'
988
  ),
1148
 
1149
  array(
1150
  'name' => 'thankyou_widget_heading',
1151
+ 'headding' => esc_html__( 'Thank You', 'woolentor' ),
1152
  'type' => 'title',
1153
  'class' => 'woolentor_heading_style_two'
1154
  ),
1214
  'section' => 'woolentor_rename_label_tabs',
1215
  'option_id'=> 'enablerenamelabel',
1216
  'require_settings'=> true,
1217
+ 'documentation' => esc_url('https://woolentor.com/doc/change-woocommerce-text/'),
1218
  'setting_fields' => array(
1219
 
1220
  array(
1312
  'section' => 'woolentor_sales_notification_tabs',
1313
  'option_id'=> 'enableresalenotification',
1314
  'require_settings'=> true,
1315
+ 'documentation' => esc_url('https://woolentor.com/doc/sales-notification-for-woocommerce/'),
1316
  'setting_fields' => array(
1317
 
1318
  array(
1716
  'section' => 'woolentor_shopify_checkout_settings',
1717
  'option_id'=> 'enable',
1718
  'require_settings' => true,
1719
+ 'documentation' => esc_url('https://woolentor.com/doc/how-to-make-woocommerce-checkout-like-shopify/'),
1720
  'setting_fields' => array(
1721
 
1722
  array(
1750
  'class' => 'woolentor-action-field-left'
1751
  ),
1752
 
1753
+ array(
1754
+ 'name' => 'show_phone',
1755
+ 'label' => esc_html__( 'Show Phone Number Field', 'woolentor' ),
1756
+ 'desc' => esc_html__( 'Show the Phone Number Field.', 'woolentor' ),
1757
+ 'type' => 'checkbox',
1758
+ 'class' => 'woolentor-action-field-left'
1759
+ ),
1760
+
1761
+ array(
1762
+ 'name' => 'show_company',
1763
+ 'label' => esc_html__( 'Show Company Name Field', 'woolentor' ),
1764
+ 'desc' => esc_html__( 'Show the Company Name Field.', 'woolentor' ),
1765
+ 'type' => 'checkbox',
1766
+ 'class' => 'woolentor-action-field-left'
1767
+ ),
1768
+
1769
  array(
1770
  'name' => 'hide_cart_nivigation',
1771
  'label' => esc_html__( 'Hide Cart Navigation', 'woolentor' ),
1848
  'section' => 'woolentor_flash_sale_settings',
1849
  'option_id'=> 'enable',
1850
  'require_settings' => true,
1851
+ 'documentation' => esc_url('https://woolentor.com/doc/enable-sales-countdown-timer-in-woocommerce/'),
1852
  'setting_fields' => array(
1853
 
1854
  array(
1955
 
1956
  array(
1957
  'name' => 'discount_value',
1958
+ 'label' => esc_html__( 'Discount Value', 'woolentor' ),
1959
  'min' => 0.0,
1960
  'step' => 0.01,
1961
  'type' => 'number',
2050
  'section' => 'woolentor_backorder_settings',
2051
  'option_id'=> 'enable',
2052
  'require_settings' => true,
2053
+ 'documentation' => esc_url('https://woolentor.com/doc/how-to-enable-woocommerce-backorder/'),
2054
  'setting_fields' => array(
2055
 
2056
  array(
2090
 
2091
  ),
2092
 
2093
+ array(
2094
+ 'name' => 'swatch_settings',
2095
+ 'label' => esc_html__( 'Variation Swatches', 'woolentor' ),
2096
+ 'type' => 'module',
2097
+ 'default' => 'off',
2098
+ 'section' => 'woolentor_swatch_settings',
2099
+ 'option_id'=> 'enable',
2100
+ 'require_settings' => true,
2101
+ 'setting_fields' => array(
2102
+
2103
+ array(
2104
+ 'name' => 'enable',
2105
+ 'label' => esc_html__( 'Enable / Disable', 'woolentor' ),
2106
+ 'desc' => esc_html__( 'Enable / disable this module.', 'woolentor' ),
2107
+ 'type' => 'checkbox',
2108
+ 'default' => 'off',
2109
+ 'class' => 'woolentor-action-field-left'
2110
+ ),
2111
+
2112
+ array(
2113
+ 'name' => 'sp_enable_swatches',
2114
+ 'label' => esc_html__( 'Enable On Product Details Page', 'woolentor' ),
2115
+ 'desc' => esc_html__( 'Enable Swatches for the Product Details pages.', 'woolentor' ),
2116
+ 'type' => 'checkbox',
2117
+ 'default' => 'on',
2118
+ 'class' => 'woolentor-action-field-left',
2119
+ 'condition' => array('enable', '==', '1')
2120
+ ),
2121
+
2122
+ array(
2123
+ 'name' => 'pl_enable_swatches',
2124
+ 'label' => esc_html__( 'Enable On Shop / Archive Page', 'woolentor' ),
2125
+ 'desc' => esc_html__( 'Enable Swatches for the products in the Shop / Archive Pages', 'woolentor' ),
2126
+ 'type' => 'checkbox',
2127
+ 'default' => 'off',
2128
+ 'class' => 'woolentor-action-field-left',
2129
+ 'condition' => array('enable', '==', '1')
2130
+ ),
2131
+
2132
+ array(
2133
+ 'name' => 'heading_1',
2134
+ 'type' => 'title',
2135
+ 'headding' => esc_html__( 'General Options', 'woolentor' ),
2136
+ 'size' => 'woolentor_style_seperator',
2137
+ 'condition' => array('enable', '==', '1')
2138
+ ),
2139
+
2140
+ array(
2141
+ 'name' => 'auto_convert_dropdowns_to_label',
2142
+ 'label' => esc_html__( 'Auto Convert Dropdowns To Label', 'woolentor' ),
2143
+ 'desc' => esc_html__( 'Automatically convert dropdowns to "label swatch" by default.', 'woolentor' ),
2144
+ 'type' => 'checkbox',
2145
+ 'default' => 'on',
2146
+ 'class' => 'woolentor-action-field-left',
2147
+ 'condition' => array('enable', '==', '1')
2148
+ ),
2149
+
2150
+ array(
2151
+ 'name' => 'auto_convert_dropdowns_to_image',
2152
+ 'label' => esc_html__( 'Auto Convert Dropdowns To Image', 'woolentor' ),
2153
+ 'desc' => esc_html__( 'Automatically convert dropdowns to "Image Swatch" if variation has an image.', 'woolentor' ),
2154
+ 'type' => 'checkbox',
2155
+ 'default' => 'off',
2156
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-notice',
2157
+ 'condition' => array('enable', '==', '1'),
2158
+ 'is_pro' => true
2159
+ ),
2160
+
2161
+ array(
2162
+ 'name' => 'auto_convert_dropdowns_to_image_condition',
2163
+ 'label' => esc_html__( 'Apply Auto Image For', 'woolentor' ),
2164
+ 'type' => 'select',
2165
+ 'class' => 'woolentor-action-field-left',
2166
+ 'default' => 'first_attribute',
2167
+ 'options' => array(
2168
+ 'first_attribute' => esc_html__('The First attribute', 'woolentor'),
2169
+ 'maximum' => esc_html__('The attribute with Maximum variations count', 'woolentor'),
2170
+ 'minimum' => esc_html__('The attribute with Minimum variations count', 'woolentor'),
2171
+ ),
2172
+ 'condition' => array('enable|auto_convert_dropdowns_to_image', '==|==', '1|1')
2173
+ ),
2174
+
2175
+ array(
2176
+ 'name' => 'tooltip',
2177
+ 'label' => esc_html__( 'Tooltip', 'woolentor' ),
2178
+ 'desc' => esc_html__( 'Enable Tooltip', 'woolentor' ),
2179
+ 'type' => 'checkbox',
2180
+ 'default' => 'on',
2181
+ 'class' => 'woolentor-action-field-left',
2182
+ 'condition' => array('enable', '==', '1')
2183
+ ),
2184
+
2185
+ array(
2186
+ 'name' => 'swatch_width_height',
2187
+ 'label' => esc_html__( 'Swatch Width & Height', 'woolentor' ),
2188
+ 'desc' => esc_html__( 'Change Swatch Width and Height From Here.', 'woolentor' ),
2189
+ 'type' => 'dimensions',
2190
+ 'options' => [
2191
+ 'width' => esc_html__( 'Width', 'woolentor' ),
2192
+ 'height' => esc_html__( 'Height', 'woolentor' ),
2193
+ 'unit' => esc_html__( 'Unit', 'woolentor' ),
2194
+ ],
2195
+ 'default' => array(
2196
+ 'unit' => 'px'
2197
+ ),
2198
+ 'class' => 'woolentor-action-field-left woolentor-dimention-field-left',
2199
+ 'condition' => array('enable', '==', '1')
2200
+ ),
2201
+
2202
+ array(
2203
+ 'name' => 'tooltip_width_height',
2204
+ 'label' => esc_html__( 'Tooltip Width', 'woolentor' ),
2205
+ 'desc' => esc_html__( 'Change Tooltip Width From Here.', 'woolentor' ),
2206
+ 'type' => 'dimensions',
2207
+ 'options' => [
2208
+ 'width' => esc_html__( 'Width', 'woolentor' ),
2209
+ 'unit' => esc_html__( 'Unit', 'woolentor' ),
2210
+ ],
2211
+ 'default' => array(
2212
+ 'unit' => 'px'
2213
+ ),
2214
+ 'class' => 'woolentor-action-field-left woolentor-dimention-field-left',
2215
+ 'condition' => array('enable', '==', '1')
2216
+ ),
2217
+
2218
+ array(
2219
+ 'name' => 'show_swatch_image_in_tooltip',
2220
+ 'type' => 'checkbox',
2221
+ 'label' => esc_html__('Swatch Image as Tooltip', 'woolentor'),
2222
+ 'desc' => esc_html__('If you check this options. When a watch type is "image" and has an image. The image will be shown into the tooltip.', 'woolentor'),
2223
+ 'class' => 'woolentor-action-field-left',
2224
+ 'condition' => array('enable', '==', '1')
2225
+ ),
2226
+
2227
+ array(
2228
+ 'name' => 'ajax_variation_threshold',
2229
+ 'type' => 'number',
2230
+ 'label' => esc_html__('Change AJAX Variation Threshold', 'woolentor'),
2231
+ 'placeholder'=> '30',
2232
+ 'class' => 'woolentor-action-field-left',
2233
+ 'condition' => array('enable', '==', '1'),
2234
+ 'tooltip' => [
2235
+ 'text' => __('If a variable product has over 30 variants, WooCommerce doesn\'t allow you to show which combinations are unavailable for purchase. That\'s why customers need to check each combination to see if it is available or not. Although you can increase the threshold, keeping it at a standard value is recommended, so it doesn\'t negatively impact your website\'s performance.
2236
+ <br/>Here \"standard value\" refers to the number of highest combinations you have set for one of your products.','woolentor'),
2237
+ 'placement' => 'top',
2238
+ ],
2239
+ ),
2240
+
2241
+ array(
2242
+ 'name' => 'shape_style',
2243
+ 'type' => 'select',
2244
+ 'label' => esc_html__('Shape Style', 'woolentor'),
2245
+ 'options' => array(
2246
+ 'squared' => esc_html__('Squared', 'woolentor'),
2247
+ 'rounded' => esc_html__('Rounded', 'woolentor'),
2248
+ 'circle' => esc_html__('Circle', 'woolentor'),
2249
+ ),
2250
+ 'default' => 'squared',
2251
+ 'class' => 'woolentor-action-field-left',
2252
+ 'condition' => array('enable', '==', '1')
2253
+ ),
2254
+
2255
+ array(
2256
+ 'name' => 'enable_shape_inset',
2257
+ 'type' => 'checkbox',
2258
+ 'label' => esc_html__('Enable Shape Inset', 'woolentor'),
2259
+ 'desc' => esc_html__('Shape inset is the empty space arround the swatch.', 'woolentor'),
2260
+ 'class' => 'woolentor-action-field-left',
2261
+ 'condition' => array('enable', '==', '1')
2262
+ ),
2263
+
2264
+ array(
2265
+ 'name' => 'show_selected_attribute_name',
2266
+ 'type' => 'checkbox',
2267
+ 'label' => esc_html__('Show Selected Variation Name', 'woolentor'),
2268
+ 'default' => 'on',
2269
+ 'class' => 'woolentor-action-field-left',
2270
+ 'condition' => array('enable', '==', '1')
2271
+ ),
2272
+
2273
+ array(
2274
+ 'name' => 'variation_label_separator',
2275
+ 'type' => 'text',
2276
+ 'label' => esc_html__('Variation Label Separator', 'woolentor'),
2277
+ 'default' => esc_html__(' : ', 'woolentor'),
2278
+ 'class' => 'woolentor-action-field-left',
2279
+ 'condition' => array( 'enable|show_selected_attribute_name', '==|==', '1|1' ),
2280
+ ),
2281
+
2282
+ array(
2283
+ 'name' => 'disabled_attribute_type',
2284
+ 'type' => 'select',
2285
+ 'label' => esc_html__('Disabled Attribute Type', 'woolentor'),
2286
+ 'options' => array(
2287
+ '' => esc_html__('Cross Sign', 'woolentor'),
2288
+ 'blur_with_cross' => esc_html__('Blur With Cross', 'woolentor'),
2289
+ 'blur' => esc_html__('Blur', 'woolentor'),
2290
+ 'hide' => esc_html__('Hide', 'woolentor'),
2291
+ ),
2292
+ 'desc' => esc_html__('Note: It will not effective when you have large number of variations but the "Ajax Variation Threshold" value is less than the number of variations.', 'woolentor'),
2293
+ 'class' => 'woolentor-action-field-left',
2294
+ 'condition' => array('enable', '==', '1'),
2295
+ ),
2296
+
2297
+ array(
2298
+ 'name' => 'disable_out_of_stock',
2299
+ 'type' => 'checkbox',
2300
+ 'label' => esc_html__('Disable Variation Form for The "Out of Stock" Products', 'woolentor'),
2301
+ 'desc' => esc_html__('If disabled, an out of stock message will be shown instead of showing the variations form / swatches.', 'woolentor'),
2302
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-notice',
2303
+ 'condition' => array('enable', '==', '1'),
2304
+ 'is_pro' => true
2305
+ ),
2306
+
2307
+ // Archive page options
2308
+ array(
2309
+ 'name' => 'heading_2',
2310
+ 'type' => 'title',
2311
+ 'headding' => esc_html__( 'Shop / Archive Page Swatch Options', 'woolentor' ),
2312
+ 'size' => 'woolentor_style_seperator',
2313
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2314
+ ),
2315
+
2316
+ array(
2317
+ 'name' => 'pl_show_swatches_label',
2318
+ 'type' => 'checkbox',
2319
+ 'label' => esc_html__('Show Swatches Label', 'woolentor'),
2320
+ 'class' => 'woolentor-action-field-left',
2321
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2322
+ ),
2323
+
2324
+ array(
2325
+ 'name' => 'pl_show_clear_link',
2326
+ 'type' => 'checkbox',
2327
+ 'label' => esc_html__('Show Clear Button', 'woolentor'),
2328
+ 'class' => 'woolentor-action-field-left',
2329
+ 'default' => 'on',
2330
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2331
+ ),
2332
+
2333
+ array(
2334
+ 'name' => 'pl_align',
2335
+ 'type' => 'select',
2336
+ 'label' => esc_html__('Swatches Align', 'woolentor'),
2337
+ 'options' => array(
2338
+ 'left' => esc_html__('Left', 'woolentor'),
2339
+ 'center' => esc_html__('Center', 'woolentor'),
2340
+ 'right' => esc_html__('Right', 'woolentor'),
2341
+ ),
2342
+ 'default' => 'center',
2343
+ 'class' => 'woolentor-action-field-left',
2344
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2345
+ ),
2346
+
2347
+ array(
2348
+ 'name' => 'pl_position',
2349
+ 'type' => 'select',
2350
+ 'label' => esc_html__('Swatches Position', 'woolentor'),
2351
+ 'options' => array(
2352
+ 'before_title' => esc_html__('Before Title', 'woolentor'),
2353
+ 'after_title' => esc_html__('After Title', 'woolentor'),
2354
+ 'before_price' => esc_html__('Before Price', 'woolentor'),
2355
+ 'after_price' => esc_html__('After Price', 'woolentor'),
2356
+ 'custom_position' => esc_html__('Custom Position', 'woolentor'),
2357
+ 'shortcode' => esc_html__('Use Shortcode', 'woolentor'),
2358
+ ),
2359
+ 'default' => 'after_title',
2360
+ 'class' => 'woolentor-action-field-left',
2361
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2362
+ ),
2363
+
2364
+ array(
2365
+ 'name' => 'pl_custom_position_hook_name',
2366
+ 'type' => 'text',
2367
+ 'label' => esc_html__('Hook Name', 'woolentor'),
2368
+ 'desc' => esc_html__('e.g: woocommerce_after_shop_loop_item_title', 'woolentor'),
2369
+ 'class' => 'woolentor-action-field-left',
2370
+ 'condition' => array('enable|pl_enable_swatches|pl_position', '==|==|==', '1|1|custom_position'),
2371
+ ),
2372
+
2373
+ array(
2374
+ 'name' => 'pl_custom_position_hook_priority',
2375
+ 'type' => 'text',
2376
+ 'label' => esc_html__('Hook Priority', 'woolentor'),
2377
+ 'desc' => esc_html__('Default: 10', 'woolentor'),
2378
+ 'class' => 'woolentor-action-field-left',
2379
+ 'condition' => array('enable|pl_enable_swatches|pl_position', '==|==|==', '1|1|custom_position'),
2380
+ ),
2381
+
2382
+ array(
2383
+ 'name' => 'pl_product_thumbnail_selector',
2384
+ 'type' => 'text',
2385
+ 'label' => esc_html__('Product Thumbnail Selector', 'woolentor'),
2386
+ 'placeholder' => esc_html__('Example: img.attachment-woocommerce_thumbnail', 'woolentor'),
2387
+ 'class' => 'woolentor-action-field-left',
2388
+ 'condition' => array( 'enable|pl_enable_swatches', '==|==', '1|1' ),
2389
+ 'tooltip' => [
2390
+ 'text' => esc_html__( 'Some themes remove the default product image. In this case, variation image will not be changed after choose a variation. Here you can place the CSS selector of the product thumbnail, so the product image will be chagned once a variation is choosen.', 'woolentor' ),
2391
+ 'placement' => 'top',
2392
+ ],
2393
+ ),
2394
+
2395
+ array(
2396
+ 'name' => 'pl_enable_ajax_add_to_cart',
2397
+ 'type' => 'checkbox',
2398
+ 'label' => esc_html__('Enable AJAX Add to Cart', 'woolentor'),
2399
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-notice',
2400
+ 'condition' => array(
2401
+ 'enable|pl_enable_swatches', '==|==', '1|1',
2402
+ ),
2403
+ 'is_pro' => true
2404
+ ),
2405
+
2406
+ array(
2407
+ 'name' => 'pl_add_to_cart_text',
2408
+ 'type' => 'text',
2409
+ 'label' => esc_html__('Add to Cart Text', 'woolentor'),
2410
+ 'desc' => esc_html__('Leave it empty for default.', 'woolentor'),
2411
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-opacity',
2412
+ 'condition' => array('enable|pl_enable_swatches', '==|==', '1|1',),
2413
+ 'is_pro' => true
2414
+ ),
2415
+
2416
+ array(
2417
+ 'name' => 'pl_hide_wc_forward_button',
2418
+ 'type' => 'checkbox',
2419
+ 'label' => esc_html__('Hide "View Cart" button after Added to Cart', 'woolentor'),
2420
+ 'desc' => esc_html__('After successfully add to cart, a new button shows linked to the cart page. You can controll of that button from here. Note: If redirect option is enable from WooCommerce it will not work.', 'woolentor'),
2421
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-opacity',
2422
+ 'condition' => array('enable|pl_enable_swatches', '==|==', '1|1'),
2423
+ 'is_pro' => true
2424
+ ),
2425
+
2426
+ array(
2427
+ 'name' => 'pl_enable_cart_popup_notice',
2428
+ 'type' => 'checkbox',
2429
+ 'label' => esc_html__('Enable poupup notice after added to cart', 'woolentor'),
2430
+ 'desc' => esc_html__('After successfully add to cart, a pupup notice will be generated containing a button linked to the cart page. Note: If redirect option is enable from WooCommerce it will not work.', 'woolentor'),
2431
+ 'class' => 'woolentor-action-field-left woolentor-adv-pro-opacity',
2432
+ 'condition' => array('enable|pl_enable_swatches', '==|==', '1|1'),
2433
+ 'is_pro' => true
2434
+ ),
2435
+
2436
+
2437
+ )
2438
+
2439
+ ),
2440
+
2441
  array(
2442
  'name' => 'wishlist',
2443
  'label' => esc_html__( 'Wishlist', 'woolentor' ),
2444
  'type' => 'element',
2445
  'default' => 'off',
2446
+ 'documentation' => esc_url('https://woolentor.com/doc/wishlist-for-woocommerce/')
2447
  ),
2448
 
2449
  array(
2451
  'label' => esc_html__( 'Compare', 'woolentor' ),
2452
  'type' => 'element',
2453
  'default' => 'off',
2454
+ 'documentation' => esc_url('https://woolentor.com/doc/woocommerce-product-compare/')
2455
  ),
2456
 
2457
  array(
2460
  'desc' => esc_html__( 'AJAX Search Widget', 'woolentor' ),
2461
  'type' => 'element',
2462
  'default' => 'off',
2463
+ 'documentation' => esc_url('https://woolentor.com/doc/how-to-use-woocommerce-ajax-search/')
2464
  ),
2465
 
2466
  array(
2469
  'desc' => esc_html__( 'AJAX Add to Cart on Single Product page', 'woolentor' ),
2470
  'type' => 'element',
2471
  'default' => 'off',
2472
+ 'documentation' => esc_url('https://woolentor.com/doc/single-product-ajax-add-to-cart/')
2473
  ),
2474
 
2475
  array(
2550
 
2551
  array(
2552
  'name' => 'redirect_add_to_cartp',
2553
+ 'label' => esc_html__( 'Redirect to Checkout', 'woolentor' ),
2554
  'type' => 'element',
2555
  'default'=> 'off',
2556
  'is_pro' => true
2804
 
2805
  $settings_fields['woolentor_others_tabs']['modules'][] = [
2806
  'name' => 'postduplicator',
2807
+ 'label' => esc_html__( 'Post Duplicator', 'woolentor' ),
2808
  'type' => 'element',
2809
  'default' => 'off',
2810
  'require_settings' => true,
2811
+ 'documentation' => esc_url('https://woolentor.com/doc/duplicate-woocommerce-product/'),
2812
  'setting_fields' => array(
2813
 
2814
  array(
includes/admin/include/class.extension-manager.php CHANGED
@@ -59,12 +59,7 @@ class Woolentor_Extension_Manager{
59
  $plugins_list = array(
60
 
61
  'free' => array(
62
-
63
- array(
64
- 'slug' => 'swatchly',
65
- 'location' => 'swatchly.php',
66
- 'name' => esc_html__( 'Swatchly', 'woolentor' )
67
- ),
68
  array(
69
  'slug' => 'whols',
70
  'location' => 'whols.php',
@@ -110,16 +105,7 @@ class Woolentor_Extension_Manager{
110
  'link' => 'https://hasthemes.com/plugins/multi-currency-pro-for-woocommerce/',
111
  'author_link'=> 'https://hasthemes.com/',
112
  'description'=> esc_html__( 'Multi-Currency Pro for WooCommerce is a prominent currency switcher plugin for WooCommerce. This plugin allows your website or online store visitors to switch to their preferred currency or their country’s currency.', 'woolentor' ),
113
- ),
114
-
115
- array(
116
- 'slug' => 'email-candy-pro',
117
- 'location' => 'email-candy-pro.php',
118
- 'name' => esc_html__( 'Email Candy Pro - Email customizer for WooCommerce', 'woolentor' ),
119
- 'link' => 'https://hasthemes.com/plugins/email-candy-pro/',
120
- 'author_link'=> 'https://hasthemes.com/',
121
- 'description'=> esc_html__( 'Email Candy is an outstanding WordPress plugin that allows you to customize the default WooCommerce email templates and give a professional look to your WooCommerce emails. If you are tired of using the boring design of WooCommerce emails and want to create customized emails, then this plugin will come in handy.', 'woolentor' ),
122
- ),
123
 
124
  ),
125
  );
59
  $plugins_list = array(
60
 
61
  'free' => array(
62
+
 
 
 
 
 
63
  array(
64
  'slug' => 'whols',
65
  'location' => 'whols.php',
105
  'link' => 'https://hasthemes.com/plugins/multi-currency-pro-for-woocommerce/',
106
  'author_link'=> 'https://hasthemes.com/',
107
  'description'=> esc_html__( 'Multi-Currency Pro for WooCommerce is a prominent currency switcher plugin for WooCommerce. This plugin allows your website or online store visitors to switch to their preferred currency or their country’s currency.', 'woolentor' ),
108
+ )
 
 
 
 
 
 
 
 
 
109
 
110
  ),
111
  );
includes/admin/include/class.template-manager.php CHANGED
@@ -21,7 +21,7 @@ class Woolentor_Template_Manager{
21
 
22
  //Add Menu
23
  add_action( 'admin_menu', [ $this, 'admin_menu' ], 225 );
24
-
25
  // Load Scripts
26
  add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
27
 
@@ -37,6 +37,11 @@ class Woolentor_Template_Manager{
37
 
38
  // query filter
39
  add_filter( 'parse_query', [ $this, 'query_filter' ] );
 
 
 
 
 
40
 
41
  // Template store ajax action
42
  add_action( 'wp_ajax_woolentor_template_store', [ $this, 'template_store_request' ] );
@@ -49,23 +54,9 @@ class Woolentor_Template_Manager{
49
 
50
  // Template Import
51
  add_action( 'wp_ajax_woolentor_import_template', [ $this, 'template_import' ] );
52
-
53
- // Elementor Plugin Missing
54
- if ( ! did_action( 'elementor/loaded' ) ) {
55
- add_action( 'admin_notices', [ $this, 'admin_notice_missing_main_plugin' ] );
56
- }
57
 
58
  }
59
 
60
- // Missing Elementor Notices
61
- public function admin_notice_missing_main_plugin(){
62
- if ( ! is_admin() || ! $this->is_current_screen() ) {
63
- return;
64
- }else{
65
- \WooLentor\Base::instance()->admin_notice_missing_main_plugin();
66
- }
67
- }
68
-
69
  /**
70
  * [admin_menu] Add Post type Submenu
71
  *
@@ -193,6 +184,67 @@ class Woolentor_Template_Manager{
193
  }
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  /**
197
  * Get Template Menu Tabs
198
  *
@@ -212,7 +264,11 @@ class Woolentor_Template_Manager{
212
  ],
213
  ];
214
 
215
- return apply_filters( 'woolentor_template_menu_tabs', $tabs );
 
 
 
 
216
 
217
  }
218
 
@@ -238,7 +294,11 @@ class Woolentor_Template_Manager{
238
  ],
239
  ];
240
 
241
- return apply_filters( 'woolentor_template_types', $template_type );
 
 
 
 
242
 
243
  }
244
 
@@ -262,18 +322,22 @@ class Woolentor_Template_Manager{
262
  if( !empty( $get_data['templates'] ) ){
263
  foreach( $get_data['templates'] as $template ){
264
 
265
- if( $template['shareId'] == 'Shop'){
266
- $data['shop'][] = $template;
267
- $data['archive'][] = $template;
268
- }else if($template['shareId'] == 'Product Details'){
269
- $data['single'][] = $template;
270
- }else if($template['shareId'] == 'Cart'){
271
- $data['cart'][] = $template;
272
- }else if( $template['shareId'] == 'Checkout Page' ){
273
- $data['checkout'][] = $template;
274
- }
275
- else if( $template['shareId'] == 'My Account' ){
276
- $data['myaccount'][] = $template;
 
 
 
 
277
  }
278
 
279
  }
@@ -375,6 +439,11 @@ class Woolentor_Template_Manager{
375
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
376
  'nonce' => wp_create_nonce('woolentor_tmp_nonce'),
377
  'templatetype' => self::get_template_type(),
 
 
 
 
 
378
  'templatelist' => $this->get_template_library(),
379
  'adminURL' => admin_url(),
380
  'labels' => [
@@ -384,6 +453,7 @@ class Woolentor_Template_Manager{
384
  'placeholder' => __('Enter a template name','woolentor')
385
  ],
386
  'type' => __('Type','woolentor'),
 
387
  'setdefault' => __('Set Default','woolentor'),
388
  ],
389
  'head' => __('Template Settings','woolentor'),
@@ -447,6 +517,7 @@ class Woolentor_Template_Manager{
447
  $title = !empty( $_POST['title'] ) ? sanitize_text_field( $_POST['title'] ) : esc_html__( 'WooLentor template '.time(), 'woolentor' );
448
  $tmpid = !empty( $_POST['tmpId'] ) ? sanitize_text_field( $_POST['tmpId'] ) : '';
449
  $tmpType = !empty( $_POST['tmpType'] ) ? sanitize_text_field( $_POST['tmpType'] ) : 'single';
 
450
  $setDefault = !empty( $_POST['setDefault'] ) ? sanitize_text_field( $_POST['setDefault'] ) : 'no';
451
  $sampleTmpID = !empty( $_POST['sampleTmpID'] ) ? sanitize_text_field( $_POST['sampleTmpID'] ) : '';
452
  $sampleTmpBuilder = !empty( $_POST['sampleTmpBuilder'] ) ? sanitize_text_field( $_POST['sampleTmpBuilder'] ) : '';
@@ -460,6 +531,10 @@ class Woolentor_Template_Manager{
460
  'sampletmpbuilder' => $sampleTmpBuilder
461
  ];
462
 
 
 
 
 
463
  if( $tmpid ){
464
  $this->update( $data );
465
  }else{
@@ -497,16 +572,22 @@ class Woolentor_Template_Manager{
497
  );
498
 
499
  // Meta data
500
- $default_page_template = apply_filters( 'woolentor_default_page_template', 'elementor_header_footer', $data['tmptype'] );
 
 
501
  update_post_meta( $new_post_id, self::CPT_META . '_type', $data['tmptype'] );
 
502
  update_post_meta( $new_post_id, '_wp_page_template', $default_page_template );
503
 
 
 
 
 
504
  // Sample data import
505
  if( !empty( $data['sampletmpid'] ) && $data['sampletmpbuilder'] == 'elementor' ){
506
  $templateurl = sprintf( Woolentor_Template_Library_Manager::get_api_templateapi(), $data['sampletmpid'] );
507
  $response_data = Woolentor_Template_Library_Manager::get_content_remote_request( $templateurl );
508
  update_post_meta( $new_post_id, '_elementor_data', $response_data['content']['content'] );
509
- update_post_meta( $new_post_id, '_elementor_edit_mode', 'builder' );
510
  }
511
 
512
  if( $data['setdefaullt'] == 'yes' ) {
@@ -547,7 +628,6 @@ class Woolentor_Template_Manager{
547
  $templateurl = sprintf( Woolentor_Template_Library_Manager::get_api_templateapi(), $data['sampletmpid'] );
548
  $response_data = Woolentor_Template_Library_Manager::get_content_remote_request( $templateurl );
549
  update_post_meta( $data['id'], '_elementor_data', $response_data['content']['content'] );
550
- update_post_meta( $data['id'], '_elementor_edit_mode', 'builder' );
551
  }
552
 
553
  if( $data['setdefaullt'] == 'yes' ) {
@@ -583,9 +663,11 @@ class Woolentor_Template_Manager{
583
  $tmpid = !empty( $_POST['tmpId'] ) ? sanitize_text_field( $_POST['tmpId'] ) : '';
584
  $postdata = get_post( $tmpid );
585
  $tmpType = !empty( get_post_meta( $tmpid, self::CPT_META . '_type', true ) ) ? get_post_meta( $tmpid, self::CPT_META . '_type', true ) : 'single';
 
586
  $data = [
587
  'tmpTitle' => $postdata->post_title,
588
  'tmpType' => $tmpType,
 
589
  'setDefault' => isset( self::get_template_type()[$tmpType]['optionkey'] ) ? woolentor_get_option( self::get_template_type()[$tmpType]['optionkey'], 'woolentor_woo_template_tabs', '0' ) : '0',
590
  ];
591
  wp_send_json_success( $data );
21
 
22
  //Add Menu
23
  add_action( 'admin_menu', [ $this, 'admin_menu' ], 225 );
24
+
25
  // Load Scripts
26
  add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
27
 
37
 
38
  // query filter
39
  add_filter( 'parse_query', [ $this, 'query_filter' ] );
40
+
41
+ // Post Row Action
42
+ add_filter( 'post_row_actions', [ $this, 'row_actions' ], 10, 2 );
43
+
44
+ add_filter('theme_'.self::CPTTYPE.'_templates', [ $this, 'add_page_templates' ], 999, 4 );
45
 
46
  // Template store ajax action
47
  add_action( 'wp_ajax_woolentor_template_store', [ $this, 'template_store_request' ] );
54
 
55
  // Template Import
56
  add_action( 'wp_ajax_woolentor_import_template', [ $this, 'template_import' ] );
 
 
 
 
 
57
 
58
  }
59
 
 
 
 
 
 
 
 
 
 
60
  /**
61
  * [admin_menu] Add Post type Submenu
62
  *
184
  }
185
  }
186
 
187
+ /**
188
+ * Manage Row Action
189
+ *
190
+ * @param [array] $actions
191
+ * @param [object] $post
192
+ * @return array
193
+ */
194
+ public function row_actions( $actions, $post ) {
195
+ if ( $post->post_type == self::CPTTYPE ) {
196
+
197
+ // if ( isset( $actions['edit'] ) ) {
198
+ // $actions['edit'] = str_replace( strip_tags( $actions['edit'] ), __( 'Edit with Gutenberg', 'woolentor' ), $actions['edit'] );
199
+ // }
200
+
201
+ //$new_element = array( 'condition' => '<a href="'.get_edit_post_link($post->ID).'" class="woolentor-builder-conditions">'.__('Edit Condition' , 'woolentor').'</a>' );
202
+ //array_splice( $actions, 1, 0, $new_element );
203
+
204
+ if( $this->edit_with_gutenberg( $post->ID ) ) {
205
+ $actions['woolentor_edit_with_gutenberg'] = '<a href="'.get_edit_post_link($post->ID).'">'.esc_html__('Edit With Gutenberg', 'woolentor').'</a>';
206
+ }
207
+
208
+ }
209
+ return $actions;
210
+ }
211
+
212
+ /**
213
+ * Add page templates.
214
+ *
215
+ * Fired by `theme_self::CPTTYPE_templates` filter.
216
+ *
217
+ * @param array $page_templates Array of page templates. Keys are filenames,
218
+ *
219
+ * @param \WP_Theme $wp_theme
220
+ * @param \WP_Post $post
221
+ *
222
+ * @return array Page templates.
223
+ */
224
+ public function add_page_templates( $page_templates, $wp_theme, $post ){
225
+ unset( $page_templates['elementor_theme'] );
226
+
227
+ $page_templates['woolentor_canvas'] = esc_html__('WooLentor Canvas', 'woolentor');
228
+ $page_templates['woolentor_fullwidth'] = esc_html__('WooLentor Full width', 'woolentor');
229
+
230
+ return $page_templates;
231
+ }
232
+
233
+ /**
234
+ * Check edit with gutenberg
235
+ *
236
+ * @param [ind] $id
237
+ * @return boolean
238
+ */
239
+ public function edit_with_gutenberg( $id ){
240
+ $editor = get_post_meta( $id, 'woolentor_template_meta_editor', true );
241
+ if( ! empty( $editor ) && $editor === 'gutenberg' ){
242
+ return true;
243
+ }else{
244
+ return false;
245
+ }
246
+ }
247
+
248
  /**
249
  * Get Template Menu Tabs
250
  *
264
  ],
265
  ];
266
 
267
+ if ( ! did_action( 'elementor/loaded' ) ) {
268
+ return $tabs;
269
+ }else{
270
+ return apply_filters( 'woolentor_template_menu_tabs', $tabs );
271
+ }
272
 
273
  }
274
 
294
  ],
295
  ];
296
 
297
+ if ( ! did_action( 'elementor/loaded' ) ) {
298
+ return $template_type;
299
+ }else{
300
+ return apply_filters( 'woolentor_template_types', $template_type );
301
+ }
302
 
303
  }
304
 
322
  if( !empty( $get_data['templates'] ) ){
323
  foreach( $get_data['templates'] as $template ){
324
 
325
+ if( $template['post_type'] === 'woolentor-template' ){
326
+ $data[$template['type']][] = $template;
327
+ }else{
328
+ if( $template['shareId'] == 'Shop'){
329
+ $data['shop'][] = $template;
330
+ $data['archive'][] = $template;
331
+ }else if($template['shareId'] == 'Product Details'){
332
+ $data['single'][] = $template;
333
+ }else if($template['shareId'] == 'Cart'){
334
+ $data['cart'][] = $template;
335
+ }else if( $template['shareId'] == 'Checkout Page' ){
336
+ $data['checkout'][] = $template;
337
+ }
338
+ else if( $template['shareId'] == 'My Account' ){
339
+ $data['myaccount'][] = $template;
340
+ }
341
  }
342
 
343
  }
439
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
440
  'nonce' => wp_create_nonce('woolentor_tmp_nonce'),
441
  'templatetype' => self::get_template_type(),
442
+ 'haselementor' => woolentor_is_elementor_editor() ? 'yes' : 'no',
443
+ 'editor' => [
444
+ 'elementor' => __('Elementor','woolentor'),
445
+ 'gutenberg' => __('Gutenberg','woolentor')
446
+ ],
447
  'templatelist' => $this->get_template_library(),
448
  'adminURL' => admin_url(),
449
  'labels' => [
453
  'placeholder' => __('Enter a template name','woolentor')
454
  ],
455
  'type' => __('Type','woolentor'),
456
+ 'editor' => __('Select Editor','woolentor'),
457
  'setdefault' => __('Set Default','woolentor'),
458
  ],
459
  'head' => __('Template Settings','woolentor'),
517
  $title = !empty( $_POST['title'] ) ? sanitize_text_field( $_POST['title'] ) : esc_html__( 'WooLentor template '.time(), 'woolentor' );
518
  $tmpid = !empty( $_POST['tmpId'] ) ? sanitize_text_field( $_POST['tmpId'] ) : '';
519
  $tmpType = !empty( $_POST['tmpType'] ) ? sanitize_text_field( $_POST['tmpType'] ) : 'single';
520
+ $tmpEditor = !empty( $_POST['tmpEditor'] ) ? sanitize_text_field( $_POST['tmpEditor'] ) : 'gutenberg';
521
  $setDefault = !empty( $_POST['setDefault'] ) ? sanitize_text_field( $_POST['setDefault'] ) : 'no';
522
  $sampleTmpID = !empty( $_POST['sampleTmpID'] ) ? sanitize_text_field( $_POST['sampleTmpID'] ) : '';
523
  $sampleTmpBuilder = !empty( $_POST['sampleTmpBuilder'] ) ? sanitize_text_field( $_POST['sampleTmpBuilder'] ) : '';
531
  'sampletmpbuilder' => $sampleTmpBuilder
532
  ];
533
 
534
+ if( empty( $tmpid ) ){
535
+ $data['tmpeditor'] = $tmpEditor;
536
+ }
537
+
538
  if( $tmpid ){
539
  $this->update( $data );
540
  }else{
572
  );
573
 
574
  // Meta data
575
+ $template_slug = ( $data['tmpeditor'] === 'elementor' ) ? 'elementor_header_footer' : 'woolentor_fullwidth';
576
+ $default_page_template = apply_filters( 'woolentor_default_page_template', $template_slug, $data['tmptype'] );
577
+
578
  update_post_meta( $new_post_id, self::CPT_META . '_type', $data['tmptype'] );
579
+ update_post_meta( $new_post_id, self::CPT_META . '_editor', $data['tmpeditor'] );
580
  update_post_meta( $new_post_id, '_wp_page_template', $default_page_template );
581
 
582
+ if( $data['tmpeditor'] === 'elementor' ){
583
+ update_post_meta( $new_post_id, '_elementor_edit_mode', 'builder');
584
+ }
585
+
586
  // Sample data import
587
  if( !empty( $data['sampletmpid'] ) && $data['sampletmpbuilder'] == 'elementor' ){
588
  $templateurl = sprintf( Woolentor_Template_Library_Manager::get_api_templateapi(), $data['sampletmpid'] );
589
  $response_data = Woolentor_Template_Library_Manager::get_content_remote_request( $templateurl );
590
  update_post_meta( $new_post_id, '_elementor_data', $response_data['content']['content'] );
 
591
  }
592
 
593
  if( $data['setdefaullt'] == 'yes' ) {
628
  $templateurl = sprintf( Woolentor_Template_Library_Manager::get_api_templateapi(), $data['sampletmpid'] );
629
  $response_data = Woolentor_Template_Library_Manager::get_content_remote_request( $templateurl );
630
  update_post_meta( $data['id'], '_elementor_data', $response_data['content']['content'] );
 
631
  }
632
 
633
  if( $data['setdefaullt'] == 'yes' ) {
663
  $tmpid = !empty( $_POST['tmpId'] ) ? sanitize_text_field( $_POST['tmpId'] ) : '';
664
  $postdata = get_post( $tmpid );
665
  $tmpType = !empty( get_post_meta( $tmpid, self::CPT_META . '_type', true ) ) ? get_post_meta( $tmpid, self::CPT_META . '_type', true ) : 'single';
666
+ $tmpEditor = !empty( get_post_meta( $tmpid, self::CPT_META . '_editor', true ) ) ? get_post_meta( $tmpid, self::CPT_META . '_editor', true ) : 'elementor';
667
  $data = [
668
  'tmpTitle' => $postdata->post_title,
669
  'tmpType' => $tmpType,
670
+ 'tmpEditor' => $tmpEditor,
671
  'setDefault' => isset( self::get_template_type()[$tmpType]['optionkey'] ) ? woolentor_get_option( self::get_template_type()[$tmpType]['optionkey'], 'woolentor_woo_template_tabs', '0' ) : '0',
672
  ];
673
  wp_send_json_success( $data );
includes/admin/include/class.template_cpt.php CHANGED
@@ -15,6 +15,8 @@ class Woolentor_Template_CPT{
15
 
16
  function __construct(){
17
  add_action( 'init', [ $this, 'register_custom_post_type' ] );
 
 
18
  }
19
 
20
  public function register_custom_post_type() {
@@ -94,5 +96,63 @@ class Woolentor_Template_CPT{
94
  }
95
  }
96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
 
98
  }
15
 
16
  function __construct(){
17
  add_action( 'init', [ $this, 'register_custom_post_type' ] );
18
+ add_action( 'add_meta_boxes', [ $this, 'add_meta_boxes' ] );
19
+ add_action('save_post', [ $this, 'metabox_save_data' ] );
20
  }
21
 
22
  public function register_custom_post_type() {
96
  }
97
  }
98
 
99
+ /**
100
+ * Add Metaboxes
101
+ *
102
+ * @return void
103
+ */
104
+ public function add_meta_boxes() {
105
+ add_meta_box(
106
+ 'container_width',
107
+ esc_html__('Container Width', 'woolentor'),
108
+ [ $this, 'container_width_field' ],
109
+ self::CPTTYPE,
110
+ 'side'
111
+ );
112
+ }
113
+
114
+ /**
115
+ * Container field HTML
116
+ *
117
+ * @param [object] $post
118
+ * @return void
119
+ */
120
+ public function container_width_field( $post ) {
121
+ wp_nonce_field( 'woolentor_container_width', 'woolentor_container_width_nonce' );
122
+
123
+ $get_width = get_post_meta( $post->ID, '_woolentor_container_width', true );
124
+ $width = $get_width ? $get_width : (int)woolentorBlocks_get_option( 'container_width', 'woolentor_gutenberg_tabs', 1140 );
125
+
126
+ ?>
127
+ <p>
128
+ <input style="width:100%" type="number" name="container_width" value="<?php echo esc_attr( $width ); ?>" />
129
+ </p>
130
+ <?php
131
+ }
132
+
133
+ /**
134
+ * Save Meta box data
135
+ *
136
+ * @param [int] $post_id
137
+ * @return void
138
+ */
139
+ public function metabox_save_data( $post_id ) {
140
+
141
+ if ( ! isset( $_POST['woolentor_container_width_nonce'] ) ) {
142
+ return;
143
+ }
144
+
145
+ if ( ! wp_verify_nonce( $_POST['woolentor_container_width_nonce'], 'woolentor_container_width' ) ) {
146
+ return;
147
+ }
148
+
149
+ if ( ! isset( $_POST['container_width'] ) ) {
150
+ return;
151
+ }
152
+
153
+ $width = sanitize_text_field( $_POST['container_width'] );
154
+ update_post_meta( $post_id, '_woolentor_container_width', $width );
155
+
156
+ }
157
 
158
  }
includes/admin/templates/dashboard-gutenberg.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+
4
+ $settings_fields = Woolentor_Admin_Fields::instance()->fields()['woolentor_gutenberg_tabs']['settings'];
5
+ $blocks_fields = Woolentor_Admin_Fields::instance()->fields()['woolentor_gutenberg_tabs']['blocks'];
6
+
7
+ $all_fields = array_merge( $settings_fields, $blocks_fields );
8
+ $element_keys = Woolentor_Admin_Fields_Manager::instance()->get_field_key( $all_fields, 'name' );
9
+ ?>
10
+ <div id="woolentor_gutenberg_tabs" class="woolentor-admin-main-tab-pane">
11
+ <div class="woolentor-admin-main-tab-pane-inner">
12
+ <div class="woolentor-nested-tabs-area">
13
+ <ul class="woolentor-nested-tabs">
14
+ <li><a href="#general-settings" class="wlactive">Settings</a></li>
15
+ <li><a href="#blocks-settings">Blocks</a></li>
16
+ </ul>
17
+ </div>
18
+
19
+ <form class="woolentor-dashboard" id="woolentor-dashboard-settings-form" action="#" method="post" data-section="woolentor_gutenberg_tabs" data-fields='<?php echo wp_json_encode( $element_keys ); ?>'>
20
+ <div class="woolentor-admin-settings-area">
21
+
22
+ <!-- Settings Start -->
23
+ <div id="general-settings" class="woolentor-admin-nested-tab-pane wlactive">
24
+ <?php
25
+ foreach( $settings_fields as $key => $field ){
26
+ Woolentor_Admin_Fields_Manager::instance()->add_field( $field, 'woolentor_gutenberg_tabs' );
27
+ }
28
+ ?>
29
+ </div>
30
+ <!-- Settings End -->
31
+
32
+ <!-- Blocks Start -->
33
+ <div id="blocks-settings" class="woolentor-admin-nested-tab-pane">
34
+
35
+ <!-- Header Start -->
36
+ <div class="woolentor-admin-header woolentor-admin-header-two">
37
+ <div class="woolentor-admin-header-content">
38
+ <h6 class="woolentor-admin-header-title"><?php echo esc_html__('WooLentor Blocks','woolentor');?></h6>
39
+ <p class="woolentor-admin-header-text"><?php echo esc_html__('You can enable or disable all blocks by one click.','woolentor');?></p>
40
+ </div>
41
+ <div class="woolentor-admin-header-actions">
42
+ <button class="woolentor-admin-btn enable" data-switch-toggle="enable" data-switch-target="element"><?php echo esc_html__('Enable all','woolentor'); ?></button>
43
+ <button class="woolentor-admin-btn disable" data-switch-toggle="disable" data-switch-target="element"><?php echo esc_html__('Disable all','woolentor'); ?></button>
44
+ </div>
45
+ </div>
46
+ <!-- Header End -->
47
+
48
+ <div class="woolentor-admin-switch-blocks">
49
+ <?php
50
+ foreach( $blocks_fields as $key => $field ){
51
+ Woolentor_Admin_Fields_Manager::instance()->add_field( $field, 'woolentor_gutenberg_tabs' );
52
+ }
53
+ ?>
54
+ </div>
55
+
56
+ </div>
57
+ <!-- Blocks End -->
58
+
59
+ <div class="woolentor-admin-footer">
60
+ <button class="woolentor-admin-btn-save woolentor-admin-btn woolentor-admin-btn-primary hover-effect-1" style="margin-left:auto;" disabled="disabled"><?php echo esc_html__('Save Changes','woolentor');?></button>
61
+ </div>
62
+
63
+ </div>
64
+ </form>
65
+
66
+ </div>
67
+ </div>
includes/admin/templates/dashboard-module.php CHANGED
@@ -24,6 +24,7 @@
24
  </div>
25
  <!-- Header End -->
26
 
 
27
  <form class="woolentor-dashboard" id="woolentor-dashboard-module-form" action="#" method="post" data-section="woolentor_others_tabs" data-fields='<?php echo wp_json_encode( $element_keys ); ?>'>
28
 
29
  <!-- Modules Start -->
24
  </div>
25
  <!-- Header End -->
26
 
27
+
28
  <form class="woolentor-dashboard" id="woolentor-dashboard-module-form" action="#" method="post" data-section="woolentor_others_tabs" data-fields='<?php echo wp_json_encode( $element_keys ); ?>'>
29
 
30
  <!-- Modules Start -->
includes/admin/templates/dashboard-navs.php CHANGED
@@ -11,14 +11,22 @@
11
  <?php
12
  foreach( $navs as $key => $nav ){
13
  ?>
14
- <li class="woolentor-admin-main-nav-li"><a href="#<?php echo esc_attr( $nav['id'] ); ?>" class="woolentor-admin-main-nav-btn">
15
- <svg class="left" width="8" height="8" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
16
- <path d="M8 8H0L0.152774 7.97004C4.16091 7.18414 7.27643 4.01985 8 0V8Z" fill="currentColor" />
17
- </svg>
18
- <svg class="right" width="8" height="8" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
19
- <path d="M0 8H8L7.84723 7.97004C3.83909 7.18414 0.723573 4.01985 0 0V8Z" fill="currentColor" />
20
- </svg>
21
- <i class="wli <?php echo esc_attr( $nav['icon'] ); ?>"></i><?php echo esc_html__( $nav['title'],'woolentor'); ?></a>
 
 
 
 
 
 
 
 
22
  </li>
23
  <?php
24
  }
11
  <?php
12
  foreach( $navs as $key => $nav ){
13
  ?>
14
+ <li class="woolentor-admin-main-nav-li">
15
+ <a href="#<?php echo esc_attr( $nav['id'] ); ?>" class="woolentor-admin-main-nav-btn">
16
+ <svg class="left" width="8" height="8" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
17
+ <path d="M8 8H0L0.152774 7.97004C4.16091 7.18414 7.27643 4.01985 8 0V8Z" fill="currentColor" />
18
+ </svg>
19
+ <svg class="right" width="8" height="8" viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg">
20
+ <path d="M0 8H8L7.84723 7.97004C3.83909 7.18414 0.723573 4.01985 0 0V8Z" fill="currentColor" />
21
+ </svg>
22
+ <?php
23
+ if ( strstr( $nav['icon'], 'dashicons' ) ){
24
+ echo sprintf('<i class="dashicons %s"></i>%s', $nav['icon'], esc_html__( $nav['title'],'woolentor') );
25
+ }else{
26
+ echo sprintf('<i class="wli %s"></i>%s', $nav['icon'], esc_html__( $nav['title'],'woolentor') );
27
+ }
28
+ ?>
29
+ </a>
30
  </li>
31
  <?php
32
  }
includes/admin/templates/dashboard-sidebar.php CHANGED
@@ -6,7 +6,7 @@
6
  <div class="woolentor-admin-sidebar">
7
 
8
  <?php
9
- if( $sideBarNotice['notices'] && $sideBarNotice['notices']['sidebar'] ){
10
  if( $sideBarNotice['notices']['sidebar']['status'] == 1 ) {
11
  $proBannerLink = $sideBarNotice['notices']['sidebar']['link'] ? $sideBarNotice['notices']['sidebar']['link'] : '#';
12
  $proBannerTitle = $sideBarNotice['notices']['sidebar']['title'] ? $sideBarNotice['notices']['sidebar']['title'] : esc_html__('Promo Banner','woolentor');
@@ -21,9 +21,9 @@
21
  <?php if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ) :?>
22
  <div class="woolentor-pro-banner">
23
  <div class="woolentor-pro-banner-logo"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/logo.png" alt="<?php echo esc_attr__('Woolentor Logo','woolentor'); ?>"></div>
24
- <p class="woolentor-pro-banner-summary"><?php echo esc_html__('WooLentor is one of the most popular WooCommerce Elementor Addons on WordPress.org. It has been downloaded more than 1,278,953 times and 80,000 stores are using WooLentor plugin. Why not you?','woolentor'); ?></p>
25
  <ul class="woolentor-pro-banner-options">
26
- <li><?php echo esc_html__('76 Elementor Elements','woolentor'); ?></li>
27
  <li><?php echo esc_html__('15 Product Custom Templates','woolentor'); ?></li>
28
  <li><?php echo esc_html__('10 Custom Shop Page Templates','woolentor'); ?></li>
29
  <li><?php echo esc_html__('Cart Page, Checkout, My Account, Registration and Thank you page custom layout template','woolentor'); ?></li>
6
  <div class="woolentor-admin-sidebar">
7
 
8
  <?php
9
+ if( isset( $sideBarNotice['notices'] ) && is_array( $sideBarNotice['notices']['sidebar'] ) ){
10
  if( $sideBarNotice['notices']['sidebar']['status'] == 1 ) {
11
  $proBannerLink = $sideBarNotice['notices']['sidebar']['link'] ? $sideBarNotice['notices']['sidebar']['link'] : '#';
12
  $proBannerTitle = $sideBarNotice['notices']['sidebar']['title'] ? $sideBarNotice['notices']['sidebar']['title'] : esc_html__('Promo Banner','woolentor');
21
  <?php if( !is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ) :?>
22
  <div class="woolentor-pro-banner">
23
  <div class="woolentor-pro-banner-logo"><img src="<?php echo WOOLENTOR_ADDONS_PL_URL; ?>includes/admin/assets/images/logo.png" alt="<?php echo esc_attr__('Woolentor Logo','woolentor'); ?>"></div>
24
+ <p class="woolentor-pro-banner-summary"><?php echo esc_html__('WooLentor is one of the most popular WooCommerce Elementor Addons on WordPress.org. It has been downloaded more than 1,627,298 times and 90,000 stores are using WooLentor plugin. Why not you?','woolentor'); ?></p>
25
  <ul class="woolentor-pro-banner-options">
26
+ <li><?php echo esc_html__('100+ Elementor Elements','woolentor'); ?></li>
27
  <li><?php echo esc_html__('15 Product Custom Templates','woolentor'); ?></li>
28
  <li><?php echo esc_html__('10 Custom Shop Page Templates','woolentor'); ?></li>
29
  <li><?php echo esc_html__('Cart Page, Checkout, My Account, Registration and Thank you page custom layout template','woolentor'); ?></li>
includes/admin/templates/dashboard-welcome.php CHANGED
@@ -68,6 +68,5 @@
68
  <a href="https://hasthemes.com/subscribe-and-get-offers/" class="woolentor-admin-btn woolentor-admin-btn-primary" target="_blank"><?php echo esc_html__('Subscribe','woolentor'); ?></a>
69
  </div>
70
  <!-- Subscribe Banner End -->
71
-
72
  </div>
73
  </div>
68
  <a href="https://hasthemes.com/subscribe-and-get-offers/" class="woolentor-admin-btn woolentor-admin-btn-primary" target="_blank"><?php echo esc_html__('Subscribe','woolentor'); ?></a>
69
  </div>
70
  <!-- Subscribe Banner End -->
 
71
  </div>
72
  </div>
includes/admin/templates/template_edit_popup.php CHANGED
@@ -43,6 +43,21 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
43
  </select>
44
  </div>
45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  <div class="woolentor-template-edit-bottom-box">
47
 
48
  <div class="woolentor-template-edit-set-default-field woolentor-template-edit-set-checkbox">
@@ -50,15 +65,18 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
50
  <label class="woolentor-template-edit-set-checkbox-lable" for="woolentor-template-default">
51
  {{{data.heading.fields.setdefault}}}
52
  <span class="woolenor-help-tip">
 
53
  <span class="woolenor-help-text">It will override the WooCommerce default template with the template type you selected above.</span>
54
  </span>
55
  </label>
56
  </div>
57
 
 
58
  <div class="woolentor-template-edit-set-default-field woolentor-template-edit-set-design">
59
  <label>{{{data.heading.sampledata.visibility}}}</label>
60
  <span class="woolentor-template-edit-eye-icon dashicons dashicons-visibility"></span>
61
  </div>
 
62
 
63
  </div>
64
 
@@ -99,12 +117,12 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
99
  <div class="woolentor-template-edit-footer">
100
 
101
  <div class="woolentor-template-button-group">
102
- <div class="woolentor-template-button-item">
103
  <button class="woolentor-tmp-elementor">{{{ data.heading.buttons.elementor.label }}}</button>
104
  </div>
105
- <!-- <div class="woolentor-template-button-item">
106
- <button class="woolentor-tmp-gutenberg">//{{{ data.heading.buttons.gutenberg.label }}}</button>
107
- </div> -->
108
  <div class="woolentor-template-button-item">
109
  <button class="woolentor-tmp-save button button-primary disabled" disabled="disabled">{{{ data.heading.buttons.save.label }}}</button>
110
  </div>
43
  </select>
44
  </div>
45
 
46
+ <# if( data.haselementor === 'yes' ){ #>
47
+ <div class="woolentor-template-edit-field woolentor-template-editor-field">
48
+ <label class="woolentor-template-edit-label">{{{data.heading.fields.editor}}}</label>
49
+ <select class="woolentor-template-edit-input" name="woolentor-template-editor" id="woolentor-template-editor">
50
+ <#
51
+ _.each( data.editor, function( item, key ) {
52
+
53
+ #><option value="{{ key }}">{{{ item }}}</option><#
54
+
55
+ } );
56
+ #>
57
+ </select>
58
+ </div>
59
+ <# } #>
60
+
61
  <div class="woolentor-template-edit-bottom-box">
62
 
63
  <div class="woolentor-template-edit-set-default-field woolentor-template-edit-set-checkbox">
65
  <label class="woolentor-template-edit-set-checkbox-lable" for="woolentor-template-default">
66
  {{{data.heading.fields.setdefault}}}
67
  <span class="woolenor-help-tip">
68
+ <span class="woolentor-help-tip-trigger"><i class="dashicons dashicons-editor-help"></i></span>
69
  <span class="woolenor-help-text">It will override the WooCommerce default template with the template type you selected above.</span>
70
  </span>
71
  </label>
72
  </div>
73
 
74
+ <# if( data.haselementor === 'yes' ){ #>
75
  <div class="woolentor-template-edit-set-default-field woolentor-template-edit-set-design">
76
  <label>{{{data.heading.sampledata.visibility}}}</label>
77
  <span class="woolentor-template-edit-eye-icon dashicons dashicons-visibility"></span>
78
  </div>
79
+ <# } #>
80
 
81
  </div>
82
 
117
  <div class="woolentor-template-edit-footer">
118
 
119
  <div class="woolentor-template-button-group">
120
+ <div class="woolentor-template-button-item woolentor-editor-elementor {{ data.haselementor === 'yes' ? 'button-show' : '' }}">
121
  <button class="woolentor-tmp-elementor">{{{ data.heading.buttons.elementor.label }}}</button>
122
  </div>
123
+ <div class="woolentor-template-button-item woolentor-editor-gutenberg {{ data.haselementor === 'no' ? 'button-show' : '' }}">
124
+ <button class="woolentor-tmp-gutenberg">{{{ data.heading.buttons.gutenberg.label }}}</button>
125
+ </div>
126
  <div class="woolentor-template-button-item">
127
  <button class="woolentor-tmp-save button button-primary disabled" disabled="disabled">{{{ data.heading.buttons.save.label }}}</button>
128
  </div>
includes/base.php CHANGED
@@ -210,7 +210,7 @@ final class Base {
210
  return;
211
  }
212
 
213
- if( self::$template_info['notices'] ){
214
  ?>
215
  <style type="text/css">
216
  .woolentor-admin-notice.notice {
@@ -279,6 +279,7 @@ final class Base {
279
  */
280
  public function plugin_activate_hook() {
281
  add_option( 'woolentor_do_activation_redirect', TRUE );
 
282
  }
283
 
284
  /**
@@ -402,7 +403,13 @@ final class Base {
402
 
403
  // Builder File
404
  if( woolentor_get_option( 'enablecustomlayout', 'woolentor_woo_template_tabs', 'on' ) == 'on' ){
405
- require( WOOLENTOR_ADDONS_PL_PATH.'includes/wl_woo_shop.php' );
 
 
 
 
 
 
406
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/archive_product_render.php' );
407
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/class.product_video_gallery.php' );
408
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.product_query.php' );
210
  return;
211
  }
212
 
213
+ if( isset( self::$template_info['notices'] ) && is_array( self::$template_info['notices'] ) ){
214
  ?>
215
  <style type="text/css">
216
  .woolentor-admin-notice.notice {
279
  */
280
  public function plugin_activate_hook() {
281
  add_option( 'woolentor_do_activation_redirect', TRUE );
282
+ flush_rewrite_rules();
283
  }
284
 
285
  /**
403
 
404
  // Builder File
405
  if( woolentor_get_option( 'enablecustomlayout', 'woolentor_woo_template_tabs', 'on' ) == 'on' ){
406
+
407
+ if( woolentor_get_option( 'woolentoreditor', 'woolentor_woo_template_tabs', 'both' ) == 'elementor' ){
408
+ require( WOOLENTOR_ADDONS_PL_PATH.'includes/wl_woo_shop.php' );
409
+ }else{
410
+ require( WOOLENTOR_ADDONS_PL_PATH.'includes/manage_wc_template.php' );
411
+ }
412
+
413
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/archive_product_render.php' );
414
  require( WOOLENTOR_ADDONS_PL_PATH.'includes/class.product_video_gallery.php' );
415
  require( WOOLENTOR_ADDONS_PL_PATH.'classes/class.product_query.php' );
includes/helper-function.php CHANGED
@@ -28,11 +28,35 @@ function woolentor_elementor() {
28
  }
29
 
30
  /**
31
- * Elementor editor mode check
32
  * @return [boolean]
33
  */
34
  function woolentor_is_elementor_editor(){
35
- return class_exists('\Elementor\Plugin') ? \Elementor\Plugin::$instance->editor->is_edit_mode() : false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  }
37
 
38
  /**
@@ -721,9 +745,12 @@ if( class_exists('WooCommerce') ){
721
  }
722
 
723
  /* Sale Flash for Single Product page */
724
- function woolentor_show_product_sale_flash(){
725
  global $post, $product;
726
  if( is_a( $product, 'WC_Product' ) ){
 
 
 
727
  if( $product->is_on_sale() && $product->is_in_stock() ){
728
  echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woolentor' ) . '</span>', $post, $product );
729
  }else{
@@ -733,12 +760,16 @@ if( class_exists('WooCommerce') ){
733
  echo '<span class="outofstock onsale">'.esc_html( $out_of_stock_text ).'</span>';
734
  }
735
  }
 
 
 
736
  }
737
  }
738
 
739
  /* Sale badge */
740
- function woolentor_sale_flash( $offertype = 'default' ){
741
  global $product;
 
742
  if( $product->is_on_sale() && $product->is_in_stock() ){
743
  if( $offertype !='default' && $product->get_regular_price() > 0 ){
744
  $_off_percent = (1 - round($product->get_price() / $product->get_regular_price(), 2))*100;
@@ -777,6 +808,7 @@ if( class_exists('WooCommerce') ){
777
  echo '<span class="ht-stockout ht-product-label ht-product-label-right">'.esc_html( $out_of_stock_text ).'</span>';
778
  }
779
  }
 
780
 
781
  }
782
 
@@ -862,7 +894,7 @@ if( class_exists('WooCommerce') ){
862
 
863
  // Customize rating html
864
  if( !function_exists('woolentor_wc_get_rating_html') ){
865
- function woolentor_wc_get_rating_html(){
866
  if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' ) { return; }
867
  global $product;
868
  $rating_count = $product->get_rating_count();
@@ -872,7 +904,7 @@ if( class_exists('WooCommerce') ){
872
  $flug = 0;
873
 
874
  $icon_svg = get_option('elementor_experiment-e_font_icon_svg','default');
875
- $icon_prefix = $icon_svg == 'active' ? 'fa' : 'fas';
876
 
877
  if ( $rating_count > 0 ) {
878
  $wrapper_class = is_single() ? 'rating-number' : 'top-rated-rating';
@@ -886,14 +918,14 @@ if( class_exists('WooCommerce') ){
886
  echo '<i class="'.$icon_prefix.' fa-star"></i>';
887
  } else {
888
  if( $rating_fraction > 0 && $flug == 0 ){
889
- if( $icon_svg == 'active' ){
890
  echo '<i class="fa fa-star-half-o"></i>';
891
  }else{
892
  echo '<i class="fas fa-star-half-alt"></i>';
893
  }
894
  $flug = 1;
895
  } else {
896
- if( $icon_svg == 'active' ){
897
  echo '<i class="fa fa-star-o"></i>';
898
  }else{
899
  echo '<i class="far fa-star empty"></i>';
@@ -1188,4 +1220,16 @@ function woolentor_ajax_login(){
1188
 
1189
  wp_die();
1190
 
 
 
 
 
 
 
 
 
 
 
 
 
1191
  }
28
  }
29
 
30
  /**
31
+ * Is Elementor check
32
  * @return [boolean]
33
  */
34
  function woolentor_is_elementor_editor(){
35
+ return class_exists('\Elementor\Plugin') ? true : false;
36
+ }
37
+
38
+ /**
39
+ * Elementor editor mode
40
+ * @return [boolean]
41
+ */
42
+ function woolentor_is_elementor_editor_mode(){
43
+ if( woolentor_is_elementor_editor() && \Elementor\Plugin::instance()->editor->is_edit_mode() ){
44
+ return true;
45
+ }else{
46
+ return false;
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Template Preview mode
52
+ * @return [boolean]
53
+ */
54
+ function woolentor_is_preview_mode(){
55
+ if( woolentor_is_elementor_editor_mode() || get_post_type() === 'woolentor-template' ){
56
+ return true;
57
+ }else{
58
+ return false;
59
+ }
60
  }
61
 
62
  /**
745
  }
746
 
747
  /* Sale Flash for Single Product page */
748
+ function woolentor_show_product_sale_flash( $echo = true ){
749
  global $post, $product;
750
  if( is_a( $product, 'WC_Product' ) ){
751
+
752
+ if( $echo == false ){ ob_start(); }
753
+
754
  if( $product->is_on_sale() && $product->is_in_stock() ){
755
  echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'woolentor' ) . '</span>', $post, $product );
756
  }else{
760
  echo '<span class="outofstock onsale">'.esc_html( $out_of_stock_text ).'</span>';
761
  }
762
  }
763
+
764
+ if( $echo == false ){ return ob_get_clean(); }
765
+
766
  }
767
  }
768
 
769
  /* Sale badge */
770
+ function woolentor_sale_flash( $offertype = 'default', $echo = true ){
771
  global $product;
772
+ if( $echo == false ){ ob_start(); }
773
  if( $product->is_on_sale() && $product->is_in_stock() ){
774
  if( $offertype !='default' && $product->get_regular_price() > 0 ){
775
  $_off_percent = (1 - round($product->get_price() / $product->get_regular_price(), 2))*100;
808
  echo '<span class="ht-stockout ht-product-label ht-product-label-right">'.esc_html( $out_of_stock_text ).'</span>';
809
  }
810
  }
811
+ if( $echo == false ){ return ob_get_clean(); }
812
 
813
  }
814
 
894
 
895
  // Customize rating html
896
  if( !function_exists('woolentor_wc_get_rating_html') ){
897
+ function woolentor_wc_get_rating_html( $block = '' ){
898
  if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' ) { return; }
899
  global $product;
900
  $rating_count = $product->get_rating_count();
904
  $flug = 0;
905
 
906
  $icon_svg = get_option('elementor_experiment-e_font_icon_svg','default');
907
+ $icon_prefix = ( $icon_svg == 'active' || $block == 'yes' ) ? 'fa' : 'fas';
908
 
909
  if ( $rating_count > 0 ) {
910
  $wrapper_class = is_single() ? 'rating-number' : 'top-rated-rating';
918
  echo '<i class="'.$icon_prefix.' fa-star"></i>';
919
  } else {
920
  if( $rating_fraction > 0 && $flug == 0 ){
921
+ if( $icon_svg == 'active' || $block == 'yes' ){
922
  echo '<i class="fa fa-star-half-o"></i>';
923
  }else{
924
  echo '<i class="fas fa-star-half-alt"></i>';
925
  }
926
  $flug = 1;
927
  } else {
928
+ if( $icon_svg == 'active' || $block == 'yes' ){
929
  echo '<i class="fa fa-star-o"></i>';
930
  }else{
931
  echo '<i class="far fa-star empty"></i>';
1220
 
1221
  wp_die();
1222
 
1223
+ }
1224
+
1225
+ /**
1226
+ * Get Image Sizes
1227
+ */
1228
+ function woolentor_get_image_size() {
1229
+ $sizes = get_intermediate_image_sizes();
1230
+ $filter = array('full' => 'Full');
1231
+ foreach ( $sizes as $value ) {
1232
+ $filter[$value] = ucwords( str_replace( array('_', '-'), array(' ', ' '), $value ) );
1233
+ }
1234
+ return $filter;
1235
  }
includes/manage_wc_template.php ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Manage WC Template
4
+ */
5
+ class Woolentor_Manage_WC_Template{
6
+
7
+ private static $_instance = null;
8
+ public static function instance() {
9
+ if ( is_null( self::$_instance ) ) {
10
+ self::$_instance = new self();
11
+ }
12
+ return self::$_instance;
13
+ }
14
+
15
+ function __construct(){
16
+ add_action( 'init', [ $this, 'init' ] );
17
+ }
18
+
19
+ public function init(){
20
+
21
+ // Body classes
22
+ add_filter( 'body_class', [ $this, 'body_classes' ] );
23
+
24
+ // Add Admin bar Menu
25
+ add_action( 'admin_bar_menu', [ $this, 'add_menu_in_admin_bar' ], 300 );
26
+
27
+ // Product details page
28
+ add_filter( 'wc_get_template_part', [ $this, 'set_product_content_template' ], 99, 3 );
29
+ add_filter( 'template_include', [ $this, 'set_product_template' ], 100 );
30
+ add_action( 'woolentor_woocommerce_product_content', [ $this, 'set_product_builder_content' ], 5 );
31
+ add_action( 'woolentor_woocommerce_product_content', [ $this, 'get_default_product_data' ], 10 );
32
+
33
+ // Product Archive Page
34
+ // add_action('template_redirect', [ $this, 'archive_template_id' ], 999 );
35
+ add_filter('template_include', [ $this, 'set_product_archive_template' ], 999 );
36
+ add_action( 'woolentor_woocommerce_archive_product_content', [ $this, 'set_archive_product_builder_content' ] );
37
+
38
+ }
39
+
40
+ /**
41
+ * [body_classes]
42
+ * @param [array] $classes
43
+ * @return [array]
44
+ */
45
+ public function body_classes( $classes ){
46
+
47
+ $class_prefix = 'elementor-page-';
48
+
49
+ if ( is_product() && false !== self::has_template( 'singleproductpage', '_selectproduct_layout' ) ) {
50
+
51
+ $classes[] = $class_prefix.self::has_template( 'singleproductpage', '_selectproduct_layout' );
52
+
53
+ }elseif( is_checkout() && false !== self::has_template( 'productcheckoutpage' ) ){
54
+
55
+ $classes[] = $class_prefix.self::has_template( 'productcheckoutpage' );
56
+
57
+ }elseif( is_shop() && false !== self::has_template( 'productarchivepage' ) ){
58
+
59
+ $classes[] = $class_prefix.self::has_template( 'productarchivepage' );
60
+
61
+ }elseif ( is_account_page() ) {
62
+ if ( is_user_logged_in() && false !== self::has_template( 'productmyaccountpage' ) ) {
63
+ $classes[] = $class_prefix.self::has_template( 'productmyaccountpage' );
64
+ }else{
65
+ if( false !== self::has_template( 'productmyaccountloginpage' ) ){
66
+ $classes[] = $class_prefix.self::has_template( 'productmyaccountloginpage' );
67
+ }
68
+ }
69
+ }else{
70
+ if ( is_cart() && ! WC()->cart->is_empty() && false !== self::has_template( 'productcartpage' ) ) {
71
+ $classes[] = $class_prefix.self::has_template( 'productcartpage' );
72
+ }else{
73
+ if( false !== self::has_template( 'productemptycartpage' ) ){
74
+ $classes[] = $class_prefix.self::has_template( 'productemptycartpage' );
75
+ }
76
+ }
77
+ }
78
+
79
+ return $classes;
80
+
81
+ }
82
+
83
+ /**
84
+ * [add_menu_in_admin_bar] Add Admin Bar Menu For Navigate Quick Edit builder template
85
+ *
86
+ * @param \WP_Admin_Bar $wp_admin_bar
87
+ * @return void
88
+ */
89
+ public function add_menu_in_admin_bar( \WP_Admin_Bar $wp_admin_bar ) {
90
+
91
+ if( function_exists('woolentorBlocks_get_ID') ){
92
+ if( ! Woolentor_Template_Manager::instance()->edit_with_gutenberg( woolentorBlocks_get_ID() ) || is_admin()){
93
+ return;
94
+ }
95
+
96
+ $icon = WOOLENTOR_ADDONS_PL_URL.'includes/admin/assets/images/icons/menu-bar_32x32.png';
97
+
98
+ $wp_admin_bar->add_menu( [
99
+ 'id' => 'woolentor_template_builder',
100
+ 'parent' => '',
101
+ 'title' => sprintf( '<img src="%s" alt="%s">%s', $icon, __('WooLentor Admin Menu','woolentor'), esc_html__('WooLentor','woolentor') ),
102
+ ] );
103
+
104
+ $wp_admin_bar->add_menu( [
105
+ 'id' => 'woolentor_template_' . woolentorBlocks_get_ID() . get_the_ID(),
106
+ 'parent' => 'woolentor_template_builder',
107
+ 'href' => get_edit_post_link( woolentorBlocks_get_ID() ),
108
+ 'title' => sprintf( '%s', get_the_title( woolentorBlocks_get_ID() ) ),
109
+ 'meta' => [],
110
+ ] );
111
+ }
112
+
113
+ }
114
+
115
+ /**
116
+ * [has_template]
117
+ * @param [string] $field_key
118
+ * @return boolean | int
119
+ */
120
+ public static function has_template( $field_key = '', $meta_key = '' ){
121
+ $template_id = woolentor_get_option( $field_key, 'woolentor_woo_template_tabs', '0' );
122
+ $wlindividualid = !empty( $meta_key ) && get_post_meta( get_the_ID(), $meta_key, true ) ? get_post_meta( get_the_ID(), $meta_key, true ) : '0';
123
+
124
+ if( '0' !== $wlindividualid ){
125
+ return $wlindividualid;
126
+ }elseif( '0' !== $template_id ){
127
+ return $template_id;
128
+ }else{
129
+ return false;
130
+ }
131
+
132
+ }
133
+
134
+ /**
135
+ * [get_template_id]
136
+ * @param [string] $field_key
137
+ * @param [string] $meta_key
138
+ * @return boolean | int
139
+ */
140
+ public static function get_template_id( $field_key = '', $meta_key = '' ){
141
+ $wltemplateid = woolentor_get_option( $field_key, 'woolentor_woo_template_tabs', '0' );
142
+ $wlindividualid = !empty( $meta_key ) && get_post_meta( get_the_ID(), $meta_key, true ) ? get_post_meta( get_the_ID(), $meta_key, true ) : '0';
143
+
144
+ if( $wlindividualid != '0' ){
145
+ $wltemplateid = $wlindividualid;
146
+ }
147
+ return $wltemplateid;
148
+ }
149
+
150
+ /**
151
+ * [render_build_content]
152
+ * @param [int] $id
153
+ * @return string
154
+ */
155
+ public static function render_build_content( $id ){
156
+
157
+ $output = '';
158
+ $document = woolentor_is_elementor_editor() ? Elementor\Plugin::instance()->documents->get( $id ) : false;
159
+
160
+ if( $document && $document->is_built_with_elementor() ){
161
+ $output = Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $id );
162
+ }else{
163
+ $content = get_the_content( null, false, $id );
164
+
165
+ if ( has_blocks( $content ) ) {
166
+ $blocks = parse_blocks( $content );
167
+ foreach ( $blocks as $block ) {
168
+ $output .= render_block( $block );
169
+ }
170
+ }else{
171
+ $content = apply_filters( 'the_content', $content );
172
+ $content = str_replace(']]>', ']]&gt;', $content );
173
+ return $content;
174
+ }
175
+
176
+ }
177
+
178
+ return $output;
179
+
180
+ }
181
+
182
+ /*
183
+ * Manage Product Page
184
+ */
185
+ // Change Product page content template
186
+ public function set_product_content_template( $template, $slug, $name ) {
187
+ if ( 'content' === $slug && 'single-product' === $name ) {
188
+ if ( self::has_template( 'singleproductpage', '_selectproduct_layout' ) ) {
189
+ $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product.php';
190
+ }
191
+ }
192
+ return $template;
193
+ }
194
+
195
+ // Set Product page template
196
+ public function set_product_template( $template ) {
197
+ if ( is_embed() ) {
198
+ return $template;
199
+ }
200
+ if ( is_singular( 'product' ) ) {
201
+ if ( self::has_template( 'singleproductpage', '_selectproduct_layout' ) ) {
202
+ $templateid = get_page_template_slug( self::get_template_id( 'singleproductpage', '_selectproduct_layout' ) );
203
+ if ( ( 'elementor_header_footer' === $templateid ) || ( 'woolentor_fullwidth' === $templateid ) ) {
204
+ $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-fullwidth.php';
205
+ } elseif ( ( 'elementor_canvas' === $templateid ) || ( 'woolentor_canvas' === $templateid ) ) {
206
+ $template = WOOLENTOR_ADDONS_PL_PATH . 'wl-woo-templates/single-product-canvas.php';
207
+ }
208
+ }
209
+ }
210
+ return $template;
211
+ }
212
+
213
+ // Single product default content
214
+ public function get_default_product_data() {
215
+ WC()->structured_data->generate_product_data();
216
+ }
217
+
218
+ // Set Builder content
219
+ public static function set_product_builder_content() {
220
+ if ( self::has_template( 'singleproductpage', '_selectproduct_layout' ) ) {
221
+ $wltemplateid = self::get_template_id( 'singleproductpage', '_selectproduct_layout' );
222
+ echo self::render_build_content( $wltemplateid );
223
+ }
224
+ }
225
+
226
+ /*
227
+ * Manage product archive page
228
+ */
229
+ public function archive_template_id(){
230
+ $template_id = 0;
231
+
232
+ if ( defined('WOOCOMMERCE_VERSION') ) {
233
+
234
+ $termobj = get_queried_object();
235
+ $get_all_taxonomies = woolentor_get_taxonomies();
236
+
237
+ if ( is_shop() || ( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() ) || ( isset( $termobj->taxonomy ) && is_tax( $termobj->taxonomy ) && array_key_exists( $termobj->taxonomy, $get_all_taxonomies ) ) ) {
238
+
239
+ $product_shop_custom_page_id = self::get_template_id( 'productarchivepage' );
240
+
241
+ // Archive Layout Control
242
+ $wltermlayoutid = 0;
243
+ if(( is_tax('product_cat') && is_product_category() ) || ( is_tax('product_tag') && is_product_tag() )){
244
+
245
+ $product_archive_custom_page_id = self::get_template_id( 'productallarchivepage' );
246
+
247
+ // Get Meta Value
248
+ $wltermlayoutid = get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) ? get_term_meta( $termobj->term_id, 'wooletor_selectcategory_layout', true ) : '0';
249
+
250
+ if( !empty( $product_archive_custom_page_id ) && $wltermlayoutid == '0' ){
251
+ $wltermlayoutid = $product_archive_custom_page_id;
252
+ }
253
+
254
+ }
255
+ if( $wltermlayoutid != '0' ){
256
+ $template_id = $wltermlayoutid;
257
+ }else{
258
+ if ( !empty( $product_shop_custom_page_id ) ) {
259
+ $template_id = $product_shop_custom_page_id;
260
+ }
261
+ }
262
+ // return $template_id;
263
+ }
264
+
265
+ return $template_id;
266
+ }
267
+
268
+ }
269
+
270
+ public function set_product_archive_template( $template ){
271
+ $archive_template_id = $this->archive_template_id();
272
+ $templatefile = array();
273
+ $templatefile[] = 'wl-woo-templates/archive-product.php';
274
+ if( $archive_template_id != '0' ){
275
+ $template = locate_template( $templatefile );
276
+ if ( ! $template || ( ! empty( $status_options['template_debug_mode'] ) && current_user_can( 'manage_options' ) ) ){
277
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product.php';
278
+ }
279
+ $page_template_slug = get_page_template_slug( $archive_template_id );
280
+ if ( ( 'elementor_header_footer' === $page_template_slug ) || ( 'woolentor_fullwidth' === $page_template_slug ) ) {
281
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-fullwidth.php';
282
+ } elseif ( ( 'elementor_canvas' === $page_template_slug ) || ( 'woolentor_canvas' === $page_template_slug ) ) {
283
+ $template = WOOLENTOR_ADDONS_PL_PATH . '/wl-woo-templates/archive-product-canvas.php';
284
+ }
285
+ }
286
+ return $template;
287
+ }
288
+
289
+ // Set Builder Content
290
+ public function set_archive_product_builder_content(){
291
+ $archive_template_id = $this->archive_template_id();
292
+ if( $archive_template_id != '0' ){
293
+ echo self::render_build_content( $archive_template_id );
294
+ }
295
+ }
296
+
297
+ // Get Template width
298
+ public static function get_template_width( $template_id ){
299
+ $get_width = get_post_meta( $template_id, '_woolentor_container_width', true );
300
+ return $get_width ? $get_width : '';
301
+ }
302
+
303
+ // Get Builder Template ID
304
+ public function get_builder_template_id(){
305
+
306
+ if ( is_singular( 'product' ) ) {
307
+ if ( self::has_template( 'singleproductpage', '_selectproduct_layout' ) ) {
308
+ $template_id = self::get_template_id( 'singleproductpage', '_selectproduct_layout' );
309
+ }else{
310
+ $template_id = '';
311
+ }
312
+ }else{
313
+ $archive_template_id = $this->archive_template_id();
314
+ $template_id = $archive_template_id != '0' ? $archive_template_id : '';
315
+ }
316
+
317
+ return apply_filters( 'woolentor_builder_template_id', $template_id );
318
+
319
+ }
320
+
321
+ }
322
+
323
+ Woolentor_Manage_WC_Template::instance();
includes/modules/class.module-manager.php CHANGED
@@ -92,6 +92,21 @@ class Woolentor_Module_Manager{
92
  if( woolentor_get_option( 'enable', 'woolentor_shopify_checkout_settings', 'off' ) == 'on' ){
93
  require_once( WOOLENTOR_ADDONS_PL_PATH .'includes/modules/shopify-like-checkout/class.shopify-like-checkout.php' );
94
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
 
96
  // Flash Sale
97
  if( woolentor_get_option( 'enable', 'woolentor_flash_sale_settings', 'off' ) == 'on' ){
@@ -104,7 +119,7 @@ class Woolentor_Module_Manager{
104
  }
105
 
106
  // Pro-Modules
107
- if( is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ){
108
 
109
  // Partial payment
110
  if( ( woolentor_get_option( 'enable', 'woolentor_partial_payment_settings', 'off' ) == 'on' ) ){
92
  if( woolentor_get_option( 'enable', 'woolentor_shopify_checkout_settings', 'off' ) == 'on' ){
93
  require_once( WOOLENTOR_ADDONS_PL_PATH .'includes/modules/shopify-like-checkout/class.shopify-like-checkout.php' );
94
  }
95
+
96
+ // Variation swatch
97
+ if( woolentor_get_option( 'enable', 'woolentor_swatch_settings', 'off' ) == 'on' ){
98
+ $swatchly_plugin_status = is_plugin_active( 'swatchly/swatchly.php') || is_plugin_active( 'swatchly-pro/swatchly-pro.php') ? true : false;
99
+ if( !$swatchly_plugin_status ){
100
+ require_once( WOOLENTOR_ADDONS_PL_PATH .'includes/modules/variation-swatch/init.php' );
101
+ }else{
102
+ add_filter('woolentor_admin_fields',function( $fields ){
103
+ $element_keys = array_column( $fields['woolentor_others_tabs']['modules'], 'name' );
104
+ $unset_key = array_search('swatch_settings', $element_keys);
105
+ unset( $fields['woolentor_others_tabs']['modules'][$unset_key] );
106
+ return $fields;
107
+ });
108
+ }
109
+ }
110
 
111
  // Flash Sale
112
  if( woolentor_get_option( 'enable', 'woolentor_flash_sale_settings', 'off' ) == 'on' ){
119
  }
120
 
121
  // Pro-Modules
122
+ if( is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') && defined( "WOOLENTOR_ADDONS_PL_PATH_PRO" ) ){
123
 
124
  // Partial payment
125
  if( ( woolentor_get_option( 'enable', 'woolentor_partial_payment_settings', 'off' ) == 'on' ) ){
includes/modules/compare/includes/classes/Frontend/Manage_Compare.php CHANGED
@@ -194,6 +194,10 @@ class Manage_Compare {
194
  }
195
  }
196
 
 
 
 
 
197
  $buttonText = woolentor_get_option( 'shareable_link_button_text','ever_compare_table_settings_tabs','Copy shareable link' ) ? woolentor_get_option( 'shareable_link_button_text','ever_compare_table_settings_tabs','Copy shareable link' ) : esc_html__( 'Copy shareable link', 'ever-compare' );
198
  $aftercopy_buttonText = woolentor_get_option( 'shareable_link_after_button_text','ever_compare_table_settings_tabs','Copied' ) ? woolentor_get_option( 'shareable_link_after_button_text','ever_compare_table_settings_tabs','Copied' ) : esc_html__( 'Copied', 'ever-compare' );
199
  $button_pos = woolentor_get_option( 'linkshare_btn_pos','ever_compare_table_settings_tabs','right' );
194
  }
195
  }
196
 
197
+ if ( empty($ids) ) {
198
+ return;
199
+ }
200
+
201
  $buttonText = woolentor_get_option( 'shareable_link_button_text','ever_compare_table_settings_tabs','Copy shareable link' ) ? woolentor_get_option( 'shareable_link_button_text','ever_compare_table_settings_tabs','Copy shareable link' ) : esc_html__( 'Copy shareable link', 'ever-compare' );
202
  $aftercopy_buttonText = woolentor_get_option( 'shareable_link_after_button_text','ever_compare_table_settings_tabs','Copied' ) ? woolentor_get_option( 'shareable_link_after_button_text','ever_compare_table_settings_tabs','Copied' ) : esc_html__( 'Copied', 'ever-compare' );
203
  $button_pos = woolentor_get_option( 'linkshare_btn_pos','ever_compare_table_settings_tabs','right' );
includes/modules/shopify-like-checkout/assets/shopify-like-checkout.css CHANGED
@@ -1107,6 +1107,10 @@
1107
  display: block;
1108
  }
1109
 
 
 
 
 
1110
  .woolentor-checkout__box a:focus, .woolentor-checkout__box input:focus, .woolentor-checkout__box textarea:focus, .woolentor-checkout__box button:focus {
1111
  outline: none;
1112
  }
@@ -1440,4 +1444,11 @@
1440
  .woolentor-checkout__left-sidebar{
1441
  padding: 0 40px;
1442
  }
 
 
 
 
 
 
 
1443
  }
1107
  display: block;
1108
  }
1109
 
1110
+ .woolentor-step--payment .woolentor-step--payment{
1111
+ margin-bottom: 5px;
1112
+ }
1113
+
1114
  .woolentor-checkout__box a:focus, .woolentor-checkout__box input:focus, .woolentor-checkout__box textarea:focus, .woolentor-checkout__box button:focus {
1115
  outline: none;
1116
  }
1444
  .woolentor-checkout__left-sidebar{
1445
  padding: 0 40px;
1446
  }
1447
+ }
1448
+
1449
+ /* Third party compatibility
1450
+ ======================================================= */
1451
+ /* WooFunnel's order bump plugin */
1452
+ .woolentor-slc-terms-and-conditions .wfob_bump_wrapper{
1453
+ margin-top: 10px;
1454
  }
includes/modules/shopify-like-checkout/class.shopify-like-checkout.php CHANGED
@@ -7,6 +7,7 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
7
 
8
  public $hide_billing_company = true;
9
  public $hide_billing_phone = true;
 
10
 
11
  /**
12
  * Get Instance
@@ -22,8 +23,13 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
22
  * Constructor
23
  */
24
  function __construct(){
25
- $this->hide_billing_company = apply_filters('woolentor_slc_hide_billing_company', true);
26
- $this->hide_billing_phone = apply_filters('woolentor_slc_hide_billing_phone', true);
 
 
 
 
 
27
 
28
  // Enqueue scripts
29
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 999 );
@@ -207,8 +213,8 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
207
  }
208
 
209
  // Customize classes
210
- if( $field_name == 'billing_country' || $field_name == 'billing_state' || $field_name == 'billing_postcode' ){
211
- $fieldset['billing'][$field_name]['class'] = array('woolentor-one-third');
212
  }
213
  }
214
 
@@ -218,8 +224,8 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
218
  }
219
 
220
  // Customize classes
221
- if( $field_name == 'shipping_country' || $field_name == 'shipping_state' || $field_name == 'shipping_postcode' ){
222
- $fieldset['shipping'][$field_name]['class'] = array('woolentor-one-third');
223
  }
224
  }
225
 
@@ -309,6 +315,12 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
309
  $fragments['.woolentor-checkout__shipping-method'] = '<table class="woolentor-checkout__shipping-method"><tbody>'. ob_get_clean() .'</tbody></table>';
310
 
311
  $fragments['.woolentor-order-reivew-shipping-cost'] = '<sapn class="woolentor-order-reivew-shipping-fee">'. wc_price( $this::get_cart_totals_shipping_cost() ) .'</span>';
 
 
 
 
 
 
312
 
313
  return $fragments;
314
  }
@@ -484,6 +496,44 @@ class Woolentor_Shopify_Like_Checkout extends \WC_Checkout{
484
  return $args;
485
  }
486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  /**
488
  * Outputs a checkout/address form field.
489
  *
7
 
8
  public $hide_billing_company = true;
9
  public $hide_billing_phone = true;
10
+ public $field_manager_enable = false;
11
 
12
  /**
13
  * Get Instance
23
  * Constructor
24
  */
25
  function __construct(){
26
+ $this->hide_billing_company = woolentor_get_option( 'show_company', 'woolentor_shopify_checkout_settings', 'off' ) === 'on' ? false : apply_filters('woolentor_slc_hide_billing_company', true);
27
+ $this->hide_billing_phone = woolentor_get_option( 'show_phone', 'woolentor_shopify_checkout_settings', 'off' ) === 'on' ? false : apply_filters('woolentor_slc_hide_billing_phone', true);
28
+
29
+ // Field Manager Active status
30
+ if( woolentor_get_option( 'billing_enable', 'woolentor_checkout_fields', 'off' ) == 'on' || woolentor_get_option( 'shipping_enable', 'woolentor_checkout_fields', 'off' ) == 'on' ){
31
+ $this->field_manager_enable = true;
32
+ }
33
 
34
  // Enqueue scripts
35
  add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 999 );
213
  }
214
 
215
  // Customize classes
216
+ if( ( $this->field_manager_enable === false ) && ( $field_name == 'billing_country' || $field_name == 'billing_state' || $field_name == 'billing_postcode' ) ){
217
+ $fieldset['billing'][$field_name]['class'][] = 'woolentor-one-third';
218
  }
219
  }
220
 
224
  }
225
 
226
  // Customize classes
227
+ if( ( $this->field_manager_enable === false ) && ($field_name == 'shipping_country' || $field_name == 'shipping_state' || $field_name == 'shipping_postcode') ){
228
+ $fieldset['shipping'][$field_name]['class'][] = 'woolentor-one-third';
229
  }
230
  }
231
 
315
  $fragments['.woolentor-checkout__shipping-method'] = '<table class="woolentor-checkout__shipping-method"><tbody>'. ob_get_clean() .'</tbody></table>';
316
 
317
  $fragments['.woolentor-order-reivew-shipping-cost'] = '<sapn class="woolentor-order-reivew-shipping-fee">'. wc_price( $this::get_cart_totals_shipping_cost() ) .'</span>';
318
+
319
+ // Compatibilty for the WooFunnels order bump plugin
320
+ ob_start();
321
+ $this::review_order_mini_cart_html();
322
+
323
+ $fragments['.woolentor-checkout__right-sidebar .woolentor-checkout__prduct-box'] = '<div class="woolentor-checkout__prduct-box">' .ob_get_clean() . '</div>';
324
 
325
  return $fragments;
326
  }
496
  return $args;
497
  }
498
 
499
+ /**
500
+ * This method is used to display the mini cart in the checkout page review order section.
501
+ */
502
+ public static function review_order_mini_cart_html(){
503
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
504
+ $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
505
+
506
+ if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
507
+ ?>
508
+ <!-- Single product Start -->
509
+ <div class="woolentor-checkout__product">
510
+ <div class="woolentor-checkout__product-left">
511
+ <div class="woolentor-checkout__product-image">
512
+ <div class="woolentor-checkout__product-thumbnail">
513
+ <?php
514
+ if($_product->get_image_id()){
515
+ echo wp_kses_post(wp_get_attachment_image($_product->get_image_id()));
516
+ } else {
517
+ echo wc_placeholder_img();
518
+ }
519
+ ?>
520
+ </div>
521
+ <span class="woolentor-checkout__product-quantity"><?php echo esc_html($cart_item['quantity']) ?></span>
522
+ </div>
523
+ <div class="woolentor-checkout__product-description">
524
+ <span class="woolentor-checkout__product-name"><a href="<?php echo esc_url( get_permalink($_product->get_id()) ); ?>"><?php echo esc_html($_product->get_name()); ?></a></span>
525
+ </div>
526
+ </div>
527
+ <div class="woolentor-checkout__product-price-box">
528
+ <span class="woolentor-checkout__product-price"><?php echo wp_kses_post(wc_price($_product->get_price())) ?></span>
529
+ </div>
530
+ </div>
531
+ <!-- Single product End -->
532
+ <?php
533
+ }
534
+ }
535
+ }
536
+
537
  /**
538
  * Outputs a checkout/address form field.
539
  *
includes/modules/shopify-like-checkout/templates/form-checkout.php CHANGED
@@ -184,6 +184,8 @@ $labels = apply_filters( 'woolentor_slc_labels', $labels );
184
 
185
  <!-- Shipping address Start -->
186
  <div class="woolentor-checkout__section woolentor-step--info">
 
 
187
  <?php $checkout->checkout_form_billing(); ?>
188
 
189
  <?php
@@ -192,6 +194,8 @@ $labels = apply_filters( 'woolentor_slc_labels', $labels );
192
  }
193
  ?>
194
  <?php wp_nonce_field( 'woocommerce-process_checkout', 'woocommerce-process-checkout-nonce' ); ?>
 
 
195
  </div>
196
  <!-- Shipping address End -->
197
 
@@ -297,9 +301,6 @@ $labels = apply_filters( 'woolentor_slc_labels', $labels );
297
  <?php endif; ?>
298
 
299
  <div class="woolentor-checkout__step-footer step--payment woolentor-footer--3">
300
- <div>
301
- <?php wc_get_template( 'checkout/terms.php' ); ?>
302
- </div>
303
  <div>
304
  <?php
305
  $order_button_text = apply_filters( 'woocommerce_order_button_text', $labels['place_order'] );
@@ -372,40 +373,9 @@ $labels = apply_filters( 'woolentor_slc_labels', $labels );
372
 
373
  <div class="woolentor-checkout__prduct-box">
374
  <?php
375
- foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
376
- $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
377
-
378
- if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
379
- ?>
380
- <!-- Single product Start -->
381
- <div class="woolentor-checkout__product">
382
- <div class="woolentor-checkout__product-left">
383
- <div class="woolentor-checkout__product-image">
384
- <div class="woolentor-checkout__product-thumbnail">
385
- <?php
386
- if($_product->get_image_id()){
387
- echo wp_kses_post(wp_get_attachment_image($_product->get_image_id()));
388
- } else {
389
- echo wc_placeholder_img();
390
- }
391
- ?>
392
- </div>
393
- <span class="woolentor-checkout__product-quantity"><?php echo esc_html($cart_item['quantity']) ?></span>
394
- </div>
395
- <div class="woolentor-checkout__product-description">
396
- <span class="woolentor-checkout__product-name"><a href="<?php echo esc_url( get_permalink($_product->get_id()) ); ?>"><?php echo esc_html($_product->get_name()); ?></a></span>
397
- </div>
398
- </div>
399
- <div class="woolentor-checkout__product-price-box">
400
- <span class="woolentor-checkout__product-price"><?php echo wp_kses_post(wc_price($_product->get_price())) ?></span>
401
- </div>
402
- </div>
403
- <!-- Single product End -->
404
- <?php
405
- }
406
- }
407
  ?>
408
-
409
  </div>
410
 
411
  <!-- Coupon Code -->
184
 
185
  <!-- Shipping address Start -->
186
  <div class="woolentor-checkout__section woolentor-step--info">
187
+ <?php do_action( 'woocommerce_checkout_before_customer_details' ); ?>
188
+
189
  <?php $checkout->checkout_form_billing(); ?>
190
 
191
  <?php
194
  }
195
  ?>
196
  <?php wp_nonce_field( 'woocommerce-process_checkout', 'woocommerce-process-checkout-nonce' ); ?>
197
+
198
+ <?php do_action( 'woocommerce_checkout_after_customer_details' ); ?>
199
  </div>
200
  <!-- Shipping address End -->
201
 
301
  <?php endif; ?>
302
 
303
  <div class="woolentor-checkout__step-footer step--payment woolentor-footer--3">
 
 
 
304
  <div>
305
  <?php
306
  $order_button_text = apply_filters( 'woocommerce_order_button_text', $labels['place_order'] );
373
 
374
  <div class="woolentor-checkout__prduct-box">
375
  <?php
376
+ // Converted to method to avoid duplicate coding and comatibiltity with Order bump plugin
377
+ Woolentor_Shopify_Like_Checkout::review_order_mini_cart_html();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  ?>
 
379
  </div>
380
 
381
  <!-- Coupon Code -->
includes/modules/shopify-like-checkout/templates/payment.php CHANGED
@@ -23,6 +23,10 @@ if ( ! wp_doing_ajax() ) {
23
  ?>
24
  </ul>
25
  <?php endif; ?>
 
 
 
 
26
  </div>
27
  <?php
28
  if ( ! wp_doing_ajax() ) {
23
  ?>
24
  </ul>
25
  <?php endif; ?>
26
+
27
+ <div class="woolentor-slc-terms-and-conditions">
28
+ <?php wc_get_template( 'checkout/terms.php' ); ?>
29
+ </div>
30
  </div>
31
  <?php
32
  if ( ! wp_doing_ajax() ) {
includes/modules/variation-swatch/assets/css/admin.css ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Admin style.
3
+ Contain all admin style of the plugin.
4
+
5
+ /* 1. General
6
+ ======================================================= */
7
+ .swatchly_d_none,
8
+ .woolentor-condition-on {
9
+ display: none;
10
+ }
11
+ .csf-nav-options .swatchly_active{
12
+ position: relative;
13
+ }
14
+ .csf-nav-options .swatchly_active::after{
15
+ content: "";
16
+ width: 10px;
17
+ height: 10px;
18
+ color: #2dbe60;
19
+ background: #2dbe60;
20
+ position: absolute;
21
+ z-index: 1;
22
+ border-radius: 50%;
23
+ left: 7px;
24
+ top: 49%;
25
+ -webkit-transform: translateY(-51%);
26
+ -ms-transform: translateY(-51%);
27
+ transform: translateY(-51%);
28
+ line-height: 10px;
29
+ }
30
+
31
+ /*Taxonomy metabox*/
32
+ .swatchly-cs-field:after,
33
+ .swatchly-cs-field:before {
34
+ content: " ";
35
+ display: table;
36
+ }
37
+ .swatchly-cs-taxonomy {
38
+ max-width: 95%;
39
+ overflow: hidden;
40
+ }
41
+ .swatchly-cs-field .swatchly-cs-title h4 {
42
+ margin: 0;
43
+ color: #23282d;
44
+ }
45
+
46
+ .swatchly-cs-field-media .swatchly-cs--placeholder {
47
+ display: flex;
48
+ align-items: flex-start;
49
+ }
50
+ .swatchly-cs-field-media .swatchly-cs--placeholder input {
51
+ width: 100%;
52
+ margin: 0;
53
+ }
54
+
55
+ .swatchly-cs-field-media .hidden+.button {
56
+ margin-left: 0;
57
+ }
58
+
59
+ .swatchly-cs-field-media .swatchly-cs--preview {
60
+ position: relative;
61
+ }
62
+
63
+ .swatchly-cs-field-media .swatchly-cs--preview .fa-times {
64
+ position: absolute;
65
+ z-index: 1;
66
+ right: 2px;
67
+ top: 2px;
68
+ font-size: 14px;
69
+ width: 22px;
70
+ height: 22px;
71
+ line-height: 22px;
72
+ text-align: center;
73
+ text-decoration: none;
74
+ color: #fff;
75
+ background-color: #dd3333;
76
+ opacity: 0.75;
77
+ border-radius: 2px;
78
+ transition: all .2s;
79
+ }
80
+
81
+ .swatchly-cs-image-preview {
82
+ display: inline-block;
83
+ position: relative;
84
+ padding: 4px;
85
+ min-width: 100px;
86
+ min-height: 100px;
87
+ line-height: 100px;
88
+ margin-bottom: 10px;
89
+ text-align: center;
90
+ border-radius: 2px;
91
+ border: 1px solid #ccc;
92
+ background-color: #f9f9f9;
93
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
94
+ }
95
+ .swatchly-cs-image-preview img {
96
+ max-width: 100px;
97
+ max-height: 100px;
98
+ display: inline-block;
99
+ vertical-align: middle;
100
+ object-fit: contain;
101
+ }
102
+
103
+ .swatchly-cs-field-media .swatchly-cs--preview .fa-times:hover {
104
+ opacity: 1;
105
+ }
106
+
107
+ .swatchly-cs-field-media .swatchly-cs--preview .fa-times:focus {
108
+ box-shadow: none;
109
+ }
110
+
111
+ /* Add */
112
+ .swatchly-cs-taxonomy-add-fields .swatchly-cs-field {
113
+ padding: 8px 0;
114
+ }
115
+ .swatchly-cs-taxonomy-add-fields .swatchly-cs-field .swatchly-cs-title {
116
+ float: none;
117
+ width: 100%;
118
+ padding: 2px 2px 4px 0;
119
+ }
120
+ .swatchly-cs-taxonomy-add-fields .swatchly-cs-field .swatchly-cs-fieldset {
121
+ float: none;
122
+ width: 100%;
123
+ }
124
+ .swatchly-cs-taxonomy-add-fields + p.submit {
125
+ margin-top: 0;
126
+ }
127
+
128
+ /* Edit */
129
+ .swatchly-cs-taxonomy-edit-fields .swatchly-cs-field {
130
+ padding: 20px 0;
131
+ overflow: hidden;
132
+ }
133
+ .swatchly-cs-taxonomy-edit-fields .swatchly-cs-title {
134
+ position: relative;
135
+ width: 20%;
136
+ float: left;
137
+ }
138
+ .swatchly-cs-taxonomy-edit-fields .swatchly-cs-field .swatchly-cs-title {
139
+ width: 200px;
140
+ }
141
+ .swatchly-cs-taxonomy-edit-fields .swatchly-cs-field .swatchly-cs-title h4 {
142
+ font-size: 14px;
143
+ font-weight: 600;
144
+ line-height: 1.3;
145
+ display: inline-block;
146
+ vertical-align: middle;
147
+ }
148
+ .swatchly-cs-taxonomy-edit-fields .swatchly-cs-field .swatchly-cs-fieldset {
149
+ float: right;
150
+ width: calc(100% - 220px);
151
+ }
152
+ .swatchly-cs-after-text {
153
+ margin-top: 6px;
154
+ }
155
+
156
+ /*Swatch preview*/
157
+ table.wp-list-table td.column-thumb .swatchly_preview {
158
+ width: 44px;
159
+ height: 44px;
160
+ line-height: 44px;
161
+ text-align: center;
162
+ font-weight: 700;
163
+ border: 1px solid #ddd;
164
+ }
165
+
166
+ /* 2. Product Metabox
167
+ ======================================================= */
168
+ .swatchly .wc-metabox h3 .fr strong {
169
+ font-weight: 400;
170
+ margin-right: 5px;
171
+ }
172
+
173
+ .swatchly .wc-metabox h3 .fr select {
174
+ max-width: 100%;
175
+ margin: 0;
176
+ width: auto !important;
177
+ }
178
+
179
+ .swatchly .wc-metabox .wc-metabox {
180
+ border: 1px solid transparent;
181
+ margin-bottom: 10px !important;
182
+ }
183
+
184
+ .swatchly .wc-metabox .wc-metabox h3 {
185
+ border: 1px solid #eee !important;
186
+ }
187
+
188
+ .swatchly .wc-metabox .wc-metabox table {
189
+ border: 0;
190
+ }
191
+
192
+ .swatchly .wc-metabox .wc-metabox.open {
193
+ border: 1px solid #eee;
194
+ margin-bottom: 10px !important;
195
+ }
196
+
197
+ .swatchly .wc-metabox .wc-metabox h3 {
198
+ padding-top: 5px !important;
199
+ padding-bottom: 5px !important;
200
+ }
201
+
202
+ .swatchly .wc-metabox .wc-metabox.open h3 {
203
+ background: #eee;
204
+ }
205
+
206
+ .swatchly .wc-metabox .wc-metabox-content > table td select {
207
+ width: auto !important;
208
+ }
209
+
210
+ .swatchly.wc-metaboxes-wrapper .woocommerce-message {
211
+ display: none;
212
+ margin: 10px !important;
213
+ }
214
+
215
+ .swatchly_media_preview {
216
+ margin-right: 10px;
217
+ }
218
+
219
+ .swatchly_media_preview img {
220
+ width: 60px;
221
+ height: 60px;
222
+ }
223
+
224
+ /*Conditional fields*/
225
+ .swatchly_show_if_label,
226
+ .swatchly_show_if_color,
227
+ .swatchly_show_if_image,
228
+ .swatchly_show_if_tooltip_text,
229
+ .swatchly_show_if_tooltip_image,
230
+ .swatchly_show_if_enable_multi_color_1,
231
+ .swatchly_type_ .swatchly-cs-field.swatchly_hide_if_select,
232
+ .swatchly_type_select .swatchly-cs-field.swatchly_hide_if_select,
233
+ .swatchly_show_if_auto_convert_to_dropdown_image_1 {
234
+ display: none;
235
+ }
236
+
237
+ .swatchly_1.swatchly_type_color tr.swatchly_show_if_color,
238
+ .swatchly_1.swatchly_type_image tr.swatchly_show_if_image,
239
+ .swatchly_1.swatchly_tooltip_text tr.swatchly_show_if_tooltip_text,
240
+ .swatchly_1.swatchly_tooltip_image tr.swatchly_show_if_tooltip_image,
241
+ .swatchly_1.swatchly_type_color.swatchly_enable_multi_color_1 tr.swatchly_show_if_enable_multi_color_1,
242
+ .swatchly_2.swatchly_tooltip_text>.wc-metabox-content>table>tbody>tr.swatchly_show_if_tooltip_text,
243
+ .swatchly_2.swatchly_tooltip_image>.wc-metabox-content>table>tbody>tr.swatchly_show_if_tooltip_image {
244
+ display: table-row;
245
+ }
246
+
247
+ .swatchly_type_color .swatchly-cs-field.swatchly_show_if_color,
248
+ .swatchly_type_image .swatchly-cs-field.swatchly_show_if_image,
249
+ .swatchly_type_label .swatchly-cs-field.swatchly_show_if_label,
250
+ .swatchly_auto_convert_dropdowns_to_image_1 .swatchly_show_if_auto_convert_to_dropdown_image_1 {
251
+ display: block;
252
+ }
253
+
254
+ .swatchly .toolbar-top input[type="checkbox"] {
255
+ float: none;
256
+ }
257
+
258
+ .swatchly .toolbar-top label {
259
+ margin-left: 5px;
260
+ float: none;
261
+ width: auto;
262
+ }
263
+
264
+ .swatchly .toolbar-top .swatchly_condition label{
265
+ margin-left: 0;
266
+ }
267
+ .swatchly .wc-metabox table td input[type="text"] {
268
+ padding: 0px 4px;
269
+ }
270
+
271
+ .swatchly .wc-metabox table td input[type="checkbox"] {
272
+ width: 1rem;
273
+ min-width: 1rem;
274
+ }
275
+
276
+ .swatchly .wc-metabox .wp-picker-input-wrap {
277
+ min-width: 150px;
278
+ }
279
+
280
+ .swatchly .wc-metabox .swatchly_color_picker {
281
+ width: 4rem !important;
282
+ min-width: 4rem !important;
283
+ }
284
+
285
+ #swatchly_swatches_product_data .wc-metabox .wp-picker-clear {
286
+ display: inline-block;
287
+ min-width: auto;
288
+ width: auto;
289
+ }
290
+
291
+ .wc-metabox.swatchly_2.swatchly_type_ h3,
292
+ .wc-metabox.swatchly_2.swatchly_type_select h3 {
293
+ cursor: no-drop;
294
+ }
295
+
296
+ .wc-metabox.swatchly_2.swatchly_type_label h3,
297
+ .wc-metabox.swatchly_2.swatchly_type_color h3,
298
+ .wc-metabox.swatchly_2.swatchly_type_image h3 {
299
+ cursor: pointer;
300
+ }
301
+
302
+ .swatchly .wc-metabox.swatchly_1 table td {
303
+ padding: .6em .6em .6em 0;
304
+ vertical-align: middle;
305
+ }
includes/modules/variation-swatch/assets/css/frontend.css ADDED
@@ -0,0 +1,526 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Frontend style.
3
+ Contain all frontend style of the plugin.
4
+
5
+ /* 1. General
6
+ ======================================================= */
7
+ .swatchly-type-wrap *,
8
+ .swatchly-type-wrap *::after,
9
+ .swatchly-type-wrap *::before {
10
+ -webkit-box-sizing: border-box;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ .swatchly_d_none,
15
+ .single-product .variations_form .variations tr.swatchly_d_none {
16
+ display: none !important;
17
+ }
18
+
19
+
20
+ /* Swatch Alignment */
21
+ .swatchly_align_center .swatchly-type-wrap{
22
+ justify-content: center;
23
+ }
24
+ .swatchly_align_right .swatchly-type-wrap{
25
+ justify-content: flex-end;
26
+ }
27
+
28
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form tr,
29
+ .single-product .variations_form .variations tr{
30
+ display: grid !important;
31
+ grid-auto-columns: auto;
32
+ grid-auto-rows: auto;
33
+ justify-content: flex-start;
34
+ text-align: left;
35
+ grid-template-columns: auto;
36
+ grid-gap: 0;
37
+ width: 100%;
38
+ max-width: 100%;
39
+ border: unset !important;
40
+ margin-bottom: 10px;
41
+ height: auto !important;
42
+ }
43
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form td,
44
+ .single-product .variations_form .variations td{
45
+ display: flex;
46
+ justify-content: flex-start;
47
+ align-items: center;
48
+ text-align: left;
49
+ border: unset;
50
+ padding: 0;
51
+ margin: 0;
52
+ }
53
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form .reset_variations{
54
+ display: inline-block;
55
+ margin-left: 5px;
56
+ }
57
+
58
+ /* 2. Swatch design
59
+ ======================================================= */
60
+ .swatchly-type-wrap img {
61
+ max-width: 100%;
62
+ max-height: 100%;
63
+ }
64
+
65
+ .swatchly-type-wrap {
66
+ display: -webkit-box;
67
+ display: -webkit-flex;
68
+ display: -ms-flexbox;
69
+ display: flex;
70
+ -webkit-box-align: center;
71
+ -webkit-align-items: center;
72
+ -ms-flex-align: center;
73
+ align-items: center;
74
+ flex-wrap: wrap;
75
+ }
76
+
77
+ .swatchly-swatch {
78
+ margin: 5px 5px 5px 0;
79
+ position: relative;
80
+ background-size: cover;
81
+ display: -webkit-box;
82
+ display: -webkit-flex;
83
+ display: -ms-flexbox;
84
+ display: flex;
85
+ -webkit-box-align: center;
86
+ -webkit-align-items: center;
87
+ -ms-flex-align: center;
88
+ align-items: center;
89
+ -webkit-box-pack: center;
90
+ -webkit-justify-content: center;
91
+ -ms-flex-pack: center;
92
+ justify-content: center;
93
+ cursor: pointer;
94
+ -webkit-transition: all 0.2s ease-in-out;
95
+ -o-transition: all 0.2s ease-in-out;
96
+ transition: all 0.2s ease-in-out;
97
+ }
98
+
99
+ /*Width & Height controll*/
100
+ .swatchly-swatch {
101
+ min-width: 33px;
102
+ min-height: 33px;
103
+ }
104
+
105
+ .swatchly-type-image .swatchly-swatch {
106
+ width: 35px;
107
+ height: 35px;
108
+ }
109
+
110
+ /* border controll */
111
+ .swatchly-swatch{
112
+ border: 1px solid #d8d8d8;
113
+ }
114
+
115
+
116
+ .swatchly-swatch:last-child {
117
+ margin-right: 0;
118
+ }
119
+
120
+ .swatchly-swatch:focus {
121
+ display: none;
122
+ }
123
+
124
+ .swatchly-swatch .swatchly-content {
125
+ position: relative;
126
+ border: none;
127
+ text-align: center;
128
+ display: -webkit-box;
129
+ display: -webkit-flex;
130
+ display: -ms-flexbox;
131
+ display: flex;
132
+ -webkit-box-align: center;
133
+ -webkit-align-items: center;
134
+ -ms-flex-align: center;
135
+ align-items: center;
136
+ -webkit-box-pack: center;
137
+ -webkit-justify-content: center;
138
+ -ms-flex-pack: center;
139
+ justify-content: center;
140
+ padding: 0px 7px;
141
+ border-radius: 0px;
142
+ cursor: pointer;
143
+ -webkit-transition: all 0.3s ease-in-out;
144
+ -o-transition: all 0.3s ease-in-out;
145
+ transition: all 0.3s ease-in-out;
146
+ background-color: transparent;
147
+ }
148
+
149
+ .swatchly-inset .swatchly-swatch:before {
150
+ content: "";
151
+ position: absolute;
152
+ border: 2px solid #fff;
153
+ width: 100%;
154
+ height: 100%;
155
+ }
156
+
157
+
158
+ /*Swatch Types*/
159
+ .swatchly-type-image .swatchly-swatch:not(.swatchly-disabled) .swatchly-content {
160
+ padding: 0;
161
+ }
162
+
163
+ .swatchly-type-image .swatchly-content img {
164
+ vertical-align: middle;
165
+ width: 100%;
166
+ height: 100%;
167
+ }
168
+
169
+
170
+ /*Shapes*/
171
+ .swatchly-shape-type-rounded .swatchly-swatch {
172
+ border-radius: 3px;
173
+ }
174
+
175
+ .swatchly-shape-type-rounded .swatchly-content img {
176
+ border-radius: 3px;
177
+ }
178
+
179
+ .swatchly-shape-type-rounded.swatchly-type-image .swatchly-content {
180
+ display: inline-block;
181
+ height: 100%;
182
+ border-radius: 3px;
183
+ }
184
+
185
+ .swatchly-shape-type-circle .swatchly-swatch {
186
+ border-radius: 5000px;
187
+ }
188
+
189
+ .swatchly-shape-type-circle .swatchly-content {
190
+ text-align: center;
191
+ display: -webkit-box;
192
+ display: -webkit-flex;
193
+ display: -ms-flexbox;
194
+ display: flex;
195
+ -webkit-box-align: center;
196
+ -webkit-align-items: center;
197
+ -ms-flex-align: center;
198
+ align-items: center;
199
+ }
200
+
201
+ .swatchly-shape-type-circle .swatchly-content img {
202
+ border-radius: 5000px;
203
+ }
204
+
205
+ .swatchly-shape-type-circle.swatchly-type-image .swatchly-swatch .swatchly-content {
206
+ border-radius: 50000px;
207
+ text-align: center;
208
+ }
209
+
210
+ .swatchly-shape-type-circle.swatchly-type-image .swatchly-content img {
211
+ border-radius: 5000px;
212
+ vertical-align: middle;
213
+ }
214
+
215
+
216
+ /*Inset*/
217
+ .swatchly-shape-type-rounded.swatchly-inset .swatchly-swatch:before {
218
+ border-radius: 3px;
219
+ }
220
+
221
+ .swatchly-shape-type-circle.swatchly-inset .swatchly-swatch:before {
222
+ border-radius: 5000px;
223
+ }
224
+
225
+ /*Hover & Selected*/
226
+ .swatchly-swatch:hover,
227
+ .swatchly-swatch.swatchly-selected,
228
+ .swatchly-swatch.swatchly-more-button {
229
+ border-color: #000;
230
+ }
231
+
232
+ .swatchly-swatch.swatchly-more-button {
233
+ background-color: #000;
234
+ color: #ffffff;
235
+ }
236
+
237
+ .swatchly-shape-type-circle .swatchly-selected,
238
+ .swatchly-type-image .swatchly-shape-type-circle .swatchly-selected .swatchly-content {
239
+ border-radius: 5000px;
240
+ }
241
+
242
+ .swatchly-swatch.swatchly-selected.swatchly-content {
243
+ border: 1px solid #000 !important;
244
+ }
245
+
246
+
247
+ /*Disabled*/
248
+ .swatchly-swatch.swatchly-disabled {
249
+ position: relative;
250
+ pointer-events: none;
251
+ cursor: not-allowed;
252
+ overflow: hidden;
253
+ opacity: .7;
254
+ }
255
+
256
+ .swatchly-swatch.swatchly-disabled .swatchly-content:after,
257
+ .swatchly-type-image .swatchly-swatch.swatchly-disabled .swatchly-content:after {
258
+ -webkit-transform: rotate(-45deg);
259
+ -ms-transform: rotate(-45deg);
260
+ transform: rotate(-45deg);
261
+ }
262
+
263
+ .swatchly-swatch.swatchly-disabled .swatchly-content:before,
264
+ .swatchly-type-image .swatchly-swatch.swatchly-disabled .swatchly-content:before {
265
+ -webkit-transform: rotate(45deg);
266
+ -ms-transform: rotate(45deg);
267
+ transform: rotate(45deg);
268
+ }
269
+
270
+ .swatchly-swatch.swatchly-disabled .swatchly-content::after,
271
+ .swatchly-swatch.swatchly-disabled .swatchly-content::before,
272
+ .swatchly-type-image .swatchly-swatch.swatchly-disabled .swatchly-content::after,
273
+ .swatchly-type-image .swatchly-swatch.swatchly-disabled .swatchly-content::before {
274
+ position: absolute;
275
+ content: "";
276
+ opacity: 1;
277
+ border: 0;
278
+ margin: 0;
279
+ padding: 0;
280
+ min-width: auto;
281
+ width: 100%;
282
+ height: 1px;
283
+ background: #fd2727;
284
+ left: 0;
285
+ right: 0;
286
+ bottom: 0;
287
+ top: 50%;
288
+ visibility: visible;
289
+ }
290
+
291
+ .swatchly-blur-without-cross .swatchly-disabled .swatchly-content::before,
292
+ .swatchly-blur-without-cross .swatchly-disabled .swatchly-content::after,
293
+ .swatchly-blur .swatchly-disabled .swatchly-content::before,
294
+ .swatchly-blur .swatchly-disabled .swatchly-content::after {
295
+ display: none;
296
+ }
297
+
298
+ .swatchly-blur-with-cross .swatchly-disabled,
299
+ .swatchly-blur .swatchly-disabled {
300
+ opacity: .3;
301
+ }
302
+
303
+ .swatchly-hide .swatchly-disabled {
304
+ display: none;
305
+ }
306
+
307
+
308
+ /* 3. Tooltip
309
+ ======================================================= */
310
+ .swatchly-swatch .swatchly-tooltip {
311
+ position: absolute;
312
+ background: #000;
313
+ text-align: center;
314
+ z-index: 999;
315
+ border: 2px solid #000;
316
+ align-items: center;
317
+ max-width: 150px;
318
+ width: max-content;
319
+ opacity: 0;
320
+ visibility: hidden;
321
+ -webkit-transition: opacity .6s, margin .3s;
322
+ -o-transition: opacity .6s, margin .3s;
323
+ transition: opacity .6s, margin .3s;
324
+ font-size: 13px;
325
+ line-height: 14px;
326
+ bottom: calc(100% + 10px);
327
+ left: 50%;
328
+ -webkit-transform: translateX(-50%);
329
+ -ms-transform: translateX(-50%);
330
+ transform: translateX(-50%);
331
+ color: #fff;
332
+ border-radius: 2px;
333
+ display: -webkit-box;
334
+ display: -webkit-flex;
335
+ display: -ms-flexbox;
336
+ display: flex;
337
+ -webkit-box-orient: vertical;
338
+ -webkit-box-direction: reverse;
339
+ -webkit-flex-direction: column-reverse;
340
+ -ms-flex-direction: column-reverse;
341
+ flex-direction: column-reverse;
342
+ -webkit-transition: all 0.3s ease-in-out;
343
+ -o-transition: all 0.3s ease-in-out;
344
+ transition: all 0.3s ease-in-out;
345
+ }
346
+
347
+ .swatchly-swatch .swatchly-tooltip::after {
348
+ border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #000;
349
+ border-style: solid;
350
+ border-width: 5px 0 5px 5px;
351
+ content: "";
352
+ height: 0;
353
+ position: absolute;
354
+ bottom: 10px;
355
+ left: 50%;
356
+ width: 0;
357
+ bottom: -9px;
358
+ -webkit-transform: translateX(-50%) rotate(90deg);
359
+ -ms-transform: translateX(-50%) rotate(90deg);
360
+ transform: translateX(-50%) rotate(90deg);
361
+ }
362
+
363
+ .swatchly-swatch .swatchly-tooltip-text {
364
+ white-space: normal;
365
+ padding: 7px 7px;
366
+ }
367
+
368
+ .swatchly-swatch .swatchly-tooltip-image {
369
+ background-color: #ffffff;
370
+ padding: 5px;
371
+ max-width: 80px;
372
+ width: 100%;
373
+ min-width: 50px;
374
+ }
375
+
376
+ .swatchly-swatch .swatchly-tooltip img {
377
+ /* Remove theme default margin */
378
+ margin: 0 !important;
379
+ }
380
+
381
+ .swatchly-swatch:hover .swatchly-tooltip {
382
+ visibility: visible;
383
+ opacity: 1;
384
+ }
385
+
386
+ .woocommerce.single-product div.product form.cart .variations td.label,
387
+ .woocommerce.single-product div.product form.cart .variations td.value {
388
+ width: auto;
389
+ display: block;
390
+ }
391
+
392
+
393
+ /* 4. Archive Page
394
+ ======================================================= */
395
+ .swatchly-more-button a {
396
+ color: #333;
397
+ text-decoration: none;
398
+ }
399
+
400
+ .swatchly-swatch.swatchly-more-button .swatchly-content::after {
401
+ content: '';
402
+ left: 50%;
403
+ top: 50%;
404
+ height: 18px;
405
+ width: 1px;
406
+ background-color: #fff;
407
+ position: absolute;
408
+ -webkit-transform: translateY(-50%);
409
+ -ms-transform: translateY(-50%);
410
+ transform: translateY(-50%);
411
+ }
412
+
413
+ .swatchly-swatch.swatchly-more-button .swatchly-content::before {
414
+ content: '';
415
+ left: 50%;
416
+ top: 50%;
417
+ height: 1px;
418
+ width: 18px;
419
+ background-color: #fff;
420
+ position: absolute;
421
+ -webkit-transform: translateX(-50%);
422
+ -ms-transform: translateX(-50%);
423
+ transform: translateX(-50%);
424
+ }
425
+
426
+ /*Loop variation form*/
427
+ .swatchly_loop_variation_form table {
428
+ border: none;
429
+ margin-bottom: 0px;
430
+ background: transparent !important;
431
+ }
432
+
433
+ .swatchly_loop_variation_form table td {
434
+ border: unset;
435
+ padding: 0 5px 0 0 !important;
436
+ }
437
+
438
+ .swatchly_loop_variation_form td.value {
439
+ padding-bottom: 5px;
440
+ }
441
+
442
+ /*center align*/
443
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form.swatchly_align_center tr,
444
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form.swatchly_align_center td{
445
+ text-align: center;
446
+ justify-content: center;
447
+ }
448
+ .swatchly_loop_variation_form.swatchly_align_center td{
449
+ text-align: center;
450
+ }
451
+
452
+ /*right align*/
453
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form.swatchly_align_right tr,
454
+ .swatchly_pl_show_swatches_label_1 .swatchly_loop_variation_form.swatchly_align_right td{
455
+ text-align: right;
456
+ justify-content: flex-end;
457
+ }
458
+ .swatchly_loop_variation_form.swatchly_align_right td{
459
+ text-align: right;
460
+ }
461
+
462
+ .swatchly_loop_variation_form.swatchly_align_right td.value,
463
+ .swatchly_loop_variation_form.swatchly_align_right .swatchly-type-wrap {
464
+ text-align: right;
465
+ justify-content: flex-end;
466
+ }
467
+
468
+ .swatchly_loop_variation_form.swatchly_align_right .reset_variations {
469
+ display: inline-block;
470
+ text-align: right;
471
+ }
472
+ .swatchly_pl.swatchly_out_of_stock p {
473
+ margin-bottom: 0;
474
+ color: red;
475
+ }
476
+
477
+ .swatchly_default_select {
478
+ display: none !important;
479
+ }
480
+
481
+ /*Notice*/
482
+ #TB_window #TB_title {
483
+ background: transparent;
484
+ border-bottom: none;
485
+ }
486
+
487
+ #TB_window #TB_ajaxContent {
488
+ -webkit-box-sizing: border-box;
489
+ -moz-box-sizing: border-box;
490
+ box-sizing: border-box;
491
+ background-color: #fff;
492
+ width: 100% !important;
493
+ height: auto !important;
494
+ max-height: 80vh !important;
495
+ overflow: auto;
496
+ padding: 0 15px;
497
+ }
498
+
499
+ /* 5. Theme Support
500
+ ======================================================= */
501
+
502
+ /* Hello elementor */
503
+ .theme-hello-elementor table.variations tbody>tr>td,
504
+ .theme-hello-elementor table.variations tbody>tr>th{
505
+ background: transparent;
506
+ }
507
+
508
+ /* Woodmart */
509
+ .theme-woodmart.single-product .variations label:after{
510
+ display: none;
511
+ }
512
+ .theme-woodmart .swatchly_loop_variation_form .reset_variations{
513
+ visibility: visible !important;
514
+ opacity: 1 !important;
515
+ pointer-events: auto;
516
+ }
517
+
518
+ /* Salient */
519
+ body.theme-salient.swatchly_pl_show_clear_link_1 .swatchly_loop_variation_form .reset_variations {
520
+ display: inline-block !important;
521
+ }
522
+
523
+ /* Woolentor */
524
+ .quick-cart-loaded .swatchly_loop_variation_form{
525
+ display: none;
526
+ }
includes/modules/variation-swatch/assets/js/add-to-cart-variation.js ADDED
@@ -0,0 +1,878 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*global swatchly_add_to_cart_variation_params */
2
+ ;(function ( $, window, document, undefined ) {
3
+
4
+ /**
5
+ * VariationForm class which handles variation forms and attributes.
6
+ */
7
+ var VariationForm = function( $form ) {
8
+ var self = this;
9
+
10
+ self.$form = $form;
11
+ self.$attributeFields = $form.find( '.variations select' );
12
+ self.$singleVariation = $form.find( '.single_variation' );
13
+ self.$singleVariationWrap = $form.find( '.single_variation_wrap' );
14
+ self.$resetVariations = $form.find( '.reset_variations' );
15
+ self.$product = $form.closest( '.product' );
16
+ self.variationData = $form.data( 'product_variations' );
17
+ self.useAjax = false === self.variationData;
18
+ self.xhr = false;
19
+ self.loading = true;
20
+
21
+ // Initial state.
22
+ self.$singleVariationWrap.show();
23
+ self.$form.off( '.wc-variation-form' );
24
+
25
+ // Methods.
26
+ self.getChosenAttributes = self.getChosenAttributes.bind( self );
27
+ self.findMatchingVariations = self.findMatchingVariations.bind( self );
28
+ self.isMatch = self.isMatch.bind( self );
29
+ self.toggleResetLink = self.toggleResetLink.bind( self );
30
+
31
+ // Events.
32
+ $form.on( 'click.wc-variation-form', '.reset_variations', { variationForm: self }, self.onReset );
33
+ $form.on( 'reload_product_variations', { variationForm: self }, self.onReload );
34
+ $form.on( 'hide_variation', { variationForm: self }, self.onHide );
35
+ $form.on( 'show_variation', { variationForm: self }, self.onShow );
36
+ $form.on( 'click', '.single_add_to_cart_button', { variationForm: self }, self.onAddToCart );
37
+ $form.on( 'reset_data', { variationForm: self }, self.onResetDisplayedVariation );
38
+ $form.on( 'reset_image', { variationForm: self }, self.onResetImage );
39
+ $form.on( 'change.wc-variation-form', '.variations select', { variationForm: self }, self.onChange );
40
+ $form.on( 'found_variation.wc-variation-form', { variationForm: self }, self.onFoundVariation );
41
+ $form.on( 'check_variations.wc-variation-form', { variationForm: self }, self.onFindVariation );
42
+ $form.on( 'update_variation_values.wc-variation-form', { variationForm: self }, self.onUpdateAttributes );
43
+
44
+ // Init after gallery.
45
+ setTimeout( function() {
46
+ $form.trigger( 'check_variations' );
47
+ $form.trigger( 'wc_variation_form', self );
48
+ self.loading = false;
49
+ }, 100 );
50
+ };
51
+
52
+ /**
53
+ * Reset all fields.
54
+ */
55
+ VariationForm.prototype.onReset = function( event ) {
56
+ event.preventDefault();
57
+ event.data.variationForm.$attributeFields.val( '' ).trigger( 'change' );
58
+ event.data.variationForm.$form.trigger( 'reset_data' );
59
+ };
60
+
61
+ /**
62
+ * Reload variation data from the DOM.
63
+ */
64
+ VariationForm.prototype.onReload = function( event ) {
65
+ var form = event.data.variationForm;
66
+ form.variationData = form.$form.data( 'product_variations' );
67
+ form.useAjax = false === form.variationData;
68
+ form.$form.trigger( 'check_variations' );
69
+ };
70
+
71
+ /**
72
+ * When a variation is hidden.
73
+ */
74
+ VariationForm.prototype.onHide = function( event ) {
75
+ event.preventDefault();
76
+ event.data.variationForm.$form
77
+ .find( '.single_add_to_cart_button' )
78
+ .removeClass( 'wc-variation-is-unavailable' )
79
+ .addClass( 'disabled wc-variation-selection-needed' );
80
+ event.data.variationForm.$form
81
+ .find( '.woocommerce-variation-add-to-cart' )
82
+ .removeClass( 'woocommerce-variation-add-to-cart-enabled' )
83
+ .addClass( 'woocommerce-variation-add-to-cart-disabled' );
84
+ };
85
+
86
+ /**
87
+ * When a variation is shown.
88
+ */
89
+ VariationForm.prototype.onShow = function( event, variation, purchasable ) {
90
+ event.preventDefault();
91
+ if ( purchasable ) {
92
+ event.data.variationForm.$form
93
+ .find( '.single_add_to_cart_button' )
94
+ .removeClass( 'disabled wc-variation-selection-needed wc-variation-is-unavailable' );
95
+ event.data.variationForm.$form
96
+ .find( '.woocommerce-variation-add-to-cart' )
97
+ .removeClass( 'woocommerce-variation-add-to-cart-disabled' )
98
+ .addClass( 'woocommerce-variation-add-to-cart-enabled' );
99
+ } else {
100
+ event.data.variationForm.$form
101
+ .find( '.single_add_to_cart_button' )
102
+ .removeClass( 'wc-variation-selection-needed' )
103
+ .addClass( 'disabled wc-variation-is-unavailable' );
104
+ event.data.variationForm.$form
105
+ .find( '.woocommerce-variation-add-to-cart' )
106
+ .removeClass( 'woocommerce-variation-add-to-cart-enabled' )
107
+ .addClass( 'woocommerce-variation-add-to-cart-disabled' );
108
+ }
109
+
110
+ // If present, the media element library needs initialized on the variation description.
111
+ if ( wp.mediaelement ) {
112
+ event.data.variationForm.$form.find( '.wp-audio-shortcode, .wp-video-shortcode' )
113
+ .not( '.mejs-container' )
114
+ .filter(
115
+ function () {
116
+ return ! $( this ).parent().hasClass( 'mejs-mediaelement' );
117
+ }
118
+ )
119
+ .mediaelementplayer( wp.mediaelement.settings );
120
+ }
121
+ };
122
+
123
+ /**
124
+ * When the cart button is pressed.
125
+ */
126
+ VariationForm.prototype.onAddToCart = function( event ) {
127
+ if ( $( this ).is('.disabled') ) {
128
+ event.preventDefault();
129
+
130
+ if ( $( this ).is('.wc-variation-is-unavailable') ) {
131
+ window.alert( swatchly_add_to_cart_variation_params.i18n_unavailable_text );
132
+ } else if ( $( this ).is('.wc-variation-selection-needed') ) {
133
+ window.alert( swatchly_add_to_cart_variation_params.i18n_make_a_selection_text );
134
+ }
135
+ }
136
+ };
137
+
138
+ /**
139
+ * When displayed variation data is reset.
140
+ */
141
+ VariationForm.prototype.onResetDisplayedVariation = function( event ) {
142
+ var form = event.data.variationForm;
143
+ form.$product.find( '.product_meta' ).find( '.sku' ).wc_reset_content();
144
+ form.$product
145
+ .find( '.product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value' )
146
+ .wc_reset_content();
147
+ form.$product
148
+ .find( '.product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value' )
149
+ .wc_reset_content();
150
+ form.$form.trigger( 'reset_image' );
151
+ form.$singleVariation.slideUp( 200 ).trigger( 'hide_variation' );
152
+ };
153
+
154
+ /**
155
+ * When the product image is reset.
156
+ */
157
+ VariationForm.prototype.onResetImage = function( event ) {
158
+ event.data.variationForm.$form.wc_variations_image_update( false );
159
+ };
160
+
161
+ /**
162
+ *
163
+ */
164
+ VariationForm.prototype.onFindVariation = function( event, chosenAttributes ) {
165
+ var form = event.data.variationForm,
166
+ attributes = 'undefined' !== typeof chosenAttributes ? chosenAttributes : form.getChosenAttributes(),
167
+ currentAttributes = attributes.data;
168
+
169
+ if ( attributes.count && attributes.count === attributes.chosenCount ) {
170
+ if ( form.useAjax ) {
171
+ if ( form.xhr ) {
172
+ form.xhr.abort();
173
+ }
174
+ form.$form.block( { message: null, overlayCSS: { background: '#fff', opacity: 0.6 } } );
175
+ currentAttributes.product_id = parseInt( form.$form.data( 'product_id' ), 10 );
176
+ currentAttributes.custom_data = form.$form.data( 'custom_data' );
177
+ form.xhr = $.ajax( {
178
+ url: swatchly_add_to_cart_variation_params.wc_ajax_url.toString().replace( '%%endpoint%%', 'get_variation' ),
179
+ type: 'POST',
180
+ data: currentAttributes,
181
+ success: function( variation ) {
182
+ if ( variation ) {
183
+ form.$form.trigger( 'found_variation', [ variation ] );
184
+ } else {
185
+ form.$form.trigger( 'reset_data' );
186
+ attributes.chosenCount = 0;
187
+
188
+ if ( ! form.loading ) {
189
+ form.$form
190
+ .find( '.single_variation' )
191
+ .after(
192
+ '<p class="wc-no-matching-variations woocommerce-info">' +
193
+ swatchly_add_to_cart_variation_params.i18n_no_matching_variations_text +
194
+ '</p>'
195
+ );
196
+ form.$form.find( '.wc-no-matching-variations' ).slideDown( 200 );
197
+ }
198
+ }
199
+ },
200
+ complete: function() {
201
+ form.$form.unblock();
202
+ }
203
+ } );
204
+ } else {
205
+ form.$form.trigger( 'update_variation_values' );
206
+
207
+ var matching_variations = form.findMatchingVariations( form.variationData, currentAttributes ),
208
+ variation = matching_variations.shift();
209
+
210
+ if ( variation ) {
211
+ form.$form.trigger( 'found_variation', [ variation ] );
212
+ } else {
213
+ form.$form.trigger( 'reset_data' );
214
+ attributes.chosenCount = 0;
215
+
216
+ if ( ! form.loading ) {
217
+ form.$form
218
+ .find( '.single_variation' )
219
+ .after(
220
+ '<p class="wc-no-matching-variations woocommerce-info">' +
221
+ swatchly_add_to_cart_variation_params.i18n_no_matching_variations_text +
222
+ '</p>'
223
+ );
224
+ form.$form.find( '.wc-no-matching-variations' ).slideDown( 200 );
225
+ }
226
+ }
227
+ }
228
+ } else {
229
+ form.$form.trigger( 'update_variation_values' );
230
+ form.$form.trigger( 'reset_data' );
231
+ }
232
+
233
+ // Show reset link.
234
+ form.toggleResetLink( attributes.chosenCount > 0 );
235
+ };
236
+
237
+ /**
238
+ * Triggered when a variation has been found which matches all attributes.
239
+ */
240
+ VariationForm.prototype.onFoundVariation = function( event, variation ) {
241
+ var form = event.data.variationForm,
242
+ $sku = form.$product.find( '.product_meta' ).find( '.sku' ),
243
+ $weight = form.$product.find(
244
+ '.product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value'
245
+ ),
246
+ $dimensions = form.$product.find(
247
+ '.product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value'
248
+ ),
249
+ $qty = form.$singleVariationWrap.find( '.quantity' ),
250
+ purchasable = true,
251
+ variation_id = '',
252
+ template = false,
253
+ $template_html = '';
254
+
255
+ if ( variation.sku ) {
256
+ $sku.wc_set_content( variation.sku );
257
+ } else {
258
+ $sku.wc_reset_content();
259
+ }
260
+
261
+ if ( variation.weight ) {
262
+ $weight.wc_set_content( variation.weight_html );
263
+ } else {
264
+ $weight.wc_reset_content();
265
+ }
266
+
267
+ if ( variation.dimensions ) {
268
+ // Decode HTML entities.
269
+ $dimensions.wc_set_content( $.parseHTML( variation.dimensions_html )[0].data );
270
+ } else {
271
+ $dimensions.wc_reset_content();
272
+ }
273
+
274
+ form.$form.wc_variations_image_update( variation );
275
+
276
+ if ( ! variation.variation_is_visible ) {
277
+ template = wp_template( 'unavailable-variation-template' );
278
+ } else {
279
+ template = wp_template( 'variation-template' );
280
+ variation_id = variation.variation_id;
281
+ }
282
+
283
+ $template_html = template( {
284
+ variation: variation
285
+ } );
286
+ $template_html = $template_html.replace( '/*<![CDATA[*/', '' );
287
+ $template_html = $template_html.replace( '/*]]>*/', '' );
288
+
289
+ form.$singleVariation.html( $template_html );
290
+ form.$form.find( 'input[name="variation_id"], input.variation_id' ).val( variation.variation_id ).trigger( 'change' );
291
+
292
+ // Hide or show qty input
293
+ if ( variation.is_sold_individually === 'yes' ) {
294
+ $qty.find( 'input.qty' ).val( '1' ).attr( 'min', '1' ).attr( 'max', '' ).trigger( 'change' );
295
+ $qty.hide();
296
+ } else {
297
+
298
+ var $qty_input = $qty.find( 'input.qty' ),
299
+ qty_val = parseFloat( $qty_input.val() );
300
+
301
+ if ( isNaN( qty_val ) ) {
302
+ qty_val = variation.min_qty;
303
+ } else {
304
+ qty_val = qty_val > parseFloat( variation.max_qty ) ? variation.max_qty : qty_val;
305
+ qty_val = qty_val < parseFloat( variation.min_qty ) ? variation.min_qty : qty_val;
306
+ }
307
+
308
+ $qty_input.attr( 'min', variation.min_qty ).attr( 'max', variation.max_qty ).val( qty_val ).trigger( 'change' );
309
+ $qty.show();
310
+ }
311
+
312
+ // Enable or disable the add to cart button
313
+ if ( ! variation.is_purchasable || ! variation.is_in_stock || ! variation.variation_is_visible ) {
314
+ purchasable = false;
315
+ }
316
+
317
+ // Reveal
318
+ if ( form.$singleVariation.text().trim() ) {
319
+ form.$singleVariation.slideDown( 200 ).trigger( 'show_variation', [ variation, purchasable ] );
320
+ } else {
321
+ form.$singleVariation.show().trigger( 'show_variation', [ variation, purchasable ] );
322
+ }
323
+ };
324
+
325
+ /**
326
+ * Triggered when an attribute field changes.
327
+ */
328
+ VariationForm.prototype.onChange = function( event ) {
329
+ var form = event.data.variationForm;
330
+
331
+ form.$form.find( 'input[name="variation_id"], input.variation_id' ).val( '' ).trigger( 'change' );
332
+ form.$form.find( '.wc-no-matching-variations' ).remove();
333
+
334
+ if ( form.useAjax ) {
335
+ form.$form.trigger( 'check_variations' );
336
+ } else {
337
+ form.$form.trigger( 'woocommerce_variation_select_change' );
338
+ form.$form.trigger( 'check_variations' );
339
+ }
340
+
341
+ // Custom event for when variation selection has been changed
342
+ form.$form.trigger( 'woocommerce_variation_has_changed' );
343
+ };
344
+
345
+ /**
346
+ * Escape quotes in a string.
347
+ * @param {string} string
348
+ * @return {string}
349
+ */
350
+ VariationForm.prototype.addSlashes = function( string ) {
351
+ string = string.replace( /'/g, '\\\'' );
352
+ string = string.replace( /"/g, '\\\"' );
353
+ return string;
354
+ };
355
+
356
+ /**
357
+ * Updates attributes in the DOM to show valid values.
358
+ */
359
+ VariationForm.prototype.onUpdateAttributes = function( event ) {
360
+ var form = event.data.variationForm,
361
+ attributes = form.getChosenAttributes(),
362
+ currentAttributes = attributes.data;
363
+
364
+ if ( form.useAjax ) {
365
+ return;
366
+ }
367
+
368
+ // Loop through selects and disable/enable options based on selections.
369
+ form.$attributeFields.each( function( index, el ) {
370
+ var current_attr_select = $( el ),
371
+ current_attr_name = current_attr_select.data( 'attribute_name' ) || current_attr_select.attr( 'name' ),
372
+ show_option_none = $( el ).data( 'show_option_none' ),
373
+ option_gt_filter = ':gt(0)',
374
+ attached_options_count = 0,
375
+ new_attr_select = $( '<select/>' ),
376
+ selected_attr_val = current_attr_select.val() || '',
377
+ selected_attr_val_valid = true;
378
+
379
+ // Reference options set at first.
380
+ if ( ! current_attr_select.data( 'attribute_html' ) ) {
381
+ var refSelect = current_attr_select.clone();
382
+
383
+ refSelect.find( 'option' ).removeAttr( 'attached' ).prop( 'disabled', false ).prop( 'selected', false );
384
+
385
+ // Legacy data attribute.
386
+ current_attr_select.data(
387
+ 'attribute_options',
388
+ refSelect.find( 'option' + option_gt_filter ).get()
389
+ );
390
+ current_attr_select.data( 'attribute_html', refSelect.html() );
391
+ }
392
+
393
+ new_attr_select.html( current_attr_select.data( 'attribute_html' ) );
394
+
395
+ // The attribute of this select field should not be taken into account when calculating its matching variations:
396
+ // The constraints of this attribute are shaped by the values of the other attributes.
397
+ var checkAttributes = $.extend( true, {}, currentAttributes );
398
+
399
+ checkAttributes[ current_attr_name ] = '';
400
+
401
+ var variations = form.findMatchingVariations( form.variationData, checkAttributes );
402
+
403
+ // Loop through variations.
404
+ for ( var num in variations ) {
405
+ if ( typeof( variations[ num ] ) !== 'undefined' ) {
406
+ var variationAttributes = variations[ num ].attributes;
407
+
408
+ for ( var attr_name in variationAttributes ) {
409
+ if ( variationAttributes.hasOwnProperty( attr_name ) ) {
410
+ var attr_val = variationAttributes[ attr_name ],
411
+ variation_active = '';
412
+
413
+ if ( attr_name === current_attr_name ) {
414
+ if ( variations[ num ].variation_is_active ) {
415
+ variation_active = 'enabled';
416
+ }
417
+
418
+ if ( attr_val ) {
419
+ // Decode entities.
420
+ attr_val = $( '<div/>' ).html( attr_val ).text();
421
+
422
+ // Attach to matching options by value. This is done to compare
423
+ // TEXT values rather than any HTML entities.
424
+ var $option_elements = new_attr_select.find( 'option' );
425
+ if ( $option_elements.length ) {
426
+ for (var i = 0, len = $option_elements.length; i < len; i++) {
427
+ var $option_element = $( $option_elements[i] ),
428
+ option_value = $option_element.val();
429
+
430
+ if ( attr_val === option_value ) {
431
+ $option_element.addClass( 'attached ' + variation_active );
432
+ break;
433
+ }
434
+ }
435
+ }
436
+ } else {
437
+ // Attach all apart from placeholder.
438
+ new_attr_select.find( 'option:gt(0)' ).addClass( 'attached ' + variation_active );
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+
446
+ // Count available options.
447
+ attached_options_count = new_attr_select.find( 'option.attached' ).length;
448
+
449
+ // Check if current selection is in attached options.
450
+ if ( selected_attr_val ) {
451
+ selected_attr_val_valid = false;
452
+
453
+ if ( 0 !== attached_options_count ) {
454
+ new_attr_select.find( 'option.attached.enabled' ).each( function() {
455
+ var option_value = $( this ).val();
456
+
457
+ if ( selected_attr_val === option_value ) {
458
+ selected_attr_val_valid = true;
459
+ return false; // break.
460
+ }
461
+ });
462
+ }
463
+ }
464
+
465
+ // Detach the placeholder if:
466
+ // - Valid options exist.
467
+ // - The current selection is non-empty.
468
+ // - The current selection is valid.
469
+ // - Placeholders are not set to be permanently visible.
470
+ if ( attached_options_count > 0 && selected_attr_val && selected_attr_val_valid && ( 'no' === show_option_none ) ) {
471
+ new_attr_select.find( 'option:first' ).remove();
472
+ option_gt_filter = '';
473
+ }
474
+
475
+ // Detach unattached.
476
+ new_attr_select.find( 'option' + option_gt_filter + ':not(.attached)' ).remove();
477
+
478
+ // Finally, copy to DOM and set value.
479
+ current_attr_select.html( new_attr_select.html() );
480
+ current_attr_select.find( 'option' + option_gt_filter + ':not(.enabled)' ).prop( 'disabled', true );
481
+
482
+ // Choose selected value.
483
+ if ( selected_attr_val ) {
484
+ // If the previously selected value is no longer available, fall back to the placeholder (it's going to be there).
485
+ if ( selected_attr_val_valid ) {
486
+ current_attr_select.val( selected_attr_val );
487
+ } else {
488
+ current_attr_select.val( '' ).trigger( 'change' );
489
+ }
490
+ } else {
491
+ current_attr_select.val( '' ); // No change event to prevent infinite loop.
492
+ }
493
+ });
494
+
495
+ // Custom event for when variations have been updated.
496
+ form.$form.trigger( 'woocommerce_update_variation_values' );
497
+ };
498
+
499
+ /**
500
+ * Get chosen attributes from form.
501
+ * @return array
502
+ */
503
+ VariationForm.prototype.getChosenAttributes = function() {
504
+ var data = {};
505
+ var count = 0;
506
+ var chosen = 0;
507
+
508
+ this.$attributeFields.each( function() {
509
+ var attribute_name = $( this ).data( 'attribute_name' ) || $( this ).attr( 'name' );
510
+ var value = $( this ).val() || '';
511
+
512
+ if ( value.length > 0 ) {
513
+ chosen ++;
514
+ }
515
+
516
+ count ++;
517
+ data[ attribute_name ] = value;
518
+ });
519
+
520
+ return {
521
+ 'count' : count,
522
+ 'chosenCount': chosen,
523
+ 'data' : data
524
+ };
525
+ };
526
+
527
+ /**
528
+ * Find matching variations for attributes.
529
+ */
530
+ VariationForm.prototype.findMatchingVariations = function( variations, attributes ) {
531
+ var matching = [];
532
+ for ( var i = 0; i < variations.length; i++ ) {
533
+ var variation = variations[i];
534
+
535
+ if ( this.isMatch( variation.attributes, attributes ) ) {
536
+ matching.push( variation );
537
+ }
538
+ }
539
+ return matching;
540
+ };
541
+
542
+ /**
543
+ * See if attributes match.
544
+ * @return {Boolean}
545
+ */
546
+ VariationForm.prototype.isMatch = function( variation_attributes, attributes ) {
547
+ var match = true;
548
+ for ( var attr_name in variation_attributes ) {
549
+ if ( variation_attributes.hasOwnProperty( attr_name ) ) {
550
+ var val1 = variation_attributes[ attr_name ];
551
+ var val2 = attributes[ attr_name ];
552
+ if ( val1 !== undefined && val2 !== undefined && val1.length !== 0 && val2.length !== 0 && val1 !== val2 ) {
553
+ match = false;
554
+ }
555
+ }
556
+ }
557
+ return match;
558
+ };
559
+
560
+ /**
561
+ * Show or hide the reset link.
562
+ */
563
+ VariationForm.prototype.toggleResetLink = function( on ) {
564
+ if ( on ) {
565
+ if ( this.$resetVariations.css( 'visibility' ) === 'hidden' ) {
566
+ this.$resetVariations.css( 'visibility', 'visible' ).hide().fadeIn();
567
+ }
568
+ } else {
569
+ this.$resetVariations.css( 'visibility', 'hidden' );
570
+ }
571
+ };
572
+
573
+ /**
574
+ * Function to call wc_variation_form on jquery selector.
575
+ */
576
+ $.fn.wc_variation_form = function() {
577
+ new VariationForm( this );
578
+ return this;
579
+ };
580
+
581
+ /**
582
+ * Stores the default text for an element so it can be reset later
583
+ */
584
+ $.fn.wc_set_content = function( content ) {
585
+ if ( undefined === this.attr( 'data-o_content' ) ) {
586
+ this.attr( 'data-o_content', this.text() );
587
+ }
588
+ this.text( content );
589
+ };
590
+
591
+ /**
592
+ * Stores the default text for an element so it can be reset later
593
+ */
594
+ $.fn.wc_reset_content = function() {
595
+ if ( undefined !== this.attr( 'data-o_content' ) ) {
596
+ this.text( this.attr( 'data-o_content' ) );
597
+ }
598
+ };
599
+
600
+ /**
601
+ * Stores a default attribute for an element so it can be reset later
602
+ */
603
+ $.fn.wc_set_variation_attr = function( attr, value ) {
604
+ if ( undefined === this.attr( 'data-o_' + attr ) ) {
605
+ this.attr( 'data-o_' + attr, ( ! this.attr( attr ) ) ? '' : this.attr( attr ) );
606
+ }
607
+ if ( false === value ) {
608
+ this.removeAttr( attr );
609
+ } else {
610
+ this.attr( attr, value );
611
+ }
612
+ };
613
+
614
+ /**
615
+ * Reset a default attribute for an element so it can be reset later
616
+ */
617
+ $.fn.wc_reset_variation_attr = function( attr ) {
618
+ if ( undefined !== this.attr( 'data-o_' + attr ) ) {
619
+ this.attr( attr, this.attr( 'data-o_' + attr ) );
620
+ }
621
+ };
622
+
623
+ /**
624
+ * Reset the slide position if the variation has a different image than the current one
625
+ */
626
+ $.fn.wc_maybe_trigger_slide_position_reset = function( variation ) {
627
+ var $form = $( this ),
628
+ $product = $form.closest( '.product' ),
629
+ $product_gallery = $product.find( '.images' ),
630
+ reset_slide_position = false,
631
+ new_image_id = ( variation && variation.image_id ) ? variation.image_id : '';
632
+
633
+ if ( $form.attr( 'current-image' ) !== new_image_id ) {
634
+ reset_slide_position = true;
635
+ }
636
+
637
+ $form.attr( 'current-image', new_image_id );
638
+
639
+ if ( reset_slide_position ) {
640
+ $product_gallery.trigger( 'woocommerce_gallery_reset_slide_position' );
641
+ }
642
+ };
643
+
644
+ /**
645
+ * Sets product images for the chosen variation
646
+ */
647
+ $.fn.wc_variations_image_update = function( variation ) {
648
+ var $form = this,
649
+ $product = $form.closest( '.product' ),
650
+ $product_gallery = $product.find( '.images' ),
651
+ $gallery_nav = $product.find( '.flex-control-nav' ),
652
+ $gallery_img = $gallery_nav.find( 'li:eq(0) img' ),
653
+ $product_img_wrap = $product_gallery
654
+ .find( '.woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder' )
655
+ .eq( 0 ),
656
+ $product_img = $product_img_wrap.find( '.wp-post-image' ),
657
+ $product_link = $product_img_wrap.find( 'a' ).eq( 0 );
658
+
659
+ if ( variation && variation.image && variation.image.src && variation.image.src.length > 1 ) {
660
+ // See if the gallery has an image with the same original src as the image we want to switch to.
661
+ var galleryHasImage = $gallery_nav.find( 'li img[data-o_src="' + variation.image.gallery_thumbnail_src + '"]' ).length > 0;
662
+
663
+ // If the gallery has the image, reset the images. We'll scroll to the correct one.
664
+ if ( galleryHasImage ) {
665
+ $form.wc_variations_image_reset();
666
+ }
667
+
668
+ // See if gallery has a matching image we can slide to.
669
+ var slideToImage = $gallery_nav.find( 'li img[src="' + variation.image.gallery_thumbnail_src + '"]' );
670
+
671
+ if ( slideToImage.length > 0 ) {
672
+ slideToImage.trigger( 'click' );
673
+ $form.attr( 'current-image', variation.image_id );
674
+ window.setTimeout( function() {
675
+ $( window ).trigger( 'resize' );
676
+ $product_gallery.trigger( 'woocommerce_gallery_init_zoom' );
677
+ }, 20 );
678
+ return;
679
+ }
680
+
681
+ $product_img.wc_set_variation_attr( 'src', variation.image.src );
682
+ $product_img.wc_set_variation_attr( 'height', variation.image.src_h );
683
+ $product_img.wc_set_variation_attr( 'width', variation.image.src_w );
684
+ $product_img.wc_set_variation_attr( 'srcset', variation.image.srcset );
685
+ $product_img.wc_set_variation_attr( 'sizes', variation.image.sizes );
686
+ $product_img.wc_set_variation_attr( 'title', variation.image.title );
687
+ $product_img.wc_set_variation_attr( 'data-caption', variation.image.caption );
688
+ $product_img.wc_set_variation_attr( 'alt', variation.image.alt );
689
+ $product_img.wc_set_variation_attr( 'data-src', variation.image.full_src );
690
+ $product_img.wc_set_variation_attr( 'data-large_image', variation.image.full_src );
691
+ $product_img.wc_set_variation_attr( 'data-large_image_width', variation.image.full_src_w );
692
+ $product_img.wc_set_variation_attr( 'data-large_image_height', variation.image.full_src_h );
693
+ $product_img_wrap.wc_set_variation_attr( 'data-thumb', variation.image.src );
694
+ $gallery_img.wc_set_variation_attr( 'src', variation.image.gallery_thumbnail_src );
695
+ $product_link.wc_set_variation_attr( 'href', variation.image.full_src );
696
+ } else {
697
+ $form.wc_variations_image_reset();
698
+ }
699
+
700
+ window.setTimeout( function() {
701
+ $( window ).trigger( 'resize' );
702
+ $form.wc_maybe_trigger_slide_position_reset( variation );
703
+ $product_gallery.trigger( 'woocommerce_gallery_init_zoom' );
704
+ }, 20 );
705
+ };
706
+
707
+ /**
708
+ * Reset main image to defaults.
709
+ */
710
+ $.fn.wc_variations_image_reset = function() {
711
+ var $form = this,
712
+ $product = $form.closest( '.product' ),
713
+ $product_gallery = $product.find( '.images' ),
714
+ $gallery_nav = $product.find( '.flex-control-nav' ),
715
+ $gallery_img = $gallery_nav.find( 'li:eq(0) img' ),
716
+ $product_img_wrap = $product_gallery
717
+ .find( '.woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder' )
718
+ .eq( 0 ),
719
+ $product_img = $product_img_wrap.find( '.wp-post-image' ),
720
+ $product_link = $product_img_wrap.find( 'a' ).eq( 0 );
721
+
722
+ $product_img.wc_reset_variation_attr( 'src' );
723
+ $product_img.wc_reset_variation_attr( 'width' );
724
+ $product_img.wc_reset_variation_attr( 'height' );
725
+ $product_img.wc_reset_variation_attr( 'srcset' );
726
+ $product_img.wc_reset_variation_attr( 'sizes' );
727
+ $product_img.wc_reset_variation_attr( 'title' );
728
+ $product_img.wc_reset_variation_attr( 'data-caption' );
729
+ $product_img.wc_reset_variation_attr( 'alt' );
730
+ $product_img.wc_reset_variation_attr( 'data-src' );
731
+ $product_img.wc_reset_variation_attr( 'data-large_image' );
732
+ $product_img.wc_reset_variation_attr( 'data-large_image_width' );
733
+ $product_img.wc_reset_variation_attr( 'data-large_image_height' );
734
+ $product_img_wrap.wc_reset_variation_attr( 'data-thumb' );
735
+ $gallery_img.wc_reset_variation_attr( 'src' );
736
+ $product_link.wc_reset_variation_attr( 'href' );
737
+ };
738
+
739
+ $(function() {
740
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
741
+ $( '.variations_form' ).each( function() {
742
+ $( this ).wc_variation_form();
743
+ });
744
+ }
745
+ });
746
+
747
+
748
+ /**
749
+ * Third party plugins compatibility
750
+ * 1. annasta Woocommerce Product Filters
751
+ */
752
+ $( document ).on( 'awf_after_ajax_products_update', function() {
753
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
754
+ $( '.variations_form' ).each( function() {
755
+ $( this ).wc_variation_form();
756
+ });
757
+ }
758
+ });
759
+
760
+ /**
761
+ * 2. Jet Smart Filters
762
+ */
763
+ $( document ).on( 'jet-filter-content-rendered', function() {
764
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
765
+ $( '.variations_form' ).each( function() {
766
+ $( this ).wc_variation_form();
767
+ });
768
+ }
769
+ });
770
+
771
+ /**
772
+ * Themes compatibility
773
+ * 1. urna theme
774
+ */
775
+ $( document ).on( 'urna_lazyload_image', function() {
776
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
777
+ $( '.variations_form' ).each( function() {
778
+ $( this ).wc_variation_form();
779
+ });
780
+ }
781
+ });
782
+ $( document ).on( 'woolentor_quick_cart_rendered', function() {
783
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
784
+ $( '.variations_form' ).each( function() {
785
+ $( this ).wc_variation_form();
786
+ });
787
+ }
788
+ });
789
+
790
+ /**
791
+ *
792
+ * 2. Airi theme
793
+ * All major themes compatibility
794
+ * It is intended to add compatibility for the airy theme's infinite scroll
795
+ */
796
+ $( document ).on('ajaxComplete', function (event, jqxhr, settings) {
797
+ if ( typeof swatchly_add_to_cart_variation_params !== 'undefined' ) {
798
+ $( '.swatchly_loop_variation_form:not(.swatchly_loaded_on_ready)' ).each( function() {
799
+ $( this ).wc_variation_form();
800
+ });
801
+ }
802
+
803
+ return false;
804
+ });
805
+
806
+ /**
807
+ * Matches inline variation objects to chosen attributes
808
+ * @deprecated 2.6.9
809
+ * @type {Object}
810
+ */
811
+ var wc_variation_form_matcher = {
812
+ find_matching_variations: function( product_variations, settings ) {
813
+ var matching = [];
814
+ for ( var i = 0; i < product_variations.length; i++ ) {
815
+ var variation = product_variations[i];
816
+
817
+ if ( wc_variation_form_matcher.variations_match( variation.attributes, settings ) ) {
818
+ matching.push( variation );
819
+ }
820
+ }
821
+ return matching;
822
+ },
823
+ variations_match: function( attrs1, attrs2 ) {
824
+ var match = true;
825
+ for ( var attr_name in attrs1 ) {
826
+ if ( attrs1.hasOwnProperty( attr_name ) ) {
827
+ var val1 = attrs1[ attr_name ];
828
+ var val2 = attrs2[ attr_name ];
829
+ if ( val1 !== undefined && val2 !== undefined && val1.length !== 0 && val2.length !== 0 && val1 !== val2 ) {
830
+ match = false;
831
+ }
832
+ }
833
+ }
834
+ return match;
835
+ }
836
+ };
837
+
838
+ /**
839
+ * Avoids using wp.template where possible in order to be CSP compliant.
840
+ * wp.template uses internally eval().
841
+ * @param {string} templateId
842
+ * @return {Function}
843
+ */
844
+ var wp_template = function( templateId ) {
845
+ var html = document.getElementById( 'tmpl-' + templateId ).textContent;
846
+ var hard = false;
847
+ // any <# #> interpolate (evaluate).
848
+ hard = hard || /<#\s?data\./.test( html );
849
+ // any data that is NOT data.variation.
850
+ hard = hard || /{{{?\s?data\.(?!variation\.).+}}}?/.test( html );
851
+ // any data access deeper than 1 level e.g.
852
+ // data.variation.object.item
853
+ // data.variation.object['item']
854
+ // data.variation.array[0]
855
+ hard = hard || /{{{?\s?data\.variation\.[\w-]*[^\s}]/.test ( html );
856
+ if ( hard ) {
857
+ return wp.template( templateId );
858
+ }
859
+ return function template ( data ) {
860
+ var variation = data.variation || {};
861
+ return html.replace( /({{{?)\s?data\.variation\.([\w-]*)\s?(}}}?)/g, function( _, open, key, close ) {
862
+ // Error in the format, ignore.
863
+ if ( open.length !== close.length ) {
864
+ return '';
865
+ }
866
+ var replacement = variation[ key ] || '';
867
+ // {{{ }}} => interpolate (unescaped).
868
+ // {{ }} => interpolate (escaped).
869
+ // https://codex.wordpress.org/Javascript_Reference/wp.template
870
+ if ( open.length === 2 ) {
871
+ return window.escape( replacement );
872
+ }
873
+ return replacement;
874
+ });
875
+ };
876
+ };
877
+
878
+ })( jQuery, window, document );
includes/modules/variation-swatch/assets/js/admin.js ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Admin JS
3
+ */
4
+ ;( function ( $ ) {
5
+ 'use strict';
6
+
7
+ /**
8
+ * Ajax request on product variation changes
9
+ */
10
+ $('#woocommerce-product-data').on('woocommerce_variations_loaded', function () {
11
+ var data = {
12
+ action: 'swatchly_ajax_reload_metabox_panel',
13
+ product_id: swatchly_params.product_id,
14
+ nonce: swatchly_params.nonce,
15
+ };
16
+
17
+ $.ajax({
18
+ type: 'POST',
19
+ url: woocommerce_admin.ajax_url,
20
+ data: data,
21
+ beforeSend: function(){},
22
+ success: function ( response ) {
23
+ $('#swatchly_swatches_product_data .wc-metaboxes').html(response.data);
24
+
25
+ // Reinitialize color picker
26
+ if($('.swatchly_color_picker').length){
27
+ $( ".swatchly_color_picker" ).wpColorPicker();
28
+ }
29
+ },
30
+ error: function(errorThrown) {
31
+ console.log(errorThrown);
32
+ },
33
+ });
34
+ });
35
+
36
+ /**
37
+ * Ajax request on product metabox save swatches
38
+ */
39
+ $('.swatchly_save_swatches').on('click', function(e){
40
+ e.preventDefault();
41
+
42
+ var $message = $('.swatchly.wc-metaboxes-wrapper .woocommerce-message'),
43
+ $product_data = $('#woocommerce-product-data'),
44
+ data = {
45
+ action: 'swatchly_ajax_save_product_meta',
46
+ product_id: swatchly_params.product_id,
47
+ input_fields: $('#swatchly_swatches_product_data').find(':input').serializeJSON({checkboxUncheckedValue: "0"}),
48
+ nonce: swatchly_params.nonce
49
+ };
50
+
51
+
52
+ $product_data.block({
53
+ message: null,
54
+ overlayCSS: {
55
+ background: '#fff',
56
+ opacity: 0.6
57
+ }
58
+ });
59
+
60
+ $.ajax({
61
+ type: 'POST',
62
+ url: woocommerce_admin.ajax_url,
63
+ data: data,
64
+ beforeSend: function(){
65
+ $message.html(`<p>${ swatchly_params.i18n.saving }</p>`);
66
+ },
67
+ success: function ( response ) {
68
+ $message.addClass('updated').html(`<p>${ response.data.message }</p>`).css('display', 'block');
69
+ $product_data.unblock();
70
+ },
71
+ error: function(errorThrown) {
72
+ console.log(errorThrown);
73
+ },
74
+ });
75
+ });
76
+
77
+ /**
78
+ * Reset to default
79
+ */
80
+ $('.swatchly_reset_to_default').on('click', function(e){
81
+ e.preventDefault();
82
+
83
+ var $message = $('.swatchly.wc-metaboxes-wrapper .woocommerce-message'),
84
+ $product_data = $('#woocommerce-product-data'),
85
+ data = {
86
+ action: 'swatchly_ajax_reset_product_meta',
87
+ product_id: swatchly_params.product_id,
88
+ nonce: swatchly_params.nonce
89
+ };
90
+
91
+ $product_data.block({
92
+ message: null,
93
+ overlayCSS: {
94
+ background: '#fff',
95
+ opacity: 0.6
96
+ }
97
+ });
98
+
99
+ if( confirm("Are you sure??") ){
100
+ $.ajax({
101
+ type: 'POST',
102
+ url: woocommerce_admin.ajax_url,
103
+ data: data,
104
+ beforeSend: function(){
105
+ $message.html(`<p>${ swatchly_params.i18n.saving }</p>`);
106
+ },
107
+ success: function ( response ) {
108
+ $message.addClass('updated').html(`<p>${ response.data.message }</p>`).css('display', 'block');
109
+ $product_data.unblock();
110
+ $product_data.trigger('woocommerce_variations_loaded');
111
+ },
112
+ error: function(errorThrown) {
113
+ console.log(errorThrown);
114
+ },
115
+ });
116
+ }
117
+ });
118
+
119
+ /**
120
+ * Media uploader field
121
+ */
122
+ $( document ).ready( function () {
123
+ // Only show the "remove image" button when needed
124
+ $( '.swatchly_media_field .swatchly_input' ).each(function(){
125
+ if( !$(this).val() ){
126
+ $(this).siblings('.swatchly_remove_image').hide();
127
+ }
128
+ });
129
+
130
+ $( document ).on( 'click', '.button.swatchly_upload_image', function( event ) {
131
+ event.preventDefault();
132
+
133
+ var file_frame;
134
+ var $this = $(this);
135
+
136
+ // If the media frame already exists, reopen it.
137
+ if ( file_frame ) {
138
+ file_frame.open();
139
+ return;
140
+ }
141
+
142
+ // Create the media frame.
143
+ file_frame = wp.media.frames.downloadable_file = wp.media({
144
+ title: swatchly_params.i18n.choose_an_image,
145
+ button: {
146
+ text: swatchly_params.i18n.use_image
147
+ },
148
+ multiple: false
149
+ });
150
+
151
+ // When an image is selected, run a callback.
152
+ file_frame.on( 'select', function() {
153
+ var attachment = file_frame.state().get( 'selection' ).first().toJSON();
154
+ var attachment_thumbnail = attachment.sizes.thumbnail || attachment.sizes.full;
155
+
156
+ $this.closest('.swatchly_media_field').find( '.swatchly_input' ).val( attachment.id );
157
+ $this.closest('.swatchly_media_field').find( '.swatchly_media_preview' ).html('<img width="60px" height="60x" src="'+ attachment_thumbnail.url +'" alt="" />');
158
+ $this.closest('.swatchly_media_field').find( '.button.swatchly_remove_image' ).show();
159
+ });
160
+
161
+ // Finally, open the modal.
162
+ file_frame.open();
163
+ });
164
+
165
+ $( document ).on( 'click', '.button.swatchly_remove_image', function() {
166
+ var $this = $(this);
167
+
168
+ $this.closest('.swatchly_media_field').find( '.swatchly_input' ).val( '' );
169
+ $this.closest('.swatchly_media_field').find( '.swatchly_media_preview' ).html('');
170
+ $this.closest('.swatchly_media_field').find( '.button.swatchly_remove_image' ).hide();
171
+
172
+ return false;
173
+ });
174
+ });
175
+
176
+ /**
177
+ * Color picker field
178
+ */
179
+ if($('.swatchly_color_picker').length){
180
+ $( ".swatchly_color_picker" ).wpColorPicker();
181
+ }
182
+
183
+ /**
184
+ * Media field (2)
185
+ */
186
+ $('.swatchly-cs-field-media').on('click', '.button', function (event) {
187
+ event.preventDefault();
188
+
189
+ var $this = $(this);
190
+
191
+ // Create the media frame.
192
+ var file_frame = wp.media.frames.file_frame = wp.media({
193
+ title: $this.data('popup_title'),
194
+ button: {
195
+ text: $this.data('upload_button_text'),
196
+ },
197
+ multiple: false
198
+ });
199
+
200
+ file_frame.on('select', function () {
201
+ var attachment = file_frame.state().get('selection').first().toJSON(),
202
+ thumbnail;
203
+
204
+ $this.siblings('.swatchly-cs--url').attr('value', attachment.url).change();
205
+ $this.siblings('.swatchly-cs--preview').html(`
206
+ <div class="swatchly-cs-image-preview">
207
+ <a href="#" class="swatchly-cs--remove fas fa-times">x</a>
208
+ <img src="`+ attachment.url +`" class="swatchly-cs--src">
209
+ </div>
210
+ `);
211
+
212
+ if ( typeof attachment.sizes !== 'undefined' && typeof attachment.sizes.thumbnail !== 'undefined' ) {
213
+ thumbnail = attachment.sizes.thumbnail.url;
214
+ } else if ( typeof attachment.sizes !== 'undefined' && typeof attachment.sizes.full !== 'undefined' ) {
215
+ thumbnail = attachment.sizes.full.url;
216
+ } else if ( attachment.url.split('.').pop().toLowerCase() === 'svg' ) {
217
+ thumbnail = attachment.url;
218
+ } else {
219
+ thumbnail = attachment.icon;
220
+ }
221
+
222
+ $this.siblings('.swatchly-cs--thumbnail').attr('value', thumbnail);
223
+ $this.siblings('.swatchly-cs--id').val( attachment.id );
224
+ $this.siblings('.swatchly-cs--width').val( attachment.width );
225
+ $this.siblings('.swatchly-cs--height').val( attachment.height );
226
+ $this.siblings('.swatchly-cs--alt').val( attachment.alt );
227
+ $this.siblings('.swatchly-cs--title').val( attachment.title );
228
+ $this.siblings('.swatchly-cs--description').val( attachment.description );
229
+ });
230
+
231
+ // Finally, open the modal
232
+ file_frame.open();
233
+ });
234
+
235
+ $('.swatchly-cs-field-media').on('click', '.swatchly-cs--remove', function(e){
236
+ e.preventDefault();
237
+
238
+ $(this).closest('.swatchly-cs--preview').siblings('input[type="hidden"]').each(function(){
239
+ $(this).attr('value', '');
240
+ });
241
+
242
+ $('.swatchly-cs--preview .swatchly-cs-image-preview').remove();
243
+ });
244
+
245
+ /**
246
+ * Auto change swatch types (when click parent)
247
+ */
248
+ $(document).on('change', '.swatchly_swatch_type.swatchly_2', function(e){
249
+ var $inner_swatch_types = $(this).closest('.wc-metabox').find('.swatchly_swatch_type.swatchly_1'),
250
+ $wc_metabox1 = $(this).closest('.wc-metabox').find('.wc-metabox.swatchly_1'),
251
+ $wc_metabox2 = $(this).closest('.wc-metabox.swatchly_2');
252
+
253
+ if(this.value == 'label' || this.value == 'color' || this.value == 'image'){
254
+ // Remove class
255
+ $wc_metabox2.removeClass( 'swatchly_type_ swatchly_type_select swatchly_type_label swatchly_type_color swatchly_type_image' );
256
+ $wc_metabox1.removeClass( 'swatchly_type_ swatchly_type_select swatchly_type_label swatchly_type_color swatchly_type_image' );
257
+
258
+ // Set curret swatch type class
259
+ $wc_metabox2.addClass( 'swatchly_type_'+ this.value );
260
+ $wc_metabox1.addClass( 'swatchly_type_'+ this.value );
261
+
262
+ // Auto select swatch types
263
+ $inner_swatch_types.val(this.value).change();
264
+ } else {
265
+ // Remove current swatch type class
266
+ $wc_metabox2.removeClass( 'swatchly_type_label swatchly_type_color swatchly_type_image' );
267
+ $wc_metabox1.removeClass( 'swatchly_type_label swatchly_type_color swatchly_type_image' );
268
+
269
+ // Set current swatch type class
270
+ $wc_metabox2.addClass( 'swatchly_type_'+ this.value );
271
+ $wc_metabox1.addClass( 'swatchly_type_'+ this.value );
272
+
273
+ // Auto select swatch types
274
+ if( this.value == 'select' ){
275
+ $inner_swatch_types.val(this.value).change();
276
+ } else {
277
+ $inner_swatch_types.val(this.value).change('');
278
+ }
279
+
280
+ $inner_swatch_types.attr('selected', 'selected');
281
+ $wc_metabox2.find('.wc-metabox-content').css('display', 'none');
282
+ }
283
+ });
284
+
285
+ /**
286
+ * Disable toggle while swatch type = select
287
+ */
288
+ $(document).on('click','#wpcontent .wc-metabox.swatchly_2.swatchly_type_select > h3,#wpcontent .wc-metabox.swatchly_2.swatchly_type_ > h3', function(e){
289
+ $(this).closest('.wc-metabox.swatchly_2').find('.wc-metabox-content').css('display', 'none');
290
+ });
291
+
292
+ /**
293
+ * Tooltip fields conditon
294
+ */
295
+ $(document).on('change', '.swatchly_tooltip', function(){
296
+ var $wc_metabox = $(this).closest('.wc-metabox');
297
+
298
+ $wc_metabox.removeClass('swatchly_tooltip_ swatchly_tooltip_disable swatchly_tooltip_text swatchly_tooltip_image');
299
+ $wc_metabox.addClass( 'swatchly_tooltip_'+ this.value );
300
+ });
301
+
302
+ /**
303
+ * Enable multi color field condition
304
+ */
305
+ $(document).on('change', '.wc-metabox.swatchly_1 .enable_multi_color', function(){
306
+ var $wc_metabox1 = $(this).closest('.wc-metabox.swatchly_1');
307
+ var $val = this.checked == true ? '1' : '';
308
+
309
+ $wc_metabox1.removeClass('swatchly_enable_multi_color_ swatchly_enable_multi_color_1' );
310
+ $wc_metabox1.addClass( 'swatchly_enable_multi_color_'+ $val );
311
+ });
312
+
313
+ /**
314
+ * Metabox Auto convert dropdown to image condition
315
+ */
316
+ $(document).on('change', '#swatchly_auto_convert_dropdowns_image', function(){
317
+ var $toolbar_top = $(this).closest('.toolbar-top');
318
+ var $val = this.checked == true ? '1' : '';
319
+
320
+ $toolbar_top.removeClass('swatchly_auto_convert_dropdowns_to_image_ swatchly_auto_convert_dropdowns_to_image_1' );
321
+ $toolbar_top.addClass( 'swatchly_auto_convert_dropdowns_to_image_'+ $val );
322
+ });
323
+
324
+ /**
325
+ * Dependency
326
+ */
327
+ $(document).ready(function() {
328
+ $('.swatchly-cs-taxonomy').woolentor_conditions();
329
+ });
330
+
331
+ } )( jQuery );
includes/modules/variation-swatch/assets/js/frontend.js ADDED
@@ -0,0 +1,648 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Swatchly Frontend JS
3
+ */
4
+ ;( function ( $ ) {
5
+ "use strict";
6
+
7
+ if ( typeof swatchly_params === 'undefined' ) {
8
+ return false;
9
+ }
10
+
11
+ /* Tooltip JS
12
+ ======================================================= */
13
+ function addTooltip(){
14
+ var image_src = $(this).data('tooltip_image'),
15
+ text = $(this).data('tooltip_text');
16
+
17
+ if(image_src && text){
18
+ $(this).append(`<div class="swatchly-tooltip"><span class="swatchly-tooltip-text">${text}</span><img src="${image_src}" /></div>`);
19
+ } else if(image_src){
20
+ $(this).append(`<div class="swatchly-tooltip"><img src="${image_src}" /></div>`);
21
+ } else if(text){
22
+ $(this).append(`<div class="swatchly-tooltip"><span class="swatchly-tooltip-text">${text}</span></div>`);
23
+ }
24
+ }
25
+
26
+ function removeTooltip(e){
27
+ $('.swatchly-tooltip').remove();
28
+ }
29
+
30
+ $(document).ready(function() {
31
+ $(document).on( 'mouseover', 'div.swatchly-swatch,a.swatchly-swatch', addTooltip );
32
+ $(document).on('mouseleave', 'div.swatchly-swatch,a.swatchly-swatch', removeTooltip);
33
+ });
34
+
35
+ /* For both Single & Product loop
36
+ ======================================================= */
37
+ $(document).ready(function(){
38
+ $('.swatchly-hide-this-variation-row').closest('tr').addClass('swatchly_d_none');
39
+ });
40
+
41
+ /* Product Loop JS
42
+ ======================================================= */
43
+ var product_loop = {
44
+ /*
45
+ * Some thems make the full product loop item linked to the product details.
46
+ * Preventing the user from clicking on the product loop item so the swatches will be clickable.
47
+ */
48
+ prevent_click: function(){
49
+ $('.swatchly_loop_variation_form').on( 'click', function(e){
50
+ if( $(e.target).is('.swatchly-more-button') || $(e.target).closest('.swatchly-more-button').length ){
51
+ return;
52
+ }
53
+
54
+ e.preventDefault();
55
+ e.stopPropagation();
56
+ e.stopImmediatePropagation();
57
+ });
58
+ },
59
+ init_variation_form: function(){
60
+ var enable_swatches = Boolean(Number(swatchly_params.enable_swatches));
61
+
62
+ if(enable_swatches){
63
+ $( '.swatchly_loop_variation_form' ).swatchly_loop_variation_form();
64
+ }
65
+ },
66
+ init_ajax_add_to_cart: function(){
67
+ var hide_wc_forward_button = Boolean(Number(swatchly_params.hide_wc_forward_button)),
68
+ enable_cart_popup_notice = Boolean(Number(swatchly_params.enable_cart_popup_notice));
69
+
70
+ // Ajax add to cart
71
+ $('body').on('click', '.swatchly_ajax_add_to_cart.swatchly_found_variation', function(e){
72
+ e.preventDefault();
73
+
74
+ var $thisbutton = $( this ),
75
+ productId = $thisbutton.data( 'product_id' ),
76
+ variationId = $thisbutton.attr( 'data-variation_id' ),
77
+ variation = $thisbutton.attr( 'data-variation' );
78
+
79
+ productId = parseFloat( productId );
80
+ productId = productId.toFixed(0);
81
+ productId = Math.abs( productId );
82
+
83
+ variationId = parseFloat( variationId );
84
+ variationId = variationId.toFixed(0);
85
+ variationId = Math.abs( variationId );
86
+
87
+ if ( (isNaN( productId ) || productId === 0) || (isNaN( variationId ) || variationId === 0) ) {
88
+ return true;
89
+ }
90
+
91
+ if($thisbutton.is('.wc-variation-is-unavailable')){
92
+ return window.alert( wc_add_to_cart_variation_params.i18n_unavailable_text );
93
+ }
94
+
95
+ if ( '' !== variation ) {
96
+ variation = JSON.parse( variation );
97
+ }
98
+
99
+ var data = {
100
+ action: 'swatchly_ajax_add_to_cart',
101
+ product_id: productId,
102
+ variation_id: variationId,
103
+ variation: variation
104
+ };
105
+
106
+ $( document.body ).trigger( 'adding_to_cart', [ $thisbutton, data ] );
107
+
108
+ $thisbutton.removeClass( 'added' );
109
+ $thisbutton.addClass( 'loading' );
110
+
111
+ // Ajax add to cart request
112
+ $.ajax({
113
+ type: 'POST',
114
+ url: woocommerce_params.ajax_url,
115
+ data: data,
116
+ dataType: 'json',
117
+ success: function ( response ) {
118
+ if ( ! response ) {
119
+ return;
120
+ }
121
+
122
+ // remove thickbox
123
+ tb_remove();
124
+
125
+ if ( response.error && response.product_url ) {
126
+ window.location = response.product_url;
127
+ return;
128
+ }
129
+
130
+ // Trigger event so themes can refresh other areas.
131
+ $( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash, $thisbutton ] );
132
+ $( document.body ).trigger("update_checkout");
133
+
134
+ // Redirect to cart option
135
+ if ( wc_add_to_cart_params.cart_redirect_after_add === 'yes' ) {
136
+ window.location = wc_add_to_cart_params.cart_url;
137
+ return;
138
+ } else {
139
+ if(hide_wc_forward_button){
140
+ $thisbutton.closest('.product').find('.added_to_cart.wc-forward').hide();
141
+ }
142
+
143
+ if(enable_cart_popup_notice){
144
+ // Genrate Notice Popup
145
+ $.ajax( {
146
+ type: 'POST',
147
+ url: woocommerce_params.ajax_url,
148
+ data: {
149
+ action: 'swatchly_ajax_add_to_cart_notice',
150
+ },
151
+ success: function( response ) {
152
+ if ( ! response ) {
153
+ return;
154
+ }
155
+
156
+ tb_remove();
157
+
158
+ $( '#swatchly_notice_popup' ).html( response );
159
+
160
+ tb_show( '', '#TB_inline?&amp;width=600&amp;inlineId=swatchly_notice_popup' );
161
+ },
162
+ error: function(errorThrown) {
163
+ console.log(errorThrown);
164
+ },
165
+ } );
166
+ }
167
+ }
168
+
169
+ $thisbutton.removeClass('loading');
170
+ },
171
+ error: function(errorThrown) {
172
+ $thisbutton.removeClass('loading');
173
+ console.log(errorThrown);
174
+ },
175
+ });
176
+ });
177
+ }
178
+ }
179
+
180
+ $(document).ready(function(){
181
+ $('.swatchly_loop_variation_form').addClass('swatchly_loaded_on_ready');
182
+ product_loop.prevent_click();
183
+ });
184
+
185
+ // Reset the changes
186
+ $.fn.reset = function (event){
187
+ $(this).find('.swatchly_ajax_add_to_cart').removeClass('alt disabled wc-variation-is-unavailable swatchly_found_variation added');
188
+
189
+ if(event === 'click'){
190
+ var $button_text = $(this).find('.swatchly_ajax_add_to_cart').data('select_options_text')
191
+ $(this).find('.swatchly_ajax_add_to_cart').text($button_text);
192
+ }
193
+
194
+ // remove veiw cart button
195
+ $(this).find('.added_to_cart.wc-forward').remove();
196
+ $(this).remove_out_of_stock();
197
+
198
+ // hide reset button
199
+ $(this).find('.reset_variations').attr('style', 'display: none !important');
200
+ };
201
+
202
+ // Reset to the initial price
203
+ $.fn.reset_to_default_price = function(){
204
+ $(this).find('.price').first().removeClass('swatchly_d_none');
205
+ $(this).find('.swatchly_price').remove();
206
+ };
207
+
208
+ // Don't show the out of stock element
209
+ $.fn.remove_out_of_stock = function (){
210
+ if($(this).find('.swatchly_pl.swatchly_out_of_stock')){
211
+ $(this).find('.swatchly_pl.swatchly_out_of_stock').remove();
212
+ }
213
+ }
214
+
215
+ // Find the product image selector
216
+ $.fn.get_product_image_selector = function(){
217
+ var $product_thumbnail = '',
218
+ product_thumbnail_selector = swatchly_params.product_thumbnail_selector;
219
+
220
+ // custom selector priority first
221
+ if(product_thumbnail_selector){
222
+ $product_thumbnail = $(this).find(product_thumbnail_selector);
223
+
224
+ return $product_thumbnail;
225
+ }
226
+
227
+ // look for default wc image selector
228
+ $product_thumbnail = $(this).find('img.attachment-woocommerce_thumbnail');
229
+
230
+ // ocean theme support
231
+ if($product_thumbnail.length === 0){
232
+ $product_thumbnail = $(this).find('img.woo-entry-image-main');
233
+
234
+ // look for other default seletors
235
+ if($product_thumbnail.length === 0){
236
+ $product_thumbnail = $(this).find('img.attachment-woocommerce_thumbnail');
237
+
238
+ if($product_thumbnail.length === 0){
239
+ $product_thumbnail = $(this).find('img.wp-post-image');
240
+
241
+ if($product_thumbnail.length === 0){
242
+ $product_thumbnail = $(this).find('img').first();
243
+ }
244
+ }
245
+ }
246
+ }
247
+
248
+ return $product_thumbnail;
249
+ };
250
+
251
+ // Backup product image properties
252
+ // Needed when reset variation & show the default image
253
+ $.fn.backup_product_image = function(){
254
+ var $product_thumbnail = $(this).get_product_image_selector();
255
+
256
+ // Clone & set default image's properties
257
+ var backup_attributes = {
258
+ "data-backup_alt": $product_thumbnail.attr('alt'),
259
+ "data-backup_src": $product_thumbnail.attr('src'),
260
+ "data-backup_width": $product_thumbnail.attr('width'),
261
+ "data-backup_height": $product_thumbnail.attr('height')
262
+ }
263
+
264
+ if( $product_thumbnail.attr('srcset') ) {
265
+ backup_attributes["data-backup_srcset"] = $product_thumbnail.attr( 'srcset' );
266
+ backup_attributes["data-backup_sizes"] = $product_thumbnail.attr( 'sizes' );
267
+ }
268
+
269
+ $product_thumbnail.attr(backup_attributes);
270
+ };
271
+
272
+ // Change the product image when variation found
273
+ $.fn.change_image = function(variation){
274
+ // image selector
275
+ var $product_thumbnail = $(this).get_product_image_selector();
276
+
277
+ // if the variation does not have any image use the main image
278
+ if( !variation.image_id ){
279
+ $product_thumbnail.reset_to_default_image();
280
+ return;
281
+ }
282
+
283
+ var attributes = {
284
+ alt: variation.image.alt,
285
+ src: variation.image.thumb_src,
286
+ width: variation.image.thumb_src_w,
287
+ height: variation.image.thumb_src_h
288
+ };
289
+
290
+ if( $product_thumbnail.attr('srcset') ) {
291
+ attributes.srcset = variation.image.srcset;
292
+ attributes.sizes = variation.image.sizes;
293
+ }
294
+
295
+ // Finally change/update image
296
+ $product_thumbnail.attr(attributes);
297
+ };
298
+
299
+ // Reset to the default image when click on "reset" button
300
+ $.fn.reset_to_default_image = function(){
301
+ // Image selector
302
+ var $product_thumbnail = $(this).get_product_image_selector();
303
+ if( $(this).is('img') ){
304
+ $product_thumbnail = $(this);
305
+ }
306
+
307
+ // Get backup attributes before reset
308
+ var backup_attributes = {
309
+ alt: $product_thumbnail.attr('data-backup_alt'),
310
+ src: $product_thumbnail.attr('data-backup_src'),
311
+ width: $product_thumbnail.attr('data-backup_width'),
312
+ height: $product_thumbnail.attr('data-backup_height')
313
+ }
314
+
315
+ if( $product_thumbnail.attr('srcset') ) {
316
+ backup_attributes["srcset"] = $product_thumbnail.attr( 'data-backup_srcset' );
317
+ backup_attributes["sizes"] = $product_thumbnail.attr( 'data-backup_sizes' );
318
+ }
319
+
320
+ // Finally reset the image
321
+ $product_thumbnail.attr(backup_attributes);
322
+ };
323
+
324
+ // Change add to cart button text
325
+ $.fn.change_add_to_cart_text = function(){
326
+ var original_cart_text = $(this).text(),
327
+ new_cart_text = $(this).data('add_to_cart_text');
328
+
329
+ $(this).html($(this).html().replace(original_cart_text, new_cart_text));
330
+ };
331
+
332
+ // Function for each loop variation form
333
+ $.fn.swatchly_loop_variation_form = function(){
334
+ var $price_selector = '.price';
335
+
336
+ return this.each( function(){
337
+ var $el_variation_form = $( this ),
338
+ $el_product = $el_variation_form.closest('.product'),
339
+ $el_ajax_add_to_cart = $el_product.find('.swatchly_ajax_add_to_cart');
340
+
341
+ $el_product.backup_product_image();
342
+
343
+ // hide reset button by default
344
+ $el_product.find('.reset_variations').attr('style', 'display: none !important');
345
+
346
+ $el_variation_form.on('found_variation', function(e, variation){
347
+ $el_product.reset();
348
+
349
+ var availability_html = variation.availability_html,
350
+ is_in_stock = variation.is_in_stock;
351
+
352
+ // If out of stcok
353
+ if(!is_in_stock){
354
+ $el_ajax_add_to_cart.before(`<div class="swatchly_pl swatchly_out_of_stock">${availability_html}</div>`);
355
+ $el_ajax_add_to_cart.addClass('alt disabled wc-variation-is-unavailable');
356
+ } else {
357
+ $el_product.remove_out_of_stock();
358
+ }
359
+
360
+ // show reset buton once a vaiation found
361
+ $el_product.find('.reset_variations').attr('style', '');
362
+
363
+ // Update price if catalog mode is not enabled
364
+ if( !parseInt(swatchly_params.enable_catalog_mode ) ){
365
+ if( !$el_product.find('.swatchly_price').length ){
366
+ if($(variation.price_html).length){
367
+ $el_product.find($price_selector).addClass('swatchly_d_none').after( $(variation.price_html).addClass('swatchly_price') );
368
+ }
369
+ } else {
370
+ $el_product.find('.swatchly_price').remove();
371
+ $el_product.find($price_selector).addClass('swatchly_d_none').after($(variation.price_html).addClass('swatchly_price'));
372
+ }
373
+ }
374
+
375
+ // Update Image
376
+ $el_product.change_image(variation);
377
+
378
+ // For ajax add to cart
379
+ // Manually generate selected variation attributes
380
+ var selected_variation = {},
381
+ variations = $(this).find( 'select[name^=attribute]' );
382
+ if ( !variations.length) {
383
+ variations = $(this).find( '[name^=attribute]:checked' );
384
+ }
385
+ if ( !variations.length) {
386
+ variations = $(this).find( 'input[name^=attribute]' );
387
+ }
388
+
389
+ variations.each( function() {
390
+ var $this_item = $( this ),
391
+ attribute_name = $this_item.attr( 'name' ),
392
+ attribute_value = $this_item.val(),
393
+ index,
394
+ attribute_tax_name;
395
+ $this_item.removeClass( 'error' );
396
+ if ( attribute_value.length === 0 ) {
397
+ index = attribute_name.lastIndexOf( '_' );
398
+ attribute_tax_name = attribute_name.substring( index + 1 );
399
+ $this_item.addClass( 'required error' );
400
+ } else {
401
+ selected_variation[attribute_name] = attribute_value;
402
+ }
403
+ });
404
+
405
+ // Don't work on the cart button if catalog mode is enabled
406
+ if( !parseInt(swatchly_params.enable_catalog_mode) ){
407
+ // Cart button update class, text etc..
408
+ if($el_ajax_add_to_cart.length){
409
+ $el_ajax_add_to_cart.change_add_to_cart_text('found_variation');
410
+ $el_ajax_add_to_cart.addClass('swatchly_found_variation');
411
+
412
+ $el_ajax_add_to_cart.attr('data-variation_id', variation.variation_id);
413
+ $el_ajax_add_to_cart.attr('data-variation', JSON.stringify(selected_variation));
414
+
415
+ if($el_ajax_add_to_cart.hasClass('added')){
416
+ $el_ajax_add_to_cart.removeClass('added');
417
+ }
418
+ }
419
+ }
420
+ }).on('click','.reset_variations', function(e){
421
+ $el_product.reset('click');
422
+ $el_product.remove_out_of_stock();
423
+ $el_product.reset_to_default_price();
424
+ $el_product.reset_to_default_image();
425
+
426
+ });
427
+ });
428
+ };
429
+
430
+ // Product loop init
431
+ $(window).on('load', function(){
432
+ product_loop.init_variation_form();
433
+ product_loop.init_ajax_add_to_cart();
434
+ } );
435
+
436
+ /*===== End of Product Loop JS ======*/
437
+
438
+
439
+ /* Single product page JS
440
+ ======================================================= */
441
+ var single_product = {
442
+ init: function(){
443
+ var enable_swatches = Boolean(Number(swatchly_params.enable_swatches)),
444
+ is_product = Boolean(Number(swatchly_params.is_product)),
445
+ deselect_on_click = Boolean(Number(swatchly_params.deselect_on_click)),
446
+ show_selected_attribute_name = Boolean(Number(swatchly_params.show_selected_attribute_name)),
447
+ variation_label_separator = swatchly_params.variation_label_separator;
448
+
449
+ if( enable_swatches){
450
+ $.fn.swatchly_variation_form = function(){
451
+ return this.each( function(){
452
+ var $el_variation_form = $( this );
453
+
454
+ // Actions while select a swatch
455
+ $el_variation_form.on( 'click', 'div.swatchly-swatch', function ( e ) {
456
+ var $el_swatch = $( this ),
457
+ $el_default_select = $el_swatch.closest( '.value' ).find( 'select' ),
458
+ value = $el_swatch.attr( 'data-attr_value' ),
459
+
460
+ // single attribute preview image support
461
+ enable_varation_image_preview_on_single_attribute_select = Boolean(Number(0)),
462
+ image_for_clicked_swatch = {};
463
+
464
+ if( enable_varation_image_preview_on_single_attribute_select ){
465
+ var data_product_variations = $(this).closest('.variations_form').data('product_variations');
466
+
467
+ // find out the first variation image if vairation has an image
468
+ // using the selected attribute value
469
+ if( typeof data_product_variations === 'object' ){
470
+ for( let i in data_product_variations ){
471
+ if( Object.values( data_product_variations[i].attributes ).includes(value) ){
472
+ if( data_product_variations[i].image_id ){
473
+ image_for_clicked_swatch = data_product_variations[i].image;
474
+ break;
475
+ }
476
+ }
477
+ }
478
+ }
479
+ }
480
+
481
+
482
+ if( !deselect_on_click ){
483
+
484
+ // Add selected class & remove siblings selected class
485
+ $el_swatch.addClass('swatchly-selected').siblings('div.swatchly-swatch').removeClass('swatchly-selected');
486
+
487
+ // Show selected variation name
488
+ if( show_selected_attribute_name ){
489
+ if($el_swatch.closest('tr').find('.swatchly_selected_variation_name').length){
490
+ $el_swatch.closest('tr').find('.swatchly_selected_variation_name').text( variation_label_separator + $el_swatch.data('attr_label') );
491
+ } else {
492
+ $el_swatch.closest('tr').find('.label label').append('<span class="swatchly_selected_variation_name">'+ variation_label_separator + $el_swatch.data('attr_label') +'</span>');
493
+
494
+ }
495
+ }
496
+
497
+ } else {
498
+
499
+ if($el_swatch.hasClass('swatchly-selected')){
500
+
501
+ // Remove selection
502
+ $el_swatch.removeClass('swatchly-selected');
503
+
504
+ // Change select field value to empty
505
+ value = '';
506
+
507
+ // Remove selected variation name
508
+ $el_swatch.closest('tr').find('.swatchly_selected_variation_name').text( '' );
509
+
510
+ } else {
511
+
512
+ // Add selected class & remove siblings selected class
513
+ $el_swatch.addClass('swatchly-selected').siblings('div.swatchly-swatch').removeClass('swatchly-selected');
514
+
515
+ // Show selected variation name
516
+ if( show_selected_attribute_name ){
517
+ if($el_swatch.closest('tr').find('.swatchly_selected_variation_name').length){
518
+ $el_swatch.closest('tr').find('.swatchly_selected_variation_name').text( variation_label_separator + $el_swatch.data('attr_label') );
519
+ } else {
520
+ $el_swatch.closest('tr').find('.label label').append('<span class="swatchly_selected_variation_name">'+ variation_label_separator + $el_swatch.data('attr_label') +'</span>');
521
+ }
522
+ }
523
+
524
+ }
525
+ }
526
+
527
+ $el_default_select.val(value);
528
+ $el_default_select.change();
529
+
530
+ })
531
+ .on( 'woocommerce_update_variation_values', function() {
532
+ setTimeout( function() {
533
+
534
+ // Loop through each variation row
535
+ $el_variation_form.find( 'tbody tr' ).each( function() {
536
+ var $tr = $(this),
537
+ values = [];
538
+
539
+ // Set default attribute label
540
+ if( show_selected_attribute_name && !$tr.find('.swatchly_selected_variation_name').length ){
541
+ var default_attr_label = $tr.find('.swatchly-type-wrap').attr('data-default_attr_value');
542
+
543
+ if(default_attr_label){
544
+ $tr.find('.label label').append('<span class="swatchly_selected_variation_name">'+ variation_label_separator + default_attr_label +'</span>');
545
+
546
+ } else {
547
+ $tr.find('.label label').append('<span class="swatchly_selected_variation_name"></span>');
548
+
549
+ }
550
+ }
551
+
552
+ // List all attribute values
553
+ $tr.find('select').find('option').each(function(index, option){
554
+ values.push( option.value );
555
+ });
556
+
557
+ // Disable unavailable swatches
558
+ $tr.find( 'div.swatchly-swatch' ).each( function() {
559
+ var $el_swatch = $( this ),
560
+ value = $el_swatch.attr( 'data-attr_value' );
561
+
562
+ if( values.indexOf( value ) == -1 ){
563
+ $el_swatch.addClass('swatchly-disabled');
564
+ } else {
565
+ $el_swatch.removeClass('swatchly-disabled');
566
+ }
567
+ });
568
+
569
+ }); // tbody tr each
570
+ }, 100 ); // timeout
571
+
572
+ // Update price for product loop
573
+ var $price_selector = '.price',
574
+ $el_product = $el_variation_form.closest('.product');
575
+ if(!swatchly_params.is_product){
576
+ if($el_product.find('.swatchly_price').length){
577
+ $el_product.find($price_selector).removeClass('swatchly_d_none');
578
+ $el_product.find('.swatchly_price').remove();
579
+ }
580
+ }
581
+ })
582
+ .on( 'click', '.reset_variations', function () {
583
+ $el_variation_form.find( '.swatchly-selected' ).removeClass( 'swatchly-selected' );
584
+ $el_variation_form.find( '.swatchly-disabled' ).removeClass( 'swatchly-disabled' );
585
+ $el_variation_form.find('.swatchly_selected_variation_name').text( '' );
586
+ }); // on click div.swatchly-swatch
587
+ });
588
+ }
589
+
590
+ // Do stuffs for each variations form
591
+ $( function () {
592
+ $( '.variations_form:not(.swatchly_variation_form)' ).addClass('swatchly_variation_form').swatchly_variation_form();
593
+ } );
594
+
595
+ // All major quick view plugin support
596
+ $(document).ajaxComplete(function (event, request, settings) {
597
+ $( '.variations_form:not(.swatchly_variation_form)' ).addClass('swatchly_variation_form').swatchly_variation_form();
598
+ });
599
+ }
600
+ }
601
+ }
602
+
603
+ // Single product init
604
+ single_product.init();
605
+
606
+ /* Third party plugin/theme's compatibility
607
+ ======================================================= */
608
+
609
+ /**
610
+ * 1. annasta Woocommerce Product Filters
611
+ */
612
+ $( document ).on( 'awf_after_ajax_products_update', function() {
613
+ product_loop.prevent_click();
614
+ product_loop.init_variation_form();
615
+ single_product.init();
616
+ });
617
+
618
+ /**
619
+ * 2. Jet Smart Filters
620
+ */
621
+ $( document ).on( 'jet-filter-content-rendered', function() {
622
+ product_loop.prevent_click();
623
+ product_loop.init_variation_form();
624
+ single_product.init();
625
+ });
626
+
627
+ /**
628
+ * 3. Woolentor Support
629
+ */
630
+ $( document ).on('woolentor_quick_view_rendered', function(){
631
+ product_loop.prevent_click();
632
+ product_loop.init_variation_form();
633
+ single_product.init();
634
+ });
635
+
636
+ /**
637
+ * 2. Airi theme
638
+ * It is intended to add compatibility for the airi theme's infinite scroll
639
+ */
640
+ $( document ).on('ajaxComplete', function (event, jqxhr, settings) {
641
+ $('.swatchly_loop_variation_form:not(.swatchly_loaded_on_ready)').each(function(){
642
+ product_loop.prevent_click();
643
+ product_loop.init_variation_form();
644
+ single_product.init();
645
+ });
646
+ });
647
+
648
+ })(jQuery);
includes/modules/variation-swatch/assets/js/wp-color-picker-alpha.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 3.0.0
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license or later.
10
+ */
11
+ !function(e,a){var l,o={version:300};if("wpColorPickerAlpha"in window&&"version"in window.wpColorPickerAlpha){var t=parseInt(window.wpColorPickerAlpha.version,10);if(!isNaN(t)&&o.version<=t)return}Color.fn.hasOwnProperty("to_s")||(Color.fn.to_s=function(o){"hex"===(o=o||"hex")&&this._alpha<1&&(o="rgba");var a="";return"hex"===o?a=this.toString():this.error||(a=this.toCSS(o).replace(/\(\s+/,"(").replace(/\s+\)/,")")),a},window.wpColorPickerAlpha=o,l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",e.widget("a8c.iris",e.a8c.iris,{alphaOptions:{alphaEnabled:!1},_getColor:function(o){return o===a&&(o=this._color),this.alphaOptions.alphaEnabled?(o=o.to_s(this.alphaOptions.alphaColorType),this.alphaOptions.alphaColorWithSpace||(o=o.replace(/\s+/g,"")),o):o.toString()},_create:function(){try{this.alphaOptions=this.element.wpColorPicker("instance").alphaOptions}catch(o){}e.extend({},this.alphaOptions,{alphaEnabled:!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"hex",alphaColorWithSpace:!1}),this._super()},_addInputListeners:function(i){function o(o){var a=i.val(),t=new Color(a),a=a.replace(/^(#|(rgb|hsl)a?)/,""),r=l.alphaOptions.alphaColorType;i.removeClass("iris-error"),t.error?""!==a&&i.addClass("iris-error"):"hex"===r&&"keyup"===o.type&&a.match(/^[0-9a-fA-F]{3}$/)||t.toIEOctoHex()!==l._color.toIEOctoHex()&&l._setOption("color",l._getColor(t))}var l=this;i.on("change",o).on("keyup",l._debounce(o,100)),l.options.hide&&i.one("focus",function(){l.show()})},_initControls:function(){var t,o,a,r;this._super(),this.alphaOptions.alphaEnabled&&(a=(o=(t=this).controls.strip.clone(!1,!1)).find(".iris-slider-offset"),r={stripAlpha:o,stripAlphaSlider:a},o.addClass("iris-strip-alpha"),a.addClass("iris-slider-offset-alpha"),o.appendTo(t.picker.find(".iris-picker-inner")),e.each(r,function(o,a){t.controls[o]=a}),t.controls.stripAlphaSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,a){t.active="strip",t._color._alpha=parseFloat(a.value/100),t._change.apply(t,arguments)}}))},_dimensions:function(o){if(this._super(o),this.alphaOptions.alphaEnabled){for(var a=this,t=a.options,r=a.controls.square,o=a.picker.find(".iris-strip"),i=Math.round(a.picker.outerWidth(!0)-(t.border?22:0)),l=Math.round(r.outerWidth()),e=Math.round((i-l)/2),s=Math.round(e/2),n=Math.round(l+2*e+2*s);i<n;)e=Math.round(e-2),s=Math.round(s-1),n=Math.round(l+2*e+2*s);r.css("margin","0"),o.width(e).css("margin-left",s+"px")}},_change:function(){var o,a,t,r=this,i=r.active;r._super(),r.alphaOptions.alphaEnabled&&(o=r.controls,a=parseInt(100*r._color._alpha),t=["rgb("+(t=r._color.toRgb()).r+","+t.g+","+t.b+") 0%","rgba("+t.r+","+t.g+","+t.b+", 0) 100%"],r.picker.closest(".wp-picker-container").find(".wp-color-result"),r.options.color=r._getColor(),o.stripAlpha.css({background:"linear-gradient(to bottom, "+t.join(", ")+"), url("+l+")"}),i&&o.stripAlphaSlider.slider("value",a),r._color.error||r.element.removeClass("iris-error").val(r.options.color),r.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){var o=e(this).data("color");r.alphaOptions.alphaReset&&(r._color._alpha=1,o=r._getColor()),r._setOption("color",o)}))},_paintDimension:function(o,a){var t=this,r=!1;t.alphaOptions.alphaEnabled&&"strip"===a&&(r=t._color,t._color=new Color(r.toString()),t.hue=t._color.h()),t._super(o,a),r&&(t._color=r)},_setOption:function(o,a){var t=this;if("color"!==o||!t.alphaOptions.alphaEnabled)return t._super(o,a);a=""+a,newColor=new Color(a).setHSpace(t.options.mode),newColor.error||t._getColor(newColor)===t._getColor()||(t._color=newColor,t.options.color=t._getColor(),t.active="external",t._change())},color:function(o){return!0===o?this._color.clone():o===a?this._getColor():void this.option("color",o)}}),e.widget("wp.wpColorPicker",e.wp.wpColorPicker,{alphaOptions:{alphaEnabled:!1},_getAlphaOptions:function(){var r=this.element,o=r.data("type")||this.options.type,i=r.data("defaultColor")||r.val(),l={alphaEnabled:r.data("alphaEnabled")||!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"rgb",alphaColorWithSpace:!1};return l.alphaEnabled&&(l.alphaEnabled=r.is("input")&&"full"===o),l.alphaEnabled&&(l.alphaColorWithSpace=i&&i.match(/\s/),e.each(l,function(o,a){var t=r.data(o)||a;switch(o){case"alphaCustomWidth":t=t?parseInt(t,10):0,t=isNaN(t)?a:t;break;case"alphaColorType":t.match(/^(hex|(rgb|hsl)a?)$/)||(t=i&&i.match(/^#/)?"hex":i&&i.match(/^hsla?/)?"hsl":a);break;default:t=!!t}l[o]=t})),l},_create:function(){e.support.iris&&(this.alphaOptions=this._getAlphaOptions(),this._super())},_addListeners:function(){if(!this.alphaOptions.alphaEnabled)return this._super();var t=this,r=t.element,i=t.toggler.is("a");this.alphaOptions.defaultWidth=r.width(),this.alphaOptions.alphaCustomWidth&&r.width(parseInt(this.alphaOptions.defaultWidth+this.alphaOptions.alphaCustomWidth,10)),t.toggler.css({position:"relative","background-image":"url("+l+")"}),i?t.toggler.html('<span class="color-alpha" />'):t.toggler.append('<span class="color-alpha" />'),t.colorAlpha=t.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,"background-color":r.val()}),"ltr"===t.colorAlpha.css("direction")?t.colorAlpha.css({"border-bottom-left-radius":"2px","border-top-left-radius":"2px",left:0}):t.colorAlpha.css({"border-bottom-right-radius":"2px","border-top-right-radius":"2px",right:0}),r.iris({change:function(o,a){t.colorAlpha.css({"background-color":a.color.to_s(t.alphaOptions.alphaColorType)}),e.isFunction(t.options.change)&&t.options.change.call(this,o,a)}}),t.wrap.on("click.wpcolorpicker",function(o){o.stopPropagation()}),t.toggler.click(function(){t.toggler.hasClass("wp-picker-open")?t.close():t.open()}),r.change(function(o){var a=e(this).val();(r.hasClass("iris-error")||""===a||a.match(/^(#|(rgb|hsl)a?)$/))&&(i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o))}),t.button.click(function(o){e(this).hasClass("wp-picker-default")?r.val(t.options.defaultColor).change():e(this).hasClass("wp-picker-clear")&&(r.val(""),i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o),r.trigger("change"))})}}))}(jQuery);
includes/modules/variation-swatch/includes/Admin.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly;
3
+
4
+ /**
5
+ * Admin class.
6
+ */
7
+ class Admin {
8
+ /**
9
+ * Constructor.
10
+ */
11
+ public function __construct() {
12
+ new Admin\Woo_Config();
13
+ new Admin\Attribute_Taxonomy_Metabox();
14
+ new Admin\Product_Metabox();
15
+
16
+ // Admin assets hook into action.
17
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
18
+ }
19
+
20
+ /**
21
+ * Enqueue admin assets.
22
+ */
23
+ public function enqueue_admin_assets( $hook_suffix ) {
24
+ $current_screen = get_current_screen();
25
+
26
+ if (
27
+ $current_screen->post_type == 'product' ||
28
+ $hook_suffix == 'woolentor_page_woolentor'
29
+ ) {
30
+ if( $current_screen->base == 'post' ){
31
+ wp_enqueue_style( 'wp-color-picker' );
32
+ wp_enqueue_script( 'wp-color-picker-alpha', MODULE_ASSETS . '/js/wp-color-picker-alpha.min.js', array( 'wp-color-picker' ), WOOLENTOR_VERSION, true );
33
+ }
34
+
35
+ // For conditional fields
36
+ wp_enqueue_script('woolentor-jquery-interdependencies');
37
+ wp_enqueue_script('woolentor-condition');
38
+
39
+ wp_enqueue_style( 'swatchly-admin', MODULE_ASSETS . '/css/admin.css', array(), WOOLENTOR_VERSION );
40
+ wp_enqueue_script( 'swatchly-admin', MODULE_ASSETS . '/js/admin.js', array('jquery'), WOOLENTOR_VERSION, true );
41
+
42
+ $localize_vars = array();
43
+ if(get_post_type() == 'product'){
44
+ $localize_vars['product_id'] = get_the_id();
45
+ } else {
46
+ $localize_vars['product_id'] = '';
47
+ }
48
+
49
+ $localize_vars['nonce'] = wp_create_nonce('swatchly_product_metabox_save_nonce');
50
+ $localize_vars['i18n']['saving'] = esc_html__('Saving...', 'woolentor');
51
+ $localize_vars['i18n']['choose_an_image'] = esc_html__('Choose an image', 'woolentor');
52
+ $localize_vars['i18n']['use_image'] = esc_html__('Use image', 'woolentor');
53
+ $localize_vars['pl_override_global'] = false;
54
+ $localize_vars['sp_override_global'] = false;
55
+ wp_localize_script( 'swatchly-admin', 'swatchly_params', $localize_vars );
56
+ }
57
+ }
58
+ }
includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php ADDED
@@ -0,0 +1,400 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly\Admin;
3
+
4
+ /**
5
+ * Attribute_Taxonomy_Metabox class
6
+ */
7
+ class Attribute_Taxonomy_Metabox{
8
+ public $image_defaults;
9
+
10
+ public $fields;
11
+
12
+ public $taxnow;
13
+
14
+ /**
15
+ * Constructor
16
+ */
17
+ public function __construct() {
18
+ $this->image_defaults = array(
19
+ 'url' => '',
20
+ 'id' => '',
21
+ 'width' => '',
22
+ 'height' => '',
23
+ 'thumbnail' => '',
24
+ 'alt' => '',
25
+ 'title' => '',
26
+ 'description' => '',
27
+ );
28
+
29
+ $this->taxonomy = isset( $_GET['taxonomy'] ) ? sanitize_text_field( $_GET['taxonomy'] ) : '';
30
+ $swatch_type = $this->get_taxonomy_swatch_type( $this->taxnow );
31
+
32
+ $prefix = 'swatchly_taxonomy_meta';
33
+ $taxonomies_obj = wc_get_attribute_taxonomies();
34
+ $attribute_taxonomy_slugs = array_map( function($taxonomies_obj){
35
+ return 'pa_'. $taxonomies_obj->attribute_name;
36
+ }, $taxonomies_obj);
37
+
38
+ $this->fields = array(
39
+ array(
40
+ 'id' => 'swatchly_image',
41
+ 'type' => 'media',
42
+ 'title' => esc_html__( 'Swatch Image', 'woolentor' ),
43
+ 'url' => false,
44
+ 'class' => 'swatchly_show_if_image swatchly_hide_if_select'
45
+ ),
46
+
47
+ array(
48
+ 'id' => 'swatchly_tooltip',
49
+ 'type' => 'select',
50
+ 'title' => esc_html__( 'Swatch Tooltip', 'woolentor' ),
51
+ 'options' => array(
52
+ '' => esc_html__('Use Global Setting', 'woolenor'),
53
+ 'text' => esc_html__('Text', 'woolenor'),
54
+ 'image' => esc_html__('Image', 'woolenor'),
55
+ 'disable' => esc_html__('Disable', 'woolenor'),
56
+ ),
57
+ 'class' => 'swatchly_hide_if_select'
58
+ ),
59
+
60
+ array(
61
+ 'id' => 'swatchly_tooltip_text',
62
+ 'type' => 'text',
63
+ 'title' => esc_html__( 'Tooltip Text', 'woolentor' ),
64
+ 'after' => esc_html__( 'By default, the "Attribute Name" will be shown as the tooltip. If you want custom tooltip text, put it here.', 'woolentor' ),
65
+ 'condition' => array( 'swatchly_tooltip', '==', 'text' ),
66
+ ),
67
+
68
+ array(
69
+ 'id' => 'swatchly_tooltip_image',
70
+ 'type' => 'media',
71
+ 'title' => esc_html__( 'Tooltip Image', 'woolentor' ),
72
+ 'url' => false,
73
+ 'condition' => array( 'swatchly_tooltip', '==', 'image' ),
74
+ ),
75
+
76
+ array(
77
+ 'id' => 'swatchly_color',
78
+ 'type' => 'color',
79
+ 'title' => esc_html__( 'Swatch Color', 'woolentor' ),
80
+ 'class' => 'swatchly_show_if_color swatchly_hide_if_select'
81
+ ),
82
+
83
+ array(
84
+ 'id' => 'swatchly_enable_multi_color',
85
+ 'type' => 'checkbox',
86
+ 'title' => esc_html__( 'Enable Multi Color', 'woolenor' ),
87
+ 'label' => esc_html__( 'By checking this will enable you to set multiple color.', 'woolenor' ),
88
+ 'class' => 'swatchly_show_if_color swatchly_hide_if_select'
89
+ ),
90
+
91
+ array(
92
+ 'id' => 'swatchly_color_2',
93
+ 'type' => 'color',
94
+ 'title' => esc_html__( 'Swatch Color 2', 'woolenor' ),
95
+ 'condition' => array( 'swatchly_enable_multi_color', '==', '1' ),
96
+ 'class' => 'swatchly_show_if_color swatchly_hide_if_select'
97
+ ),
98
+ );
99
+
100
+ // Create taxonomy meta option wrapper
101
+ $this->createTaxonomyOptions( $prefix, array(
102
+ 'taxonomy' => $attribute_taxonomy_slugs,
103
+ 'data_type' => 'unserialize', // The type of the database save options. `serialize` or `unserialize`
104
+ 'class' => 'swatchly_type_'. $swatch_type
105
+ ) );
106
+ }
107
+
108
+ public function createTaxonomyOptions( $prefix, $args ){
109
+ $taxnow = isset($_REQUEST['taxonomy']) ? sanitize_text_field($_REQUEST['taxonomy']) : '';
110
+ if( !$taxnow ){
111
+ return;
112
+ }
113
+
114
+ // Make custom fields for the edit and add new screen of the attributes.
115
+ add_action( $taxnow . '_add_form_fields', array($this, 'add_screen_custom_fields_html') );
116
+ add_action( $taxnow . '_edit_form', array($this, 'edit_screen_custom_fields_html'), 10, 2);
117
+
118
+ // Save custom fields
119
+ add_action( 'edited_' . $taxnow, array($this, 'save_term_meta') );
120
+ add_action( 'created_' . $taxnow, array( $this, 'save_term_meta') );
121
+ }
122
+
123
+ /**
124
+ * It adds custom fields to the add new attribute screen
125
+ */
126
+ public function add_screen_custom_fields_html( $taxonomy ){
127
+ $swatch_type = $this->get_taxonomy_swatch_type( $taxonomy );
128
+ $field_default = array(
129
+ 'title' => '',
130
+ 'type' => '',
131
+ 'class' => '',
132
+ 'condition' => array(),
133
+ );
134
+
135
+ // Nonce
136
+ wp_nonce_field( 'swatchly_save_term_meta_nonce', 'swatchly_term_meta_nonce' );
137
+ ?>
138
+ <div class="swatchly-cs-taxonomy swatchly-cs-taxonomy-add-fields swatchly_type_<?php echo esc_attr($swatch_type); ?>">
139
+ <?php foreach($this->fields as $field):
140
+ $field = wp_parse_args( $field, $field_default);
141
+
142
+ $data_controller = '';
143
+ $data_condition = '';
144
+ $data_value = '';
145
+
146
+ if( $field['condition'] ){
147
+ if( !empty($field['condition'][0]) ){
148
+ $data_controller = 'data-controller='. $field['condition'][0] .'';
149
+ }
150
+
151
+ if( !empty($field['condition'][1]) ){
152
+ $data_condition = 'data-condition='. $field['condition'][1] .'';
153
+ }
154
+
155
+ if( !empty($field['condition'][1]) ){
156
+ $data_value = 'data-value='. $field['condition'][2] .'';
157
+ }
158
+ }
159
+ ?>
160
+ <div class="swatchly-cs-field swatchly-cs-field-<?php echo esc_attr($field['type']); ?> <?php echo esc_attr($field['class']); ?>" <?php echo esc_attr($data_controller) ?> <?php echo esc_attr($data_condition) ?> <?php echo esc_attr($data_value) ?>>
161
+ <div class="swatchly-cs-title">
162
+ <h4><?php echo esc_html($field['title']) ?></h4>
163
+ </div>
164
+
165
+ <?php $this->field_html( 'add', $field ) ?>
166
+ </div>
167
+ <?php endforeach; ?>
168
+ </div>
169
+
170
+ <?php
171
+ }
172
+
173
+ /**
174
+ * It adds a new field to the edit screen of the taxonomy
175
+ *
176
+ * @param tag The term object.
177
+ * @param taxonomy The taxonomy slug.
178
+ */
179
+ public function edit_screen_custom_fields_html($tag, $taxonomy){
180
+ $swatch_type = $this->get_taxonomy_swatch_type( $taxonomy );
181
+ $tax_meta = array(
182
+ 'swatchly_color' => get_term_meta($tag->term_id, 'swatchly_color', true),
183
+ 'swatchly_enable_multi_color' => get_term_meta($tag->term_id, 'swatchly_enable_multi_color', true),
184
+ 'swatchly_color_2' => get_term_meta($tag->term_id, 'swatchly_color_2', true),
185
+ 'swatchly_image' => wp_parse_args( get_term_meta($tag->term_id, 'swatchly_image', true), $this->image_defaults ),
186
+ 'swatchly_tooltip' => get_term_meta($tag->term_id, 'swatchly_tooltip', true),
187
+ 'swatchly_tooltip_text' => get_term_meta($tag->term_id, 'swatchly_tooltip_text', true),
188
+ 'swatchly_tooltip_image' => wp_parse_args( get_term_meta($tag->term_id, 'swatchly_tooltip_image', true), $this->image_defaults ),
189
+ );
190
+
191
+ $swatch_type = $this->get_taxonomy_swatch_type( $taxonomy );
192
+
193
+ $field_default = array(
194
+ 'title' => '',
195
+ 'type' => '',
196
+ 'class' => '',
197
+ 'condition' => array(),
198
+ );
199
+
200
+ wp_nonce_field( 'swatchly_save_term_meta_nonce', 'swatchly_term_meta_nonce' );
201
+ ?>
202
+ <div class="swatchly-cs-taxonomy swatchly-cs-taxonomy-edit-fields swatchly_type_<?php echo esc_attr($swatch_type); ?>">
203
+
204
+ <?php foreach($this->fields as $field):
205
+ $field = wp_parse_args( $field, $field_default);
206
+ $data_controller = '';
207
+ $data_condition = '';
208
+ $data_value = '';
209
+
210
+ if( $field['condition'] ){
211
+ if( !empty($field['condition'][0]) ){
212
+ $data_controller = 'data-controller='. $field['condition'][0] .'';
213
+ }
214
+
215
+ if( !empty($field['condition'][1]) ){
216
+ $data_condition = 'data-condition='. $field['condition'][1] .'';
217
+ }
218
+
219
+ if( !empty($field['condition'][1]) ){
220
+ $data_value = 'data-value='. $field['condition'][2] .'';
221
+ }
222
+ }
223
+ ?>
224
+ <div class="swatchly-cs-field swatchly-cs-field-<?php echo esc_attr($field['type']); ?> <?php echo $field['class'];?>" <?php echo esc_attr($data_controller) ?> <?php echo esc_attr($data_condition) ?> <?php echo esc_attr($data_value) ?>>
225
+ <div class="swatchly-cs-title">
226
+ <h4><?php echo esc_html($field['title']) ?></h4>
227
+ </div>
228
+
229
+ <?php $this->field_html( 'edit', $field, $tax_meta ) ?>
230
+ </div>
231
+ <?php endforeach; ?>
232
+
233
+ </div>
234
+ <?php
235
+ }
236
+
237
+ public function field_html( $screen = 'add', $field = array(), $tax_meta = array() ){
238
+ $field_value = '';
239
+ if( $screen == 'edit' && $tax_meta ){
240
+ $enable_multi_color = $tax_meta['swatchly_enable_multi_color'];
241
+ $field_value = $tax_meta[$field['id']];
242
+
243
+ if( $field['type'] == 'media' ){
244
+ $field_value = $tax_meta[$field['id']];
245
+ }
246
+ }
247
+
248
+ echo '<div class="swatchly-cs-fieldset">';
249
+
250
+ if( $field['type'] == 'color' ){
251
+ ?>
252
+ <input name="<?php echo esc_attr($field['id']) ?>" id="<?php echo esc_attr($field['id']) ?>" class=" swatchly_color_picker" data-alpha-enabled="true" type="text" value="<?php echo esc_attr($field_value) ?>" size="40">
253
+ <?php
254
+ } elseif( $field['type'] == 'media' ){
255
+ echo '<div class="swatchly-cs--preview">';
256
+ if( $screen == 'edit' && $field_value['thumbnail'] ){
257
+ ?>
258
+ <div class="swatchly-cs-image-preview">
259
+ <a href="#" class="swatchly-cs--remove fas fa-times">x</a>
260
+ <img src="<?php echo esc_attr($field_value['thumbnail']) ?>" class="watchly-cs--src">
261
+ </div>
262
+ <?php } ?>
263
+ </div>
264
+ <a href="#" class="button button-primary csf--button" data-popup_title="<?php echo esc_attr__('Select Swatch Image', 'woolenor') ?>" data-upload_button_text="<?php echo esc_attr__('Upload Image', 'woolenor') ?>" data-preview-size="thumbnail"><?php echo esc_html__('Upload', 'woolentor') ?></a>
265
+
266
+ <?php if( $screen == 'edit' ): ?>
267
+ <input name="<?php echo esc_attr($field['id']) ?>[url]" id="<?php echo esc_attr($field['id']) ?>" type="hidden" value="<?php echo esc_attr($field_value['url']) ?>" class="swatchly-cs--url" size="40">
268
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[id]" value="<?php echo esc_attr($field_value['id']) ?>" class="swatchly-cs--id">
269
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[width]" value="<?php echo esc_attr($field_value['width']) ?>" class="swatchly-cs--width">
270
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[height]" value="<?php echo esc_attr($field_value['height']) ?>" class="swatchly-cs--height">
271
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[thumbnail]" value="<?php echo esc_attr($field_value['thumbnail']) ?>" class="swatchly-cs--thumbnail">
272
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[alt]" value="<?php echo esc_attr($field_value['alt']) ?>" class="swatchly-cs--alt">
273
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[title]" value="<?php echo esc_attr($field_value['title']) ?>" class="swatchly-cs--title">
274
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[description]" value="<?php echo esc_attr($field_value['description']) ?>" class="swatchly-cs--description">
275
+ <?php else: ?>
276
+ <input name="<?php echo esc_attr($field['id']) ?>[url]" id="<?php echo esc_attr($field['id']) ?>" type="hidden" value="" class="swatchly-cs--url" size="40">
277
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[id]" value="" class="swatchly-cs--id">
278
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[width]" value="" class="swatchly-cs--width">
279
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[height]" value="" class="swatchly-cs--height">
280
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[thumbnail]" value="" class="swatchly-cs--thumbnail">
281
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[alt]" value="" class="swatchly-cs--alt">
282
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[title]" value="" class="swatchly-cs--title">
283
+ <input type="hidden" name="<?php echo esc_attr($field['id']) ?>[description]" value="" class="swatchly-cs--description">
284
+ <?php endif; ?>
285
+
286
+
287
+ <?php
288
+ } elseif( $field['type'] == 'checkbox' ){
289
+ ?>
290
+ <label class="swatchly-cs-checkbox">
291
+ <?php if( $screen == 'add' ): ?>
292
+ <input type="checkbox" name="<?php echo esc_attr($field['id']) ?>" class="swatchly-cs--input" data-depend-id="swatchly_enable_multi_color">
293
+ <?php else: ?>
294
+ <input type="checkbox" name="<?php echo esc_attr($field['id']) ?>" class="swatchly-cs--input" data-depend-id="swatchly_enable_multi_color" <?php checked($enable_multi_color, 1) ?>>
295
+ <?php endif; ?>
296
+ <span class="swatchly-cs--text"><?php echo esc_html('Checking this will allow you to set multiple colors.', 'woolentor') ?></span>
297
+ </label>
298
+ <?php
299
+ } elseif( $field['type'] == 'select' ){
300
+ ?>
301
+ <select name="swatchly_tooltip" data-depend-id="swatchly_tooltip">
302
+ <?php foreach($field['options'] as $value => $label){
303
+ echo '<option value="'. esc_attr($value) .'"'. selected($value, $field_value) .'>'. esc_html($label) .'</option>';
304
+ } ?>
305
+ </select>
306
+ <?php
307
+ } elseif( $field['type'] == 'text' ){
308
+ ?>
309
+ <input type="text" name="swatchly_tooltip_text" value="<?php echo esc_attr($field_value) ?>" data-depend-id="swatchly_tooltip_text">
310
+ <div class="swatchly-cs-after-text"><?php echo esc_html__('By default, the "Attribute Name" will be shown as the tooltip. If you want custom tooltip text, put it here.', 'woolentor') ?></div>
311
+ <?php
312
+ }
313
+
314
+ echo '</div>';
315
+ }
316
+
317
+ /**
318
+ * It saves meta values to the database
319
+ *
320
+ * @param term_id The ID of the term you're saving the meta for.
321
+ */
322
+ public function save_term_meta( $term_id ){
323
+ $post_data = wp_unslash($_POST);
324
+
325
+ $nonce = sanitize_text_field($post_data['swatchly_term_meta_nonce']);
326
+ if ( !wp_verify_nonce( $nonce, 'swatchly_save_term_meta_nonce' ) ) {
327
+ die( esc_html__( 'No naughty business please!', 'woolentor' ) );
328
+ }
329
+
330
+ $tooltip = isset($post_data['swatchly_tooltip']) ? sanitize_text_field($post_data['swatchly_tooltip']) : '';
331
+ $tooltip_text = isset($post_data['swatchly_tooltip_text']) ? sanitize_text_field($post_data['swatchly_tooltip_text']) : '';
332
+ $tooltip_image_value = isset($post_data['swatchly_tooltip_image']) ? $post_data['swatchly_tooltip_image'] : $this->image_defaults;
333
+ $color_value = isset($post_data['swatchly_color']) ? sanitize_text_field($post_data['swatchly_color']) : '';
334
+ $enable_multi_color = isset($post_data['swatchly_enable_multi_color']) ? sanitize_text_field($post_data['swatchly_enable_multi_color']) : '';
335
+ $enable_multi_color = $enable_multi_color == 'on' ? '1' : '0';
336
+ $color_value_2 = isset($post_data['swatchly_color_2']) ? sanitize_text_field($post_data['swatchly_color_2']) : '';
337
+ $image_value = isset($post_data['swatchly_image']) ? $post_data['swatchly_image'] : $this->image_defaults;
338
+
339
+ update_term_meta(
340
+ $term_id,
341
+ 'swatchly_tooltip',
342
+ $tooltip,
343
+ );
344
+
345
+ if( $tooltip == 'text' ){
346
+ update_term_meta(
347
+ $term_id,
348
+ 'swatchly_tooltip_text',
349
+ $tooltip_text,
350
+ );
351
+ }
352
+
353
+ if( $tooltip == 'image' ){
354
+ update_term_meta(
355
+ $term_id,
356
+ 'swatchly_tooltip_image',
357
+ $tooltip_image_value,
358
+ );
359
+ }
360
+
361
+ update_term_meta(
362
+ $term_id,
363
+ 'swatchly_color',
364
+ $color_value,
365
+ );
366
+
367
+ update_term_meta(
368
+ $term_id,
369
+ 'swatchly_enable_multi_color',
370
+ $enable_multi_color,
371
+ );
372
+
373
+ if( $enable_multi_color ){
374
+ update_term_meta(
375
+ $term_id,
376
+ 'swatchly_color_2',
377
+ $color_value_2
378
+ );
379
+ }
380
+
381
+ update_term_meta(
382
+ $term_id,
383
+ 'swatchly_image',
384
+ $image_value,
385
+ );
386
+ }
387
+
388
+ /**
389
+ * Get swatch type of given taxonomy
390
+ */
391
+ public function get_taxonomy_swatch_type( $taxonomy ){
392
+ global $wpdb;
393
+
394
+ $attr = substr( $taxonomy, 3 );
395
+ $attr = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = %s", $attr ) );
396
+ $swatch_type = isset($attr->attribute_type) ? $attr->attribute_type : '';
397
+
398
+ return $swatch_type;
399
+ }
400
+ }
includes/modules/variation-swatch/includes/Admin/Product_Metabox.php ADDED
@@ -0,0 +1,441 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly\Admin;
3
+
4
+ /**
5
+ * Product Metabox Class
6
+ */
7
+ class Product_Metabox {
8
+
9
+ /**
10
+ * Constructor.
11
+ */
12
+ public function __construct() {
13
+ // Add new tab into the WC metabox tab
14
+ add_filter( 'woocommerce_product_data_tabs', array( $this, 'append_product_metabox_tab' ) );
15
+
16
+ // Add new panel to the WC metabox
17
+ add_action( 'woocommerce_product_data_panels', array( $this, 'append_product_metabox_panel' ) );
18
+
19
+ // Save product metabox data (non ajax)
20
+ add_action( 'woocommerce_process_product_meta_variable', array( $this, 'save_product_metabox') );
21
+ }
22
+
23
+ /**
24
+ * Metabox Tab
25
+ */
26
+ public function append_product_metabox_tab($tabs){
27
+ $product_obj = wc_get_product(get_the_id());
28
+ $product_type = $product_obj->get_type();
29
+ if($product_type != 'variable'){
30
+ return $tabs;
31
+ }
32
+
33
+ $new_tab = array(
34
+ 'label' => esc_html__( 'Swatches Settings', 'woolentor' ),
35
+ 'target' => 'swatchly_swatches_product_data',
36
+ 'class' => '',
37
+ 'priority' => 80,
38
+ );
39
+
40
+ $tabs[] = $new_tab;
41
+
42
+ return $tabs;
43
+ }
44
+
45
+ /**
46
+ * Metabox panel
47
+ */
48
+ public function append_product_metabox_panel(){
49
+ $product_id = get_the_id();
50
+ $product_obj = wc_get_product($product_id);
51
+ $product_type = $product_obj->get_type();
52
+
53
+ if($product_type != 'variable'){
54
+ return;
55
+ }
56
+ ?>
57
+
58
+ <div id="swatchly_swatches_product_data" class="swatchly panel wc-metaboxes-wrapper hidden">
59
+ <div class="woocommerce-message"></div>
60
+ <?php $this->metabox_panel_inner_html( $product_id ); ?>
61
+ <div class="toolbar">
62
+ <button type="button" class="button swatchly_save_swatches button-primary"><?php echo esc_html__('Save Swatches', 'woolentor') ?></button>
63
+ <button type="button" class="button swatchly_reset_to_default"><?php echo esc_html__('Reset to Default', 'woolentor') ?></button>
64
+ </div>
65
+ </div>
66
+
67
+ <?php
68
+ }
69
+
70
+ /**
71
+ * Save product metabox data (non ajax)
72
+ */
73
+ public function save_product_metabox( $product_id ){
74
+ $product_obj = wc_get_product($product_id);
75
+ $product_type = $product_obj->get_type();
76
+
77
+ if($product_type != 'variable'){
78
+ return;
79
+ }
80
+
81
+ if(isset( $_REQUEST['swatchly_product_meta'] )){
82
+ $meta_data = map_deep( wp_unslash( $_REQUEST['swatchly_product_meta'] ), 'sanitize_text_field' );
83
+ update_post_meta( $product_id, '_swatchly_product_meta', $meta_data );
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Metabox panel inner HTML
89
+ */
90
+ public static function metabox_panel_inner_html( $product_id ){
91
+ $product_obj = wc_get_product($product_id);
92
+ $product_attributes = $product_obj->get_variation_attributes();
93
+ $meta_data = get_post_meta($product_id, '_swatchly_product_meta', true);
94
+
95
+ $auto_convert_dropdowns_to_label = isset($meta_data['auto_convert_dropdowns_to_label']) ? $meta_data['auto_convert_dropdowns_to_label'] : '0';
96
+ $auto_convert_dropdowns_to_image = isset($meta_data['auto_convert_dropdowns_to_image']) ? $meta_data['auto_convert_dropdowns_to_image'] : '0';
97
+ $auto_convert_dropdowns_to_image_condition = isset($meta_data['auto_convert_dropdowns_to_image_condition']) ? $meta_data['auto_convert_dropdowns_to_image_condition'] : '';
98
+ ?>
99
+ <div class="wc-metaboxes">
100
+ <div class="toolbar toolbar-top swatchly_auto_convert_dropdowns_to_image_<?php echo esc_attr($auto_convert_dropdowns_to_image) ?>">
101
+
102
+ <p class="form-fieldd">
103
+ <input type="checkbox" class="checkbox" name="swatchly_product_meta[auto_convert_dropdowns_to_label]" id="swatchly_auto_convert_dropdowns" value="1" <?php checked('1', $auto_convert_dropdowns_to_label) ?>>
104
+ <label for="swatchly_auto_convert_dropdowns"><?php esc_html_e('Auto convert Dropdowns to Label Swatch', 'woolentor') ?></label>
105
+ </p>
106
+
107
+ <?php if( is_plugin_active('woolentor-addons-pro/woolentor_addons_pro.php') ): ?>
108
+ <p class="form-fieldd">
109
+ <input type="checkbox" class="checkbox" name="swatchly_product_meta[auto_convert_dropdowns_to_image]" id="swatchly_auto_convert_dropdowns_image" value="1" <?php checked('1', $auto_convert_dropdowns_to_image) ?>>
110
+ <label for="swatchly_auto_convert_dropdowns_image"><?php esc_html_e('Auto convert Dropdown to Image Swatch', 'woolentor') ?></label>
111
+ </p>
112
+ <?php else: ?>
113
+ <p class="form-fieldd wlswatchly-pro-opacity">
114
+ <input type="checkbox" class="checkbox" name="swatchly_product_meta[auto_convert_dropdowns_to_image]" id="swatchly_auto_convert_dropdowns_image" value="1" <?php checked('1', $auto_convert_dropdowns_to_image) ?>>
115
+ <label for="swatchly_auto_convert_dropdowns_image"><?php esc_html_e('Auto convert Dropdown to Image Swatch', 'woolentor') ?> <span class="wlswatchly-pro">Pro</span> </label>
116
+ </p>
117
+ <?php endif; ?>
118
+
119
+ <p class="swatchly_condition swatchly_show_if_auto_convert_to_dropdown_image_1">
120
+ <label for="auto_convert_dropdowns_to_image_condition"><?php esc_html_e('Enable Image Type Attribute For', 'woolentor') ?></label>
121
+ <select class="" id="auto_convert_dropdowns_to_image_condition" name="swatchly_product_meta[auto_convert_dropdowns_to_image_condition]">
122
+ <option value="first_attribute" <?php selected('first_attribute', $auto_convert_dropdowns_to_image_condition) ?>><?php echo esc_html__( 'The First attribute', 'woolentor' ); ?></option>
123
+ <option value="maximum" <?php selected('maximum', $auto_convert_dropdowns_to_image_condition) ?>><?php echo esc_html__('The attribute with Maximum variations count', 'woolentor') ?></option>
124
+ <option value="minimum" <?php selected('minimum', $auto_convert_dropdowns_to_image_condition) ?>><?php echo esc_html__('The attribute with Minimum variations count', 'woolentor') ?></option>
125
+ </select>
126
+ </p>
127
+
128
+ <div class="clear"></div>
129
+ </div>
130
+ <?php
131
+ $tooltip_image_size_content = esc_html__('Place the image size name here. WordPress default image sizes are: thumbnail, medium, medium_large, large and full. Custom image size also can be used. Default is: thumbnail', 'woolentor');
132
+
133
+ foreach( $product_attributes as $taxonomy => $terms ):
134
+ $swatch_types = array('select', 'label', 'color', 'image');
135
+ $tax_terms = $product_attributes[$taxonomy];
136
+ $tax_name = $taxonomy;
137
+
138
+ if ( taxonomy_exists( $taxonomy ) ) {
139
+ $tax_obj = get_taxonomy( $taxonomy );
140
+ $tax_label = $tax_obj->labels->singular_name;
141
+ } else {
142
+ $tax_label = $taxonomy;
143
+ }
144
+
145
+ $swatch_type = isset($meta_data[$tax_name]['swatch_type']) ? $meta_data[$tax_name]['swatch_type'] : '';
146
+
147
+ $tooltip2 = isset($meta_data[$tax_name]['tooltip']) ? $meta_data[$tax_name]['tooltip'] : '';
148
+ $tooltip_text2 = isset($meta_data[$tax_name]['tooltip_text']) ? $meta_data[$tax_name]['tooltip_text'] : '';
149
+ $tooltip_image_id2 = isset($meta_data[$tax_name]['tooltip_image']) ? $meta_data[$tax_name]['tooltip_image'] : '';
150
+ $tooltip_image_size2 = isset($meta_data[$tax_name]['tooltip_image_size']) ? $meta_data[$tax_name]['tooltip_image_size'] : '';
151
+
152
+ $shape_style2 = isset($meta_data[$tax_name]['shape_style']) ? $meta_data[$tax_name]['shape_style'] : '';
153
+ $enable_shape_inset2 = isset($meta_data[$tax_name]['enable_shape_inset']) ? $meta_data[$tax_name]['enable_shape_inset'] : '';
154
+ $shape_inset_size2 = isset($meta_data[$tax_name]['shape_inset_size']) ? $meta_data[$tax_name]['shape_inset_size'] : '';
155
+ ?>
156
+ <div class="wc-metabox swatchly_2 swatchly_type_<?php echo esc_attr($swatch_type); ?> swatchly_tooltip_<?php echo esc_attr($tooltip2) ?> swatchly_shape_inset_<?php echo esc_attr($enable_shape_inset2) ?>">
157
+ <h3>
158
+ <div class="handlediv" title="Click to toggle" aria-expanded="false"></div>
159
+ <strong><?php echo esc_html($tax_label) ?></strong>
160
+ <div class="fr">
161
+
162
+ <!-- Swatch type 2 -->
163
+ <strong><?php echo esc_html__('Swatch Type', 'woolentor') ?></strong>
164
+ <select class="swatchly_swatch_type swatchly_2" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][swatch_type]">
165
+ <option value=""><?php echo esc_html__('Inherit', 'woolentor'); ?></option>
166
+ <?php
167
+ foreach($swatch_types as $type){
168
+ ?>
169
+ <option value="<?php echo esc_attr($type); ?>" <?php selected($type, $swatch_type) ?>><?php echo esc_html(ucwords($type)); ?></option>
170
+ <?php
171
+ }
172
+ ?>
173
+ </select>
174
+
175
+ </div>
176
+ </h3>
177
+ <!-- Level 2 -->
178
+ <div class="wc-metabox-content hidden">
179
+ <table cellpadding="0" cellspacing="0">
180
+ <tbody>
181
+ <!-- shape style -->
182
+ <tr>
183
+ <td class="label" width="25%">
184
+ <label for="swatchly_shape_style"><?php echo esc_html__('Shape Style', 'woolentor') ?></label>
185
+ </td>
186
+ <td>
187
+ <select class="swatchly_shape_style" id="swatchly_shape_style" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][shape_style]">
188
+ <option value=""><?php echo esc_html__('-------', 'woolentor') ?></option>
189
+ <option value="squared" <?php selected('squared', $shape_style2) ?>><?php echo esc_html__('Squared', 'woolentor') ?></option>
190
+ <option value="rounded" <?php selected('rounded', $shape_style2) ?>><?php echo esc_html__('Rounded', 'woolentor') ?></option>
191
+ <option value="circle" <?php selected('circle', $shape_style2) ?>><?php echo esc_html__('Circle', 'woolentor') ?></option>
192
+ </select>
193
+ </td>
194
+ </tr>
195
+
196
+ <!-- enable_shape_inset -->
197
+ <tr>
198
+ <td class="label" width="25%">
199
+ <label for="swatchly_enable_shape_inset"><?php echo esc_html__('Enable Shape Inset', 'woolentor') ?></label>
200
+ </td>
201
+ <td>
202
+ <select class="swatchly_enable_shape_inset" id="swatchly_enable_shape_inset" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][enable_shape_inset]">
203
+ <option value=""><?php echo esc_html__('-------', 'woolentor') ?></option>
204
+ <option value="enable" <?php selected('enable', $enable_shape_inset2) ?>><?php echo esc_html__('Enable', 'woolentor') ?></option>
205
+ <option value="disable" <?php selected('disable', $enable_shape_inset2) ?>><?php echo esc_html__('Disable', 'woolentor') ?></option>
206
+ </select>
207
+ </td>
208
+ </tr>
209
+
210
+ <!-- tooltip -->
211
+ <tr>
212
+ <td class="label" width="25%">
213
+ <label for="swatchly_tooltip"><?php echo esc_html__('Swatch Tooltip', 'woolentor') ?></label>
214
+ </td>
215
+ <td>
216
+ <select class="swatchly_tooltip" id="swatchly_tooltip" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][tooltip]">
217
+ <option value=""><?php echo esc_html__('-------', 'woolentor') ?></option>
218
+ <option value="text" <?php selected('text', $tooltip2) ?>><?php echo esc_html__('Text', 'woolentor') ?></option>
219
+ <option value="image" <?php selected('image', $tooltip2) ?>><?php echo esc_html__('Image', 'woolentor') ?></option>
220
+ <option value="disable" <?php selected('disable', $tooltip2) ?>><?php echo esc_html__('Disable', 'woolentor') ?></option>
221
+ </select>
222
+ </td>
223
+ </tr>
224
+
225
+ <!-- tooltip_text -->
226
+ <tr class="swatchly_show_if_tooltip_text">
227
+ <td><label for="swatchly_tooltip_text"><?php echo esc_html__('Tooltip Text', 'woolentor') ?></label></td>
228
+ <td>
229
+ <input type="text" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][tooltip_text]" id="swatchly_tooltip_text" class="short" value="<?php echo esc_attr($tooltip_text2) ?>">
230
+ </td>
231
+ </tr>
232
+
233
+ <!-- tooltip_image -->
234
+ <tr class="swatchly_show_if_tooltip_image">
235
+ <td><?php echo esc_html__('Tooltip Image', 'woolentor') ?></td>
236
+ <td>
237
+ <div class="swatchly_media_field">
238
+ <div class="swatchly_media_preview">
239
+ <?php
240
+ if( $tooltip_image_id2 ){
241
+ echo '<img src="'. wp_get_attachment_image_url($tooltip_image_id2, 'thumbnail') .'" />';
242
+ }
243
+ ?>
244
+ </div>
245
+ <div>
246
+ <input type="hidden" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][tooltip_image]" class="swatchly_input" value="<?php echo esc_attr($tooltip_image_id2) ?>" />
247
+ <button type="button" class="swatchly_upload_image button"><?php echo esc_html__( 'Upload/Add image', 'woolentor' ); ?></button>
248
+ <button type="button" class="swatchly_remove_image button"><?php echo esc_html__( 'Remove image', 'woolentor' ); ?></button>
249
+ </div>
250
+ </div>
251
+ </td>
252
+ </tr>
253
+
254
+ <!-- tooltip_image_size -->
255
+ <tr class="swatchly_show_if_tooltip_image">
256
+ <td><label for="swatchly_tooltip_image_size"><?php echo esc_html__('Tooltip Image Size', 'woolentor') ?></label></td>
257
+ <td>
258
+ <input type="text" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][tooltip_image_size]" id="swatchly_tooltip_image_size" class="short" value="<?php echo esc_attr($tooltip_image_size2) ?>">
259
+ <?php
260
+ echo wc_help_tip( $tooltip_image_size_content );
261
+ ?>
262
+ </td>
263
+ </tr>
264
+
265
+ <tr>
266
+ <td colspan="2">
267
+ <?php
268
+ foreach($tax_terms as $term_value):
269
+ if ( taxonomy_exists( $taxonomy ) ) {
270
+ $term = get_term_by('slug', $term_value, $taxonomy);
271
+ $term_id = $term->term_id;
272
+ $term_label = $term->name;
273
+ } else {
274
+ $term_label = $term_value; // name
275
+ $term_id = $term_value; // name
276
+ }
277
+
278
+ // get saved values
279
+ $swatch_type = isset($meta_data[$tax_name]['terms'][$term_id]['swatch_type']) ? $meta_data[$tax_name]['terms'][$term_id]['swatch_type'] : '';
280
+
281
+ $image_id = isset($meta_data[$tax_name]['terms'][$term_id]['image']) ? $meta_data[$tax_name]['terms'][$term_id]['image'] : '';
282
+ $image_size = isset($meta_data[$tax_name]['terms'][$term_id]['image_size']) ? $meta_data[$tax_name]['terms'][$term_id]['image_size'] : '';
283
+ $tooltip = isset($meta_data[$tax_name]['terms'][$term_id]['tooltip']) ? $meta_data[$tax_name]['terms'][$term_id]['tooltip'] : '';
284
+ $tooltip_text = isset($meta_data[$tax_name]['terms'][$term_id]['tooltip_text']) ? $meta_data[$tax_name]['terms'][$term_id]['tooltip_text'] : '';
285
+ $tooltip_image_id = isset($meta_data[$tax_name]['terms'][$term_id]['tooltip_image']) ? $meta_data[$tax_name]['terms'][$term_id]['tooltip_image'] : '';
286
+ $tooltip_image_size = isset($meta_data[$tax_name]['terms'][$term_id]['tooltip_image_size']) ? $meta_data[$tax_name]['terms'][$term_id]['tooltip_image_size'] : '';
287
+
288
+ $color = isset($meta_data[$tax_name]['terms'][$term_id]['color']) ? $meta_data[$tax_name]['terms'][$term_id]['color'] : '';
289
+ $enable_multi_color = isset($meta_data[$tax_name]['terms'][$term_id]['enable_multi_color']) ? $meta_data[$tax_name]['terms'][$term_id]['enable_multi_color'] : '';
290
+ $color_2 = isset($meta_data[$tax_name]['terms'][$term_id]['color_2']) ? $meta_data[$tax_name]['terms'][$term_id]['color_2'] : '';
291
+ ?>
292
+ <div class="wc-metabox swatchly_1 swatchly_type_<?php echo esc_attr($swatch_type); ?> swatchly_tooltip_<?php echo esc_attr($tooltip) ?> swatchly_enable_multi_color_<?php echo esc_attr($enable_multi_color) ?>">
293
+ <h3>
294
+ <strong><?php echo esc_html($term_label) ?></strong>
295
+ <div class="fr">
296
+
297
+ <!-- Swatch type 1 -->
298
+ <strong class="swatchly_d_none"><?php echo esc_html__('Swatch Type', 'woolentor') ?></strong>
299
+ <select class="swatchly_swatch_type swatchly_1 swatchly_d_none" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][swatch_type]">
300
+ <option value=""><?php echo esc_html__('Inherit', 'woolentor'); ?></option>
301
+ <?php
302
+ $swatch_type = isset($meta_data[$tax_name]['terms'][$term_id]['swatch_type']) ? $meta_data[$tax_name]['terms'][$term_id]['swatch_type'] : '';
303
+ unset($swatch_types[0]);
304
+
305
+ foreach($swatch_types as $type){
306
+ ?>
307
+ <option value="<?php echo esc_attr($type); ?>" <?php selected($type, $swatch_type) ?>><?php echo esc_html(ucwords($type)); ?></option>
308
+ <?php
309
+ }
310
+ ?>
311
+ </select>
312
+
313
+ </div>
314
+ </h3>
315
+
316
+ <div class="wc-metabox-content hidden">
317
+ <table cellpadding="0" cellspacing="0">
318
+ <tbody>
319
+
320
+ <!-- tooltip -->
321
+ <tr>
322
+ <td class="label" width="25%">
323
+ <label for="swatchly_tooltip"><?php echo esc_html__('Swatch Tooltip', 'woolentor') ?></label>
324
+ </td>
325
+ <td>
326
+ <select class="swatchly_tooltip" id="swatchly_tooltip" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][tooltip]">
327
+ <option value=""><?php echo esc_html__('Inherit', 'woolentor') ?></option>
328
+ <option value="text" <?php selected('text', $tooltip) ?>><?php echo esc_html__('Text', 'woolentor') ?></option>
329
+ <option value="image" <?php selected('image', $tooltip) ?>><?php echo esc_html__('Image', 'woolentor') ?></option>
330
+ <option value="disable" <?php selected('disable', $tooltip) ?>><?php echo esc_html__('Disable', 'woolentor') ?></option>
331
+ </select>
332
+ </td>
333
+ </tr>
334
+
335
+ <!-- tooltip_text -->
336
+ <tr class="swatchly_show_if_tooltip_text">
337
+ <td><label for="swatchly_tooltip_text"><?php echo esc_html__('Tooltip Text', 'woolentor') ?></label></td>
338
+ <td>
339
+ <input type="text" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][tooltip_text]" id="swatchly_tooltip_text" class="short" value="<?php echo esc_attr($tooltip_text) ?>">
340
+ </td>
341
+ </tr>
342
+
343
+ <!-- tooltip_image -->
344
+ <tr class="swatchly_show_if_tooltip_image">
345
+ <td><?php echo esc_html__('Tooltip Image', 'woolentor') ?></td>
346
+ <td>
347
+ <div class="swatchly_media_field">
348
+ <div class="swatchly_media_preview">
349
+ <?php
350
+ if( $tooltip_image_id ){
351
+ echo '<img src="'. wp_get_attachment_image_url($tooltip_image_id, 'thumbnail') .'" />';
352
+ }
353
+ ?>
354
+ </div>
355
+ <div>
356
+ <input type="hidden" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][tooltip_image]" class="swatchly_input" value="<?php echo esc_attr($tooltip_image_id) ?>" />
357
+ <button type="button" class="swatchly_upload_image button"><?php echo esc_html__( 'Upload/Add image', 'woolentor' ); ?></button>
358
+ <button type="button" class="swatchly_remove_image button"><?php echo esc_html__( 'Remove image', 'woolentor' ); ?></button>
359
+ </div>
360
+ </div>
361
+ </td>
362
+ </tr>
363
+
364
+ <!-- tooltip_image_size -->
365
+ <tr class="swatchly_show_if_tooltip_image">
366
+ <td><label for="swatchly_tooltip_image_size"><?php echo esc_html__('Tooltip Image Size', 'woolentor') ?></label></td>
367
+ <td>
368
+ <input type="text" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][tooltip_image_size]" id="swatchly_tooltip_image_size" class="short" value="<?php echo esc_attr($tooltip_image_size) ?>">
369
+ <?php
370
+ echo wc_help_tip( $tooltip_image_size_content );
371
+ ?>
372
+ </td>
373
+ </tr>
374
+
375
+ <!-- swatchly_color -->
376
+ <tr class="swatchly_show_if_color">
377
+ <td><?php echo esc_html__('Swatch Color', 'woolentor') ?></td>
378
+ <td><input type="text" class="swatchly_color_picker" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][color]" data-alpha-enabled="true" data-default-color="" value="<?php echo esc_attr($color) ?>" /></td>
379
+ </tr>
380
+
381
+ <!-- enable_multi_color -->
382
+ <tr class="swatchly_show_if_color">
383
+ <td><?php echo esc_html__('Enable Multi Color', 'woolentor') ?></td>
384
+ <td><input type="checkbox" class="enable_multi_color" id="enable_multi_color" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][enable_multi_color]" value="1" <?php checked( '1', $enable_multi_color ) ?>/></td>
385
+ </tr>
386
+
387
+ <!-- color_2 -->
388
+ <tr class="swatchly_show_if_enable_multi_color_1">
389
+ <td><?php echo esc_html__('Swatch Color 2', 'woolentor') ?></td>
390
+ <td><input type="text" class="swatchly_color_picker" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][color_2]" data-alpha-enabled="true" data-default-color="" value="<?php echo esc_attr($color_2) ?>" /></td>
391
+ </tr>
392
+
393
+ <!-- swatchly_image -->
394
+ <tr class="swatchly_show_if_image">
395
+ <td><?php echo esc_html__('Swatch Image', 'woolentor') ?></td>
396
+ <td>
397
+ <div class="swatchly_media_field">
398
+ <div class="swatchly_media_preview">
399
+ <?php
400
+ if( $image_id ){
401
+ echo '<img src="'. wp_get_attachment_image_url($image_id, 'thumbnail') .'" />';
402
+ }
403
+ ?>
404
+ </div>
405
+ <div>
406
+ <input type="hidden" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][image]" class="swatchly_input" value="<?php echo esc_attr($image_id) ?>" />
407
+ <button type="button" class="swatchly_upload_image button"><?php echo esc_html__( 'Upload/Add image', 'woolentor' ); ?></button>
408
+ <button type="button" class="swatchly_remove_image button"><?php echo esc_html__( 'Remove image', 'woolentor' ); ?></button>
409
+ </div>
410
+ </div>
411
+ </td>
412
+ </tr>
413
+
414
+ <!-- swatchly_image_size -->
415
+ <tr class="swatchly_show_if_image">
416
+ <td><label for="swatchly_image_size"><?php echo esc_html__('Swatch Image Size', 'woolentor') ?></label></td>
417
+ <td>
418
+ <input type="text" name="swatchly_product_meta[<?php echo esc_attr($tax_name) ?>][terms][<?php echo esc_attr($term_id) ?>][image_size]" id="swatchly_image_size" class="short" value="<?php echo esc_attr($image_size) ?>">
419
+ <?php
420
+ echo wc_help_tip( $tooltip_image_size_content );
421
+ ?>
422
+ </td>
423
+ </tr>
424
+
425
+ </tbody>
426
+ </table>
427
+ </div>
428
+ </div>
429
+ <?php endforeach; // tax_terms ?>
430
+ </td>
431
+ </tr>
432
+ </tbody>
433
+ </table>
434
+ </div>
435
+ </div>
436
+ <?php //endif; // is_taxonomy ?>
437
+ <?php endforeach; // product_attributes ?>
438
+ </div><!-- .wc-metabox -->
439
+ <?php
440
+ }
441
+ }
includes/modules/variation-swatch/includes/Admin/Woo_Config.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly\Admin;
3
+ use Woolentor\Modules\Swatchly\Helper as Helper;
4
+ /**
5
+ * Woo_Config class
6
+ */
7
+ class Woo_Config {
8
+
9
+ /**
10
+ * Constructor
11
+ */
12
+ public function __construct() {
13
+ // Add swatch types
14
+ add_filter( 'product_attributes_type_selector', array( $this, 'add_swatch_types'), 10, 1 );
15
+
16
+ // Swatch type preview column
17
+ $taxonomy = isset($_GET['taxonomy']) ? sanitize_title( $_GET['taxonomy'] ) : '';
18
+ add_filter( 'manage_edit-'. $taxonomy .'_columns', array( $this, 'add_new_attribute_column') );
19
+ add_filter( 'manage_'. $taxonomy .'_custom_column', array( $this, 'add_swatch_preview_markup' ), 10, 3 );
20
+ }
21
+
22
+ /**
23
+ * Add swatch types
24
+ */
25
+ public function add_swatch_types( $fields ){
26
+ $current_screen = get_current_screen();
27
+
28
+ if(isset($current_screen->base) && $current_screen->base == 'product_page_product_attributes'){
29
+ $new_fields = array();
30
+ $new_fields['select'] = esc_html__( 'Select', 'woolentor' );
31
+ $new_fields['label'] = esc_html__( 'WL Label', 'woolentor' );
32
+ $new_fields['color'] = esc_html__( 'WL Color', 'woolentor' );
33
+ $new_fields['image'] = esc_html__( 'WL Image', 'woolentor' );
34
+ $fields = array_merge( $new_fields, $fields );
35
+ }
36
+
37
+ return $fields;
38
+ }
39
+
40
+ /**
41
+ * Add new column for swatch preview
42
+ */
43
+ public function add_new_attribute_column( $columns ){
44
+ global $taxnow;
45
+ $request_taxonomy = isset($_GET['taxonomy']) ? sanitize_title($_GET['taxonomy']) : '';
46
+ if($request_taxonomy !== $taxnow){
47
+ return $columns;
48
+ }
49
+
50
+ $swatch_type = Helper::get_swatch_type( $request_taxonomy );
51
+ if( !in_array($swatch_type, array('color', 'image')) ){
52
+ return $columns;
53
+ }
54
+
55
+ $new_columns = array();
56
+ $new_columns['cb'] = isset($columns['cb']) ? $columns['cb'] : '';
57
+ $new_columns['thumb'] = '';
58
+ unset( $columns['cb'] );
59
+
60
+ $new_columns = array_merge( $new_columns, $columns );
61
+
62
+ return $new_columns;
63
+ }
64
+
65
+ /**
66
+ * Add swatch preview markup
67
+ */
68
+ public function add_swatch_preview_markup( $columns, $column, $term_id ){
69
+ global $taxnow;
70
+ $request_taxonomy = isset($_GET['taxonomy']) ? sanitize_title($_GET['taxonomy']) : '';
71
+ if( ($request_taxonomy !== $taxnow) || ('thumb' !== $column)){
72
+ return $columns;
73
+ }
74
+
75
+ $swatch_type = Helper::get_swatch_type( $request_taxonomy );
76
+ if( !in_array($swatch_type, array('color', 'image')) ){
77
+ return $columns;
78
+ }
79
+
80
+ switch ( $swatch_type ) {
81
+ case 'color':
82
+ $color = get_term_meta( $term_id, 'swatchly_color', true );
83
+ $enable_multi_color = get_term_meta( $term_id, 'swatchly_enable_multi_color', true );
84
+ $color_2 = get_term_meta( $term_id, 'swatchly_color_2', true );
85
+
86
+ if($enable_multi_color){
87
+ echo '<div class="swatchly_preview" style="background: linear-gradient( -50deg, '. esc_attr($color) .' 50%, '. esc_attr($color_2) .' 50% );"></div>';
88
+ } else{
89
+ printf( '<div class="swatchly_preview" style="background-color:%s;"></div>', esc_attr( $color ) );
90
+ }
91
+ break;
92
+
93
+ case 'image':
94
+ $image_arr = get_term_meta( $term_id, 'swatchly_image', true );
95
+ $image_url = (is_array($image_arr) && $image_arr['thumbnail']) ? $image_arr['thumbnail'] : wc_placeholder_img_src();
96
+ $image_url = str_replace( ' ', '%20', $image_url );
97
+ printf( '<img class="swatchly_preview" src="%s" width="44px" height="44px">', esc_url( $image_url ) );
98
+ break;
99
+
100
+ case 'label':
101
+ echo '<div class="swatchly_preview"></div>';
102
+ break;
103
+ }
104
+ }
105
+ }
includes/modules/variation-swatch/includes/Frontend.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly;
3
+ use Woolentor\Modules\Swatchly\Helper as Helper;
4
+
5
+ /**
6
+ * Frontend class.
7
+ */
8
+ class Frontend {
9
+ public $sp_enable_swatches;
10
+ public $pl_enable_swatches;
11
+
12
+ /**
13
+ * Constructor.
14
+ */
15
+ public function __construct() {
16
+ $this->sp_enable_swatches = Helper::get_option('sp_enable_swatches');
17
+ $this->pl_enable_swatches = Helper::get_option('pl_enable_swatches');
18
+
19
+ // frontend assets
20
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_assets' ) );
21
+
22
+ // generate blank notice wrapper for ajax add to cart
23
+ if( $this->pl_enable_swatches ){
24
+ add_action('wp_footer', array( $this, 'popup_notice_blank_div') );
25
+ }
26
+
27
+ // add body class
28
+ add_filter( 'body_class', array( $this, 'custom_body_class') );
29
+ }
30
+
31
+ /**
32
+ * Enqueue frontend assets
33
+ */
34
+ public function enqueue_frontend_assets() {
35
+ // Thickbox.
36
+ add_thickbox();
37
+
38
+ wp_register_style( 'swatchly-frontend', MODULE_ASSETS . '/css/frontend.css', array(), WOOLENTOR_VERSION );
39
+ wp_register_script( 'swatchly-add-to-cart-variation', MODULE_ASSETS . '/js/add-to-cart-variation.js', array('jquery', 'wp-util', 'jquery-blockui' ), WOOLENTOR_VERSION, true );
40
+ wp_register_script( 'swatchly-frontend', MODULE_ASSETS . '/js/frontend.js', array('jquery'), WOOLENTOR_VERSION );
41
+
42
+ $enable_swatches = $this->pl_enable_swatches;
43
+
44
+ if( is_product() ){
45
+ $enable_swatches = $this->sp_enable_swatches;
46
+ }
47
+
48
+ if( $enable_swatches ){
49
+ wp_enqueue_style( 'swatchly-frontend' );
50
+ wp_enqueue_script( 'swatchly-frontend' );
51
+
52
+ $swatch_width_height = Helper::get_option('swatch_width_height');
53
+ $swatch_width = !empty($swatch_width_height['width']) ? $swatch_width_height['width'] : '';
54
+ $swatch_height = !empty($swatch_width_height['height']) ? $swatch_width_height['height'] : '';
55
+ $swatch_unit = !empty($swatch_width_height['unit']) ? $swatch_width_height['unit'] : 'px';
56
+
57
+ $tooltip_width_height = Helper::get_option('tooltip_width_height');
58
+ $tooltip_width = !empty($tooltip_width_height['width']) ? $tooltip_width_height['width'] : '';
59
+ $tooltip_unit = !empty($tooltip_width_height['unit']) ? $tooltip_width_height['unit'] : 'px';
60
+
61
+ $custom_css = array();
62
+ $custom_css[] = Helper::add_inline_css(
63
+ array(
64
+ 'id' => '',
65
+ 'properties' => 'min-width',
66
+ 'unit' => $swatch_unit,
67
+ 'selectors' => array(
68
+ '.swatchly-swatch',
69
+ ),
70
+ 'value' => $swatch_width
71
+ )
72
+ );
73
+
74
+ $custom_css[] = Helper::add_inline_css(
75
+ array(
76
+ 'id' => '',
77
+ 'properties' => 'min-height',
78
+ 'unit' => $swatch_unit,
79
+ 'selectors' => array(
80
+ '.swatchly-swatch',
81
+ ),
82
+ 'value' => $swatch_height
83
+ )
84
+ );
85
+
86
+ $custom_css[] = Helper::add_inline_css(
87
+ array(
88
+ 'id' => '',
89
+ 'properties' => 'max-width',
90
+ 'unit' => $tooltip_unit,
91
+ 'selectors' => array(
92
+ '.swatchly-swatch .swatchly-tooltip',
93
+ ),
94
+ 'value' => $tooltip_width
95
+ )
96
+ );
97
+
98
+ wp_add_inline_style( 'swatchly-frontend', implode('', $custom_css) );
99
+ }
100
+
101
+ $auto_convert_dropdowns_to_label = Helper::get_option('auto_convert_dropdowns_to_label', 1);
102
+ $tooltip = Helper::get_option('tooltip', 1);
103
+ $deselect_on_click = Helper::get_option('deselect_on_click', 0);
104
+ $show_selected_attribute_name = Helper::get_option('show_selected_attribute_name', 1);
105
+ $variation_label_separator = Helper::get_option('variation_label_separator', ' : ');
106
+ $product_thumbnail_selector = Helper::get_option('pl_product_thumbnail_selector');
107
+ $hide_wc_forward_button = Helper::get_option('pl_hide_wc_forward_button', 1);
108
+ $enable_cart_popup_notice = Helper::get_option('pl_enable_cart_popup_notice', 1);
109
+ $enable_catalog_mode = Helper::get_option('pl_enable_catalog_mode', 0);
110
+
111
+ $localize_vars = array(
112
+ 'is_product' => is_product(),
113
+ 'enable_swatches' => $enable_swatches,
114
+ 'auto_convert_dropdowns_to_label' => $auto_convert_dropdowns_to_label,
115
+ 'tooltip' => $tooltip,
116
+ 'deselect_on_click' => $deselect_on_click,
117
+ 'show_selected_attribute_name' => $show_selected_attribute_name,
118
+ 'variation_label_separator' => $variation_label_separator,
119
+ 'product_thumbnail_selector' => $product_thumbnail_selector,
120
+ 'hide_wc_forward_button' => $hide_wc_forward_button,
121
+ 'enable_cart_popup_notice' => $enable_cart_popup_notice,
122
+ 'enable_catalog_mode' => $enable_catalog_mode
123
+ );
124
+ wp_localize_script( 'swatchly-frontend', 'swatchly_params', $localize_vars );
125
+
126
+ // Localize for WC Variation js
127
+ wc_get_template( 'single-product/add-to-cart/variation.php' );
128
+
129
+ $params = array(
130
+ 'wc_ajax_url' => \WC_AJAX::get_endpoint( '%%endpoint%%' ),
131
+ 'i18n_no_matching_variations_text' => esc_attr__( 'Sorry, no products matched your selection. Please choose a different combination.', 'woolentor' ),
132
+ 'i18n_make_a_selection_text' => esc_attr__( 'Please select some product options before adding this product to your cart.', 'woolentor' ),
133
+ 'i18n_unavailable_text' => esc_attr__( 'Sorry, this product is unavailable. Please choose a different combination.', 'woolentor' ),
134
+ );
135
+ wp_localize_script( 'swatchly-add-to-cart-variation', 'swatchly_add_to_cart_variation_params', $params );
136
+ }
137
+
138
+ /**
139
+ * Add custom body class
140
+ */
141
+ function custom_body_class( $classes ) {
142
+ $show_swatches_label = Helper::get_option('pl_show_swatches_label');
143
+ $show_clear_link = Helper::get_option('pl_show_clear_link');
144
+ if(!is_product() && $show_swatches_label){
145
+ $classes[] = 'swatchly_pl_show_swatches_label_'. $show_swatches_label;
146
+ }
147
+
148
+ if(!is_product() && $show_clear_link){
149
+ $classes[] = 'swatchly_pl_show_clear_link_'. $show_clear_link;
150
+ }
151
+
152
+ return $classes;
153
+ }
154
+
155
+ /**
156
+ * Ajax add to cart notice div
157
+ */
158
+ public function popup_notice_blank_div(){
159
+ ?>
160
+ <div id="swatchly_notice_popup" style="display:none;"></div>
161
+ <?php
162
+ }
163
+ }
includes/modules/variation-swatch/includes/Frontend/Woo_Config.php ADDED
@@ -0,0 +1,1008 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly\Frontend;
3
+ use Woolentor\Modules\Swatchly\Helper as Helper;
4
+
5
+ /**
6
+ * Woo_Config class
7
+ */
8
+ class Woo_Config {
9
+ public $sp_enable_swatches;
10
+ public $pl_enable_swatches;
11
+
12
+ /**
13
+ * Constructor
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ public function __construct() {
18
+ $this->sp_enable_swatches = Helper::get_option('sp_enable_swatches');
19
+ $this->pl_enable_swatches = Helper::get_option('pl_enable_swatches');
20
+
21
+ // Enable/disable swatch for out of stock variation products
22
+ add_filter( 'woocommerce_available_variation', array($this, 'filter_out_of_stock_variation'), 9999, 3 );
23
+
24
+ // Filter through each variation form to inject the swatch html
25
+ add_filter( 'woocommerce_dropdown_variation_attribute_options_html', array( $this, 'dropdown_variation_attribute_options_html_cb' ), 200, 2 );
26
+
27
+ // before title
28
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'before_title' ){
29
+ add_action('woocommerce_shop_loop_item_title', array( $this, 'loop_variation_form_html'), 0);
30
+
31
+ // For Universal Layout
32
+ add_action('woolentor_universal_before_title', array( $this, 'loop_variation_form_html'), 0 );
33
+ }
34
+
35
+ // after title
36
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'after_title' ){
37
+ add_action('woocommerce_shop_loop_item_title', array( $this, 'loop_variation_form_html'), 9999);
38
+
39
+ // For Universal Layout
40
+ add_action('woolentor_universal_after_title', array( $this, 'loop_variation_form_html'), 0 );
41
+ }
42
+
43
+ // before price
44
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'before_price' ){
45
+ add_action('woocommerce_after_shop_loop_item_title', array( $this, 'loop_variation_form_html'), 9);
46
+
47
+ // For Universal Layout
48
+ add_action('woolentor_universal_before_price', array( $this, 'loop_variation_form_html'), 0 );
49
+ }
50
+
51
+ // after price
52
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'after_price' ){
53
+ add_action('woocommerce_after_shop_loop_item_title', array( $this, 'loop_variation_form_html'), 11);
54
+
55
+ // For Universal Layout
56
+ add_action('woolentor_universal_after_price', array( $this, 'loop_variation_form_html'), 0 );
57
+ }
58
+
59
+ // custom position
60
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'custom_position'){
61
+ $priority = Helper::get_option('pl_custom_position_hook_priority') ? Helper::get_option('pl_custom_position_hook_priority') : 10;
62
+ add_action( Helper::get_option('pl_custom_position_hook_name') , array( $this, 'loop_variation_form_html'), $priority );
63
+ }
64
+
65
+ if( $this->pl_enable_swatches && Helper::get_option('pl_position') == 'shortcode'){
66
+ // shortcode [swatchly_pl_swatches]
67
+ add_shortcode( 'swatchly_pl_swatches', array( $this, 'get_loop_variation_form_html') );
68
+ }
69
+
70
+ // Ajax add to cart
71
+ add_filter( 'woocommerce_loop_add_to_cart_args', array( $this, 'filter_loop_add_to_cart_args' ), 20, 2 );
72
+
73
+ // Ajax variation threshold
74
+ add_filter( 'woocommerce_ajax_variation_threshold', array( $this, 'ajax_variation_threshold') , 15, 2 );
75
+ }
76
+
77
+ /**f
78
+ * Intented to use for the conditionally enable/disable swatch for product listing pages
79
+ * The codition comes from the user input
80
+ */
81
+ public function stop_execution(){
82
+ $enable_swatches = $this->pl_enable_swatches;
83
+ if(is_product()){
84
+ $enable_swatches = $this->sp_enable_swatches;
85
+ }
86
+
87
+ if( (!is_product() && !$enable_swatches) ||
88
+ (is_product() && !$enable_swatches)
89
+ ){
90
+ return true;
91
+ }
92
+
93
+ $input_condition = Helper::get_option('pl_user_input_condition');
94
+ if( $input_condition ){
95
+ $input_condition = "return (". $input_condition .");";
96
+
97
+ if( is_product() ){
98
+ return false;
99
+ } elseif( !eval( $input_condition ) ) {
100
+ return true;
101
+ }
102
+ }
103
+
104
+ return false;
105
+ }
106
+
107
+ /**
108
+ * If "opt-in" Disable the variation form for the "Out of Stock" products
109
+ * Since the variation form will not render, so the swatches will not also render for all "out of stock" variation products.
110
+ *
111
+ * @return bool
112
+ */
113
+ public function filter_out_of_stock_variation( $result, $object, $variation ) {
114
+ $disable_out_of_stock = Helper::get_option('disable_out_of_stock');
115
+
116
+ if( is_product() ){
117
+ $disable_out_of_stock = Helper::get_option('disable_out_of_stock');
118
+ }
119
+
120
+ if( !$disable_out_of_stock ){
121
+ return $result;
122
+ }
123
+
124
+ if ( ! $variation->is_in_stock() ||
125
+ ( $variation->managing_stock() && $variation->get_stock_quantity() <= get_option( 'woocommerce_notify_no_stock_amount', 0 ) && $variation->get_backorders() === 'no' )
126
+ ) {
127
+ $result = false;
128
+ }
129
+
130
+ return $result;
131
+ }
132
+
133
+ /**
134
+ * Filter variation dropdown HTML
135
+ * Consists each of the <select></select> element
136
+ */
137
+ public function dropdown_variation_attribute_options_html_cb( $old_html, $args ){
138
+ $product = $args['product'];
139
+ $ajax_status = wp_doing_ajax();
140
+
141
+ if( is_admin() && !$ajax_status ){
142
+ return $old_html;
143
+ }
144
+
145
+ // return default select for the grouped products for the single page and also for the
146
+ // smart group products created by the WPC Grouped Product for WooCommerce plugin
147
+ $should_return_default_select = false;
148
+ if( is_product() ){
149
+ $single_product = wc_get_product(get_the_id());
150
+ if( $single_product->get_type() == 'grouped' || $single_product->get_type() == 'woosg' ){
151
+ $should_return_default_select = true;
152
+ }
153
+ }
154
+
155
+ $should_return_default_select = apply_filters( 'swatchly_return_default_select', $should_return_default_select, $args );
156
+ if( $should_return_default_select ){
157
+ return $old_html;
158
+ }
159
+
160
+ if( $this->stop_execution() ){
161
+ return $old_html;
162
+ }
163
+
164
+ $background_color = '';
165
+ $enable_multi_color = '';
166
+ $background_color_2 = '';
167
+ $background_image = '';
168
+ $tooltip_image = '';
169
+ $tooltip_image_size = '';
170
+ $image_id = '';
171
+
172
+ $product_id = $product->get_id();
173
+ $product_meta = (array) get_post_meta( $product_id, '_swatchly_product_meta', true );
174
+ $taxonomy = $args['attribute'];
175
+ $variation_attributes = $product->get_variation_attributes();
176
+
177
+ $meta_data = get_post_meta($product_id, '_swatchly_product_meta', true);
178
+ $swatch_type = Helper::get_swatch_type( $taxonomy, $product_id );
179
+ $taxonomy_exists = taxonomy_exists( $taxonomy );
180
+ $tooltip = Helper::get_option('tooltip', '', 'pl');
181
+ $show_swatch_image_in_tooltip = Helper::get_option('show_swatch_image_in_tooltip', '', 'pl');
182
+ $shape_style = Helper::get_option('shape_style', '', 'pl');
183
+ $enable_shape_inset = Helper::get_option('enable_shape_inset', '', 'pl');
184
+ $disabled_attribute_type = Helper::get_option('disabled_attribute_type', '', 'pl');
185
+ $auto_convert_dropdowns_to_label = Helper::get_option('auto_convert_dropdowns_to_label', '', 'pl');
186
+ $auto_convert_dropdowns_to_image = Helper::get_option('auto_convert_dropdowns_to_image', '', 'pl');
187
+ $auto_convert_dropdowns_to_image_condition = Helper::get_option('auto_convert_dropdowns_to_image_condition', '', 'pl');
188
+
189
+ if(is_product()){
190
+ $tooltip = Helper::get_option('tooltip', '', 'sp');
191
+ $show_swatch_image_in_tooltip = Helper::get_option('show_swatch_image_in_tooltip', '', 'sp');
192
+ $shape_style = Helper::get_option('shape_style', '', 'sp');
193
+ $enable_shape_inset = Helper::get_option('enable_shape_inset', '', 'sp');
194
+ $disabled_attribute_type = Helper::get_option('disabled_attribute_type', '', 'sp');
195
+ $auto_convert_dropdowns_to_label = Helper::get_option('auto_convert_dropdowns_to_label', '', 'sp');
196
+ $auto_convert_dropdowns_to_image = Helper::get_option('auto_convert_dropdowns_to_image', '', 'sp');
197
+ $auto_convert_dropdowns_to_image_condition = Helper::get_option('auto_convert_dropdowns_to_image_condition', '', 'sp');
198
+ }
199
+
200
+ // Override product level meta
201
+ $auto_convert_dropdowns_to_label = isset($product_meta['auto_convert_dropdowns_to_label']) && $product_meta['auto_convert_dropdowns_to_label'] ? $product_meta['auto_convert_dropdowns_to_label'] : $auto_convert_dropdowns_to_label;
202
+
203
+ // dropdown to image
204
+ $auto_convert_dropdowns_to_image_p_meta = isset($product_meta['auto_convert_dropdowns_to_image']) && $product_meta['auto_convert_dropdowns_to_image'] ? $product_meta['auto_convert_dropdowns_to_image'] : '';
205
+ $auto_convert_dropdowns_to_image = $auto_convert_dropdowns_to_image_p_meta ? $auto_convert_dropdowns_to_image_p_meta : $auto_convert_dropdowns_to_image;
206
+
207
+ // dropdown to image based on
208
+ $auto_convert_dropdowns_to_image_condition_p_meta = isset($product_meta['auto_convert_dropdowns_to_image_condition']) && $product_meta['auto_convert_dropdowns_to_image_condition'] ? $product_meta['auto_convert_dropdowns_to_image_condition'] : '';
209
+ $auto_convert_dropdowns_to_image_condition = ( $auto_convert_dropdowns_to_image_p_meta && $auto_convert_dropdowns_to_image_condition_p_meta) ? $auto_convert_dropdowns_to_image_condition_p_meta : $auto_convert_dropdowns_to_image_condition;
210
+
211
+
212
+ // Override Product attribute taxonomy level
213
+ $shape_style = Helper::get_product_meta($product_id, $taxonomy, 'shape_style', $shape_style);
214
+ $enable_shape_inset = Helper::get_product_meta($product_id, $taxonomy, 'enable_shape_inset', $enable_shape_inset);
215
+
216
+ if($enable_shape_inset == 'disable' || !$enable_shape_inset){
217
+ $inset_class = '';
218
+ } elseif($enable_shape_inset){
219
+ $inset_class = 'swatchly-inset';
220
+ }
221
+
222
+ $disabled_attribute_type_class = str_replace( '_', '-', $disabled_attribute_type );
223
+
224
+ // Disable ajax add to cart when catalog mode is enabled
225
+ $enable_catalog_mode = Helper::get_option('pl_enable_catalog_mode');
226
+ if( $enable_catalog_mode ){
227
+ $enable_ajax_add_to_cart = false;
228
+ } else {
229
+ $enable_ajax_add_to_cart = Helper::get_option('pl_enable_ajax_add_to_cart');
230
+ }
231
+
232
+ // Check if we've found any swatch type from attribute meta / product meta
233
+ $found_swatch_type = in_array( $swatch_type, array( 'label', 'color', 'image') );
234
+
235
+ // Decide & get which attribute key should be used for auto convert image type swatch (pro)
236
+ $auto_convert_image_arr = array();
237
+ if( $auto_convert_dropdowns_to_image ){
238
+
239
+ if($auto_convert_dropdowns_to_image_condition){
240
+ $count_attrs = array();
241
+
242
+ foreach($variation_attributes as $key => $variation_attribute){
243
+ $count_attrs[$key] = count($variation_attribute);
244
+ }
245
+
246
+ if($auto_convert_dropdowns_to_image_condition == 'minimum'){
247
+
248
+ $selected_attribute_key_for_auto_convert_to_image = array_search( min($count_attrs), $count_attrs );
249
+
250
+ } elseif($auto_convert_dropdowns_to_image_condition == 'maximum'){
251
+
252
+ $selected_attribute_key_for_auto_convert_to_image = array_search( max($count_attrs), $count_attrs );
253
+
254
+ } else {
255
+
256
+ $selected_attribute_key_for_auto_convert_to_image = array_key_first( $variation_attributes );
257
+
258
+ }
259
+ }
260
+
261
+ // If the current dropdown match with the targeted attribute
262
+ // Change the swatch type to "image"
263
+ // Collect the variation images from the all attribtues
264
+ // If an attribute does not have any image from the variation row into admin panel
265
+ // Then the loop will be continued untill an image found for the attribute
266
+ $allow_using_auto_image_for_empty_image_swatch = apply_filters('swatchly_allow_using_auto_image_for_empty_image_swatch', !$found_swatch_type );
267
+ if( $allow_using_auto_image_for_empty_image_swatch && ($args['attribute'] == $selected_attribute_key_for_auto_convert_to_image) ){
268
+
269
+ foreach( $variation_attributes[$selected_attribute_key_for_auto_convert_to_image] as $index => $value ){
270
+ foreach ( $product->get_available_variations() as $key => $variation ) {
271
+ $varation_image_id = $variation['image_id'];
272
+
273
+ if( in_array($value, $variation['attributes']) && $varation_image_id ){
274
+ $auto_convert_image_arr[$value] = $varation_image_id;
275
+
276
+ if( $variation['image_id'] ){
277
+ break;
278
+ }
279
+ }
280
+
281
+ }
282
+ }
283
+ }
284
+ }
285
+
286
+ // Decide which swatch type should be assigned for this attribute
287
+ if( !$found_swatch_type && $auto_convert_dropdowns_to_label && !$auto_convert_dropdowns_to_image ){
288
+ // var_dump(1);
289
+ $swatch_type = 'label';
290
+
291
+ } elseif( !$found_swatch_type && !$auto_convert_dropdowns_to_label && $auto_convert_dropdowns_to_image ){
292
+ // var_dump(2);
293
+ if( $args['attribute'] == $selected_attribute_key_for_auto_convert_to_image ){
294
+ $swatch_type = 'image';
295
+ } else {
296
+ return $old_html;
297
+ }
298
+
299
+ } elseif( !$found_swatch_type && $auto_convert_dropdowns_to_label && $auto_convert_dropdowns_to_image ){
300
+ // var_dump(3);
301
+ $swatch_type = $found_swatch_type ? $swatch_type : 'label';
302
+ if( $args['attribute'] == $selected_attribute_key_for_auto_convert_to_image ){
303
+ $swatch_type = 'image';
304
+ }
305
+
306
+ } elseif( !is_product() && !$found_swatch_type && ($enable_ajax_add_to_cart || $enable_catalog_mode) ){
307
+ // var_dump(4);
308
+ $swatch_type = 'label';
309
+
310
+ } elseif( !$found_swatch_type ){
311
+ // var_dump(5);
312
+ return $old_html;
313
+
314
+ }
315
+
316
+ // Featured Attribute class (pro)
317
+ $featured_class = '';
318
+ $enable_featured_attribute = Helper::get_option('enable_featured_attribute');
319
+ if( $enable_featured_attribute ){
320
+ $featured_attribute = Helper::get_option('featured_attribute_global');
321
+ $featured_attribute = $featured_attribute ? 'pa_'. $featured_attribute : Helper::get_option('featured_attribute_custom');
322
+
323
+ if( ($taxonomy_exists && $featured_attribute == $taxonomy) || $featured_attribute == $taxonomy){
324
+ $featured_class = 'swatchly-featured';
325
+ }
326
+ }
327
+
328
+ // Add class to hide/exclude specific variation row
329
+ $hide_this_variation_row_class = '';
330
+ $hide_this_variation_row = apply_filters( 'swatchly_exclude_variation', false, $args );
331
+ if( $hide_this_variation_row ){
332
+ $hide_this_variation_row_class = 'swatchly-hide-this-variation-row';
333
+ }
334
+
335
+ $selected = $args['selected'];
336
+ $current_term = get_term_by( 'slug', $selected, $taxonomy );
337
+ $current_term_label = $current_term ? $current_term->name : $selected;
338
+
339
+ $html = "<div class='swatchly_default_select $hide_this_variation_row_class'>";
340
+ $html .= $old_html;
341
+ $html .= '</div>';
342
+
343
+ if( $hide_this_variation_row_class ){
344
+ // return the default select, since this variation is hidden by css
345
+ // don't load the further custom swatch markup, which is not needed anymore for this variation row
346
+ return $html;
347
+ }
348
+
349
+ $attr_class = "class='swatchly-type-wrap swatchly-shape-type-$shape_style swatchly-type-$swatch_type $inset_class swatchly-$disabled_attribute_type_class $featured_class $hide_this_variation_row_class'";
350
+ $attr_default_attr_value = "data-default_attr_value='$current_term_label'";
351
+ $html .= "<div $attr_class $attr_default_attr_value>";
352
+
353
+ if ( taxonomy_exists( $taxonomy ) ) {
354
+ $attribute_terms = array();
355
+ $terms_with_order_support = wc_get_product_terms(
356
+ $product->get_id(),
357
+ $taxonomy,
358
+ array(
359
+ 'fields' => 'all',
360
+ )
361
+ );
362
+
363
+ // Collect all the term slugs, used array_map instead of array_colums beacuse of PHP 5.3 version compatibility
364
+ $attribute_terms = array_map( function( $x ) { return $x->slug; }, $terms_with_order_support );
365
+
366
+ foreach ( $attribute_terms as $index => $term_value ) {
367
+ $term = get_term_by('slug', $term_value, $taxonomy);
368
+ $image_id = ( isset($auto_convert_image_arr[$image_id]) && $auto_convert_image_arr[$image_id] ) ? $auto_convert_image_arr[$image_id] : '';
369
+
370
+ $count = $index + 1;
371
+ $tooltip_text = $term->name;
372
+
373
+ // Tooltip (Global level)
374
+ if( is_product() ) {
375
+ $tooltip = Helper::get_option('tooltip', '', 'sp');
376
+ } else {
377
+ $tooltip = Helper::get_option('tooltip', '', 'pl');
378
+ }
379
+
380
+ // Tooltip override (Term level)
381
+ $tooltip2 = get_term_meta( $term->term_id, 'swatchly_tooltip', true );
382
+ if($tooltip2 == 'disable'){
383
+ $tooltip = false;
384
+ }
385
+
386
+ $tooltip_text2 = get_term_meta( $term->term_id, 'swatchly_tooltip_text', true );
387
+ if($tooltip2 == 'text'){
388
+ $tooltip_text = $tooltip_text2;
389
+ }
390
+
391
+ $tooltip_image2 = get_term_meta( $term->term_id, 'swatchly_tooltip_image', true );
392
+ $tooltip_image_size2 = get_term_meta( $term->term_id, 'swatchly_tooltip_image_size', true );
393
+ if($tooltip2 == 'image'){
394
+ $tooltip = true;
395
+ $tooltip_image = $tooltip_image2['id'];
396
+ $tooltip_image_size = $tooltip_image_size2;
397
+ }
398
+
399
+ // Tooltip override (Product level taxonomy option)
400
+ if(isset($meta_data[$term->taxonomy]) && is_array($meta_data[$term->taxonomy])){
401
+ $p_tax_meta = $meta_data[$term->taxonomy];
402
+ $p_tax_meta_swatch_type = $p_tax_meta['swatch_type'];
403
+
404
+ if( in_array($p_tax_meta_swatch_type, array('label', 'color', 'image')) ){
405
+ $tooltip3 = $p_tax_meta['tooltip'];
406
+
407
+ if($tooltip3 == 'disable'){
408
+ $tooltip = false;
409
+ }
410
+
411
+ $tooltip_text3 = $p_tax_meta['tooltip_text'];
412
+ $tooltip_image3 = $p_tax_meta['tooltip_image'];
413
+ $tooltip_image_size3 = $p_tax_meta['tooltip_image_size'];
414
+ if($tooltip3 == 'text'){
415
+ $tooltip = true;
416
+ $tooltip_text = $tooltip_text3;
417
+ }
418
+
419
+ if($tooltip3 == 'image'){
420
+ $tooltip = true;
421
+ $tooltip_image = $tooltip_image3;
422
+ $tooltip_image_size = $tooltip_image_size3;
423
+ }
424
+ }
425
+ }
426
+
427
+ // Tooltip override (Product level term option)
428
+ if(isset($meta_data[$term->taxonomy]['terms'][$term->term_id]) && is_array($meta_data[$term->taxonomy]['terms'][$term->term_id])){
429
+ $p_tax_meta = $meta_data[$term->taxonomy];
430
+ $p_tax_meta_swatch_type = $p_tax_meta['swatch_type'];
431
+
432
+ if( in_array($p_tax_meta_swatch_type, array('label', 'color', 'image')) ){
433
+ $p_term_meta = $meta_data[$term->taxonomy]['terms'][$term->term_id];
434
+ $tooltip4 = $p_term_meta['tooltip'];
435
+
436
+ if($tooltip4 == 'disable'){
437
+ $tooltip = false;
438
+ }
439
+
440
+ $tooltip_text4 = $p_term_meta['tooltip_text'];
441
+ $tooltip_image4 = $p_term_meta['tooltip_image'];
442
+ $tooltip_image_size4 = $p_term_meta['tooltip_image_size'];
443
+ if($tooltip4 == 'text'){
444
+ $tooltip = true;
445
+ $tooltip_text = $tooltip_text4;
446
+ }
447
+
448
+ if($tooltip4 == 'image'){
449
+ $tooltip = true;
450
+ $tooltip_image = $tooltip_image4;
451
+ $tooltip_image_size = $tooltip_image_size4;
452
+ }
453
+ }
454
+ }
455
+
456
+ // Term Meta
457
+ $background_color = get_term_meta( $term->term_id, 'swatchly_color', true );
458
+ $enable_multi_color = get_term_meta( $term->term_id, 'swatchly_enable_multi_color', true );
459
+ $background_color_2 = get_term_meta( $term->term_id, 'swatchly_color_2', true );
460
+ $image_arr = get_term_meta( $term->term_id, 'swatchly_image', true );
461
+ $image_id = isset($image_arr['id']) ? $image_arr['id'] : '';
462
+
463
+ $selected_class = ($term->slug == $selected) ? 'swatchly-selected' : '';
464
+
465
+ // Product level term options Override
466
+ if(isset($meta_data[$term->taxonomy]['terms'][$term->term_id]) && is_array($meta_data[$term->taxonomy]['terms'][$term->term_id])){
467
+ $p_term_meta = $meta_data[$term->taxonomy]['terms'][$term->term_id];
468
+
469
+ if( !empty($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'color'){
470
+ $swatch_type = isset($p_term_meta['swatch_type']) ? $p_term_meta['swatch_type'] : '';
471
+ $background_color = isset($p_term_meta['color']) ? $p_term_meta['color'] : '';
472
+ $enable_multi_color = isset($p_term_meta['enable_multi_color']) ? $p_term_meta['enable_multi_color']: '';
473
+ $background_color_2 = isset($p_term_meta['color_2']) ? $p_term_meta['color_2'] : '';
474
+ }
475
+
476
+ if( !empty($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'image'){
477
+ $swatch_type = isset($p_term_meta['swatch_type']) ? $p_term_meta['swatch_type'] : '';
478
+ $image_id = isset($p_term_meta['image']) ? $p_term_meta['image'] : '';
479
+ }
480
+
481
+ if( !empty($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'label'){
482
+ }
483
+ }
484
+
485
+ // HTML Markup
486
+ $swatch_width_height = Helper::get_option('swatch_width_height');
487
+ $tooltip_width_height = Helper::get_option('tooltip_width_height');
488
+ $swatch_width = !empty($swatch_width_height['width']) ? $swatch_width_height['width'] : '';
489
+ $tooltip_width = !empty($tooltip_width_height['width']) ? $tooltip_width_height['width'] : '';
490
+
491
+ // Images Size key
492
+ $swatch_image_key = Helper::manage_image_size($swatch_width);
493
+ $tooltip_image_key = Helper::manage_image_size($tooltip_width);
494
+
495
+ $swatch_image_size = apply_filters('swatchly_swatch_image_size', $swatch_image_key);
496
+ $tooltip_image_size = apply_filters('swatchly_tooltip_image_size', $tooltip_image_key);
497
+ $tooltip_image = wp_get_attachment_image_url( $tooltip_image, $tooltip_image_size );
498
+ $attr_class = "class='swatchly-swatch $selected_class'";
499
+ $attr_value = "data-attr_value='$term->slug'";
500
+ $attr_label = "data-attr_label='$term->name'";
501
+ $attr_tooltip_text = $tooltip && $tooltip_text ? 'data-tooltip_text="'. esc_attr($tooltip_text) .'"' : '';
502
+ $attr_tooltip_image = $tooltip && $tooltip_image ? 'data-tooltip_image="'. esc_attr($tooltip_image) .'"' : '';
503
+
504
+ if($swatch_type == 'label'){
505
+ $html .= "<div $attr_class $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
506
+ $html .= '<span class="swatchly-content"><span class="swatchly-text">'. esc_html($term->name) .'</span></span>';
507
+ $html .= '</div>';
508
+
509
+ }
510
+
511
+ if($swatch_type == 'color'){
512
+ $attr_inline_style = $background_color ? "style='background-color: $background_color;'" : '';
513
+
514
+ if($enable_multi_color){
515
+ $attr_inline_style = $background_color_2 ? "style='background: linear-gradient(-50deg, $background_color 50%, $background_color_2 50%);'" : '';
516
+ }
517
+
518
+ $html .= "<div $attr_class $attr_inline_style $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
519
+ $html .= '<span class="swatchly-content"></span>';
520
+ $html .= '</div>';
521
+ }
522
+
523
+ if($swatch_type == 'image'){
524
+ if( $auto_convert_dropdowns_to_image && !$image_id && (isset($auto_convert_image_arr[$term_value]) && $auto_convert_image_arr[$term_value]) ){
525
+ $image_id = $auto_convert_image_arr[$term_value];
526
+ }
527
+
528
+ $background_image = $image_id ? wp_get_attachment_image_url( $image_id, $swatch_image_size ) : wc_placeholder_img_src('woocommerce_gallery_thumbnail');
529
+ $attr_inline_style = $background_image ? " style='background-image: url( $background_image );'" : '';
530
+ $attr_inline_style = $background_image ? " style='background-image: url( $background_image );'" : '';
531
+
532
+ if( $show_swatch_image_in_tooltip ){
533
+ $background_image = $image_id ? wp_get_attachment_image_url( $image_id, $tooltip_image_size ) : wc_placeholder_img_src('woocommerce_gallery_thumbnail');
534
+ $attr_tooltip_image = $tooltip && $background_image ? 'data-tooltip_image="'. esc_attr($background_image) .'"' : '';
535
+ }
536
+
537
+ $html .= "<div $attr_class $attr_inline_style $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
538
+ $html .= '<span class="swatchly-content"></span>';
539
+ $html .= '</div>';
540
+ }
541
+
542
+ // More text/button
543
+ if( Helper::get_option('pl_enable_swatch_limit') && $count == Helper::get_option('pl_limit') && !is_product() ){
544
+ $more_swatch_count = count($variation_attributes) - $count;
545
+ if($more_swatch_count){
546
+ $html .= $this->get_more_icon_html($product, $more_swatch_count);
547
+ }
548
+
549
+ break;
550
+ }
551
+ }
552
+ } else{
553
+ $attachment_id = '';
554
+ $custom_variation = $args['options'];
555
+
556
+ foreach( $custom_variation as $index => $variation_name ){
557
+ $count = $index + 1;
558
+ $tooltip_text = $variation_name;
559
+ $image_id = ( isset($auto_convert_image_arr[$variation_name]) && $auto_convert_image_arr[$variation_name] ) ? $auto_convert_image_arr[$variation_name] : '';
560
+
561
+ // Tooltip (Global level)
562
+ if( is_product() ) {
563
+ $tooltip = Helper::get_option('tooltip', '', 'sp');
564
+ } else {
565
+ $tooltip = Helper::get_option('tooltip', '', 'pl');
566
+ }
567
+
568
+ // Tooltip override (Product level taxonomy option)
569
+ if(isset($meta_data[$taxonomy]) && is_array($meta_data[$taxonomy])){
570
+ $p_tax_meta = $meta_data[$taxonomy];
571
+ $p_tax_meta_swatch_type = $p_tax_meta['swatch_type'];
572
+
573
+ if( in_array($p_tax_meta_swatch_type, array('label', 'color', 'image')) ){
574
+ $tooltip3 = isset($p_tax_meta['tooltip']) ? $p_tax_meta['tooltip'] : '';
575
+
576
+ if($tooltip3 == 'disable'){
577
+ $tooltip = false;
578
+ }
579
+
580
+ $tooltip_text3 = isset($p_tax_meta['tooltip_text']) ? $p_tax_meta['tooltip_text'] : '';
581
+ $tooltip_image3 = isset($p_tax_meta['tooltip_image']) ? $p_tax_meta['tooltip_image'] : '';
582
+ $tooltip_image_size3 = isset($p_tax_meta['tooltip_image_size']) ? $p_tax_meta['tooltip_image_size'] : '';
583
+ if($tooltip3 == 'text'){
584
+ $tooltip = true;
585
+ $tooltip_image = '';
586
+ $tooltip_text = $tooltip_text3;
587
+ }
588
+
589
+ if($tooltip3 == 'image'){
590
+ $tooltip = true;
591
+ $tooltip_image = $tooltip_image3;
592
+ $tooltip_image_size = $tooltip_image_size3;
593
+ }
594
+ }
595
+ }
596
+
597
+ // Tooltip override (Product level term option)
598
+ if(isset($meta_data[$taxonomy]['terms'][$variation_name]) && is_array($meta_data[$taxonomy]['terms'][$variation_name])){
599
+ $p_term_meta = $meta_data[$taxonomy]['terms'][$variation_name];
600
+
601
+ if( in_array($p_tax_meta_swatch_type, array('label', 'color', 'image')) ){
602
+ $tooltip4 = $p_term_meta['tooltip'];
603
+
604
+ if($tooltip4 == 'disable'){
605
+ $tooltip = false;
606
+ }
607
+
608
+ $tooltip_text4 = isset($p_term_meta['tooltip_text']) ? $p_term_meta['tooltip_text'] : '';
609
+ $tooltip_image4 = isset($p_term_meta['tooltip_image']) ? $p_term_meta['tooltip_image'] : '';
610
+ $tooltip_image_size4 = isset($p_term_meta['tooltip_image_size']) ? $p_term_meta['tooltip_image_size'] : '';
611
+ if($tooltip4 == 'text'){
612
+ $tooltip = true;
613
+ $tooltip_image = '';
614
+ $tooltip_text = $tooltip_text4;
615
+ }
616
+
617
+ if($tooltip4 == 'image'){
618
+ $tooltip = true;
619
+ $tooltip_image = $tooltip_image4;
620
+ $tooltip_image_size = $tooltip_image_size4;
621
+ }
622
+ }
623
+ }
624
+
625
+
626
+ if(isset($meta_data[$taxonomy]['terms'][$variation_name]) && isset($meta_data[$taxonomy]['terms'][$variation_name])){
627
+ $p_term_meta = $meta_data[$taxonomy]['terms'][$variation_name];
628
+
629
+ if(isset($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'color'){
630
+ $swatch_type = isset($p_term_meta['swatch_type']) ? $p_term_meta['swatch_type'] : '';
631
+ $background_color = isset($p_term_meta['color']) ? $p_term_meta['color'] : '';
632
+ $enable_multi_color = isset($p_term_meta['enable_multi_color']) ? $p_term_meta['enable_multi_color'] : '';
633
+ $background_color_2 = isset($p_term_meta['color_2']) ? $p_term_meta['color_2'] : '';
634
+ }
635
+
636
+ if(isset($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'image'){
637
+ $swatch_type = isset($p_term_meta['swatch_type']) ? $p_term_meta['swatch_type'] : '';
638
+ $image_id = isset($p_term_meta['image']) ? $p_term_meta['image'] : '';
639
+ }
640
+
641
+ if(isset($p_term_meta['swatch_type']) && $p_term_meta['swatch_type'] == 'label'){
642
+ }
643
+ }
644
+
645
+ if(!in_array($swatch_type, array('label', 'color', 'image'))){
646
+ break;
647
+ }
648
+
649
+ // HTML Markup
650
+ $selected_class = ($variation_name == $selected) ? 'swatchly-selected' : '';
651
+
652
+ $swatch_width_height = Helper::get_option('swatch_width_height');
653
+ $tooltip_width_height = Helper::get_option('tooltip_width_height');
654
+ $swatch_width = !empty($swatch_width_height['width']) ? $swatch_width_height['width'] : '';
655
+ $tooltip_width = !empty($tooltip_width_height['width']) ? $tooltip_width_height['width'] : '';
656
+
657
+ // Images Size key
658
+ $swatch_image_key = Helper::manage_image_size($swatch_width);
659
+ $tooltip_image_key = Helper::manage_image_size($tooltip_width);
660
+
661
+ $swatch_image_size = apply_filters('swatchly_swatch_image_size', $swatch_image_key);
662
+ $tooltip_image_size = apply_filters('swatchly_tooltip_image_size', $tooltip_image_key);
663
+ $tooltip_image = wp_get_attachment_image_url( $tooltip_image, $tooltip_image_size );
664
+ $attr_class = "class='swatchly-swatch $selected_class'";
665
+ $attr_label = "data-attr_label='$variation_name'";
666
+ $attr_value = "data-attr_value='$variation_name'";
667
+ $attr_tooltip_text = $tooltip && $tooltip_text ? 'data-tooltip_text="'. esc_attr($tooltip_text) .'"' : '';
668
+ $attr_tooltip_image = $tooltip && $tooltip_image ? 'data-tooltip_image="'. esc_attr($tooltip_image) .'"' : '';
669
+
670
+ if($swatch_type == 'label'){
671
+ $html .= "<div $attr_class $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
672
+ $html .= '<span class="swatchly-content"><span class="swatchly-text">'. esc_html($variation_name) .'</span></span>';
673
+ $html .= '</div>';
674
+
675
+ }
676
+
677
+ if($swatch_type == 'color'){
678
+ $attr_inline_style = $background_color ? "style='background-color: $background_color;'" : '';
679
+
680
+ if($enable_multi_color){
681
+ $attr_inline_style = $background_color_2 ? "style='background: linear-gradient(-50deg, $background_color 50%, $background_color_2 50%);'" : '';
682
+ }
683
+
684
+ $html .= "<div $attr_class $attr_inline_style $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
685
+ $html .= '<span class="swatchly-content"></span>';
686
+ $html .= '</div>';
687
+ }
688
+
689
+ if($swatch_type == 'image'){
690
+ if( $auto_convert_dropdowns_to_image && !$image_id && (isset($auto_convert_image_arr[$variation_name]) && $auto_convert_image_arr[$variation_name]) ){
691
+ $image_id = $auto_convert_image_arr[$variation_name];
692
+ }
693
+
694
+ $background_image = $image_id ? wp_get_attachment_image_url( $image_id, $swatch_image_size ) : wc_placeholder_img_src('woocommerce_gallery_thumbnail');
695
+ $attr_inline_style = $background_image ? " style='background-image: url( $background_image );'" : '';
696
+
697
+ if( $show_swatch_image_in_tooltip ){
698
+ $attr_tooltip_image = $tooltip && $background_image ? 'data-tooltip_image="'. esc_attr($background_image) .'"' : '';
699
+ }
700
+
701
+ $html .= "<div $attr_class $attr_inline_style $attr_tooltip_text $attr_tooltip_image $attr_label $attr_value>";
702
+ $html .= '<span class="swatchly-content"></span>';
703
+ $html .= '</div>';
704
+ }
705
+
706
+ // More text/button
707
+ if( Helper::get_option('pl_enable_swatch_limit') && $count == Helper::get_option('pl_limit') && !is_product() ){
708
+ $more_swatch_count = count($custom_variation) - $count;
709
+ if($more_swatch_count){
710
+ $html .= $this->get_more_icon_html($product, $more_swatch_count);
711
+ }
712
+ break;
713
+ }
714
+ }
715
+ }
716
+ $html .= '</div> <!-- /.swatchly-type-wrap --> ';
717
+
718
+ return $html;
719
+ }
720
+
721
+ /**
722
+ * More icon for the shop page
723
+ */
724
+ public function get_more_icon_html( $product, $more_swatch_count ){
725
+ $pl_more_text_link_arr = Helper::get_option('pl_more_text_link');
726
+ $pl_more_text_link_url = esc_url($pl_more_text_link_arr['url'] ? $pl_more_text_link_arr['url'] : $product->get_permalink());
727
+ $pl_more_text_link_target = esc_attr($pl_more_text_link_arr['target']);
728
+
729
+ $html = '';
730
+ if( Helper::get_option('pl_more_text_type') == 'text' ){
731
+ $more_text = Helper::get_option('pl_more_text');
732
+ $more_text = $more_text ? $more_text : esc_html__('More', 'woolentor');
733
+
734
+
735
+ $html .= '<div class="swatchly-more-button">';
736
+ $html .= "<a href='$pl_more_text_link_url' target='$pl_more_text_link_target' class='swatchly-content'><span>+</span><span>$more_swatch_count</span> <span>$more_text </span></a>";
737
+ $html .= '</div>';
738
+
739
+ } else {
740
+
741
+ $attr_data_tooltip_text = '';
742
+ if(Helper::get_option('pl_more_icon_enable_tooltip')){
743
+ $pl_more_icon_tooltip_text = Helper::get_option('pl_more_icon_tooltip_text');
744
+ $attr_data_tooltip_text = $pl_more_icon_tooltip_text ? 'data-tooltip_text="'. esc_attr($pl_more_icon_tooltip_text) .'"' : 'data-tooltip_text="'. esc_attr('More Options', 'woolentor') .'"';
745
+ }
746
+
747
+ $html .= "<a href='$pl_more_text_link_url' target='$pl_more_text_link_target' class='swatchly-swatch swatchly-more-button' $attr_data_tooltip_text>";
748
+ $html .= '<span class="swatchly-content"></span>';
749
+ $html .= '</a>';
750
+ }
751
+
752
+ return $html;
753
+ }
754
+
755
+ /**
756
+ * Filter loop add cart button to insert the variation form.
757
+ */
758
+ public function filter_loop_add_to_cart_link( $html, $product ){
759
+ if( $this->stop_execution() ){
760
+ return;
761
+ }
762
+
763
+ $position = Helper::get_option('pl_position');
764
+
765
+ if( !in_array($position, array( 'before_cart', 'after_cart' )) ){
766
+ return $html;
767
+ }
768
+
769
+ if( $position == 'before_cart' ){
770
+ $html = $this->get_loop_variation_form_html() . $html;
771
+ } else {
772
+ $html = $html . $this->get_loop_variation_form_html();
773
+ }
774
+
775
+ return $html;
776
+ }
777
+
778
+ /**
779
+ * Loop variation form HTML
780
+ */
781
+ public function get_loop_variation_form_html(){
782
+ if( $this->stop_execution() ){
783
+ return;
784
+ }
785
+
786
+ global $product;
787
+ if ( ! $product->is_type( 'variable' ) ) {
788
+ return;
789
+ }
790
+
791
+ // hide out of stock meesage if the product is not in stock & user opt-in to hide the message
792
+ $hide_out_of_stock_message = apply_filters('swatchly_hide_out_of_stock_message_for_loop_product', false);
793
+ if( !$product->get_available_variations() && $hide_out_of_stock_message ){
794
+ return;
795
+ }
796
+
797
+ $align = Helper::get_option('pl_align');
798
+
799
+ // Enqueue variation scripts.
800
+ wp_enqueue_script( 'swatchly-add-to-cart-variation' );
801
+
802
+ // Get Available variations?
803
+ $get_variations = count( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );
804
+ $available_variations = $get_variations ? $product->get_available_variations() : false;
805
+ $attributes = $product->get_variation_attributes();
806
+ $selected_attributes = $product->get_default_attributes();
807
+
808
+ $attribute_keys = array_keys( $attributes );
809
+ $variations_json = wp_json_encode( $available_variations );
810
+ $variations_attr = function_exists( 'wc_esc_json' ) ? wc_esc_json( $variations_json ) : _wp_specialchars( $variations_json, ENT_QUOTES, 'UTF-8', true );
811
+
812
+ $html = '';
813
+ ob_start();
814
+ ?>
815
+ <form class="swatchly_loop_variation_form variations_form swatchly_align_<?php echo esc_attr($align); ?>" data-product_variations="<?php echo esc_attr( $variations_json ); ?>" data-product_id="<?php echo absint( $product->get_id() ); ?>" data-product_variations="<?php echo $variations_attr; // WPCS: XSS ok. ?>">
816
+
817
+ <?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
818
+ <p class="stock out-of-stock"><?php echo esc_html( apply_filters( 'woocommerce_out_of_stock_message', __( 'This product is currently out of stock and unavailable.', 'woolentor' ) ) ); ?></p>
819
+ <?php else : ?>
820
+ <table class="variations" cellspacing="0">
821
+ <tbody>
822
+ <?php foreach ( $attributes as $attribute_name => $options ) : ?>
823
+ <tr>
824
+ <?php if(Helper::get_option('pl_show_swatches_label')): ?>
825
+ <td class="label"><label for="<?php echo esc_attr( sanitize_title( $attribute_name ) ); ?>"><?php echo wc_attribute_label( $attribute_name ); // WPCS: XSS ok. ?></label></td>
826
+ <?php endif; ?>
827
+
828
+ <td class="value">
829
+ <?php
830
+ wc_dropdown_variation_attribute_options(
831
+ array(
832
+ 'options' => $options,
833
+ 'attribute' => $attribute_name,
834
+ 'product' => $product,
835
+ )
836
+ );
837
+
838
+ if(Helper::get_option('pl_show_clear_link')){
839
+ echo end( $attribute_keys ) === $attribute_name ? wp_kses_post( apply_filters( 'woocommerce_reset_variations_link', '<a class="reset_variations" href="#">' . esc_html__( 'Clear', 'woolentor' ) . '</a>' ) ) : '';
840
+ }
841
+ ?>
842
+ </td>
843
+ </tr>
844
+ <?php endforeach; ?>
845
+ </tbody>
846
+ </table>
847
+ <?php endif; ?>
848
+ </form> <!-- .swatchly_loop_variation_form -->
849
+ <?php
850
+
851
+ $html = ob_get_clean();
852
+ return $html;
853
+ }
854
+
855
+ /**
856
+ * Loop variation form HTML
857
+ */
858
+ public function loop_variation_form_html(){
859
+ if( $this->stop_execution() ){
860
+ return;
861
+ }
862
+
863
+ // Prevent showing variation form for gutenberg editor in the shop page
864
+ $api_url = !empty($_SERVER['REQUEST_URI']) ? strtok($_SERVER['REQUEST_URI'], '?') : '';
865
+ $pattern = "/(wp-json|woolentor)/";
866
+ $matches = preg_match_all($pattern, $api_url);
867
+ if( $matches == 2 ){
868
+ return;
869
+ }
870
+
871
+ global $product;
872
+ if ( ! $product->is_type( 'variable' ) ) {
873
+ return;
874
+ }
875
+
876
+ // hide out of stock meesage if the product is not in stock & user opt-in to hide the message
877
+ $hide_out_of_stock_message = apply_filters('swatchly_hide_out_of_stock_message_for_loop_product', false);
878
+ if( !$product->get_available_variations() && $hide_out_of_stock_message ){
879
+ return;
880
+ }
881
+
882
+ $align = Helper::get_option('pl_align');
883
+
884
+ // Enqueue variation scripts.
885
+ wp_enqueue_script( 'swatchly-add-to-cart-variation' );
886
+
887
+ // Get Available variations?
888
+ $get_variations = count( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );
889
+ $available_variations = $get_variations ? $product->get_available_variations() : false;
890
+ $attributes = $product->get_variation_attributes();
891
+ $selected_attributes = $product->get_default_attributes();
892
+
893
+ $attribute_keys = array_keys( $attributes );
894
+ $variations_json = wp_json_encode( $available_variations );
895
+ $variations_attr = function_exists( 'wc_esc_json' ) ? wc_esc_json( $variations_json ) : _wp_specialchars( $variations_json, ENT_QUOTES, 'UTF-8', true );
896
+ ?>
897
+ <div class="swatchly_loop_variation_form variations_form swatchly_align_<?php echo esc_attr($align); ?>" data-product_variations="<?php echo esc_attr( $variations_json ); ?>" data-product_id="<?php echo absint( $product->get_id() ); ?>" data-product_variations="<?php echo $variations_attr; // WPCS: XSS ok. ?>">
898
+
899
+ <?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
900
+ <p class="stock out-of-stock"><?php echo esc_html( apply_filters( 'woocommerce_out_of_stock_message', __( 'This product is currently out of stock and unavailable.', 'woolentor' ) ) ); ?></p>
901
+ <?php else : ?>
902
+ <table class="variations" cellspacing="0">
903
+ <tbody>
904
+ <?php
905
+ // Catalog mode support for shop page
906
+ $enable_catalog_mode = Helper::get_option('pl_enable_catalog_mode');
907
+ $global_catalog_attributes = (array) Helper::get_option('pl_catalog_global_attributes');
908
+ foreach($global_catalog_attributes as $key => $value){
909
+ if(is_array($value)){
910
+ $global_catalog_attributes[$key] = 'pa_'. $value[0];
911
+ }
912
+ }
913
+ $custom_catalog_attributes = Helper::get_option('pl_catalog_custom_attributes');
914
+ $custom_catalog_attributes = explode(PHP_EOL, $custom_catalog_attributes);
915
+ $custom_catalog_attributes = array_map('trim', $custom_catalog_attributes); // remove white space from end of elements
916
+
917
+ $catalog_attrs = array_values(array_merge($global_catalog_attributes, $custom_catalog_attributes));
918
+ $double_matched = false;
919
+ $attribute_to_match = '';
920
+
921
+ // filter & get product attributes which only match with the catalog attributes
922
+ $filtered_attributes = array_intersect_key($attributes, array_flip($catalog_attrs));
923
+
924
+ if( count($filtered_attributes) == 1 ){
925
+ $attribute_to_match = array_keys($filtered_attributes);
926
+ $attribute_to_match = $attribute_to_match[0];
927
+ } else {
928
+ $double_matched = true;
929
+ }
930
+
931
+ foreach ( $attributes as $attribute_name => $options ) :
932
+ // if only one catalog attribute match with this product
933
+ // then continue till matched the attribute
934
+ if( $enable_catalog_mode && $attribute_to_match && $attribute_to_match != $attribute_name ){
935
+ continue;
936
+ }
937
+ ?>
938
+ <tr>
939
+ <?php if(Helper::get_option('pl_show_swatches_label')): ?>
940
+ <td class="label"><label for="<?php echo esc_attr( sanitize_title( $attribute_name ) ); ?>"><?php echo wc_attribute_label( $attribute_name ); // WPCS: XSS ok. ?></label></td>
941
+ <?php endif; ?>
942
+
943
+ <td class="value">
944
+ <?php
945
+ wc_dropdown_variation_attribute_options(
946
+ array(
947
+ 'options' => $options,
948
+ 'attribute' => $attribute_name,
949
+ 'product' => $product,
950
+ )
951
+ );
952
+
953
+ if(Helper::get_option('pl_show_clear_link')){
954
+ echo end( $attribute_keys ) === $attribute_name ? wp_kses_post( apply_filters( 'woocommerce_reset_variations_link', '<a class="reset_variations" href="#">' . esc_html__( 'Clear', 'woolentor' ) . '</a>' ) ) : '';
955
+ }
956
+ ?>
957
+ </td>
958
+ </tr>
959
+ <?php
960
+ // stop the loop
961
+ // when catalog mode is enabled & more that one catalog attributes matched with this product. So only the first attribute will show for shop.
962
+ // When current attribute is matched with the catalog attribute
963
+ if( $enable_catalog_mode && ( $double_matched || $attribute_to_match == $attribute_name) ){
964
+ break;
965
+ }
966
+ endforeach; ?>
967
+ </tbody>
968
+ </table>
969
+ <?php endif; ?>
970
+ </div>
971
+ <?php
972
+ }
973
+
974
+ /**
975
+ * Filter loop add to cart button HTML attributes
976
+ */
977
+ public function filter_loop_add_to_cart_args( $wp_parse_args, $product ){
978
+ $enable_catalog_mode = Helper::get_option('pl_enable_catalog_mode');
979
+ if( $enable_catalog_mode ){
980
+ $enable_ajax_add_to_cart = false;
981
+ } else {
982
+ $enable_ajax_add_to_cart = Helper::get_option('pl_enable_ajax_add_to_cart');
983
+ }
984
+
985
+ if($enable_ajax_add_to_cart){
986
+ if( $product->is_type( 'variable' ) ){
987
+ $add_to_cart_text = Helper::get_option('pl_add_to_cart_text');
988
+
989
+ $wp_parse_args['class'] .= ' swatchly_ajax_add_to_cart';
990
+ $wp_parse_args['attributes']['data-add_to_cart_text'] = $add_to_cart_text ? $add_to_cart_text : esc_html__('Add to Cart', 'woolentor');
991
+ $wp_parse_args['attributes']['data-select_options_text'] = apply_filters( 'woocommerce_product_add_to_cart_text', $product->add_to_cart_text(), $product );
992
+ }
993
+ }
994
+
995
+ return $wp_parse_args;
996
+ }
997
+
998
+ /**
999
+ * Ajax variation threshold
1000
+ */
1001
+ public function ajax_variation_threshold( $qty, $product ){
1002
+ if(Helper::get_option('ajax_variation_threshold')){
1003
+ $qty = absint(Helper::get_option('ajax_variation_threshold'));
1004
+ }
1005
+
1006
+ return $qty;
1007
+ }
1008
+ }
includes/modules/variation-swatch/includes/Helper.php ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class Helper{
7
+
8
+ private static $_instance = null;
9
+
10
+ /**
11
+ * Instance
12
+ */
13
+ public static function instance(){
14
+ if( is_null( self::$_instance ) ){
15
+ self::$_instance = new self();
16
+ }
17
+ return self::$_instance;
18
+ }
19
+
20
+ /**
21
+ * Constructor
22
+ */
23
+ public function __construct(){
24
+
25
+ }
26
+
27
+ /**
28
+ * Get global options value.
29
+ *
30
+ * @since 1.0.0
31
+ *
32
+ * @param string $option_name Option name.
33
+ * @param null $default Default value.
34
+ * @param null $override_for Override global options for product list/product details page. Accepted values are: pl, sp
35
+ *
36
+ * @return string|null
37
+ */
38
+ public static function get_option( $option_name = '', $default = null, $override_for = null ) {
39
+ $options = get_option( 'woolentor_swatch_settings' );
40
+
41
+ $global_general_setting_fields = array(
42
+ 'enable_swatches',
43
+ 'auto_convert_dropdowns_to_label',
44
+ 'auto_convert_dropdowns_to_image',
45
+ 'auto_convert_dropdowns_to_image_condition',
46
+ 'swatch_width',
47
+ 'swatch_height',
48
+ 'tooltip',
49
+ 'show_swatch_image_in_tooltip',
50
+ 'shape_style',
51
+ 'enable_shape_inset',
52
+ 'shape_inset_size',
53
+ 'deselect_on_click',
54
+ 'show_selected_attribute_name',
55
+ 'disabled_attribute_type',
56
+ 'disable_out_of_stock',
57
+ );
58
+
59
+ if($override_for == 'sp' && isset($options['sp_override_global']) && $options['sp_override_global']){
60
+ $opt_name = 'sp_'. $option_name;
61
+
62
+ if(in_array($option_name, $global_general_setting_fields)){
63
+ $option_name = $opt_name;
64
+ }
65
+ }
66
+
67
+ if($override_for == 'pl' && isset($options['pl_override_global']) && $options['pl_override_global']){
68
+ $opt_name = 'pl_'. $option_name;
69
+
70
+ if(in_array($option_name, $global_general_setting_fields)){
71
+ $option_name = $opt_name;
72
+ }
73
+ }
74
+
75
+ $option_value = isset( $options[$option_name] ) ? $options[$option_name] : $default;
76
+
77
+ // CS was saved checkbox value as 1 but WL uses on.
78
+ // So convert it to 1
79
+ if( $option_value === 'on' ){
80
+ $option_value = 1;
81
+ }
82
+
83
+ return $option_value;
84
+ }
85
+
86
+ /**
87
+ * Get product meta options value.
88
+ *
89
+ * @since 1.0.0
90
+ *
91
+ * @param int $product_id Product ID.
92
+ * @param string $option_name Option name.
93
+ * @param null $default Default value.
94
+ *
95
+ * @return string|null
96
+ */
97
+ public static function get_product_meta( $product_id, $taxonomy, $option_name = '', $default = '') {
98
+ // product override
99
+ $product_meta = get_post_meta( $product_id, '_swatchly_product_meta', true );
100
+
101
+ $meta_value = isset( $product_meta[$taxonomy][$option_name] ) && $product_meta[$taxonomy][$option_name] ? $product_meta[$taxonomy][$option_name] : $default;
102
+
103
+ return $meta_value;
104
+ }
105
+
106
+ /**
107
+ * Get image sizes.
108
+ *
109
+ * @since 1.0.0
110
+ *
111
+ * @return array
112
+ */
113
+ public static function get_image_sizes() {
114
+ global $_wp_additional_image_sizes;
115
+
116
+ $image_sizes = array();
117
+ $default_image_sizes = array( 'thumbnail', 'medium', 'medium_large', 'large' );
118
+ foreach ( $default_image_sizes as $size ) {
119
+ $image_sizes[$size]['width'] = intval( get_option( "{$size}_size_w") );
120
+ $image_sizes[$size]['height'] = intval( get_option( "{$size}_size_h") );
121
+ $image_sizes[$size]['crop'] = get_option( "{$size}_crop" ) ? get_option( "{$size}_crop" ) : false;
122
+ }
123
+
124
+ if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ){
125
+ $image_sizes = array_merge( $image_sizes, $_wp_additional_image_sizes );
126
+ }
127
+
128
+ return array_keys($image_sizes);
129
+ }
130
+
131
+ /**
132
+ * Get swatch type by taxonomy name
133
+ *
134
+ * @since 1.0.0
135
+ *
136
+ * @param string $taxonomy Taxonomy name.
137
+ * @param null $product_id Product id.
138
+ *
139
+ * @return string
140
+ */
141
+ public static function get_swatch_type( $taxonomy, $product_id = null ) {
142
+ $swatch_type = 'select';
143
+
144
+ // txonomy override
145
+ if( taxonomy_exists( $taxonomy ) ){
146
+ global $wpdb;
147
+
148
+ $attr = substr( $taxonomy, 3 );
149
+ $attr = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = %s", $attr ) );
150
+ $swatch_type = isset($attr->attribute_type) ? $attr->attribute_type : '';
151
+
152
+ if( is_admin() ){
153
+ return $swatch_type;
154
+ }
155
+ }
156
+
157
+ // product override
158
+ if( $product_id ){
159
+ $product_meta = get_post_meta( $product_id, '_swatchly_product_meta', true );
160
+ $auto_convert_dropdowns_to_label = isset($product_meta['auto_convert_dropdowns_to_label']) ? $product_meta['auto_convert_dropdowns_to_label'] : '';
161
+ $swatch_type = isset( $product_meta[$taxonomy]['swatch_type'] ) && $product_meta[$taxonomy]['swatch_type'] ? $product_meta[$taxonomy]['swatch_type'] : $swatch_type;
162
+ }
163
+
164
+ return $swatch_type;
165
+ }
166
+
167
+ /**
168
+ * It takes an option name, and returns a CSS string if the option is set
169
+ *
170
+ * @param opt_name The name of the option you want to retrieve.
171
+ * @param args
172
+ */
173
+ public static function add_inline_css( $args ){
174
+ /* Checking if the value is empty, if it is empty it will get the value from the get_option
175
+ function. */
176
+ $opt_name = !empty($args['opt_name']) ? $args['opt_name'] : '';
177
+ $value = !empty($args['value']) ? $args['value'] : SELF::get_option($opt_name);
178
+
179
+ $selectors = !empty($args['selectors']) && is_array($args['selectors']) ? $args['selectors'] : array();
180
+ $properties = !empty($args['properties']) ? explode(',', $args['properties']) : array();
181
+ $unit = !empty($args['unit']) ? $args['unit'] : '';
182
+
183
+ if( $value ){
184
+ if( is_array($selectors) ){
185
+ $selectors = implode(',', $selectors);
186
+ }
187
+
188
+ $properties_css = '';
189
+ foreach($properties as $property){
190
+ $properties_css .= "$property: {$value}{$unit};";
191
+ }
192
+
193
+ return "$selectors{
194
+ $properties_css
195
+ }";
196
+ }
197
+
198
+ return null;
199
+ }
200
+
201
+ // Manage Image size key
202
+ public static function manage_image_size( $width ){
203
+ if( $width > 150 ){
204
+ $image_size_key = 'medium';
205
+ }else if( $width > 300 ){
206
+ $image_size_key = 'large';
207
+ }else if( $width > 1024 ){
208
+ $image_size_key = 'full';
209
+ }else{
210
+ $image_size_key = 'thumbnail';
211
+ }
212
+ return $image_size_key;
213
+ }
214
+
215
+ }
216
+
217
+ Helper::instance();
includes/modules/variation-swatch/includes/ajax-actions.php ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules\Swatchly;
3
+ use Woolentor\Modules\Swatchly\Helper as Helper;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
+
7
+ class Ajax_Actions{
8
+ private static $_instance = null;
9
+
10
+ /**
11
+ * Instance
12
+ */
13
+ public static function instance(){
14
+ if( is_null( self::$_instance ) ){
15
+ self::$_instance = new self();
16
+ }
17
+ return self::$_instance;
18
+ }
19
+
20
+ /**
21
+ * Constructor
22
+ */
23
+ public function __construct(){
24
+ if( Helper::get_option('pl_enable_ajax_add_to_cart') &&
25
+ Helper::get_option('pl_enable_cart_popup_notice', '', 1)
26
+ ){
27
+ // generate ajax add to cart notice
28
+ add_action( 'wp_ajax_swatchly_ajax_add_to_cart_notice', array($this, 'ajax_add_to_cart_notice') );
29
+ add_action( 'wp_ajax_nopriv_swatchly_ajax_add_to_cart_notice', array($this, 'ajax_add_to_cart_notice') );
30
+ }
31
+
32
+ /**
33
+ * AJAX add to cart.
34
+ */
35
+ add_action( 'wp_ajax_swatchly_ajax_add_to_cart', array($this, 'ajax_add_to_cart') );
36
+ add_action( 'wp_ajax_nopriv_swatchly_ajax_add_to_cart', array($this, 'ajax_add_to_cart') );
37
+
38
+ /**
39
+ * Reload metabox data on variation update
40
+ */
41
+ add_action( 'wp_ajax_swatchly_ajax_reload_metabox_panel', array($this, 'ajax_reload_metabox_panel') );
42
+
43
+ /**
44
+ * Save product metabox data (ajax)
45
+ */
46
+ add_action( 'wp_ajax_swatchly_ajax_save_product_meta', array($this, 'ajax_save_product_meta') );
47
+
48
+ /**
49
+ * Reset product metabox data (ajax)
50
+ */
51
+ add_action( 'wp_ajax_swatchly_ajax_reset_product_meta', array($this, 'ajax_reset_product_meta') );
52
+ }
53
+
54
+ /**
55
+ * Ajax WooCommerce notices.
56
+ */
57
+ public function ajax_add_to_cart_notice() {
58
+ wc_print_notices();
59
+ wp_die();
60
+ }
61
+
62
+ /**
63
+ * AJAX add to cart.
64
+ */
65
+ public function ajax_add_to_cart() {
66
+ if ( ! isset( $_POST['product_id'] ) ) {
67
+ return;
68
+ }
69
+
70
+ $product_id = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) );
71
+ $product_title = get_the_title( $product_id );
72
+ $quantity = ! empty( $_POST['quantity'] ) ? wc_stock_amount( absint( $_POST['quantity'] ) ) : 1;
73
+ $product_status = get_post_status( $product_id );
74
+ $variation_id = ! empty( $_POST['variation_id'] ) ? absint( $_POST['variation_id'] ) : 0;
75
+ $variation = ! empty( $_POST['variation'] ) ? array_map( 'sanitize_text_field', $_POST['variation'] ) : array();
76
+ $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variation );
77
+ $cart_page_url = wc_get_cart_url();
78
+
79
+ if ( $passed_validation && false !== WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation ) && 'publish' === $product_status ) {
80
+
81
+ do_action( 'woocommerce_ajax_added_to_cart', $product_id );
82
+
83
+ if ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) {
84
+ wc_add_to_cart_message( array( $product_id => $quantity ), true );
85
+ } else {
86
+ $added_to_cart_notice = sprintf(
87
+ /* translators: %s: Product title */
88
+ esc_html__( '"%1$s" has been added to your cart. %2$s', 'woolentor' ),
89
+ esc_html( $product_title ),
90
+ '<a href="' . esc_url( $cart_page_url ) . '">' . esc_html__( 'View Cart', 'woolentor' ) . '</a>'
91
+ );
92
+
93
+ wc_add_notice( $added_to_cart_notice );
94
+ }
95
+
96
+ \WC_AJAX::get_refreshed_fragments();
97
+
98
+ } else {
99
+
100
+ // If there was an error adding to the cart, redirect to the product page to show any errors.
101
+ $data = array(
102
+ 'error' => true,
103
+ 'product_url' => apply_filters( 'woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
104
+ );
105
+
106
+ wp_send_json( $data );
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Reload metabox data on variation update
112
+ */
113
+ public function ajax_reload_metabox_panel(){
114
+ // Verify nonce
115
+ $nonce = sanitize_text_field($_REQUEST['nonce']);
116
+ if ( !wp_verify_nonce( $nonce, 'swatchly_product_metabox_save_nonce' ) ) {
117
+ wp_send_json_error(array(
118
+ 'message' => esc_html__( 'No naughty business please!', 'woolentor' )
119
+ ));
120
+ }
121
+
122
+ $product_id = absint($_REQUEST['product_id']);
123
+
124
+ // Panel inner HTML
125
+ ob_start();
126
+ Admin\Product_Metabox::metabox_panel_inner_html($product_id);
127
+ $html = ob_get_clean();
128
+
129
+ wp_send_json_success($html);
130
+ }
131
+
132
+ /**
133
+ * Save product metabox data (ajax)
134
+ */
135
+ public function ajax_save_product_meta(){
136
+ // verify nonce
137
+ $nonce = sanitize_text_field($_REQUEST['nonce']);
138
+ if ( !wp_verify_nonce( $nonce, 'swatchly_product_metabox_save_nonce' ) ) {
139
+ wp_send_json_error(array(
140
+ 'message' => esc_html__( 'No naughty business please!', 'woolentor' )
141
+ ));
142
+ }
143
+
144
+ // check current user privilege
145
+ if ( !current_user_can( 'edit_products' ) ) {
146
+ wp_die( -1 );
147
+ }
148
+
149
+ // print_r($_REQUEST);
150
+ // wp_die();
151
+
152
+ $product_id = absint($_REQUEST['product_id']);
153
+ $meta_data = map_deep( wp_unslash( $_REQUEST['input_fields']['swatchly_product_meta'] ), 'sanitize_text_field' );
154
+ $updated = update_post_meta( $product_id, '_swatchly_product_meta', $meta_data );
155
+
156
+ wp_send_json_success(array(
157
+ 'message' => esc_html__('Saved!', 'woolentor')
158
+ ));
159
+ }
160
+
161
+ /**
162
+ * Reset product metabox data (ajax)
163
+ */
164
+ public function ajax_reset_product_meta(){
165
+ // verify nonce
166
+ $nonce = sanitize_text_field($_REQUEST['nonce']);
167
+ if ( !wp_verify_nonce( $nonce, 'swatchly_product_metabox_save_nonce' ) ) {
168
+ wp_send_json_error(array(
169
+ 'message' => esc_html__( 'No naughty business please!', 'woolentor' )
170
+ ));
171
+ }
172
+
173
+ // check current user privilege
174
+ if ( !current_user_can( 'edit_products' ) ) {
175
+ wp_die( -1 );
176
+ }
177
+
178
+ $product_id = absint($_REQUEST['product_id']);
179
+ $updated = update_post_meta( $product_id, '_swatchly_product_meta', '' );
180
+
181
+ wp_send_json_success(array(
182
+ 'message' => esc_html__('Reset Done!', 'woolentor')
183
+ ));
184
+ }
185
+ }
186
+
187
+ Ajax_Actions::instance();
includes/modules/variation-swatch/includes/functions.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+
4
+ /**
5
+ * Get the first key of the given array
6
+ *
7
+ * @since 1.0.1
8
+ *
9
+ * @param arr $arr
10
+ *
11
+ * @return string|null
12
+ */
13
+ if (!function_exists('array_key_first')) {
14
+ function array_key_first(array $arr) {
15
+ foreach($arr as $key => $unused) {
16
+ return $key;
17
+ }
18
+ return NULL;
19
+ }
20
+ }
includes/modules/variation-swatch/init.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Woolentor\Modules;
3
+ use const Woolentor\Modules\Swatchly\MODULE_PATH;
4
+ use const Woolentor\Modules\Swatchly\MODULE_FILE;
5
+ use const Woolentor\Modules\Swatchly\MODULE_URL;
6
+
7
+
8
+ // If this file is accessed directly, exit
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ /**
14
+ * Main class
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ final class Swatchly {
19
+
20
+ /**
21
+ * The single instance of the class
22
+ *
23
+ * @since 1.0.0
24
+ */
25
+ protected static $_instance = null;
26
+
27
+ /**
28
+ * Main Instance
29
+ *
30
+ * Ensures only one instance of this pluin is loaded
31
+ *
32
+ * @since 1.0.0
33
+ */
34
+ public static function instance() {
35
+ if ( is_null( self::$_instance ) ) {
36
+ self::$_instance = new self();
37
+ }
38
+ return self::$_instance;
39
+ }
40
+
41
+ /**
42
+ * Constructor
43
+ *
44
+ * @since 1.0.0
45
+ */
46
+ private function __construct() {
47
+ $this->define_constants();
48
+ $this->includes();
49
+ $this->run();
50
+ }
51
+
52
+ /**
53
+ * Define the required constants
54
+ *
55
+ * @since 1.0.0
56
+ */
57
+ private function define_constants() {
58
+ define( 'Woolentor\Modules\Swatchly\MODULE_FILE', __FILE__ );
59
+ define( 'Woolentor\Modules\Swatchly\MODULE_PATH', __DIR__ );
60
+ define( 'Woolentor\Modules\Swatchly\MODULE_URL', plugins_url( '', MODULE_FILE ) );
61
+ define( 'Woolentor\Modules\Swatchly\MODULE_ASSETS', MODULE_URL . '/assets' );
62
+ }
63
+
64
+ /**
65
+ * Include required core files
66
+ *
67
+ * @since 1.0.0
68
+ */
69
+ public function includes() {
70
+ if ( !function_exists( 'get_current_screen' ) ){
71
+ require_once ABSPATH . '/wp-admin/includes/screen.php';
72
+ }
73
+
74
+ /**
75
+ * Load files.
76
+ */
77
+ require_once MODULE_PATH .'/includes/functions.php';
78
+ require_once MODULE_PATH .'/includes/Helper.php';
79
+ require_once MODULE_PATH .'/includes/ajax-actions.php';
80
+
81
+ require_once MODULE_PATH .'/includes/Admin/Woo_Config.php';
82
+ require_once MODULE_PATH .'/includes/Admin/Attribute_Taxonomy_Metabox.php';
83
+ require_once MODULE_PATH .'/includes/Admin/Product_Metabox.php';
84
+ require_once MODULE_PATH .'/includes/Admin.php';
85
+
86
+ require_once MODULE_PATH .'/includes/Frontend/Woo_Config.php';
87
+ require_once MODULE_PATH .'/includes/Frontend.php';
88
+ }
89
+
90
+ /**
91
+ * First initialization of the module
92
+ *
93
+ * @since 1.0.0
94
+ */
95
+ private function run() {
96
+
97
+ if ( !is_admin() || wp_doing_ajax() ) {
98
+ new Swatchly\Frontend();
99
+ new Swatchly\Frontend\Woo_Config();
100
+ } else {
101
+ new Swatchly\Admin();
102
+ }
103
+
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Returns the main instance of Swatchly Module
109
+ *
110
+ * @since 1.0.0
111
+ */
112
+
113
+ function swatchly_module() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
114
+ return Swatchly::instance();
115
+ }
116
+
117
+ // Kick-off the module
118
+ swatchly_module();
includes/modules/wishlist/includes/classes/Admin/Settings_Api.php DELETED
@@ -1,792 +0,0 @@
1
- <?php
2
- namespace WishSuite\Admin;
3
- /**
4
- * Settings Api class
5
- */
6
- class Settings_Api {
7
-
8
- /**
9
- * settings sections array
10
- *
11
- * @var array
12
- */
13
- protected $settings_sections = array();
14
-
15
- /**
16
- * Settings fields array
17
- *
18
- * @var array
19
- */
20
- protected $settings_fields = array();
21
-
22
- public function __construct() {
23
- add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] );
24
- }
25
-
26
- /**
27
- * Enqueue scripts and styles
28
- */
29
- function admin_enqueue_scripts() {
30
- wp_enqueue_style( 'wp-color-picker' );
31
- wp_enqueue_media();
32
- wp_enqueue_script( 'wp-color-picker' );
33
- wp_enqueue_script( 'jquery-ui-sortable' );
34
- wp_enqueue_script( 'jquery' );
35
- }
36
-
37
- /**
38
- * Set settings sections
39
- *
40
- * @param array $sections setting sections array
41
- */
42
- function set_sections( $sections ) {
43
- $this->settings_sections = $sections;
44
-
45
- return $this;
46
- }
47
-
48
- /**
49
- * Add a single section
50
- *
51
- * @param array $section
52
- */
53
- function add_section( $section ) {
54
- $this->settings_sections[] = $section;
55
-
56
- return $this;
57
- }
58
-
59
- /**
60
- * Set settings fields
61
- *
62
- * @param array $fields settings fields array
63
- */
64
- function set_fields( $fields ) {
65
- $this->settings_fields = $fields;
66
-
67
- return $this;
68
- }
69
-
70
- function add_field( $section, $field ) {
71
- $defaults = array(
72
- 'name' => '',
73
- 'label' => '',
74
- 'desc' => '',
75
- 'type' => 'text'
76
- );
77
-
78
- $arg = wp_parse_args( $field, $defaults );
79
- $this->settings_fields[$section][] = $arg;
80
-
81
- return $this;
82
- }
83
-
84
- /**
85
- * Initialize and registers the settings sections and fileds to WordPress
86
- *
87
- * Usually this should be called at `admin_init` hook.
88
- *
89
- * This function gets the initiated settings sections and fields. Then
90
- * registers them to WordPress and ready for use.
91
- */
92
- function admin_init() {
93
-
94
- //register settings sections
95
- foreach ( $this->settings_sections as $section ) {
96
- if ( false == get_option( $section['id'] ) ) {
97
- add_option( $section['id'] );
98
- }
99
-
100
- if ( isset($section['desc']) && !empty($section['desc']) ) {
101
- $section['desc'] = '<div class="inside">' . $section['desc'] . '</div>';
102
- $callback = function() use ( $section ) { echo str_replace( '"', '\"', $section['desc'] ); };
103
- } else if ( isset( $section['callback'] ) ) {
104
- $callback = $section['callback'];
105
- } else {
106
- $callback = null;
107
- }
108
-
109
- add_settings_section( $section['id'], $section['title'], $callback, $section['id'] );
110
- }
111
-
112
- //register settings fields
113
- foreach ( $this->settings_fields as $section => $field ) {
114
- foreach ( $field as $option ) {
115
-
116
- $name = $option['name'];
117
- $type = isset( $option['type'] ) ? $option['type'] : 'text';
118
- $label = isset( $option['label'] ) ? $option['label'] : '';
119
- $callback = isset( $option['callback'] ) ? $option['callback'] : array( $this, 'callback_' . $type );
120
-
121
- $args = array(
122
- 'id' => $name,
123
- 'class' => isset( $option['class'] ) ? $option['class'] : $name,
124
- 'label_for' => "{$section}[{$name}]",
125
- 'desc' => isset( $option['desc'] ) ? $option['desc'] : '',
126
- 'name' => $label,
127
- 'section' => $section,
128
- 'size' => isset( $option['size'] ) ? $option['size'] : null,
129
- 'options' => isset( $option['options'] ) ? $option['options'] : '',
130
- 'std' => isset( $option['default'] ) ? $option['default'] : '',
131
- 'sanitize_callback' => isset( $option['sanitize_callback'] ) ? $option['sanitize_callback'] : '',
132
- 'type' => $type,
133
- 'placeholder' => isset( $option['placeholder'] ) ? $option['placeholder'] : '',
134
- 'min' => isset( $option['min'] ) ? $option['min'] : '',
135
- 'max' => isset( $option['max'] ) ? $option['max'] : '',
136
- 'step' => isset( $option['step'] ) ? $option['step'] : '',
137
- 'headding' => isset( $option['headding'] ) ? $option['headding'] : '',
138
- );
139
-
140
- add_settings_field( "{$section}[{$name}]", $label, $callback, $section, $section, $args );
141
-
142
- }
143
- }
144
-
145
- // creates our settings in the options table
146
- foreach ( $this->settings_sections as $section ) {
147
- register_setting( $section['id'], $section['id'], array( $this, 'sanitize_options' ) );
148
- }
149
- }
150
-
151
- /**
152
- * Get field description for display
153
- *
154
- * @param array $args settings field args
155
- */
156
- public function get_field_description( $args ) {
157
- if ( ! empty( $args['desc'] ) ) {
158
- $desc = sprintf( '<p class="description">%s</p>', $args['desc'] );
159
- } else {
160
- $desc = '';
161
- }
162
- return $desc;
163
- }
164
-
165
- /**
166
- * Get Title for display
167
- *
168
- * @param array $args settings field args
169
- */
170
- public function callback_title( $args ) {
171
- $headding = isset( $args['headding'] ) ? $args['headding'] : '';
172
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
173
- $html = sprintf( '<h2 class="element_section_title %1$s-title">%2$s</h2>', $size, $headding );
174
- echo $html;
175
- }
176
-
177
- /**
178
- * Displays a text field for a settings field
179
- *
180
- * @param array $args settings field args
181
- */
182
- function callback_text( $args ) {
183
-
184
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
185
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
186
- $type = isset( $args['type'] ) ? $args['type'] : 'text';
187
- $placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
188
-
189
- $html = sprintf( '<input type="%1$s" class="%2$s-text" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder );
190
- $html .= $this->get_field_description( $args );
191
-
192
- echo $html;
193
- }
194
-
195
- /**
196
- * Displays a multitextbox for a settings field
197
- *
198
- * @param array $args settings field args
199
- */
200
- function callback_multitext( $args ) {
201
-
202
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
203
- $html = '<fieldset>';
204
- foreach ( $args['options'] as $key => $label ) {
205
- $new_value = isset( $value[$key] ) ? $value[$key] : '';
206
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
207
- $html .= sprintf( '<input type="text" class="multitextbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%4$s" />', $args['section'], $args['id'], $key, $new_value );
208
- $html .= sprintf( ' %1$s</label><br>', $label );
209
- }
210
-
211
- $html .= $this->get_field_description( $args );
212
- $html .= '</fieldset>';
213
-
214
- echo $html;
215
- }
216
-
217
- /**
218
- * Displays a url field for a settings field
219
- *
220
- * @param array $args settings field args
221
- */
222
- function callback_url( $args ) {
223
- $this->callback_text( $args );
224
- }
225
-
226
- /**
227
- * Displays a number field for a settings field
228
- *
229
- * @param array $args settings field args
230
- */
231
- function callback_number( $args ) {
232
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
233
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
234
- $type = isset( $args['type'] ) ? $args['type'] : 'number';
235
- $placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
236
- $min = ( $args['min'] == '' ) ? '' : ' min="' . $args['min'] . '"';
237
- $max = ( $args['max'] == '' ) ? '' : ' max="' . $args['max'] . '"';
238
- $step = ( $args['step'] == '' ) ? '' : ' step="' . $args['step'] . '"';
239
-
240
- $html = sprintf( '<input type="%1$s" class="%2$s-number" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s%7$s%8$s%9$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $min, $max, $step );
241
- $html .= $this->get_field_description( $args );
242
-
243
- echo $html;
244
- }
245
-
246
- /**
247
- * Displays a checkbox for a settings field
248
- *
249
- * @param array $args settings field args
250
- */
251
- function callback_checkbox( $args ) {
252
-
253
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
254
-
255
- $html = '<fieldset class="htoptions_element_checkbox">';
256
- $html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="off" />', $args['section'], $args['id'] );
257
- $html .= sprintf( '<input type="checkbox" class="checkbox" id="htoptions_sp_%1$s[%2$s]" name="%1$s[%2$s]" value="on" %3$s />', $args['section'], $args['id'], checked( $value, 'on', false ) );
258
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s]">%3$s</label>', $args['section'], $args['id'], $args['desc'] );
259
- $html .= sprintf( '<div class="htoption_checkbox_desc" id="htoptions_sp_%1$s[%2$s]">%3$s</div>', $args['section'], $args['id'], $args['desc'] );
260
- $html .= '</fieldset>';
261
-
262
- echo $html;
263
- }
264
-
265
- /**
266
- * Displays a multicheckbox for a settings field
267
- *
268
- * @param array $args settings field args
269
- */
270
- function callback_multicheck( $args ) {
271
-
272
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
273
- $html = '<fieldset>';
274
- $html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="" />', $args['section'], $args['id'] );
275
- foreach ( $args['options'] as $key => $label ) {
276
- $checked = isset( $value[$key] ) ? $value[$key] : '0';
277
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
278
- $html .= sprintf( '<input type="checkbox" class="checkbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%3$s" %4$s />', $args['section'], $args['id'], $key, checked( $checked, $key, false ) );
279
- $html .= sprintf( '%1$s</label><br>', $label );
280
- }
281
-
282
- $html .= $this->get_field_description( $args );
283
- $html .= '</fieldset>';
284
-
285
- echo $html;
286
- }
287
-
288
- /**
289
- * Displays a multicheckbox for a settings field
290
- *
291
- * @param array $args settings field args
292
- */
293
- function callback_multicheckshort( $args ) {
294
-
295
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
296
-
297
- $field_options = array_merge( $value, $args['options'] );
298
-
299
- $html = '<fieldset><input type="checkbox" class="htoption-shortable-checkall">'.esc_html__( 'Check All', 'htoptions' ).'<ul class="htoption_shortable">';
300
- $html .= sprintf( '<input type="hidden" name="%1$s[%2$s]" value="" />', $args['section'], $args['id'] );
301
-
302
- foreach ( $field_options as $key => $label ) {
303
- $checked = array_key_exists( $key, $value ) ? $key : '0';
304
- $html .= sprintf( '<li><label for="htoptions_sp_%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
305
- $html .= sprintf( '<input type="checkbox" class="checkbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%3$s" %4$s />', $args['section'], $args['id'], $key, checked( $checked, $key, false ) );
306
- $html .= sprintf( '%1$s</label></li>', $label );
307
- }
308
-
309
- $html .= '</ul>'.$this->get_field_description( $args ).'</fieldset>';
310
-
311
- echo $html;
312
- }
313
-
314
- /**
315
- * Displays a radio button for a settings field
316
- *
317
- * @param array $args settings field args
318
- */
319
- function callback_radio( $args ) {
320
-
321
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
322
- $html = '<fieldset>';
323
-
324
- foreach ( $args['options'] as $key => $label ) {
325
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">', $args['section'], $args['id'], $key );
326
- $html .= sprintf( '<input type="radio" class="radio" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s]" value="%3$s" %4$s />', $args['section'], $args['id'], $key, checked( $value, $key, false ) );
327
- $html .= sprintf( '%1$s</label><br>', $label );
328
- }
329
-
330
- $html .= $this->get_field_description( $args );
331
- $html .= '</fieldset>';
332
-
333
- echo $html;
334
- }
335
-
336
- /**
337
- * Displays a selectbox for a settings field
338
- *
339
- * @param array $args settings field args
340
- */
341
- function callback_select( $args ) {
342
-
343
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
344
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
345
- $html = sprintf( '<select class="%1$s" name="%2$s[%3$s]" id="%2$s[%3$s]">', $size, $args['section'], $args['id'] );
346
-
347
- foreach ( $args['options'] as $key => $label ) {
348
- $html .= sprintf( '<option value="%s"%s>%s</option>', $key, selected( $value, $key, false ), $label );
349
- }
350
-
351
- $html .= sprintf( '</select>' );
352
- $html .= $this->get_field_description( $args );
353
-
354
- echo $html;
355
- }
356
-
357
- /**
358
- * Displays a multiselect for a settings field
359
- *
360
- * @param array $args settings field args
361
- */
362
- function callback_multiselect( $args ) {
363
-
364
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
365
- $html = sprintf( '<select multiple="multiple" class="%1$s" name="%1$s[%2$s][]" id="%1$s[%2$s]">', $args['section'], $args['id'] );
366
- foreach ( $args['options'] as $key => $label ) {
367
- $selected = '';
368
- if( !empty( $value ) ){
369
- $selected = in_array( $key, $value ) ? $key : '';
370
- }
371
- $html .= sprintf( '<option value="%1$s" %2$s>%3$s</option>', $key, selected( $selected, $key, false ), $label );
372
- }
373
- $html .= sprintf( '</select>' );
374
- $html .= $this->get_field_description( $args );
375
-
376
- echo $html;
377
- }
378
-
379
- /**
380
- * Displays a textarea for a settings field
381
- *
382
- * @param array $args settings field args
383
- */
384
- function callback_textarea( $args ) {
385
-
386
- $value = esc_textarea( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
387
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
388
- $placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="'.$args['placeholder'].'"';
389
-
390
- $html = sprintf( '<textarea rows="5" cols="55" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]"%4$s>%5$s</textarea>', $size, $args['section'], $args['id'], $placeholder, $value );
391
- $html .= $this->get_field_description( $args );
392
-
393
- echo $html;
394
- }
395
-
396
- /**
397
- * Displays the html for a settings field
398
- *
399
- * @param array $args settings field args
400
- * @return string
401
- */
402
- function callback_html( $args ) {
403
- echo $this->get_field_description( $args );
404
- }
405
-
406
- /**
407
- * Displays a rich text textarea for a settings field
408
- *
409
- * @param array $args settings field args
410
- */
411
- function callback_wysiwyg( $args ) {
412
-
413
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
414
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : '500px';
415
-
416
- echo '<div style="max-width: ' . $size . ';">';
417
-
418
- $editor_settings = array(
419
- 'teeny' => true,
420
- 'textarea_name' => $args['section'] . '[' . $args['id'] . ']',
421
- 'textarea_rows' => 10
422
- );
423
-
424
- if ( isset( $args['options'] ) && is_array( $args['options'] ) ) {
425
- $editor_settings = array_merge( $editor_settings, $args['options'] );
426
- }
427
-
428
- wp_editor( $value, $args['section'] . '-' . $args['id'], $editor_settings );
429
-
430
- echo '</div>';
431
-
432
- echo $this->get_field_description( $args );
433
- }
434
-
435
- /**
436
- * Displays a file upload field for a settings field
437
- *
438
- * @param array $args settings field args
439
- */
440
- function callback_file( $args ) {
441
-
442
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
443
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
444
- $id = $args['section'] . '[' . $args['id'] . ']';
445
- $label = isset( $args['options']['button_label'] ) ? $args['options']['button_label'] : __( 'Choose File' );
446
-
447
- $html = sprintf( '<input type="text" class="%1$s-text wpsa-url" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
448
- $html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
449
- $html .= $this->get_field_description( $args );
450
-
451
- echo $html;
452
- }
453
-
454
- /**
455
- * Displays a file upload field for a settings field
456
- *
457
- * @param array $args settings field args
458
- */
459
- function callback_image_upload( $args ) {
460
-
461
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
462
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
463
- $id = $args['section'] . '[' . $args['id'] . ']';
464
- $label = isset( $args['options']['button_label'] ) ? $args['options']['button_label'] : __( 'Choose File' );
465
- $remove_label = isset( $args['options']['button_remove_label'] ) ? $args['options']['button_remove_label'] : __( 'Remove' );
466
-
467
- $save_file = ( $value != '' ) ? '<img src="'.esc_url( $value ).'" alt="'.esc_attr__( $label, 'wishsuite' ).'">' : '';
468
-
469
- $html = '<div class="wpsa_display">'.$save_file.'</div>';
470
- $html .= sprintf( '<input type="hidden" class="%1$s-text wpsa-url" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
471
- $html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
472
- $html .= '<input type="button" class="button wpsa-remove" value="' . $remove_label . '" />';
473
-
474
-
475
- $html .= $this->get_field_description( $args );
476
-
477
- echo $html;
478
- }
479
-
480
- /**
481
- * Displays a password field for a settings field
482
- *
483
- * @param array $args settings field args
484
- */
485
- function callback_password( $args ) {
486
-
487
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
488
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
489
-
490
- $html = sprintf( '<input type="password" class="%1$s-text" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
491
- $html .= $this->get_field_description( $args );
492
-
493
- echo $html;
494
- }
495
-
496
- /**
497
- * Displays a color picker field for a settings field
498
- *
499
- * @param array $args settings field args
500
- */
501
- function callback_color( $args ) {
502
-
503
- $value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
504
- $size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
505
-
506
- $html = sprintf( '<input type="text" class="%1$s-text wp-color-picker-field" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s" data-default-color="%5$s" />', $size, $args['section'], $args['id'], $value, $args['std'] );
507
- $html .= $this->get_field_description( $args );
508
-
509
- echo $html;
510
- }
511
-
512
- /**
513
- * Displays a DIMENSIONS for a settings field
514
- *
515
- * @param array $args settings field args
516
- */
517
- function callback_dimensions( $args ) {
518
-
519
- $value = $this->get_option( $args['id'], $args['section'], $args['std'] );
520
- $html = '<fieldset><ul class="htoption_dimensions">';
521
- foreach ( $args['options'] as $key => $label ) {
522
- $new_value = isset( $value[$key] ) ? $value[$key] : '';
523
- $html .= '<li>';
524
-
525
- if( 'unit' === $key ){
526
- $html .= sprintf( '<input type="text" class="dimensionsbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%4$s" />', $args['section'], $args['id'], $key, $new_value );
527
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">%4$s</label>', $args['section'], $args['id'], $key, $label );
528
- }else{
529
- $html .= sprintf( '<input type="number" class="dimensionsbox" id="htoptions_sp_%1$s[%2$s][%3$s]" name="%1$s[%2$s][%3$s]" value="%4$s" />', $args['section'], $args['id'], $key, $new_value );
530
- $html .= sprintf( '<label for="htoptions_sp_%1$s[%2$s][%3$s]">%4$s</label>', $args['section'], $args['id'], $key, $label );
531
- }
532
-
533
- $html .= '</li>';
534
- }
535
-
536
- $html .= $this->get_field_description( $args );
537
- $html .= '</ul></fieldset>';
538
-
539
- echo $html;
540
- }
541
-
542
-
543
- /**
544
- * Displays a select box for creating the pages select box
545
- *
546
- * @param array $args settings field args
547
- */
548
- function callback_pages( $args ) {
549
-
550
- $dropdown_args = array(
551
- 'selected' => esc_attr($this->get_option($args['id'], $args['section'], $args['std'] ) ),
552
- 'name' => $args['section'] . '[' . $args['id'] . ']',
553
- 'id' => $args['section'] . '[' . $args['id'] . ']',
554
- 'echo' => 0
555
- );
556
- $html = wp_dropdown_pages( $dropdown_args );
557
- echo $html;
558
- }
559
-
560
- /**
561
- * Sanitize callback for Settings API
562
- *
563
- * @return mixed
564
- */
565
- function sanitize_options( $options ) {
566
-
567
- if ( !$options ) {
568
- return $options;
569
- }
570
-
571
- foreach( $options as $option_slug => $option_value ) {
572
- $sanitize_callback = $this->get_sanitize_callback( $option_slug );
573
-
574
- // If callback is set, call it
575
- if ( $sanitize_callback ) {
576
- $options[ $option_slug ] = call_user_func( $sanitize_callback, $option_value );
577
- continue;
578
- }
579
- }
580
-
581
- return $options;
582
- }
583
-
584
- /**
585
- * Get sanitization callback for given option slug
586
- *
587
- * @param string $slug option slug
588
- *
589
- * @return mixed string or bool false
590
- */
591
- function get_sanitize_callback( $slug = '' ) {
592
- if ( empty( $slug ) ) {
593
- return false;
594
- }
595
-
596
- // Iterate over registered fields and see if we can find proper callback
597
- foreach( $this->settings_fields as $section => $options ) {
598
- foreach ( $options as $option ) {
599
- if ( $option['name'] != $slug ) {
600
- continue;
601
- }
602
-
603
- // Return the callback name
604
- return isset( $option['sanitize_callback'] ) && is_callable( $option['sanitize_callback'] ) ? $option['sanitize_callback'] : false;
605
- }
606
- }
607
-
608
- return false;
609
- }
610
-
611
- /**
612
- * Get the value of a settings field
613
- *
614
- * @param string $option settings field name
615
- * @param string $section the section name this field belongs to
616
- * @param string $default default text if it's not found
617
- * @return string
618
- */
619
- function get_option( $option, $section, $default = '' ) {
620
-
621
- $options = get_option( $section );
622
-
623
- if ( isset( $options[$option] ) ) {
624
- return $options[$option];
625
- }
626
-
627
- return $default;
628
- }
629
-
630
- /**
631
- * Show navigations as tab
632
- *
633
- * Shows all the settings section labels as tab
634
- */
635
- function show_navigation() {
636
- $html = '<h2 class="nav-tab-wrapper">';
637
-
638
- $count = count( $this->settings_sections );
639
-
640
- // don't show the navigation if only one section exists
641
- if ( $count === 1 ) {
642
- return;
643
- }
644
-
645
- foreach ( $this->settings_sections as $tab ) {
646
- $html .= sprintf( '<a href="#%1$s" class="nav-tab" id="%1$s-tab">%2$s</a>', $tab['id'], $tab['title'] );
647
- }
648
-
649
- $html .= '</h2>';
650
-
651
- echo $html;
652
- }
653
-
654
- /**
655
- * Show the section settings forms
656
- *
657
- * This function displays every sections in a different form
658
- */
659
- function show_forms() {
660
- ?>
661
- <div class="metabox-holder">
662
- <?php foreach ( $this->settings_sections as $form ) { ?>
663
- <div id="<?php echo $form['id']; ?>" class="group" style="display: none;">
664
- <form method="post" action="options.php">
665
- <?php
666
- do_action( 'wsa_form_top_' . $form['id'], $form );
667
- settings_fields( $form['id'] );
668
- do_settings_sections( $form['id'] );
669
- do_action( 'wsa_form_bottom_' . $form['id'], $form );
670
- if ( isset( $this->settings_fields[ $form['id'] ] ) ):
671
- ?>
672
- <div class="wl-submit-button" style="padding-left: 10px">
673
- <?php submit_button(); ?>
674
- </div>
675
- <?php endif; ?>
676
- </form>
677
- </div>
678
- <?php } ?>
679
- </div>
680
- <?php
681
- $this->script();
682
- }
683
-
684
- /**
685
- * Tabbable JavaScript codes & Initiate Color Picker
686
- *
687
- * This code uses localstorage for displaying active tabs
688
- */
689
- function script() {
690
- ?>
691
- <script>
692
- jQuery(document).ready(function($) {
693
- //Initiate Color Picker
694
- $('.wp-color-picker-field').wpColorPicker();
695
- $(".proelement .wp-picker-container button").attr("disabled", true);
696
-
697
- // Switches option sections
698
- $('.group').hide();
699
- var activetab = '';
700
- if (typeof(localStorage) != 'undefined' ) {
701
- activetab = localStorage.getItem("activetab");
702
- }
703
-
704
- //if url has section id as hash then set it as active or override the current local storage value
705
- if(window.location.hash){
706
- activetab = window.location.hash;
707
- if (typeof(localStorage) != 'undefined' ) {
708
- localStorage.setItem("activetab", activetab);
709
- }
710
- }
711
-
712
- if (activetab != '' && $(activetab).length ) {
713
- $(activetab).fadeIn();
714
- } else {
715
- $('.group:first').fadeIn();
716
- }
717
- $('.group .collapsed').each(function(){
718
- $(this).find('input:checked').parent().parent().parent().nextAll().each(
719
- function(){
720
- if ($(this).hasClass('last')) {
721
- $(this).removeClass('hidden');
722
- return false;
723
- }
724
- $(this).filter('.hidden').removeClass('hidden');
725
- });
726
- });
727
-
728
- if (activetab != '' && $(activetab + '-tab').length ) {
729
- $(activetab + '-tab').addClass('nav-tab-active');
730
- }
731
- else {
732
- $('.nav-tab-wrapper a:first').addClass('nav-tab-active');
733
- }
734
- $('.nav-tab-wrapper a').click(function(evt) {
735
- $('.nav-tab-wrapper a').removeClass('nav-tab-active');
736
- $(this).addClass('nav-tab-active').blur();
737
- var clicked_group = $(this).attr('href');
738
- if (typeof(localStorage) != 'undefined' ) {
739
- localStorage.setItem("activetab", $(this).attr('href'));
740
- }
741
- $('.group').hide();
742
- $(clicked_group).fadeIn();
743
- evt.preventDefault();
744
- });
745
-
746
- $('.wpsa-browse').on('click', function (event) {
747
- event.preventDefault();
748
-
749
- var self = $(this);
750
-
751
- // Create the media frame.
752
- var file_frame = wp.media.frames.file_frame = wp.media({
753
- title: self.data('uploader_title'),
754
- button: {
755
- text: self.data('uploader_button_text'),
756
- },
757
- multiple: false
758
- });
759
-
760
- file_frame.on('select', function () {
761
- attachment = file_frame.state().get('selection').first().toJSON();
762
- self.prev('.wpsa-url').val(attachment.url).change();
763
- self.siblings('.wpsa_display').html('<img src="'+attachment.url+'" alt="" />');
764
- });
765
-
766
- // Finally, open the modal
767
- file_frame.open();
768
-
769
- });
770
-
771
- // Remove Media Button
772
- $('.wpsa-remove').on('click', function (event) {
773
- event.preventDefault();
774
- var self = $(this);
775
- self.siblings('.wpsa-url').val('').change();
776
- self.siblings('.wpsa_display').html('');
777
- });
778
-
779
- // Shortable field select all
780
- $(".htoption-shortable-checkall").click(function () {
781
- $( this ).siblings('.htoption_shortable').find('input:checkbox').not( this ).prop( 'checked', this.checked );
782
- });
783
-
784
- // Initiate sortable Field
785
- $( ".htoption_shortable" ).sortable();
786
-
787
- });
788
- </script>
789
- <?php
790
- }
791
-
792
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/modules/wishlist/includes/classes/Ajax.php CHANGED
@@ -53,7 +53,7 @@ class Ajax {
53
  $inserted = \WishSuite\Frontend\Manage_Wishlist::instance()->add_product( $id );
54
  if ( ! $inserted ) {
55
  wp_send_json_success([
56
- 'message' => __( 'Product do not add!', 'wishsuite' )
57
  ]);
58
  }else{
59
  wp_send_json_success([
@@ -73,7 +73,7 @@ class Ajax {
73
  $deleted = \WishSuite\Frontend\Manage_Wishlist::instance()->remove_product( $id );
74
  if ( ! $deleted ) {
75
  wp_send_json_success([
76
- 'message' => __( 'Product do not delete!', 'wishsuite' )
77
  ]);
78
  }else{
79
  wp_send_json_success([
53
  $inserted = \WishSuite\Frontend\Manage_Wishlist::instance()->add_product( $id );
54
  if ( ! $inserted ) {
55
  wp_send_json_success([
56
+ 'message' => __( 'The product does not add!', 'wishsuite' )
57
  ]);
58
  }else{
59
  wp_send_json_success([
73
  $deleted = \WishSuite\Frontend\Manage_Wishlist::instance()->remove_product( $id );
74
  if ( ! $deleted ) {
75
  wp_send_json_success([
76
+ 'message' => __( 'The product does not delete!', 'wishsuite' )
77
  ]);
78
  }else{
79
  wp_send_json_success([
languages/woolentor.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WooLentor - WooCommerce Elementor Addons + Builder\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2022-06-20 05:45+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -16,6 +16,12 @@ msgstr ""
16
  "X-Loco-Version: 2.6.2; wp-6.0\n"
17
  "X-Domain: woolentor"
18
 
 
 
 
 
 
 
19
  #. 1: Plugin name 2: PHP 3: Required PHP version
20
  #: includes/base.php:186
21
  #, php-format
@@ -50,13 +56,19 @@ msgid ""
50
  "plugin to be installed and activated. Please install WooCommerce to continue."
51
  msgstr ""
52
 
53
- #: classes/class.default_data.php:260
54
  #, php-format
55
  msgid "%s customer review"
56
  msgid_plural "%s customer reviews"
57
  msgstr[0] ""
58
  msgstr[1] ""
59
 
 
 
 
 
 
 
60
  #: includes/admin/templates/dashboard-sidebar.php:41
61
  msgid ". Which will motivate us a lot."
62
  msgstr ""
@@ -71,6 +83,10 @@ msgstr ""
71
  msgid "10 Custom Shop Page Templates"
72
  msgstr ""
73
 
 
 
 
 
74
  #: includes/addons/wb_product_call_for_price.php:63
75
  #: includes/addons/wb_product_call_for_price.php:64
76
  msgid "123-456-7890"
@@ -114,16 +130,14 @@ msgstr ""
114
  msgid "6"
115
  msgstr ""
116
 
117
- #: includes/admin/templates/dashboard-sidebar.php:26
118
- msgid "76 Elementor Elements"
119
- msgstr ""
120
-
121
  #: includes/addons/product_tabs.php:1478 includes/addons/product_tabs.php:1604
122
- #: woolentor-blocks/src/blocks/product-tab/index.php:328
 
123
  msgid ":"
124
  msgstr ""
125
 
126
- #: woolentor-blocks/src/blocks/product-curvy/index.php:149
 
127
  msgid "<i class=\"fa fa-shopping-cart\"></i>"
128
  msgstr ""
129
 
@@ -140,8 +154,8 @@ msgstr ""
140
 
141
  #: includes/admin/include/template-library.php:162
142
  #: includes/admin/include/template-library.php:214
143
- #: includes/admin/include/class.extension-manager.php:172
144
- #: includes/admin/include/class.extension-manager.php:239
145
  msgid "Activate"
146
  msgstr ""
147
 
@@ -155,16 +169,16 @@ msgstr ""
155
 
156
  #: includes/admin/include/template-library.php:173
157
  #: includes/admin/include/template-library.php:225
158
- #: includes/admin/include/class.extension-manager.php:183
159
- #: includes/admin/include/class.extension-manager.php:250
160
  msgid "Activated"
161
  msgstr ""
162
 
163
- #: classes/class.assest_management.php:357
164
  msgid "Activating.."
165
  msgstr ""
166
 
167
- #: classes/class.assest_management.php:358 includes/addons/wl_faq.php:464
168
  #: includes/addons/wl_faq.php:760 includes/addons/wb_product_data_tab.php:144
169
  #: includes/addons/wb_archive_product.php:758
170
  msgid "Active"
@@ -180,23 +194,29 @@ msgstr ""
180
  msgid "Add ID Manually"
181
  msgstr ""
182
 
183
- #: includes/admin/include/admin_field-manager.php:432
184
  msgid "Add Item"
185
  msgstr ""
186
 
187
- #: includes/admin/include/class.template_cpt.php:32
188
  msgid "Add New"
189
  msgstr ""
190
 
191
- #: includes/admin/include/class.template_cpt.php:31
192
  msgid "Add New Template"
193
  msgstr ""
194
 
195
  #: includes/addons/wl_recently_viewed_products.php:394
196
  #: includes/addons/wb_wishsuite_table.php:347
 
197
  msgid "Add To Cart"
198
  msgstr ""
199
 
 
 
 
 
 
200
  #: includes/addons/wb_archive_product.php:542
201
  msgid "Add To Cart Button"
202
  msgstr ""
@@ -212,11 +232,11 @@ msgstr ""
212
  msgid "Add to Cart Button Text"
213
  msgstr ""
214
 
215
- #: includes/helper-function.php:1048 includes/helper-function.php:1049
216
- #: includes/helper-function.php:1065
217
- #: woolentor-blocks/includes/helper-functions.php:312
218
- #: woolentor-blocks/includes/helper-functions.php:313
219
- #: woolentor-blocks/includes/helper-functions.php:329
220
  msgid "Add to Compare"
221
  msgstr ""
222
 
@@ -243,6 +263,10 @@ msgstr ""
243
  msgid "admin@domain.com"
244
  msgstr ""
245
 
 
 
 
 
246
  #: includes/addons/wl_category_grid.php:575
247
  msgid "After Border Color"
248
  msgstr ""
@@ -281,11 +305,11 @@ msgid "ALL"
281
  msgstr ""
282
 
283
  #: includes/addons/wb_wc_multicurrency.php:58
284
- #: includes/admin/include/class.template-manager.php:313
285
  msgid "All"
286
  msgstr ""
287
 
288
- #: includes/admin/include/class.template-manager.php:414
289
  msgid "All Assigned Template has been imported"
290
  msgstr ""
291
 
@@ -298,11 +322,11 @@ msgstr ""
298
  msgid "All Categories"
299
  msgstr ""
300
 
301
- #: includes/admin/include/class.template-manager.php:402
302
  msgid "All Data Saved"
303
  msgstr ""
304
 
305
- #: classes/class.assest_management.php:347
306
  msgid "All Items have been Loaded"
307
  msgstr ""
308
 
@@ -326,8 +350,8 @@ msgstr ""
326
  msgid "Apply coupon"
327
  msgstr ""
328
 
329
- #: includes/admin/include/class.template-manager.php:208
330
- #: includes/admin/include/class.template-manager.php:232
331
  msgid "Archive"
332
  msgstr ""
333
 
@@ -340,6 +364,7 @@ msgid "Archive Description"
340
  msgstr ""
341
 
342
  #: classes/class.widgets_control.php:404
 
343
  msgid "Archive Layout Default"
344
  msgstr ""
345
 
@@ -354,11 +379,12 @@ msgstr ""
354
  #: classes/class.widgets_control.php:272
355
  #: includes/addons/wl_archive_title.php:43
356
  #: includes/addons/wl_archive_title.php:224
 
357
  msgid "Archive Title"
358
  msgstr ""
359
 
360
- #: classes/class.assest_management.php:324
361
- #: includes/admin/include/class.template-manager.php:417
362
  msgid "Are you sure?"
363
  msgstr ""
364
 
@@ -400,10 +426,19 @@ msgstr ""
400
  msgid "Ascending"
401
  msgstr ""
402
 
403
- #: includes/admin/include/class.template-manager.php:413
404
  msgid "Assigned Template Importing.."
405
  msgstr ""
406
 
 
 
 
 
 
 
 
 
 
407
  #: includes/addons/wl_testimonial.php:367 includes/addons/product_tabs.php:506
408
  #: includes/addons/wl_category_grid.php:333
409
  msgid "Autoplay animation speed"
@@ -431,7 +466,7 @@ msgstr ""
431
  msgid "Awaiting category image"
432
  msgstr ""
433
 
434
- #: classes/class.default_data.php:292
435
  msgid "Awaiting product image"
436
  msgstr ""
437
 
@@ -517,8 +552,8 @@ msgstr ""
517
  #: includes/addons/product_tabs.php:661 includes/addons/product_tabs.php:713
518
  #: includes/addons/product_tabs.php:817 includes/addons/product_tabs.php:1146
519
  #: includes/addons/product_tabs.php:1206
520
- #: includes/addons/wb_product_add_to_cart.php:136
521
- #: includes/addons/wb_product_add_to_cart.php:168
522
  #: includes/addons/wl_category_grid.php:719
523
  #: includes/addons/wl_category_grid.php:793
524
  #: includes/addons/wl_category_grid.php:893
@@ -586,6 +621,10 @@ msgstr ""
586
  msgid "Banner Title"
587
  msgstr ""
588
 
 
 
 
 
589
  #: includes/addons/wl_category_grid.php:633
590
  msgid "Before Border Color"
591
  msgstr ""
@@ -671,7 +710,9 @@ msgstr ""
671
  #: includes/addons/product_tabs.php:674 includes/addons/product_tabs.php:726
672
  #: includes/addons/product_tabs.php:789 includes/addons/product_tabs.php:831
673
  #: includes/addons/product_tabs.php:878
674
- #: includes/addons/wb_product_add_to_cart.php:117
 
 
675
  #: includes/addons/wl_category_grid.php:518
676
  #: includes/addons/wl_category_grid.php:731
677
  #: includes/addons/wl_category_grid.php:805
@@ -691,7 +732,7 @@ msgstr ""
691
  #: includes/addons/wb_product_suggest_price.php:672
692
  #: includes/addons/wb_product_suggest_price.php:815
693
  #: includes/addons/wb_wishsuite_table.php:241
694
- #: includes/addons/wb_product_add_to_cart.php:179
695
  #: includes/addons/wb_ever_compare_table.php:187
696
  msgid "Border Color"
697
  msgstr ""
@@ -750,7 +791,10 @@ msgstr ""
750
  #: includes/addons/product_tabs.php:682 includes/addons/product_tabs.php:734
751
  #: includes/addons/product_tabs.php:797 includes/addons/product_tabs.php:839
752
  #: includes/addons/product_tabs.php:886
753
- #: includes/addons/wb_product_add_to_cart.php:125
 
 
 
754
  #: includes/addons/wl_category_grid.php:526
755
  #: includes/addons/wl_category_grid.php:739
756
  #: includes/addons/wl_category_grid.php:813
@@ -759,6 +803,10 @@ msgstr ""
759
  msgid "Border Radius"
760
  msgstr ""
761
 
 
 
 
 
762
  #: includes/addons/special_day_offer.php:56
763
  #: includes/addons/wl_product_video_gallery.php:73
764
  #: includes/addons/add_banner.php:69
@@ -798,7 +846,9 @@ msgid "Brand Link"
798
  msgstr ""
799
 
800
  #: includes/addons/wl_brand.php:51
801
- #: woolentor-blocks/src/blocks/brand-logo/index.php:68
 
 
802
  msgid "Brand Logo"
803
  msgstr ""
804
 
@@ -811,6 +861,7 @@ msgid "Brand Title"
811
  msgstr ""
812
 
813
  #: classes/class.widgets_control.php:276 includes/addons/wl_breadcrumbs.php:43
 
814
  msgid "Breadcrumbs"
815
  msgstr ""
816
 
@@ -818,7 +869,8 @@ msgstr ""
818
  #: includes/addons/special_day_offer.php:620 includes/addons/wb_whols.php:48
819
  #: includes/addons/wb_product_call_for_price.php:74
820
  #: includes/addons/wl_product_filter.php:625
821
- #: includes/addons/wb_product_add_to_cart.php:43
 
822
  #: includes/addons/add_banner.php:230
823
  msgid "Button"
824
  msgstr ""
@@ -867,10 +919,10 @@ msgstr ""
867
  msgid "Buy"
868
  msgstr ""
869
 
870
- #: classes/class.assest_management.php:354
871
  #: includes/admin/include/template-library.php:181
872
  #: includes/admin/include/template-library.php:233
873
- #: includes/admin/include/class.extension-manager.php:203
874
  #: includes/admin/templates/dashboard-popup.php:14
875
  msgid "Buy Now"
876
  msgstr ""
@@ -883,14 +935,21 @@ msgstr ""
883
  msgid "By"
884
  msgstr ""
885
 
 
 
 
 
 
 
 
886
  #: includes/addons/wb_product_call_for_price.php:43
887
  #: includes/addons/wb_product_call_for_price.php:52
888
  #: includes/addons/wb_product_call_for_price.php:53
889
  msgid "Call For Price"
890
  msgstr ""
891
 
892
- #: classes/class.assest_management.php:323
893
- #: includes/admin/include/class.template-manager.php:420
894
  msgid "Cancel"
895
  msgstr ""
896
 
@@ -936,6 +995,7 @@ msgstr ""
936
 
937
  #: classes/class.widgets_control.php:252
938
  #: includes/addons/wl_category_grid.php:44
 
939
  msgid "Category Grid"
940
  msgstr ""
941
 
@@ -947,8 +1007,8 @@ msgstr ""
947
  msgid "Category List"
948
  msgstr ""
949
 
950
- #: classes/class.default_data.php:327 classes/class.default_data.php:375
951
- #: includes/addons/wb_product_categories.php:160
952
  msgid "Category:"
953
  msgid_plural "Categories:"
954
  msgstr[0] ""
@@ -988,11 +1048,24 @@ msgstr ""
988
  msgid "Choose a Payment Gateway"
989
  msgstr ""
990
 
 
 
 
 
991
  #: includes/addons/wl_brand.php:84
992
- #: includes/admin/include/admin_field-manager.php:288
993
  msgid "Choose Image"
994
  msgstr ""
995
 
 
 
 
 
 
 
 
 
 
996
  #: includes/addons/wl_testimonial.php:100
997
  #: includes/addons/wb_customer_review.php:98
998
  msgid "Client Rating"
@@ -1115,6 +1188,8 @@ msgstr ""
1115
  #: includes/addons/product_tabs.php:282 includes/addons/product_tabs.php:361
1116
  #: includes/addons/product_tabs.php:649 includes/addons/product_tabs.php:764
1117
  #: includes/addons/product_tabs.php:1134 includes/addons/product_tabs.php:1194
 
 
1118
  #: includes/addons/wb_product_additional_information.php:76
1119
  #: includes/addons/wb_product_additional_information.php:124
1120
  #: includes/addons/add_banner.php:155 includes/addons/add_banner.php:197
@@ -1139,24 +1214,38 @@ msgstr ""
1139
  msgid "Columns"
1140
  msgstr ""
1141
 
1142
- #: includes/helper-function.php:1010 includes/addons/product_flash_sale.php:137
1143
  #: includes/addons/product_image_accordion.php:150
1144
  #: includes/addons/product_accordion.php:171
1145
  #: includes/addons/product_curvy.php:206 includes/addons/product_tabs.php:165
1146
  msgid "Comment count"
1147
  msgstr ""
1148
 
1149
- #: includes/helper-function.php:1065
1150
- #: woolentor-blocks/includes/helper-functions.php:329
1151
  #: includes/modules/compare/includes/classes/Admin/Dashboard.php:59
1152
  #: includes/modules/compare/includes/classes/Admin/Dashboard.php:60
1153
  msgid "Compare"
1154
  msgstr ""
1155
 
 
 
 
 
 
 
 
 
 
 
1156
  #: includes/modules/shopify-like-checkout/templates/form-checkout.php:53
1157
  msgid "Contact information"
1158
  msgstr ""
1159
 
 
 
 
 
1160
  #: includes/addons/wl_faq.php:45 includes/addons/wl_faq.php:82
1161
  #: includes/addons/wl_faq.php:544 includes/addons/wl_onepage_slider.php:66
1162
  #: includes/addons/wb_product_data_tab.php:212
@@ -1290,6 +1379,15 @@ msgstr ""
1290
  msgid "Create an account?"
1291
  msgstr ""
1292
 
 
 
 
 
 
 
 
 
 
1293
  #: includes/addons/wl_faq.php:58 includes/addons/wl_testimonial.php:71
1294
  #: includes/addons/wb_customer_review.php:69
1295
  msgid "Custom"
@@ -1326,15 +1424,31 @@ msgstr ""
1326
  msgid "Customer Review"
1327
  msgstr ""
1328
 
1329
- #: includes/admin/admin-init.php:338
 
 
 
 
1330
  msgid "Data Fetch successfully!"
1331
  msgstr ""
1332
 
1333
- #: includes/admin/admin-init.php:276
 
 
 
 
 
 
 
 
 
 
 
 
1334
  msgid "Data Saved successfully!"
1335
  msgstr ""
1336
 
1337
- #: includes/helper-function.php:1007 includes/addons/product_flash_sale.php:134
1338
  #: includes/addons/wb_product_upsell.php:66
1339
  #: includes/addons/wb_archive_product.php:127
1340
  #: includes/addons/product_image_accordion.php:147
@@ -1352,11 +1466,12 @@ msgid "Days"
1352
  msgstr ""
1353
 
1354
  #: includes/addons/wl_brand.php:62
1355
- #: includes/admin/include/class.template-manager.php:101
 
1356
  msgid "Default"
1357
  msgstr ""
1358
 
1359
- #: includes/helper-function.php:803
1360
  msgid "Default sorting"
1361
  msgstr ""
1362
 
@@ -1393,10 +1508,6 @@ msgstr ""
1393
  msgid "Description Color"
1394
  msgstr ""
1395
 
1396
- #: classes/class.default_data.php:241
1397
- msgid "Description dose not set this product."
1398
- msgstr ""
1399
-
1400
  #: includes/addons/wl_testimonial.php:91 includes/addons/wl_testimonial.php:633
1401
  #: includes/addons/wb_customer_review.php:89
1402
  #: includes/addons/wb_customer_review.php:449
@@ -1412,12 +1523,19 @@ msgstr ""
1412
  msgid "Developer"
1413
  msgstr ""
1414
 
 
 
 
 
 
 
1415
  #: includes/admin/templates/dashboard-element.php:20
 
1416
  #: includes/admin/templates/dashboard-module.php:22
1417
  msgid "Disable all"
1418
  msgstr ""
1419
 
1420
- #: includes/helper-function.php:586
1421
  msgid "div"
1422
  msgstr ""
1423
 
@@ -1425,7 +1543,7 @@ msgstr ""
1425
  msgid "Do you want to individual icon ?"
1426
  msgstr ""
1427
 
1428
- #: includes/admin/include/admin_field-manager.php:350
1429
  #: includes/admin/include/admin_field-manager.php:470
1430
  #: includes/admin/templates/dashboard-welcome.php:19
1431
  msgid "Documentation"
@@ -1436,15 +1554,16 @@ msgid "Edit Page"
1436
  msgstr ""
1437
 
1438
  #: includes/admin/include/template-library.php:118
1439
- #: includes/admin/include/class.template_cpt.php:34
1440
  msgid "Edit Template"
1441
  msgstr ""
1442
 
1443
- #: includes/admin/include/class.template-manager.php:392
1444
  msgid "Edit With Elementor"
1445
  msgstr ""
1446
 
1447
- #: includes/admin/include/class.template-manager.php:396
 
1448
  msgid "Edit With Gutenberg"
1449
  msgstr ""
1450
 
@@ -1459,7 +1578,8 @@ msgstr ""
1459
  msgid "Element Information"
1460
  msgstr ""
1461
 
1462
- #: includes/admin/include/class.template-manager.php:408
 
1463
  #: includes/admin/include/template-library/templates_list.php:19
1464
  msgid "Elementor"
1465
  msgstr ""
@@ -1468,19 +1588,6 @@ msgstr ""
1468
  msgid "Elementor Template"
1469
  msgstr ""
1470
 
1471
- #: includes/admin/include/class.extension-manager.php:121
1472
- msgid ""
1473
- "Email Candy is an outstanding WordPress plugin that allows you to customize "
1474
- "the default WooCommerce email templates and give a professional look to your "
1475
- "WooCommerce emails. If you are tired of using the boring design of "
1476
- "WooCommerce emails and want to create customized emails, then this plugin "
1477
- "will come in handy."
1478
- msgstr ""
1479
-
1480
- #: includes/admin/include/class.extension-manager.php:118
1481
- msgid "Email Candy Pro - Email customizer for WooCommerce"
1482
- msgstr ""
1483
-
1484
  #: includes/addons/wb_product_suggest_price.php:130
1485
  msgid "Email Field Placeholder"
1486
  msgstr ""
@@ -1505,20 +1612,37 @@ msgstr ""
1505
  msgid "Empty table text"
1506
  msgstr ""
1507
 
 
 
 
 
1508
  #: includes/addons/wb_product_qr_code.php:62
1509
  msgid "Enable Add to Cart URL"
1510
  msgstr ""
1511
 
1512
  #: includes/admin/templates/dashboard-element.php:19
 
1513
  #: includes/admin/templates/dashboard-module.php:21
1514
  msgid "Enable all"
1515
  msgstr ""
1516
 
 
 
 
 
 
 
 
 
 
 
 
 
1517
  #: includes/modules/shopify-like-checkout/templates/cart-shipping.php:57
1518
  msgid "Enter a different address"
1519
  msgstr ""
1520
 
1521
- #: includes/admin/include/class.template-manager.php:384
1522
  msgid "Enter a template name"
1523
  msgstr ""
1524
 
@@ -1555,6 +1679,10 @@ msgstr ""
1555
  msgid "Extra Option"
1556
  msgstr ""
1557
 
 
 
 
 
1558
  #: classes/class.widgets_control.php:248
1559
  msgid "Faq"
1560
  msgstr ""
@@ -1563,11 +1691,11 @@ msgstr ""
1563
  msgid "FAQ Title"
1564
  msgstr ""
1565
 
1566
- #: includes/helper-function.php:1012
1567
  msgid "Featured"
1568
  msgstr ""
1569
 
1570
- #: includes/admin/include/class.template_cpt.php:41
1571
  msgid "Featured Image"
1572
  msgstr ""
1573
 
@@ -1598,7 +1726,7 @@ msgstr ""
1598
  msgid "Filter By"
1599
  msgstr ""
1600
 
1601
- #: includes/admin/include/class.template_cpt.php:49
1602
  msgid "Filter from list"
1603
  msgstr ""
1604
 
@@ -1661,7 +1789,7 @@ msgstr ""
1661
  msgid "Free"
1662
  msgstr ""
1663
 
1664
- #: includes/admin/include/class.extension-manager.php:149
1665
  msgid "Free extension"
1666
  msgstr ""
1667
 
@@ -1706,27 +1834,31 @@ msgstr ""
1706
  msgid "Gradient Color"
1707
  msgstr ""
1708
 
1709
- #: includes/helper-function.php:579
 
 
 
 
1710
  msgid "H1"
1711
  msgstr ""
1712
 
1713
- #: includes/helper-function.php:580
1714
  msgid "H2"
1715
  msgstr ""
1716
 
1717
- #: includes/helper-function.php:581
1718
  msgid "H3"
1719
  msgstr ""
1720
 
1721
- #: includes/helper-function.php:582
1722
  msgid "H4"
1723
  msgstr ""
1724
 
1725
- #: includes/helper-function.php:583
1726
  msgid "H5"
1727
  msgstr ""
1728
 
1729
- #: includes/helper-function.php:584
1730
  msgid "H6"
1731
  msgstr ""
1732
 
@@ -1797,7 +1929,7 @@ msgstr ""
1797
  msgid "Here"
1798
  msgstr ""
1799
 
1800
- #: includes/helper-function.php:934 includes/helper-function.php:952
1801
  msgid "here"
1802
  msgstr ""
1803
 
@@ -1817,6 +1949,11 @@ msgstr ""
1817
  msgid "Hide Category"
1818
  msgstr ""
1819
 
 
 
 
 
 
1820
  #: includes/addons/product_accordion.php:276
1821
  #: includes/addons/product_curvy.php:289
1822
  msgid "Hide Content"
@@ -1841,6 +1978,11 @@ msgstr ""
1841
  msgid "Hide Title"
1842
  msgstr ""
1843
 
 
 
 
 
 
1844
  #: includes/addons/wl_product_filter.php:103
1845
  msgid "Hierarchical"
1846
  msgstr ""
@@ -1885,7 +2027,10 @@ msgstr ""
1885
  #: includes/addons/wb_wishsuite_table.php:411
1886
  #: includes/addons/product_tabs.php:353 includes/addons/product_tabs.php:748
1887
  #: includes/addons/product_tabs.php:1066 includes/addons/product_tabs.php:1188
1888
- #: includes/addons/wb_product_add_to_cart.php:150
 
 
 
1889
  #: includes/addons/wl_category_grid.php:827
1890
  msgid "Hover"
1891
  msgstr ""
@@ -1987,7 +2132,7 @@ msgstr ""
1987
  msgid "Icon Width"
1988
  msgstr ""
1989
 
1990
- #: includes/helper-function.php:1006 includes/addons/product_flash_sale.php:133
1991
  #: includes/addons/product_image_accordion.php:146
1992
  #: includes/addons/product_accordion.php:167
1993
  #: includes/addons/product_curvy.php:202 includes/addons/product_tabs.php:161
@@ -2034,6 +2179,8 @@ msgstr ""
2034
  #: includes/addons/wb_customer_review.php:109
2035
  #: includes/addons/wb_customer_review.php:361
2036
  #: includes/addons/wl_category_grid.php:483
 
 
2037
  msgid "Image"
2038
  msgstr ""
2039
 
@@ -2042,6 +2189,7 @@ msgid "Image Area Border Color"
2042
  msgstr ""
2043
 
2044
  #: classes/class.widgets_control.php:240
 
2045
  msgid "Image Marker"
2046
  msgstr ""
2047
 
@@ -2049,11 +2197,11 @@ msgstr ""
2049
  msgid "Image/Icon"
2050
  msgstr ""
2051
 
2052
- #: classes/class.assest_management.php:353
2053
  msgid "Import"
2054
  msgstr ""
2055
 
2056
- #: includes/admin/include/class.template-manager.php:324
2057
  msgid "Import Previously Assigned Templates"
2058
  msgstr ""
2059
 
@@ -2061,15 +2209,15 @@ msgstr ""
2061
  msgid "Import template to your Library"
2062
  msgstr ""
2063
 
2064
- #: classes/class.assest_management.php:351
2065
  msgid "Import to Library"
2066
  msgstr ""
2067
 
2068
- #: classes/class.assest_management.php:352
2069
  msgid "Import to Page"
2070
  msgstr ""
2071
 
2072
- #: classes/class.assest_management.php:346
2073
  msgid "in this package"
2074
  msgstr ""
2075
 
@@ -2077,6 +2225,12 @@ msgstr ""
2077
  msgid "Information"
2078
  msgstr ""
2079
 
 
 
 
 
 
 
2080
  #: includes/custom-metabox.php:45
2081
  msgid "Initial number in stock"
2082
  msgstr ""
@@ -2094,7 +2248,7 @@ msgstr ""
2094
  msgid "Input Field Placeholder"
2095
  msgstr ""
2096
 
2097
- #: includes/admin/include/class.template_cpt.php:45
2098
  msgid "Insert into Template"
2099
  msgstr ""
2100
 
@@ -2104,8 +2258,8 @@ msgstr ""
2104
 
2105
  #: includes/admin/include/template-library.php:168
2106
  #: includes/admin/include/template-library.php:220
2107
- #: includes/admin/include/class.extension-manager.php:178
2108
- #: includes/admin/include/class.extension-manager.php:245
2109
  msgid "Install Now"
2110
  msgstr ""
2111
 
@@ -2113,11 +2267,11 @@ msgstr ""
2113
  msgid "Install WooCommerce"
2114
  msgstr ""
2115
 
2116
- #: classes/class.assest_management.php:356
2117
  msgid "Installing.."
2118
  msgstr ""
2119
 
2120
- #: includes/admin/include/class.template-manager.php:418
2121
  msgid ""
2122
  "It will import those templates that were created from the \"Templates\" menu "
2123
  "of Elementor and assigned to corresponding WooCommerce pages."
@@ -2155,11 +2309,11 @@ msgstr ""
2155
  msgid "JustTable"
2156
  msgstr ""
2157
 
2158
- #: includes/admin/include/class.extension-manager.php:76
2159
  msgid "JustTables"
2160
  msgstr ""
2161
 
2162
- #: includes/admin/include/class.extension-manager.php:94
2163
  msgid ""
2164
  "JustTables is an incredible WordPress plugin that lets you showcase all your "
2165
  "WooCommerce products in a sortable and filterable table view. It allows your "
@@ -2169,7 +2323,7 @@ msgid ""
2169
  "sale on your online store."
2170
  msgstr ""
2171
 
2172
- #: includes/admin/include/class.extension-manager.php:91
2173
  msgid "JustTables Pro"
2174
  msgstr ""
2175
 
@@ -2193,6 +2347,8 @@ msgid "Label Color"
2193
  msgstr ""
2194
 
2195
  #: includes/addons/wl_store_features.php:48
 
 
2196
  msgid "Layout"
2197
  msgstr ""
2198
 
@@ -2201,10 +2357,12 @@ msgid "Layout Five"
2201
  msgstr ""
2202
 
2203
  #: includes/addons/wl_store_features.php:55
 
2204
  msgid "Layout Four"
2205
  msgstr ""
2206
 
2207
  #: includes/addons/wl_store_features.php:52
 
2208
  msgid "Layout One"
2209
  msgstr ""
2210
 
@@ -2214,10 +2372,12 @@ msgid "Layout Settings"
2214
  msgstr ""
2215
 
2216
  #: includes/addons/wl_store_features.php:54
 
2217
  msgid "Layout Three"
2218
  msgstr ""
2219
 
2220
  #: includes/addons/wl_store_features.php:53
 
2221
  msgid "Layout Two"
2222
  msgstr ""
2223
 
@@ -2370,7 +2530,7 @@ msgstr ""
2370
  #: includes/addons/product_curvy.php:711
2371
  #: includes/addons/wl_product_video_gallery.php:148
2372
  #: includes/addons/wl_brand.php:282
2373
- #: includes/addons/wb_product_categories.php:132
2374
  #: includes/addons/wb_product_suggest_price.php:245
2375
  #: includes/addons/wb_product_suggest_price.php:344
2376
  #: includes/addons/wb_product_suggest_price.php:442
@@ -2379,7 +2539,7 @@ msgstr ""
2379
  #: includes/addons/wb_product_rating.php:84
2380
  #: includes/addons/wb_product_title.php:90
2381
  #: includes/addons/wl_product_filter.php:195
2382
- #: includes/addons/wb_product_sku.php:120
2383
  #: includes/addons/wb_image_marker.php:350
2384
  #: includes/addons/wb_image_marker.php:392
2385
  #: includes/addons/wb_customer_review.php:420
@@ -2389,12 +2549,12 @@ msgstr ""
2389
  #: includes/addons/wl_recently_viewed_products.php:336
2390
  #: includes/addons/wl_recently_viewed_products.php:380
2391
  #: includes/addons/wl_recently_viewed_products.php:709
2392
- #: includes/addons/wb_product_add_to_cart.php:104
2393
  #: includes/addons/wb_product_additional_information.php:102
2394
  #: includes/addons/add_banner.php:167 includes/addons/add_banner.php:218
2395
  #: includes/addons/wl_category_grid.php:504
2396
  #: includes/addons/wl_category_grid.php:598
2397
- #: includes/addons/wb_product_tags.php:132
2398
  msgid "Margin"
2399
  msgstr ""
2400
 
@@ -2459,6 +2619,15 @@ msgstr ""
2459
  msgid "Min price"
2460
  msgstr ""
2461
 
 
 
 
 
 
 
 
 
 
2462
  #: includes/addons/product_flash_sale.php:291
2463
  #: includes/addons/product_flash_sale.php:293
2464
  msgid "Minutes"
@@ -2482,20 +2651,24 @@ msgstr ""
2482
  msgid "Mobile Resolution"
2483
  msgstr ""
2484
 
2485
- #: includes/admin/include/class.extension-manager.php:200
2486
- #: includes/admin/include/class.extension-manager.php:268
 
 
 
 
2487
  msgid "More Details"
2488
  msgstr ""
2489
 
2490
- #: includes/admin/include/class.extension-manager.php:81
2491
  msgid "Multi Currency"
2492
  msgstr ""
2493
 
2494
- #: includes/admin/include/class.extension-manager.php:109
2495
  msgid "Multi Currency Pro for WooCommerce"
2496
  msgstr ""
2497
 
2498
- #: includes/admin/include/class.extension-manager.php:112
2499
  msgid ""
2500
  "Multi-Currency Pro for WooCommerce is a prominent currency switcher plugin "
2501
  "for WooCommerce. This plugin allows your website or online store visitors to "
@@ -2510,12 +2683,12 @@ msgstr ""
2510
  msgid "Multiple Categories"
2511
  msgstr ""
2512
 
2513
- #: classes/class.default_data.php:323 classes/class.default_data.php:345
2514
- #: includes/addons/wb_product_sku.php:149
2515
  msgid "N/A"
2516
  msgstr ""
2517
 
2518
- #: includes/helper-function.php:1008 includes/addons/product_flash_sale.php:135
2519
  #: includes/addons/wl_testimonial.php:82 includes/addons/wl_testimonial.php:576
2520
  #: includes/addons/product_image_accordion.php:148
2521
  #: includes/addons/product_accordion.php:169
@@ -2523,7 +2696,7 @@ msgstr ""
2523
  #: includes/addons/wb_customer_review.php:80
2524
  #: includes/addons/wb_customer_review.php:392
2525
  #: includes/addons/product_tabs.php:163
2526
- #: includes/admin/include/class.template-manager.php:383
2527
  msgid "Name"
2528
  msgstr ""
2529
 
@@ -2553,7 +2726,7 @@ msgstr ""
2553
  msgid "New"
2554
  msgstr ""
2555
 
2556
- #: includes/admin/include/class.template_cpt.php:33
2557
  msgid "New Template"
2558
  msgstr ""
2559
 
@@ -2564,7 +2737,7 @@ msgstr ""
2564
  msgid "Nine"
2565
  msgstr ""
2566
 
2567
- #: includes/admin/include/class.template-manager.php:141
2568
  msgid "NO"
2569
  msgstr ""
2570
 
@@ -2585,19 +2758,25 @@ msgstr ""
2585
  msgid "No Gutters"
2586
  msgstr ""
2587
 
2588
- #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:423
 
 
 
 
2589
  msgid "No naughty business please!"
2590
  msgstr ""
2591
 
2592
- #: includes/addons/wb_archive_product.php:952
 
 
2593
  msgid "No products were found matching your selection."
2594
  msgstr ""
2595
 
2596
- #: classes/class.default_data.php:266
2597
  msgid "No Rating Available"
2598
  msgstr ""
2599
 
2600
- #: classes/class.default_data.php:481
2601
  msgid "No related products are available."
2602
  msgstr ""
2603
 
@@ -2605,7 +2784,7 @@ msgstr ""
2605
  msgid "No Results Found"
2606
  msgstr ""
2607
 
2608
- #: includes/helper-function.php:400
2609
  msgid "No saved templates found."
2610
  msgstr ""
2611
 
@@ -2615,18 +2794,18 @@ msgstr ""
2615
  msgid "No shipping options were found for %s."
2616
  msgstr ""
2617
 
2618
- #: classes/class.default_data.php:452
2619
  msgid "No upsell products are available."
2620
  msgstr ""
2621
 
2622
- #: includes/admin/include/class.template-manager.php:442
2623
- #: includes/admin/include/class.template-manager.php:578
2624
- #: includes/admin/include/class.template-manager.php:614
2625
- #: includes/admin/include/class.template-manager.php:663
2626
  msgid "Nonce Varification Faild !"
2627
  msgstr ""
2628
 
2629
- #: includes/helper-function.php:1005 includes/addons/product_flash_sale.php:132
2630
  #: includes/addons/product_image_accordion.php:145
2631
  #: includes/addons/product_accordion.php:166
2632
  #: includes/addons/product_curvy.php:201
@@ -2661,20 +2840,23 @@ msgstr ""
2661
  #: includes/addons/wb_wishsuite_table.php:379
2662
  #: includes/addons/product_tabs.php:267 includes/addons/product_tabs.php:634
2663
  #: includes/addons/product_tabs.php:870 includes/addons/product_tabs.php:1127
2664
- #: includes/addons/wb_product_add_to_cart.php:65
 
 
 
2665
  #: includes/addons/wl_category_grid.php:670
2666
  msgid "Normal"
2667
  msgstr ""
2668
 
2669
- #: includes/admin/include/class.template_cpt.php:39
2670
  msgid "Not found"
2671
  msgstr ""
2672
 
2673
- #: includes/admin/include/class.template_cpt.php:40
2674
  msgid "Not found in Trash"
2675
  msgstr ""
2676
 
2677
- #: classes/class.assest_management.php:348
2678
  msgid "Nothing Found"
2679
  msgstr ""
2680
 
@@ -2725,6 +2907,10 @@ msgstr ""
2725
  msgid "One Page Slider"
2726
  msgstr ""
2727
 
 
 
 
 
2728
  #: includes/addons/wb_image_marker.php:60
2729
  msgid "Opacity Color"
2730
  msgstr ""
@@ -2798,7 +2984,7 @@ msgid ""
2798
  "the pro version."
2799
  msgstr ""
2800
 
2801
- #: includes/helper-function.php:731 includes/helper-function.php:775
2802
  msgid "Out of stock"
2803
  msgstr ""
2804
 
@@ -2806,7 +2992,7 @@ msgstr ""
2806
  msgid "Out of Stock Badge Color"
2807
  msgstr ""
2808
 
2809
- #: includes/helper-function.php:585
2810
  msgid "p"
2811
  msgstr ""
2812
 
@@ -2863,7 +3049,8 @@ msgstr ""
2863
  #: includes/addons/wl_recently_viewed_products.php:697
2864
  #: includes/addons/wb_wishsuite_table.php:364
2865
  #: includes/addons/product_tabs.php:693
2866
- #: includes/addons/wb_product_add_to_cart.php:92
 
2867
  #: includes/addons/wl_category_grid.php:449
2868
  #: includes/addons/wl_category_grid.php:750
2869
  msgid "Padding"
@@ -2875,7 +3062,7 @@ msgstr ""
2875
  msgid "Pagination"
2876
  msgstr ""
2877
 
2878
- #: includes/admin/include/class.template_cpt.php:29
2879
  msgid "Parent Item:"
2880
  msgstr ""
2881
 
@@ -2905,6 +3092,13 @@ msgstr ""
2905
  msgid "Place order"
2906
  msgstr ""
2907
 
 
 
 
 
 
 
 
2908
  #: includes/admin/include/template-library/popup-template.php:26
2909
  msgctxt "placeholder"
2910
  msgid "Enter a Page Name"
@@ -2946,6 +3140,11 @@ msgstr ""
2946
  msgid "Please Select Filter Type"
2947
  msgstr ""
2948
 
 
 
 
 
 
2949
  #: includes/admin/include/template-library.php:256
2950
  msgid "Plugin Not Found"
2951
  msgstr ""
@@ -2954,6 +3153,15 @@ msgstr ""
2954
  msgid "Plugin Successfully Activated"
2955
  msgstr ""
2956
 
 
 
 
 
 
 
 
 
 
2957
  #: includes/addons/wb_product_upsell.php:69
2958
  #: includes/addons/wb_archive_product.php:130
2959
  #: includes/addons/wb_product_related.php:84
@@ -2965,27 +3173,28 @@ msgstr ""
2965
  #: includes/addons/wl_testimonial.php:906
2966
  #: includes/addons/wb_archive_product.php:895
2967
  #: includes/addons/wl_recently_viewed_products.php:546
 
2968
  #: includes/addons/wl_category_grid.php:685
2969
  #: includes/addons/wl_category_grid.php:770
2970
  msgid "Position"
2971
  msgstr ""
2972
 
2973
- #: includes/admin/include/class.template-manager.php:471
2974
  msgid "Post request dose not found"
2975
  msgstr ""
2976
 
2977
- #: includes/admin/include/class.template_cpt.php:23
2978
  msgctxt "Post Type General Name"
2979
  msgid "Template Builder"
2980
  msgstr ""
2981
 
2982
- #: includes/admin/include/class.template_cpt.php:24
2983
  msgctxt "Post Type Singular Name"
2984
  msgid "Template Builder"
2985
  msgstr ""
2986
 
2987
- #: classes/class.assest_management.php:355
2988
- #: includes/admin/include/admin_field-manager.php:349
2989
  #: includes/admin/include/admin_field-manager.php:469
2990
  msgid "Preview"
2991
  msgstr ""
@@ -3016,7 +3225,7 @@ msgstr ""
3016
  msgid "Price color"
3017
  msgstr ""
3018
 
3019
- #: classes/class.default_data.php:222
3020
  msgid "Price does not set this product."
3021
  msgstr ""
3022
 
@@ -3041,16 +3250,16 @@ msgstr ""
3041
  msgid "Pricing"
3042
  msgstr ""
3043
 
3044
- #: classes/class.assest_management.php:343
3045
- #: includes/admin/include/class.template-manager.php:409
3046
- #: includes/admin/include/admin_field-manager.php:130
3047
- #: includes/admin/include/admin_field-manager.php:332
3048
  #: includes/admin/include/admin_field-manager.php:450
3049
  #: includes/admin/include/template-library/templates_list.php:31
3050
  msgid "Pro"
3051
  msgstr ""
3052
 
3053
- #: includes/admin/include/class.extension-manager.php:150
3054
  msgid "Pro extension"
3055
  msgstr ""
3056
 
@@ -3059,15 +3268,17 @@ msgid "Producing Perfume From Home"
3059
  msgstr ""
3060
 
3061
  #: classes/class.widgets_control.php:333
 
3062
  msgid "Product Add To Cart"
3063
  msgstr ""
3064
 
3065
- #: includes/helper-function.php:1050
3066
- #: woolentor-blocks/includes/helper-functions.php:314
3067
  msgid "Product Added"
3068
  msgstr ""
3069
 
3070
  #: classes/class.widgets_control.php:337
 
3071
  msgid "Product Additional Info"
3072
  msgstr ""
3073
 
@@ -3090,7 +3301,7 @@ msgstr ""
3090
  msgid "Product Category"
3091
  msgstr ""
3092
 
3093
- #: classes/class.default_data.php:380
3094
  msgid "Product category does not exists."
3095
  msgstr ""
3096
 
@@ -3117,6 +3328,7 @@ msgid ""
3117
  msgstr ""
3118
 
3119
  #: classes/class.widgets_control.php:260
 
3120
  msgid "Product Curvy"
3121
  msgstr ""
3122
 
@@ -3125,6 +3337,7 @@ msgid "Product Data tabs"
3125
  msgstr ""
3126
 
3127
  #: classes/class.widgets_control.php:345
 
3128
  msgid "Product Description"
3129
  msgstr ""
3130
 
@@ -3143,6 +3356,7 @@ msgid "Product IDs"
3143
  msgstr ""
3144
 
3145
  #: classes/class.widgets_control.php:365
 
3146
  msgid "Product Image"
3147
  msgstr ""
3148
 
@@ -3172,6 +3386,7 @@ msgid "Product Limit"
3172
  msgstr ""
3173
 
3174
  #: classes/class.widgets_control.php:381
 
3175
  msgid "Product Meta"
3176
  msgstr ""
3177
 
@@ -3185,15 +3400,17 @@ msgstr ""
3185
  msgid "Product Per Page"
3186
  msgstr ""
3187
 
3188
- #: classes/class.widgets_control.php:353 includes/helper-function.php:1013
3189
  #: includes/addons/product_flash_sale.php:466
3190
  #: includes/addons/product_image_accordion.php:411
3191
  #: includes/addons/product_accordion.php:490
3192
  #: includes/addons/product_curvy.php:482 includes/addons/product_tabs.php:1003
 
3193
  msgid "Product Price"
3194
  msgstr ""
3195
 
3196
  #: classes/class.widgets_control.php:397
 
3197
  msgid "Product QR Code"
3198
  msgstr ""
3199
 
@@ -3201,6 +3418,7 @@ msgstr ""
3201
  #: includes/addons/product_image_accordion.php:474
3202
  #: includes/addons/product_accordion.php:553
3203
  #: includes/addons/product_curvy.php:643
 
3204
  msgid "Product Rating"
3205
  msgstr ""
3206
 
@@ -3208,6 +3426,10 @@ msgstr ""
3208
  msgid "Product rating"
3209
  msgstr ""
3210
 
 
 
 
 
3211
  #: includes/addons/wb_product_reviews.php:43
3212
  msgid "Product Reviews"
3213
  msgstr ""
@@ -3220,6 +3442,10 @@ msgstr ""
3220
  msgid "Product Settings"
3221
  msgstr ""
3222
 
 
 
 
 
3223
  #: classes/class.widgets_control.php:349
3224
  msgid "Product short description"
3225
  msgstr ""
@@ -3233,6 +3459,7 @@ msgid "Product Slider"
3233
  msgstr ""
3234
 
3235
  #: classes/class.widgets_control.php:377
 
3236
  msgid "Product Stock"
3237
  msgstr ""
3238
 
@@ -3248,11 +3475,16 @@ msgstr ""
3248
  msgid "Product Tab"
3249
  msgstr ""
3250
 
 
 
 
 
3251
  #: includes/addons/product_tabs.php:294 includes/addons/product_tabs.php:374
3252
  msgid "Product tab menu background"
3253
  msgstr ""
3254
 
3255
  #: classes/class.widgets_control.php:228
 
3256
  msgid "Product Tabs"
3257
  msgstr ""
3258
 
@@ -3260,7 +3492,7 @@ msgstr ""
3260
  msgid "Product Tags"
3261
  msgstr ""
3262
 
3263
- #: classes/class.default_data.php:363
3264
  msgid "Product tags does not exists."
3265
  msgstr ""
3266
 
@@ -3270,10 +3502,12 @@ msgstr ""
3270
  #: includes/addons/product_curvy.php:410
3271
  #: includes/addons/wb_product_title.php:43
3272
  #: includes/addons/wb_product_title.php:62
 
3273
  msgid "Product Title"
3274
  msgstr ""
3275
 
3276
  #: classes/class.widgets_control.php:373
 
3277
  msgid "Product Upsell"
3278
  msgstr ""
3279
 
@@ -3297,7 +3531,8 @@ msgstr ""
3297
  msgid "Products reviews"
3298
  msgstr ""
3299
 
3300
- #: includes/base.php:243 includes/admin/templates/dashboard-sidebar.php:12
 
3301
  msgid "Promo Banner"
3302
  msgstr ""
3303
 
@@ -3311,16 +3546,49 @@ msgstr ""
3311
 
3312
  #: includes/addons/wb_product_qr_code.php:72
3313
  #: includes/addons/wb_wishsuite_table.php:205
 
3314
  msgid "Quantity"
3315
  msgstr ""
3316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3317
  #: includes/addons/product_image_accordion.php:55
3318
  #: includes/addons/product_accordion.php:76
3319
  #: includes/addons/product_curvy.php:111
3320
  msgid "Query Settings"
3321
  msgstr ""
3322
 
3323
- #: includes/helper-function.php:1011 includes/addons/product_flash_sale.php:138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3324
  #: includes/addons/wb_product_upsell.php:71
3325
  #: includes/addons/wb_archive_product.php:132
3326
  #: includes/addons/product_image_accordion.php:151
@@ -3355,8 +3623,8 @@ msgstr ""
3355
  msgid "Rating Color"
3356
  msgstr ""
3357
 
3358
- #: classes/class.default_data.php:248
3359
- msgid "Rating dose not enable"
3360
  msgstr ""
3361
 
3362
  #: includes/admin/templates/dashboard-sidebar.php:38
@@ -3402,7 +3670,7 @@ msgstr ""
3402
  msgid "Remember me"
3403
  msgstr ""
3404
 
3405
- #: includes/admin/include/class.template_cpt.php:43
3406
  msgid "Remove featured image"
3407
  msgstr ""
3408
 
@@ -3410,6 +3678,12 @@ msgstr ""
3410
  msgid "Remove Icon"
3411
  msgstr ""
3412
 
 
 
 
 
 
 
3413
  #: includes/admin/templates/dashboard-welcome.php:54
3414
  msgid "Request"
3415
  msgstr ""
@@ -3418,15 +3692,23 @@ msgstr ""
3418
  msgid "Required for stock progress bar"
3419
  msgstr ""
3420
 
3421
- #: classes/class.assest_management.php:326
3422
  msgid "Reset All Settings"
3423
  msgstr ""
3424
 
 
 
 
 
3425
  #: includes/admin/templates/dashboard-module-setting-popup.php:18
3426
  msgid "Reset To Default"
3427
  msgstr ""
3428
 
3429
- #: classes/class.assest_management.php:325
 
 
 
 
3430
  msgid "Resetting..."
3431
  msgstr ""
3432
 
@@ -3487,6 +3769,10 @@ msgstr ""
3487
  msgid "Right"
3488
  msgstr ""
3489
 
 
 
 
 
3490
  #: includes/addons/wb_archive_product.php:75
3491
  #: includes/addons/product_tabs.php:112
3492
  msgid "Rows"
@@ -3525,33 +3811,43 @@ msgstr ""
3525
  msgid "Sale Tag"
3526
  msgstr ""
3527
 
3528
- #: includes/helper-function.php:728 includes/helper-function.php:770
3529
  msgid "Sale!"
3530
  msgstr ""
3531
 
3532
- #: includes/admin/include/class.template-manager.php:407
3533
  msgid "Sample Design"
3534
  msgstr ""
3535
 
3536
- #: classes/class.assest_management.php:319
3537
  #: includes/admin/templates/dashboard-element.php:39
3538
  #: includes/admin/templates/dashboard-style.php:26
 
3539
  #: includes/admin/templates/dashboard-settings.php:18
3540
  #: includes/admin/templates/dashboard-module-setting-popup.php:20
3541
- #: includes/admin/templates/dashboard-module.php:49
3542
  msgid "Save Changes"
3543
  msgstr ""
3544
 
3545
- #: includes/admin/include/class.template-manager.php:400
3546
  msgid "Save Settings"
3547
  msgstr ""
3548
 
3549
- #: classes/class.assest_management.php:321
 
 
 
 
3550
  msgid "Saved All Data"
3551
  msgstr ""
3552
 
3553
- #: classes/class.assest_management.php:320
3554
- #: includes/admin/include/class.template-manager.php:401
 
 
 
 
 
3555
  msgid "Saving..."
3556
  msgstr ""
3557
 
@@ -3577,7 +3873,7 @@ msgstr ""
3577
  msgid "Search Products..."
3578
  msgstr ""
3579
 
3580
- #: includes/admin/include/class.template_cpt.php:38
3581
  msgid "Search Templates"
3582
  msgstr ""
3583
 
@@ -3595,7 +3891,8 @@ msgstr ""
3595
  msgid "Seconds"
3596
  msgstr ""
3597
 
3598
- #: includes/helper-function.php:377
 
3599
  msgid "Select"
3600
  msgstr ""
3601
 
@@ -3616,6 +3913,10 @@ msgstr ""
3616
  msgid "Select Deal"
3617
  msgstr ""
3618
 
 
 
 
 
3619
  #: includes/addons/wl_category.php:50 includes/addons/wl_brand.php:58
3620
  msgid "Select Layout"
3621
  msgstr ""
@@ -3634,7 +3935,7 @@ msgstr ""
3634
  msgid "Select Table"
3635
  msgstr ""
3636
 
3637
- #: includes/helper-function.php:402 includes/addons/wl_faq.php:97
3638
  msgid "Select Template"
3639
  msgstr ""
3640
 
@@ -3650,19 +3951,20 @@ msgstr ""
3650
  msgid "Separator Icon"
3651
  msgstr ""
3652
 
3653
- #: includes/admin/include/class.template-manager.php:387
3654
  msgid "Set Default"
3655
  msgstr ""
3656
 
3657
- #: includes/admin/include/class.template_cpt.php:42
3658
  msgid "Set featured image"
3659
  msgstr ""
3660
 
3661
- #: includes/helper-function.php:934 includes/helper-function.php:952
3662
  msgid "Set the initial stock amount from"
3663
  msgstr ""
3664
 
3665
  #: includes/base.php:268 includes/addons/wl_recently_viewed_products.php:42
 
3666
  #: includes/admin/admin-init.php:96 includes/admin/admin-init.php:97
3667
  msgid "Settings"
3668
  msgstr ""
@@ -3674,12 +3976,16 @@ msgstr ""
3674
  msgid "Seven"
3675
  msgstr ""
3676
 
 
 
 
 
3677
  #: includes/modules/shopify-like-checkout/templates/form-shipping.php:13
3678
  msgid "Ship to a different address?"
3679
  msgstr ""
3680
 
3681
- #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:298
3682
- #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:299
3683
  #: includes/modules/shopify-like-checkout/templates/review-order.php:26
3684
  #: includes/modules/shopify-like-checkout/templates/form-checkout.php:49
3685
  msgid "Shipping"
@@ -3703,8 +4009,8 @@ msgstr ""
3703
  msgid "Shipping to %s."
3704
  msgstr ""
3705
 
3706
- #: includes/admin/include/class.template-manager.php:205
3707
- #: includes/admin/include/class.template-manager.php:228
3708
  msgid "Shop"
3709
  msgstr ""
3710
 
@@ -3714,10 +4020,6 @@ msgstr ""
3714
  msgid "Shop now"
3715
  msgstr ""
3716
 
3717
- #: classes/class.default_data.php:231
3718
- msgid "Short description dose not set this product."
3719
- msgstr ""
3720
-
3721
  #: includes/addons/product_flash_sale.php:176
3722
  #: includes/addons/product_flash_sale.php:328
3723
  #: includes/addons/wb_product_upsell.php:95
@@ -3811,8 +4113,8 @@ msgid ""
3811
  "items, and news in your inbox."
3812
  msgstr ""
3813
 
3814
- #: includes/admin/include/class.template-manager.php:211
3815
- #: includes/admin/include/class.template-manager.php:236
3816
  msgid "Single"
3817
  msgstr ""
3818
 
@@ -3837,8 +4139,8 @@ msgstr ""
3837
  msgid "SKU"
3838
  msgstr ""
3839
 
3840
- #: classes/class.default_data.php:323 classes/class.default_data.php:344
3841
- #: includes/addons/wb_product_sku.php:148
3842
  msgid "SKU:"
3843
  msgstr ""
3844
 
@@ -3913,7 +4215,7 @@ msgstr ""
3913
  msgid "Social Share"
3914
  msgstr ""
3915
 
3916
- #: includes/helper-function.php:947
3917
  msgid "Sold"
3918
  msgstr ""
3919
 
@@ -3930,10 +4232,10 @@ msgstr ""
3930
  msgid "Sold:"
3931
  msgstr ""
3932
 
3933
- #: includes/admin/include/class.template-manager.php:520
3934
- #: includes/admin/include/class.template-manager.php:595
3935
- #: includes/admin/include/class.template-manager.php:633
3936
- #: includes/admin/include/class.template-manager.php:703
3937
  msgid "Some thing is worng !"
3938
  msgstr ""
3939
 
@@ -3971,6 +4273,17 @@ msgid ""
3971
  "arrangements."
3972
  msgstr ""
3973
 
 
 
 
 
 
 
 
 
 
 
 
3974
  #: includes/admin/include/template-library.php:291
3975
  msgid "Sorry, you are not allowed to install themes on this site."
3976
  msgstr ""
@@ -3982,23 +4295,23 @@ msgstr ""
3982
  msgid "Sort By"
3983
  msgstr ""
3984
 
3985
- #: includes/helper-function.php:805
3986
  msgid "Sort by average rating"
3987
  msgstr ""
3988
 
3989
- #: includes/helper-function.php:806
3990
  msgid "Sort by latest"
3991
  msgstr ""
3992
 
3993
- #: includes/helper-function.php:804
3994
  msgid "Sort by popularity"
3995
  msgstr ""
3996
 
3997
- #: includes/helper-function.php:808
3998
  msgid "Sort by price: high to low"
3999
  msgstr ""
4000
 
4001
- #: includes/helper-function.php:807
4002
  msgid "Sort by price: low to high"
4003
  msgstr ""
4004
 
@@ -4010,17 +4323,26 @@ msgid "Space"
4010
  msgstr ""
4011
 
4012
  #: includes/addons/wb_product_image.php:118
 
 
 
 
4013
  msgid "Spacing"
4014
  msgstr ""
4015
 
4016
- #: includes/helper-function.php:587
4017
  msgid "span"
4018
  msgstr ""
4019
 
4020
  #: classes/class.widgets_control.php:236
 
4021
  msgid "Special Day Offer"
4022
  msgstr ""
4023
 
 
 
 
 
4024
  #: includes/addons/wb_product_rating.php:51
4025
  msgid "Star Color"
4026
  msgstr ""
@@ -4033,7 +4355,7 @@ msgstr ""
4033
  msgid "Start from $100"
4034
  msgstr ""
4035
 
4036
- #: classes/class.default_data.php:427
4037
  msgid "Stock availability does not exist this product."
4038
  msgstr ""
4039
 
@@ -4046,6 +4368,7 @@ msgid "Stock Progress Style"
4046
  msgstr ""
4047
 
4048
  #: includes/addons/wl_store_features.php:41
 
4049
  msgid "Store Feature"
4050
  msgstr ""
4051
 
@@ -4171,8 +4494,37 @@ msgstr ""
4171
  msgid "Support"
4172
  msgstr ""
4173
 
4174
- #: includes/admin/include/class.extension-manager.php:66
4175
- msgid "Swatchly"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4176
  msgstr ""
4177
 
4178
  #: includes/addons/wb_product_data_tab.php:44
@@ -4213,8 +4565,8 @@ msgstr ""
4213
  msgid "Tablet Resolution"
4214
  msgstr ""
4215
 
4216
- #: classes/class.default_data.php:329 classes/class.default_data.php:358
4217
- #: includes/addons/wb_product_tags.php:160
4218
  msgid "Tag:"
4219
  msgid_plural "Tags:"
4220
  msgstr[0] ""
@@ -4224,35 +4576,35 @@ msgstr[1] ""
4224
  msgid "Tags"
4225
  msgstr ""
4226
 
4227
- #: includes/admin/include/class.template_cpt.php:25
4228
- #: includes/admin/include/class.template_cpt.php:26
4229
  msgid "Template"
4230
  msgstr ""
4231
 
4232
- #: includes/admin/include/class.template_cpt.php:27
4233
  msgid "Template Archives"
4234
  msgstr ""
4235
 
4236
- #: includes/admin/include/class.template_cpt.php:28
4237
  msgid "Template Attributes"
4238
  msgstr ""
4239
 
4240
- #: includes/admin/include/class.template-manager.php:78
4241
- #: includes/admin/include/class.template-manager.php:79
4242
- #: includes/admin/include/class.template_cpt.php:53
4243
  msgid "Template Builder"
4244
  msgstr ""
4245
 
4246
- #: includes/admin/include/class.template-manager.php:696
4247
  msgid "Template has been imported"
4248
  msgstr ""
4249
 
4250
- #: includes/admin/include/class.template-manager.php:495
4251
  msgid "Template has been inserted"
4252
  msgstr ""
4253
 
4254
- #: includes/admin/include/class.template-manager.php:560
4255
- #: includes/admin/include/class.template-manager.php:625
4256
  msgid "Template has been updated"
4257
  msgstr ""
4258
 
@@ -4261,20 +4613,20 @@ msgstr ""
4261
  msgid "Template Library"
4262
  msgstr ""
4263
 
4264
- #: includes/admin/include/class.template-manager.php:389
4265
  msgid "Template Settings"
4266
  msgstr ""
4267
 
4268
- #: includes/admin/include/class.template_cpt.php:30
4269
  #: includes/admin/include/template-library/templates_list.php:11
4270
  msgid "Templates"
4271
  msgstr ""
4272
 
4273
- #: includes/admin/include/class.template_cpt.php:47
4274
  msgid "Templates list"
4275
  msgstr ""
4276
 
4277
- #: includes/admin/include/class.template_cpt.php:48
4278
  msgid "Templates list navigation"
4279
  msgstr ""
4280
 
@@ -4290,6 +4642,8 @@ msgid "Testimonial"
4290
  msgstr ""
4291
 
4292
  #: includes/addons/wb_wishsuite_counter.php:142
 
 
4293
  msgid "Text"
4294
  msgstr ""
4295
 
@@ -4314,8 +4668,8 @@ msgstr ""
4314
  #: includes/addons/wb_product_suggest_price.php:708
4315
  #: includes/addons/wb_product_suggest_price.php:793
4316
  #: includes/addons/wb_product_stock.php:51
4317
- #: includes/addons/wb_product_add_to_cart.php:72
4318
- #: includes/addons/wb_product_add_to_cart.php:157
4319
  msgid "Text Color"
4320
  msgstr ""
4321
 
@@ -4328,10 +4682,26 @@ msgstr ""
4328
  msgid "Thank you for contacting with us"
4329
  msgstr ""
4330
 
 
 
 
 
 
 
 
 
4331
  #: includes/addons/wl_faq.php:163
4332
  msgid "The Basics Of Western Astrology Explained"
4333
  msgstr ""
4334
 
 
 
 
 
 
 
 
 
4335
  #: includes/addons/wl_testimonial.php:463 includes/addons/product_tabs.php:607
4336
  #: includes/addons/wl_category_grid.php:429
4337
  msgid "The resolution to mobile."
@@ -4342,6 +4712,10 @@ msgstr ""
4342
  msgid "The resolution to the tablet."
4343
  msgstr ""
4344
 
 
 
 
 
4345
  #. Description of the plugin
4346
  msgid ""
4347
  "The WooCommerce elements library for Elementor page builder plugin for "
@@ -4352,13 +4726,18 @@ msgstr ""
4352
  msgid "Theme Activated"
4353
  msgstr ""
4354
 
4355
- #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:302
4356
  #: includes/modules/shopify-like-checkout/templates/cart-shipping.php:53
4357
  msgid ""
4358
  "There are no shipping options available. Please ensure that your address has "
4359
  "been entered correctly, or contact us if you need any help."
4360
  msgstr ""
4361
 
 
 
 
 
 
4362
  #: includes/addons/product_accordion.php:210
4363
  msgid "This text effect only for simple product."
4364
  msgstr ""
@@ -4395,7 +4774,7 @@ msgstr ""
4395
  msgid "Thumbnails Position"
4396
  msgstr ""
4397
 
4398
- #: includes/helper-function.php:1009 includes/addons/wl_faq.php:68
4399
  #: includes/addons/wl_faq.php:342 includes/addons/product_flash_sale.php:136
4400
  #: includes/addons/product_flash_sale.php:772
4401
  #: includes/addons/wl_product_horizontal_filter.php:197
@@ -4470,6 +4849,23 @@ msgstr ""
4470
  msgid "To show the stock progress bar. Set the initial stock amount from"
4471
  msgstr ""
4472
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4473
  #: includes/addons/special_day_offer.php:54
4474
  #: includes/addons/wl_product_video_gallery.php:69
4475
  #: includes/admin/include/template-library/templates_list.php:54
@@ -4477,7 +4873,7 @@ msgstr ""
4477
  msgid "Top"
4478
  msgstr ""
4479
 
4480
- #: includes/helper-function.php:1015
4481
  msgid "Top Rated"
4482
  msgstr ""
4483
 
@@ -4487,7 +4883,7 @@ msgstr ""
4487
  msgid "Top Rated Products"
4488
  msgstr ""
4489
 
4490
- #: includes/helper-function.php:1014
4491
  msgid "Top Seller"
4492
  msgstr ""
4493
 
@@ -4502,8 +4898,8 @@ msgstr ""
4502
  msgid "Two"
4503
  msgstr ""
4504
 
4505
- #: includes/admin/include/class.template-manager.php:100
4506
- #: includes/admin/include/class.template-manager.php:386
4507
  msgid "Type"
4508
  msgstr ""
4509
 
@@ -4578,7 +4974,7 @@ msgstr ""
4578
  #: includes/addons/wb_wishsuite_table.php:224
4579
  #: includes/addons/wb_wishsuite_table.php:303
4580
  #: includes/addons/wb_wishsuite_table.php:356
4581
- #: includes/addons/wb_product_add_to_cart.php:84
4582
  #: includes/addons/wb_ever_compare_table.php:88
4583
  #: includes/addons/wb_product_additional_information.php:91
4584
  #: includes/addons/wb_product_additional_information.php:137
@@ -4594,6 +4990,7 @@ msgid "Unfortunately, no products were found in the deal you selected."
4594
  msgstr ""
4595
 
4596
  #: classes/class.widgets_control.php:224
 
4597
  msgid "Universal Product"
4598
  msgstr ""
4599
 
@@ -4601,11 +4998,21 @@ msgstr ""
4601
  msgid "Unnamed Deal"
4602
  msgstr ""
4603
 
4604
- #: includes/admin/include/class.template_cpt.php:35
4605
  msgid "Update Template"
4606
  msgstr ""
4607
 
4608
- #: includes/admin/include/class.template_cpt.php:46
 
 
 
 
 
 
 
 
 
 
4609
  msgid "Uploaded to this Template"
4610
  msgstr ""
4611
 
@@ -4613,10 +5020,14 @@ msgstr ""
4613
  msgid "Upsells"
4614
  msgstr ""
4615
 
4616
- #: includes/admin/include/class.template_cpt.php:44
4617
  msgid "Use as featured image"
4618
  msgstr ""
4619
 
 
 
 
 
4620
  #: includes/modules/shopify-like-checkout/templates/form-login.php:24
4621
  #: includes/modules/shopify-like-checkout/templates/form-login.php:25
4622
  msgid "Username or email"
@@ -4664,15 +5075,19 @@ msgstr ""
4664
  msgid "Video Tutorial"
4665
  msgstr ""
4666
 
 
 
 
 
4667
  #: includes/modules/backorder/class.backorder.php:190
4668
  msgid "View cart"
4669
  msgstr ""
4670
 
4671
- #: includes/admin/include/class.template_cpt.php:36
4672
  msgid "View Template"
4673
  msgstr ""
4674
 
4675
- #: includes/admin/include/class.template_cpt.php:37
4676
  msgid "View Templates"
4677
  msgstr ""
4678
 
@@ -4706,11 +5121,11 @@ msgid "When the product tab is off, Then working slider."
4706
  msgstr ""
4707
 
4708
  #: classes/class.widgets_control.php:453
4709
- #: includes/admin/include/class.extension-manager.php:71
4710
  msgid "Whols"
4711
  msgstr ""
4712
 
4713
- #: includes/admin/include/class.extension-manager.php:103
4714
  msgid ""
4715
  "Whols is an outstanding WordPress plugin for WooCommerce that allows store "
4716
  "owners to set wholesale prices for the products of their online stores. This "
@@ -4721,10 +5136,14 @@ msgid ""
4721
  "manually or automatically."
4722
  msgstr ""
4723
 
4724
- #: includes/admin/include/class.extension-manager.php:100
4725
  msgid "Whols Pro – WooCommerce Wholesale Prices"
4726
  msgstr ""
4727
 
 
 
 
 
4728
  #: includes/addons/wl_onepage_slider.php:433
4729
  #: includes/addons/wl_onepage_slider.php:507
4730
  #: includes/addons/special_day_offer.php:173
@@ -4736,6 +5155,16 @@ msgstr ""
4736
  msgid "Wishlist"
4737
  msgstr ""
4738
 
 
 
 
 
 
 
 
 
 
 
4739
  #: includes/addons/wb_wishsuite_table.php:49
4740
  msgid "WishSuite"
4741
  msgstr ""
@@ -4749,10 +5178,27 @@ msgstr ""
4749
  msgid "WishSuite Table"
4750
  msgstr ""
4751
 
 
 
 
 
 
 
 
 
 
 
 
 
4752
  #: includes/addons/add_banner.php:13
4753
  msgid "WL: Add Banner"
4754
  msgstr ""
4755
 
 
 
 
 
 
4756
  #: includes/addons/wb_product_add_to_cart.php:13
4757
  msgid "WL: Add To cart"
4758
  msgstr ""
@@ -4766,14 +5212,20 @@ msgid "WL: Archive Result Count"
4766
  msgstr ""
4767
 
4768
  #: includes/addons/wl_archive_title.php:13
 
 
4769
  msgid "WL: Archive Title"
4770
  msgstr ""
4771
 
4772
  #: includes/addons/wl_brand.php:13
 
 
4773
  msgid "WL: Brand Logo"
4774
  msgstr ""
4775
 
4776
  #: includes/addons/wl_breadcrumbs.php:13
 
 
4777
  msgid "WL: Breadcrumbs"
4778
  msgstr ""
4779
 
@@ -4782,6 +5234,8 @@ msgid "WL: Call For Price"
4782
  msgstr ""
4783
 
4784
  #: includes/addons/wl_category_grid.php:12
 
 
4785
  msgid "WL: Category Grid"
4786
  msgstr ""
4787
 
@@ -4793,15 +5247,23 @@ msgstr ""
4793
  msgid "WL: Customer Review"
4794
  msgstr ""
4795
 
 
 
 
 
 
4796
  #: includes/addons/wb_ever_compare_table.php:13
4797
  msgid "WL: EverCompare"
4798
  msgstr ""
4799
 
4800
- #: includes/addons/wl_faq.php:13
 
4801
  msgid "WL: FAQ"
4802
  msgstr ""
4803
 
4804
  #: includes/addons/wb_image_marker.php:13
 
 
4805
  msgid "WL: Image Marker"
4806
  msgstr ""
4807
 
@@ -4821,11 +5283,18 @@ msgstr ""
4821
  msgid "WL: Product Accordion"
4822
  msgstr ""
4823
 
 
 
 
 
 
4824
  #: includes/addons/wb_product_additional_information.php:13
4825
  msgid "WL: Product Additional Information"
4826
  msgstr ""
4827
 
4828
  #: includes/addons/wb_archive_product.php:13
 
 
4829
  msgid "WL: Product Archive Layout (Default)"
4830
  msgstr ""
4831
 
@@ -4834,6 +5303,8 @@ msgid "WL: Product Categories"
4834
  msgstr ""
4835
 
4836
  #: includes/addons/product_curvy.php:14
 
 
4837
  msgid "WL: Product Curvy"
4838
  msgstr ""
4839
 
@@ -4859,6 +5330,8 @@ msgid "WL: Product Horizontal Filter"
4859
  msgstr ""
4860
 
4861
  #: includes/addons/wb_product_image.php:13
 
 
4862
  msgid "WL: Product Image"
4863
  msgstr ""
4864
 
@@ -4867,14 +5340,25 @@ msgid "WL: Product Image Accordion"
4867
  msgstr ""
4868
 
4869
  #: includes/addons/wb_product_meta.php:13
 
 
4870
  msgid "WL: Product Meta"
4871
  msgstr ""
4872
 
4873
  #: includes/addons/wb_product_price.php:13
 
 
4874
  msgid "WL: Product Price"
4875
  msgstr ""
4876
 
 
 
 
 
 
4877
  #: includes/addons/wb_product_rating.php:13
 
 
4878
  msgid "WL: Product Rating"
4879
  msgstr ""
4880
 
@@ -4883,6 +5367,8 @@ msgid "WL: Product Reviews"
4883
  msgstr ""
4884
 
4885
  #: includes/addons/wb_product_short_description.php:13
 
 
4886
  msgid "WL: Product Short Description"
4887
  msgstr ""
4888
 
@@ -4891,22 +5377,38 @@ msgid "WL: Product SKU"
4891
  msgstr ""
4892
 
4893
  #: includes/addons/wb_product_stock.php:13
 
 
4894
  msgid "WL: Product Stock"
4895
  msgstr ""
4896
 
4897
  #: includes/addons/product_tabs.php:13
 
 
4898
  msgid "WL: Product Tab"
4899
  msgstr ""
4900
 
 
 
 
 
 
4901
  #: includes/addons/wb_product_tags.php:13
4902
  msgid "WL: Product Tags"
4903
  msgstr ""
4904
 
 
 
 
 
 
4905
  #: includes/addons/wb_product_title.php:13
4906
  msgid "WL: Product title"
4907
  msgstr ""
4908
 
4909
  #: includes/addons/wb_product_upsell.php:13
 
 
4910
  msgid "WL: Product Upsell"
4911
  msgstr ""
4912
 
@@ -4923,14 +5425,20 @@ msgid "WL: Recently Viewed Products"
4923
  msgstr ""
4924
 
4925
  #: includes/addons/wb_product_related.php:13
 
 
4926
  msgid "WL: Related Product"
4927
  msgstr ""
4928
 
4929
  #: includes/addons/special_day_offer.php:13
 
 
4930
  msgid "WL: Special Day Offer"
4931
  msgstr ""
4932
 
4933
  #: includes/addons/wl_store_features.php:13
 
 
4934
  msgid "WL: Store Feature"
4935
  msgstr ""
4936
 
@@ -4942,6 +5450,15 @@ msgstr ""
4942
  msgid "WL: Testimonial"
4943
  msgstr ""
4944
 
 
 
 
 
 
 
 
 
 
4945
  #: includes/addons/wb_whols.php:13
4946
  msgid "WL: Whols"
4947
  msgstr ""
@@ -4954,8 +5471,8 @@ msgstr ""
4954
  msgid "WL: WishSuite Table"
4955
  msgstr ""
4956
 
4957
- #: includes/base.php:187 includes/admin/admin-init.php:85
4958
- #: includes/admin/admin-init.php:86
4959
  msgid "WooLentor"
4960
  msgstr ""
4961
 
@@ -4967,18 +5484,42 @@ msgstr ""
4967
  msgid "Woolentor Addons"
4968
  msgstr ""
4969
 
 
 
 
 
4970
  #: includes/modules/ajax-search/widget-product-search-ajax.php:12
4971
  msgid "WooLentor Ajax Product Search Widget"
4972
  msgstr ""
4973
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4974
  #: includes/admin/templates/dashboard-element.php:15
4975
  msgid "WooLentor Element"
4976
  msgstr ""
4977
 
 
 
 
 
4978
  #: includes/admin/templates/dashboard-sidebar.php:24
4979
  msgid ""
4980
  "WooLentor is one of the most popular WooCommerce Elementor Addons on "
4981
- "WordPress.org. It has been downloaded more than 1,278,953 times and 80,000 "
4982
  "stores are using WooLentor plugin. Why not you?"
4983
  msgstr ""
4984
 
@@ -4990,7 +5531,7 @@ msgstr ""
4990
  msgid "WooLentor Module"
4991
  msgstr ""
4992
 
4993
- #: includes/admin/include/class.template_cpt.php:54
4994
  msgid "WooLentor Template"
4995
  msgstr ""
4996
 
@@ -5027,11 +5568,11 @@ msgstr ""
5027
  msgid "Y Position"
5028
  msgstr ""
5029
 
5030
- #: includes/admin/include/class.template-manager.php:141
5031
  msgid "YES"
5032
  msgstr ""
5033
 
5034
- #: classes/class.assest_management.php:322 includes/addons/wl_faq.php:113
5035
  #: includes/addons/wl_faq.php:192 includes/addons/wl_faq.php:205
5036
  #: includes/addons/wl_testimonial.php:217
5037
  #: includes/addons/wl_testimonial.php:333
@@ -5040,7 +5581,7 @@ msgstr ""
5040
  #: includes/addons/wl_category_grid.php:153
5041
  #: includes/addons/wl_category_grid.php:214
5042
  #: includes/addons/wl_category_grid.php:300
5043
- #: includes/admin/include/class.template-manager.php:419
5044
  msgid "Yes"
5045
  msgstr ""
5046
 
@@ -5048,6 +5589,10 @@ msgstr ""
5048
  msgid "You are not permitted to import the template."
5049
  msgstr ""
5050
 
 
 
 
 
5051
  #: includes/admin/templates/dashboard-element.php:16
5052
  #: includes/admin/templates/dashboard-module.php:18
5053
  msgid "You can enable or disable all options by one click."
3
  msgstr ""
4
  "Project-Id-Version: WooLentor - WooCommerce Elementor Addons + Builder\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2022-07-04 04:22+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
16
  "X-Loco-Version: 2.6.2; wp-6.0\n"
17
  "X-Domain: woolentor"
18
 
19
+ #. %s: Product title
20
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:88
21
+ #, php-format
22
+ msgid "\"%1$s\" has been added to your cart. %2$s"
23
+ msgstr ""
24
+
25
  #. 1: Plugin name 2: PHP 3: Required PHP version
26
  #: includes/base.php:186
27
  #, php-format
56
  "plugin to be installed and activated. Please install WooCommerce to continue."
57
  msgstr ""
58
 
59
+ #: classes/class.default_data.php:284
60
  #, php-format
61
  msgid "%s customer review"
62
  msgid_plural "%s customer reviews"
63
  msgstr[0] ""
64
  msgstr[1] ""
65
 
66
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:188
67
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:203
68
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:217
69
+ msgid "-------"
70
+ msgstr ""
71
+
72
  #: includes/admin/templates/dashboard-sidebar.php:41
73
  msgid ". Which will motivate us a lot."
74
  msgstr ""
83
  msgid "10 Custom Shop Page Templates"
84
  msgstr ""
85
 
86
+ #: includes/admin/templates/dashboard-sidebar.php:26
87
+ msgid "100+ Elementor Elements"
88
+ msgstr ""
89
+
90
  #: includes/addons/wb_product_call_for_price.php:63
91
  #: includes/addons/wb_product_call_for_price.php:64
92
  msgid "123-456-7890"
130
  msgid "6"
131
  msgstr ""
132
 
 
 
 
 
133
  #: includes/addons/product_tabs.php:1478 includes/addons/product_tabs.php:1604
134
+ #: woolentor-blocks/build/blocks/product-tab/index.php:332
135
+ #: woolentor-blocks/src/blocks/product-tab/index.php:332
136
  msgid ":"
137
  msgstr ""
138
 
139
+ #: woolentor-blocks/build/blocks/product-curvy/index.php:150
140
+ #: woolentor-blocks/src/blocks/product-curvy/index.php:150
141
  msgid "<i class=\"fa fa-shopping-cart\"></i>"
142
  msgstr ""
143
 
154
 
155
  #: includes/admin/include/template-library.php:162
156
  #: includes/admin/include/template-library.php:214
157
+ #: includes/admin/include/class.extension-manager.php:158
158
+ #: includes/admin/include/class.extension-manager.php:225
159
  msgid "Activate"
160
  msgstr ""
161
 
169
 
170
  #: includes/admin/include/template-library.php:173
171
  #: includes/admin/include/template-library.php:225
172
+ #: includes/admin/include/class.extension-manager.php:169
173
+ #: includes/admin/include/class.extension-manager.php:236
174
  msgid "Activated"
175
  msgstr ""
176
 
177
+ #: classes/class.assest_management.php:367
178
  msgid "Activating.."
179
  msgstr ""
180
 
181
+ #: classes/class.assest_management.php:368 includes/addons/wl_faq.php:464
182
  #: includes/addons/wl_faq.php:760 includes/addons/wb_product_data_tab.php:144
183
  #: includes/addons/wb_archive_product.php:758
184
  msgid "Active"
194
  msgid "Add ID Manually"
195
  msgstr ""
196
 
197
+ #: includes/admin/include/admin_field-manager.php:433
198
  msgid "Add Item"
199
  msgstr ""
200
 
201
+ #: includes/admin/include/class.template_cpt.php:34
202
  msgid "Add New"
203
  msgstr ""
204
 
205
+ #: includes/admin/include/class.template_cpt.php:33
206
  msgid "Add New Template"
207
  msgstr ""
208
 
209
  #: includes/addons/wl_recently_viewed_products.php:394
210
  #: includes/addons/wb_wishsuite_table.php:347
211
+ #: woolentor-blocks/includes/classes/Api/Api.php:186
212
  msgid "Add To Cart"
213
  msgstr ""
214
 
215
+ #: includes/addons/wb_product_add_to_cart.php:816
216
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:990
217
+ msgid "Add to Cart"
218
+ msgstr ""
219
+
220
  #: includes/addons/wb_archive_product.php:542
221
  msgid "Add To Cart Button"
222
  msgstr ""
232
  msgid "Add to Cart Button Text"
233
  msgstr ""
234
 
235
+ #: includes/helper-function.php:1080 includes/helper-function.php:1081
236
+ #: includes/helper-function.php:1097
237
+ #: woolentor-blocks/includes/helper-functions.php:479
238
+ #: woolentor-blocks/includes/helper-functions.php:480
239
+ #: woolentor-blocks/includes/helper-functions.php:496
240
  msgid "Add to Compare"
241
  msgstr ""
242
 
263
  msgid "admin@domain.com"
264
  msgstr ""
265
 
266
+ #: includes/addons/wb_product_add_to_cart.php:446
267
+ msgid "After Add to Cart"
268
+ msgstr ""
269
+
270
  #: includes/addons/wl_category_grid.php:575
271
  msgid "After Border Color"
272
  msgstr ""
305
  msgstr ""
306
 
307
  #: includes/addons/wb_wc_multicurrency.php:58
308
+ #: includes/admin/include/class.template-manager.php:377
309
  msgid "All"
310
  msgstr ""
311
 
312
+ #: includes/admin/include/class.template-manager.php:484
313
  msgid "All Assigned Template has been imported"
314
  msgstr ""
315
 
322
  msgid "All Categories"
323
  msgstr ""
324
 
325
+ #: includes/admin/include/class.template-manager.php:472
326
  msgid "All Data Saved"
327
  msgstr ""
328
 
329
+ #: classes/class.assest_management.php:357
330
  msgid "All Items have been Loaded"
331
  msgstr ""
332
 
350
  msgid "Apply coupon"
351
  msgstr ""
352
 
353
+ #: includes/admin/include/class.template-manager.php:260
354
+ #: includes/admin/include/class.template-manager.php:288
355
  msgid "Archive"
356
  msgstr ""
357
 
364
  msgstr ""
365
 
366
  #: classes/class.widgets_control.php:404
367
+ #: woolentor-blocks/includes/classes/Blocks_init.php:221
368
  msgid "Archive Layout Default"
369
  msgstr ""
370
 
379
  #: classes/class.widgets_control.php:272
380
  #: includes/addons/wl_archive_title.php:43
381
  #: includes/addons/wl_archive_title.php:224
382
+ #: woolentor-blocks/includes/classes/Blocks_init.php:131
383
  msgid "Archive Title"
384
  msgstr ""
385
 
386
+ #: classes/class.assest_management.php:334
387
+ #: includes/admin/include/class.template-manager.php:487
388
  msgid "Are you sure?"
389
  msgstr ""
390
 
426
  msgid "Ascending"
427
  msgstr ""
428
 
429
+ #: includes/admin/include/class.template-manager.php:483
430
  msgid "Assigned Template Importing.."
431
  msgstr ""
432
 
433
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:110
434
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:115
435
+ msgid "Auto convert Dropdown to Image Swatch"
436
+ msgstr ""
437
+
438
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:104
439
+ msgid "Auto convert Dropdowns to Label Swatch"
440
+ msgstr ""
441
+
442
  #: includes/addons/wl_testimonial.php:367 includes/addons/product_tabs.php:506
443
  #: includes/addons/wl_category_grid.php:333
444
  msgid "Autoplay animation speed"
466
  msgid "Awaiting category image"
467
  msgstr ""
468
 
469
+ #: classes/class.default_data.php:317
470
  msgid "Awaiting product image"
471
  msgstr ""
472
 
552
  #: includes/addons/product_tabs.php:661 includes/addons/product_tabs.php:713
553
  #: includes/addons/product_tabs.php:817 includes/addons/product_tabs.php:1146
554
  #: includes/addons/product_tabs.php:1206
555
+ #: includes/addons/wb_product_add_to_cart.php:910
556
+ #: includes/addons/wb_product_add_to_cart.php:942
557
  #: includes/addons/wl_category_grid.php:719
558
  #: includes/addons/wl_category_grid.php:793
559
  #: includes/addons/wl_category_grid.php:893
621
  msgid "Banner Title"
622
  msgstr ""
623
 
624
+ #: includes/addons/wb_product_add_to_cart.php:445
625
+ msgid "Befor Add to Cart"
626
+ msgstr ""
627
+
628
  #: includes/addons/wl_category_grid.php:633
629
  msgid "Before Border Color"
630
  msgstr ""
710
  #: includes/addons/product_tabs.php:674 includes/addons/product_tabs.php:726
711
  #: includes/addons/product_tabs.php:789 includes/addons/product_tabs.php:831
712
  #: includes/addons/product_tabs.php:878
713
+ #: includes/addons/wb_product_add_to_cart.php:543
714
+ #: includes/addons/wb_product_add_to_cart.php:637
715
+ #: includes/addons/wb_product_add_to_cart.php:891
716
  #: includes/addons/wl_category_grid.php:518
717
  #: includes/addons/wl_category_grid.php:731
718
  #: includes/addons/wl_category_grid.php:805
732
  #: includes/addons/wb_product_suggest_price.php:672
733
  #: includes/addons/wb_product_suggest_price.php:815
734
  #: includes/addons/wb_wishsuite_table.php:241
735
+ #: includes/addons/wb_product_add_to_cart.php:953
736
  #: includes/addons/wb_ever_compare_table.php:187
737
  msgid "Border Color"
738
  msgstr ""
791
  #: includes/addons/product_tabs.php:682 includes/addons/product_tabs.php:734
792
  #: includes/addons/product_tabs.php:797 includes/addons/product_tabs.php:839
793
  #: includes/addons/product_tabs.php:886
794
+ #: includes/addons/wb_product_add_to_cart.php:345
795
+ #: includes/addons/wb_product_add_to_cart.php:551
796
+ #: includes/addons/wb_product_add_to_cart.php:645
797
+ #: includes/addons/wb_product_add_to_cart.php:899
798
  #: includes/addons/wl_category_grid.php:526
799
  #: includes/addons/wl_category_grid.php:739
800
  #: includes/addons/wl_category_grid.php:813
803
  msgid "Border Radius"
804
  msgstr ""
805
 
806
+ #: includes/addons/wb_product_add_to_cart.php:447
807
+ msgid "Both Side of Add to Cart"
808
+ msgstr ""
809
+
810
  #: includes/addons/special_day_offer.php:56
811
  #: includes/addons/wl_product_video_gallery.php:73
812
  #: includes/addons/add_banner.php:69
846
  msgstr ""
847
 
848
  #: includes/addons/wl_brand.php:51
849
+ #: woolentor-blocks/includes/classes/Blocks_init.php:81
850
+ #: woolentor-blocks/build/blocks/brand-logo/index.php:69
851
+ #: woolentor-blocks/src/blocks/brand-logo/index.php:69
852
  msgid "Brand Logo"
853
  msgstr ""
854
 
861
  msgstr ""
862
 
863
  #: classes/class.widgets_control.php:276 includes/addons/wl_breadcrumbs.php:43
864
+ #: woolentor-blocks/includes/classes/Blocks_init.php:136
865
  msgid "Breadcrumbs"
866
  msgstr ""
867
 
869
  #: includes/addons/special_day_offer.php:620 includes/addons/wb_whols.php:48
870
  #: includes/addons/wb_product_call_for_price.php:74
871
  #: includes/addons/wl_product_filter.php:625
872
+ #: includes/addons/wb_product_add_to_cart.php:405
873
+ #: includes/addons/wb_product_add_to_cart.php:666
874
  #: includes/addons/add_banner.php:230
875
  msgid "Button"
876
  msgstr ""
919
  msgid "Buy"
920
  msgstr ""
921
 
922
+ #: classes/class.assest_management.php:364
923
  #: includes/admin/include/template-library.php:181
924
  #: includes/admin/include/template-library.php:233
925
+ #: includes/admin/include/class.extension-manager.php:189
926
  #: includes/admin/templates/dashboard-popup.php:14
927
  msgid "Buy Now"
928
  msgstr ""
935
  msgid "By"
936
  msgstr ""
937
 
938
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:64
939
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:310
940
+ msgid ""
941
+ "By default, the \"Attribute Name\" will be shown as the tooltip. If you want "
942
+ "custom tooltip text, put it here."
943
+ msgstr ""
944
+
945
  #: includes/addons/wb_product_call_for_price.php:43
946
  #: includes/addons/wb_product_call_for_price.php:52
947
  #: includes/addons/wb_product_call_for_price.php:53
948
  msgid "Call For Price"
949
  msgstr ""
950
 
951
+ #: classes/class.assest_management.php:333
952
+ #: includes/admin/include/class.template-manager.php:490
953
  msgid "Cancel"
954
  msgstr ""
955
 
995
 
996
  #: classes/class.widgets_control.php:252
997
  #: includes/addons/wl_category_grid.php:44
998
+ #: woolentor-blocks/includes/classes/Blocks_init.php:86
999
  msgid "Category Grid"
1000
  msgstr ""
1001
 
1007
  msgid "Category List"
1008
  msgstr ""
1009
 
1010
+ #: classes/class.default_data.php:352 classes/class.default_data.php:400
1011
+ #: includes/addons/wb_product_categories.php:179
1012
  msgid "Category:"
1013
  msgid_plural "Categories:"
1014
  msgstr[0] ""
1048
  msgid "Choose a Payment Gateway"
1049
  msgstr ""
1050
 
1051
+ #: includes/modules/variation-swatch/includes/Admin.php:51
1052
+ msgid "Choose an image"
1053
+ msgstr ""
1054
+
1055
  #: includes/addons/wl_brand.php:84
1056
+ #: includes/admin/include/admin_field-manager.php:289
1057
  msgid "Choose Image"
1058
  msgstr ""
1059
 
1060
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:191
1061
+ msgid "Circle"
1062
+ msgstr ""
1063
+
1064
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:839
1065
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:954
1066
+ msgid "Clear"
1067
+ msgstr ""
1068
+
1069
  #: includes/addons/wl_testimonial.php:100
1070
  #: includes/addons/wb_customer_review.php:98
1071
  msgid "Client Rating"
1188
  #: includes/addons/product_tabs.php:282 includes/addons/product_tabs.php:361
1189
  #: includes/addons/product_tabs.php:649 includes/addons/product_tabs.php:764
1190
  #: includes/addons/product_tabs.php:1134 includes/addons/product_tabs.php:1194
1191
+ #: includes/addons/wb_product_add_to_cart.php:713
1192
+ #: includes/addons/wb_product_add_to_cart.php:735
1193
  #: includes/addons/wb_product_additional_information.php:76
1194
  #: includes/addons/wb_product_additional_information.php:124
1195
  #: includes/addons/add_banner.php:155 includes/addons/add_banner.php:197
1214
  msgid "Columns"
1215
  msgstr ""
1216
 
1217
+ #: includes/helper-function.php:1042 includes/addons/product_flash_sale.php:137
1218
  #: includes/addons/product_image_accordion.php:150
1219
  #: includes/addons/product_accordion.php:171
1220
  #: includes/addons/product_curvy.php:206 includes/addons/product_tabs.php:165
1221
  msgid "Comment count"
1222
  msgstr ""
1223
 
1224
+ #: includes/helper-function.php:1097
1225
+ #: woolentor-blocks/includes/helper-functions.php:496
1226
  #: includes/modules/compare/includes/classes/Admin/Dashboard.php:59
1227
  #: includes/modules/compare/includes/classes/Admin/Dashboard.php:60
1228
  msgid "Compare"
1229
  msgstr ""
1230
 
1231
+ #: includes/addons/wb_product_add_to_cart.php:527
1232
+ #: includes/addons/wb_product_add_to_cart.php:621
1233
+ msgid "Compare Background Color"
1234
+ msgstr ""
1235
+
1236
+ #: includes/addons/wb_product_add_to_cart.php:512
1237
+ #: includes/addons/wb_product_add_to_cart.php:606
1238
+ msgid "Compare Icon Color"
1239
+ msgstr ""
1240
+
1241
  #: includes/modules/shopify-like-checkout/templates/form-checkout.php:53
1242
  msgid "Contact information"
1243
  msgstr ""
1244
 
1245
+ #: includes/admin/include/class.template_cpt.php:107
1246
+ msgid "Container Width"
1247
+ msgstr ""
1248
+
1249
  #: includes/addons/wl_faq.php:45 includes/addons/wl_faq.php:82
1250
  #: includes/addons/wl_faq.php:544 includes/addons/wl_onepage_slider.php:66
1251
  #: includes/addons/wb_product_data_tab.php:212
1379
  msgid "Create an account?"
1380
  msgstr ""
1381
 
1382
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:144
1383
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:197
1384
+ msgid "CSS can not saved permission need"
1385
+ msgstr ""
1386
+
1387
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:297
1388
+ msgid "CSS file can not build permission need"
1389
+ msgstr ""
1390
+
1391
  #: includes/addons/wl_faq.php:58 includes/addons/wl_testimonial.php:71
1392
  #: includes/addons/wb_customer_review.php:69
1393
  msgid "Custom"
1424
  msgid "Customer Review"
1425
  msgstr ""
1426
 
1427
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:203
1428
+ msgid "Data fetch"
1429
+ msgstr ""
1430
+
1431
+ #: includes/admin/admin-init.php:333
1432
  msgid "Data Fetch successfully!"
1433
  msgstr ""
1434
 
1435
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:103
1436
+ msgid "Data not found!!"
1437
+ msgstr ""
1438
+
1439
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:210
1440
+ msgid "Data not found."
1441
+ msgstr ""
1442
+
1443
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:98
1444
+ msgid "Data retrive done"
1445
+ msgstr ""
1446
+
1447
+ #: includes/admin/admin-init.php:271
1448
  msgid "Data Saved successfully!"
1449
  msgstr ""
1450
 
1451
+ #: includes/helper-function.php:1039 includes/addons/product_flash_sale.php:134
1452
  #: includes/addons/wb_product_upsell.php:66
1453
  #: includes/addons/wb_archive_product.php:127
1454
  #: includes/addons/product_image_accordion.php:147
1466
  msgstr ""
1467
 
1468
  #: includes/addons/wl_brand.php:62
1469
+ #: includes/addons/wb_product_add_to_cart.php:59
1470
+ #: includes/admin/include/class.template-manager.php:92
1471
  msgid "Default"
1472
  msgstr ""
1473
 
1474
+ #: includes/helper-function.php:835
1475
  msgid "Default sorting"
1476
  msgstr ""
1477
 
1508
  msgid "Description Color"
1509
  msgstr ""
1510
 
 
 
 
 
1511
  #: includes/addons/wl_testimonial.php:91 includes/addons/wl_testimonial.php:633
1512
  #: includes/addons/wb_customer_review.php:89
1513
  #: includes/addons/wb_customer_review.php:449
1523
  msgid "Developer"
1524
  msgstr ""
1525
 
1526
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:205
1527
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:220
1528
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:330
1529
+ msgid "Disable"
1530
+ msgstr ""
1531
+
1532
  #: includes/admin/templates/dashboard-element.php:20
1533
+ #: includes/admin/templates/dashboard-gutenberg.php:43
1534
  #: includes/admin/templates/dashboard-module.php:22
1535
  msgid "Disable all"
1536
  msgstr ""
1537
 
1538
+ #: includes/helper-function.php:610
1539
  msgid "div"
1540
  msgstr ""
1541
 
1543
  msgid "Do you want to individual icon ?"
1544
  msgstr ""
1545
 
1546
+ #: includes/admin/include/admin_field-manager.php:351
1547
  #: includes/admin/include/admin_field-manager.php:470
1548
  #: includes/admin/templates/dashboard-welcome.php:19
1549
  msgid "Documentation"
1554
  msgstr ""
1555
 
1556
  #: includes/admin/include/template-library.php:118
1557
+ #: includes/admin/include/class.template_cpt.php:36
1558
  msgid "Edit Template"
1559
  msgstr ""
1560
 
1561
+ #: includes/admin/include/class.template-manager.php:462
1562
  msgid "Edit With Elementor"
1563
  msgstr ""
1564
 
1565
+ #: includes/admin/include/class.template-manager.php:205
1566
+ #: includes/admin/include/class.template-manager.php:466
1567
  msgid "Edit With Gutenberg"
1568
  msgstr ""
1569
 
1578
  msgid "Element Information"
1579
  msgstr ""
1580
 
1581
+ #: includes/admin/include/class.template-manager.php:444
1582
+ #: includes/admin/include/class.template-manager.php:478
1583
  #: includes/admin/include/template-library/templates_list.php:19
1584
  msgid "Elementor"
1585
  msgstr ""
1588
  msgid "Elementor Template"
1589
  msgstr ""
1590
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1591
  #: includes/addons/wb_product_suggest_price.php:130
1592
  msgid "Email Field Placeholder"
1593
  msgstr ""
1612
  msgid "Empty table text"
1613
  msgstr ""
1614
 
1615
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:204
1616
+ msgid "Enable"
1617
+ msgstr ""
1618
+
1619
  #: includes/addons/wb_product_qr_code.php:62
1620
  msgid "Enable Add to Cart URL"
1621
  msgstr ""
1622
 
1623
  #: includes/admin/templates/dashboard-element.php:19
1624
+ #: includes/admin/templates/dashboard-gutenberg.php:42
1625
  #: includes/admin/templates/dashboard-module.php:21
1626
  msgid "Enable all"
1627
  msgstr ""
1628
 
1629
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:120
1630
+ msgid "Enable Image Type Attribute For"
1631
+ msgstr ""
1632
+
1633
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:383
1634
+ msgid "Enable Multi Color"
1635
+ msgstr ""
1636
+
1637
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:199
1638
+ msgid "Enable Shape Inset"
1639
+ msgstr ""
1640
+
1641
  #: includes/modules/shopify-like-checkout/templates/cart-shipping.php:57
1642
  msgid "Enter a different address"
1643
  msgstr ""
1644
 
1645
+ #: includes/admin/include/class.template-manager.php:453
1646
  msgid "Enter a template name"
1647
  msgstr ""
1648
 
1679
  msgid "Extra Option"
1680
  msgstr ""
1681
 
1682
+ #: woolentor-blocks/includes/classes/Blocks_init.php:116
1683
+ msgid "FAQ"
1684
+ msgstr ""
1685
+
1686
  #: classes/class.widgets_control.php:248
1687
  msgid "Faq"
1688
  msgstr ""
1691
  msgid "FAQ Title"
1692
  msgstr ""
1693
 
1694
+ #: includes/helper-function.php:1044
1695
  msgid "Featured"
1696
  msgstr ""
1697
 
1698
+ #: includes/admin/include/class.template_cpt.php:43
1699
  msgid "Featured Image"
1700
  msgstr ""
1701
 
1726
  msgid "Filter By"
1727
  msgstr ""
1728
 
1729
+ #: includes/admin/include/class.template_cpt.php:51
1730
  msgid "Filter from list"
1731
  msgstr ""
1732
 
1789
  msgid "Free"
1790
  msgstr ""
1791
 
1792
+ #: includes/admin/include/class.extension-manager.php:135
1793
  msgid "Free extension"
1794
  msgstr ""
1795
 
1834
  msgid "Gradient Color"
1835
  msgstr ""
1836
 
1837
+ #: includes/admin/include/class.template-manager.php:445
1838
+ msgid "Gutenberg"
1839
+ msgstr ""
1840
+
1841
+ #: includes/helper-function.php:603
1842
  msgid "H1"
1843
  msgstr ""
1844
 
1845
+ #: includes/helper-function.php:604
1846
  msgid "H2"
1847
  msgstr ""
1848
 
1849
+ #: includes/helper-function.php:605
1850
  msgid "H3"
1851
  msgstr ""
1852
 
1853
+ #: includes/helper-function.php:606
1854
  msgid "H4"
1855
  msgstr ""
1856
 
1857
+ #: includes/helper-function.php:607
1858
  msgid "H5"
1859
  msgstr ""
1860
 
1861
+ #: includes/helper-function.php:608
1862
  msgid "H6"
1863
  msgstr ""
1864
 
1929
  msgid "Here"
1930
  msgstr ""
1931
 
1932
+ #: includes/helper-function.php:966 includes/helper-function.php:984
1933
  msgid "here"
1934
  msgstr ""
1935
 
1949
  msgid "Hide Category"
1950
  msgstr ""
1951
 
1952
+ #: includes/addons/wb_product_add_to_cart.php:430
1953
+ #: includes/addons/wb_product_add_to_cart.php:692
1954
+ msgid "Hide Compare"
1955
+ msgstr ""
1956
+
1957
  #: includes/addons/product_accordion.php:276
1958
  #: includes/addons/product_curvy.php:289
1959
  msgid "Hide Content"
1978
  msgid "Hide Title"
1979
  msgstr ""
1980
 
1981
+ #: includes/addons/wb_product_add_to_cart.php:420
1982
+ #: includes/addons/wb_product_add_to_cart.php:682
1983
+ msgid "Hide Wishlist"
1984
+ msgstr ""
1985
+
1986
  #: includes/addons/wl_product_filter.php:103
1987
  msgid "Hierarchical"
1988
  msgstr ""
2027
  #: includes/addons/wb_wishsuite_table.php:411
2028
  #: includes/addons/product_tabs.php:353 includes/addons/product_tabs.php:748
2029
  #: includes/addons/product_tabs.php:1066 includes/addons/product_tabs.php:1188
2030
+ #: includes/addons/wb_product_add_to_cart.php:239
2031
+ #: includes/addons/wb_product_add_to_cart.php:569
2032
+ #: includes/addons/wb_product_add_to_cart.php:728
2033
+ #: includes/addons/wb_product_add_to_cart.php:924
2034
  #: includes/addons/wl_category_grid.php:827
2035
  msgid "Hover"
2036
  msgstr ""
2132
  msgid "Icon Width"
2133
  msgstr ""
2134
 
2135
+ #: includes/helper-function.php:1038 includes/addons/product_flash_sale.php:133
2136
  #: includes/addons/product_image_accordion.php:146
2137
  #: includes/addons/product_accordion.php:167
2138
  #: includes/addons/product_curvy.php:202 includes/addons/product_tabs.php:161
2179
  #: includes/addons/wb_customer_review.php:109
2180
  #: includes/addons/wb_customer_review.php:361
2181
  #: includes/addons/wl_category_grid.php:483
2182
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:219
2183
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:329
2184
  msgid "Image"
2185
  msgstr ""
2186
 
2189
  msgstr ""
2190
 
2191
  #: classes/class.widgets_control.php:240
2192
+ #: woolentor-blocks/includes/classes/Blocks_init.php:91
2193
  msgid "Image Marker"
2194
  msgstr ""
2195
 
2197
  msgid "Image/Icon"
2198
  msgstr ""
2199
 
2200
+ #: classes/class.assest_management.php:363
2201
  msgid "Import"
2202
  msgstr ""
2203
 
2204
+ #: includes/admin/include/class.template-manager.php:388
2205
  msgid "Import Previously Assigned Templates"
2206
  msgstr ""
2207
 
2209
  msgid "Import template to your Library"
2210
  msgstr ""
2211
 
2212
+ #: classes/class.assest_management.php:361
2213
  msgid "Import to Library"
2214
  msgstr ""
2215
 
2216
+ #: classes/class.assest_management.php:362
2217
  msgid "Import to Page"
2218
  msgstr ""
2219
 
2220
+ #: classes/class.assest_management.php:356
2221
  msgid "in this package"
2222
  msgstr ""
2223
 
2225
  msgid "Information"
2226
  msgstr ""
2227
 
2228
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:165
2229
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:300
2230
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:327
2231
+ msgid "Inherit"
2232
+ msgstr ""
2233
+
2234
  #: includes/custom-metabox.php:45
2235
  msgid "Initial number in stock"
2236
  msgstr ""
2248
  msgid "Input Field Placeholder"
2249
  msgstr ""
2250
 
2251
+ #: includes/admin/include/class.template_cpt.php:47
2252
  msgid "Insert into Template"
2253
  msgstr ""
2254
 
2258
 
2259
  #: includes/admin/include/template-library.php:168
2260
  #: includes/admin/include/template-library.php:220
2261
+ #: includes/admin/include/class.extension-manager.php:164
2262
+ #: includes/admin/include/class.extension-manager.php:231
2263
  msgid "Install Now"
2264
  msgstr ""
2265
 
2267
  msgid "Install WooCommerce"
2268
  msgstr ""
2269
 
2270
+ #: classes/class.assest_management.php:366
2271
  msgid "Installing.."
2272
  msgstr ""
2273
 
2274
+ #: includes/admin/include/class.template-manager.php:488
2275
  msgid ""
2276
  "It will import those templates that were created from the \"Templates\" menu "
2277
  "of Elementor and assigned to corresponding WooCommerce pages."
2309
  msgid "JustTable"
2310
  msgstr ""
2311
 
2312
+ #: includes/admin/include/class.extension-manager.php:71
2313
  msgid "JustTables"
2314
  msgstr ""
2315
 
2316
+ #: includes/admin/include/class.extension-manager.php:89
2317
  msgid ""
2318
  "JustTables is an incredible WordPress plugin that lets you showcase all your "
2319
  "WooCommerce products in a sortable and filterable table view. It allows your "
2323
  "sale on your online store."
2324
  msgstr ""
2325
 
2326
+ #: includes/admin/include/class.extension-manager.php:86
2327
  msgid "JustTables Pro"
2328
  msgstr ""
2329
 
2347
  msgstr ""
2348
 
2349
  #: includes/addons/wl_store_features.php:48
2350
+ #: includes/addons/wb_product_add_to_cart.php:47
2351
+ #: includes/addons/wb_product_add_to_cart.php:55
2352
  msgid "Layout"
2353
  msgstr ""
2354
 
2357
  msgstr ""
2358
 
2359
  #: includes/addons/wl_store_features.php:55
2360
+ #: includes/addons/wb_product_add_to_cart.php:63
2361
  msgid "Layout Four"
2362
  msgstr ""
2363
 
2364
  #: includes/addons/wl_store_features.php:52
2365
+ #: includes/addons/wb_product_add_to_cart.php:60
2366
  msgid "Layout One"
2367
  msgstr ""
2368
 
2372
  msgstr ""
2373
 
2374
  #: includes/addons/wl_store_features.php:54
2375
+ #: includes/addons/wb_product_add_to_cart.php:62
2376
  msgid "Layout Three"
2377
  msgstr ""
2378
 
2379
  #: includes/addons/wl_store_features.php:53
2380
+ #: includes/addons/wb_product_add_to_cart.php:61
2381
  msgid "Layout Two"
2382
  msgstr ""
2383
 
2530
  #: includes/addons/product_curvy.php:711
2531
  #: includes/addons/wl_product_video_gallery.php:148
2532
  #: includes/addons/wl_brand.php:282
2533
+ #: includes/addons/wb_product_categories.php:151
2534
  #: includes/addons/wb_product_suggest_price.php:245
2535
  #: includes/addons/wb_product_suggest_price.php:344
2536
  #: includes/addons/wb_product_suggest_price.php:442
2539
  #: includes/addons/wb_product_rating.php:84
2540
  #: includes/addons/wb_product_title.php:90
2541
  #: includes/addons/wl_product_filter.php:195
2542
+ #: includes/addons/wb_product_sku.php:139
2543
  #: includes/addons/wb_image_marker.php:350
2544
  #: includes/addons/wb_image_marker.php:392
2545
  #: includes/addons/wb_customer_review.php:420
2549
  #: includes/addons/wl_recently_viewed_products.php:336
2550
  #: includes/addons/wl_recently_viewed_products.php:380
2551
  #: includes/addons/wl_recently_viewed_products.php:709
2552
+ #: includes/addons/wb_product_add_to_cart.php:878
2553
  #: includes/addons/wb_product_additional_information.php:102
2554
  #: includes/addons/add_banner.php:167 includes/addons/add_banner.php:218
2555
  #: includes/addons/wl_category_grid.php:504
2556
  #: includes/addons/wl_category_grid.php:598
2557
+ #: includes/addons/wb_product_tags.php:151
2558
  msgid "Margin"
2559
  msgstr ""
2560
 
2619
  msgid "Min price"
2620
  msgstr ""
2621
 
2622
+ #: includes/addons/wb_product_add_to_cart.php:113
2623
+ msgid "Minus Icon"
2624
+ msgstr ""
2625
+
2626
+ #: includes/addons/wb_product_add_to_cart.php:148
2627
+ #: includes/addons/wb_product_add_to_cart.php:246
2628
+ msgid "Minus Icon Color"
2629
+ msgstr ""
2630
+
2631
  #: includes/addons/product_flash_sale.php:291
2632
  #: includes/addons/product_flash_sale.php:293
2633
  msgid "Minutes"
2651
  msgid "Mobile Resolution"
2652
  msgstr ""
2653
 
2654
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:732
2655
+ msgid "More"
2656
+ msgstr ""
2657
+
2658
+ #: includes/admin/include/class.extension-manager.php:186
2659
+ #: includes/admin/include/class.extension-manager.php:254
2660
  msgid "More Details"
2661
  msgstr ""
2662
 
2663
+ #: includes/admin/include/class.extension-manager.php:76
2664
  msgid "Multi Currency"
2665
  msgstr ""
2666
 
2667
+ #: includes/admin/include/class.extension-manager.php:104
2668
  msgid "Multi Currency Pro for WooCommerce"
2669
  msgstr ""
2670
 
2671
+ #: includes/admin/include/class.extension-manager.php:107
2672
  msgid ""
2673
  "Multi-Currency Pro for WooCommerce is a prominent currency switcher plugin "
2674
  "for WooCommerce. This plugin allows your website or online store visitors to "
2683
  msgid "Multiple Categories"
2684
  msgstr ""
2685
 
2686
+ #: classes/class.default_data.php:348 classes/class.default_data.php:370
2687
+ #: includes/addons/wb_product_sku.php:168
2688
  msgid "N/A"
2689
  msgstr ""
2690
 
2691
+ #: includes/helper-function.php:1040 includes/addons/product_flash_sale.php:135
2692
  #: includes/addons/wl_testimonial.php:82 includes/addons/wl_testimonial.php:576
2693
  #: includes/addons/product_image_accordion.php:148
2694
  #: includes/addons/product_accordion.php:169
2696
  #: includes/addons/wb_customer_review.php:80
2697
  #: includes/addons/wb_customer_review.php:392
2698
  #: includes/addons/product_tabs.php:163
2699
+ #: includes/admin/include/class.template-manager.php:452
2700
  msgid "Name"
2701
  msgstr ""
2702
 
2726
  msgid "New"
2727
  msgstr ""
2728
 
2729
+ #: includes/admin/include/class.template_cpt.php:35
2730
  msgid "New Template"
2731
  msgstr ""
2732
 
2737
  msgid "Nine"
2738
  msgstr ""
2739
 
2740
+ #: includes/admin/include/class.template-manager.php:132
2741
  msgid "NO"
2742
  msgstr ""
2743
 
2758
  msgid "No Gutters"
2759
  msgstr ""
2760
 
2761
+ #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:435
2762
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:118
2763
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:140
2764
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:169
2765
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:327
2766
  msgid "No naughty business please!"
2767
  msgstr ""
2768
 
2769
+ #: includes/addons/wb_archive_product.php:951
2770
+ #: woolentor-blocks/build/blocks/shop-archive-default/index.php:111
2771
+ #: woolentor-blocks/src/blocks/shop-archive-default/index.php:111
2772
  msgid "No products were found matching your selection."
2773
  msgstr ""
2774
 
2775
+ #: classes/class.default_data.php:290
2776
  msgid "No Rating Available"
2777
  msgstr ""
2778
 
2779
+ #: classes/class.default_data.php:517
2780
  msgid "No related products are available."
2781
  msgstr ""
2782
 
2784
  msgid "No Results Found"
2785
  msgstr ""
2786
 
2787
+ #: includes/helper-function.php:424
2788
  msgid "No saved templates found."
2789
  msgstr ""
2790
 
2794
  msgid "No shipping options were found for %s."
2795
  msgstr ""
2796
 
2797
+ #: classes/class.default_data.php:488
2798
  msgid "No upsell products are available."
2799
  msgstr ""
2800
 
2801
+ #: includes/admin/include/class.template-manager.php:512
2802
+ #: includes/admin/include/class.template-manager.php:658
2803
+ #: includes/admin/include/class.template-manager.php:696
2804
+ #: includes/admin/include/class.template-manager.php:745
2805
  msgid "Nonce Varification Faild !"
2806
  msgstr ""
2807
 
2808
+ #: includes/helper-function.php:1037 includes/addons/product_flash_sale.php:132
2809
  #: includes/addons/product_image_accordion.php:145
2810
  #: includes/addons/product_accordion.php:166
2811
  #: includes/addons/product_curvy.php:201
2840
  #: includes/addons/wb_wishsuite_table.php:379
2841
  #: includes/addons/product_tabs.php:267 includes/addons/product_tabs.php:634
2842
  #: includes/addons/product_tabs.php:870 includes/addons/product_tabs.php:1127
2843
+ #: includes/addons/wb_product_add_to_cart.php:141
2844
+ #: includes/addons/wb_product_add_to_cart.php:475
2845
+ #: includes/addons/wb_product_add_to_cart.php:706
2846
+ #: includes/addons/wb_product_add_to_cart.php:839
2847
  #: includes/addons/wl_category_grid.php:670
2848
  msgid "Normal"
2849
  msgstr ""
2850
 
2851
+ #: includes/admin/include/class.template_cpt.php:41
2852
  msgid "Not found"
2853
  msgstr ""
2854
 
2855
+ #: includes/admin/include/class.template_cpt.php:42
2856
  msgid "Not found in Trash"
2857
  msgstr ""
2858
 
2859
+ #: classes/class.assest_management.php:358
2860
  msgid "Nothing Found"
2861
  msgstr ""
2862
 
2907
  msgid "One Page Slider"
2908
  msgstr ""
2909
 
2910
+ #: includes/addons/wb_product_add_to_cart.php:442
2911
+ msgid "Only for wishlist and compare button."
2912
+ msgstr ""
2913
+
2914
  #: includes/addons/wb_image_marker.php:60
2915
  msgid "Opacity Color"
2916
  msgstr ""
2984
  "the pro version."
2985
  msgstr ""
2986
 
2987
+ #: includes/helper-function.php:758 includes/helper-function.php:806
2988
  msgid "Out of stock"
2989
  msgstr ""
2990
 
2992
  msgid "Out of Stock Badge Color"
2993
  msgstr ""
2994
 
2995
+ #: includes/helper-function.php:609
2996
  msgid "p"
2997
  msgstr ""
2998
 
3049
  #: includes/addons/wl_recently_viewed_products.php:697
3050
  #: includes/addons/wb_wishsuite_table.php:364
3051
  #: includes/addons/product_tabs.php:693
3052
+ #: includes/addons/wb_product_add_to_cart.php:361
3053
+ #: includes/addons/wb_product_add_to_cart.php:866
3054
  #: includes/addons/wl_category_grid.php:449
3055
  #: includes/addons/wl_category_grid.php:750
3056
  msgid "Padding"
3062
  msgid "Pagination"
3063
  msgstr ""
3064
 
3065
+ #: includes/admin/include/class.template_cpt.php:31
3066
  msgid "Parent Item:"
3067
  msgstr ""
3068
 
3092
  msgid "Place order"
3093
  msgstr ""
3094
 
3095
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:131
3096
+ msgid ""
3097
+ "Place the image size name here. WordPress default image sizes are: thumbnail,"
3098
+ " medium, medium_large, large and full. Custom image size also can be used. "
3099
+ "Default is: thumbnail"
3100
+ msgstr ""
3101
+
3102
  #: includes/admin/include/template-library/popup-template.php:26
3103
  msgctxt "placeholder"
3104
  msgid "Enter a Page Name"
3140
  msgid "Please Select Filter Type"
3141
  msgstr ""
3142
 
3143
+ #: includes/modules/variation-swatch/includes/Frontend.php:132
3144
+ msgid ""
3145
+ "Please select some product options before adding this product to your cart."
3146
+ msgstr ""
3147
+
3148
  #: includes/admin/include/template-library.php:256
3149
  msgid "Plugin Not Found"
3150
  msgstr ""
3153
  msgid "Plugin Successfully Activated"
3154
  msgstr ""
3155
 
3156
+ #: includes/addons/wb_product_add_to_cart.php:98
3157
+ msgid "Plus Icon"
3158
+ msgstr ""
3159
+
3160
+ #: includes/addons/wb_product_add_to_cart.php:167
3161
+ #: includes/addons/wb_product_add_to_cart.php:264
3162
+ msgid "Plus Icon Color"
3163
+ msgstr ""
3164
+
3165
  #: includes/addons/wb_product_upsell.php:69
3166
  #: includes/addons/wb_archive_product.php:130
3167
  #: includes/addons/wb_product_related.php:84
3173
  #: includes/addons/wl_testimonial.php:906
3174
  #: includes/addons/wb_archive_product.php:895
3175
  #: includes/addons/wl_recently_viewed_products.php:546
3176
+ #: includes/addons/wb_product_add_to_cart.php:440
3177
  #: includes/addons/wl_category_grid.php:685
3178
  #: includes/addons/wl_category_grid.php:770
3179
  msgid "Position"
3180
  msgstr ""
3181
 
3182
+ #: includes/admin/include/class.template-manager.php:546
3183
  msgid "Post request dose not found"
3184
  msgstr ""
3185
 
3186
+ #: includes/admin/include/class.template_cpt.php:25
3187
  msgctxt "Post Type General Name"
3188
  msgid "Template Builder"
3189
  msgstr ""
3190
 
3191
+ #: includes/admin/include/class.template_cpt.php:26
3192
  msgctxt "Post Type Singular Name"
3193
  msgid "Template Builder"
3194
  msgstr ""
3195
 
3196
+ #: classes/class.assest_management.php:365
3197
+ #: includes/admin/include/admin_field-manager.php:350
3198
  #: includes/admin/include/admin_field-manager.php:469
3199
  msgid "Preview"
3200
  msgstr ""
3225
  msgid "Price color"
3226
  msgstr ""
3227
 
3228
+ #: classes/class.default_data.php:239
3229
  msgid "Price does not set this product."
3230
  msgstr ""
3231
 
3250
  msgid "Pricing"
3251
  msgstr ""
3252
 
3253
+ #: classes/class.assest_management.php:353
3254
+ #: includes/admin/include/class.template-manager.php:479
3255
+ #: includes/admin/include/admin_field-manager.php:131
3256
+ #: includes/admin/include/admin_field-manager.php:333
3257
  #: includes/admin/include/admin_field-manager.php:450
3258
  #: includes/admin/include/template-library/templates_list.php:31
3259
  msgid "Pro"
3260
  msgstr ""
3261
 
3262
+ #: includes/admin/include/class.extension-manager.php:136
3263
  msgid "Pro extension"
3264
  msgstr ""
3265
 
3268
  msgstr ""
3269
 
3270
  #: classes/class.widgets_control.php:333
3271
+ #: woolentor-blocks/includes/classes/Blocks_init.php:158
3272
  msgid "Product Add To Cart"
3273
  msgstr ""
3274
 
3275
+ #: includes/helper-function.php:1082
3276
+ #: woolentor-blocks/includes/helper-functions.php:481
3277
  msgid "Product Added"
3278
  msgstr ""
3279
 
3280
  #: classes/class.widgets_control.php:337
3281
+ #: woolentor-blocks/includes/classes/Blocks_init.php:188
3282
  msgid "Product Additional Info"
3283
  msgstr ""
3284
 
3301
  msgid "Product Category"
3302
  msgstr ""
3303
 
3304
+ #: classes/class.default_data.php:405
3305
  msgid "Product category does not exists."
3306
  msgstr ""
3307
 
3328
  msgstr ""
3329
 
3330
  #: classes/class.widgets_control.php:260
3331
+ #: woolentor-blocks/includes/classes/Blocks_init.php:121
3332
  msgid "Product Curvy"
3333
  msgstr ""
3334
 
3337
  msgstr ""
3338
 
3339
  #: classes/class.widgets_control.php:345
3340
+ #: woolentor-blocks/includes/classes/Blocks_init.php:168
3341
  msgid "Product Description"
3342
  msgstr ""
3343
 
3356
  msgstr ""
3357
 
3358
  #: classes/class.widgets_control.php:365
3359
+ #: woolentor-blocks/includes/classes/Blocks_init.php:178
3360
  msgid "Product Image"
3361
  msgstr ""
3362
 
3386
  msgstr ""
3387
 
3388
  #: classes/class.widgets_control.php:381
3389
+ #: woolentor-blocks/includes/classes/Blocks_init.php:183
3390
  msgid "Product Meta"
3391
  msgstr ""
3392
 
3400
  msgid "Product Per Page"
3401
  msgstr ""
3402
 
3403
+ #: classes/class.widgets_control.php:353 includes/helper-function.php:1045
3404
  #: includes/addons/product_flash_sale.php:466
3405
  #: includes/addons/product_image_accordion.php:411
3406
  #: includes/addons/product_accordion.php:490
3407
  #: includes/addons/product_curvy.php:482 includes/addons/product_tabs.php:1003
3408
+ #: woolentor-blocks/includes/classes/Blocks_init.php:153
3409
  msgid "Product Price"
3410
  msgstr ""
3411
 
3412
  #: classes/class.widgets_control.php:397
3413
+ #: woolentor-blocks/includes/classes/Blocks_init.php:203
3414
  msgid "Product QR Code"
3415
  msgstr ""
3416
 
3418
  #: includes/addons/product_image_accordion.php:474
3419
  #: includes/addons/product_accordion.php:553
3420
  #: includes/addons/product_curvy.php:643
3421
+ #: woolentor-blocks/includes/classes/Blocks_init.php:173
3422
  msgid "Product Rating"
3423
  msgstr ""
3424
 
3426
  msgid "Product rating"
3427
  msgstr ""
3428
 
3429
+ #: woolentor-blocks/includes/classes/Blocks_init.php:208
3430
+ msgid "Product Related"
3431
+ msgstr ""
3432
+
3433
  #: includes/addons/wb_product_reviews.php:43
3434
  msgid "Product Reviews"
3435
  msgstr ""
3442
  msgid "Product Settings"
3443
  msgstr ""
3444
 
3445
+ #: woolentor-blocks/includes/classes/Blocks_init.php:163
3446
+ msgid "Product Short Description"
3447
+ msgstr ""
3448
+
3449
  #: classes/class.widgets_control.php:349
3450
  msgid "Product short description"
3451
  msgstr ""
3459
  msgstr ""
3460
 
3461
  #: classes/class.widgets_control.php:377
3462
+ #: woolentor-blocks/includes/classes/Blocks_init.php:198
3463
  msgid "Product Stock"
3464
  msgstr ""
3465
 
3475
  msgid "Product Tab"
3476
  msgstr ""
3477
 
3478
+ #: woolentor-blocks/includes/classes/Blocks_init.php:106
3479
+ msgid "Product tab"
3480
+ msgstr ""
3481
+
3482
  #: includes/addons/product_tabs.php:294 includes/addons/product_tabs.php:374
3483
  msgid "Product tab menu background"
3484
  msgstr ""
3485
 
3486
  #: classes/class.widgets_control.php:228
3487
+ #: woolentor-blocks/includes/classes/Blocks_init.php:193
3488
  msgid "Product Tabs"
3489
  msgstr ""
3490
 
3492
  msgid "Product Tags"
3493
  msgstr ""
3494
 
3495
+ #: classes/class.default_data.php:388
3496
  msgid "Product tags does not exists."
3497
  msgstr ""
3498
 
3502
  #: includes/addons/product_curvy.php:410
3503
  #: includes/addons/wb_product_title.php:43
3504
  #: includes/addons/wb_product_title.php:62
3505
+ #: woolentor-blocks/includes/classes/Blocks_init.php:148
3506
  msgid "Product Title"
3507
  msgstr ""
3508
 
3509
  #: classes/class.widgets_control.php:373
3510
+ #: woolentor-blocks/includes/classes/Blocks_init.php:213
3511
  msgid "Product Upsell"
3512
  msgstr ""
3513
 
3531
  msgid "Products reviews"
3532
  msgstr ""
3533
 
3534
+ #: includes/base.php:243 woolentor-blocks/includes/classes/Blocks_init.php:111
3535
+ #: includes/admin/templates/dashboard-sidebar.php:12
3536
  msgid "Promo Banner"
3537
  msgstr ""
3538
 
3546
 
3547
  #: includes/addons/wb_product_qr_code.php:72
3548
  #: includes/addons/wb_wishsuite_table.php:205
3549
+ #: includes/addons/wb_product_add_to_cart.php:129
3550
  msgid "Quantity"
3551
  msgstr ""
3552
 
3553
+ #: includes/addons/wb_product_add_to_cart.php:201
3554
+ #: includes/addons/wb_product_add_to_cart.php:318
3555
+ msgid "Quantity Backgeound"
3556
+ msgstr ""
3557
+
3558
+ #: includes/addons/wb_product_add_to_cart.php:336
3559
+ msgid "Quantity Border"
3560
+ msgstr ""
3561
+
3562
+ #: includes/addons/wb_product_add_to_cart.php:186
3563
+ #: includes/addons/wb_product_add_to_cart.php:282
3564
+ msgid "Quantity Number"
3565
+ msgstr ""
3566
+
3567
+ #: includes/addons/wb_product_add_to_cart.php:81
3568
+ msgid "Quantity Text"
3569
+ msgstr ""
3570
+
3571
  #: includes/addons/product_image_accordion.php:55
3572
  #: includes/addons/product_accordion.php:76
3573
  #: includes/addons/product_curvy.php:111
3574
  msgid "Query Settings"
3575
  msgstr ""
3576
 
3577
+ #: woolentor-blocks/includes/templates/product-universal.php:160
3578
+ #: woolentor-blocks/includes/templates/product-universal.php:207
3579
+ #: woolentor-blocks/build/blocks/universal-product/old_index.php:414
3580
+ #: woolentor-blocks/build/blocks/universal-product/old_index.php:461
3581
+ #: woolentor-blocks/src/blocks/universal-product/old_index.php:414
3582
+ #: woolentor-blocks/src/blocks/universal-product/old_index.php:461
3583
+ msgid "Quick View"
3584
+ msgstr ""
3585
+
3586
+ #: includes/addons/wb_product_add_to_cart.php:215
3587
+ #: includes/addons/wb_product_add_to_cart.php:297
3588
+ msgid "Qunantity Text Color"
3589
+ msgstr ""
3590
+
3591
+ #: includes/helper-function.php:1043 includes/addons/product_flash_sale.php:138
3592
  #: includes/addons/wb_product_upsell.php:71
3593
  #: includes/addons/wb_archive_product.php:132
3594
  #: includes/addons/product_image_accordion.php:151
3623
  msgid "Rating Color"
3624
  msgstr ""
3625
 
3626
+ #: classes/class.default_data.php:272
3627
+ msgid "Rating does not enable."
3628
  msgstr ""
3629
 
3630
  #: includes/admin/templates/dashboard-sidebar.php:38
3670
  msgid "Remember me"
3671
  msgstr ""
3672
 
3673
+ #: includes/admin/include/class.template_cpt.php:45
3674
  msgid "Remove featured image"
3675
  msgstr ""
3676
 
3678
  msgid "Remove Icon"
3679
  msgstr ""
3680
 
3681
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:248
3682
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:358
3683
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:408
3684
+ msgid "Remove image"
3685
+ msgstr ""
3686
+
3687
  #: includes/admin/templates/dashboard-welcome.php:54
3688
  msgid "Request"
3689
  msgstr ""
3692
  msgid "Required for stock progress bar"
3693
  msgstr ""
3694
 
3695
+ #: classes/class.assest_management.php:336
3696
  msgid "Reset All Settings"
3697
  msgstr ""
3698
 
3699
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:182
3700
+ msgid "Reset Done!"
3701
+ msgstr ""
3702
+
3703
  #: includes/admin/templates/dashboard-module-setting-popup.php:18
3704
  msgid "Reset To Default"
3705
  msgstr ""
3706
 
3707
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:63
3708
+ msgid "Reset to Default"
3709
+ msgstr ""
3710
+
3711
+ #: classes/class.assest_management.php:335
3712
  msgid "Resetting..."
3713
  msgstr ""
3714
 
3769
  msgid "Right"
3770
  msgstr ""
3771
 
3772
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:190
3773
+ msgid "Rounded"
3774
+ msgstr ""
3775
+
3776
  #: includes/addons/wb_archive_product.php:75
3777
  #: includes/addons/product_tabs.php:112
3778
  msgid "Rows"
3811
  msgid "Sale Tag"
3812
  msgstr ""
3813
 
3814
+ #: includes/helper-function.php:755 includes/helper-function.php:801
3815
  msgid "Sale!"
3816
  msgstr ""
3817
 
3818
+ #: includes/admin/include/class.template-manager.php:477
3819
  msgid "Sample Design"
3820
  msgstr ""
3821
 
3822
+ #: classes/class.assest_management.php:329
3823
  #: includes/admin/templates/dashboard-element.php:39
3824
  #: includes/admin/templates/dashboard-style.php:26
3825
+ #: includes/admin/templates/dashboard-gutenberg.php:60
3826
  #: includes/admin/templates/dashboard-settings.php:18
3827
  #: includes/admin/templates/dashboard-module-setting-popup.php:20
3828
+ #: includes/admin/templates/dashboard-module.php:50
3829
  msgid "Save Changes"
3830
  msgstr ""
3831
 
3832
+ #: includes/admin/include/class.template-manager.php:470
3833
  msgid "Save Settings"
3834
  msgstr ""
3835
 
3836
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:62
3837
+ msgid "Save Swatches"
3838
+ msgstr ""
3839
+
3840
+ #: classes/class.assest_management.php:331
3841
  msgid "Saved All Data"
3842
  msgstr ""
3843
 
3844
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:157
3845
+ msgid "Saved!"
3846
+ msgstr ""
3847
+
3848
+ #: classes/class.assest_management.php:330
3849
+ #: includes/admin/include/class.template-manager.php:471
3850
+ #: includes/modules/variation-swatch/includes/Admin.php:50
3851
  msgid "Saving..."
3852
  msgstr ""
3853
 
3873
  msgid "Search Products..."
3874
  msgstr ""
3875
 
3876
+ #: includes/admin/include/class.template_cpt.php:40
3877
  msgid "Search Templates"
3878
  msgstr ""
3879
 
3891
  msgid "Seconds"
3892
  msgstr ""
3893
 
3894
+ #: includes/helper-function.php:401
3895
+ #: includes/modules/variation-swatch/includes/Admin/Woo_Config.php:30
3896
  msgid "Select"
3897
  msgstr ""
3898
 
3913
  msgid "Select Deal"
3914
  msgstr ""
3915
 
3916
+ #: includes/admin/include/class.template-manager.php:456
3917
+ msgid "Select Editor"
3918
+ msgstr ""
3919
+
3920
  #: includes/addons/wl_category.php:50 includes/addons/wl_brand.php:58
3921
  msgid "Select Layout"
3922
  msgstr ""
3935
  msgid "Select Table"
3936
  msgstr ""
3937
 
3938
+ #: includes/helper-function.php:426 includes/addons/wl_faq.php:97
3939
  msgid "Select Template"
3940
  msgstr ""
3941
 
3951
  msgid "Separator Icon"
3952
  msgstr ""
3953
 
3954
+ #: includes/admin/include/class.template-manager.php:457
3955
  msgid "Set Default"
3956
  msgstr ""
3957
 
3958
+ #: includes/admin/include/class.template_cpt.php:44
3959
  msgid "Set featured image"
3960
  msgstr ""
3961
 
3962
+ #: includes/helper-function.php:966 includes/helper-function.php:984
3963
  msgid "Set the initial stock amount from"
3964
  msgstr ""
3965
 
3966
  #: includes/base.php:268 includes/addons/wl_recently_viewed_products.php:42
3967
+ #: includes/addons/wb_product_add_to_cart.php:73
3968
  #: includes/admin/admin-init.php:96 includes/admin/admin-init.php:97
3969
  msgid "Settings"
3970
  msgstr ""
3976
  msgid "Seven"
3977
  msgstr ""
3978
 
3979
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:184
3980
+ msgid "Shape Style"
3981
+ msgstr ""
3982
+
3983
  #: includes/modules/shopify-like-checkout/templates/form-shipping.php:13
3984
  msgid "Ship to a different address?"
3985
  msgstr ""
3986
 
3987
+ #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:304
3988
+ #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:305
3989
  #: includes/modules/shopify-like-checkout/templates/review-order.php:26
3990
  #: includes/modules/shopify-like-checkout/templates/form-checkout.php:49
3991
  msgid "Shipping"
4009
  msgid "Shipping to %s."
4010
  msgstr ""
4011
 
4012
+ #: includes/admin/include/class.template-manager.php:257
4013
+ #: includes/admin/include/class.template-manager.php:284
4014
  msgid "Shop"
4015
  msgstr ""
4016
 
4020
  msgid "Shop now"
4021
  msgstr ""
4022
 
 
 
 
 
4023
  #: includes/addons/product_flash_sale.php:176
4024
  #: includes/addons/product_flash_sale.php:328
4025
  #: includes/addons/wb_product_upsell.php:95
4113
  "items, and news in your inbox."
4114
  msgstr ""
4115
 
4116
+ #: includes/admin/include/class.template-manager.php:263
4117
+ #: includes/admin/include/class.template-manager.php:292
4118
  msgid "Single"
4119
  msgstr ""
4120
 
4139
  msgid "SKU"
4140
  msgstr ""
4141
 
4142
+ #: classes/class.default_data.php:348 classes/class.default_data.php:369
4143
+ #: includes/addons/wb_product_sku.php:167
4144
  msgid "SKU:"
4145
  msgstr ""
4146
 
4215
  msgid "Social Share"
4216
  msgstr ""
4217
 
4218
+ #: includes/helper-function.php:979
4219
  msgid "Sold"
4220
  msgstr ""
4221
 
4232
  msgid "Sold:"
4233
  msgstr ""
4234
 
4235
+ #: includes/admin/include/class.template-manager.php:601
4236
+ #: includes/admin/include/class.template-manager.php:677
4237
+ #: includes/admin/include/class.template-manager.php:715
4238
+ #: includes/admin/include/class.template-manager.php:785
4239
  msgid "Some thing is worng !"
4240
  msgstr ""
4241
 
4273
  "arrangements."
4274
  msgstr ""
4275
 
4276
+ #: includes/modules/variation-swatch/includes/Frontend.php:131
4277
+ msgid ""
4278
+ "Sorry, no products matched your selection. Please choose a different "
4279
+ "combination."
4280
+ msgstr ""
4281
+
4282
+ #: includes/modules/variation-swatch/includes/Frontend.php:133
4283
+ msgid ""
4284
+ "Sorry, this product is unavailable. Please choose a different combination."
4285
+ msgstr ""
4286
+
4287
  #: includes/admin/include/template-library.php:291
4288
  msgid "Sorry, you are not allowed to install themes on this site."
4289
  msgstr ""
4295
  msgid "Sort By"
4296
  msgstr ""
4297
 
4298
+ #: includes/helper-function.php:837
4299
  msgid "Sort by average rating"
4300
  msgstr ""
4301
 
4302
+ #: includes/helper-function.php:838
4303
  msgid "Sort by latest"
4304
  msgstr ""
4305
 
4306
+ #: includes/helper-function.php:836
4307
  msgid "Sort by popularity"
4308
  msgstr ""
4309
 
4310
+ #: includes/helper-function.php:840
4311
  msgid "Sort by price: high to low"
4312
  msgstr ""
4313
 
4314
+ #: includes/helper-function.php:839
4315
  msgid "Sort by price: low to high"
4316
  msgstr ""
4317
 
4323
  msgstr ""
4324
 
4325
  #: includes/addons/wb_product_image.php:118
4326
+ #: includes/addons/wb_product_categories.php:132
4327
+ #: includes/addons/wb_product_sku.php:120
4328
+ #: includes/addons/wb_product_add_to_cart.php:377
4329
+ #: includes/addons/wb_product_tags.php:132
4330
  msgid "Spacing"
4331
  msgstr ""
4332
 
4333
+ #: includes/helper-function.php:611
4334
  msgid "span"
4335
  msgstr ""
4336
 
4337
  #: classes/class.widgets_control.php:236
4338
+ #: woolentor-blocks/includes/classes/Blocks_init.php:96
4339
  msgid "Special Day Offer"
4340
  msgstr ""
4341
 
4342
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:189
4343
+ msgid "Squared"
4344
+ msgstr ""
4345
+
4346
  #: includes/addons/wb_product_rating.php:51
4347
  msgid "Star Color"
4348
  msgstr ""
4355
  msgid "Start from $100"
4356
  msgstr ""
4357
 
4358
+ #: classes/class.default_data.php:463
4359
  msgid "Stock availability does not exist this product."
4360
  msgstr ""
4361
 
4368
  msgstr ""
4369
 
4370
  #: includes/addons/wl_store_features.php:41
4371
+ #: woolentor-blocks/includes/classes/Blocks_init.php:101
4372
  msgid "Store Feature"
4373
  msgstr ""
4374
 
4494
  msgid "Support"
4495
  msgstr ""
4496
 
4497
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:79
4498
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:377
4499
+ msgid "Swatch Color"
4500
+ msgstr ""
4501
+
4502
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:389
4503
+ msgid "Swatch Color 2"
4504
+ msgstr ""
4505
+
4506
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:42
4507
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:395
4508
+ msgid "Swatch Image"
4509
+ msgstr ""
4510
+
4511
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:416
4512
+ msgid "Swatch Image Size"
4513
+ msgstr ""
4514
+
4515
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:50
4516
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:213
4517
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:323
4518
+ msgid "Swatch Tooltip"
4519
+ msgstr ""
4520
+
4521
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:163
4522
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:298
4523
+ msgid "Swatch Type"
4524
+ msgstr ""
4525
+
4526
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:34
4527
+ msgid "Swatches Settings"
4528
  msgstr ""
4529
 
4530
  #: includes/addons/wb_product_data_tab.php:44
4565
  msgid "Tablet Resolution"
4566
  msgstr ""
4567
 
4568
+ #: classes/class.default_data.php:354 classes/class.default_data.php:383
4569
+ #: includes/addons/wb_product_tags.php:179
4570
  msgid "Tag:"
4571
  msgid_plural "Tags:"
4572
  msgstr[0] ""
4576
  msgid "Tags"
4577
  msgstr ""
4578
 
4579
+ #: includes/admin/include/class.template_cpt.php:27
4580
+ #: includes/admin/include/class.template_cpt.php:28
4581
  msgid "Template"
4582
  msgstr ""
4583
 
4584
+ #: includes/admin/include/class.template_cpt.php:29
4585
  msgid "Template Archives"
4586
  msgstr ""
4587
 
4588
+ #: includes/admin/include/class.template_cpt.php:30
4589
  msgid "Template Attributes"
4590
  msgstr ""
4591
 
4592
+ #: includes/admin/include/class.template-manager.php:69
4593
+ #: includes/admin/include/class.template-manager.php:70
4594
+ #: includes/admin/include/class.template_cpt.php:55
4595
  msgid "Template Builder"
4596
  msgstr ""
4597
 
4598
+ #: includes/admin/include/class.template-manager.php:778
4599
  msgid "Template has been imported"
4600
  msgstr ""
4601
 
4602
+ #: includes/admin/include/class.template-manager.php:570
4603
  msgid "Template has been inserted"
4604
  msgstr ""
4605
 
4606
+ #: includes/admin/include/class.template-manager.php:640
4607
+ #: includes/admin/include/class.template-manager.php:707
4608
  msgid "Template has been updated"
4609
  msgstr ""
4610
 
4613
  msgid "Template Library"
4614
  msgstr ""
4615
 
4616
+ #: includes/admin/include/class.template-manager.php:459
4617
  msgid "Template Settings"
4618
  msgstr ""
4619
 
4620
+ #: includes/admin/include/class.template_cpt.php:32
4621
  #: includes/admin/include/template-library/templates_list.php:11
4622
  msgid "Templates"
4623
  msgstr ""
4624
 
4625
+ #: includes/admin/include/class.template_cpt.php:49
4626
  msgid "Templates list"
4627
  msgstr ""
4628
 
4629
+ #: includes/admin/include/class.template_cpt.php:50
4630
  msgid "Templates list navigation"
4631
  msgstr ""
4632
 
4642
  msgstr ""
4643
 
4644
  #: includes/addons/wb_wishsuite_counter.php:142
4645
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:218
4646
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:328
4647
  msgid "Text"
4648
  msgstr ""
4649
 
4668
  #: includes/addons/wb_product_suggest_price.php:708
4669
  #: includes/addons/wb_product_suggest_price.php:793
4670
  #: includes/addons/wb_product_stock.php:51
4671
+ #: includes/addons/wb_product_add_to_cart.php:846
4672
+ #: includes/addons/wb_product_add_to_cart.php:931
4673
  msgid "Text Color"
4674
  msgstr ""
4675
 
4682
  msgid "Thank you for contacting with us"
4683
  msgstr ""
4684
 
4685
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:123
4686
+ msgid "The attribute with Maximum variations count"
4687
+ msgstr ""
4688
+
4689
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:124
4690
+ msgid "The attribute with Minimum variations count"
4691
+ msgstr ""
4692
+
4693
  #: includes/addons/wl_faq.php:163
4694
  msgid "The Basics Of Western Astrology Explained"
4695
  msgstr ""
4696
 
4697
+ #: classes/class.default_data.php:262
4698
+ msgid "The description does not set this product."
4699
+ msgstr ""
4700
+
4701
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:122
4702
+ msgid "The First attribute"
4703
+ msgstr ""
4704
+
4705
  #: includes/addons/wl_testimonial.php:463 includes/addons/product_tabs.php:607
4706
  #: includes/addons/wl_category_grid.php:429
4707
  msgid "The resolution to mobile."
4712
  msgid "The resolution to the tablet."
4713
  msgstr ""
4714
 
4715
+ #: classes/class.default_data.php:249
4716
+ msgid "The short description does not set this product."
4717
+ msgstr ""
4718
+
4719
  #. Description of the plugin
4720
  msgid ""
4721
  "The WooCommerce elements library for Elementor page builder plugin for "
4726
  msgid "Theme Activated"
4727
  msgstr ""
4728
 
4729
+ #: includes/modules/shopify-like-checkout/class.shopify-like-checkout.php:308
4730
  #: includes/modules/shopify-like-checkout/templates/cart-shipping.php:53
4731
  msgid ""
4732
  "There are no shipping options available. Please ensure that your address has "
4733
  "been entered correctly, or contact us if you need any help."
4734
  msgstr ""
4735
 
4736
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:818
4737
+ #: includes/modules/variation-swatch/includes/Frontend/Woo_Config.php:900
4738
+ msgid "This product is currently out of stock and unavailable."
4739
+ msgstr ""
4740
+
4741
  #: includes/addons/product_accordion.php:210
4742
  msgid "This text effect only for simple product."
4743
  msgstr ""
4774
  msgid "Thumbnails Position"
4775
  msgstr ""
4776
 
4777
+ #: includes/helper-function.php:1041 includes/addons/wl_faq.php:68
4778
  #: includes/addons/wl_faq.php:342 includes/addons/product_flash_sale.php:136
4779
  #: includes/addons/product_flash_sale.php:772
4780
  #: includes/addons/wl_product_horizontal_filter.php:197
4849
  msgid "To show the stock progress bar. Set the initial stock amount from"
4850
  msgstr ""
4851
 
4852
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:71
4853
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:235
4854
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:345
4855
+ msgid "Tooltip Image"
4856
+ msgstr ""
4857
+
4858
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:256
4859
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:366
4860
+ msgid "Tooltip Image Size"
4861
+ msgstr ""
4862
+
4863
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:63
4864
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:227
4865
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:337
4866
+ msgid "Tooltip Text"
4867
+ msgstr ""
4868
+
4869
  #: includes/addons/special_day_offer.php:54
4870
  #: includes/addons/wl_product_video_gallery.php:69
4871
  #: includes/admin/include/template-library/templates_list.php:54
4873
  msgid "Top"
4874
  msgstr ""
4875
 
4876
+ #: includes/helper-function.php:1047
4877
  msgid "Top Rated"
4878
  msgstr ""
4879
 
4883
  msgid "Top Rated Products"
4884
  msgstr ""
4885
 
4886
+ #: includes/helper-function.php:1046
4887
  msgid "Top Seller"
4888
  msgstr ""
4889
 
4898
  msgid "Two"
4899
  msgstr ""
4900
 
4901
+ #: includes/admin/include/class.template-manager.php:91
4902
+ #: includes/admin/include/class.template-manager.php:455
4903
  msgid "Type"
4904
  msgstr ""
4905
 
4974
  #: includes/addons/wb_wishsuite_table.php:224
4975
  #: includes/addons/wb_wishsuite_table.php:303
4976
  #: includes/addons/wb_wishsuite_table.php:356
4977
+ #: includes/addons/wb_product_add_to_cart.php:858
4978
  #: includes/addons/wb_ever_compare_table.php:88
4979
  #: includes/addons/wb_product_additional_information.php:91
4980
  #: includes/addons/wb_product_additional_information.php:137
4990
  msgstr ""
4991
 
4992
  #: classes/class.widgets_control.php:224
4993
+ #: woolentor-blocks/includes/classes/Blocks_init.php:126
4994
  msgid "Universal Product"
4995
  msgstr ""
4996
 
4998
  msgid "Unnamed Deal"
4999
  msgstr ""
5000
 
5001
+ #: includes/admin/include/class.template_cpt.php:37
5002
  msgid "Update Template"
5003
  msgstr ""
5004
 
5005
+ #: includes/modules/variation-swatch/includes/Admin/Attribute_Taxonomy_Metabox.php:264
5006
+ msgid "Upload"
5007
+ msgstr ""
5008
+
5009
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:247
5010
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:357
5011
+ #: includes/modules/variation-swatch/includes/Admin/Product_Metabox.php:407
5012
+ msgid "Upload/Add image"
5013
+ msgstr ""
5014
+
5015
+ #: includes/admin/include/class.template_cpt.php:48
5016
  msgid "Uploaded to this Template"
5017
  msgstr ""
5018
 
5020
  msgid "Upsells"
5021
  msgstr ""
5022
 
5023
+ #: includes/admin/include/class.template_cpt.php:46
5024
  msgid "Use as featured image"
5025
  msgstr ""
5026
 
5027
+ #: includes/modules/variation-swatch/includes/Admin.php:52
5028
+ msgid "Use image"
5029
+ msgstr ""
5030
+
5031
  #: includes/modules/shopify-like-checkout/templates/form-login.php:24
5032
  #: includes/modules/shopify-like-checkout/templates/form-login.php:25
5033
  msgid "Username or email"
5075
  msgid "Video Tutorial"
5076
  msgstr ""
5077
 
5078
+ #: includes/modules/variation-swatch/includes/ajax-actions.php:90
5079
+ msgid "View Cart"
5080
+ msgstr ""
5081
+
5082
  #: includes/modules/backorder/class.backorder.php:190
5083
  msgid "View cart"
5084
  msgstr ""
5085
 
5086
+ #: includes/admin/include/class.template_cpt.php:38
5087
  msgid "View Template"
5088
  msgstr ""
5089
 
5090
+ #: includes/admin/include/class.template_cpt.php:39
5091
  msgid "View Templates"
5092
  msgstr ""
5093
 
5121
  msgstr ""
5122
 
5123
  #: classes/class.widgets_control.php:453
5124
+ #: includes/admin/include/class.extension-manager.php:66
5125
  msgid "Whols"
5126
  msgstr ""
5127
 
5128
+ #: includes/admin/include/class.extension-manager.php:98
5129
  msgid ""
5130
  "Whols is an outstanding WordPress plugin for WooCommerce that allows store "
5131
  "owners to set wholesale prices for the products of their online stores. This "
5136
  "manually or automatically."
5137
  msgstr ""
5138
 
5139
+ #: includes/admin/include/class.extension-manager.php:95
5140
  msgid "Whols Pro – WooCommerce Wholesale Prices"
5141
  msgstr ""
5142
 
5143
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:125
5144
+ msgid "Widget CSS Saved."
5145
+ msgstr ""
5146
+
5147
  #: includes/addons/wl_onepage_slider.php:433
5148
  #: includes/addons/wl_onepage_slider.php:507
5149
  #: includes/addons/special_day_offer.php:173
5155
  msgid "Wishlist"
5156
  msgstr ""
5157
 
5158
+ #: includes/addons/wb_product_add_to_cart.php:497
5159
+ #: includes/addons/wb_product_add_to_cart.php:591
5160
+ msgid "Wishlist Background Color"
5161
+ msgstr ""
5162
+
5163
+ #: includes/addons/wb_product_add_to_cart.php:482
5164
+ #: includes/addons/wb_product_add_to_cart.php:576
5165
+ msgid "Wishlist Icon Color"
5166
+ msgstr ""
5167
+
5168
  #: includes/addons/wb_wishsuite_table.php:49
5169
  msgid "WishSuite"
5170
  msgstr ""
5178
  msgid "WishSuite Table"
5179
  msgstr ""
5180
 
5181
+ #: includes/modules/variation-swatch/includes/Admin/Woo_Config.php:32
5182
+ msgid "WL Color"
5183
+ msgstr ""
5184
+
5185
+ #: includes/modules/variation-swatch/includes/Admin/Woo_Config.php:33
5186
+ msgid "WL Image"
5187
+ msgstr ""
5188
+
5189
+ #: includes/modules/variation-swatch/includes/Admin/Woo_Config.php:31
5190
+ msgid "WL Label"
5191
+ msgstr ""
5192
+
5193
  #: includes/addons/add_banner.php:13
5194
  msgid "WL: Add Banner"
5195
  msgstr ""
5196
 
5197
+ #: woolentor-blocks/build/blocks/product-addtocart/index.php:48
5198
+ #: woolentor-blocks/src/blocks/product-addtocart/index.php:48
5199
+ msgid "WL: Add To Cart"
5200
+ msgstr ""
5201
+
5202
  #: includes/addons/wb_product_add_to_cart.php:13
5203
  msgid "WL: Add To cart"
5204
  msgstr ""
5212
  msgstr ""
5213
 
5214
  #: includes/addons/wl_archive_title.php:13
5215
+ #: woolentor-blocks/build/blocks/archive-title/index.php:48
5216
+ #: woolentor-blocks/src/blocks/archive-title/index.php:48
5217
  msgid "WL: Archive Title"
5218
  msgstr ""
5219
 
5220
  #: includes/addons/wl_brand.php:13
5221
+ #: woolentor-blocks/build/blocks/brand-logo/index.php:48
5222
+ #: woolentor-blocks/src/blocks/brand-logo/index.php:48
5223
  msgid "WL: Brand Logo"
5224
  msgstr ""
5225
 
5226
  #: includes/addons/wl_breadcrumbs.php:13
5227
+ #: woolentor-blocks/build/blocks/breadcrumbs/index.php:48
5228
+ #: woolentor-blocks/src/blocks/breadcrumbs/index.php:48
5229
  msgid "WL: Breadcrumbs"
5230
  msgstr ""
5231
 
5234
  msgstr ""
5235
 
5236
  #: includes/addons/wl_category_grid.php:12
5237
+ #: woolentor-blocks/build/blocks/category-grid/index.php:48
5238
+ #: woolentor-blocks/src/blocks/category-grid/index.php:48
5239
  msgid "WL: Category Grid"
5240
  msgstr ""
5241
 
5247
  msgid "WL: Customer Review"
5248
  msgstr ""
5249
 
5250
+ #: woolentor-blocks/build/blocks/product-description/index.php:48
5251
+ #: woolentor-blocks/src/blocks/product-description/index.php:48
5252
+ msgid "WL: Description"
5253
+ msgstr ""
5254
+
5255
  #: includes/addons/wb_ever_compare_table.php:13
5256
  msgid "WL: EverCompare"
5257
  msgstr ""
5258
 
5259
+ #: includes/addons/wl_faq.php:13 woolentor-blocks/build/blocks/faq/index.php:48
5260
+ #: woolentor-blocks/src/blocks/faq/index.php:48
5261
  msgid "WL: FAQ"
5262
  msgstr ""
5263
 
5264
  #: includes/addons/wb_image_marker.php:13
5265
+ #: woolentor-blocks/build/blocks/image-marker/index.php:48
5266
+ #: woolentor-blocks/src/blocks/image-marker/index.php:48
5267
  msgid "WL: Image Marker"
5268
  msgstr ""
5269
 
5283
  msgid "WL: Product Accordion"
5284
  msgstr ""
5285
 
5286
+ #: woolentor-blocks/build/blocks/product-additional-info/index.php:48
5287
+ #: woolentor-blocks/src/blocks/product-additional-info/index.php:48
5288
+ msgid "WL: Product Additional Info"
5289
+ msgstr ""
5290
+
5291
  #: includes/addons/wb_product_additional_information.php:13
5292
  msgid "WL: Product Additional Information"
5293
  msgstr ""
5294
 
5295
  #: includes/addons/wb_archive_product.php:13
5296
+ #: woolentor-blocks/build/blocks/shop-archive-default/index.php:48
5297
+ #: woolentor-blocks/src/blocks/shop-archive-default/index.php:48
5298
  msgid "WL: Product Archive Layout (Default)"
5299
  msgstr ""
5300
 
5303
  msgstr ""
5304
 
5305
  #: includes/addons/product_curvy.php:14
5306
+ #: woolentor-blocks/build/blocks/product-curvy/index.php:48
5307
+ #: woolentor-blocks/src/blocks/product-curvy/index.php:48
5308
  msgid "WL: Product Curvy"
5309
  msgstr ""
5310
 
5330
  msgstr ""
5331
 
5332
  #: includes/addons/wb_product_image.php:13
5333
+ #: woolentor-blocks/build/blocks/product-image/index.php:48
5334
+ #: woolentor-blocks/src/blocks/product-image/index.php:48
5335
  msgid "WL: Product Image"
5336
  msgstr ""
5337
 
5340
  msgstr ""
5341
 
5342
  #: includes/addons/wb_product_meta.php:13
5343
+ #: woolentor-blocks/build/blocks/product-meta/index.php:48
5344
+ #: woolentor-blocks/src/blocks/product-meta/index.php:48
5345
  msgid "WL: Product Meta"
5346
  msgstr ""
5347
 
5348
  #: includes/addons/wb_product_price.php:13
5349
+ #: woolentor-blocks/build/blocks/product-price/index.php:48
5350
+ #: woolentor-blocks/src/blocks/product-price/index.php:48
5351
  msgid "WL: Product Price"
5352
  msgstr ""
5353
 
5354
+ #: woolentor-blocks/build/blocks/product-qrcode/index.php:48
5355
+ #: woolentor-blocks/src/blocks/product-qrcode/index.php:48
5356
+ msgid "WL: Product QR Code"
5357
+ msgstr ""
5358
+
5359
  #: includes/addons/wb_product_rating.php:13
5360
+ #: woolentor-blocks/build/blocks/product-rating/index.php:48
5361
+ #: woolentor-blocks/src/blocks/product-rating/index.php:48
5362
  msgid "WL: Product Rating"
5363
  msgstr ""
5364
 
5367
  msgstr ""
5368
 
5369
  #: includes/addons/wb_product_short_description.php:13
5370
+ #: woolentor-blocks/build/blocks/product-short-description/index.php:48
5371
+ #: woolentor-blocks/src/blocks/product-short-description/index.php:48
5372
  msgid "WL: Product Short Description"
5373
  msgstr ""
5374
 
5377
  msgstr ""
5378
 
5379
  #: includes/addons/wb_product_stock.php:13
5380
+ #: woolentor-blocks/build/blocks/product-stock/index.php:48
5381
+ #: woolentor-blocks/src/blocks/product-stock/index.php:48
5382
  msgid "WL: Product Stock"
5383
  msgstr ""
5384
 
5385
  #: includes/addons/product_tabs.php:13
5386
+ #: woolentor-blocks/build/blocks/product-tab/index.php:46
5387
+ #: woolentor-blocks/src/blocks/product-tab/index.php:46
5388
  msgid "WL: Product Tab"
5389
  msgstr ""
5390
 
5391
+ #: woolentor-blocks/build/blocks/product-tabs/index.php:48
5392
+ #: woolentor-blocks/src/blocks/product-tabs/index.php:48
5393
+ msgid "WL: Product Tabs"
5394
+ msgstr ""
5395
+
5396
  #: includes/addons/wb_product_tags.php:13
5397
  msgid "WL: Product Tags"
5398
  msgstr ""
5399
 
5400
+ #: woolentor-blocks/build/blocks/product-title/index.php:48
5401
+ #: woolentor-blocks/src/blocks/product-title/index.php:48
5402
+ msgid "WL: Product Title"
5403
+ msgstr ""
5404
+
5405
  #: includes/addons/wb_product_title.php:13
5406
  msgid "WL: Product title"
5407
  msgstr ""
5408
 
5409
  #: includes/addons/wb_product_upsell.php:13
5410
+ #: woolentor-blocks/build/blocks/product-upsell/index.php:48
5411
+ #: woolentor-blocks/src/blocks/product-upsell/index.php:48
5412
  msgid "WL: Product Upsell"
5413
  msgstr ""
5414
 
5425
  msgstr ""
5426
 
5427
  #: includes/addons/wb_product_related.php:13
5428
+ #: woolentor-blocks/build/blocks/product-related/index.php:48
5429
+ #: woolentor-blocks/src/blocks/product-related/index.php:48
5430
  msgid "WL: Related Product"
5431
  msgstr ""
5432
 
5433
  #: includes/addons/special_day_offer.php:13
5434
+ #: woolentor-blocks/build/blocks/special-day-offer/index.php:48
5435
+ #: woolentor-blocks/src/blocks/special-day-offer/index.php:48
5436
  msgid "WL: Special Day Offer"
5437
  msgstr ""
5438
 
5439
  #: includes/addons/wl_store_features.php:13
5440
+ #: woolentor-blocks/build/blocks/store-feature/index.php:48
5441
+ #: woolentor-blocks/src/blocks/store-feature/index.php:48
5442
  msgid "WL: Store Feature"
5443
  msgstr ""
5444
 
5450
  msgid "WL: Testimonial"
5451
  msgstr ""
5452
 
5453
+ #: woolentor-blocks/build/blocks/universal-product/old_index.php:48
5454
+ #: woolentor-blocks/build/blocks/universal-product/index.php:48
5455
+ #: woolentor-blocks/build/blocks/universal-product/sort_index.php:48
5456
+ #: woolentor-blocks/src/blocks/universal-product/old_index.php:48
5457
+ #: woolentor-blocks/src/blocks/universal-product/index.php:48
5458
+ #: woolentor-blocks/src/blocks/universal-product/sort_index.php:48
5459
+ msgid "WL: Universal Product Layout"
5460
+ msgstr ""
5461
+
5462
  #: includes/addons/wb_whols.php:13
5463
  msgid "WL: Whols"
5464
  msgstr ""
5471
  msgid "WL: WishSuite Table"
5472
  msgstr ""
5473
 
5474
+ #: includes/manage_wc_template.php:100 includes/base.php:187
5475
+ #: includes/admin/admin-init.php:85 includes/admin/admin-init.php:86
5476
  msgid "WooLentor"
5477
  msgstr ""
5478
 
5484
  msgid "Woolentor Addons"
5485
  msgstr ""
5486
 
5487
+ #: includes/manage_wc_template.php:100
5488
+ msgid "WooLentor Admin Menu"
5489
+ msgstr ""
5490
+
5491
  #: includes/modules/ajax-search/widget-product-search-ajax.php:12
5492
  msgid "WooLentor Ajax Product Search Widget"
5493
  msgstr ""
5494
 
5495
+ #: includes/admin/templates/dashboard-gutenberg.php:38
5496
+ msgid "WooLentor Blocks"
5497
+ msgstr ""
5498
+
5499
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:158
5500
+ msgid "WooLentor Blocks CSS Delete."
5501
+ msgstr ""
5502
+
5503
+ #: woolentor-blocks/includes/classes/Manage_Styles.php:148
5504
+ msgid "WooLentor Blocks css file update."
5505
+ msgstr ""
5506
+
5507
+ #: includes/admin/include/class.template-manager.php:227
5508
+ msgid "WooLentor Canvas"
5509
+ msgstr ""
5510
+
5511
  #: includes/admin/templates/dashboard-element.php:15
5512
  msgid "WooLentor Element"
5513
  msgstr ""
5514
 
5515
+ #: includes/admin/include/class.template-manager.php:228
5516
+ msgid "WooLentor Full width"
5517
+ msgstr ""
5518
+
5519
  #: includes/admin/templates/dashboard-sidebar.php:24
5520
  msgid ""
5521
  "WooLentor is one of the most popular WooCommerce Elementor Addons on "
5522
+ "WordPress.org. It has been downloaded more than 1,627,298 times and 90,000 "
5523
  "stores are using WooLentor plugin. Why not you?"
5524
  msgstr ""
5525
 
5531
  msgid "WooLentor Module"
5532
  msgstr ""
5533
 
5534
+ #: includes/admin/include/class.template_cpt.php:56
5535
  msgid "WooLentor Template"
5536
  msgstr ""
5537
 
5568
  msgid "Y Position"
5569
  msgstr ""
5570
 
5571
+ #: includes/admin/include/class.template-manager.php:132
5572
  msgid "YES"
5573
  msgstr ""
5574
 
5575
+ #: classes/class.assest_management.php:332 includes/addons/wl_faq.php:113
5576
  #: includes/addons/wl_faq.php:192 includes/addons/wl_faq.php:205
5577
  #: includes/addons/wl_testimonial.php:217
5578
  #: includes/addons/wl_testimonial.php:333
5581
  #: includes/addons/wl_category_grid.php:153
5582
  #: includes/addons/wl_category_grid.php:214
5583
  #: includes/addons/wl_category_grid.php:300
5584
+ #: includes/admin/include/class.template-manager.php:489
5585
  msgid "Yes"
5586
  msgstr ""
5587
 
5589
  msgid "You are not permitted to import the template."
5590
  msgstr ""
5591
 
5592
+ #: includes/admin/templates/dashboard-gutenberg.php:39
5593
+ msgid "You can enable or disable all blocks by one click."
5594
+ msgstr ""
5595
+
5596
  #: includes/admin/templates/dashboard-element.php:16
5597
  #: includes/admin/templates/dashboard-module.php:18
5598
  msgid "You can enable or disable all options by one click."
readme.txt CHANGED
@@ -1,16 +1,16 @@
1
- === WooLentor - Elementor WooCommerce Builder Addons, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution ===
2
  Contributors: hasthemes, htplugins, devitemsllc, tarekht, aslamhasib
3
  Tags: Elementor, WooCommerce, WooCommerce Elementor, WooCommerce Builder, WooCommerce Product
4
  Requires at least: 4.7
5
  Tested up to: 6.0
6
- Stable tag: 2.3.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- Elementor WooCommerce Builder Addons, Quick View, Wishlist, Products Compare, and Product Filter are functionalities that WooLentor offers to your online store.
11
 
12
  == Description ==
13
- If you own a WooCommerce website, you'll almost certainly want to use these capabilities: Woo Builder (Elementor WooCommerce Builder), product compare or Products Comparison table, woocommerce order notifications, woocommerce slider addons, woo recently viewed products widget, Sold out count, Woocommerce variation swatches module (as an Extension), custom product archive builder, woocommerce product quick view, out of stock label customization, count sold product, flash sale countdown, wishlist, etc.
14
 
15
  By using WooLentor - Elementor WooCommerce Builder, you will get all in one plugin.
16
 
@@ -24,13 +24,13 @@ Apart from a large number of widgets, there are plenty of useful functionalities
24
 
25
  [Live Demo](https://woolentor.com/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=demo) | [Documentation](https://woolentor.com/documentation/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=doc) | [Purchase Pro](https://woolentor.com/pricing/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=purchasepro)
26
 
27
- == Elementor WooCommerce Builder Includes ==
28
  🛍️ WooCommerce Elementor widgets.
29
  🛍️ Single Product page builder.
30
  🛍️ Custom Product Template Builder for Individual Product(Pro).
31
  🛍️ Shop / Archive page builder.
32
  🛍️ Individual Archive Page Builder (pro).
33
- 🛍️ Cart / Checkout / My account / Thankyou page builder (Pro)
34
 
35
 
36
  You can see the plugin demo here : [Live Demo](https://woolentor.com/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=demo)
@@ -45,16 +45,17 @@ You can see the plugin demo here : [Live Demo](https://woolentor.com/?utm_source
45
  * Woocommerce Product wishlist
46
  * Woocommerce Product Tab
47
  * Action Buttons in different Positions
48
- * Sale Countdown / Discount Schedule Counter
49
  * Enable / Disable Product Gallery
50
  * Unlimited Color and font Variations.
51
  * WooCommerce Slider Control Options
 
52
  * Woocommerce Live Sales Notifications (Real)
53
  * Woocommerce Sales Notification (Custom)
54
- * Rename labels
55
  * WooCommerce Upsell widget
56
  * WooCommerce Cross-sell widget
57
- * Related Products widget
58
  * Call for Price
59
  * Suggest Price
60
  * Special Day offer banner
@@ -88,9 +89,11 @@ You can see the plugin demo here : [Live Demo](https://woolentor.com/?utm_source
88
  ✓ Custom Cart Page Builder / Template Builder
89
  ✓ Custom Checkout Page Builder / Template Builder
90
  ✓ Custom My Account Page Builder / Template Builder
 
91
  ✓ WooCommerce Pre Order Module
92
  ✓ WooCommerce Partial Payment
93
  ✓ WooCommerce Multi step checkout
 
94
  ✓ Product Size Chart
95
  ✓ Recently Viewed Products
96
  ✓ Side Mini Cart / Cart Drawer
@@ -260,68 +263,114 @@ Insert a button to get suggestions from your customers regarding the price of yo
260
 
261
  == WooLentor's WooCommerce Module: ==
262
 
263
- <strong>[Sales Notification](https://woolentor.com/doc/sales-notification-for-woocommerce/)</strong>
264
- This feature allows showing the sales notification or popup to display real/custom orders. In the dashboard, there is option to manage the design of the notification.
265
 
266
- <strong>[Rename Label](https://woolentor.com/doc/change-woocommerce-text/)</strong>
267
- WooLentor allows renaming label for Shop, Product details, Cart, Checkout page text. For example, add to cart button text and checkout page fields text.
268
 
269
- <strong>❤️ [WooCommerce Wishlist Module](https://woolentor.com/doc/wishlist-for-woocommerce/)</strong>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
  WooLenor's WooCommerce Wishlist Module is a fantastic module that enables you to integrate the wishlist feature on your WooCommerce store. With the help of this extraordinary Wishlist modules, you can provide a seamless shopping experience to your potential customers by allowing them to create a wishlist and add their desired products to that wishlist so that they find all their items in one place later.
271
 
272
- <strong>⚖️ [Product Compare or Comparison Table Module](https://woolentor.com/doc/woocommerce-product-compare/)</strong>
 
 
273
  Product Compare is a wonderful module that lets you add a product comparison option to your WooCommerce store using which your store visitors will be able to compare different products in a table layout or a popup window. This allows them to check the differences among the products based on several attributes while helping them make the buying decision easier at the same time.
274
 
275
- <strong>[Flash Sale Countdown](https://woolentor.com/doc/enable-sales-countdown-timer-in-woocommerce/)</strong>
 
 
276
  Flash Sale Countdown module allows you to show discounts available for a limited time. Short-term sales can be a fantastic way to sell a large number of items in a few hours. If your company expects an exceptional rise in your checkout counts, you ought to use the Flash Sale Countdown module on New Year's Eve, Black Friday, Christmas, and other holiday sales.
277
 
278
- <strong>[Shopify Style Checkout Page in WooCommerce](https://woolentor.com/shopify-style-checkout-page-in-woocommerce/)</strong>
 
 
279
  When it comes to the Checkout page, customers always prefer a clean and simple one rather than a complicated one with lots of fields. A lengthy Checkout form can even increase cart abandonment while also negatively affecting the conversion rates. With this in mind, we have added a fantastic feature, which will enable you to create a Shopify style Checkout page that is pretty straightforward. Furthermore, it will provide the customers with an amazing Checkout experience.
280
 
281
- <strong>[Advanced Ajax Search Widget Module](https://woolentor.com/doc/how-to-use-woocommerce-ajax-search/)</strong>
 
 
282
  For any online store, WooLentor's WooCommerce Ajax search module is a must-have. It enables customers to locate what they want swiftly and efficiently, without having to go through other pages or wait for the page to load. The WooCommerce Ajax search widget by WooLentor is quick, dependable, and simple to use.
283
 
284
- <strong>[Single Product Ajax Add to Cart Module](https://woolentor.com/doc/single-product-ajax-add-to-cart/)</strong>
 
 
285
  Customers who browse stores with a lot of products may find the Single Product WooCommerce Ajax Add to Cart module to be a tremendous time-saver. It speeds up the add-to-cart process by eliminating the need to refresh or reload the page whenever a product is added to the cart, saving customers time. Furthermore, because the module uses ajax, it can keep customers on the same page while they shop, allowing them to continue browsing other products without interruption.
286
 
287
- <strong>[Backorder Module](https://woolentor.com/doc/how-to-enable-woocommerce-backorder/)</strong>
 
 
288
  You may use a Backorder module to enable your consumers to make purchases from you that you can't currently fulfill. Cross-docking strategies, such as those used by organized firms, can help them fill orders quickly once goods arrive, saving time and resources. Backorders offer flexibility to warehouse management when products take up a lot of room or when aa customer needs to pay and receive the product at a later date.
289
 
290
- <strong>[WordPress Post and WooCommerce Product Duplicator](https://woolentor.com/doc/duplicate-woocommerce-product/)</strong>
 
 
291
  This module may be handy if you want to build a new product based on an existing one or make a minor modification to an established article. The WooLentor Post Duplicator makes it simple to duplicate any post type, including custom post kinds.
292
 
293
- <strong>[Checkout Field Editor or Manager (Pro)](https://woolentor.com/doc/checkout-field-editor/)</strong>
 
 
294
  The checkout procedure is one of the most vital aspects of running a successful online store. It's easy to lose customers at this crucial stage if you're not careful. That's why it's essential to have a simple and user-friendly checkout process. With the WooLentor Checkout Field Editor/Manager Module, you'll be able to easily edit, add, and remove fields from your checkout page. Using this Checkout field manager module, you can make sure that your customers have a smooth and hassle-free experience when they're checking out.
295
 
296
- <strong>[Multi-Step Checkout (Pro)](https://woolentor.com/doc/woocommerce-multi-step-checkout/)</strong>
 
 
297
  The checkout process is the most important step in your customer’s journey, and it should be as easy and seamless as possible. That’s why we created our Multi-Step Checkout feature that allows you to create a more effective and organized checkout page by dividing the process into several simpler steps.
298
 
299
- <strong>[Partial Payment (Pro)](https://woolentor.com/doc/how-to-accept-partial-payment-in-woocommerce/)</strong>
 
 
300
  Customers may utilize the partial payment option to make a part payment since they just don't have enough money on hand to pay the invoice in full. Store owners can handle partial payments and decide whether or not consumers can get the product right away or only after they pay full price.
301
 
302
- <strong>[Pre-Order Module (Pro)](https://woolentor.com/doc/how-to-set-pre-order-for-woocommerce/)</strong>
 
 
303
  A preorder is a purchase in which a customer makes before the product officially becomes available. Pre-ordering is a powerful marketing module that lets you reserve items ahead of time and charge customers a deposit or full payment. Customers also enjoy pre-ordering as it ensures that they will obtain the product right after it has been released. The main benefit of utilizing a pre-order strategy is that it allows you to grow eCommerce sales and forecast consumer demand.
304
 
305
- <strong>[WooCommerce Product Size Chart Module (Pro)](https://woolentor.com/doc/woocommerce-product-size-chart/)</strong>
 
 
306
  The WooCommerce Product Size Chart is an excellent module for e-commerce businesses that sell a wide range of wearable items. This powerful tool allows you to create simple size recommendations that enable your consumers to choose the right product size and make their purchase decisions quickly and easily. The Product Size Chart for WooCommerce can help you streamline your buying experience by making it easy for customers to find the right product size.
307
 
308
- <strong>GTM Conversion Tracking (Google Tag Manager) Module (Pro)</strong>
 
 
309
  GTM Conversion Tracking Module helps you keep track of conversions and assign them to specific sources. You may identify whether a sale was caused by a Google Ads/Facebook Ads, a direct website visit, or a social media post. When you link your store seamlessly with GTM, you'll generate more income from advertising by gathering precise sales data.
310
 
311
- <strong>[Single Product Sticky Add to cart Module (Pro)](https://woolentor.com/doc/single-product-sticky-add-to-cart/)</strong>
312
  One of the most essential aspects of building a successful online shop is to make the process as simple and straightforward as possible for your consumers. Using the sticky add-to-cart module, which may be added to any product page, is an excellent approach to achieve this. Customers will be able to see their shopping carts on every product page, regardless of where they are in your shop, making it easier for them to complete their purchases.
313
 
314
- <strong>[Side Mini Cart / Cart Drawer Module (Pro)](https://woolentor.com/doc/side-mini-cart-for-woocommerce/)</strong>
 
 
315
  WooLentor's Cart Drawer or Side Mini Cart for WooCommerce is a useful module that displays a list of current cart items on your website. This helps to improve the purchasing experience for your consumers by allowing them to keep track of their progress without ever having to leave the page. It also makes removing things from their cart simple - there's no need to go to the shopping cart page, they can just click 'remove' next to the item in the mini cart.
316
 
317
- <strong>[Redirect to checkout (Pro)](https://woolentor.com/doc/redirect-to-checkout/)</strong>
 
 
318
  The Redirect to Checkout Module of WooLentor is an excellent tool for keeping your customers on track and ensuring a quick checkout process. This module allows you to send visitors to the checkout page of your website after they click the add to cart button so they can complete the purchase promptly and easily. Redirecting people to the checkout page before they leave your site helps to increase conversion rates and boost sales.
319
 
 
320
 
321
- == Extensions: ==
322
 
323
- <strong>❤️ [Swatchly - WooCommerce variation swatches module Addon](https://wordpress.org/plugins/swatchly/)</strong>
324
- Using the WooCommerce Product Variation Swatches plugin or Addon, as opposed to the traditional dropdown method of displaying product variants (variation switcher), provides exceptional convenience for your customers and gives your store a professional look. Product variation swatches for WooCommerce provide a user-friendly way for your customers to select product variations (variations checkbox) without having to click on the dropdown menu. Customers can quickly identify and choose from different colors, sizes, styles (color and label variations), or other attributes that you have selected for each product.
325
 
326
  <strong>💰 [Whols for WooCommerce Wholesale](https://wordpress.org/plugins/whols/)</strong>
327
  Whols is an outstanding WordPress plugin for WooCommerce that allows store owners to set wholesale prices for the products of their online stores. This plugin enables you to show special wholesale prices to the wholesaler.
@@ -391,6 +440,14 @@ Elementor Pro is not required. But you can use wooLentor with Elementor free & P
391
 
392
  == Changelog ==
393
 
 
 
 
 
 
 
 
 
394
  = Version: 2.3.2 - Date: 20-06-2022 =
395
  * Added : Support to display currency position with space in filter widgets.
396
  * Added : Style option in wishlist table addon.
@@ -833,6 +890,203 @@ This section describes how to install the WooLentor - WooCommerce Addons for Ele
833
  3. ‘WOOLENTOR’ Category will be appear in Elementor page Editor
834
  4. Create new Product slider or product tab and relax!
835
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
836
  == Screenshots ==
837
  1. Custom Product Page Builder
838
  2. Custom Cart Page Builder
1
+ === WooLentor - Elementor WooCommerce Builder Addons, Variation Swatches Addons, Quick View, Wishlist, Products Compare, Product Filter – All in One Solution ===
2
  Contributors: hasthemes, htplugins, devitemsllc, tarekht, aslamhasib
3
  Tags: Elementor, WooCommerce, WooCommerce Elementor, WooCommerce Builder, WooCommerce Product
4
  Requires at least: 4.7
5
  Tested up to: 6.0
6
+ Stable tag: 2.4.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ Elementor WooCommerce Builder Addons, Quick View, Wishlist, Products Compare, Product Filter, and Variation Swatches are functionalities that WooLentor offers to your online store.
11
 
12
  == Description ==
13
+ If you own a WooCommerce website, you'll almost certainly want to use these capabilities: Woo Builder (Elementor WooCommerce Builder), product compare or Products Comparison table, woocommerce order notifications, woocommerce slider addons, woo recently viewed products widget, Sold out count, Woocommerce variation swatches module, custom product archive builder, woocommerce product quick view, out of stock label customization, count sold product, flash sale countdown, wishlist, etc.
14
 
15
  By using WooLentor - Elementor WooCommerce Builder, you will get all in one plugin.
16
 
24
 
25
  [Live Demo](https://woolentor.com/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=demo) | [Documentation](https://woolentor.com/documentation/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=doc) | [Purchase Pro](https://woolentor.com/pricing/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=purchasepro)
26
 
27
+ == Elementor WooCommerce Woo Builder Includes ==
28
  🛍️ WooCommerce Elementor widgets.
29
  🛍️ Single Product page builder.
30
  🛍️ Custom Product Template Builder for Individual Product(Pro).
31
  🛍️ Shop / Archive page builder.
32
  🛍️ Individual Archive Page Builder (pro).
33
+ 🛍️ Cart / Checkout / My account / WooCommerce custom thank you page builder (Pro)
34
 
35
 
36
  You can see the plugin demo here : [Live Demo](https://woolentor.com/?utm_source=wprepo&utm_medium=freeplugin&utm_campaign=demo)
45
  * Woocommerce Product wishlist
46
  * Woocommerce Product Tab
47
  * Action Buttons in different Positions
48
+ * Sales countdown woocommerce addon / Discount Schedule Counter
49
  * Enable / Disable Product Gallery
50
  * Unlimited Color and font Variations.
51
  * WooCommerce Slider Control Options
52
+ * WooCommerce variation swatches module
53
  * Woocommerce Live Sales Notifications (Real)
54
  * Woocommerce Sales Notification (Custom)
55
+ * Rename labels / WooCommerce Text / WooCommerce add custom text.
56
  * WooCommerce Upsell widget
57
  * WooCommerce Cross-sell widget
58
+ * WooCommerce Related Products widget (Custom Related Products Layout, Disable/Remove/Hide related products.
59
  * Call for Price
60
  * Suggest Price
61
  * Special Day offer banner
89
  ✓ Custom Cart Page Builder / Template Builder
90
  ✓ Custom Checkout Page Builder / Template Builder
91
  ✓ Custom My Account Page Builder / Template Builder
92
+ ✓ Custom thank you page for woocommerce.
93
  ✓ WooCommerce Pre Order Module
94
  ✓ WooCommerce Partial Payment
95
  ✓ WooCommerce Multi step checkout
96
+ ✓ Product variation swatches for WooCommerce
97
  ✓ Product Size Chart
98
  ✓ Recently Viewed Products
99
  ✓ Side Mini Cart / Cart Drawer
263
 
264
  == WooLentor's WooCommerce Module: ==
265
 
266
+ = WooCommerce Variation Swatches Module =
267
+ Love the look of those variations swatches in your favorite online store, but don’t know how to get that effect on your own site?
268
 
269
+ We feel you. That’s why we created this WooCommerce product Variation Swatches Module – to help you turn those boring old variations dropdown options into more visually appealing swatches (variation switcher). Now your customers can see all the variations at a glance, making their shopping experience that much better.
 
270
 
271
+ Plus, with WooCommerce product variation swatches module, you can choose from woocommerce color swatches, button swatches, Label Swatches or image swatch (WooCommerce Color and Label Variations, Link Variation, etc..) – whichever suits your store’s style best. So why wait? Get started today and watch your sales soar!
272
+
273
+ Using WooCommerce variation swatches module Addon, as opposed to the traditional dropdown method of displaying product variants (variation switcher), provides exceptional convenience for your customers and gives your store a professional look. Product variation swatches for WooCommerce provide a user-friendly way for your customers to select product variations (variations checkbox for woocommerce swatches attributes swatches) without having to click on the dropdown menu. Customers can quickly identify and choose from different colors, sizes, styles (color and label variations), or other attributes that you have selected for each product.
274
+
275
+ Start using WooCommerce product variation swatches module now!
276
+
277
+ [More Details](https://woolentor.com/doc/variation-swatches/)
278
+
279
+ = Sales Notification =
280
+ This feature allows showing the sales notification or popup to display real/custom orders. In the dashboard, there is option to manage the design of the notification.
281
+
282
+ [More Details](https://woolentor.com/doc/sales-notification-for-woocommerce/)
283
+
284
+ = Rename Label =
285
+ WooLentor allows renaming label for Shop, Product details, Cart, Checkout page text. For example, WooCommerce Button Text/WooCommerce Text, WooCommerce add to cart button text, Change cart button text, Order button text, and checkout page fields text.
286
+
287
+ [More Details](https://woolentor.com/doc/change-woocommerce-text/)
288
+
289
+ = ❤️ WooCommerce Wishlist Module =
290
  WooLenor's WooCommerce Wishlist Module is a fantastic module that enables you to integrate the wishlist feature on your WooCommerce store. With the help of this extraordinary Wishlist modules, you can provide a seamless shopping experience to your potential customers by allowing them to create a wishlist and add their desired products to that wishlist so that they find all their items in one place later.
291
 
292
+ [More Details](https://woolentor.com/doc/wishlist-for-woocommerce/)
293
+
294
+ = ⚖️ Product Compare or Comparison Table Module =
295
  Product Compare is a wonderful module that lets you add a product comparison option to your WooCommerce store using which your store visitors will be able to compare different products in a table layout or a popup window. This allows them to check the differences among the products based on several attributes while helping them make the buying decision easier at the same time.
296
 
297
+ [More Details](https://woolentor.com/doc/woocommerce-product-compare/)
298
+
299
+ = Flash Sale Countdown =
300
  Flash Sale Countdown module allows you to show discounts available for a limited time. Short-term sales can be a fantastic way to sell a large number of items in a few hours. If your company expects an exceptional rise in your checkout counts, you ought to use the Flash Sale Countdown module on New Year's Eve, Black Friday, Christmas, and other holiday sales.
301
 
302
+ [More Details](https://woolentor.com/doc/enable-sales-countdown-timer-in-woocommerce/)
303
+
304
+ = Shopify Style Checkout Page in WooCommerce =
305
  When it comes to the Checkout page, customers always prefer a clean and simple one rather than a complicated one with lots of fields. A lengthy Checkout form can even increase cart abandonment while also negatively affecting the conversion rates. With this in mind, we have added a fantastic feature, which will enable you to create a Shopify style Checkout page that is pretty straightforward. Furthermore, it will provide the customers with an amazing Checkout experience.
306
 
307
+ [More Details](https://woolentor.com/shopify-style-checkout-page-in-woocommerce/)
308
+
309
+ = Advanced Ajax Search Widget Module =
310
  For any online store, WooLentor's WooCommerce Ajax search module is a must-have. It enables customers to locate what they want swiftly and efficiently, without having to go through other pages or wait for the page to load. The WooCommerce Ajax search widget by WooLentor is quick, dependable, and simple to use.
311
 
312
+ [More Details](https://woolentor.com/doc/how-to-use-woocommerce-ajax-search/)
313
+
314
+ = Single Product Ajax Add to Cart Module =
315
  Customers who browse stores with a lot of products may find the Single Product WooCommerce Ajax Add to Cart module to be a tremendous time-saver. It speeds up the add-to-cart process by eliminating the need to refresh or reload the page whenever a product is added to the cart, saving customers time. Furthermore, because the module uses ajax, it can keep customers on the same page while they shop, allowing them to continue browsing other products without interruption.
316
 
317
+ [More Details](https://woolentor.com/doc/single-product-ajax-add-to-cart/)
318
+
319
+ = Backorder Module =
320
  You may use a Backorder module to enable your consumers to make purchases from you that you can't currently fulfill. Cross-docking strategies, such as those used by organized firms, can help them fill orders quickly once goods arrive, saving time and resources. Backorders offer flexibility to warehouse management when products take up a lot of room or when aa customer needs to pay and receive the product at a later date.
321
 
322
+ [More Details](https://woolentor.com/doc/how-to-enable-woocommerce-backorder/)
323
+
324
+ = WordPress Post and WooCommerce Product Duplicator =
325
  This module may be handy if you want to build a new product based on an existing one or make a minor modification to an established article. The WooLentor Post Duplicator makes it simple to duplicate any post type, including custom post kinds.
326
 
327
+ [More Details](https://woolentor.com/doc/duplicate-woocommerce-product/)
328
+
329
+ = Checkout Field Editor or Manager (Pro) =
330
  The checkout procedure is one of the most vital aspects of running a successful online store. It's easy to lose customers at this crucial stage if you're not careful. That's why it's essential to have a simple and user-friendly checkout process. With the WooLentor Checkout Field Editor/Manager Module, you'll be able to easily edit, add, and remove fields from your checkout page. Using this Checkout field manager module, you can make sure that your customers have a smooth and hassle-free experience when they're checking out.
331
 
332
+ [More Details](https://woolentor.com/doc/checkout-field-editor/)
333
+
334
+ = Multi-Step Checkout (Pro) =
335
  The checkout process is the most important step in your customer’s journey, and it should be as easy and seamless as possible. That’s why we created our Multi-Step Checkout feature that allows you to create a more effective and organized checkout page by dividing the process into several simpler steps.
336
 
337
+ [More Details](https://woolentor.com/doc/woocommerce-multi-step-checkout/)
338
+
339
+ = Partial Payment (Pro) =
340
  Customers may utilize the partial payment option to make a part payment since they just don't have enough money on hand to pay the invoice in full. Store owners can handle partial payments and decide whether or not consumers can get the product right away or only after they pay full price.
341
 
342
+ [More Details](https://woolentor.com/doc/how-to-accept-partial-payment-in-woocommerce/)
343
+
344
+ = Pre-Order Module (Pro) =
345
  A preorder is a purchase in which a customer makes before the product officially becomes available. Pre-ordering is a powerful marketing module that lets you reserve items ahead of time and charge customers a deposit or full payment. Customers also enjoy pre-ordering as it ensures that they will obtain the product right after it has been released. The main benefit of utilizing a pre-order strategy is that it allows you to grow eCommerce sales and forecast consumer demand.
346
 
347
+ [More Details](https://woolentor.com/doc/how-to-set-pre-order-for-woocommerce/)
348
+
349
+ = WooCommerce Product Size Chart Module (Pro) =
350
  The WooCommerce Product Size Chart is an excellent module for e-commerce businesses that sell a wide range of wearable items. This powerful tool allows you to create simple size recommendations that enable your consumers to choose the right product size and make their purchase decisions quickly and easily. The Product Size Chart for WooCommerce can help you streamline your buying experience by making it easy for customers to find the right product size.
351
 
352
+ [More Details](https://woolentor.com/doc/woocommerce-product-size-chart/)
353
+
354
+ = GTM Conversion Tracking (Google Tag Manager) Module (Pro) =
355
  GTM Conversion Tracking Module helps you keep track of conversions and assign them to specific sources. You may identify whether a sale was caused by a Google Ads/Facebook Ads, a direct website visit, or a social media post. When you link your store seamlessly with GTM, you'll generate more income from advertising by gathering precise sales data.
356
 
357
+ = Single Product Sticky Add to cart Module (Pro) =
358
  One of the most essential aspects of building a successful online shop is to make the process as simple and straightforward as possible for your consumers. Using the sticky add-to-cart module, which may be added to any product page, is an excellent approach to achieve this. Customers will be able to see their shopping carts on every product page, regardless of where they are in your shop, making it easier for them to complete their purchases.
359
 
360
+ [More Details](https://woolentor.com/doc/single-product-sticky-add-to-cart/)
361
+
362
+ = Side Mini Cart / Cart Drawer Module (Pro) =
363
  WooLentor's Cart Drawer or Side Mini Cart for WooCommerce is a useful module that displays a list of current cart items on your website. This helps to improve the purchasing experience for your consumers by allowing them to keep track of their progress without ever having to leave the page. It also makes removing things from their cart simple - there's no need to go to the shopping cart page, they can just click 'remove' next to the item in the mini cart.
364
 
365
+ [More Details](https://woolentor.com/doc/side-mini-cart-for-woocommerce/)
366
+
367
+ = Redirect to checkout (Pro) =
368
  The Redirect to Checkout Module of WooLentor is an excellent tool for keeping your customers on track and ensuring a quick checkout process. This module allows you to send visitors to the checkout page of your website after they click the add to cart button so they can complete the purchase promptly and easily. Redirecting people to the checkout page before they leave your site helps to increase conversion rates and boost sales.
369
 
370
+ [More Details](https://woolentor.com/doc/redirect-to-checkout/)
371
 
 
372
 
373
+ == Extensions: ==
 
374
 
375
  <strong>💰 [Whols for WooCommerce Wholesale](https://wordpress.org/plugins/whols/)</strong>
376
  Whols is an outstanding WordPress plugin for WooCommerce that allows store owners to set wholesale prices for the products of their online stores. This plugin enables you to show special wholesale prices to the wholesaler.
440
 
441
  == Changelog ==
442
 
443
+ = Version: 2.4.0 - Date: 04-07-2022 =
444
+ * Added : Options to show Phone Number and Company fields in the Shopify Style Checkout module.
445
+ * Added : Variation Swatches Module.
446
+ * Added : Options to control the Quantity field and 4 layouts for the Add to Cart button.
447
+ * Added : Gutenberg blocks for the Shop, Archive, and Product pages.
448
+ * Tweak : The compatibility of the Shopify Style Checkout module with WooFunnels' Order Bump feature.
449
+ * Solved : A display issue with the share button when no products are available to compare.
450
+
451
  = Version: 2.3.2 - Date: 20-06-2022 =
452
  * Added : Support to display currency position with space in filter widgets.
453
  * Added : Style option in wishlist table addon.
890
  3. ‘WOOLENTOR’ Category will be appear in Elementor page Editor
891
  4. Create new Product slider or product tab and relax!
892
 
893
+ == Frequently Asked Questions ==
894
+
895
+ = Can I use WooLentor without WooComemrce? =
896
+
897
+ No, WooLentor is a plugin for WooCommerce and cannot be used without it. You need to use WooCommerce with WooLentor for your online store.
898
+
899
+ = What are the minimum requirements for using WooLentor? =
900
+
901
+ WooLentor has been tested with the most up-to-date versions of both WordPress and WooCommerce.
902
+
903
+ = How can I redirect to checkout page in WooCommerce? =
904
+
905
+ Yes, you can set up a redirect to the checkout page in WooCommerce to skip the cart page. To do this, please follow these steps:
906
+
907
+ 1. Go to Dashboard > WooLentor > Modules.
908
+
909
+ 2. Enable Redirect to Checkout on Add to Cart.
910
+
911
+ 3. Visit the Shop/Store and click the add to cart button.
912
+
913
+ You can follow this [doc](https://woolentor.com/doc/redirect-to-checkout/).
914
+
915
+ = How do I create a multi-step checkout in WooCommerce? =
916
+
917
+ WooLentor Pro provides an easy way to create a multi-step checkout. You can follow [this documentation](https://woolentor.com/doc/woocommerce-multi-step-checkout/) to create a multi-step checkout in WooCommerce.
918
+
919
+ 1. Go to Dashboard > WooLentor > Modules.
920
+
921
+ 2. Enable Multi-Step Checkout.
922
+
923
+ 3. From WooLentor Template Builder > Add New Template
924
+
925
+ 4. Select the template type “Checkout”
926
+
927
+ 5. Drag WL: Multi-Step Checkout widget and Edit the template
928
+
929
+ = How do I add a wishlist in WooCommerce? =
930
+
931
+ WooLentor provides a module for Wishlist, using that module you can easily add a wishlist to the WooCommerce product and archive page. You can follow the [documentation here](https://woolentor.com/doc/wishlist-for-woocommerce/):
932
+
933
+ 1. Go to Dashboard > WooLentor > Modules.
934
+
935
+ 2. Enable Wishlist.
936
+
937
+ 3. WooLentor > Wishlist
938
+
939
+ 4. Make necessary setting
940
+
941
+ = How do I compare products in WooCommerce? =
942
+
943
+ Yes, you can use the WooCommerce Product Compare plugin to compare products in WooCommerce. You can follow the steps below:
944
+
945
+ 1. Install and activate the WooLentor plugin.
946
+
947
+ 2. Go to Dashboard > WooLentor > Modules and enable the Product Compare module.
948
+
949
+ 3. Enable the Compare module
950
+
951
+ 4. Go to WooLentor > Compare
952
+
953
+ 5. Compare Settings
954
+
955
+ You can check [full docs here](https://woolentor.com/doc/woocommerce-product-compare/)
956
+
957
+ = How do I add a flash sale countdown timer in WooCommerce? =
958
+
959
+ Yes, you can use the [WooCommerce Product Flash sale Countdown](https://woolentor.com/doc/enable-sales-countdown-timer-in-woocommerce/) module to add pre schedule or on schedule sale discount countdown timer in WooCommerce. You can follow the steps below:
960
+
961
+ 1. Install and activate the WooLentor plugin.
962
+
963
+ 2. Go to Dashboard > WooLentor > Modules.
964
+
965
+ 3. Enable the Countdown module.
966
+
967
+ WooCommerce Sales countdown can boost your sales. If you are looking for a countdown plugin for WooCommerce, then you can use Woolentor for your online store. WooLentor has the Elementor countdown addon or widget which helps to display the countdown for any special day offer like Christmas countdown, Blackfriday countdown, etc.
968
+
969
+ = How to enable backorder in WooCommerce? =
970
+
971
+ You can enable backorder in WooCommerce using WooLentor's backorder module. Follow the following steps:
972
+
973
+ Step 1: Enable the Backorder module
974
+
975
+ Step 2: Go to Product Edit Page
976
+
977
+ Step 3: Setup Backorder for the product
978
+
979
+ You can check the full documentation about "How to enable backorder in WooCommerce?" [from this link](https://woolentor.com/doc/how-to-enable-woocommerce-backorder/).
980
+
981
+ = How to make WooCommerce checkout look like Shopify? =
982
+
983
+ WooLentor provides a module to customize the default WooCommerce checkout design to look like Shopify. You can follow these steps:
984
+
985
+ 1. Install and activate the WooLentor plugin
986
+
987
+ 2. Go to Dashboard > WooLentor > Modules
988
+
989
+ 3. Enable the Shopify Style Checkout
990
+
991
+ = What is AJAX search for WooCommerce? =
992
+
993
+ WooCommerce Ajax Search makes it quick and easy to search for items in your online store without having to reload the page. Results are displayed in real-time, allowing users to see them immediately.
994
+
995
+ = How do I add AJAX search in WooCommerce? =
996
+
997
+ WooLentor comes with the Ajax Live Product search module/WooCommerce search form. It helps your customers to find their desired products quickly and easily from your WooCommerce store without full-text searching. WooLentor's ajax search form enables category wise search widger or WooCommerce search taxonomy search bar. The benefits of using this WooCommerce fast search/Woo ajax search module are - Ajax shopping experience, visual product search/product image search, ajax search suggestion, etc.
998
+
999
+ You can follow these steps:
1000
+
1001
+ 1. Install and activate the WooLentor plugin
1002
+
1003
+ 2. Go to Dashboard > WooLentor > Modules.
1004
+
1005
+ 3. Enable Ajax Search Widget.
1006
+
1007
+ 4. Edit the page template from the WooLentor > Template Builder.
1008
+
1009
+ 5. Drag and drop the ajax product search widget.
1010
+
1011
+ = How to add Ajax Add to cart on WooCommerce product Page? =
1012
+
1013
+ WooLentor has a module for ajax based cart or quick add to cart. You can use the WooLentor Ajax add to cart module for adding ajax add to cart functionality on WooCommerce product page. You can follow these steps:
1014
+
1015
+ 1. Install and activate the WooLentor plugin.
1016
+
1017
+ 2. Go to Dashboard > WooLentor > Modules.
1018
+
1019
+ 3. Enable Ajax Add To Cart Module.
1020
+
1021
+ = How to add a custom field in WooCommerce checkout? =
1022
+
1023
+ WooLentor Pro has a module for WooCommerce checkout field editor. You can use the WooCommerce checkout fields manager module to add custom fields/WooCommerce additional fields/WooCommerce extra checkout fields, hide checkout fields, and remove billing fields on the WooCommerce checkout page. You can follow these steps:
1024
+
1025
+ 1. Install and activate the WooLentor plugin.
1026
+
1027
+ 2. Go to Dashboard > WooLentor > Modules.
1028
+
1029
+ 3. Enable Checkout Field Manager Module.
1030
+
1031
+ 4. Modify Checkout fields.
1032
+
1033
+ 5. Add new fields if required.
1034
+
1035
+ 6. Save changes.
1036
+
1037
+ = How do I add a Product size chart in WooCommerce? =
1038
+
1039
+ WooLentor pro has the size chart WooCommerce module. You can use the WooCommerce size guide module to add a size chart on the product page. You can follow these steps:
1040
+
1041
+ 1. Install and activate the WooLentor plugin.
1042
+
1043
+ 2. Go to Dashboard > WooLentor > Modules.
1044
+
1045
+ 3. Enable WooCommerce Size Chart Module.
1046
+
1047
+ 4. Go to WooLentor > Size Charts
1048
+
1049
+ 5. Add a New Size chart.
1050
+
1051
+ 6. Choose Product and Save.
1052
+
1053
+ = How to edit labels in WooCommerce? =
1054
+
1055
+ WooLentor has a module for WooCommerce label customization. You can use the WooCommerce custom product label module to edit/change labels on product label, WooCommerce add to cart button label, out of stock label, categories/Archive page labels, and tags pages of the WooCommerce store. You can follow these steps:
1056
+
1057
+ 1. Install and activate the WooLentor plugin.
1058
+
1059
+ 2. Go to Dashboard > WooLentor > Modules.
1060
+
1061
+ 3. Enable WooCommerce rename Label Module.
1062
+
1063
+ 4. Edit the labels.
1064
+
1065
+ 5. Save changes.
1066
+
1067
+ = How to show best selling products by category? =
1068
+
1069
+ You can show best selling products using the Universal Widget of WooLentor. This widget can be used as a WooCommerce best selling product widget. Where you can show best selling products by category. To do this, follow these steps
1070
+
1071
+ 1. Edit a page where you want to add the best selling products.
1072
+ 2. Drag the Universal Widget.
1073
+ 3. Choose options to show the best sell products.
1074
+
1075
+ = How to show featured products in WooCommerce? =
1076
+
1077
+ WooLentor comes with the Universal Layout widget to show WooCommerce featured products. you can use the WooCommerce featured product query to show featured products in different ways on your store. You can follow these steps:
1078
+
1079
+ 1. Install and activate the WooLentor plugin.
1080
+
1081
+ 2. Edit a Page where you want to add the featured Products.
1082
+
1083
+ 3. Drag the Universal Layout Widget.
1084
+
1085
+ 4. Filter By > Featured Products
1086
+
1087
+ 5. To Show Featured product by category name, add categories.
1088
+
1089
+
1090
  == Screenshots ==
1091
  1. Custom Product Page Builder
1092
  2. Custom Cart Page Builder
wl-woo-templates/archive-product-canvas.php CHANGED
@@ -24,6 +24,9 @@ if( class_exists('\Elementor\Plugin') ){
24
  \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-canvas' );
25
  }
26
 
 
 
 
27
  ?>
28
  <!DOCTYPE html>
29
  <html <?php language_attributes(); ?>>
@@ -36,9 +39,11 @@ if( class_exists('\Elementor\Plugin') ){
36
  <?php wp_head(); ?>
37
  </head>
38
  <body <?php body_class(); ?>>
 
 
 
 
39
  <?php
40
- do_action( 'elementor/page_templates/canvas/before_content' );
41
- do_action( 'woolentor_woocommerce_archive_product_content' );
42
  do_action( 'elementor/page_templates/canvas/after_content' );
43
  wp_footer();
44
  ?>
24
  \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-canvas' );
25
  }
26
 
27
+ $template_id = Woolentor_Manage_WC_Template::instance()->archive_template_id();
28
+ $width = Woolentor_Manage_WC_Template::get_template_width( $template_id );
29
+
30
  ?>
31
  <!DOCTYPE html>
32
  <html <?php language_attributes(); ?>>
39
  <?php wp_head(); ?>
40
  </head>
41
  <body <?php body_class(); ?>>
42
+ <?php do_action( 'elementor/page_templates/canvas/before_content' ); ?>
43
+ <div class="woolentor-template-container" style="margin:0 auto; max-width:<?php echo $width ? $width.'px; padding: 0 15px;' : '100%;'; ?>">
44
+ <?php do_action( 'woolentor_woocommerce_archive_product_content' ); ?>
45
+ </div>
46
  <?php
 
 
47
  do_action( 'elementor/page_templates/canvas/after_content' );
48
  wp_footer();
49
  ?>
wl-woo-templates/archive-product-fullwidth.php CHANGED
@@ -24,6 +24,9 @@ if( class_exists('\Elementor\Plugin') ){
24
  \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-full-width' );
25
  }
26
 
 
 
 
27
  get_header( 'shop' );
28
 
29
  /**
@@ -35,8 +38,12 @@ get_header( 'shop' );
35
  */
36
  do_action( 'elementor/page_templates/header-footer/before_content' );
37
 
38
- do_action( 'woolentor_woocommerce_archive_product_content' );
 
 
 
 
39
 
40
- do_action( 'elementor/page_templates/header-footer/after_content' );
41
 
42
  get_footer( 'shop' );
24
  \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-full-width' );
25
  }
26
 
27
+ $template_id = Woolentor_Manage_WC_Template::instance()->archive_template_id();
28
+ $width = Woolentor_Manage_WC_Template::get_template_width( $template_id );
29
+
30
  get_header( 'shop' );
31
 
32
  /**
38
  */
39
  do_action( 'elementor/page_templates/header-footer/before_content' );
40
 
41
+ ?>
42
+
43
+ <div class="woolentor-template-container" style="margin:0 auto; max-width:<?php echo $width ? $width.'px; padding: 0 15px;' : '100%;'; ?>">
44
+ <?php do_action( 'woolentor_woocommerce_archive_product_content' ); ?>
45
+ </div>
46
 
47
+ <?php do_action( 'elementor/page_templates/header-footer/after_content' );
48
 
49
  get_footer( 'shop' );
wl-woo-templates/single-product-canvas.php CHANGED
@@ -46,11 +46,17 @@ if( class_exists('\Elementor\Plugin') ){
46
  */
47
  do_action( 'elementor/page_templates/canvas/before_content' );
48
 
49
- while ( have_posts() ) : the_post(); ?>
 
 
 
 
 
50
 
51
- <?php wc_get_template_part( 'content', 'single-product' ); ?>
52
 
53
- <?php endwhile; // end of the loop. ?>
 
54
 
55
 
56
  <?php /**
46
  */
47
  do_action( 'elementor/page_templates/canvas/before_content' );
48
 
49
+ $template_id = Woolentor_Manage_WC_Template::get_template_id( 'singleproductpage', '_selectproduct_layout' );
50
+ $width = Woolentor_Manage_WC_Template::get_template_width( $template_id );
51
+ ?>
52
+
53
+ <div class="woolentor-template-container" style="margin:0 auto; max-width:<?php echo $width ? $width.'px; padding: 0 15px;' : '100%;'; ?>">
54
+ <?php while ( have_posts() ) : the_post(); ?>
55
 
56
+ <?php wc_get_template_part( 'content', 'single-product' ); ?>
57
 
58
+ <?php endwhile; // end of the loop. ?>
59
+ </div>
60
 
61
 
62
  <?php /**
wl-woo-templates/single-product-fullwidth.php CHANGED
@@ -33,16 +33,19 @@ get_header( 'shop' );
33
  *
34
  * @since 2.0.0
35
  */
36
- do_action( 'elementor/page_templates/header-footer/before_content' ); ?>
37
 
 
 
38
 
 
39
 
 
40
  <?php while ( have_posts() ) : the_post(); ?>
41
 
42
  <?php wc_get_template_part( 'content', 'single-product' ); ?>
43
 
44
  <?php endwhile; // end of the loop. ?>
45
-
46
 
47
  <?php
48
 
33
  *
34
  * @since 2.0.0
35
  */
 
36
 
37
+ $template_id = Woolentor_Manage_WC_Template::get_template_id( 'singleproductpage', '_selectproduct_layout' );
38
+ $width = Woolentor_Manage_WC_Template::get_template_width( $template_id );
39
 
40
+ do_action( 'elementor/page_templates/header-footer/before_content' ); ?>
41
 
42
+ <div class="woolentor-template-container" style="margin:0 auto; max-width:<?php echo $width ? $width.'px; padding: 0 15px;' : '100%;'; ?>">
43
  <?php while ( have_posts() ) : the_post(); ?>
44
 
45
  <?php wc_get_template_part( 'content', 'single-product' ); ?>
46
 
47
  <?php endwhile; // end of the loop. ?>
48
+ </div>
49
 
50
  <?php
51
 
woolentor-blocks/build/blocks-woolentor.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'a2a948c37b1dd0ad60ca9fee46fd43a6');
1
+ <?php return array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render', 'wp-url'), 'version' => 'b931e47d5d2222872889');
woolentor-blocks/build/blocks-woolentor.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=49)}([function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.blockEditor},function(e,t){e.exports=window.React},function(e,t,n){var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var a=typeof o;if("string"===a||"number"===a)e.push(o);else if(Array.isArray(o)){if(o.length){var l=r.apply(null,o);l&&e.push(l)}}else if("object"===a)if(o.toString===Object.prototype.toString)for(var i in o)n.call(o,i)&&o[i]&&e.push(i);else e.push(o.toString())}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},function(e,t,n){"use strict";(function(e){var o=n(23),r=n(4),a=n.n(r),l=n(29),i=n.n(l),c=n(30),s=n(31),u=n(26),p=n(24),d=n.n(p);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var m=function(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n},b=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!Object(o.typeOf)(e)},g=Object.freeze([]),h=Object.freeze({});function y(e){return"function"==typeof e}function v(e){return e.displayName||e.name||"Component"}function w(e){return e&&"string"==typeof e.styledComponentId}var O=void 0!==e&&(e.env.REACT_APP_SC_ATTR||e.env.SC_ATTR)||"data-styled",_="undefined"!=typeof window&&"HTMLElement"in window,C=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:void 0!==e&&void 0!==e.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==e.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==e.env.REACT_APP_SC_DISABLE_SPEEDY&&e.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==e&&void 0!==e.env.SC_DISABLE_SPEEDY&&""!==e.env.SC_DISABLE_SPEEDY&&"false"!==e.env.SC_DISABLE_SPEEDY&&e.env.SC_DISABLE_SPEEDY);function E(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(n.length>0?" Args: "+n.join(", "):""))}var R=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)(r<<=1)<0&&E(16,""+e);this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var a=o;a<r;a++)this.groupSizes[a]=0}for(var l=this.indexOfGroup(e+1),i=0,c=t.length;i<c;i++)this.tag.insertRule(l,t[i])&&(this.groupSizes[e]++,l++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,a=o;a<r;a++)t+=this.tag.getRule(a)+"/*!sc*/\n";return t},e}(),j=new Map,k=new Map,S=1,P=function(e){if(j.has(e))return j.get(e);for(;k.has(S);)S++;var t=S++;return j.set(e,t),k.set(t,e),t},F=function(e){return k.get(e)},A=function(e,t){t>=S&&(S=t+1),j.set(e,t),k.set(t,e)},T="style["+O+'][data-styled-version="5.3.1"]',B=new RegExp("^"+O+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),x=function(e,t,n){for(var o,r=n.split(","),a=0,l=r.length;a<l;a++)(o=r[a])&&e.registerName(t,o)},z=function(e,t){for(var n=(t.innerHTML||"").split("/*!sc*/\n"),o=[],r=0,a=n.length;r<a;r++){var l=n[r].trim();if(l){var i=l.match(B);if(i){var c=0|parseInt(i[1],10),s=i[2];0!==c&&(A(s,c),x(e,s,i[3]),e.getTag().insertRules(c,o)),o.length=0}else o.push(l)}}},D=function(){return"undefined"!=typeof window&&void 0!==window.__webpack_nonce__?window.__webpack_nonce__:null},M=function(e){var t=document.head,n=e||t,o=document.createElement("style"),r=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var o=t[n];if(o&&1===o.nodeType&&o.hasAttribute(O))return o}}(n),a=void 0!==r?r.nextSibling:null;o.setAttribute(O,"active"),o.setAttribute("data-styled-version","5.3.1");var l=D();return l&&o.setAttribute("nonce",l),n.insertBefore(o,a),o},L=function(){function e(e){var t=this.element=M(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}E(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),I=function(){function e(e){var t=this.element=M(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),o=this.nodes[e];return this.element.insertBefore(n,o||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),N=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),H=_,W={isServer:!_,useCSSOMInjection:!C},G=function(){function e(e,t,n){void 0===e&&(e=h),void 0===t&&(t={}),this.options=f({},W,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&_&&H&&(H=!1,function(e){for(var t=document.querySelectorAll(T),n=0,o=t.length;n<o;n++){var r=t[n];r&&"active"!==r.getAttribute(O)&&(z(e,r),r.parentNode&&r.parentNode.removeChild(r))}}(this))}e.registerId=function(e){return P(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(f({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,o=t.useCSSOMInjection,r=t.target,e=n?new N(r):o?new L(r):new I(r),new R(e)));var e,t,n,o,r},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(P(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(P(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(P(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,o="",r=0;r<n;r++){var a=F(r);if(void 0!==a){var l=e.names.get(a),i=t.getGroup(r);if(l&&i&&l.size){var c=O+".g"+r+'[id="'+a+'"]',s="";void 0!==l&&l.forEach((function(e){e.length>0&&(s+=e+",")})),o+=""+i+c+'{content:"'+s+'"}/*!sc*/\n'}}}return o}(this)},e}(),q=/(a)(d)/gi,U=function(e){return String.fromCharCode(e+(e>25?39:97))};function V(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=U(t%52)+n;return(U(t%52)+n).replace(q,"$1-$2")}var Q=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},K=function(e){return Q(5381,e)};function Y(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(y(n)&&!w(n))return!1}return!0}var X=K("5.3.1"),J=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&Y(e),this.componentId=t,this.baseHash=Q(X,t),this.baseStyle=n,G.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.componentId,r=[];if(this.baseStyle&&r.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(o,this.staticRulesId))r.push(this.staticRulesId);else{var a=me(this.rules,e,t,n).join(""),l=V(Q(this.baseHash,a)>>>0);if(!t.hasNameForId(o,l)){var i=n(a,"."+l,void 0,o);t.insertRules(o,l,i)}r.push(l),this.staticRulesId=l}else{for(var c=this.rules.length,s=Q(this.baseHash,n.hash),u="",p=0;p<c;p++){var d=this.rules[p];if("string"==typeof d)u+=d;else if(d){var f=me(d,e,t,n),m=Array.isArray(f)?f.join(""):f;s=Q(s,m+p),u+=m}}if(u){var b=V(s>>>0);if(!t.hasNameForId(o,b)){var g=n(u,"."+b,void 0,o);t.insertRules(o,b,g)}r.push(b)}}return r.join(" ")},e}(),Z=/^\s*\/\/.*$/gm,$=[":","[",".","#"];function ee(e){var t,n,o,r,a=void 0===e?h:e,l=a.options,i=void 0===l?h:l,s=a.plugins,u=void 0===s?g:s,p=new c.a(i),d=[],f=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,o,r,a,l,i,c,s,u,p){switch(n){case 1:if(0===u&&64===o.charCodeAt(0))return e(o+";"),"";break;case 2:if(0===s)return o+"/*|*/";break;case 3:switch(s){case 102:case 112:return e(r[0]+o),"";default:return o+(0===p?"/*|*/":"")}case-2:o.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),m=function(e,o,a){return 0===o&&-1!==$.indexOf(a[n.length])||a.match(r)?e:"."+t};function b(e,a,l,i){void 0===i&&(i="&");var c=e.replace(Z,""),s=a&&l?l+" "+a+" { "+c+" }":c;return t=i,n=a,o=new RegExp("\\"+n+"\\b","g"),r=new RegExp("(\\"+n+"\\b){2,}"),p(l||!a?"":a,s)}return p.use([].concat(u,[function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(n)>0&&(r[0]=r[0].replace(o,m))},f,function(e){if(-2===e){var t=d;return d=[],t}}])),b.hash=u.length?u.reduce((function(e,t){return t.name||E(15),Q(e,t.name)}),5381).toString():"",b}var te=a.a.createContext(),ne=(te.Consumer,a.a.createContext()),oe=(ne.Consumer,new G),re=ee();function ae(){return Object(r.useContext)(te)||oe}function le(e){var t=Object(r.useState)(e.stylisPlugins),n=t[0],o=t[1],l=ae(),c=Object(r.useMemo)((function(){var t=l;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),s=Object(r.useMemo)((function(){return ee({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return Object(r.useEffect)((function(){i()(n,e.stylisPlugins)||o(e.stylisPlugins)}),[e.stylisPlugins]),a.a.createElement(te.Provider,{value:c},a.a.createElement(ne.Provider,{value:s},e.children))}var ie=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=re);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,"@keyframes"))},this.toString=function(){return E(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=re),this.name+e.hash},e}(),ce=/([A-Z])/,se=/([A-Z])/g,ue=/^ms-/,pe=function(e){return"-"+e.toLowerCase()};function de(e){return ce.test(e)?e.replace(se,pe).replace(ue,"-ms-"):e}var fe=function(e){return null==e||!1===e||""===e};function me(e,t,n,o){if(Array.isArray(e)){for(var r,a=[],l=0,i=e.length;l<i;l+=1)""!==(r=me(e[l],t,n,o))&&(Array.isArray(r)?a.push.apply(a,r):a.push(r));return a}return fe(e)?"":w(e)?"."+e.styledComponentId:y(e)?"function"!=typeof(c=e)||c.prototype&&c.prototype.isReactComponent||!t?e:me(e(t),t,n,o):e instanceof ie?n?(e.inject(n,o),e.getName(o)):e:b(e)?function e(t,n){var o,r,a=[];for(var l in t)t.hasOwnProperty(l)&&!fe(t[l])&&(Array.isArray(t[l])&&t[l].isCss||y(t[l])?a.push(de(l)+":",t[l],";"):b(t[l])?a.push.apply(a,e(t[l],l)):a.push(de(l)+": "+(o=l,(null==(r=t[l])||"boolean"==typeof r||""===r?"":"number"!=typeof r||0===r||o in s.a?String(r).trim():r+"px")+";")));return n?[n+" {"].concat(a,["}"]):a}(e):e.toString();var c}var be=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function ge(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return y(e)||b(e)?be(me(m(g,[e].concat(n)))):0===n.length&&1===e.length&&"string"==typeof e[0]?e:be(me(m(e,n)))}new Set;var he=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,ye=/(^-|-$)/g;function ve(e){return e.replace(he,"-").replace(ye,"")}function we(e){return"string"==typeof e&&!0}var Oe=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},_e=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Ce(e,t,n){var o=e[n];Oe(t)&&Oe(o)?Ee(o,t):e[n]=t}function Ee(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];for(var r=0,a=n;r<a.length;r++){var l=a[r];if(Oe(l))for(var i in l)_e(i)&&Ce(e,l[i],i)}return e}var Re=a.a.createContext();Re.Consumer;var je={};function ke(e,t,n){var o=w(e),l=!we(e),i=t.attrs,c=void 0===i?g:i,s=t.componentId,p=void 0===s?function(e,t){var n="string"!=typeof e?"sc":ve(e);je[n]=(je[n]||0)+1;var o=n+"-"+function(e){return V(K(e)>>>0)}("5.3.1"+n+je[n]);return t?t+"-"+o:o}(t.displayName,t.parentComponentId):s,m=t.displayName,b=void 0===m?function(e){return we(e)?"styled."+e:"Styled("+v(e)+")"}(e):m,O=t.displayName&&t.componentId?ve(t.displayName)+"-"+t.componentId:t.componentId||p,_=o&&e.attrs?Array.prototype.concat(e.attrs,c).filter(Boolean):c,C=t.shouldForwardProp;o&&e.shouldForwardProp&&(C=t.shouldForwardProp?function(n,o,r){return e.shouldForwardProp(n,o,r)&&t.shouldForwardProp(n,o,r)}:e.shouldForwardProp);var E,R=new J(n,O,o?e.componentStyle:void 0),j=R.isStatic&&0===c.length,k=function(e,t){return function(e,t,n,o){var a=e.attrs,l=e.componentStyle,i=e.defaultProps,c=e.foldedComponentIds,s=e.shouldForwardProp,p=e.styledComponentId,d=e.target,m=function(e,t,n){void 0===e&&(e=h);var o=f({},t,{theme:e}),r={};return n.forEach((function(e){var t,n,a,l=e;for(t in y(l)&&(l=l(o)),l)o[t]=r[t]="className"===t?(n=r[t],a=l[t],n&&a?n+" "+a:n||a):l[t]})),[o,r]}(function(e,t,n){return void 0===n&&(n=h),e.theme!==n.theme&&e.theme||t||n.theme}(t,Object(r.useContext)(Re),i)||h,t,a),b=m[0],g=m[1],v=function(e,t,n,o){var a=ae(),l=Object(r.useContext)(ne)||re;return t?e.generateAndInjectStyles(h,a,l):e.generateAndInjectStyles(n,a,l)}(l,o,b),w=n,O=g.$as||t.$as||g.as||t.as||d,_=we(O),C=g!==t?f({},t,{},g):t,E={};for(var R in C)"$"!==R[0]&&"as"!==R&&("forwardedAs"===R?E.as=C[R]:(s?s(R,u.a,O):!_||Object(u.a)(R))&&(E[R]=C[R]));return t.style&&g.style!==t.style&&(E.style=f({},t.style,{},g.style)),E.className=Array.prototype.concat(c,p,v!==p?v:null,t.className,g.className).filter(Boolean).join(" "),E.ref=w,Object(r.createElement)(O,E)}(E,e,t,j)};return k.displayName=b,(E=a.a.forwardRef(k)).attrs=_,E.componentStyle=R,E.displayName=b,E.shouldForwardProp=C,E.foldedComponentIds=o?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):g,E.styledComponentId=O,E.target=o?e.target:e,E.withComponent=function(e){var o=t.componentId,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(t,["componentId"]),a=o&&o+"-"+(we(e)?e:ve(v(e)));return ke(e,f({},r,{attrs:_,componentId:a}),n)},Object.defineProperty(E,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?Ee({},e.defaultProps,t):t}}),E.toString=function(){return"."+E.styledComponentId},l&&d()(E,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),E}var Se,Pe=function(e){return function e(t,n,r){if(void 0===r&&(r=h),!Object(o.isValidElementType)(n))return E(1,String(n));var a=function(){return t(n,r,ge.apply(void 0,arguments))};return a.withConfig=function(o){return e(t,n,f({},r,{},o))},a.attrs=function(o){return e(t,n,f({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},a}(ke,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Pe[e]=Pe(e)})),(Se=function(e,t){this.rules=e,this.componentId=t,this.isStatic=Y(e),G.registerId(this.componentId+1)}.prototype).createStyles=function(e,t,n,o){var r=o(me(this.rules,t,n,o).join(""),""),a=this.componentId+e;n.insertRules(a,a,r)},Se.removeStyles=function(e,t){t.clearRules(this.componentId+e)},Se.renderStyles=function(e,t,n,o){e>2&&G.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},function(){var e=function(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=D();return"<style "+[n&&'nonce="'+n+'"',O+'="true"','data-styled-version="5.3.1"'].filter(Boolean).join(" ")+">"+t+"</style>"},this.getStyleTags=function(){return e.sealed?E(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return E(2);var n=((t={})[O]="",t["data-styled-version"]="5.3.1",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=D();return o&&(n.nonce=o),[a.a.createElement("style",f({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new G({isServer:!0}),this.sealed=!1}.prototype;e.collectStyles=function(e){return this.sealed?E(2):a.a.createElement(le,{sheet:this.instance},e)},e.interleaveWithNodeStream=function(e){return E(3)}}(),t.a=Pe}).call(this,n(47))},function(e,t){e.exports=window.wp.apiFetch},function(e,t){e.exports=window.wp.url},function(e,t){e.exports=window.wp.compose},function(e,t){e.exports=window.wp.data},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clamp=c,t.canUseDOM=t.slidesOnLeft=t.slidesOnRight=t.siblingDirection=t.getTotalSlides=t.getPostClones=t.getPreClones=t.getTrackLeft=t.getTrackAnimateCSS=t.getTrackCSS=t.checkSpecKeys=t.getSlideCount=t.checkNavigable=t.getNavigableIndexes=t.swipeEnd=t.swipeMove=t.swipeStart=t.keyHandler=t.changeSlide=t.slideHandler=t.initializedState=t.extractObject=t.canGoNext=t.getSwipeDirection=t.getHeight=t.getWidth=t.lazySlidesOnRight=t.lazySlidesOnLeft=t.lazyEndIndex=t.lazyStartIndex=t.getRequiredLazySlides=t.getOnDemandLazySlides=t.safePreventDefault=void 0;var o,r=(o=n(4))&&o.__esModule?o:{default:o};function a(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 l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t,n){return Math.max(t,Math.min(e,n))}var s=function(e){["onTouchStart","onTouchMove","onWheel"].includes(e._reactName)||e.preventDefault()};t.safePreventDefault=s;var u=function(e){for(var t=[],n=p(e),o=d(e),r=n;r<o;r++)e.lazyLoadedList.indexOf(r)<0&&t.push(r);return t};t.getOnDemandLazySlides=u,t.getRequiredLazySlides=function(e){for(var t=[],n=p(e),o=d(e),r=n;r<o;r++)t.push(r);return t};var p=function(e){return e.currentSlide-f(e)};t.lazyStartIndex=p;var d=function(e){return e.currentSlide+m(e)};t.lazyEndIndex=d;var f=function(e){return e.centerMode?Math.floor(e.slidesToShow/2)+(parseInt(e.centerPadding)>0?1:0):0};t.lazySlidesOnLeft=f;var m=function(e){return e.centerMode?Math.floor((e.slidesToShow-1)/2)+1+(parseInt(e.centerPadding)>0?1:0):e.slidesToShow};t.lazySlidesOnRight=m;var b=function(e){return e&&e.offsetWidth||0};t.getWidth=b;var g=function(e){return e&&e.offsetHeight||0};t.getHeight=g;var h=function(e){var t,n,o,r,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t=e.startX-e.curX,n=e.startY-e.curY,o=Math.atan2(n,t),(r=Math.round(180*o/Math.PI))<0&&(r=360-Math.abs(r)),r<=45&&r>=0||r<=360&&r>=315?"left":r>=135&&r<=225?"right":!0===a?r>=35&&r<=135?"up":"down":"vertical"};t.getSwipeDirection=h;var y=function(e){var t=!0;return e.infinite||(e.centerMode&&e.currentSlide>=e.slideCount-1||e.slideCount<=e.slidesToShow||e.currentSlide>=e.slideCount-e.slidesToShow)&&(t=!1),t};t.canGoNext=y,t.extractObject=function(e,t){var n={};return t.forEach((function(t){return n[t]=e[t]})),n},t.initializedState=function(e){var t,n=r.default.Children.count(e.children),o=e.listRef,a=Math.ceil(b(o)),i=e.trackRef&&e.trackRef.node,c=Math.ceil(b(i));if(e.vertical)t=a;else{var s=e.centerMode&&2*parseInt(e.centerPadding);"string"==typeof e.centerPadding&&"%"===e.centerPadding.slice(-1)&&(s*=a/100),t=Math.ceil((a-s)/e.slidesToShow)}var p=o&&g(o.querySelector('[data-index="0"]')),d=p*e.slidesToShow,f=void 0===e.currentSlide?e.initialSlide:e.currentSlide;e.rtl&&void 0===e.currentSlide&&(f=n-1-e.initialSlide);var m=e.lazyLoadedList||[],h=u(l(l({},e),{},{currentSlide:f,lazyLoadedList:m})),y={slideCount:n,slideWidth:t,listWidth:a,trackWidth:c,currentSlide:f,slideHeight:p,listHeight:d,lazyLoadedList:m=m.concat(h)};return null===e.autoplaying&&e.autoplay&&(y.autoplaying="playing"),y},t.slideHandler=function(e){var t=e.waitForAnimate,n=e.animating,o=e.fade,r=e.infinite,a=e.index,i=e.slideCount,s=e.lazyLoad,p=e.currentSlide,d=e.centerMode,f=e.slidesToScroll,m=e.slidesToShow,b=e.useCSS,g=e.lazyLoadedList;if(t&&n)return{};var h,v,w,O=a,_={},j={},k=r?a:c(a,0,i-1);if(o){if(!r&&(a<0||a>=i))return{};a<0?O=a+i:a>=i&&(O=a-i),s&&g.indexOf(O)<0&&(g=g.concat(O)),_={animating:!0,currentSlide:O,lazyLoadedList:g,targetSlide:O},j={animating:!1,targetSlide:O}}else h=O,O<0?(h=O+i,r?i%f!=0&&(h=i-i%f):h=0):!y(e)&&O>p?O=h=p:d&&O>=i?(O=r?i:i-1,h=r?0:i-1):O>=i&&(h=O-i,r?i%f!=0&&(h=0):h=i-m),!r&&O+m>=i&&(h=i-m),v=R(l(l({},e),{},{slideIndex:O})),w=R(l(l({},e),{},{slideIndex:h})),r||(v===w&&(O=h),v=w),s&&(g=g.concat(u(l(l({},e),{},{currentSlide:O})))),b?(_={animating:!0,currentSlide:h,trackStyle:E(l(l({},e),{},{left:v})),lazyLoadedList:g,targetSlide:k},j={animating:!1,currentSlide:h,trackStyle:C(l(l({},e),{},{left:w})),swipeLeft:null,targetSlide:k}):_={currentSlide:h,trackStyle:C(l(l({},e),{},{left:w})),lazyLoadedList:g,targetSlide:k};return{state:_,nextState:j}},t.changeSlide=function(e,t){var n,o,r,a,i=e.slidesToScroll,c=e.slidesToShow,s=e.slideCount,u=e.currentSlide,p=e.targetSlide,d=e.lazyLoad,f=e.infinite;if(n=s%i!=0?0:(s-u)%i,"previous"===t.message)a=u-(r=0===n?i:c-n),d&&!f&&(a=-1==(o=u-r)?s-1:o),f||(a=p-i);else if("next"===t.message)a=u+(r=0===n?i:n),d&&!f&&(a=(u+i)%s+n),f||(a=p+i);else if("dots"===t.message)a=t.index*t.slidesToScroll;else if("children"===t.message){if(a=t.index,f){var m=P(l(l({},e),{},{targetSlide:a}));a>t.currentSlide&&"left"===m?a-=s:a<t.currentSlide&&"right"===m&&(a+=s)}}else"index"===t.message&&(a=Number(t.index));return a},t.keyHandler=function(e,t,n){return e.target.tagName.match("TEXTAREA|INPUT|SELECT")||!t?"":37===e.keyCode?n?"next":"previous":39===e.keyCode?n?"previous":"next":""},t.swipeStart=function(e,t,n){return"IMG"===e.target.tagName&&s(e),!t||!n&&-1!==e.type.indexOf("mouse")?"":{dragging:!0,touchObject:{startX:e.touches?e.touches[0].pageX:e.clientX,startY:e.touches?e.touches[0].pageY:e.clientY,curX:e.touches?e.touches[0].pageX:e.clientX,curY:e.touches?e.touches[0].pageY:e.clientY}}},t.swipeMove=function(e,t){var n=t.scrolling,o=t.animating,r=t.vertical,a=t.swipeToSlide,i=t.verticalSwiping,c=t.rtl,u=t.currentSlide,p=t.edgeFriction,d=t.edgeDragged,f=t.onEdge,m=t.swiped,b=t.swiping,g=t.slideCount,v=t.slidesToScroll,w=t.infinite,O=t.touchObject,_=t.swipeEvent,E=t.listHeight,j=t.listWidth;if(!n){if(o)return s(e);r&&a&&i&&s(e);var k,S={},P=R(t);O.curX=e.touches?e.touches[0].pageX:e.clientX,O.curY=e.touches?e.touches[0].pageY:e.clientY,O.swipeLength=Math.round(Math.sqrt(Math.pow(O.curX-O.startX,2)));var F=Math.round(Math.sqrt(Math.pow(O.curY-O.startY,2)));if(!i&&!b&&F>10)return{scrolling:!0};i&&(O.swipeLength=F);var A=(c?-1:1)*(O.curX>O.startX?1:-1);i&&(A=O.curY>O.startY?1:-1);var T=Math.ceil(g/v),B=h(t.touchObject,i),x=O.swipeLength;return w||(0===u&&("right"===B||"down"===B)||u+1>=T&&("left"===B||"up"===B)||!y(t)&&("left"===B||"up"===B))&&(x=O.swipeLength*p,!1===d&&f&&(f(B),S.edgeDragged=!0)),!m&&_&&(_(B),S.swiped=!0),k=r?P+x*(E/j)*A:c?P-x*A:P+x*A,i&&(k=P+x*A),S=l(l({},S),{},{touchObject:O,swipeLeft:k,trackStyle:C(l(l({},t),{},{left:k}))}),Math.abs(O.curX-O.startX)<.8*Math.abs(O.curY-O.startY)||O.swipeLength>10&&(S.swiping=!0,s(e)),S}},t.swipeEnd=function(e,t){var n=t.dragging,o=t.swipe,r=t.touchObject,a=t.listWidth,i=t.touchThreshold,c=t.verticalSwiping,u=t.listHeight,p=t.swipeToSlide,d=t.scrolling,f=t.onSwipe,m=t.targetSlide,b=t.currentSlide,g=t.infinite;if(!n)return o&&s(e),{};var y=c?u/i:a/i,v=h(r,c),_={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(d)return _;if(!r.swipeLength)return _;if(r.swipeLength>y){var C,j;s(e),f&&f(v);var k=g?b:m;switch(v){case"left":case"up":j=k+O(t),C=p?w(t,j):j,_.currentDirection=0;break;case"right":case"down":j=k-O(t),C=p?w(t,j):j,_.currentDirection=1;break;default:C=k}_.triggerSlideHandler=C}else{var S=R(t);_.trackStyle=E(l(l({},t),{},{left:S}))}return _};var v=function(e){for(var t=e.infinite?2*e.slideCount:e.slideCount,n=e.infinite?-1*e.slidesToShow:0,o=e.infinite?-1*e.slidesToShow:0,r=[];n<t;)r.push(n),n=o+e.slidesToScroll,o+=Math.min(e.slidesToScroll,e.slidesToShow);return r};t.getNavigableIndexes=v;var w=function(e,t){var n=v(e),o=0;if(t>n[n.length-1])t=n[n.length-1];else for(var r in n){if(t<n[r]){t=o;break}o=n[r]}return t};t.checkNavigable=w;var O=function(e){var t=e.centerMode?e.slideWidth*Math.floor(e.slidesToShow/2):0;if(e.swipeToSlide){var n,o=e.listRef,r=o.querySelectorAll&&o.querySelectorAll(".slick-slide")||[];if(Array.from(r).every((function(o){if(e.vertical){if(o.offsetTop+g(o)/2>-1*e.swipeLeft)return n=o,!1}else if(o.offsetLeft-t+b(o)/2>-1*e.swipeLeft)return n=o,!1;return!0})),!n)return 0;var a=!0===e.rtl?e.slideCount-e.currentSlide:e.currentSlide;return Math.abs(n.dataset.index-a)||1}return e.slidesToScroll};t.getSlideCount=O;var _=function(e,t){return t.reduce((function(t,n){return t&&e.hasOwnProperty(n)}),!0)?null:console.error("Keys Missing:",e)};t.checkSpecKeys=_;var C=function(e){var t,n;_(e,["left","variableWidth","slideCount","slidesToShow","slideWidth"]);var o=e.slideCount+2*e.slidesToShow;e.vertical?n=o*e.slideHeight:t=S(e)*e.slideWidth;var r={opacity:1,transition:"",WebkitTransition:""};if(e.useTransform){var a=e.vertical?"translate3d(0px, "+e.left+"px, 0px)":"translate3d("+e.left+"px, 0px, 0px)",i=e.vertical?"translate3d(0px, "+e.left+"px, 0px)":"translate3d("+e.left+"px, 0px, 0px)",c=e.vertical?"translateY("+e.left+"px)":"translateX("+e.left+"px)";r=l(l({},r),{},{WebkitTransform:a,transform:i,msTransform:c})}else e.vertical?r.top=e.left:r.left=e.left;return e.fade&&(r={opacity:1}),t&&(r.width=t),n&&(r.height=n),window&&!window.addEventListener&&window.attachEvent&&(e.vertical?r.marginTop=e.left+"px":r.marginLeft=e.left+"px"),r};t.getTrackCSS=C;var E=function(e){_(e,["left","variableWidth","slideCount","slidesToShow","slideWidth","speed","cssEase"]);var t=C(e);return e.useTransform?(t.WebkitTransition="-webkit-transform "+e.speed+"ms "+e.cssEase,t.transition="transform "+e.speed+"ms "+e.cssEase):e.vertical?t.transition="top "+e.speed+"ms "+e.cssEase:t.transition="left "+e.speed+"ms "+e.cssEase,t};t.getTrackAnimateCSS=E;var R=function(e){if(e.unslick)return 0;_(e,["slideIndex","trackRef","infinite","centerMode","slideCount","slidesToShow","slidesToScroll","slideWidth","listWidth","variableWidth","slideHeight"]);var t,n,o=e.slideIndex,r=e.trackRef,a=e.infinite,l=e.centerMode,i=e.slideCount,c=e.slidesToShow,s=e.slidesToScroll,u=e.slideWidth,p=e.listWidth,d=e.variableWidth,f=e.slideHeight,m=e.fade,b=e.vertical;if(m||1===e.slideCount)return 0;var g=0;if(a?(g=-j(e),i%s!=0&&o+s>i&&(g=-(o>i?c-(o-i):i%s)),l&&(g+=parseInt(c/2))):(i%s!=0&&o+s>i&&(g=c-i%s),l&&(g=parseInt(c/2))),t=b?o*f*-1+g*f:o*u*-1+g*u,!0===d){var h,y=r&&r.node;if(h=o+j(e),t=(n=y&&y.childNodes[h])?-1*n.offsetLeft:0,!0===l){h=a?o+j(e):o,n=y&&y.children[h],t=0;for(var v=0;v<h;v++)t-=y&&y.children[v]&&y.children[v].offsetWidth;t-=parseInt(e.centerPadding),t+=n&&(p-n.offsetWidth)/2}}return t};t.getTrackLeft=R;var j=function(e){return e.unslick||!e.infinite?0:e.variableWidth?e.slideCount:e.slidesToShow+(e.centerMode?1:0)};t.getPreClones=j;var k=function(e){return e.unslick||!e.infinite?0:e.slideCount};t.getPostClones=k;var S=function(e){return 1===e.slideCount?1:j(e)+e.slideCount+k(e)};t.getTotalSlides=S;var P=function(e){return e.targetSlide>e.currentSlide?e.targetSlide>e.currentSlide+F(e)?"left":"right":e.targetSlide<e.currentSlide-A(e)?"right":"left"};t.siblingDirection=P;var F=function(e){var t=e.slidesToShow,n=e.centerMode,o=e.rtl,r=e.centerPadding;if(n){var a=(t-1)/2+1;return parseInt(r)>0&&(a+=1),o&&t%2==0&&(a+=1),a}return o?0:t-1};t.slidesOnRight=F;var A=function(e){var t=e.slidesToShow,n=e.centerMode,o=e.rtl,r=e.centerPadding;if(n){var a=(t-1)/2+1;return parseInt(r)>0&&(a+=1),o||t%2!=0||(a+=1),a}return o?t-1:0};t.slidesOnLeft=A,t.canUseDOM=function(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}},function(e,t){e.exports=window.wp.blocks},function(e){e.exports=JSON.parse('{"name":"woolentor/product-tab","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"style":{"type":"string","default":"1"},"columns":{"type":"number","default":4},"rows":{"type":"number","default":1},"productTab":{"type":"boolean","default":false},"slider":{"type":"boolean","default":false},"productFilterType":{"type":"string","default":"recent"},"perPage":{"type":"number","default":4},"customOrder":{"type":"boolean","default":false},"orderBy":{"type":"string","default":"none"},"order":{"type":"string","default":"DESC"},"selectedCategories":{"type":"array","default":[]},"slitems":{"type":"number","default":4},"slarrows":{"type":"boolean","default":true},"sldots":{"type":"boolean","default":false},"slpauseOnHover":{"type":"boolean","default":true},"slautolay":{"type":"boolean","default":false},"slautoplaySpeed":{"type":"number","default":3000},"slanimationSpeed":{"type":"number","default":300},"slscrollItem":{"type":"number","default":3},"sltabletDisplayColumns":{"type":"number","default":2},"sltabletScrollColumns":{"type":"number","default":2},"sltabletWidth":{"type":"number","default":750},"slMobileDisplayColumns":{"type":"number","default":1},"slMobileScrollColumns":{"type":"number","default":1},"slMobileWidth":{"type":"number","default":480},"titleColor":{"type":"string","selector":".product-item .product-inner .content .title a"},"titleHoverColor":{"type":"string","selector":".product-item .product-inner .content .title a:hover"},"titleAlign":{"type":"string","selector":".product-item .product-inner .content .title"},"priceColor":{"type":"string","selector":".product-item .product-inner .content .price"},"actionBtnColor":{"type":"string","selector":".product-item .actions a"},"actionBtnBgColor":{"type":"string","selector":".product-item .actions"},"actionBtnHoverColor":{"type":"string","selector":".product-item .actions a:hover"},"actionBtnHoverBgColor":{"type":"string","selector":".product-item .actions:hover"},"contentAlign":{"type":"string","selector":".product-item .product-inner .content .price"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/promo-banner","category":"woolentor-blocks","attributes":{"style":{"type":"string","default":"1"},"contentAlignment":{"type":"string","default":"left"},"title":{"type":"string","default":"","selector":".banner_title"},"subTitle":{"type":"string","default":"","selector":".banner_subtitle"},"imgId":{"type":"number"},"imgUrl":{"type":"string","source":"attribute","attribute":"src","selector":"img"},"buttonUrl":{"type":"string","source":"attribute","selector":"a","attribute":"href"},"buttonText":{"type":"string","source":"html","selector":"a"},"linkTarget":{"type":"string","source":"attribute","selector":"a","attribute":"target"},"titleColor":{"type":"string","selector":".woolentor-banner .banner_title"},"titleSize":{"type":"string"},"subTitleColor":{"type":"string","selector":".woolentor-banner .banner_subtitle"},"subTitleSize":{"type":"string"},"buttonColor":{"type":"string","selector":".woolentor-banner .banner_button"},"buttonSize":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/special-day-offer","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"contentPosition":{"type":"string","default":"center"},"bannerImage":{"type":"object","default":{"id":null,"url":""}},"title":{"type":"string","default":"Banner Title"},"subTitle":{"type":"string","default":"Banner Sub Title"},"bannerDescription":{"type":"string","default":"Banner Description"},"offerAmount":{"type":"string"},"offerTagLine":{"type":"string"},"bannerLink":{"type":"string"},"buttonText":{"type":"string"},"badgeImage":{"type":"object","default":{"id":null,"url":""}},"badgeHorizontalPos":{"type":"number","default":25},"badgeVerticlePos":{"type":"number"},"titleColor":{"type":"string","selector":".wlspcial-banner .banner-content h2"},"titleSize":{"type":"string","selector":".wlspcial-banner .banner-content h2"},"titleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content h2"},"titlePadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content h2"},"titleSubColor":{"type":"string","selector":".wlspcial-banner .banner-content h6"},"titleSubSize":{"type":"string","selector":".wlspcial-banner .banner-content h6"},"subTitleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"subTitlePadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"contentAlignment":{"type":"string","selector":".wlspcial-banner .banner-content"},"contentAreaPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"contentAreaMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"desColor":{"type":"string","selector":".wlspcial-banner .banner-content p"},"desSize":{"type":"string","selector":".wlspcial-banner .banner-content p"},"desMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content p"},"desPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content p"},"offerColor":{"type":"string","selector":".wlspcial-banner .banner-content h5"},"offerSize":{"type":"string","selector":".wlspcial-banner .banner-content h5"},"offerMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content h5"},"offerTagColor":{"type":"string","selector":".wlspcial-banner .banner-content h5 span"},"offerTagSize":{"type":"string","selector":".wlspcial-banner .banner-content h5 span"},"offerTagMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content h5 span"},"buttonColor":{"type":"string","selector":".wlspcial-banner .banner-content a"},"buttonHoverColor":{"type":"string","selector":".wlspcial-banner .banner-content a:hover"},"buttonSize":{"type":"string","selector":".wlspcial-banner .banner-content a"},"buttonMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlspcial-banner .banner-content a"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/image-marker","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"bgProperty":{"type":"object","default":{"imageId":null,"imageUrl":"","position":"","attachment":"","repeat":"","size":""}},"style":{"type":"string","default":"1"},"markerList":{"type":"array","default":[{"title":"Marker One","content":"Lorem ipsum pisaci volupt atem accusa saes ntisdumtiu loperm asaerks.","horizontal":50,"verticle":15},{"title":"Marker Two","content":"Lorem ipsum pisaci volupt atem accusa saes ntisdumtiu loperm asaerks.","horizontal":40,"verticle":20},{"title":"Marker Three","content":"Lorem ipsum pisaci volupt atem accusa saes ntisdumtiu loperm asaerks.","horizontal":60,"verticle":30}]},"markerColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer::before"},"markerBGColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer"},"markerBorderColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer"},"markerBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer"},"markerPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer"},"markerContentBGColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box"},"markerContentBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box"},"markerContentPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box"},"markerTitleColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box h4"},"markerTitleSize":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box h4"},"markerTitleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box h4"},"markerDescriptionColor":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box p"},"markerDescriptionSize":{"type":"string","selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box p"},"markerDescriptionMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wlb-marker-wrapper .wlb_image_pointer .wlb_pointer_box p"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/store-feature","category":"woolentor-blocks","supports":{"align":true},"attributes":{"blockUniqId":{"type":"string","default":""},"layout":{"type":"string","default":"1"},"featureImage":{"type":"object","default":{"id":null,"url":""}},"title":{"type":"string","default":"Free shipping"},"subTitle":{"type":"string","default":"Start from $100"},"textAlignment":{"type":"string","default":"center"},"areaBorderColor":{"type":"string","selector":".ht-feature-wrap .ht-feature-inner"},"areaHoverBorderColor":{"type":"string","selector":".ht-feature-wrap:hover .ht-feature-inner"},"areaMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-feature-wrap"},"areaPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-feature-wrap"},"areaBackgroundColor":{"type":"string","selector":".ht-feature-wrap"},"titleColor":{"type":"string","selector":".ht-feature-wrap .ht-feature-content h4"},"titleSize":{"type":"string","selector":".ht-feature-wrap .ht-feature-content h4"},"titleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-feature-wrap .ht-feature-content h4"},"subTitleColor":{"type":"string","selector":".ht-feature-wrap .ht-feature-content p"},"subTitleSize":{"type":"string","selector":".ht-feature-wrap .ht-feature-content p"},"subTitleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-feature-wrap .ht-feature-content p"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/brand-logo","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"brandLogoList":{"type":"array","default":[{"title":"Brand Title One","image":{"id":"","url":""}},{"title":"Brand Title Two","image":{"id":"","url":""}},{"title":"Brand Title Three","image":{"id":"","url":""}}]},"columns":{"type":"object","default":{"desktop":6}},"noGutter":{"type":"boolean","default":false},"itemSpace":{"type":"number","default":15},"singleItemAreaBorderType":{"type":"string","default":"","selector":".wl-single-brand"},"singleItemAreaBorderWidth":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand"},"singleItemAreaBorderColor":{"type":"string","selector":".wl-single-brand"},"singleItemAreaBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand"},"singleItemAreaMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand"},"singleItemAreaPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand"},"brandAlignment":{"type":"string","default":"center","selector":".wl-single-brand"},"brandImageBorderType":{"type":"string","default":"","selector":".wl-single-brand img"},"brandImageBorderWidth":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand img"},"brandImageBorderColor":{"type":"string","selector":".wl-single-brand img"},"brandImageBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".wl-single-brand img"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/category-grid","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"style":{"type":"string","default":"1"},"displayType":{"type":"string","default":"allCat"},"productCategory":{"type":"string"},"productCategories":{"type":"array","default":[]},"order":{"type":"string","default":"asc"},"displayLimit":{"type":"number","default":6},"showCount":{"type":"boolean","default":true},"imageSize":{"type":"string","default":"full"},"sliderOn":{"type":"boolean","default":false},"slitems":{"type":"number","default":3},"slarrows":{"type":"boolean","default":true},"sldots":{"type":"boolean","default":false},"slpauseOnHover":{"type":"boolean","default":true},"slIsrtl":{"type":"boolean","default":false},"slautolay":{"type":"boolean","default":false},"slautoplaySpeed":{"type":"number","default":3000},"slanimationSpeed":{"type":"number","default":300},"slscrollItem":{"type":"number","default":3},"sltabletDisplayColumns":{"type":"number","default":2},"sltabletScrollColumns":{"type":"number","default":2},"sltabletWidth":{"type":"number","default":750},"slMobileDisplayColumns":{"type":"number","default":1},"slMobileScrollColumns":{"type":"number","default":1},"slMobileWidth":{"type":"number","default":480},"columns":{"type":"object","default":{"desktop":3}},"noGutter":{"type":"boolean","default":false},"itemSpace":{"type":"number","default":15},"areaPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"areaBackgroundColor":{"type":"string"},"imageBoxColor":{"type":"string","selector":".ht-category-wrap .ht-category-image a.ht-category-border::before"},"imageMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-category-wrap .ht-category-image"},"imageBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-category-wrap .ht-category-image"},"titleColor":{"type":"string","selector":".ht-category-wrap .ht-category-content h3 a"},"titleHoverColor":{"type":"string","selector":".ht-category-wrap .ht-category-content h3 a:hover"},"titleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"},"selector":".ht-category-wrap .ht-category-content h3"},"countColor":{"type":"string"},"countBeforeColor":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/faq","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"faqList":{"type":"array","default":[{"title":"Words To Live By","content":"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua."},{"title":"Producing Perfume From Home","content":"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua."},{"title":"The Basics Of Western Astrology Explained","content":"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua."},{"title":"What Curling Irons Are The Best Ones","content":"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris niesi ut aliquip ex ea commodo consequat.sed do eiusmod tempor incididunt ut quis labore et doliore magna aliqua."}]},"showFirstItem":{"type":"boolean","default":true},"iconPosition":{"type":"string","default":"right"},"headBackgroundColor":{"type":"string"},"faqTitleColor":{"type":"string"},"titleSize":{"type":"string"},"titleBorderType":{"type":"string"},"titleBorderWidth":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"titleBorderColor":{"type":"string"},"titleBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"iconColor":{"type":"string"},"activeHeadBackgroundColor":{"type":"string"},"activeFaqTitleColor":{"type":"string"},"activeIconColor":{"type":"string"},"contentColor":{"type":"string"},"contentSize":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"name":"woolentor/product-curvy","category":"woolentor-blocks","attributes":{"blockUniqId":{"type":"string","default":""},"areaMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"areaPadding":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"areaBGProperty":{"type":"object","default":{"imageId":null,"imageUrl":"","position":"","attachment":"","repeat":"","size":""}},"layout":{"type":"string"},"columns":{"type":"object","default":{"desktop":4}},"noGutter":{"type":"boolean","default":false},"itemSpace":{"type":"number","default":15},"productFilterType":{"type":"string","default":"recent"},"perPage":{"type":"number","default":4},"customOrder":{"type":"boolean","default":false},"orderBy":{"type":"string","default":"none"},"order":{"type":"string","default":"DESC"},"selectedCategories":{"type":"array","default":[]},"contentLimit":{"type":"number","default":6},"showTitle":{"type":"boolean","default":true},"showPrice":{"type":"boolean","default":true},"showContent":{"type":"boolean","default":true},"showRating":{"type":"boolean","default":true},"itemAreaBGColor":{"type":"string"},"itemMarginBottom":{"type":"number","default":15},"titleSize":{"type":"string"},"titleColor":{"type":"string"},"titleHoverColor":{"type":"string"},"titleMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"salePriceColor":{"type":"string"},"regulerPriceColor":{"type":"string"},"contentSize":{"type":"string"},"cotentColor":{"type":"string"},"contentMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"emptyRatingColor":{"type":"string"},"ratingColor":{"type":"string"},"ratingMargin":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"actionBtnAreaBGColor":{"type":"string"},"actionBtnColor":{"type":"string"},"actionBtnBGColor":{"type":"string"},"actionBtnBorderRadius":{"type":"object","default":{"top":"","right":"","bottom":"","left":"","unit":"px","link":"yes"}},"actionBtnHoverColor":{"type":"string"},"actionBtnBgHoverColor":{"type":"string"},"imageBorderColor":{"type":"string"}}}')},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=((o=n(32))&&o.__esModule?o:{default:o}).default;t.default=r},function(e,t,n){"use strict";e.exports=n(48)},function(e,t,n){"use strict";var o=n(23),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function c(e){return o.isMemo(e)?l:i[e.$$typeof]||r}i[o.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[o.Memo]=l;var s=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,o){if("string"!=typeof n){if(m){var r=f(n);r&&r!==m&&e(t,r,o)}var l=u(n);p&&(l=l.concat(p(n)));for(var i=c(t),b=c(n),g=0;g<l.length;++g){var h=l[g];if(!(a[h]||o&&o[h]||b&&b[h]||i&&i[h])){var y=d(n,h);try{s(t,h,y)}catch(e){}}}}return t}},function(e,t){e.exports=window.wp.primitives},function(e,t,n){"use strict";var o,r=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,a=(o={},function(e){return void 0===o[e]&&(o[e]=(t=e,r.test(t)||111===t.charCodeAt(0)&&110===t.charCodeAt(1)&&t.charCodeAt(2)<91)),o[e];var t});t.a=a},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports={isFunction:function(e){return"function"==typeof e},isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},each:function(e,t){for(var n=0,o=e.length;n<o&&!1!==t(e[n],n);n++);}}},function(e,t){e.exports=function(e,t,n,o){var r=n?n.call(o,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),l=Object.keys(t);if(a.length!==l.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var s=a[c];if(!i(s))return!1;var u=e[s],p=t[s];if(!1===(r=n?n.call(o,u,p,s):void 0)||void 0===r&&u!==p)return!1}return!0}},function(e,t,n){"use strict";t.a=function(e){function t(e,t,o){var r=t.trim().split(m);t=r;var a=r.length,l=e.length;switch(l){case 0:case 1:var i=0;for(e=0===l?"":e[0]+" ";i<a;++i)t[i]=n(e,t[i],o).trim();break;default:var c=i=0;for(t=[];i<a;++i)for(var s=0;s<l;++s)t[c++]=n(e[s]+" ",r[i],o).trim()}return t}function n(e,t,n){var o=t.charCodeAt(0);switch(33>o&&(o=(t=t.trim()).charCodeAt(0)),o){case 38:return t.replace(b,"$1"+e.trim());case 58:return e.trim()+t.replace(b,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(b,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function o(e,t,n,a){var l=e+";",i=2*t+3*n+4*a;if(944===i){e=l.indexOf(":",9)+1;var c=l.substring(e,l.length-1).trim();return c=l.substring(0,e).trim()+c+";",1===P||2===P&&r(c,1)?"-webkit-"+c+c:c}if(0===P||2===P&&!r(l,1))return l;switch(i){case 1015:return 97===l.charCodeAt(10)?"-webkit-"+l+l:l;case 951:return 116===l.charCodeAt(3)?"-webkit-"+l+l:l;case 963:return 110===l.charCodeAt(5)?"-webkit-"+l+l:l;case 1009:if(100!==l.charCodeAt(4))break;case 969:case 942:return"-webkit-"+l+l;case 978:return"-webkit-"+l+"-moz-"+l+l;case 1019:case 983:return"-webkit-"+l+"-moz-"+l+"-ms-"+l+l;case 883:if(45===l.charCodeAt(8))return"-webkit-"+l+l;if(0<l.indexOf("image-set(",11))return l.replace(R,"$1-webkit-$2")+l;break;case 932:if(45===l.charCodeAt(4))switch(l.charCodeAt(5)){case 103:return"-webkit-box-"+l.replace("-grow","")+"-webkit-"+l+"-ms-"+l.replace("grow","positive")+l;case 115:return"-webkit-"+l+"-ms-"+l.replace("shrink","negative")+l;case 98:return"-webkit-"+l+"-ms-"+l.replace("basis","preferred-size")+l}return"-webkit-"+l+"-ms-"+l+l;case 964:return"-webkit-"+l+"-ms-flex-"+l+l;case 1023:if(99!==l.charCodeAt(8))break;return"-webkit-box-pack"+(c=l.substring(l.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+l+"-ms-flex-pack"+c+l;case 1005:return d.test(l)?l.replace(p,":-webkit-")+l.replace(p,":-moz-")+l:l;case 1e3:switch(t=(c=l.substring(13).trim()).indexOf("-")+1,c.charCodeAt(0)+c.charCodeAt(t)){case 226:c=l.replace(v,"tb");break;case 232:c=l.replace(v,"tb-rl");break;case 220:c=l.replace(v,"lr");break;default:return l}return"-webkit-"+l+"-ms-"+c+l;case 1017:if(-1===l.indexOf("sticky",9))break;case 975:switch(t=(l=e).length-10,i=(c=(33===l.charCodeAt(t)?l.substring(0,t):l).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|c.charCodeAt(7))){case 203:if(111>c.charCodeAt(8))break;case 115:l=l.replace(c,"-webkit-"+c)+";"+l;break;case 207:case 102:l=l.replace(c,"-webkit-"+(102<i?"inline-":"")+"box")+";"+l.replace(c,"-webkit-"+c)+";"+l.replace(c,"-ms-"+c+"box")+";"+l}return l+";";case 938:if(45===l.charCodeAt(5))switch(l.charCodeAt(6)){case 105:return c=l.replace("-items",""),"-webkit-"+l+"-webkit-box-"+c+"-ms-flex-"+c+l;case 115:return"-webkit-"+l+"-ms-flex-item-"+l.replace(_,"")+l;default:return"-webkit-"+l+"-ms-flex-line-pack"+l.replace("align-content","").replace(_,"")+l}break;case 973:case 989:if(45!==l.charCodeAt(3)||122===l.charCodeAt(4))break;case 931:case 953:if(!0===E.test(e))return 115===(c=e.substring(e.indexOf(":")+1)).charCodeAt(0)?o(e.replace("stretch","fill-available"),t,n,a).replace(":fill-available",":stretch"):l.replace(c,"-webkit-"+c)+l.replace(c,"-moz-"+c.replace("fill-",""))+l;break;case 962:if(l="-webkit-"+l+(102===l.charCodeAt(5)?"-ms-"+l:"")+l,211===n+a&&105===l.charCodeAt(13)&&0<l.indexOf("transform",10))return l.substring(0,l.indexOf(";",27)+1).replace(f,"$1-webkit-$2")+l}return l}function r(e,t){var n=e.indexOf(1===t?":":"{"),o=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),B(2!==t?o:o.replace(C,"$1"),n,t)}function a(e,t){var n=o(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(O," or ($1)").substring(4):"("+t+")"}function l(e,t,n,o,r,a,l,i,s,u){for(var p,d=0,f=t;d<T;++d)switch(p=A[d].call(c,e,f,n,o,r,a,l,i,s,u)){case void 0:case!1:case!0:case null:break;default:f=p}if(f!==t)return f}function i(e){return void 0!==(e=e.prefix)&&(B=null,e?"function"!=typeof e?P=1:(P=2,B=e):P=0),i}function c(e,n){var i=e;if(33>i.charCodeAt(0)&&(i=i.trim()),i=[i],0<T){var c=l(-1,n,i,i,k,j,0,0,0,0);void 0!==c&&"string"==typeof c&&(n=c)}var p=function e(n,i,c,p,d){for(var f,m,b,v,O,_=0,C=0,E=0,R=0,A=0,B=0,z=b=f=0,D=0,M=0,L=0,I=0,N=c.length,H=N-1,W="",G="",q="",U="";D<N;){if(m=c.charCodeAt(D),D===H&&0!==C+R+E+_&&(0!==C&&(m=47===C?10:47),R=E=_=0,N++,H++),0===C+R+E+_){if(D===H&&(0<M&&(W=W.replace(u,"")),0<W.trim().length)){switch(m){case 32:case 9:case 59:case 13:case 10:break;default:W+=c.charAt(D)}m=59}switch(m){case 123:for(f=(W=W.trim()).charCodeAt(0),b=1,I=++D;D<N;){switch(m=c.charCodeAt(D)){case 123:b++;break;case 125:b--;break;case 47:switch(m=c.charCodeAt(D+1)){case 42:case 47:e:{for(z=D+1;z<H;++z)switch(c.charCodeAt(z)){case 47:if(42===m&&42===c.charCodeAt(z-1)&&D+2!==z){D=z+1;break e}break;case 10:if(47===m){D=z+1;break e}}D=z}}break;case 91:m++;case 40:m++;case 34:case 39:for(;D++<H&&c.charCodeAt(D)!==m;);}if(0===b)break;D++}switch(b=c.substring(I,D),0===f&&(f=(W=W.replace(s,"").trim()).charCodeAt(0)),f){case 64:switch(0<M&&(W=W.replace(u,"")),m=W.charCodeAt(1)){case 100:case 109:case 115:case 45:M=i;break;default:M=F}if(I=(b=e(i,M,b,m,d+1)).length,0<T&&(O=l(3,b,M=t(F,W,L),i,k,j,I,m,d,p),W=M.join(""),void 0!==O&&0===(I=(b=O.trim()).length)&&(m=0,b="")),0<I)switch(m){case 115:W=W.replace(w,a);case 100:case 109:case 45:b=W+"{"+b+"}";break;case 107:b=(W=W.replace(g,"$1 $2"))+"{"+b+"}",b=1===P||2===P&&r("@"+b,3)?"@-webkit-"+b+"@"+b:"@"+b;break;default:b=W+b,112===p&&(G+=b,b="")}else b="";break;default:b=e(i,t(i,W,L),b,p,d+1)}q+=b,b=L=M=z=f=0,W="",m=c.charCodeAt(++D);break;case 125:case 59:if(1<(I=(W=(0<M?W.replace(u,""):W).trim()).length))switch(0===z&&(f=W.charCodeAt(0),45===f||96<f&&123>f)&&(I=(W=W.replace(" ",":")).length),0<T&&void 0!==(O=l(1,W,i,n,k,j,G.length,p,d,p))&&0===(I=(W=O.trim()).length)&&(W="\0\0"),f=W.charCodeAt(0),m=W.charCodeAt(1),f){case 0:break;case 64:if(105===m||99===m){U+=W+c.charAt(D);break}default:58!==W.charCodeAt(I-1)&&(G+=o(W,f,m,W.charCodeAt(2)))}L=M=z=f=0,W="",m=c.charCodeAt(++D)}}switch(m){case 13:case 10:47===C?C=0:0===1+f&&107!==p&&0<W.length&&(M=1,W+="\0"),0<T*x&&l(0,W,i,n,k,j,G.length,p,d,p),j=1,k++;break;case 59:case 125:if(0===C+R+E+_){j++;break}default:switch(j++,v=c.charAt(D),m){case 9:case 32:if(0===R+_+C)switch(A){case 44:case 58:case 9:case 32:v="";break;default:32!==m&&(v=" ")}break;case 0:v="\\0";break;case 12:v="\\f";break;case 11:v="\\v";break;case 38:0===R+C+_&&(M=L=1,v="\f"+v);break;case 108:if(0===R+C+_+S&&0<z)switch(D-z){case 2:112===A&&58===c.charCodeAt(D-3)&&(S=A);case 8:111===B&&(S=B)}break;case 58:0===R+C+_&&(z=D);break;case 44:0===C+E+R+_&&(M=1,v+="\r");break;case 34:case 39:0===C&&(R=R===m?0:0===R?m:R);break;case 91:0===R+C+E&&_++;break;case 93:0===R+C+E&&_--;break;case 41:0===R+C+_&&E--;break;case 40:if(0===R+C+_){if(0===f)switch(2*A+3*B){case 533:break;default:f=1}E++}break;case 64:0===C+E+R+_+z+b&&(b=1);break;case 42:case 47:if(!(0<R+_+E))switch(C){case 0:switch(2*m+3*c.charCodeAt(D+1)){case 235:C=47;break;case 220:I=D,C=42}break;case 42:47===m&&42===A&&I+2!==D&&(33===c.charCodeAt(I+2)&&(G+=c.substring(I,D+1)),v="",C=0)}}0===C&&(W+=v)}B=A,A=m,D++}if(0<(I=G.length)){if(M=i,0<T&&void 0!==(O=l(2,G,M,n,k,j,I,p,d,p))&&0===(G=O).length)return U+G+q;if(G=M.join(",")+"{"+G+"}",0!=P*S){switch(2!==P||r(G,2)||(S=0),S){case 111:G=G.replace(y,":-moz-$1")+G;break;case 112:G=G.replace(h,"::-webkit-input-$1")+G.replace(h,"::-moz-$1")+G.replace(h,":-ms-input-$1")+G}S=0}}return U+G+q}(F,i,n,0,0);return 0<T&&void 0!==(c=l(-2,p,i,i,k,j,p.length,0,0,0))&&(p=c),S=0,j=k=1,p}var s=/^\0+/g,u=/[\0\r\f]/g,p=/: */g,d=/zoo|gra/,f=/([,: ])(transform)/g,m=/,\r+?/g,b=/([\t\r\n ])*\f?&/g,g=/@(k\w+)\s*(\S*)\s*/,h=/::(place)/g,y=/:(read-only)/g,v=/[svh]\w+-[tblr]{2}/,w=/\(\s*(.*)\s*\)/g,O=/([\s\S]*?);/g,_=/-self|flex-/g,C=/[^]*?(:[rp][el]a[\w-]+)[^]*/,E=/stretch|:\s*\w+\-(?:conte|avail)/,R=/([^-])(image-set\()/,j=1,k=1,S=0,P=1,F=[],A=[],T=0,B=null,x=0;return c.use=function e(t){switch(t){case void 0:case null:T=A.length=0;break;default:if("function"==typeof t)A[T++]=t;else if("object"==typeof t)for(var n=0,o=t.length;n<o;++n)e(t[n]);else x=0|!!t}return e},c.set=i,void 0!==e&&i(e),c}},function(e,t,n){"use strict";t.a={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=c(n(4)),r=n(33),a=c(n(40)),l=c(n(42)),i=n(11);function c(e){return e&&e.__esModule?e:{default:e}}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 u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function p(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 d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return 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 m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=(0,i.canUseDOM)()&&n(43),w=function(e){!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&&m(e,t)}(w,e);var t,n,c,s,p=(c=w,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=h(c);if(s){var n=h(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return b(this,e)});function w(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,w),y(g(t=p.call(this,e)),"innerSliderRefHandler",(function(e){return t.innerSlider=e})),y(g(t),"slickPrev",(function(){return t.innerSlider.slickPrev()})),y(g(t),"slickNext",(function(){return t.innerSlider.slickNext()})),y(g(t),"slickGoTo",(function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.innerSlider.slickGoTo(e,n)})),y(g(t),"slickPause",(function(){return t.innerSlider.pause("paused")})),y(g(t),"slickPlay",(function(){return t.innerSlider.autoPlay("play")})),t.state={breakpoint:null},t._responsiveMediaHandlers=[],t}return t=w,(n=[{key:"media",value:function(e,t){v.register(e,t),this._responsiveMediaHandlers.push({query:e,handler:t})}},{key:"componentDidMount",value:function(){var e=this;if(this.props.responsive){var t=this.props.responsive.map((function(e){return e.breakpoint}));t.sort((function(e,t){return e-t})),t.forEach((function(n,o){var r;r=0===o?(0,a.default)({minWidth:0,maxWidth:n}):(0,a.default)({minWidth:t[o-1]+1,maxWidth:n}),(0,i.canUseDOM)()&&e.media(r,(function(){e.setState({breakpoint:n})}))}));var n=(0,a.default)({minWidth:t.slice(-1)[0]});(0,i.canUseDOM)()&&this.media(n,(function(){e.setState({breakpoint:null})}))}}},{key:"componentWillUnmount",value:function(){this._responsiveMediaHandlers.forEach((function(e){v.unregister(e.query,e.handler)}))}},{key:"render",value:function(){var e,t,n=this;(e=this.state.breakpoint?"unslick"===(t=this.props.responsive.filter((function(e){return e.breakpoint===n.state.breakpoint})))[0].settings?"unslick":d(d(d({},l.default),this.props),t[0].settings):d(d({},l.default),this.props)).centerMode&&(e.slidesToScroll,e.slidesToScroll=1),e.fade&&(e.slidesToShow,e.slidesToScroll,e.slidesToShow=1,e.slidesToScroll=1);var a=o.default.Children.toArray(this.props.children);a=a.filter((function(e){return"string"==typeof e?!!e.trim():!!e})),e.variableWidth&&(e.rows>1||e.slidesPerRow>1)&&(console.warn("variableWidth is not supported in case of rows > 1 or slidesPerRow > 1"),e.variableWidth=!1);for(var i=[],c=null,s=0;s<a.length;s+=e.rows*e.slidesPerRow){for(var p=[],f=s;f<s+e.rows*e.slidesPerRow;f+=e.slidesPerRow){for(var m=[],b=f;b<f+e.slidesPerRow&&(e.variableWidth&&a[b].props.style&&(c=a[b].props.style.width),!(b>=a.length));b+=1)m.push(o.default.cloneElement(a[b],{key:100*s+10*f+b,tabIndex:-1,style:{width:"".concat(100/e.slidesPerRow,"%"),display:"inline-block"}}));p.push(o.default.createElement("div",{key:10*s+f},m))}e.variableWidth?i.push(o.default.createElement("div",{key:s,style:{width:c}},p)):i.push(o.default.createElement("div",{key:s},p))}if("unslick"===e){var g="regular slider "+(this.props.className||"");return o.default.createElement("div",{className:g},a)}return i.length<=e.slidesToShow&&(e.unslick=!0),o.default.createElement(r.InnerSlider,u({style:this.props.style,ref:this.innerSliderRefHandler},e),i)}}])&&f(t.prototype,n),w}(o.default.Component);t.default=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InnerSlider=void 0;var o=d(n(4)),r=d(n(34)),a=d(n(35)),l=d(n(5)),i=n(11),c=n(36),s=n(37),u=n(38),p=d(n(39));function d(e){return e&&e.__esModule?e:{default:e}}function f(e){return(f="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 m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function b(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function g(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 h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){C(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(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 v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?O(e):t}function O(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(e){!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&&v(e,t)}(R,e);var t,n,d,g,E=(d=R,g=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=_(d);if(g){var n=_(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return w(this,e)});function R(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,R),C(O(t=E.call(this,e)),"listRefHandler",(function(e){return t.list=e})),C(O(t),"trackRefHandler",(function(e){return t.track=e})),C(O(t),"adaptHeight",(function(){if(t.props.adaptiveHeight&&t.list){var e=t.list.querySelector('[data-index="'.concat(t.state.currentSlide,'"]'));t.list.style.height=(0,i.getHeight)(e)+"px"}})),C(O(t),"componentDidMount",(function(){if(t.props.onInit&&t.props.onInit(),t.props.lazyLoad){var e=(0,i.getOnDemandLazySlides)(h(h({},t.props),t.state));e.length>0&&(t.setState((function(t){return{lazyLoadedList:t.lazyLoadedList.concat(e)}})),t.props.onLazyLoad&&t.props.onLazyLoad(e))}var n=h({listRef:t.list,trackRef:t.track},t.props);t.updateState(n,!0,(function(){t.adaptHeight(),t.props.autoplay&&t.autoPlay("update")})),"progressive"===t.props.lazyLoad&&(t.lazyLoadTimer=setInterval(t.progressiveLazyLoad,1e3)),t.ro=new p.default((function(){t.state.animating?(t.onWindowResized(!1),t.callbackTimers.push(setTimeout((function(){return t.onWindowResized()}),t.props.speed))):t.onWindowResized()})),t.ro.observe(t.list),document.querySelectorAll&&Array.prototype.forEach.call(document.querySelectorAll(".slick-slide"),(function(e){e.onfocus=t.props.pauseOnFocus?t.onSlideFocus:null,e.onblur=t.props.pauseOnFocus?t.onSlideBlur:null})),window.addEventListener?window.addEventListener("resize",t.onWindowResized):window.attachEvent("onresize",t.onWindowResized)})),C(O(t),"componentWillUnmount",(function(){t.animationEndCallback&&clearTimeout(t.animationEndCallback),t.lazyLoadTimer&&clearInterval(t.lazyLoadTimer),t.callbackTimers.length&&(t.callbackTimers.forEach((function(e){return clearTimeout(e)})),t.callbackTimers=[]),window.addEventListener?window.removeEventListener("resize",t.onWindowResized):window.detachEvent("onresize",t.onWindowResized),t.autoplayTimer&&clearInterval(t.autoplayTimer),t.ro.disconnect()})),C(O(t),"componentDidUpdate",(function(e){if(t.checkImagesLoad(),t.props.onReInit&&t.props.onReInit(),t.props.lazyLoad){var n=(0,i.getOnDemandLazySlides)(h(h({},t.props),t.state));n.length>0&&(t.setState((function(e){return{lazyLoadedList:e.lazyLoadedList.concat(n)}})),t.props.onLazyLoad&&t.props.onLazyLoad(n))}t.adaptHeight();var r=h(h({listRef:t.list,trackRef:t.track},t.props),t.state),a=t.didPropsChange(e);a&&t.updateState(r,a,(function(){t.state.currentSlide>=o.default.Children.count(t.props.children)&&t.changeSlide({message:"index",index:o.default.Children.count(t.props.children)-t.props.slidesToShow,currentSlide:t.state.currentSlide}),t.props.autoplay?t.autoPlay("update"):t.pause("paused")}))})),C(O(t),"onWindowResized",(function(e){t.debouncedResize&&t.debouncedResize.cancel(),t.debouncedResize=(0,a.default)((function(){return t.resizeWindow(e)}),50),t.debouncedResize()})),C(O(t),"resizeWindow",(function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=Boolean(t.track&&t.track.node);if(n){var o=h(h({listRef:t.list,trackRef:t.track},t.props),t.state);t.updateState(o,e,(function(){t.props.autoplay?t.autoPlay("update"):t.pause("paused")})),t.setState({animating:!1}),clearTimeout(t.animationEndCallback),delete t.animationEndCallback}})),C(O(t),"updateState",(function(e,n,r){var a=(0,i.initializedState)(e);e=h(h(h({},e),a),{},{slideIndex:a.currentSlide});var l=(0,i.getTrackLeft)(e);e=h(h({},e),{},{left:l});var c=(0,i.getTrackCSS)(e);(n||o.default.Children.count(t.props.children)!==o.default.Children.count(e.children))&&(a.trackStyle=c),t.setState(a,r)})),C(O(t),"ssrInit",(function(){if(t.props.variableWidth){var e=0,n=0,r=[],a=(0,i.getPreClones)(h(h(h({},t.props),t.state),{},{slideCount:t.props.children.length})),l=(0,i.getPostClones)(h(h(h({},t.props),t.state),{},{slideCount:t.props.children.length}));t.props.children.forEach((function(t){r.push(t.props.style.width),e+=t.props.style.width}));for(var c=0;c<a;c++)n+=r[r.length-1-c],e+=r[r.length-1-c];for(var s=0;s<l;s++)e+=r[s];for(var u=0;u<t.state.currentSlide;u++)n+=r[u];var p={width:e+"px",left:-n+"px"};if(t.props.centerMode){var d="".concat(r[t.state.currentSlide],"px");p.left="calc(".concat(p.left," + (100% - ").concat(d,") / 2 ) ")}return{trackStyle:p}}var f=o.default.Children.count(t.props.children),m=h(h(h({},t.props),t.state),{},{slideCount:f}),b=(0,i.getPreClones)(m)+(0,i.getPostClones)(m)+f,g=100/t.props.slidesToShow*b,y=100/b,v=-y*((0,i.getPreClones)(m)+t.state.currentSlide)*g/100;return t.props.centerMode&&(v+=(100-y*g/100)/2),{slideWidth:y+"%",trackStyle:{width:g+"%",left:v+"%"}}})),C(O(t),"checkImagesLoad",(function(){var e=t.list&&t.list.querySelectorAll&&t.list.querySelectorAll(".slick-slide img")||[],n=e.length,o=0;Array.prototype.forEach.call(e,(function(e){var r=function(){return++o&&o>=n&&t.onWindowResized()};if(e.onclick){var a=e.onclick;e.onclick=function(){a(),e.parentNode.focus()}}else e.onclick=function(){return e.parentNode.focus()};e.onload||(t.props.lazyLoad?e.onload=function(){t.adaptHeight(),t.callbackTimers.push(setTimeout(t.onWindowResized,t.props.speed))}:(e.onload=r,e.onerror=function(){r(),t.props.onLazyLoadError&&t.props.onLazyLoadError()}))}))})),C(O(t),"progressiveLazyLoad",(function(){for(var e=[],n=h(h({},t.props),t.state),o=t.state.currentSlide;o<t.state.slideCount+(0,i.getPostClones)(n);o++)if(t.state.lazyLoadedList.indexOf(o)<0){e.push(o);break}for(var r=t.state.currentSlide-1;r>=-(0,i.getPreClones)(n);r--)if(t.state.lazyLoadedList.indexOf(r)<0){e.push(r);break}e.length>0?(t.setState((function(t){return{lazyLoadedList:t.lazyLoadedList.concat(e)}})),t.props.onLazyLoad&&t.props.onLazyLoad(e)):t.lazyLoadTimer&&(clearInterval(t.lazyLoadTimer),delete t.lazyLoadTimer)})),C(O(t),"slideHandler",(function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=t.props,r=o.asNavFor,a=o.beforeChange,l=o.onLazyLoad,c=o.speed,s=o.afterChange,u=t.state.currentSlide,p=(0,i.slideHandler)(h(h(h({index:e},t.props),t.state),{},{trackRef:t.track,useCSS:t.props.useCSS&&!n})),d=p.state,f=p.nextState;if(d){a&&a(u,d.currentSlide);var m=d.lazyLoadedList.filter((function(e){return t.state.lazyLoadedList.indexOf(e)<0}));l&&m.length>0&&l(m),!t.props.waitForAnimate&&t.animationEndCallback&&(clearTimeout(t.animationEndCallback),s&&s(u),delete t.animationEndCallback),t.setState(d,(function(){r&&t.asNavForIndex!==e&&(t.asNavForIndex=e,r.innerSlider.slideHandler(e)),f&&(t.animationEndCallback=setTimeout((function(){var e=f.animating,n=b(f,["animating"]);t.setState(n,(function(){t.callbackTimers.push(setTimeout((function(){return t.setState({animating:e})}),10)),s&&s(d.currentSlide),delete t.animationEndCallback}))}),c))}))}})),C(O(t),"changeSlide",(function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=h(h({},t.props),t.state),r=(0,i.changeSlide)(o,e);if((0===r||r)&&(!0===n?t.slideHandler(r,n):t.slideHandler(r),t.props.autoplay&&t.autoPlay("update"),t.props.focusOnSelect)){var a=t.list.querySelectorAll(".slick-current");a[0]&&a[0].focus()}})),C(O(t),"clickHandler",(function(e){!1===t.clickable&&(e.stopPropagation(),e.preventDefault()),t.clickable=!0})),C(O(t),"keyHandler",(function(e){var n=(0,i.keyHandler)(e,t.props.accessibility,t.props.rtl);""!==n&&t.changeSlide({message:n})})),C(O(t),"selectHandler",(function(e){t.changeSlide(e)})),C(O(t),"disableBodyScroll",(function(){window.ontouchmove=function(e){(e=e||window.event).preventDefault&&e.preventDefault(),e.returnValue=!1}})),C(O(t),"enableBodyScroll",(function(){window.ontouchmove=null})),C(O(t),"swipeStart",(function(e){t.props.verticalSwiping&&t.disableBodyScroll();var n=(0,i.swipeStart)(e,t.props.swipe,t.props.draggable);""!==n&&t.setState(n)})),C(O(t),"swipeMove",(function(e){var n=(0,i.swipeMove)(e,h(h(h({},t.props),t.state),{},{trackRef:t.track,listRef:t.list,slideIndex:t.state.currentSlide}));n&&(n.swiping&&(t.clickable=!1),t.setState(n))})),C(O(t),"swipeEnd",(function(e){var n=(0,i.swipeEnd)(e,h(h(h({},t.props),t.state),{},{trackRef:t.track,listRef:t.list,slideIndex:t.state.currentSlide}));if(n){var o=n.triggerSlideHandler;delete n.triggerSlideHandler,t.setState(n),void 0!==o&&(t.slideHandler(o),t.props.verticalSwiping&&t.enableBodyScroll())}})),C(O(t),"touchEnd",(function(e){t.swipeEnd(e),t.clickable=!0})),C(O(t),"slickPrev",(function(){t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"previous"})}),0))})),C(O(t),"slickNext",(function(){t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"next"})}),0))})),C(O(t),"slickGoTo",(function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e=Number(e),isNaN(e))return"";t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"index",index:e,currentSlide:t.state.currentSlide},n)}),0))})),C(O(t),"play",(function(){var e;if(t.props.rtl)e=t.state.currentSlide-t.props.slidesToScroll;else{if(!(0,i.canGoNext)(h(h({},t.props),t.state)))return!1;e=t.state.currentSlide+t.props.slidesToScroll}t.slideHandler(e)})),C(O(t),"autoPlay",(function(e){t.autoplayTimer&&clearInterval(t.autoplayTimer);var n=t.state.autoplaying;if("update"===e){if("hovered"===n||"focused"===n||"paused"===n)return}else if("leave"===e){if("paused"===n||"focused"===n)return}else if("blur"===e&&("paused"===n||"hovered"===n))return;t.autoplayTimer=setInterval(t.play,t.props.autoplaySpeed+50),t.setState({autoplaying:"playing"})})),C(O(t),"pause",(function(e){t.autoplayTimer&&(clearInterval(t.autoplayTimer),t.autoplayTimer=null);var n=t.state.autoplaying;"paused"===e?t.setState({autoplaying:"paused"}):"focused"===e?"hovered"!==n&&"playing"!==n||t.setState({autoplaying:"focused"}):"playing"===n&&t.setState({autoplaying:"hovered"})})),C(O(t),"onDotsOver",(function(){return t.props.autoplay&&t.pause("hovered")})),C(O(t),"onDotsLeave",(function(){return t.props.autoplay&&"hovered"===t.state.autoplaying&&t.autoPlay("leave")})),C(O(t),"onTrackOver",(function(){return t.props.autoplay&&t.pause("hovered")})),C(O(t),"onTrackLeave",(function(){return t.props.autoplay&&"hovered"===t.state.autoplaying&&t.autoPlay("leave")})),C(O(t),"onSlideFocus",(function(){return t.props.autoplay&&t.pause("focused")})),C(O(t),"onSlideBlur",(function(){return t.props.autoplay&&"focused"===t.state.autoplaying&&t.autoPlay("blur")})),C(O(t),"render",(function(){var e,n,r,a=(0,l.default)("slick-slider",t.props.className,{"slick-vertical":t.props.vertical,"slick-initialized":!0}),p=h(h({},t.props),t.state),d=(0,i.extractObject)(p,["fade","cssEase","speed","infinite","centerMode","focusOnSelect","currentSlide","lazyLoad","lazyLoadedList","rtl","slideWidth","slideHeight","listHeight","vertical","slidesToShow","slidesToScroll","slideCount","trackStyle","variableWidth","unslick","centerPadding","targetSlide","useCSS"]),f=t.props.pauseOnHover;if(d=h(h({},d),{},{onMouseEnter:f?t.onTrackOver:null,onMouseLeave:f?t.onTrackLeave:null,onMouseOver:f?t.onTrackOver:null,focusOnSelect:t.props.focusOnSelect&&t.clickable?t.selectHandler:null}),!0===t.props.dots&&t.state.slideCount>=t.props.slidesToShow){var b=(0,i.extractObject)(p,["dotsClass","slideCount","slidesToShow","currentSlide","slidesToScroll","clickHandler","children","customPaging","infinite","appendDots"]),g=t.props.pauseOnDotsHover;b=h(h({},b),{},{clickHandler:t.changeSlide,onMouseEnter:g?t.onDotsLeave:null,onMouseOver:g?t.onDotsOver:null,onMouseLeave:g?t.onDotsLeave:null}),e=o.default.createElement(s.Dots,b)}var y=(0,i.extractObject)(p,["infinite","centerMode","currentSlide","slideCount","slidesToShow","prevArrow","nextArrow"]);y.clickHandler=t.changeSlide,t.props.arrows&&(n=o.default.createElement(u.PrevArrow,y),r=o.default.createElement(u.NextArrow,y));var v=null;t.props.vertical&&(v={height:t.state.listHeight});var w=null;!1===t.props.vertical?!0===t.props.centerMode&&(w={padding:"0px "+t.props.centerPadding}):!0===t.props.centerMode&&(w={padding:t.props.centerPadding+" 0px"});var O=h(h({},v),w),_=t.props.touchMove,C={className:"slick-list",style:O,onClick:t.clickHandler,onMouseDown:_?t.swipeStart:null,onMouseMove:t.state.dragging&&_?t.swipeMove:null,onMouseUp:_?t.swipeEnd:null,onMouseLeave:t.state.dragging&&_?t.swipeEnd:null,onTouchStart:_?t.swipeStart:null,onTouchMove:t.state.dragging&&_?t.swipeMove:null,onTouchEnd:_?t.touchEnd:null,onTouchCancel:t.state.dragging&&_?t.swipeEnd:null,onKeyDown:t.props.accessibility?t.keyHandler:null},E={className:a,dir:"ltr",style:t.props.style};return t.props.unslick&&(C={className:"slick-list"},E={className:a}),o.default.createElement("div",E,t.props.unslick?"":n,o.default.createElement("div",m({ref:t.listRefHandler},C),o.default.createElement(c.Track,m({ref:t.trackRefHandler},d),t.props.children)),t.props.unslick?"":r,t.props.unslick?"":e)})),t.list=null,t.track=null,t.state=h(h({},r.default),{},{currentSlide:t.props.initialSlide,slideCount:o.default.Children.count(t.props.children)}),t.callbackTimers=[],t.clickable=!0,t.debouncedResize=null;var n=t.ssrInit();return t.state=h(h({},t.state),n),t}return t=R,(n=[{key:"didPropsChange",value:function(e){for(var t=!1,n=0,r=Object.keys(this.props);n<r.length;n++){var a=r[n];if(!e.hasOwnProperty(a)){t=!0;break}if("object"!==f(e[a])&&"function"!=typeof e[a]&&e[a]!==this.props[a]){t=!0;break}}return t||o.default.Children.count(this.props.children)!==o.default.Children.count(e.children)}}])&&y(t.prototype,n),R}(o.default.Component);t.InnerSlider=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={animating:!1,autoplaying:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,dragging:!1,edgeDragged:!1,initialized:!1,lazyLoadedList:[],listHeight:null,listWidth:null,scrolling:!1,slideCount:null,slideHeight:null,slideWidth:null,swipeLeft:null,swiped:!1,swiping:!1,touchObject:{startX:0,startY:0,curX:0,curY:0},trackStyle:{},trackWidth:0,targetSlide:0}},function(e,t,n){(function(t){var n=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,a=/^0o[0-7]+$/i,l=parseInt,i="object"==typeof t&&t&&t.Object===Object&&t,c="object"==typeof self&&self&&self.Object===Object&&self,s=i||c||Function("return this")(),u=Object.prototype.toString,p=Math.max,d=Math.min,f=function(){return s.Date.now()};function m(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function b(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==u.call(e)}(e))return NaN;if(m(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=m(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var i=r.test(e);return i||a.test(e)?l(e.slice(2),i?2:8):o.test(e)?NaN:+e}e.exports=function(e,t,n){var o,r,a,l,i,c,s=0,u=!1,g=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=o,a=r;return o=r=void 0,s=t,l=e.apply(a,n)}function v(e){return s=e,i=setTimeout(O,t),u?y(e):l}function w(e){var n=e-c;return void 0===c||n>=t||n<0||g&&e-s>=a}function O(){var e=f();if(w(e))return _(e);i=setTimeout(O,function(e){var n=t-(e-c);return g?d(n,a-(e-s)):n}(e))}function _(e){return i=void 0,h&&o?y(e):(o=r=void 0,l)}function C(){var e=f(),n=w(e);if(o=arguments,r=this,c=e,n){if(void 0===i)return v(c);if(g)return i=setTimeout(O,t),y(c)}return void 0===i&&(i=setTimeout(O,t)),l}return t=b(t)||0,m(n)&&(u=!!n.leading,a=(g="maxWait"in n)?p(b(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),C.cancel=function(){void 0!==i&&clearTimeout(i),s=0,o=c=r=i=void 0},C.flush=function(){return void 0===i?l:_(f())},C}}).call(this,n(27))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Track=void 0;var o=l(n(4)),r=l(n(5)),a=n(11);function l(e){return e&&e.__esModule?e:{default:e}}function i(e){return(i="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 c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}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 p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?f(e):t}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}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(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(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 y=function(e){var t,n,o,r,a;return o=(a=e.rtl?e.slideCount-1-e.index:e.index)<0||a>=e.slideCount,e.centerMode?(r=Math.floor(e.slidesToShow/2),n=(a-e.currentSlide)%e.slideCount==0,a>e.currentSlide-r-1&&a<=e.currentSlide+r&&(t=!0)):t=e.currentSlide<=a&&a<e.currentSlide+e.slidesToShow,{"slick-slide":!0,"slick-active":t,"slick-center":n,"slick-cloned":o,"slick-current":a===(e.targetSlide<0?e.targetSlide+e.slideCount:e.targetSlide>=e.slideCount?e.targetSlide-e.slideCount:e.targetSlide)}},v=function(e,t){return e.key||t},w=function(e){!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)}(w,e);var t,n,l,i,b=(l=w,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(l);if(i){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return d(this,e)});function w(){var e;s(this,w);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return h(f(e=b.call.apply(b,[this].concat(n))),"node",null),h(f(e),"handleRef",(function(t){e.node=t})),e}return t=w,(n=[{key:"render",value:function(){var e=function(e){var t,n=[],l=[],i=[],c=o.default.Children.count(e.children),s=(0,a.lazyStartIndex)(e),u=(0,a.lazyEndIndex)(e);return o.default.Children.forEach(e.children,(function(p,d){var f,m={message:"children",index:d,slidesToScroll:e.slidesToScroll,currentSlide:e.currentSlide};f=!e.lazyLoad||e.lazyLoad&&e.lazyLoadedList.indexOf(d)>=0?p:o.default.createElement("div",null);var b=function(e){var t={};return void 0!==e.variableWidth&&!1!==e.variableWidth||(t.width=e.slideWidth),e.fade&&(t.position="relative",e.vertical?t.top=-e.index*parseInt(e.slideHeight):t.left=-e.index*parseInt(e.slideWidth),t.opacity=e.currentSlide===e.index?1:0,e.useCSS&&(t.transition="opacity "+e.speed+"ms "+e.cssEase+", visibility "+e.speed+"ms "+e.cssEase)),t}(g(g({},e),{},{index:d})),h=f.props.className||"",w=y(g(g({},e),{},{index:d}));if(n.push(o.default.cloneElement(f,{key:"original"+v(f,d),"data-index":d,className:(0,r.default)(w,h),tabIndex:"-1","aria-hidden":!w["slick-active"],style:g(g({outline:"none"},f.props.style||{}),b),onClick:function(t){f.props&&f.props.onClick&&f.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(m)}})),e.infinite&&!1===e.fade){var O=c-d;O<=(0,a.getPreClones)(e)&&c!==e.slidesToShow&&((t=-O)>=s&&(f=p),w=y(g(g({},e),{},{index:t})),l.push(o.default.cloneElement(f,{key:"precloned"+v(f,t),"data-index":t,tabIndex:"-1",className:(0,r.default)(w,h),"aria-hidden":!w["slick-active"],style:g(g({},f.props.style||{}),b),onClick:function(t){f.props&&f.props.onClick&&f.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(m)}}))),c!==e.slidesToShow&&((t=c+d)<u&&(f=p),w=y(g(g({},e),{},{index:t})),i.push(o.default.cloneElement(f,{key:"postcloned"+v(f,t),"data-index":t,tabIndex:"-1",className:(0,r.default)(w,h),"aria-hidden":!w["slick-active"],style:g(g({},f.props.style||{}),b),onClick:function(t){f.props&&f.props.onClick&&f.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(m)}})))}})),e.rtl?l.concat(n,i).reverse():l.concat(n,i)}(this.props),t=this.props,n={onMouseEnter:t.onMouseEnter,onMouseOver:t.onMouseOver,onMouseLeave:t.onMouseLeave};return o.default.createElement("div",c({ref:this.handleRef,className:"slick-track",style:this.props.trackStyle},n),e)}}])&&u(t.prototype,n),w}(o.default.PureComponent);t.Track=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Dots=void 0;var o=l(n(4)),r=l(n(5)),a=n(11);function l(e){return e&&e.__esModule?e:{default:e}}function i(e){return(i="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 c(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 s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}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 d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t){return!t||"object"!==i(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 m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var b=function(e){!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)}(g,e);var t,n,l,i,b=(l=g,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(l);if(i){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return f(this,e)});function g(){return u(this,g),b.apply(this,arguments)}return t=g,(n=[{key:"clickHandler",value:function(e,t){t.preventDefault(),this.props.clickHandler(e)}},{key:"render",value:function(){for(var e,t=this.props,n=t.onMouseEnter,l=t.onMouseOver,i=t.onMouseLeave,u=t.infinite,p=t.slidesToScroll,d=t.slidesToShow,f=t.slideCount,m=t.currentSlide,b=(e={slideCount:f,slidesToScroll:p,slidesToShow:d,infinite:u}).infinite?Math.ceil(e.slideCount/e.slidesToScroll):Math.ceil((e.slideCount-e.slidesToShow)/e.slidesToScroll)+1,g={onMouseEnter:n,onMouseOver:l,onMouseLeave:i},h=[],y=0;y<b;y++){var v=(y+1)*p-1,w=u?v:(0,a.clamp)(v,0,f-1),O=w-(p-1),_=u?O:(0,a.clamp)(O,0,f-1),C=(0,r.default)({"slick-active":u?m>=_&&m<=w:m===_}),E={message:"dots",index:y,slidesToScroll:p,currentSlide:m},R=this.clickHandler.bind(this,E);h=h.concat(o.default.createElement("li",{key:y,className:C},o.default.cloneElement(this.props.customPaging(y),{onClick:R})))}return o.default.cloneElement(this.props.appendDots(h),function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({className:this.props.dotsClass},g))}}])&&p(t.prototype,n),g}(o.default.PureComponent);t.Dots=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NextArrow=t.PrevArrow=void 0;var o=l(n(4)),r=l(n(5)),a=n(11);function l(e){return e&&e.__esModule?e:{default:e}}function i(e){return(i="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 c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function s(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 u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}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 m(e,t,n){return t&&f(e.prototype,t),n&&f(e,n),e}function b(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");var n,o;e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(n=e,o=t,(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(n,o))}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=y(e);if(t){var r=y(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return h(this,n)}}function h(e,t){return!t||"object"!==i(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)}var v=function(e){b(n,e);var t=g(n);function n(){return d(this,n),t.apply(this,arguments)}return m(n,[{key:"clickHandler",value:function(e,t){t&&t.preventDefault(),this.props.clickHandler(e,t)}},{key:"render",value:function(){var e={"slick-arrow":!0,"slick-prev":!0},t=this.clickHandler.bind(this,{message:"previous"});!this.props.infinite&&(0===this.props.currentSlide||this.props.slideCount<=this.props.slidesToShow)&&(e["slick-disabled"]=!0,t=null);var n={key:"0","data-role":"none",className:(0,r.default)(e),style:{display:"block"},onClick:t},a={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount};return this.props.prevArrow?o.default.cloneElement(this.props.prevArrow,u(u({},n),a)):o.default.createElement("button",c({key:"0",type:"button"},n)," ","Previous")}}]),n}(o.default.PureComponent);t.PrevArrow=v;var w=function(e){b(n,e);var t=g(n);function n(){return d(this,n),t.apply(this,arguments)}return m(n,[{key:"clickHandler",value:function(e,t){t&&t.preventDefault(),this.props.clickHandler(e,t)}},{key:"render",value:function(){var e={"slick-arrow":!0,"slick-next":!0},t=this.clickHandler.bind(this,{message:"next"});(0,a.canGoNext)(this.props)||(e["slick-disabled"]=!0,t=null);var n={key:"1","data-role":"none",className:(0,r.default)(e),style:{display:"block"},onClick:t},l={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount};return this.props.nextArrow?o.default.cloneElement(this.props.nextArrow,u(u({},n),l)):o.default.createElement("button",c({key:"1",type:"button"},n)," ","Next")}}]),n}(o.default.PureComponent);t.NextArrow=w},function(e,t,n){"use strict";n.r(t),function(e){var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,o){return e[0]===t&&(n=o,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(t,n){var o=e(this.__entries__,t);~o?this.__entries__[o][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,o=e(n,t);~o&&n.splice(o,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,o=this.__entries__;n<o.length;n++){var r=o[n];e.call(t,r[1],r[0])}},t}()}(),o="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,r=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),a="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(r):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},l=["top","right","bottom","left","width","height","size","weight"],i="undefined"!=typeof MutationObserver,c=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,o=!1,r=0;function l(){n&&(n=!1,e()),o&&c()}function i(){a(l)}function c(){var e=Date.now();if(n){if(e-r<2)return;o=!0}else n=!0,o=!1,setTimeout(i,20);r=e}return c}(this.refresh.bind(this))}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){o&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),i?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){o&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;l.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),s=function(e,t){for(var n=0,o=Object.keys(t);n<o.length;n++){var r=o[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||r},p=g(0,0,0,0);function d(e){return parseFloat(e)||0}function f(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}var m="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function b(e){return o?m(e)?function(e){var t=e.getBBox();return g(0,0,t.width,t.height)}(e):function(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var o=u(e).getComputedStyle(e),r=function(e){for(var t={},n=0,o=["top","right","bottom","left"];n<o.length;n++){var r=o[n],a=e["padding-"+r];t[r]=d(a)}return t}(o),a=r.left+r.right,l=r.top+r.bottom,i=d(o.width),c=d(o.height);if("border-box"===o.boxSizing&&(Math.round(i+a)!==t&&(i-=f(o,"left","right")+a),Math.round(c+l)!==n&&(c-=f(o,"top","bottom")+l)),!function(e){return e===u(e).document.documentElement}(e)){var s=Math.round(i+a)-t,m=Math.round(c+l)-n;1!==Math.abs(s)&&(i-=s),1!==Math.abs(m)&&(c-=m)}return g(r.left,r.top,i,c)}(e):p}function g(e,t,n,o){return{x:e,y:t,width:n,height:o}}var h=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=g(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=b(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,o,r,a,l,i,c,u=(o=(n=t).x,r=n.y,a=n.width,l=n.height,i="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,c=Object.create(i.prototype),s(c,{x:o,y:r,width:a,height:l,top:r,right:o+a,bottom:l+r,left:o}),c);s(this,{target:e,contentRect:u})},v=function(){function e(e,t,o){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=o}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new h(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new y(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),w="undefined"!=typeof WeakMap?new WeakMap:new n,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),o=new v(t,n,this);w.set(this,o)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=w.get(this))[e].apply(t,arguments)}}));var _=void 0!==r.ResizeObserver?r.ResizeObserver:O;t.default=_}.call(this,n(27))},function(e,t,n){var o=n(41),r=function(e){var t="",n=Object.keys(e);return n.forEach((function(r,a){var l=e[r];(function(e){return/[height|width]$/.test(e)})(r=o(r))&&"number"==typeof l&&(l+="px"),t+=!0===l?r:!1===l?"not "+r:"("+r+": "+l+")",a<n.length-1&&(t+=" and ")})),t};e.exports=function(e){var t="";return"string"==typeof e?e:e instanceof Array?(e.forEach((function(n,o){t+=r(n),o<e.length-1&&(t+=", ")})),t):r(e)}},function(e,t){e.exports=function(e){return e.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()})).toLowerCase()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,r=(o=n(4))&&o.__esModule?o:{default:o},a={accessibility:!0,adaptiveHeight:!1,afterChange:null,appendDots:function(e){return r.default.createElement("ul",{style:{display:"block"}},e)},arrows:!0,autoplay:!1,autoplaySpeed:3e3,beforeChange:null,centerMode:!1,centerPadding:"50px",className:"",cssEase:"ease",customPaging:function(e){return r.default.createElement("button",null,e+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:null,nextArrow:null,onEdge:null,onInit:null,onLazyLoadError:null,onReInit:null,pauseOnDotsHover:!1,pauseOnFocus:!1,pauseOnHover:!0,prevArrow:null,responsive:null,rows:1,rtl:!1,slide:"div",slidesPerRow:1,slidesToScroll:1,slidesToShow:1,speed:500,swipe:!0,swipeEvent:null,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,waitForAnimate:!0};t.default=a},function(e,t,n){var o=n(44);e.exports=new o},function(e,t,n){var o=n(45),r=n(28),a=r.each,l=r.isFunction,i=r.isArray;function c(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}c.prototype={constructor:c,register:function(e,t,n){var r=this.queries,c=n&&this.browserIsIncapable;return r[e]||(r[e]=new o(e,c)),l(t)&&(t={match:t}),i(t)||(t=[t]),a(t,(function(t){l(t)&&(t={match:t}),r[e].addHandler(t)})),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},e.exports=c},function(e,t,n){var o=n(46),r=n(28).each;function a(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var n=this;this.listener=function(e){n.mql=e.currentTarget||e,n.assess()},this.mql.addListener(this.listener)}a.prototype={constuctor:a,addHandler:function(e){var t=new o(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;r(t,(function(n,o){if(n.equals(e))return n.destroy(),!t.splice(o,1)}))},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){r(this.handlers,(function(e){e.destroy()})),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";r(this.handlers,(function(t){t[e]()}))}},e.exports=a},function(e,t){function n(e){this.options=e,!e.deferSetup&&this.setup()}n.prototype={constructor:n,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=n},function(e,t){var n,o,r=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function l(){throw new Error("clearTimeout has not been defined")}function i(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{o="function"==typeof clearTimeout?clearTimeout:l}catch(e){o=l}}();var c,s=[],u=!1,p=-1;function d(){u&&c&&(u=!1,c.length?s=c.concat(s):p=-1,s.length&&f())}function f(){if(!u){var e=i(d);u=!0;for(var t=s.length;t;){for(c=s,s=[];++p<t;)c&&c[p].run();p=-1,t=s.length}c=null,u=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===l||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function b(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new m(e,t)),1!==s.length||u||i(f)},m.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=b,r.addListener=b,r.once=b,r.off=b,r.removeListener=b,r.removeAllListeners=b,r.emit=b,r.prependListener=b,r.prependOnceListener=b,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,n){"use strict";var o="function"==typeof Symbol&&Symbol.for,r=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,l=o?Symbol.for("react.fragment"):60107,i=o?Symbol.for("react.strict_mode"):60108,c=o?Symbol.for("react.profiler"):60114,s=o?Symbol.for("react.provider"):60109,u=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.async_mode"):60111,d=o?Symbol.for("react.concurrent_mode"):60111,f=o?Symbol.for("react.forward_ref"):60112,m=o?Symbol.for("react.suspense"):60113,b=o?Symbol.for("react.suspense_list"):60120,g=o?Symbol.for("react.memo"):60115,h=o?Symbol.for("react.lazy"):60116,y=o?Symbol.for("react.block"):60121,v=o?Symbol.for("react.fundamental"):60117,w=o?Symbol.for("react.responder"):60118,O=o?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case p:case d:case l:case c:case i:case m:return e;default:switch(e=e&&e.$$typeof){case u:case f:case h:case g:case s:return e;default:return t}}case a:return t}}}function C(e){return _(e)===d}t.AsyncMode=p,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=l,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=c,t.StrictMode=i,t.Suspense=m,t.isAsyncMode=function(e){return C(e)||_(e)===p},t.isConcurrentMode=C,t.isContextConsumer=function(e){return _(e)===u},t.isContextProvider=function(e){return _(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===f},t.isFragment=function(e){return _(e)===l},t.isLazy=function(e){return _(e)===h},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===a},t.isProfiler=function(e){return _(e)===c},t.isStrictMode=function(e){return _(e)===i},t.isSuspense=function(e){return _(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===l||e===d||e===c||e===i||e===m||e===b||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===w||e.$$typeof===O||e.$$typeof===y)},t.typeOf=_},function(e,t,n){"use strict";n.r(t),n.d(t,"registerWoolentorBlocks",(function(){return Mr}));var o={};n.r(o),n.d(o,"name",(function(){return ue})),n.d(o,"category",(function(){return pe})),n.d(o,"metadata",(function(){return se})),n.d(o,"settings",(function(){return fe}));var r={};n.r(r),n.d(r,"name",(function(){return Me})),n.d(r,"category",(function(){return Le})),n.d(r,"metadata",(function(){return ze})),n.d(r,"settings",(function(){return Ne}));var a={};n.r(a),n.d(a,"name",(function(){return Ct})),n.d(a,"category",(function(){return Et})),n.d(a,"metadata",(function(){return Ot})),n.d(a,"settings",(function(){return jt}));var l={};n.r(l),n.d(l,"name",(function(){return sn})),n.d(l,"category",(function(){return un})),n.d(l,"metadata",(function(){return ln})),n.d(l,"settings",(function(){return dn}));var i={};n.r(i),n.d(i,"name",(function(){return Dn})),n.d(i,"category",(function(){return Mn})),n.d(i,"metadata",(function(){return xn})),n.d(i,"settings",(function(){return In}));var c={};n.r(c),n.d(c,"name",(function(){return lo})),n.d(c,"category",(function(){return io})),n.d(c,"metadata",(function(){return ro})),n.d(c,"settings",(function(){return so}));var s={};n.r(s),n.d(s,"name",(function(){return Ao})),n.d(s,"category",(function(){return To})),n.d(s,"metadata",(function(){return Po})),n.d(s,"settings",(function(){return xo}));var u={};n.r(u),n.d(u,"name",(function(){return rr})),n.d(u,"category",(function(){return ar})),n.d(u,"metadata",(function(){return nr})),n.d(u,"settings",(function(){return ir}));var p={};n.r(p),n.d(p,"name",(function(){return Fr})),n.d(p,"category",(function(){return Ar})),n.d(p,"metadata",(function(){return Sr})),n.d(p,"settings",(function(){return Br}));var d=n(12),f=n(0),m=n(1);function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var g,h=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",width:"20",height:"20",viewBox:"0 0 40 40"},React.createElement("image",{id:"woolentor-logo",width:"40",height:"40",href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADHFJREFUeNrsXU2IHMcV7m7NSnEU8IAvvgQmEHTV+JCDNwaN4oB1UNAIx7nO7sWQ5CBtcvAlYS0CAZ9GOoSActjZUyDESGZ9kA7OjEDWHrW6GoHHOAcfEphAHMjuaif12tWT3pn++arrVf/Wg2Z3pZme7npffe97r17XuE7N7Ot3e23xoysP+v2S/K+OPFCbyJ9TcXwhjgP6/fzdyUGdxsutgcPJ0T3p6K6ik7PaRALiEf0uQDGzAMh3hvfFcU06vl2CyyIwfCSO+1VjCLeCTu+X/HIpZNwXx24VwOCW3PE0wwfi2KgowxIA7khmmFkA4I4nh9+QMb0ONmv9+J3R2Xd+ccd13akFQLLjt3MScrnat37zJ8f77vfp15E4bpUFCK51vHkjxxMAloyAsCWAUGhoaJUgxm9LNV9ba73+VtQ/E+j78/mcwsL7jWIAqeqHFRZ3SvbS7//suK+8mpY5bAogTHJnpwKcT2nc501x/pkL3TTnk3VOvnw+FmMzlJOjfgCgGxPHjvj1nlOO4k0+AFh/C3rd8f5D+nFTHE9laKwPAGS59mlTZv0pAFx8A3rdi4PHCzYQB7HB+7UAgFT4T+uq8BOd333Dcb/9ndTXnXx24Mz/+dXyP2+LsRubDgmeYecT5e84DbUz3R9i9P/kYdx/9WRI6FYKADLej5tI+Yv0Ssz81utXMPp/9jhRIMqQ0K8EACRljeue23PG/vl//p32MhrTezKclhcAIbHXdRpuMP3vP1Q57Q43CDxm54+bKPai6J8EYJrRzA+p/0JA4DE7v+1Yc87wxP5cQOAxOL8tlb51vrSY2n9E/P9U52NYQOAxOH9sY36I/l95NVj2TaZ/kfdnoH92EOgywD3r/GXxp1z507WhTp3A05j9w6anelG29ubbJtR/WoqYuWLoZXQ+0c5N6+6lwRTUD6z8+fR/8uVzzo8OQrF5AEi6GVp3Zxd/jLM/bF3JyuYAYBU/T/w/fvLA1CXcVC0ZqzLAthV9Mc7HGj986o9Y+eO0HRU9AAPgcG/Us3E/AQDrhdL/sh7YYQXAfD5vr10d7CAIbywALuae/iVZHw0FKAPQzO+gKU4TYz/S+OGv/Jmlf+VQ4AGzvyNjP1zjtuo/DgCf5nlZ7cBvugywiCfoKleTTGVMNBZ/dLKCTmYAiNlPwq+XBe029kfQf3rjh5FQoMMA25HxzorB0HgYafzgtF5Sm3lLZfYv3rR+xTnaG1n6FxOBs/GDzkdCO1hNPBGC8Whvl0M40kSeqDLAtq7oaYL654r9dC56gLT15k8d70LXP6iplB4ra+mL71gW8FRnvwryrfrH1D8JybOD92JTybMb73GE3RsqDHCDK/bVmf65Gj8ovU6rIzDUYPpRGcEKAOSL+unovwIVP2o7+9fBvj8g9iNMgoAtCwtEMcAGWq4sqjBEg0GLL0yDYpT+09Q/3UOO97GBZAEDillIjCdaOv7kr7k6/tzPf3cqHhLFHo4+cF58dpDrdXA1fqBAYmogoSe2Ns7fnYwiGUAqxc7x/gOoaOGLwQvd/Jz/q+HKwNPf5349zO06VJx29MmHbJkEci7QriWFgMEidu1jTQvoMqiuJankhVLOSZNwNX6iTMLcQ9APLxItA6Cvirg8xCB9RlqcpIGkHDoP53M5rZV/A+mKn70Q/QebK/8/foFxFa2HZ0q3BLjWfvZL6LVrVwfGBRVn6bfAHoJrUQwwWLmJJxjyWgb7BGhWqzAMhQqjAECdlhJCNTeP0LVeFAB6qyjGxKCpVMavjV8dKItFU6FAqfEjZdwYNo/QzQZ6CwCE9thfvRlwDdsEC5wFqT8qFJhYseQs/cJMYq6HoBdmgF4sAkExSDfEKQYprcu63uDX1jOCJ9FpTIs/6FgZ7iG4FAZAN0nNIkUIFVRDs1jTgeQszgUr9N6QsInSv+EWslMMcCnxptCUkCkMIGkfR+3AhPqH6B/sITjef2ASAH7ml8oAAaWhYlA39qqkfdC5FEVknBjlavwoQewPW9eTArCdemPgBekuW6qmfcj5dMvEnI0fKEvm1EHc8RzwUa8XYDqis0KokvapiCNdRoHVf8oYwT0E2fYOymIXCQAd6ObAgoTK/ng6ad/hH38LVypp0Nd+spEZlHDjR8r1wExiOPaH6wEwAMjg9YEMC0QqaR/NDhrs/44+wGfxj97OpE/WYMp+zHauHDuIewSAl9FXo8j0wCdlT83+DbyEe/iXPyxm3dHHu7AgPLehXiaGH/kGGj8K2jwi+bochce9VVITtGVqIfxAwJDDw6GI2tPRWnnQaQsPTgGNHznF/lMAUDJUDKI3rJKq+QCM6EA6VAgFJAjRLKPijR+GAICKQTB39uv2oEOOBPVHqX+6JrQ1TaXOAG/4mJb7l2fziEgAdFTfhIqUtBmk0sRBg5MUfvzQAKaGFAbSagPwci3gtBJtHsEEAHCPm7TuGRVRdiSFX1J4ONzFQ0FaC1lNGj/4Q8Ai5wUvNk4MnpGPP6mkfcjr0NpAGvvUpPHDDAA4wkCWtA8xqg2goSCuhQztc6xA44c5AKDbnUS1juukfQg7obUBH4gRgpBz5a9lfudwbQBMTbNAWARxpH2p1yXegxZT/NpAKBQo7fX/jGnlr7jNIzQBAIrBMKVypH1Q2FAQhOFrUlmurUjjh5kQENAt3DpOIGBM+6D3K9QGgm5idB2jSo0fxgCgIl5oIYQz7ePWD+SsYHMGiP6BR77LHPvDANB6qlLlOUI07aNzcjzs6dcGFICELkdDjR/l3DouEgD/0j0J5/o1OY32xeEyv4bAXGBJ65HM+VtDihOBC6plXMA4/tuH7AUREoRcKhtZ+SvgW0Oy2oQFAFxr2HQeE/sN+Kzy8S4boyB6hzONLrUGQGkRYpK9XWP5sF8bYNAVVW38iLFH3vm7k5n4ZaY9M57pFTPIOabToUPNzAJ5SKbgbw1RtWmQBmpPDZXW8bjZb9rIeTqhAFr5K/5bQ1TsIADAoyLDAFfahwFtlFlkVrnxI8oE+x+wMQBKkabTPigUKLSQqTitzI0fURlAIAIXfxTBAibSvtSZnEFvIPdV5saPKAG4AIAUgiwsoKIDTKV9UChQXGhKXfkr57eGwAzAxgIqixsm0z4o9IBZAWfjR9GlX2kzMel9f4c3ivzIYfpWMGodT2uEyCPtQ8Qnrf6lrVFwNn7Qw6Gt9WJ3W58fH0+cuz9wTgGAEPH1uz0KBdpfCkkxlhycNLB5C784oxYy2qY9jr6RZWmVjTGK3N52abI7yyGA7D7bwNLDmxEZgb9Cl/PWrmk6JG6tgK4faSyp4M7pCz+74X+V3zV3j/OTSBwFqA/W0UsiglZoPLxt+/wfX0Ehil7/0nCvUs53Xfd6JAAkCD53Mjwr0FSj4g/tVVwh2xQAGMWFALJd69ba2izs/DgAjOw44Xby9+dVutwV364AQGQDU04xWHfL2rpekN1JBUDcC63FGy0zF13TAMXfdEXExr1aiMGxk7CDqLVoQUgpYUly/dMz/UL3sgDARAUA5PyxdWstbCJC++VIYMS9Q9aKJ3bsamG3Ypkh6xutVWr2TzIBwLJALWwrURsAJ9i0Y1hZu01tX1oAkHUBGwqqZzPEb+jDobcdhgdIrOVL/bLTK9Fc9Gw2LaxH2peVAQJBeNuObSWoH9ZtqvsDUEw5sGNcatuUuo0fADKmbDoMj5JZM2Ij4SOlhTzlHUJkWrFlx7p0lskvbtZPE6Jwx4n4PnprhcX911SoXxsAEgR2xbAc9lpawYctBCzZdSsKSyH6MvvA1f10+a1j1Ejatr4oxPkjnRNobxMnM4PLNjPI3W7pOp+FAUJMQI8BjS0T5JbusSzSeVxXJOOQZQLztsXlfFYGCDFBx/nm6aKu9VX5Yr5xAISE4diCgDXP3+J2vjEAhIBgi0U8zr+sk+rlogFidAHFKls2zm7k9O+Zcr5xBljKEEgXdKxPYaN2LuOTx83rbqQuoJDQt75NpfzrSZ28lQRACAh9CQRbL1i1+1Lp55ZKu0XcpWSDoRWIC5tKx0/y/mC3yLuWfYbDBqeLNNPvyHhfSAHNLcMoCCAQE2w3TCRSTn8ryxp+7QDQMCCUwvGlBECNgTCTAq80ji81AJY0wqDCYnEqY/yoqBhfaQAsZQ2UPt6ogGCcSZrfNVnBaxQAlsBAYYGY4ZpTnqISOXpSFadXGgAxYYKOi/JnO0eHP3O+eQxrWtXxqzwAYhgiYImXQyGjl8HJMxnHv5B/T6s2w9PsfwIMAOhUCXLerUHIAAAAAElFTkSuQmCC"}));Object(d.setCategories)([{slug:"woolentor-blocks",title:Object(f.__)("WooLentor","woolentor"),icon:React.createElement(m.Icon,{icon:h})}].concat(function(e){if(Array.isArray(e))return b(e)}(g=Object(d.getCategories)().filter((function(e){return"woolentor-blocks"!==e.slug})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(g)||function(e,t){if(e){if("string"==typeof e)return b(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,void 0):void 0}}(g)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()));var y=n(2),v=n(9),w=n(10);function O(e){return(O="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 _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return E(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(e,void 0):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(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 k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t){if(t&&("object"===O(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var F=function(e){!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&&k(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=P(o);if(r){var n=P(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return S(this,e)});function l(){return R(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e,t=this.props,n=t.setAttributes,o=t.selectedTaxonomies,r=t.attributesKey,a=t.title,l=t.type,i=t.taxnomiesList,c=function(){var e=[];return i&&i.forEach((function(t,n){e.push({label:t.name,value:t.slug})})),e};if("multiple"==l){var s=c();s.length>0&&(e=s.map((function(e,t){return React.createElement(m.CheckboxControl,{key:e.value,label:e.label,onChange:function(t){return function(e,t){var a=-1!==o.indexOf(t)?C(o):[].concat(C(o),[t]);if(0==e){var l=a.indexOf(t);a.splice(l,1)}n(_({},r,a))}(t,e.value)},checked:-1!==o.indexOf(e.value)})})))}return React.createElement(y.Fragment,null,React.createElement("div",{className:"woolentor-component-taxonomy-area"},"single"!=l&&React.createElement("h2",{className:"woolentor-component-area-title"},a),React.createElement("div",{className:"woolentor-component-taxonomy-fileds"},"single"==l?0==c().length?React.createElement(m.Spinner,null):React.createElement(m.SelectControl,{label:a,value:o,options:c(),onChange:function(e){return n(_({},r,e))}}):e||React.createElement(m.Spinner,null))))}}])&&j(t.prototype,n),l}(y.Component),A=Object(v.compose)([Object(w.withSelect)((function(e,t){return{taxnomiesList:(0,e("core").getEntityRecords)("taxonomy",t.taxonomy?t.taxonomy:"product_cat",{orderby:"name",order:"asc",hide_empty:!0})}}))])(F),T=n(3);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 x(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 z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){D(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L(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(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function N(e,t){if(t&&("object"===B(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function H(e){return(H=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var W,G,q=function(e){!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&&I(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=H(o);if(r){var n=H(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return N(this,e)});function l(){return M(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.style,r=t.columns,a=t.rows,l=t.productTab,i=t.slider,c=t.productFilterType,s=t.perPage,u=t.customOrder,p=t.orderBy,d=t.order,b=t.selectedCategories,g=t.slitems,h=t.slarrows,v=t.sldots,w=t.slpauseOnHover,O=t.slautolay,_=t.slautoplaySpeed,C=t.slanimationSpeed,E=t.slscrollItem,R=t.sltabletDisplayColumns,j=t.sltabletScrollColumns,k=t.sltabletWidth,S=t.slMobileDisplayColumns,P=t.slMobileScrollColumns,F=t.slMobileWidth,B={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"};return React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Layout","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Product Style","woolentor"),value:o,options:[{label:Object(f.__)("Style One","woolentor"),value:"1"},{label:Object(f.__)("Style Two","woolentor"),value:"2"},{label:Object(f.__)("Style Three","woolentor"),value:"3"}],onChange:function(e){return n({style:e})}}),React.createElement(m.RangeControl,{label:Object(f.__)("Columns","woolentor"),value:r,onChange:function(e){return n({columns:e})},min:1,step:1,max:6}),React.createElement(m.RangeControl,{label:Object(f.__)("Rows","woolentor"),value:a,onChange:function(e){return n({rows:e})},min:1,step:1,max:20}),React.createElement(m.ToggleControl,{label:Object(f.__)("Tab","woolentor"),checked:l,help:l?Object(f.__)("Enable product tab.","woolentor"):Object(f.__)("Toggle to show the tab layout.","woolentor"),onChange:function(){return n({productTab:!l})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider","woolentor"),checked:i,help:i?Object(f.__)("Enable product slider ( When product tab is off, Then working slider ).","woolentor"):Object(f.__)("Toggle to show the slider layout.","woolentor"),onChange:function(){return n({slider:!i})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Query Options","woolentor"),initialOpen:!1},React.createElement(m.SelectControl,{label:Object(f.__)("Filter By","woolentor"),value:c,options:[{label:Object(f.__)("Recent Products","woolentor"),value:"recent"},{label:Object(f.__)("Featured Products","woolentor"),value:"featured"},{label:Object(f.__)("Best Selling Products","woolentor"),value:"best_selling"},{label:Object(f.__)("Sale Products","woolentor"),value:"sale"},{label:Object(f.__)("Top Rated Products","woolentor"),value:"top_rated"},{label:Object(f.__)("Mixed order Products","woolentor"),value:"mixed_order"}],onChange:function(e){return n({productFilterType:e})}}),React.createElement(m.RangeControl,{label:Object(f.__)("Number Of Products","woolentor"),value:s,onChange:function(e){return n({perPage:e})},min:1,step:1,max:1e3}),React.createElement(m.ToggleControl,{label:Object(f.__)("Custom Order","woolentor"),checked:u,help:u?Object(f.__)("Enable custom order.","woolentor"):Object(f.__)("Toggle to show the custom order.","woolentor"),onChange:function(){return n({customOrder:!u})}}),React.createElement(A,{title:Object(f.__)("Product Categories","woolentor"),attributesKey:"selectedCategories",setAttributes:n,selectedTaxonomies:b,type:"multiple"}),u?React.createElement(React.Fragment,null,React.createElement(m.SelectControl,{label:Object(f.__)("Order","woolentor"),value:d,options:[{label:Object(f.__)("Descending","woolentor"),value:"DESC"},{label:Object(f.__)("Ascending","woolentor"),value:"ASC"}],onChange:function(e){return n({order:e})}}),React.createElement(m.SelectControl,{label:Object(f.__)("Orderby","woolentor"),value:p,options:[{label:Object(f.__)("None","woolentor"),value:"none"},{label:Object(f.__)("ID","woolentor"),value:"ID"},{label:Object(f.__)("Date","woolentor"),value:"date"},{label:Object(f.__)("Name","woolentor"),value:"name"},{label:Object(f.__)("Title","woolentor"),value:"title"},{label:Object(f.__)("Comment count","woolentor"),value:"comment_count"},{label:Object(f.__)("Random","woolentor"),value:"rand"}],onChange:function(e){return n({orderBy:e})}})):""),1==i&&React.createElement(m.PanelBody,{title:Object(f.__)("Slider Options","woolentor"),initialOpen:!1},React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:g,onChange:function(e){return n({slitems:e})},min:1,step:1,max:10}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider Arrow","woolentor"),checked:h,help:h?Object(f.__)("Enable slider arrow.","woolentor"):Object(f.__)("Toggle to show the slider arrow.","woolentor"),onChange:function(){return n({slarrows:!h})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider dots","woolentor"),checked:v,help:v?Object(f.__)("Enable slider pagination.","woolentor"):Object(f.__)("Toggle to show the slider pagination.","woolentor"),onChange:function(){return n({sldots:!v})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Pause on Hover?","woolentor"),checked:w,help:v?Object(f.__)("Enable slider pagination.","woolentor"):Object(f.__)("Toggle to show the slider pagination.","woolentor"),onChange:function(){return n({slpauseOnHover:!w})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider auto play","woolentor"),checked:O,help:v?Object(f.__)("Enable slider auto play.","woolentor"):Object(f.__)("Toggle to show the slider auto play.","woolentor"),onChange:function(){return n({slautolay:!O})}}),React.createElement(m.RangeControl,{label:Object(f.__)("Autoplay speed","woolentor"),value:_,onChange:function(e){return n({slautoplaySpeed:e})},min:1,step:1,max:1e5}),React.createElement(m.RangeControl,{label:Object(f.__)("Autoplay animation speed","woolentor"),value:C,onChange:function(e){return n({slanimationSpeed:e})},min:1,step:1,max:1e5}),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:E,onChange:function(e){return n({slscrollItem:e})},min:1,step:1,max:1e5}),React.createElement("h3",null,Object(f.__)("Tablet Screen options","woolentor")),React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:R,onChange:function(e){return n({sltabletDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:j,onChange:function(e){return n({sltabletScrollColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Tablet Screen Resolution","woolentor"),value:k,onChange:function(e){return n({sltabletWidth:e})},min:1,step:1,max:1500}),React.createElement("h3",null,Object(f.__)("Mobile Phone Screen options","woolentor")),React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:S,onChange:function(e){return n({slMobileDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:P,onChange:function(e){return n({slMobileScrollColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Mobile Screen Resolution","woolentor"),value:F,onChange:function(e){return n({slMobileWidth:e})},min:1,step:1,max:1500})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement(y.Fragment,{key:"title"},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleColor,onChange:function(e){return n({titleColor:e})}}),React.createElement("h3",null,Object(f.__)("Hover Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.titleHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleHoverColor,onChange:function(e){return n({titleHoverColor:e})}}),React.createElement("h3",null,Object(f.__)("Alignment","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-alignment-btn-group"},React.createElement(m.Button,{icon:"editor-alignleft",value:"left",isPrimary:"left"===t.titleAlign,isSecondary:"left"!==t.titleAlign,onClick:function(){return n({titleAlign:"left"})},title:Object(f.__)("Title align left","woolentor")}),React.createElement(m.Button,{icon:"editor-aligncenter",value:"center",isPrimary:"center"===t.titleAlign,isSecondary:"center"!==t.titleAlign,onClick:function(){return n({titleAlign:"center"})},title:Object(f.__)("Title align center","woolentor")}),React.createElement(m.Button,{icon:"editor-alignright",value:"right",isPrimary:"right"===t.titleAlign,isSecondary:"right"!==t.titleAlign,onClick:function(){return n({titleAlign:"right"})},title:Object(f.__)("Title align right","woolentor")}),React.createElement(m.Button,{icon:"editor-justify",value:"justify",isPrimary:"justify"===t.titleAlign,isSecondary:"justify"!==t.titleAlign,onClick:function(){return n({titleAlign:"justify"})},title:Object(f.__)("Title align justify","woolentor")}),React.createElement("span",{onClick:function(){return n({titleAlign:""})},class:"woolentor-reset-btn dashicon dashicons dashicons-image-rotate"}))),React.createElement(y.Fragment,{key:"price"},React.createElement("h2",{className:"woolentor-blocks-section-title",style:{marginTop:15}},Object(f.__)("Price","woolentor")),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.priceColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.priceColor,onChange:function(e){return n({priceColor:e})}})),React.createElement(y.Fragment,{key:"action-button"},React.createElement("h2",{className:"woolentor-blocks-section-title",style:{marginTop:15}},Object(f.__)("Action Button","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.actionBtnColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.actionBtnColor,onChange:function(e){return n({actionBtnColor:e})}}),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.actionBtnBgColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.actionBtnBgColor,onChange:function(e){return n({actionBtnBgColor:e})}}),React.createElement("h3",null,Object(f.__)("Hover Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.actionBtnHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.actionBtnHoverColor,onChange:function(e){return n({actionBtnHoverColor:e})}}),React.createElement("h3",null,Object(f.__)("Hover Background Color","woolentor"),React.createElement("span",{style:z(z({},B),{},{backgroundColor:t.actionBtnHoverBgColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.actionBtnHoverBgColor,onChange:function(e){return n({actionBtnHoverBgColor:e})}}),React.createElement("h3",null,Object(f.__)("Content Alignment","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-alignment-btn-group"},React.createElement(m.Button,{icon:"editor-alignleft",value:"left",isPrimary:"left"===t.contentAlign,isSecondary:"left"!==t.contentAlign,onClick:function(){return n({contentAlign:"left"})},title:Object(f.__)("Title align left","woolentor")}),React.createElement(m.Button,{icon:"editor-aligncenter",value:"center",isPrimary:"center"===t.contentAlign,isSecondary:"center"!==t.contentAlign,onClick:function(){return n({contentAlign:"center"})},title:Object(f.__)("Title align center","woolentor")}),React.createElement(m.Button,{icon:"editor-alignright",value:"right",isPrimary:"right"===t.contentAlign,isSecondary:"right"!==t.contentAlign,onClick:function(){return n({contentAlign:"right"})},title:Object(f.__)("Title align right","woolentor")}),React.createElement(m.Button,{icon:"editor-justify",value:"justify",isPrimary:"justify"===t.contentAlign,isSecondary:"justify"!==t.contentAlign,onClick:function(){return n({contentAlign:"justify"})},title:Object(f.__)("Title align justify","woolentor")}),React.createElement("span",{onClick:function(){return n({contentAlign:""})},class:"woolentor-reset-btn dashicon dashicons dashicons-image-rotate"})))))}}])&&L(t.prototype,n),l}(y.Component),U=n(5),V=n.n(U),Q=n(7),K=n.n(Q),Y=n(8),X=n(22),J=n.n(X),Z=n(6);function $(e){return($="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 ee(){return(ee=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function te(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(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,t){return(re=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ae(e,t){if(t&&("object"===$(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function le(e){return(le=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ie=function(e){!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&&re(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=le(o);if(r){var n=le(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return ae(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={productData:[],categoryData:[]},t}return t=l,(n=[{key:"componentDidMount",value:function(){this.fetchProductsData(),this.fetchCategoryData()}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes,n=t.perPage,o=t.productFilterType,r=t.customOrder,a=this.props.attributes.orderBy,l=this.props.attributes.order,i=this.props.attributes.selectedCategories;e.attributes.perPage==n&&e.attributes.productFilterType==o&&e.attributes.customOrder==r&&e.attributes.orderBy==a&&e.attributes.order==l&&e.attributes.selectedCategories==i||this.fetchProductsData(),e.attributes.selectedCategories!=i&&this.fetchCategoryData()}},{key:"fetchProductsData",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n={perPage:this.props.attributes.perPage,filterBy:this.props.attributes.productFilterType,wpnonce:woolentorData.security};1==this.props.attributes.customOrder&&(n.orderBy=this.props.attributes.orderBy,n.order=this.props.attributes.order),this.props.attributes.selectedCategories.length>0&&(n.categories=this.props.attributes.selectedCategories),t.length>0&&(n.categories=t);var o=Object(Y.addQueryArgs)("/woolentor/v1/products",n);K()({path:o}).then((function(t){return e.setState({productData:t})}))}},{key:"fetchCategoryData",value:function(){var e=this,t={queryLimit:1e3,queryOrder:"ASC",queryType:"regular",querySlug:this.props.attributes.selectedCategories,wpnonce:woolentorData.security},n=Object(Y.addQueryArgs)("/woolentor/v1/category",t);K()({path:n}).then((function(t){return e.setState({categoryData:t})}))}},{key:"render",value:function(){var e=this,t=this.props,n=(t.name,t.attributes),o=t.className,r=t.isSelected,a=t.setAttributes,l=t.clientId,i=n.blockUniqId;function c(e){var t=e.className,n=e.onClick;return React.createElement(m.Button,{className:t,onClick:n},React.createElement("i",{className:"fa fa-angle-right"}))}function s(e){var t=e.className,n=e.onClick;return React.createElement(m.Button,{className:t,onClick:n},React.createElement("i",{className:"fa fa-angle-left"}))}""==i&&a({blockUniqId:l});var u,p={arrows:n.slarrows,prevArrow:React.createElement(s,null),nextArrow:React.createElement(c,null),dots:n.sldots,infinite:!0,autoplay:n.slautolay,autoplaySpeed:n.slautoplaySpeed,speed:n.slanimationSpeed,fade:!1,pauseOnHover:n.slpauseOnHover,slidesToShow:n.slitems,slidesToScroll:n.slscrollItem,rtl:n.slIsrtl,responsive:[{breakpoint:n.sltabletWidth,settings:{slidesToShow:n.sltabletDisplayColumns,slidesToScroll:n.sltabletScrollColumns}},{breakpoint:n.slMobileWidth,settings:{slidesToShow:n.slMobileDisplayColumns,slidesToScroll:n.slMobileScrollColumns}}]},d=V()("woolentor-product-tab-area",ne({},"woolentor-columns-".concat(n.columns),n.columns)),b=V()("woolentor-row"),g=V()("product-item",ne({},"product_style_three",3==n.style)),h=V()(ne({},"woolentor-col-".concat(n.columns),n.columns)),v=Z.a.div(W||(W=te(["\n\t\t\t& .product-item .product-inner .content .title{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .product-inner .content .title a{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .product-inner .content .title a:hover{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .product-inner .content .woolentor-product-price,.product-item .product-inner .content .woolentor-product-price .amount{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .product-inner .content{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .actions a,.product-item .woocommerce.compare-button a.button,.product-item .actions a::before{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .actions{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .actions a:hover,.product-item .woocommerce.compare-button a.button:hover,.product-item .actions a:hover::before{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-item .actions:hover{\n\t\t\t\t",";\n\t\t\t}\n\t\t"])),n.titleAlign&&"text-align:"+n.titleAlign,n.titleColor&&"color:"+n.titleColor,n.titleHoverColor&&"color:"+n.titleHoverColor,n.priceColor&&"color:"+n.priceColor,n.contentAlign&&"text-align:"+n.contentAlign,n.actionBtnColor&&"color:"+n.actionBtnColor,n.actionBtnBgColor&&"background-color:"+n.actionBtnBgColor,n.actionBtnHoverColor&&"color:"+n.actionBtnHoverColor,n.actionBtnHoverBgColor&&"background-color:"+n.actionBtnHoverBgColor),w=Z.a.div(G||(G=te(["\n\t\t\n\t\t"]))),O=this.state,_=O.productData,C=O.categoryData,E=0,R=!1;_.length>0&&(u=_.map((function(e,t){return E++,n.rows>1&&E%n.rows!=0&&(R=!0),React.createElement(React.Fragment,null,React.createElement("div",{className:h},React.createElement(w,{className:1==R?g+" mb-30":g},React.createElement("div",{className:"product-inner"},React.createElement("div",{className:"image-wrap"},React.createElement(m.Disabled,null,React.createElement("a",{href:e.permalink,className:"image"},Object(y.createElement)("div",{className:"woolentor-product-image",dangerouslySetInnerHTML:{__html:e.image.full.html}}),!0===e.on_sale&&React.createElement("span",{class:"onsale"},Object(f.__)("Sale!","woolentor")))),1==n.style&&!0===e.wishlist.status?Object(y.createElement)("span",{className:"woolentor-product-wishlist",dangerouslySetInnerHTML:{__html:e.wishlist.html}}):"",3==n.style?React.createElement("div",{className:"product_information_area"},React.createElement("div",{className:"actions style_two"},!0===e.wishlist.status?Object(y.createElement)("span",{className:"woolentor-product-wishlist",dangerouslySetInnerHTML:{__html:e.wishlist.html}}):"",Object(y.createElement)("div",{className:"woolentor-product-btn"},Object(y.createElement)("a",null,Object(f.__)("Add to cart","woolentor")))),React.createElement("div",{className:"content"},React.createElement("h4",{className:"title"},React.createElement("a",{href:e.permalink},e.title)),Object(y.createElement)("div",{className:"woolentor-product-price",dangerouslySetInnerHTML:{__html:e.price_html}}))):React.createElement("div",{class:2==n.style?"actions style_two":"actions"},2==n.style?React.createElement(React.Fragment,null,!0===e.wishlist.status?Object(y.createElement)("span",{className:"woolentor-product-wishlist",dangerouslySetInnerHTML:{__html:e.wishlist.html}}):""):React.createElement(React.Fragment,null,!0===e.compare.status?Object(y.createElement)("span",{className:"woolentor-product-compare",dangerouslySetInnerHTML:{__html:e.compare.html}}):""))),React.createElement("div",{className:"content"},React.createElement("h4",{className:"title"},React.createElement(m.Disabled,null,React.createElement("a",{href:e.permalink},e.title))),Object(y.createElement)("div",{className:"woolentor-product-price",dangerouslySetInnerHTML:{__html:e.price_html}}))))))})));var j,k=function(t){e.fetchProductsData(t.target.getAttribute("dataslug"))},S=0;return n.selectedCategories.length>0&&(j=C.map((function(e,t){return S++,React.createElement(React.Fragment,null,React.createElement("li",null,React.createElement("a",{class:1==S?"htactive":"",href:"#woolentortab"+i+S,onClick:k,dataslug:e.slug},e.name)))}))),React.createElement(y.Fragment,null,r&&React.createElement(q,this.props),React.createElement("div",{className:o},React.createElement(v,{className:d},n.productTab&&React.createElement("div",{class:"product-tab-list ht-text-center"},React.createElement("ul",{class:"ht-tab-menus"},j)),0==_.length?React.createElement(m.Spinner,null):React.createElement("div",{className:b},1==n.slider?React.createElement(J.a,ee({},p,{className:"product-slider"}),u):u))))}}])&&oe(t.prototype,n),l}(y.Component),ce=React.createElement(m.SVG,{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 359 359",space:"preserve"},React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M96,0H13C7.5,0,3,4.5,3,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10V10C106,4.5,101.5,0,96,0z M87,84H23V20h64V84z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M221,0h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10V10C231,4.5,226.5,0,221,0z M212,84h-64V20 h64V84z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M96,126H13c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C106,130.5,101.5,126,96,126z M87,209H23 v-63h64V209z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M221,126h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C231,130.5,226.5,126,221,126z M212,209h-64v-63h64V209z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M346,0h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10V10C356,4.5,351.5,0,346,0z M337,84h-64V20 h64V84z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M346,126h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C356,130.5,351.5,126,346,126z M337,209h-64v-63h64V209z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M96,256H13c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C106,260.5,101.5,256,96,256z M87,340H23 v-64h64V340z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M221,256h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C231,260.5,226.5,256,221,256z M212,340h-64v-64h64V340z"}))),React.createElement("g",null,React.createElement("g",null,React.createElement("path",{d:"M346,256h-83c-5.5,0-10,4.5-10,10v83c0,5.5,4.5,10,10,10h83c5.5,0,10-4.5,10-10v-83C356,260.5,351.5,256,346,256z M337,340h-64v-64h64V340z"})))),se=n(13),ue=se.name,pe=se.category,de=se.attributes,fe={title:Object(f.__)("WL : Product Tab","woolentor"),description:Object(f.__)("Display product.","woolentor"),icon:React.createElement(m.Icon,{icon:ce}),keywords:["woolentor",Object(f.__)("product tab","woolentor"),Object(f.__)("woocommerce product","woolentor")],example:{attributes:{style:"1",columns:4,rows:1,perPage:4}},attributes:de,edit:ie,save:function(){return null}};function me(e){return(me="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 be(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 ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){he(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function he(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ve(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,t){return(we=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Oe(e,t){if(t&&("object"===me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function _e(e){return(_e=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Ce=function(e){!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&&we(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=_e(o);if(r){var n=_e(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Oe(this,e)});function l(){return ye(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.style,r=t.contentAlignment,a=t.buttonUrl,l={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"};return React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Settings","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Banner Style","woolentor"),value:o,options:[{label:Object(f.__)("Style One","woolentor"),value:"1"},{label:Object(f.__)("Style Two","woolentor"),value:"2"}],onChange:function(e){return n({style:e})}}),React.createElement(m.SelectControl,{label:Object(f.__)("Content Alignment","woolentor"),value:r,options:[{label:Object(f.__)("Left","woolentor"),value:"left"},{label:Object(f.__)("Right","woolentor"),value:"right"},{label:Object(f.__)("Bottom","woolentor"),value:"bottom"}],onChange:function(e){return n({contentAlignment:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Link","woolentor"),value:a,onChange:function(e){return n({buttonUrl:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ge(ge({},l),{},{backgroundColor:t.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleColor,onChange:function(e){return n({titleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.titleSize,fallbackFontSize:t.titleSize,onChange:function(e){return n({titleSize:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Sub Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ge(ge({},l),{},{backgroundColor:t.subTitleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.subTitleColor,onChange:function(e){return n({subTitleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.subTitleSize,fallbackFontSize:t.subTitleSize,onChange:function(e){return n({subTitleSize:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Button","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ge(ge({},l),{},{backgroundColor:t.buttonColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.buttonColor,onChange:function(e){return n({buttonColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.buttonSize,fallbackFontSize:t.buttonSize,onChange:function(e){return n({buttonSize:e})}}))))}}])&&ve(t.prototype,n),l}(y.Component),Ee=n(25),Re=Object(y.createElement)(Ee.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Object(y.createElement)(Ee.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"}));function je(e){return(je="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 ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Se(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pe(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 Fe(e,t){return(Fe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ae(e,t){if(t&&("object"===je(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Te(e)}function Te(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Be(e){return(Be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var xe=function(e){!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&&Fe(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Be(o);if(r){var n=Be(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Ae(this,e)});function l(){var e;return Se(this,l),(e=a.apply(this,arguments)).addImage=e.addImage.bind(Te(e)),e.onSelectImage=e.onSelectImage.bind(Te(e)),e}return t=l,(n=[{key:"onSelectImage",value:function(e){e&&e.url&&this.props.setAttributes({imgUrl:e.url})}},{key:"addImage",value:function(e){var t=this;mediaUpload({allowedTypes:["image","png"],filesList:e,onFileChange:function(e){var n=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,a=[],_n=!0,l=!1;try{for(n=n.call(e);!(_n=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);_n=!0);}catch(e){l=!0,r=e}finally{try{_n||null==n.return||n.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ke(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e,1)[0];return t.onSelectImage(n)}})}},{key:"render",value:function(){var e=this.props,t=(e.name,e.attributes),n=e.className,o=e.isSelected,r=e.setAttributes,a=t.title,l=t.subTitle,i=t.imgUrl,c=(t.imgId,t.style),s=t.contentAlignment,u=t.buttonText,p=t.buttonUrl,d=function(e){return r({imgUrl:e.url,imgId:e.id})};return m.DropZone,this.addImage,Object(f.__)("Drop to upload as banner image","woolentor"),React.createElement(y.Fragment,null,o&&React.createElement(Ce,this.props),React.createElement("div",{className:n},React.createElement("div",{className:"woolentor-banner woolentor-banner-layout-"+c+" woolentor-content-align-"+s},React.createElement("div",{className:"woolentor-content"},React.createElement(T.RichText,{tagName:"h3",className:"banner_subtitle",value:l,onChange:function(e){return r({subTitle:e})},placeholder:Object(f.__)("Banner sub title...","woolentor"),keepPlaceholderOnFocus:!0,style:{color:"".concat(t.subTitleColor),fontSize:"".concat(t.subTitleSize)}}),React.createElement(T.RichText,{tagName:"h2",className:"banner_title",value:a,onChange:function(e){return r({title:e})},placeholder:Object(f.__)("Banner title...","woolentor"),keepPlaceholderOnFocus:!0,style:{color:"".concat(t.titleColor),fontSize:"".concat(t.titleSize)}}),React.createElement(T.RichText,{tagName:"a",className:"banner_button",value:u,onChange:function(e){return r({buttonText:e})},placeholder:Object(f.__)("Shop Now ....","woolentor"),href:p,keepPlaceholderOnFocus:!0,style:{color:"".concat(t.buttonColor),fontSize:"".concat(t.buttonSize)}})),i?React.createElement("div",{class:"woolentor-banner-img"},React.createElement("img",{className:"wp-block-woolentor-banner-img",src:i,alt:"WooLentor Banner image"}),React.createElement("div",null,React.createElement(T.MediaUploadCheck,null,React.createElement(T.MediaUpload,{onSelect:d,allowedTypes:["image","png"],value:i,render:function(e){var t=e.open;return React.createElement(m.Button,{onClick:t},i?Object(f.__)("Replace Image","woolentor"):React.createElement(T.BlockIcon,{icon:Re}))}})))):React.createElement("div",{class:"woolentor-banner-img"},React.createElement(T.MediaUploadCheck,null,React.createElement(T.MediaUpload,{onSelect:d,allowedTypes:["image","png"],value:i,render:function(e){var t=e.open;return React.createElement(m.Button,{onClick:t},i?Object(f.__)("Replace Image","woolentor"):React.createElement(T.BlockIcon,{icon:Re}))}}))))))}}])&&Pe(t.prototype,n),l}(y.Component),ze=n(14),De=React.createElement("svg",{id:"_x31_","enable-background":"new 0 0 24 24",height:"512",viewBox:"0 0 24 24",width:"512",xmlns:"http://www.w3.org/2000/svg"},React.createElement("g",null,React.createElement("path",{d:"m17.453 24c-.168 0-.34-.021-.51-.066l-15.463-4.141c-1.06-.292-1.692-1.39-1.414-2.45l1.951-7.272c.072-.267.346-.422.612-.354.267.071.425.346.354.612l-1.95 7.27c-.139.53.179 1.082.71 1.229l15.457 4.139c.531.14 1.079-.176 1.217-.704l.781-2.894c.072-.267.346-.426.613-.353.267.072.424.347.353.613l-.78 2.89c-.235.89-1.045 1.481-1.931 1.481z"})),React.createElement("g",null,React.createElement("path",{d:"m22 18h-16c-1.103 0-2-.897-2-2v-12c0-1.103.897-2 2-2h16c1.103 0 2 .897 2 2v12c0 1.103-.897 2-2 2zm-16-15c-.551 0-1 .449-1 1v12c0 .551.449 1 1 1h16c.551 0 1-.449 1-1v-12c0-.551-.449-1-1-1z"})),React.createElement("g",null,React.createElement("path",{d:"m9 9c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zm0-3c-.551 0-1 .449-1 1s.449 1 1 1 1-.449 1-1-.449-1-1-1z"})),React.createElement("g",null,React.createElement("path",{d:"m4.57 16.93c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707l4.723-4.723c.566-.566 1.555-.566 2.121 0l1.406 1.406 3.892-4.67c.283-.339.699-.536 1.142-.54h.011c.438 0 .853.19 1.139.523l5.23 6.102c.18.209.156.525-.054.705-.209.18-.524.157-.705-.054l-5.23-6.102c-.097-.112-.231-.174-.38-.174-.104-.009-.287.063-.384.18l-4.243 5.091c-.09.108-.221.173-.362.179-.142.01-.277-.046-.376-.146l-1.793-1.793c-.189-.188-.518-.188-.707 0l-4.723 4.723c-.097.097-.225.146-.353.146z"}))),Me=ze.name,Le=ze.category,Ie=ze.attributes,Ne={title:Object(f.__)("WL : Promo Banner","woolentor"),description:Object(f.__)("Display promo banner.","woolentor"),icon:React.createElement(m.Icon,{icon:De}),keywords:["woolentor",Object(f.__)("product banner","woolentor"),Object(f.__)("woocommerce promo","woolentor"),Object(f.__)("promo banner","woolentor")],example:{attributes:{title:Object(f.__)("Banner Title","woolentor"),subTitle:Object(f.__)("Banner Sub Title","woolentor"),buttonText:Object(f.__)("Shop Now","woolentor")}},supports:{align:["wide","full"]},attributes:Ie,edit:xe,save:function(e){var t=e.className,n=e.attributes,o=n.title,r=n.subTitle,a=n.imgUrl,l=n.style,i=n.contentAlignment,c=n.buttonText,s=n.buttonUrl;return React.createElement("div",{className:t},React.createElement("div",{className:"woolentor-banner woolentor-banner-layout-"+l+" woolentor-content-align-"+i},React.createElement("div",{className:"woolentor-content"},React.createElement(T.RichText.Content,{tagName:"h3",className:"banner_subtitle",value:r,style:{color:"".concat(n.subTitleColor),fontSize:"".concat(n.subTitleSize)}}),React.createElement(T.RichText.Content,{tagName:"h2",className:"banner_title",value:o,style:{color:"".concat(n.titleColor),fontSize:"".concat(n.titleSize)}}),React.createElement(T.RichText.Content,{tagName:"a",className:"banner_button",href:s,value:c,style:{color:"".concat(n.buttonColor),fontSize:"".concat(n.buttonSize)}})),a&&React.createElement("div",{className:"woolentor-banner-img"},s?React.createElement("a",{href:s},React.createElement("img",{className:"wp-block-woolentor-banner-img",src:a,alt:o})):React.createElement("img",{className:"wp-block-woolentor-banner-img",src:a,alt:o}))))}};function He(e){return(He="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 We(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 Ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?We(Object(n),!0).forEach((function(t){qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):We(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ve(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 Qe(e,t){return(Qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ke(e,t){if(t&&("object"===He(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Ye(e){return(Ye=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Xe=function(e){!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&&Qe(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Ye(o);if(r){var n=Ye(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Ke(this,e)});function l(){return Ue(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.setAttributes,n=e.title,o=e.ImageData,r=e.attributesKey,a=e.uploadImage,l=["image","png"],i=React.createElement("p",null,Object(f.__)("To edit the banner image, you need permission to upload media.","woolentor")),c=function(e){var n=Ge({},o);n.id=e.id,n.url=e.url,t(qe({},r,n))};return React.createElement(y.Fragment,null,React.createElement("div",{className:"wp-block-image-selector-woolentor-image-uploader"},React.createElement("h3",null,n),React.createElement(T.MediaUploadCheck,{fallback:i},React.createElement(T.MediaUpload,{title:n,onSelect:c,allowedTypes:l,value:o.id,render:function(e){var t=e.open;return React.createElement(m.Button,{className:o.id?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t},!o.id&&Object(f.__)("Set ","woolentor")+n,!!o.id&&!a&&React.createElement(m.Spinner,null),!!o.id&&a&&React.createElement("img",{src:a.source_url,alt:n}))}})),!!o.id&&a&&React.createElement(T.MediaUploadCheck,null,React.createElement(T.MediaUpload,{title:n,onSelect:c,allowedTypes:l,value:o.id,render:function(e){var t=e.open;return React.createElement(m.Button,{onClick:t,isDefault:!0,isLarge:!0},Object(f.__)("Replace image","woolentor"))}})),!!o.id&&React.createElement(T.MediaUploadCheck,null,React.createElement(m.Button,{onClick:function(){var e=Ge({},o);e.id=void 0,e.url=void 0,t(qe({},r,e))},isLink:!0,isDestructive:!0},Object(f.__)("Remove image","woolentor")))))}}])&&Ve(t.prototype,n),l}(y.Component),Je=Object(v.compose)(Object(w.withSelect)((function(e,t){var n=e("core").getMedia,o=t.ImageData;return{uploadImage:o.id?n(o.id):null}})))(Xe);function Ze(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 $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){et(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function et(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var tt=function(e){var t=e.setAttributes,n=e.lavel,o=e.dimensions,r=e.attributesKey,a=function(n,a){var l=$e({},o);if(e.responsive){var i=o.hasOwnProperty(o.device)?o[o.device].link:"yes";l[o.device]="yes"===i?{top:n,right:n,bottom:n,left:n,link:"yes",unit:o.hasOwnProperty(o.device.unit)&&""!=l[o.device].unit?l[o.device].unit:"px"}:et({top:""!==l[o.device].top?l[o.device].top:"0",right:""!==l[o.device].right?l[o.device].right:"0",bottom:""!==l[o.device].bottom?l[o.device].bottom:"0",left:""!==l[o.device].left?l[o.device].left:"0",link:"no",unit:""!==l[o.device].unit?l[o.device].unit:"px"},a,n)}else"yes"===l.link?(l.top=n,l.right=n,l.bottom=n,l.left=n,l.link="yes"):(l.top=""!==l.top?l.top:"0",l.right=""!==l.right?l.right:"0",l.bottom=""!==l.bottom?l.bottom:"0",l.left=""!==l.left?l.left:"0",l.link="no",l[a]=n);t(et({},r,l))},l=function(n){var a=$e({},o);e.responsive?a[o.device].unit=n.target.value:a.unit=n.target.value,t(et({},r,a))},i=function(e,n,a){var l=$e({},o);l[n]=a,t(et({},r,l))},c=o.hasOwnProperty(o.device)?o[o.device].top:o.top?o.top:"",s=o.hasOwnProperty(o.device)?o[o.device].right:o.right?o.right:"",u=o.hasOwnProperty(o.device)?o[o.device].bottom:o.bottom?o.bottom:"",p=o.hasOwnProperty(o.device)?o[o.device].left:o.left?o.left:"",d=o.hasOwnProperty(o.device)?o[o.device].unit:o.unit?o.unit:"px",b=o.hasOwnProperty(o.device)?o[o.device].link:o.link?o.link:"yes",g=o.device;return React.createElement(y.Fragment,null,React.createElement("div",{className:"wp-block-selector-woolentor-dimensions-control"},React.createElement(m.PanelRow,{className:"woolentor-panel-row-height-auto",style:{minHeight:"auto"}},React.createElement("h3",null,n),e.responsive&&React.createElement(m.ButtonGroup,{className:"woolentor-device-button"},React.createElement(m.Button,{icon:"desktop",value:"desktop",label:Object(f.__)("Large","woolentor"),isPrimary:"desktop"===g,isSecondary:"desktop"!==g,onClick:function(e){return i(0,"device","desktop")}}),React.createElement(m.Button,{icon:"laptop",value:"laptop",label:Object(f.__)("Medium","woolentor"),isPrimary:"laptop"===g,isSecondary:"laptop"!==g,onClick:function(e){return i(0,"device","laptop")}}),React.createElement(m.Button,{icon:"tablet",value:"tablet",label:Object(f.__)("Small","woolentor"),isPrimary:"tablet"===g,isSecondary:"tablet"!==g,onClick:function(e){return i(0,"device","tablet")}}),React.createElement(m.Button,{icon:"smartphone",value:"mobile",label:Object(f.__)("Extra Small","woolentor"),isPrimary:"mobile"===g,isSecondary:"mobile"!==g,onClick:function(e){return i(0,"device","mobile")}})),React.createElement(m.ButtonGroup,{className:"woolentor-dimensions-btn-group"},React.createElement(m.Button,{value:"px",text:Object(f.__)("PX","woolentor"),isPrimary:"px"===d,isSecondary:"px"!==d,onClick:l,title:Object(f.__)("PX","woolentor"),focus:!1}),React.createElement(m.Button,{value:"%",text:Object(f.__)("%","woolentor"),isPrimary:"%"===d,isSecondary:"%"!==d,onClick:l,title:Object(f.__)("%","woolentor"),focus:!1}),React.createElement(m.Button,{value:"em",text:Object(f.__)("EM","woolentor"),isPrimary:"em"===d,isSecondary:"em"!==d,onClick:l,title:Object(f.__)("EM","woolentor"),focus:!1}))),React.createElement(m.PanelRow,null,React.createElement(m.__experimentalNumberControl,{label:Object(f.__)("Top","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"top")},shiftStep:10,value:c,labelPosition:"bottom"}),React.createElement(m.__experimentalNumberControl,{label:Object(f.__)("Right","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"right")},shiftStep:10,value:s,labelPosition:"bottom"}),React.createElement(m.__experimentalNumberControl,{label:Object(f.__)("Bottom","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"bottom")},shiftStep:10,value:u,labelPosition:"bottom"}),React.createElement(m.__experimentalNumberControl,{label:Object(f.__)("Left","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"left")},shiftStep:10,value:p,labelPosition:"bottom"}),React.createElement(m.Button,{icon:"admin-links",value:"yes",isPrimary:"yes"===b,isSecondary:"yes"!==b,onClick:function(){var n=$e({},o);e.responsive?"yes"===n[o.device].link?n[o.device].link="no":n[o.device].link="yes":"yes"===n.link?n.link="no":n.link="yes",t(et({},r,n))},title:Object(f.__)("Link values together","woolentor"),showTooltip:!0}))))};function nt(e){return(nt="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 ot(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 rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ot(Object(n),!0).forEach((function(t){at(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ot(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function at(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function it(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 ct(e,t){return(ct=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function st(e,t){if(t&&("object"===nt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ut(e){return(ut=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var pt,dt=function(e){!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&&ct(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=ut(o);if(r){var n=ut(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return st(this,e)});function l(){return lt(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,o=t.title,r=t.contentPosition,a=t.bannerImage,l=t.badgeImage,i=t.badgeHorizontalPos,c=t.badgeVerticlePos,s={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"};return React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Content Settings","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Content Position","woolentor"),value:r,options:[{label:Object(f.__)("Top","woolentor"),value:"top"},{label:Object(f.__)("Center","woolentor"),value:"center"},{label:Object(f.__)("Bottom","woolentor"),value:"bottom"},{label:Object(f.__)("Left","woolentor"),value:"left"},{label:Object(f.__)("Right","woolentor"),value:"right"}],onChange:function(e){return n({contentPosition:e})}}),React.createElement(Je,{title:Object(f.__)("Banner image","woolentor"),ImageData:a,attributesKey:"bannerImage",setAttributes:n}),React.createElement(Je,{title:Object(f.__)("Badge image","woolentor"),ImageData:l,attributesKey:"badgeImage",setAttributes:n}),l.id&&React.createElement(React.Fragment,null,React.createElement(m.RangeControl,{label:Object(f.__)("Badge Horizontal Position","woolentor"),value:i,onChange:function(e){return n({badgeHorizontalPos:e})},min:-1e3,step:1,max:1e3}),React.createElement(m.RangeControl,{label:Object(f.__)("Badge Vertical Position","woolentor"),value:c,onChange:function(e){return n({badgeVerticlePos:e})},min:-1e3,step:1,max:1e3})),React.createElement(m.TextControl,{label:Object(f.__)("Title","woolentor"),value:o,placeholder:Object(f.__)("Banner Title","woolentor"),onChange:function(e){return n({title:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Sub Title","woolentor"),placeholder:Object(f.__)("Banner Sub Title","woolentor"),value:t.subTitle,onChange:function(e){return n({subTitle:e})}}),React.createElement(m.TextareaControl,{label:Object(f.__)("Description","woolentor"),help:Object(f.__)("Enter Banner description","woolentor"),value:t.bannerDescription,onChange:function(e){return n({bannerDescription:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Offer Amount","woolentor"),placeholder:Object(f.__)("50%","woolentor"),value:t.offerAmount,onChange:function(e){return n({offerAmount:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Offer Tag Line","woolentor"),value:t.offerTagLine,placeholder:Object(f.__)("off","woolentor"),onChange:function(e){return n({offerTagLine:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Banner Link","woolentor"),value:t.bannerLink,placeholder:Object(f.__)("https://your-link.com","woolentor"),onChange:function(e){return n({bannerLink:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Button Text","woolentor"),value:t.buttonText,placeholder:Object(f.__)("Shop Now","woolentor"),onChange:function(e){return n({buttonText:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Content Area","woolentor")),React.createElement("h3",null,Object(f.__)("Alignment","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-alignment-btn-group"},React.createElement(m.Button,{icon:"editor-alignleft",value:"left",isPrimary:"left"===t.contentAlignment,isSecondary:"left"!==t.contentAlignment,onClick:function(){return n({contentAlignment:"left"})},title:Object(f.__)("Align left","woolentor")}),React.createElement(m.Button,{icon:"editor-aligncenter",value:"center",isPrimary:"center"===t.contentAlignment,isSecondary:"center"!==t.contentAlignment,onClick:function(){return n({contentAlignment:"center"})},title:Object(f.__)("Align center","woolentor")}),React.createElement(m.Button,{icon:"editor-alignright",value:"right",isPrimary:"right"===t.contentAlignment,isSecondary:"right"!==t.contentAlignment,onClick:function(){return n({contentAlignment:"right"})},title:Object(f.__)("Align right","woolentor")}),React.createElement(m.Button,{icon:"editor-justify",value:"justify",isPrimary:"justify"===t.contentAlignment,isSecondary:"justify"!==t.contentAlignment,onClick:function(){return n({contentAlignment:"justify"})},title:Object(f.__)("Align justify","woolentor")}),React.createElement("span",{onClick:function(){return n({contentAlignment:""})},class:"woolentor-reset-btn dashicon dashicons dashicons-image-rotate"})),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.contentAreaMargin,attributesKey:"contentAreaMargin",setAttributes:n}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:t.contentAreaPadding,attributesKey:"contentAreaPadding",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleColor,onChange:function(e){return n({titleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.titleSize,fallbackFontSize:t.titleSize,onChange:function(e){return n({titleSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.titleMargin,attributesKey:"titleMargin",setAttributes:n}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:t.titlePadding,attributesKey:"titlePadding",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Sub Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.titleSubColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleSubColor,onChange:function(e){return n({titleSubColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.titleSubSize,fallbackFontSize:t.titleSubSize,onChange:function(e){return n({titleSubSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.subTitleMargin,attributesKey:"subTitleMargin",setAttributes:n}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:t.subTitlePadding,attributesKey:"subTitlePadding",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Description","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.desColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.desColor,onChange:function(e){return n({desColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.desSize,fallbackFontSize:t.desSize,onChange:function(e){return n({desSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.desMargin,attributesKey:"desMargin",setAttributes:n}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:t.desPadding,attributesKey:"desPadding",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Offer Amount","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.offerColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.offerColor,onChange:function(e){return n({offerColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.offerSize,fallbackFontSize:t.offerSize,onChange:function(e){return n({offerSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.offerMargin,attributesKey:"offerMargin",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Offer Tag Line","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.offerTagColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.offerTagColor,onChange:function(e){return n({offerTagColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.offerTagSize,fallbackFontSize:t.offerTagSize,onChange:function(e){return n({offerTagSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.offerTagMargin,attributesKey:"offerTagMargin",setAttributes:n}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Button","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.buttonColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.buttonColor,onChange:function(e){return n({buttonColor:e})}}),React.createElement("h3",null,Object(f.__)("Hover Color","woolentor"),React.createElement("span",{style:rt(rt({},s),{},{backgroundColor:t.buttonHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.buttonHoverColor,onChange:function(e){return n({buttonHoverColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.buttonSize,fallbackFontSize:t.buttonSize,onChange:function(e){return n({buttonSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.buttonMargin,attributesKey:"buttonMargin",setAttributes:n}))))}}])&&it(t.prototype,n),l}(y.Component);function ft(e){return(ft="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 mt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function bt(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 gt(e,t){return(gt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ht(e,t){if(t&&("object"===ft(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function yt(e){return(yt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var vt=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512",className:"woolentor-banner-default"},React.createElement("g",null,React.createElement("path",{d:"M446.575,0H65.425C29.349,0,0,29.35,0,65.426v381.149C0,482.65,29.349,512,65.425,512h381.15 C482.651,512,512,482.65,512,446.574V65.426C512,29.35,482.651,0,446.575,0z M481.842,446.575 c0,19.447-15.821,35.267-35.267,35.267H65.425c-19.447,0-35.268-15.821-35.268-35.267v-55.007l99.255-84.451 c3.622-3.082,8.906-3.111,12.562-0.075l62.174,51.628c5.995,4.977,14.795,4.569,20.304-0.946L372.181,209.77 c2.67-2.675,5.783-2.935,7.408-2.852c1.62,0.083,4.695,0.661,7.078,3.596l95.176,117.19V446.575z M481.842,279.865l-71.766-88.366 c-7.117-8.764-17.666-14.122-28.942-14.701c-11.268-0.57-22.317,3.672-30.294,11.662L212.832,326.681l-51.59-42.839 c-14.959-12.422-36.563-12.293-51.373,0.308l-79.712,67.822V65.426c0-19.447,15.821-35.268,35.268-35.268h381.15 c19.447,0,35.267,15.821,35.267,35.268V279.865z"})),React.createElement("g",null,React.createElement("path",{d:"M161.174,62.995c-40.095,0-72.713,32.62-72.713,72.713c0,40.094,32.619,72.713,72.713,72.713s72.713-32.619,72.713-72.713 S201.269,62.995,161.174,62.995z M161.174,178.264c-23.466,0-42.556-19.091-42.556-42.556c0-23.466,19.09-42.556,42.556-42.556 c23.466,0,42.556,19.091,42.556,42.556S184.64,178.264,161.174,178.264z"}))),wt=function(e){!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&&gt(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=yt(o);if(r){var n=yt(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return ht(this,e)});function l(){return mt(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=(e.name,e.attributes),n=e.className,o=e.isSelected,r=e.setAttributes,a=e.clientId;""==t.blockUniqId&&r({blockUniqId:a});var l,i,c,s,u,p=function(e){var n=t[e]?t[e]:{},o="";if(""!=n.top||""!=n.right||""!=n.bottom||""!=n.left){var r=n.unit?n.unit:"px";o=n.top?o+n.top+r+" ":"0"+r+" ",o=n.right?o+n.right+r+" ":"0"+r+" ",o=n.bottom?o+n.bottom+r+" ":"0"+r+" ",o=n.left?o+n.left+r+" ":"0"+r+" "}return o},d=V()("wlspcial-banner",(l={},i="woolentor-banner-content-pos-"+t.contentPosition,c=t.contentPosition,i in l?Object.defineProperty(l,i,{value:c,enumerable:!0,configurable:!0,writable:!0}):l[i]=c,l)),f=Z.a.div(pt||(s=["\n\t\t\t.banner-content{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .wlbanner-badgeimage{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content h2{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content h6{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content p{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content h5{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content h5 span{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content a{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .banner-content a:hover{\n\t\t\t\t",";\n\t\t\t}\n\t\t"],u||(u=s.slice(0)),pt=Object.freeze(Object.defineProperties(s,{raw:{value:Object.freeze(u)}}))),t.contentAlignment&&"text-align:"+t.contentAlignment,t.contentAreaPadding&&"padding:"+p("contentAreaPadding"),t.contentAreaMargin&&"margin:"+p("contentAreaMargin"),t.badgeHorizontalPos&&"left:"+t.badgeHorizontalPos+"%",t.badgeVerticlePos&&"top:"+t.badgeVerticlePos+"%",t.titleColor&&"color:"+t.titleColor,t.titleSize&&"font-size:"+t.titleSize,t.titleMargin&&"margin:"+p("titleMargin"),t.titlePadding&&"padding:"+p("titlePadding"),t.titleSubColor&&"color:"+t.titleSubColor,t.titleSubSize&&"font-size:"+t.titleSubSize,t.subTitleMargin&&"margin:"+p("subTitleMargin"),t.subTitlePadding&&"padding:"+p("subTitlePadding"),t.desColor&&"color:"+t.desColor,t.desSize&&"font-size:"+t.desSize,t.desMargin&&"margin:"+p("desMargin"),t.desPadding&&"padding:"+p("desPadding"),t.offerColor&&"color:"+t.offerColor,t.offerSize&&"font-size:"+t.offerSize,t.offerMargin&&"margin:"+p("offerMargin"),t.offerTagColor&&"color:"+t.offerTagColor,t.offerTagSize&&"font-size:"+t.offerTagSize,t.offerTagMargin&&"margin:"+p("offerTagMargin"),t.buttonColor&&"color:"+t.buttonColor,t.buttonSize&&"font-size:"+t.buttonSize,t.buttonMargin&&"margin:"+p("buttonMargin"),t.buttonHoverColor&&"color:"+t.buttonHoverColor);return React.createElement(y.Fragment,null,o&&React.createElement(dt,this.props),React.createElement("div",{className:n},React.createElement(f,{className:d},React.createElement("div",{className:"banner-thumb"},React.createElement("a",{href:t.bannerLink?t.bannerLink:"#"},t.bannerImage.url?React.createElement("img",{src:t.bannerImage.url,alt:"Banner"}):React.createElement("div",{className:"woolentor-default-banner"},vt))),t.badgeImage.url&&React.createElement("div",{className:"wlbanner-badgeimage"},React.createElement("img",{src:t.badgeImage.url,alt:"Banner Badge"})),React.createElement("div",{className:"banner-content"},t.title&&React.createElement("h2",null,t.title),t.subTitle&&React.createElement("h6",null,t.subTitle),t.offerAmount&&React.createElement("h5",null,t.offerAmount,React.createElement("span",null,t.offerTagLine)),t.bannerDescription&&React.createElement("p",null,t.bannerDescription),t.buttonText&&React.createElement("a",{href:t.bannerLink?t.bannerLink:"#"},t.buttonText)))))}}])&&bt(t.prototype,n),l}(y.Component),Ot=n(15),_t=React.createElement("svg",{id:"_x31_","enable-background":"new 0 0 24 24",height:"512",viewBox:"0 0 24 24",width:"512",xmlns:"http://www.w3.org/2000/svg"},React.createElement("g",null,React.createElement("path",{d:"m17.453 24c-.168 0-.34-.021-.51-.066l-15.463-4.141c-1.06-.292-1.692-1.39-1.414-2.45l1.951-7.272c.072-.267.346-.422.612-.354.267.071.425.346.354.612l-1.95 7.27c-.139.53.179 1.082.71 1.229l15.457 4.139c.531.14 1.079-.176 1.217-.704l.781-2.894c.072-.267.346-.426.613-.353.267.072.424.347.353.613l-.78 2.89c-.235.89-1.045 1.481-1.931 1.481z"})),React.createElement("g",null,React.createElement("path",{d:"m22 18h-16c-1.103 0-2-.897-2-2v-12c0-1.103.897-2 2-2h16c1.103 0 2 .897 2 2v12c0 1.103-.897 2-2 2zm-16-15c-.551 0-1 .449-1 1v12c0 .551.449 1 1 1h16c.551 0 1-.449 1-1v-12c0-.551-.449-1-1-1z"})),React.createElement("g",null,React.createElement("path",{d:"m9 9c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zm0-3c-.551 0-1 .449-1 1s.449 1 1 1 1-.449 1-1-.449-1-1-1z"})),React.createElement("g",null,React.createElement("path",{d:"m4.57 16.93c-.128 0-.256-.049-.354-.146-.195-.195-.195-.512 0-.707l4.723-4.723c.566-.566 1.555-.566 2.121 0l1.406 1.406 3.892-4.67c.283-.339.699-.536 1.142-.54h.011c.438 0 .853.19 1.139.523l5.23 6.102c.18.209.156.525-.054.705-.209.18-.524.157-.705-.054l-5.23-6.102c-.097-.112-.231-.174-.38-.174-.104-.009-.287.063-.384.18l-4.243 5.091c-.09.108-.221.173-.362.179-.142.01-.277-.046-.376-.146l-1.793-1.793c-.189-.188-.518-.188-.707 0l-4.723 4.723c-.097.097-.225.146-.353.146z"}))),Ct=Ot.name,Et=Ot.category,Rt=Ot.attributes,jt={title:Object(f.__)("WL : Special Day Offer","woolentor"),description:Object(f.__)("Display spesial day offer banner.","woolentor"),icon:React.createElement(m.Icon,{icon:_t}),keywords:["woolentor",Object(f.__)("shop banner","woolentor"),Object(f.__)("banner","woolentor"),Object(f.__)("special day","woolentor"),Object(f.__)("offer","woolentor"),Object(f.__)("special offer","woolentor")],example:{attributes:{title:Object(f.__)("Banner Title","woolentor"),subTitle:Object(f.__)("Banner Sub Title","woolentor"),offerAmount:Object(f.__)("50%","woolentor"),bannerDescription:Object(f.__)("Banner Description","woolentor"),buttonText:Object(f.__)("Shop Now","woolentor"),offerTagLine:Object(f.__)("Off","woolentor")}},attributes:Rt,supports:{align:["wide","full"]},edit:wt,save:function(){return null}};function kt(e){return(kt="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 St(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 Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?St(Object(n),!0).forEach((function(t){Ft(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function At(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tt(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 Bt(e,t){return(Bt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function xt(e,t){if(t&&("object"===kt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function zt(e){return(zt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Dt=function(e){!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&&Bt(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=zt(o);if(r){var n=zt(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return xt(this,e)});function l(){return At(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.setAttributes,n=e.title,o=e.bgProperty,r=e.attributesKey,a=e.uploadImage,l=function(e,n){var a=Pt({},o);a[n]=e,t(Ft({},r,a))},i=["image","png"],c=React.createElement("p",null,Object(f.__)("To edit the banner image, you need permission to upload media.","woolentor")),s=function(e){var n=Pt({},o);n.imageId=e.id,n.imageUrl=e.url,t(Ft({},r,n))};return React.createElement(y.Fragment,null,React.createElement("div",{className:"wp-block-selector-woolentor-background-control"},n&&React.createElement("h3",null,n),React.createElement("div",{className:"wp-block-image-selector-woolentor-image-uploader"},React.createElement(T.MediaUploadCheck,{fallback:c},React.createElement(T.MediaUpload,{title:n,onSelect:s,allowedTypes:i,value:o.imageId,render:function(e){var t=e.open;return React.createElement(m.Button,{className:o.imageId?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t},!o.imageId&&Object(f.__)("Set ","woolentor")+n,!!o.imageId&&!a&&React.createElement(m.Spinner,null),!!o.imageId&&a&&React.createElement("img",{src:a.source_url,alt:n}))}})),!!o.imageId&&a&&React.createElement(T.MediaUploadCheck,null,React.createElement(T.MediaUpload,{title:n,onSelect:s,allowedTypes:i,value:o.imageId,render:function(e){var t=e.open;return React.createElement(m.Button,{onClick:t,isDefault:!0,isLarge:!0},Object(f.__)("Replace image","woolentor"))}})),!!o.imageId&&React.createElement(T.MediaUploadCheck,null,React.createElement(m.Button,{onClick:function(){var e=Pt({},o);e.imageId=void 0,e.imageUrl=void 0,t(Ft({},r,e))},isLink:!0,isDestructive:!0},Object(f.__)("Remove image","woolentor")))),React.createElement(m.SelectControl,{label:Object(f.__)("Position","woolentor"),labelPosition:"side",value:o.position,options:[{label:Object(f.__)("Default","woolentor"),value:""},{label:Object(f.__)("Center Center","woolentor"),value:"center center"},{label:Object(f.__)("Center Left","woolentor"),value:"center left"},{label:Object(f.__)("Center Right","woolentor"),value:"center right"},{label:Object(f.__)("Top Center","woolentor"),value:"top center"},{label:Object(f.__)("Top Left","woolentor"),value:"top left"},{label:Object(f.__)("Top Right","woolentor"),value:"top right"},{label:Object(f.__)("Bottom Center","woolentor"),value:"bottom center"},{label:Object(f.__)("Bottom Left","woolentor"),value:"bottom left"},{label:Object(f.__)("Bottom Right","woolentor"),value:"bottom right"}],onChange:function(e){return l(e,"position")}}),React.createElement(m.SelectControl,{label:Object(f.__)("Attachment","woolentor"),labelPosition:"side",value:o.attachment,options:[{label:Object(f.__)("Default","woolentor"),value:""},{label:Object(f.__)("Scroll","woolentor"),value:"scroll"},{label:Object(f.__)("Fixed","woolentor"),value:"fixed"}],onChange:function(e){return l(e,"attachment")}}),React.createElement(m.SelectControl,{label:Object(f.__)("Repeat","woolentor"),labelPosition:"side",value:o.repeat,options:[{label:Object(f.__)("Default","woolentor"),value:""},{label:Object(f.__)("No-repeat","woolentor"),value:"no-repeat"},{label:Object(f.__)("Repeat","woolentor"),value:"repeat"},{label:Object(f.__)("Repeat-x","woolentor"),value:"repeat-x"},{label:Object(f.__)("Repeat-y","woolentor"),value:"repeat-y"}],onChange:function(e){return l(e,"repeat")}}),React.createElement(m.SelectControl,{label:Object(f.__)("Size","woolentor"),labelPosition:"side",value:o.size,options:[{label:Object(f.__)("Default","woolentor"),value:""},{label:Object(f.__)("Auto","woolentor"),value:"auto"},{label:Object(f.__)("Cover","woolentor"),value:"cover"},{label:Object(f.__)("Contain","woolentor"),value:"contain"}],onChange:function(e){return l(e,"size")}})))}}])&&Tt(t.prototype,n),l}(y.Component),Mt=Object(v.compose)(Object(w.withSelect)((function(e,t){var n=e("core").getMedia,o=t.bgProperty;return{uploadImage:o.imageId?n(o.imageId):null}})))(Dt);function Lt(e){return(Lt="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 It(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 Nt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?It(Object(n),!0).forEach((function(t){Ht(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ht(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wt(e){return function(e){if(Array.isArray(e))return Gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Gt(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gt(e,void 0):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function qt(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 Ut(e,t){return(Ut=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Vt(e,t){if(t&&("object"===Lt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Qt(e){return(Qt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Kt,Yt,Xt,Jt=function(e){!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&&Ut(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Qt(o);if(r){var n=Qt(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Vt(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={activeClass:!1},t}return t=l,(n=[{key:"render",value:function(){var e,t=this,n=this.props,o=n.attributes,r=n.setAttributes,a=o.style,l=o.bgProperty,i={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"},c=function(e,t,n){var a=Wt(o.markerList);a[n][t]=e,r({markerList:a})};return o.markerList.length&&(e=o.markerList.map((function(e,n){var a=t.state.activeClass===n?"woolentor_active_repeter":"";return React.createElement(y.Fragment,{key:n},React.createElement("div",{className:"woolentor_repeater-fields"},React.createElement("div",{className:"woolentor_repeater-tools",onClick:function(e){return function(e,n){n===t.state.activeClass?t.setState({activeClass:!1}):t.setState({activeClass:n})}(0,n)}},React.createElement("div",{className:"woolentor_repeater-item-title"},o.markerList[n].title),React.createElement("div",{className:"woolentor_repeater-item-remove"},React.createElement(m.IconButton,{className:"woolentor__remove-marker",icon:"no-alt",label:Object(f.__)("Delete Marker","woolentor"),onClick:function(){return function(e){var t=Wt(o.markerList);t.splice(e,1),r({markerList:t})}(n)}}))),React.createElement("div",{className:a+" woolentor_repeater-controls"},React.createElement(m.TextControl,{label:Object(f.__)("Marker Title","woolentor"),className:"woolentor__marker-title",placeholder:Object(f.__)("Marker Title","woolentor"),value:o.markerList[n].title,onChange:function(e){return c(e,"title",n)}}),React.createElement(m.TextareaControl,{label:Object(f.__)("Marker Content","woolentor"),value:o.markerList[n].content,onChange:function(e){return c(e,"content",n)}}),React.createElement(m.RangeControl,{label:Object(f.__)("Horizontal Postion","woolentor"),value:o.markerList[n].horizontal,onChange:function(e){return c(e,"horizontal",n)},min:-1e3,step:1,max:1e3}),React.createElement(m.RangeControl,{label:Object(f.__)("Vertical Postion","woolentor"),value:o.markerList[n].verticle,onChange:function(e){return c(e,"verticle",n)},min:-1e3,step:1,max:1e3}))))}))),React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Image","woolentor"),initialOpen:!0},React.createElement(Mt,{title:Object(f.__)("Background Image","woolentor"),attributesKey:"bgProperty",setAttributes:r,bgProperty:l})),React.createElement(m.PanelBody,{title:Object(f.__)("Marker","woolentor"),initialOpen:!1},React.createElement(m.SelectControl,{label:Object(f.__)("Style","woolentor"),value:a,options:[{label:Object(f.__)("Style One","woolentor"),value:"1"},{label:Object(f.__)("Style Two","woolentor"),value:"2"},{label:Object(f.__)("Style Three","woolentor"),value:"3"},{label:Object(f.__)("Style Four","woolentor"),value:"4"},{label:Object(f.__)("Style Five","woolentor"),value:"5"}],onChange:function(e){return r({style:e})}}),e,React.createElement(m.Button,{isDefault:!0,icon:"plus-alt2",onClick:function(){var e=Wt(o.markerList);e.push({title:Object(f.__)("Marker Item #"+(o.markerList.length+1),"woolentor"),content:"",horizontal:"",verticle:""}),r({markerList:e}),t.setState({activeClass:o.markerList.length})}.bind(this)},Object(f.__)("Add Marker","woolentor"))),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Marker","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerColor,onChange:function(e){return r({markerColor:e})}}),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerBGColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerBGColor,onChange:function(e){return r({markerBGColor:e})}}),React.createElement("h3",null,Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerBorderColor,onChange:function(e){return r({markerBorderColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:o.markerBorderRadius,attributesKey:"markerBorderRadius",setAttributes:r}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:o.markerPadding,attributesKey:"markerPadding",setAttributes:r}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Content Area","woolentor")),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerContentBGColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerContentBGColor,onChange:function(e){return r({markerContentBGColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:o.markerContentBorderRadius,attributesKey:"markerContentBorderRadius",setAttributes:r}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:o.markerContentPadding,attributesKey:"markerContentPadding",setAttributes:r}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Marker Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerTitleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerTitleColor,onChange:function(e){return r({markerTitleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:o.markerTitleSize,fallbackFontSize:o.markerTitleSize,onChange:function(e){return r({markerTitleSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:o.markerTitleMargin,attributesKey:"markerTitleMargin",setAttributes:r}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Marker Description","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:Nt(Nt({},i),{},{backgroundColor:o.markerDescriptionColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.markerDescriptionColor,onChange:function(e){return r({markerDescriptionColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:o.markerDescriptionSize,fallbackFontSize:o.markerDescriptionSize,onChange:function(e){return r({markerDescriptionSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:o.markerDescriptionMargin,attributesKey:"markerDescriptionMargin",setAttributes:r}))))}}])&&qt(t.prototype,n),l}(y.Component);function Zt(e){return(Zt="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){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function en(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function tn(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 nn(e,t){return(nn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function on(e,t){if(t&&("object"===Zt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function rn(e){return(rn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var an=function(e){!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&&nn(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=rn(o);if(r){var n=rn(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return on(this,e)});function l(){return en(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=(e.name,e.attributes),n=e.className,o=e.isSelected,r=e.setAttributes,a=e.clientId,l=t.blockUniqId,i=t.bgProperty;""==l&&r({blockUniqId:a});var c,s,u,p=function(e){var n=t[e]?t[e]:{},o="";if(""!=n.top||""!=n.right||""!=n.bottom||""!=n.left){var r=n.unit?n.unit:"px";o=n.top?o+n.top+r+" ":"0"+r+" ",o=n.right?o+n.right+r+" ":"0"+r+" ",o=n.bottom?o+n.bottom+r+" ":"0"+r+" ",o=n.left?o+n.left+r+" ":"0"+r+" "}return o},d=V()((c={},s="wlb-marker-style-".concat(t.style),u=t.style,s in c?Object.defineProperty(c,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):c[s]=u,c)),f=Z.a.div(Kt||(Kt=$t(["\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t\n\t\t\t& .wlb_image_pointer{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .wlb_image_pointer::before{\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .wlb_image_pointer .wlb_pointer_box{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t"])),i.imageUrl&&"background-image:url("+i.imageUrl+")",i.position&&"background-position:"+i.position,i.attachment&&"background-attachment:"+i.attachment,i.repeat&&"background-repeat:"+i.repeat,i.size&&"background-size:"+i.size,t.markerBGColor&&"background-color:"+t.markerBGColor,t.markerBorderColor&&"border-color:"+t.markerBorderColor,t.markerBorderRadius&&"border-radius:"+p("markerBorderRadius"),t.markerPadding&&"padding:"+p("markerPadding"),t.markerColor&&"color:"+t.markerColor,t.markerContentBGColor&&"background-color:"+t.markerContentBGColor,t.markerContentBorderRadius&&"border-radius:"+p("markerContentBorderRadius"),t.markerContentPadding&&"padding:"+p("markerContentPadding")),m=Z.a.h4(Yt||(Yt=$t(["\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t"])),t.markerTitleColor&&"color:"+t.markerTitleColor,t.markerTitleSize&&"font-size:"+t.markerTitleSize,t.markerTitleMargin&&"margin:"+p("markerTitleMargin")),b=Z.a.p(Xt||(Xt=$t(["\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t"])),t.markerDescriptionColor&&"color:"+t.markerDescriptionColor,t.markerDescriptionSize&&"font-size:"+t.markerDescriptionSize,t.markerDescriptionMargin&&"margin:"+p("markerDescriptionMargin")),g=t.markerList.map((function(e,t){return React.createElement("div",{key:t,className:"wlb_image_pointer",style:{left:"".concat(e.horizontal,"%"),top:"".concat(e.verticle,"%")}},React.createElement("div",{className:"wlb_pointer_box"},e.title&&React.createElement(m,null,e.title),e.content&&React.createElement(b,null,e.content)))}));return React.createElement(y.Fragment,null,o&&React.createElement(Jt,this.props),React.createElement("div",{className:n},React.createElement(f,{className:d},g)))}}])&&tn(t.prototype,n),l}(y.Component),ln=n(16),cn=React.createElement("svg",{id:"_x31_","enable-background":"new 0 0 24 24",height:"512",viewBox:"0 0 193.826 193.826",width:"512",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"M191.495,55.511L137.449,1.465c-1.951-1.953-5.119-1.953-7.07,0l-0.229,0.229c-3.314,3.313-5.14,7.72-5.14,12.406 c0,3.019,0.767,5.916,2.192,8.485l-56.55,48.533c-4.328-3.868-9.852-5.985-15.703-5.985c-6.305,0-12.232,2.455-16.689,6.913 l-0.339,0.339c-1.953,1.952-1.953,5.118,0,7.07l32.378,32.378l-31.534,31.533c-0.631,0.649-15.557,16.03-25.37,28.27 c-9.345,11.653-11.193,13.788-11.289,13.898c-1.735,1.976-1.639,4.956,0.218,6.822c0.973,0.977,2.256,1.471,3.543,1.471 c1.173,0,2.349-0.41,3.295-1.237c0.083-0.072,2.169-1.885,13.898-11.289c12.238-9.813,27.619-24.74,28.318-25.421l31.483-31.483 l30.644,30.644c0.976,0.977,2.256,1.465,3.535,1.465s2.56-0.488,3.535-1.465l0.339-0.339c4.458-4.457,6.913-10.385,6.913-16.689 c0-5.851-2.118-11.375-5.985-15.703l48.533-56.55c2.569,1.425,5.466,2.192,8.485,2.192c4.687,0,9.093-1.825,12.406-5.14l0.229-0.229 C193.448,60.629,193.448,57.463,191.495,55.511z"})),sn=ln.name,un=ln.category,pn=ln.attributes,dn={title:Object(f.__)("WL : Image Marker","woolentor"),description:Object(f.__)("Display image marker.","woolentor"),icon:React.createElement(m.Icon,{icon:cn}),keywords:["woolentor",Object(f.__)("shop idicator","woolentor"),Object(f.__)("image indicator","woolentor"),Object(f.__)("marker","woolentor"),Object(f.__)("image marker","woolentor")],example:{attributes:{style:"1"}},supports:{align:["wide","full"]},attributes:pn,edit:an,save:function(){return null}};function fn(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 mn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fn(Object(n),!0).forEach((function(t){bn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function bn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var gn=function(e){var t=e.attributes,n=e.setAttributes,o=t.title,r=t.subTitle,a=t.layout,l=t.featureImage,i={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"};return React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Content","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Layout","woolentor"),value:a,options:[{label:Object(f.__)("Layout One","woolentor"),value:"1"},{label:Object(f.__)("Layout Two","woolentor"),value:"2"},{label:Object(f.__)("Layout Three","woolentor"),value:"3"},{label:Object(f.__)("Layout Four","woolentor"),value:"4"},{label:Object(f.__)("Layout Five","woolentor"),value:"5"}],onChange:function(e){return n({layout:e})}}),React.createElement(Je,{title:Object(f.__)("Image","woolentor"),ImageData:l,attributesKey:"featureImage",setAttributes:n}),React.createElement(m.TextControl,{label:Object(f.__)("Title","woolentor"),value:o,onChange:function(e){return n({title:e})}}),React.createElement(m.TextControl,{label:Object(f.__)("Sub Title","woolentor"),value:r,onChange:function(e){return n({subTitle:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Area","woolentor")),React.createElement("h3",null,Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:mn(mn({},i),{},{backgroundColor:t.areaBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.areaBorderColor,onChange:function(e){return n({areaBorderColor:e})}}),React.createElement("h3",null,Object(f.__)("Hover Border Color","woolentor"),React.createElement("span",{style:mn(mn({},i),{},{backgroundColor:t.areaHoverBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.areaHoverBorderColor,onChange:function(e){return n({areaHoverBorderColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.areaMargin,attributesKey:"areaMargin",setAttributes:n}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:t.areaPadding,attributesKey:"areaPadding",setAttributes:n}),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:mn(mn({},i),{},{backgroundColor:t.areaBackgroundColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.areaBackgroundColor,onChange:function(e){return n({areaBackgroundColor:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:mn(mn({},i),{},{backgroundColor:t.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.titleColor,onChange:function(e){return n({titleColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.titleMargin,attributesKey:"titleMargin",setAttributes:n}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.titleSize,fallbackFontSize:t.titleSize,onChange:function(e){return n({titleSize:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Sub Title","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:mn(mn({},i),{},{backgroundColor:t.subTitleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:t.subTitleColor,onChange:function(e){return n({subTitleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:t.subTitleSize,fallbackFontSize:t.subTitleSize,onChange:function(e){return n({subTitleSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:t.subTitleMargin,attributesKey:"subTitleMargin",setAttributes:n}))))};function hn(e){return(hn="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 yn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function vn(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 wn(e,t){return(wn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function On(e,t){if(t&&("object"===hn(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Cn(e){return(Cn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var En,Rn=function(e){!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&&wn(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Cn(o);if(r){var n=Cn(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return On(this,e)});function l(){return yn(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes;return React.createElement(y.Fragment,null,React.createElement(T.BlockControls,null,React.createElement(T.AlignmentToolbar,{value:t.textAlignment,onChange:function(e){return n({textAlignment:e})}})))}}])&&vn(t.prototype,n),l}(y.Component);function jn(e){return(jn="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 kn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Sn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pn(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 Fn(e,t){return(Fn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function An(e,t){if(t&&("object"===jn(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Tn(e){return(Tn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Bn=function(e){!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&&Fn(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Tn(o);if(r){var n=Tn(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return An(this,e)});function l(){return Sn(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=(e.name,e.className),n=e.attributes,o=e.isSelected,r=e.setAttributes,a=e.clientId,l=n.blockUniqId,i=n.featureImage;""==l&&r({blockUniqId:a});var c,s,u=function(e){var t=n[e]?n[e]:{},o="";if(""!=t.top||""!=t.right||""!=t.bottom||""!=t.left){var r=t.unit?t.unit:"px";o=t.top?o+t.top+r+" ":"0"+r+" ",o=t.right?o+t.right+r+" ":"0"+r+" ",o=t.bottom?o+t.bottom+r+" ":"0"+r+" ",o=t.left?o+t.left+r+" ":"0"+r+" "}return o},p=V()(t,kn({},"woolentor-blocks ht-feature-wrap ht-feature-style-"+n.layout,n.layout),kn({},"woolentor-text-align-"+n.textAlignment,n.textAlignment)),d=Z.a.div(En||(c=["\n\t\t\t"," !important;\n\t\t\t",";\n\t\t\t"," !important;\n\t\t\t"," !important;\n\n\t\t\t&:hover{\n\t\t\t\t"," !important;\n\t\t\t}\n\n\t\t\t& .ht-feature-content h4{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .ht-feature-content p{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t"],s||(s=c.slice(0)),En=Object.freeze(Object.defineProperties(c,{raw:{value:Object.freeze(s)}}))),n.areaBorderColor&&"border-color:"+n.areaBorderColor,n.areaBackgroundColor&&"background-color:"+n.areaBackgroundColor,n.areaMargin&&"margin:"+u("areaMargin"),n.areaPadding&&"padding:"+u("areaPadding"),n.areaHoverBorderColor&&"border-color:"+n.areaHoverBorderColor,n.titleColor&&"color:"+n.titleColor,n.titleSize&&"font-size:"+n.titleSize,n.titleMargin&&"margin:"+u("titleMargin"),n.subTitleColor&&"color:"+n.subTitleColor,n.subTitleSize&&"font-size:"+n.subTitleSize,n.subTitleMargin&&"margin:"+u("subTitleMargin"));return React.createElement(y.Fragment,null,o&&React.createElement(gn,this.props),o&&React.createElement(Rn,this.props),React.createElement("div",{className:p},React.createElement(d,{className:"ht-feature-inner"},i.url&&React.createElement("div",{className:"ht-feature-img"},React.createElement("img",{src:i.url,alt:n.title})),React.createElement("div",{className:"ht-feature-content"},n.title&&React.createElement("h4",null,n.title),n.subTitle&&React.createElement("p",null,n.subTitle)))))}}])&&Pn(t.prototype,n),l}(y.Component),xn=n(17),zn=React.createElement("svg",{viewBox:"-27 0 512 512.00001",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"m399.996094 0h-341.996094c-31.980469 0-58 26.019531-58 58v369.996094c0 16.542968 13.457031 30 30 30h131.332031c5.523438 0 10-4.476563 10-10 0-5.523438-4.476562-10-10-10h-131.332031c-5.515625 0-10-4.484375-10-10v-369.996094c0-20.953125 17.046875-38 38-38h298.234375c-8.855469 10.1875-14.238281 23.472656-14.238281 38v322.265625c0 9.226563-7.503906 16.730469-16.730469 16.730469-7.210937 0-13.589844-4.597656-15.875-11.4375l-15.070313-45.21875c-4.253906-12.765625-16.15625-21.339844-29.609374-21.339844-17.210938 0-31.210938 14-31.210938 31.207031v7.789063h-51.832031c-5.523438 0-10 4.480468-10 10 0 5.523437 4.476562 10 10 10h51.832031v49.75c0 14.765625 2.878906 29.164062 8.558594 42.789062l14.710937 35.308594c1.601563 3.839844 5.316407 6.15625 9.234375 6.15625 1.28125 0 2.585938-.246094 3.839844-.769531 5.101562-2.125 7.511719-7.980469 5.386719-13.078125l-14.710938-35.308594c-4.65625-11.175781-7.019531-22.984375-7.019531-35.09375v-77.539062c0-6.183594 5.027344-11.210938 11.210938-11.210938 4.832031 0 9.109374 3.078125 10.636718 7.664062l15.070313 45.21875c5.007812 15.019532 19.011719 25.113282 34.847656 25.113282 20.253906 0 36.730469-16.476563 36.730469-36.730469v-171.449219l13.363281 13.335938c23.84375 23.796875 36.972656 55.457031 36.972656 89.140625v106.300781c0 27.535156-6.238281 55.238281-18.035156 80.117188-2.367187 4.988281-.238281 10.953124 4.75 13.320312s10.953125.242188 13.320313-4.75c13.058593-27.539062 19.964843-58.207031 19.964843-88.6875v-106.300781c0-39.035157-15.214843-75.71875-42.84375-103.296875l-27.492187-27.441406v-9.554688h66c16.542968 0 30-13.457031 30-30v-83c0-31.980469-26.015625-58-58-58zm38 141c0 5.511719-4.484375 10-10 10h-66v-93c0-20.953125 17.046875-38 38-38s38 17.046875 38 38zm0 0"}),React.createElement("path",{d:"m205 437.996094c-2.632812 0-5.210938 1.070312-7.070312 2.929687-1.859376 1.863281-2.929688 4.441407-2.929688 7.070313 0 2.632812 1.070312 5.210937 2.929688 7.070312 1.859374 1.859375 4.4375 2.929688 7.070312 2.929688 2.628906 0 5.207031-1.070313 7.070312-2.929688 1.859376-1.859375 2.929688-4.4375 2.929688-7.070312 0-2.628906-1.070312-5.207032-2.929688-7.070313-1.863281-1.859375-4.441406-2.929687-7.070312-2.929687zm0 0"}),React.createElement("path",{d:"m137.667969 74c0-11.027344-8.972657-20-20-20h-44c-11.03125 0-20 8.972656-20 20v44c0 11.027344 8.96875 20 20 20h44c11.027343 0 20-8.972656 20-20zm-20 44h-44v-44h44l.011719 44s-.003907 0-.011719 0zm0 0"}),React.createElement("path",{d:"m137.667969 194c0-11.027344-8.972657-20-20-20h-44c-11.03125 0-20 8.972656-20 20v44c0 11.027344 8.96875 20 20 20h44c11.027343 0 20-8.972656 20-20zm-20 44h-44v-44h44l.011719 44s-.003907 0-.011719 0zm0 0"}),React.createElement("path",{d:"m117.667969 294h-44c-11.03125 0-20 8.96875-20 20v43.996094c0 11.03125 8.96875 20 20 20h44c11.027343 0 20-8.96875 20-20v-43.996094c0-11.03125-8.972657-20-20-20zm0 63.996094h-44v-43.996094h44l.011719 43.996094s-.003907 0-.011719 0zm0 0"}),React.createElement("path",{d:"m296.332031 138c5.523438 0 10-4.476562 10-10s-4.476562-10-10-10h-68.9375c-5.523437 0-10 4.476562-10 10s4.476563 10 10 10zm0 0"}),React.createElement("path",{d:"m181.667969 138c2.632812 0 5.210937-1.070312 7.070312-2.929688 1.859375-1.859374 2.929688-4.441406 2.929688-7.070312s-1.070313-5.210938-2.929688-7.070312c-1.859375-1.859376-4.4375-2.929688-7.070312-2.929688-2.640625 0-5.210938 1.070312-7.070313 2.929688-1.867187 1.859374-2.929687 4.441406-2.929687 7.070312s1.0625 5.210938 2.929687 7.070312c1.859375 1.859376 4.429688 2.929688 7.070313 2.929688zm0 0"}),React.createElement("path",{d:"m181.664062 258h114.667969c5.523438 0 10-4.476562 10-10s-4.476562-10-10-10h-114.667969c-5.519531 0-10 4.476562-10 10s4.480469 10 10 10zm0 0"})),Dn=xn.name,Mn=xn.category,Ln=xn.attributes,In={title:Object(f.__)("WL : Store Feature","woolentor"),description:Object(f.__)("Display store feature.","woolentor"),icon:React.createElement(m.Icon,{icon:zn}),keywords:["woolentor",Object(f.__)("shop feature","woolentor"),Object(f.__)("feature","woolentor"),Object(f.__)("store","woolentor")],example:{attributes:{style:"1"}},attributes:Ln,supports:{align:["wide","full"]},edit:Bn,save:function(){return null}};function Nn(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 Hn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nn(Object(n),!0).forEach((function(t){Wn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Wn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Gn(e){return function(e){if(Array.isArray(e))return Vn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Un(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,a=[],_n=!0,l=!1;try{for(n=n.call(e);!(_n=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);_n=!0);}catch(e){l=!0,r=e}finally{try{_n||null==n.return||n.return()}finally{if(l)throw r}}return a}}(e,t)||Un(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Un(e,t){if(e){if("string"==typeof e)return Vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Vn(e,t):void 0}}function Vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var Qn,Kn=function(e){var t,n=e.attributes,o=e.setAttributes,r=qn(Object(y.useState)(!1),2),a=r[0],l=r[1],i=qn(Object(y.useState)([{device:"desktop"}]),2),c=i[0],s=i[1],u=(n.columns,n.noGutter),p={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"},d=function(e,t,n){var o=c[0];o[t]=n,s([].concat(Gn(c.slice(0,0)),[o],Gn(c.slice(1))))},b=function(e,t,r){var a=Gn(n.brandLogoList);a[r][t]=e,o({brandLogoList:a})},g=["image","png"],h=React.createElement("p",null,Object(f.__)("To edit the banner image, you need permission to upload media.","woolentor")),v=function(e,t){var r=Gn(n.brandLogoList);r[t].image.id=e.id,r[t].image.url=e.url,o({brandLogoList:r})};return n.brandLogoList.length>0&&(t=n.brandLogoList.map((function(e,t){var r=a===t?"woolentor_active_repeter":"";return React.createElement(y.Fragment,{key:t},React.createElement("div",{className:"woolentor_repeater-fields"},React.createElement("div",{className:"woolentor_repeater-tools",onClick:function(e){return function(e,t){l(t!==a&&t)}(0,t)}},React.createElement("div",{className:"woolentor_repeater-item-title"},n.brandLogoList[t].title),React.createElement("div",{className:"woolentor_repeater-item-remove"},React.createElement(m.IconButton,{className:"woolentor__remove-marker",icon:"no-alt",label:Object(f.__)("Delete Marker","woolentor"),onClick:function(){return function(e){var t=Gn(n.brandLogoList);t.splice(e,1),o({brandLogoList:t})}(t)}}))),React.createElement("div",{className:r+" woolentor_repeater-controls"},React.createElement(m.TextControl,{label:Object(f.__)("Brand Title","woolentor"),className:"woolentor__marker-title",placeholder:Object(f.__)("Brand Title","woolentor"),value:n.brandLogoList[t].title,onChange:function(e){return b(e,"title",t)}}),React.createElement("div",{className:"wp-block-image-selector-woolentor-image-uploader"},React.createElement(T.MediaUploadCheck,{fallback:h},React.createElement(T.MediaUpload,{title:Object(f.__)("Choose Image","woolentor"),onSelect:function(e){return v(e,t)},allowedTypes:g,value:n.brandLogoList[t].image.id,render:function(e){var o=e.open;return React.createElement(m.Button,{className:n.brandLogoList[t].image.id?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:o},n.brandLogoList[t].image.id?React.createElement("img",{src:n.brandLogoList[t].image.url,alt:n.brandLogoList[t].title}):Object(f.__)("Choose Image","woolentor"))}})),!!n.brandLogoList[t].image.id&&React.createElement(T.MediaUploadCheck,null,React.createElement(T.MediaUpload,{title:Object(f.__)("Choose Image","woolentor"),onSelect:function(e){return v(e,t)},allowedTypes:g,value:n.brandLogoList[t].image.id,render:function(e){var t=e.open;return React.createElement(m.Button,{onClick:t,isDefault:!0,isLarge:!0},Object(f.__)("Replace image","woolentor"))}})),!!n.brandLogoList[t].image.id&&React.createElement(T.MediaUploadCheck,null,React.createElement(m.Button,{onClick:function(){return function(e){var t=Gn(n.brandLogoList);t[e].image.id=void 0,t[e].image.url=void 0,o({brandLogoList:t})}(t)},isLink:!0,isDestructive:!0},Object(f.__)("Remove image","woolentor")))),React.createElement(m.TextControl,{label:Object(f.__)("Brand Link","woolentor"),value:n.brandLogoList[t].link,placeholder:Object(f.__)("https://your-site.com","woolentor"),onChange:function(e){return b(e,"link",t)}}))))}))),React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Brand Logo","woolentor"),initialOpen:!0},t,React.createElement(m.Button,{isDefault:!0,icon:"plus-alt2",onClick:function(){var e=Gn(n.brandLogoList);e.push({title:Object(f.__)("Brand Item #"+(n.brandLogoList.length+1),"woolentor"),image:{id:"",url:""},link:""}),o({brandLogoList:e}),l(n.brandLogoList.length)}.bind(void 0)},Object(f.__)("Add Brand","woolentor"))),React.createElement(m.PanelBody,{title:Object(f.__)("Brand Option","woolentor"),initialOpen:!1},React.createElement(m.PanelRow,{className:"woolentor-device-row",style:{minHeight:"auto"}},React.createElement("label",null,Object(f.__)("Columns","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-device-button"},React.createElement(m.Button,{icon:"desktop",value:"desktop",label:Object(f.__)("Large","woolentor"),isPrimary:"desktop"===c[0].device,isSecondary:"desktop"!==c[0].device,onClick:function(e){return d(0,"device","desktop")}}),React.createElement(m.Button,{icon:"laptop",value:"laptop",label:Object(f.__)("Medium","woolentor"),isPrimary:"laptop"===c[0].device,isSecondary:"laptop"!==c[0].device,onClick:function(e){return d(0,"device","laptop")}}),React.createElement(m.Button,{icon:"tablet",value:"tablet",label:Object(f.__)("Small","woolentor"),isPrimary:"tablet"===c[0].device,isSecondary:"tablet"!==c[0].device,onClick:function(e){return d(0,"device","tablet")}}),React.createElement(m.Button,{icon:"smartphone",value:"mobile",label:Object(f.__)("Extra Small","woolentor"),isPrimary:"mobile"===c[0].device,isSecondary:"mobile"!==c[0].device,onClick:function(e){return d(0,"device","mobile")}}))),React.createElement(m.RangeControl,{value:n.columns[c[0].device],onChange:function(e){return function(e,t,r){var a=Hn({},n.columns);a[t]=e,o(Wn({},"columns",a))}(e,c[0].device)},min:0,step:1,max:10}),React.createElement(m.ToggleControl,{label:Object(f.__)("No Gutters","woolentor"),checked:u,help:u?Object(f.__)("Enable No Gutters.","woolentor"):Object(f.__)("Toggle to show the Gutters.","woolentor"),onChange:function(){return o({noGutter:!u})}}),!u&&React.createElement(m.RangeControl,{label:Object(f.__)("Gutter Spacing","woolentor"),value:n.itemSpace,onChange:function(e){return o({itemSpace:e})},min:0,step:1,max:200})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Brand Item","woolentor")),React.createElement(m.SelectControl,{label:Object(f.__)("Border Type","woolentor"),value:n.singleItemAreaBorderType,options:[{label:Object(f.__)("None","woolentor"),value:""},{label:Object(f.__)("Solid","woolentor"),value:"solid"},{label:Object(f.__)("Double","woolentor"),value:"double"},{label:Object(f.__)("Dotted","woolentor"),value:"dotted"},{label:Object(f.__)("Dashed","woolentor"),value:"dashed"},{label:Object(f.__)("Groove","woolentor"),value:"groove"}],onChange:function(e){return o({singleItemAreaBorderType:e})}}),n.singleItemAreaBorderType&&React.createElement(React.Fragment,null,React.createElement(tt,{lavel:Object(f.__)("Border Width","woolentor"),dimensions:n.singleItemAreaBorderWidth,attributesKey:"singleItemAreaBorderWidth",setAttributes:o}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:Hn(Hn({},p),{},{backgroundColor:n.singleItemAreaBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.singleItemAreaBorderColor,onChange:function(e){return o({singleItemAreaBorderColor:e})}})),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:n.singleItemAreaBorderRadius,attributesKey:"singleItemAreaBorderRadius",setAttributes:o}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.singleItemAreaMargin,attributesKey:"singleItemAreaMargin",setAttributes:o}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:n.singleItemAreaPadding,attributesKey:"singleItemAreaPadding",setAttributes:o}),React.createElement("h3",null,Object(f.__)("Alignment","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-alignment-btn-group"},React.createElement(m.Button,{icon:"editor-alignleft",value:"left",isPrimary:"left"===n.brandAlignment,isSecondary:"left"!==n.brandAlignment,onClick:function(){return o({brandAlignment:"left"})},title:Object(f.__)("Title align left","woolentor")}),React.createElement(m.Button,{icon:"editor-aligncenter",value:"center",isPrimary:"center"===n.brandAlignment,isSecondary:"center"!==n.brandAlignment,onClick:function(){return o({brandAlignment:"center"})},title:Object(f.__)("Title align center","woolentor")}),React.createElement(m.Button,{icon:"editor-alignright",value:"right",isPrimary:"right"===n.brandAlignment,isSecondary:"right"!==n.brandAlignment,onClick:function(){return o({brandAlignment:"right"})},title:Object(f.__)("Title align right","woolentor")}),React.createElement("span",{onClick:function(){return o({brandAlignment:""})},class:"woolentor-reset-btn dashicon dashicons dashicons-image-rotate"})),React.createElement("h2",{className:"woolentor-blocks-section-title",style:{marginTop:"20px"}},Object(f.__)("Brand Image","woolentor")),React.createElement(m.SelectControl,{label:Object(f.__)("Border Type","woolentor"),value:n.brandImageBorderType,options:[{label:Object(f.__)("None","woolentor"),value:""},{label:Object(f.__)("Solid","woolentor"),value:"solid"},{label:Object(f.__)("Double","woolentor"),value:"double"},{label:Object(f.__)("Dotted","woolentor"),value:"dotted"},{label:Object(f.__)("Dashed","woolentor"),value:"dashed"},{label:Object(f.__)("Groove","woolentor"),value:"groove"}],onChange:function(e){return o({brandImageBorderType:e})}}),n.brandImageBorderType&&React.createElement(React.Fragment,null,React.createElement(tt,{lavel:Object(f.__)("Border Width","woolentor"),dimensions:n.brandImageBorderWidth,attributesKey:"brandImageBorderWidth",setAttributes:o}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:Hn(Hn({},p),{},{backgroundColor:n.brandImageBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.brandImageBorderColor,onChange:function(e){return o({brandImageBorderColor:e})}})),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:n.brandImageBorderRadius,attributesKey:"brandImageBorderRadius",setAttributes:o}))))};function Yn(e){return(Yn="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 Xn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Zn(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 $n(e,t){return($n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function eo(e,t){if(t&&("object"===Yn(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function to(e){return(to=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var no=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",width:"250",height:"150",viewBox:"0 0 300 300"},React.createElement("image",{id:"woolentor-logo",href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADHFJREFUeNrsXU2IHMcV7m7NSnEU8IAvvgQmEHTV+JCDNwaN4oB1UNAIx7nO7sWQ5CBtcvAlYS0CAZ9GOoSActjZUyDESGZ9kA7OjEDWHrW6GoHHOAcfEphAHMjuaif12tWT3pn++arrVf/Wg2Z3pZme7npffe97r17XuE7N7Ot3e23xoysP+v2S/K+OPFCbyJ9TcXwhjgP6/fzdyUGdxsutgcPJ0T3p6K6ik7PaRALiEf0uQDGzAMh3hvfFcU06vl2CyyIwfCSO+1VjCLeCTu+X/HIpZNwXx24VwOCW3PE0wwfi2KgowxIA7khmmFkA4I4nh9+QMb0ONmv9+J3R2Xd+ccd13akFQLLjt3MScrnat37zJ8f77vfp15E4bpUFCK51vHkjxxMAloyAsCWAUGhoaJUgxm9LNV9ba73+VtQ/E+j78/mcwsL7jWIAqeqHFRZ3SvbS7//suK+8mpY5bAogTHJnpwKcT2nc501x/pkL3TTnk3VOvnw+FmMzlJOjfgCgGxPHjvj1nlOO4k0+AFh/C3rd8f5D+nFTHE9laKwPAGS59mlTZv0pAFx8A3rdi4PHCzYQB7HB+7UAgFT4T+uq8BOd333Dcb/9ndTXnXx24Mz/+dXyP2+LsRubDgmeYecT5e84DbUz3R9i9P/kYdx/9WRI6FYKADLej5tI+Yv0Ssz81utXMPp/9jhRIMqQ0K8EACRljeue23PG/vl//p32MhrTezKclhcAIbHXdRpuMP3vP1Q57Q43CDxm54+bKPai6J8EYJrRzA+p/0JA4DE7v+1Yc87wxP5cQOAxOL8tlb51vrSY2n9E/P9U52NYQOAxOH9sY36I/l95NVj2TaZ/kfdnoH92EOgywD3r/GXxp1z507WhTp3A05j9w6anelG29ubbJtR/WoqYuWLoZXQ+0c5N6+6lwRTUD6z8+fR/8uVzzo8OQrF5AEi6GVp3Zxd/jLM/bF3JyuYAYBU/T/w/fvLA1CXcVC0ZqzLAthV9Mc7HGj986o9Y+eO0HRU9AAPgcG/Us3E/AQDrhdL/sh7YYQXAfD5vr10d7CAIbywALuae/iVZHw0FKAPQzO+gKU4TYz/S+OGv/Jmlf+VQ4AGzvyNjP1zjtuo/DgCf5nlZ7cBvugywiCfoKleTTGVMNBZ/dLKCTmYAiNlPwq+XBe029kfQf3rjh5FQoMMA25HxzorB0HgYafzgtF5Sm3lLZfYv3rR+xTnaG1n6FxOBs/GDzkdCO1hNPBGC8Whvl0M40kSeqDLAtq7oaYL654r9dC56gLT15k8d70LXP6iplB4ra+mL71gW8FRnvwryrfrH1D8JybOD92JTybMb73GE3RsqDHCDK/bVmf65Gj8ovU6rIzDUYPpRGcEKAOSL+unovwIVP2o7+9fBvj8g9iNMgoAtCwtEMcAGWq4sqjBEg0GLL0yDYpT+09Q/3UOO97GBZAEDillIjCdaOv7kr7k6/tzPf3cqHhLFHo4+cF58dpDrdXA1fqBAYmogoSe2Ns7fnYwiGUAqxc7x/gOoaOGLwQvd/Jz/q+HKwNPf5349zO06VJx29MmHbJkEci7QriWFgMEidu1jTQvoMqiuJankhVLOSZNwNX6iTMLcQ9APLxItA6Cvirg8xCB9RlqcpIGkHDoP53M5rZV/A+mKn70Q/QebK/8/foFxFa2HZ0q3BLjWfvZL6LVrVwfGBRVn6bfAHoJrUQwwWLmJJxjyWgb7BGhWqzAMhQqjAECdlhJCNTeP0LVeFAB6qyjGxKCpVMavjV8dKItFU6FAqfEjZdwYNo/QzQZ6CwCE9thfvRlwDdsEC5wFqT8qFJhYseQs/cJMYq6HoBdmgF4sAkExSDfEKQYprcu63uDX1jOCJ9FpTIs/6FgZ7iG4FAZAN0nNIkUIFVRDs1jTgeQszgUr9N6QsInSv+EWslMMcCnxptCUkCkMIGkfR+3AhPqH6B/sITjef2ASAH7ml8oAAaWhYlA39qqkfdC5FEVknBjlavwoQewPW9eTArCdemPgBekuW6qmfcj5dMvEnI0fKEvm1EHc8RzwUa8XYDqis0KokvapiCNdRoHVf8oYwT0E2fYOymIXCQAd6ObAgoTK/ng6ad/hH38LVypp0Nd+spEZlHDjR8r1wExiOPaH6wEwAMjg9YEMC0QqaR/NDhrs/44+wGfxj97OpE/WYMp+zHauHDuIewSAl9FXo8j0wCdlT83+DbyEe/iXPyxm3dHHu7AgPLehXiaGH/kGGj8K2jwi+bochce9VVITtGVqIfxAwJDDw6GI2tPRWnnQaQsPTgGNHznF/lMAUDJUDKI3rJKq+QCM6EA6VAgFJAjRLKPijR+GAICKQTB39uv2oEOOBPVHqX+6JrQ1TaXOAG/4mJb7l2fziEgAdFTfhIqUtBmk0sRBg5MUfvzQAKaGFAbSagPwci3gtBJtHsEEAHCPm7TuGRVRdiSFX1J4ONzFQ0FaC1lNGj/4Q8Ai5wUvNk4MnpGPP6mkfcjr0NpAGvvUpPHDDAA4wkCWtA8xqg2goSCuhQztc6xA44c5AKDbnUS1juukfQg7obUBH4gRgpBz5a9lfudwbQBMTbNAWARxpH2p1yXegxZT/NpAKBQo7fX/jGnlr7jNIzQBAIrBMKVypH1Q2FAQhOFrUlmurUjjh5kQENAt3DpOIGBM+6D3K9QGgm5idB2jSo0fxgCgIl5oIYQz7ePWD+SsYHMGiP6BR77LHPvDANB6qlLlOUI07aNzcjzs6dcGFICELkdDjR/l3DouEgD/0j0J5/o1OY32xeEyv4bAXGBJ65HM+VtDihOBC6plXMA4/tuH7AUREoRcKhtZ+SvgW0Oy2oQFAFxr2HQeE/sN+Kzy8S4boyB6hzONLrUGQGkRYpK9XWP5sF8bYNAVVW38iLFH3vm7k5n4ZaY9M57pFTPIOabToUPNzAJ5SKbgbw1RtWmQBmpPDZXW8bjZb9rIeTqhAFr5K/5bQ1TsIADAoyLDAFfahwFtlFlkVrnxI8oE+x+wMQBKkabTPigUKLSQqTitzI0fURlAIAIXfxTBAibSvtSZnEFvIPdV5saPKAG4AIAUgiwsoKIDTKV9UChQXGhKXfkr57eGwAzAxgIqixsm0z4o9IBZAWfjR9GlX2kzMel9f4c3ivzIYfpWMGodT2uEyCPtQ8Qnrf6lrVFwNn7Qw6Gt9WJ3W58fH0+cuz9wTgGAEPH1uz0KBdpfCkkxlhycNLB5C784oxYy2qY9jr6RZWmVjTGK3N52abI7yyGA7D7bwNLDmxEZgb9Cl/PWrmk6JG6tgK4faSyp4M7pCz+74X+V3zV3j/OTSBwFqA/W0UsiglZoPLxt+/wfX0Ehil7/0nCvUs53Xfd6JAAkCD53Mjwr0FSj4g/tVVwh2xQAGMWFALJd69ba2izs/DgAjOw44Xby9+dVutwV364AQGQDU04xWHfL2rpekN1JBUDcC63FGy0zF13TAMXfdEXExr1aiMGxk7CDqLVoQUgpYUly/dMz/UL3sgDARAUA5PyxdWstbCJC++VIYMS9Q9aKJ3bsamG3Ypkh6xutVWr2TzIBwLJALWwrURsAJ9i0Y1hZu01tX1oAkHUBGwqqZzPEb+jDobcdhgdIrOVL/bLTK9Fc9Gw2LaxH2peVAQJBeNuObSWoH9ZtqvsDUEw5sGNcatuUuo0fADKmbDoMj5JZM2Ij4SOlhTzlHUJkWrFlx7p0lskvbtZPE6Jwx4n4PnprhcX911SoXxsAEgR2xbAc9lpawYctBCzZdSsKSyH6MvvA1f10+a1j1Ejatr4oxPkjnRNobxMnM4PLNjPI3W7pOp+FAUJMQI8BjS0T5JbusSzSeVxXJOOQZQLztsXlfFYGCDFBx/nm6aKu9VX5Yr5xAISE4diCgDXP3+J2vjEAhIBgi0U8zr+sk+rlogFidAHFKls2zm7k9O+Zcr5xBljKEEgXdKxPYaN2LuOTx83rbqQuoJDQt75NpfzrSZ28lQRACAh9CQRbL1i1+1Lp55ZKu0XcpWSDoRWIC5tKx0/y/mC3yLuWfYbDBqeLNNPvyHhfSAHNLcMoCCAQE2w3TCRSTn8ryxp+7QDQMCCUwvGlBECNgTCTAq80ji81AJY0wqDCYnEqY/yoqBhfaQAsZQ2UPt6ogGCcSZrfNVnBaxQAlsBAYYGY4ZpTnqISOXpSFadXGgAxYYKOi/JnO0eHP3O+eQxrWtXxqzwAYhgiYImXQyGjl8HJMxnHv5B/T6s2w9PsfwIMAOhUCXLerUHIAAAAAElFTkSuQmCC"})),oo=function(e){!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)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=to(o);if(r){var n=to(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return eo(this,e)});function l(){return Jn(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=e.className,n=e.attributes,o=e.isSelected,r=e.setAttributes,a=e.clientId;""==n.blockUniqId&&r({blockUniqId:a});var l,i,c=function(e){var t=n[e]?n[e]:{},o="";if(""!=t.top||""!=t.right||""!=t.bottom||""!=t.left){var r=t.unit?t.unit:"px";o=t.top?o+t.top+r+" ":"0"+r+" ",o=t.right?o+t.right+r+" ":"0"+r+" ",o=t.bottom?o+t.bottom+r+" ":"0"+r+" ",o=t.left?o+t.left+r+" ":"0"+r+" "}return o},s=V()(t,Xn({},"woolentor-columns-".concat(n.columns.desktop),n.columns.desktop),Xn({},"woolentor-laptop-columns-".concat(n.columns.laptop),n.columns.laptop),Xn({},"woolentor-tablet-columns-".concat(n.columns.tablet),n.columns.tablet),Xn({},"woolentor-mobile-columns-".concat(n.columns.mobile),n.columns.mobile)),u=Z.a.div(Qn||(l=["\n\t\t\t"," !important;\n\t\t\t& .wl-single-brand{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& img,.woolentor-default-brand{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t"],i||(i=l.slice(0)),Qn=Object.freeze(Object.defineProperties(l,{raw:{value:Object.freeze(i)}}))),!n.noGutter&&"padding: 0 "+n.itemSpace+"px 0 "+n.itemSpace+"px",n.singleItemAreaBorderType&&"border-style:"+n.singleItemAreaBorderType,n.singleItemAreaBorderWidth&&"border-width:"+c("singleItemAreaBorderWidth"),n.singleItemAreaBorderColor&&"border-color:"+n.singleItemAreaBorderColor,n.singleItemAreaBorderRadius&&"border-radius:"+c("singleItemAreaBorderRadius"),n.singleItemAreaMargin&&"margin:"+c("singleItemAreaMargin"),n.singleItemAreaPadding&&"padding:"+c("singleItemAreaPadding"),n.brandAlignment&&"text-align:"+n.brandAlignment,n.brandImageBorderType&&"border-style:"+n.brandImageBorderType,n.brandImageBorderWidth&&"border-width:"+c("brandImageBorderWidth"),n.brandImageBorderColor&&"border-color:"+n.brandImageBorderColor,n.brandImageBorderRadius&&"border-radius:"+c("brandImageBorderRadius")),p=n.brandLogoList.map((function(e,t){return React.createElement(u,{className:"woolentor-col-"+n.columns.desktop},React.createElement("div",{className:"wl-single-brand"},e.image.url?React.createElement("img",{src:e.image.url,alt:e.title}):React.createElement("div",{className:"woolentor-default-brand"},no)))}));return React.createElement(y.Fragment,null,o&&React.createElement(Kn,this.props),React.createElement("div",{className:s},React.createElement("div",{className:!0===n.noGutter?"woolentor-row wlno-gutters":"woolentor-row"},p)))}}])&&Zn(t.prototype,n),l}(y.Component),ro=n(18),ao=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512"},React.createElement("path",{d:"M166,0H75C33.645,0,0,33.645,0,75v91c0,41.355,33.645,75,75,75h91c41.355,0,75-33.645,75-75V75 C241,33.645,207.355,0,166,0z M211,166c0,24.813-20.187,45-45,45H75c-24.813,0-45-20.187-45-45V75c0-24.813,20.187-45,45-45h91 c24.813,0,45,20.187,45,45V166z"}),React.createElement("path",{d:"M437,271h-91c-41.355,0-75,33.645-75,75v91c0,41.355,33.645,75,75,75h91c41.355,0,75-33.645,75-75v-91 C512,304.645,478.355,271,437,271z M482,437c0,24.813-20.187,45-45,45h-91c-24.813,0-45-20.187-45-45v-91 c0-24.813,20.187-45,45-45h91c24.813,0,45,20.187,45,45V437z"}),React.createElement("path",{d:"M437,0h-91c-41.355,0-75,33.645-75,75v91c0,57.897-47.103,105-105,105H75c-41.355,0-75,33.645-75,75v91 c0,41.355,33.645,75,75,75h91c41.355,0,75-33.645,75-75v-91c0-57.897,47.103-105,105-105h91c41.355,0,75-33.645,75-75V75 C512,33.645,478.355,0,437,0z M211,346v91c0,24.813-20.187,45-45,45H75c-24.813,0-45-20.187-45-45v-91c0-24.813,20.187-45,45-45 h91c20.827,0,40.568-4.741,58.2-13.2C215.741,305.432,211,325.173,211,346z M482,166c0,24.813-20.187,45-45,45h-91 c-20.827,0-40.568,4.741-58.2,13.2c8.459-17.632,13.2-37.373,13.2-58.2V75c0-24.813,20.187-45,45-45h91c24.813,0,45,20.187,45,45 V166z"})),lo=ro.name,io=ro.category,co=ro.attributes,so={title:Object(f.__)("WL : Brand Logo","woolentor"),description:Object(f.__)("Display brand logo.","woolentor"),icon:React.createElement(m.Icon,{icon:ao}),keywords:["woolentor",Object(f.__)("logo","woolentor"),Object(f.__)("brand","woolentor"),Object(f.__)("brand logo","woolentor")],example:{attributes:{brandLogoList:[{title:"Brand Title one",link:"https://hasthemes.com/",image:{id:"",url:""}},{title:"Brand Title Two",link:"https://hasthemes.com/",image:{id:"",url:""}},{title:"Brand Title Three",link:"https://hasthemes.com/",image:{id:"",url:""}},{title:"Brand Title Four",link:"https://hasthemes.com/",image:{id:"",url:""}},{title:"Brand Title Five",link:"https://hasthemes.com/",image:{id:"",url:""}},{title:"Brand Title Six",link:"https://hasthemes.com/",image:{id:"",url:""}}],columns:{desktop:"3"}}},supports:{align:["wide","full"]},attributes:co,edit:oo,save:function(){return null}};function uo(e){return(uo="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 po(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 fo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?po(Object(n),!0).forEach((function(t){mo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):po(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function mo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bo(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 go(e,t){return(go=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ho(e,t){if(t&&("object"===uo(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function yo(e){return(yo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var vo,wo=function(e){!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&&go(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=yo(o);if(r){var n=yo(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return ho(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={imageSizes:[],device:"desktop"},t}return t=l,(n=[{key:"componentDidMount",value:function(){this.fetchImageSize()}},{key:"fetchImageSize",value:function(){var e=this,t=Object(Y.addQueryArgs)("/woolentor/v1/imagesizes",{wpnonce:woolentorData.security});K()({path:t}).then((function(t){return e.setState({imageSizes:t})}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,o=t.setAttributes,r=n.style,a=n.displayType,l=n.productCategory,i=n.productCategories,c=n.order,s=n.displayLimit,u=n.showCount,p=n.sliderOn,d=(n.columns,n.noGutter),b=n.itemSpace,g={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"},h=function(t,n,o){e.setState(mo({},n,o))},v=this.state.imageSizes,w=function(){var e=[];return Object.keys(v).forEach((function(t){e.push({label:v[t],value:t})})),e};return React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("Settings","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Style","woolentor"),value:r,options:[{label:Object(f.__)("Style One","woolentor"),value:"1"},{label:Object(f.__)("Style Two","woolentor"),value:"2"},{label:Object(f.__)("Style Three","woolentor"),value:"3"},{label:Object(f.__)("Style Four","woolentor"),value:"4"},{label:Object(f.__)("Style Five","woolentor"),value:"5"}],onChange:function(e){return o({style:e})}}),React.createElement(m.SelectControl,{label:Object(f.__)("Category Display Type","woolentor"),value:a,options:[{label:Object(f.__)("Single Category","woolentor"),value:"singleCat"},{label:Object(f.__)("Multiple Categories","woolentor"),value:"multipleCat"},{label:Object(f.__)("All Categories","woolentor"),value:"allCat"}],onChange:function(e){return o({displayType:e})}}),"singleCat"==a&&React.createElement(A,{title:Object(f.__)("Select category","woolentor"),attributesKey:"productCategory",setAttributes:o,selectedTaxonomies:l,type:"single"}),"multipleCat"==a&&React.createElement(A,{title:Object(f.__)("Select categories","woolentor"),attributesKey:"productCategories",setAttributes:o,selectedTaxonomies:i,type:"multiple"}),"singleCat"!=a&&React.createElement(m.SelectControl,{label:Object(f.__)("Order","woolentor"),value:c,options:[{label:Object(f.__)("Ascending","woolentor"),value:"asc"},{label:Object(f.__)("Descending","woolentor"),value:"desc"}],onChange:function(e){return o({order:e})}}),"allCat"==a&&React.createElement(m.RangeControl,{label:Object(f.__)("Limit","woolentor"),value:s,onChange:function(e){return o({displayLimit:e})},min:1,step:1,max:20}),("1"==r||"4"==r)&&React.createElement(m.ToggleControl,{label:Object(f.__)("Show Count","woolentor"),checked:u,help:u?Object(f.__)("Enable show Count.","woolentor"):Object(f.__)("Toggle to show the count.","woolentor"),onChange:function(){return o({showCount:!u})}}),w().length>0&&React.createElement(m.SelectControl,{label:Object(f.__)("Image Size","woolentor"),value:n.imageSize,options:w(),onChange:function(e){return o({imageSize:e})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider On","woolentor"),checked:p,help:p?Object(f.__)("Enable slider.","woolentor"):Object(f.__)("Toggle to show the slider.","woolentor"),onChange:function(){return o({sliderOn:!p})}})),1==p&&React.createElement(m.PanelBody,{title:Object(f.__)("Slider Options","woolentor"),initialOpen:!1},React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:n.slitems,onChange:function(e){return o({slitems:e})},min:1,step:1,max:10}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider Arrow","woolentor"),checked:n.slarrows,help:n.slarrows?Object(f.__)("Enable slider arrow.","woolentor"):Object(f.__)("Toggle to show the slider arrow.","woolentor"),onChange:function(){return o({slarrows:!n.slarrows})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider dots","woolentor"),checked:n.sldots,help:n.sldots?Object(f.__)("Enable slider pagination.","woolentor"):Object(f.__)("Toggle to show the slider pagination.","woolentor"),onChange:function(){return o({sldots:!n.sldots})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Pause on Hover?","woolentor"),checked:n.slpauseOnHover,help:n.slpauseOnHover?Object(f.__)("Enable slider pagination.","woolentor"):Object(f.__)("Toggle to show the slider pagination.","woolentor"),onChange:function(){return o({slpauseOnHover:!n.slpauseOnHover})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Is RTL","woolentor"),checked:n.slIsrtl,help:n.slIsrtl?Object(f.__)("Enable RTL.","woolentor"):Object(f.__)("Toggle to show the RTL direction.","woolentor"),onChange:function(){return o({slIsrtl:!n.slIsrtl})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Slider auto play","woolentor"),checked:n.slautolay,help:n.slautolay?Object(f.__)("Enable slider auto play.","woolentor"):Object(f.__)("Toggle to show the slider auto play.","woolentor"),onChange:function(){return o({slautolay:!n.slautolay})}}),1==n.slautolay&&React.createElement(React.Fragment,null,React.createElement(m.RangeControl,{label:Object(f.__)("Autoplay speed","woolentor"),value:n.slautoplaySpeed,onChange:function(e){return o({slautoplaySpeed:e})},min:1,step:1,max:1e5}),React.createElement(m.RangeControl,{label:Object(f.__)("Autoplay animation speed","woolentor"),value:n.slanimationSpeed,onChange:function(e){return o({slanimationSpeed:e})},min:1,step:1,max:1e5})),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:n.slscrollItem,onChange:function(e){return o({slscrollItem:e})},min:1,step:1,max:1e5}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Tablet Screen options","woolentor")),React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:n.sltabletDisplayColumns,onChange:function(e){return o({sltabletDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:n.sltabletScrollColumns,onChange:function(e){return o({sltabletScrollColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Tablet Screen Resolution","woolentor"),value:n.sltabletWidth,onChange:function(e){return o({sltabletWidth:e})},min:1,step:1,max:1500}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Mobile Phone Screen options","woolentor")),React.createElement(m.RangeControl,{label:Object(f.__)("Slider Items","woolentor"),value:n.slMobileDisplayColumns,onChange:function(e){return o({slMobileDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Slider item to scroll","woolentor"),value:n.slMobileScrollColumns,onChange:function(e){return o({slMobileScrollColumns:e})},min:1,step:1,max:8}),React.createElement(m.RangeControl,{label:Object(f.__)("Mobile Screen Resolution","woolentor"),value:n.slMobileWidth,onChange:function(e){return o({slMobileWidth:e})},min:1,step:1,max:1500})),0==p&&React.createElement(m.PanelBody,{title:Object(f.__)("Columns","woolentor"),initialOpen:!1},React.createElement(m.PanelRow,{className:"woolentor-device-row",style:{minHeight:"auto"}},React.createElement("label",null,Object(f.__)("Columns","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-device-button"},React.createElement(m.Button,{icon:"desktop",value:"desktop",label:Object(f.__)("Large","woolentor"),isPrimary:"desktop"===this.state.device,isSecondary:"desktop"!==this.state.device,onClick:function(e){return h(0,"device","desktop")}}),React.createElement(m.Button,{icon:"laptop",value:"laptop",label:Object(f.__)("Medium","woolentor"),isPrimary:"laptop"===this.state.device,isSecondary:"laptop"!==this.state.device,onClick:function(e){return h(0,"device","laptop")}}),React.createElement(m.Button,{icon:"tablet",value:"tablet",label:Object(f.__)("Small","woolentor"),isPrimary:"tablet"===this.state.device,isSecondary:"tablet"!==this.state.device,onClick:function(e){return h(0,"device","tablet")}}),React.createElement(m.Button,{icon:"smartphone",value:"mobile",label:Object(f.__)("Extra Small","woolentor"),isPrimary:"mobile"===this.state.device,isSecondary:"mobile"!==this.state.device,onClick:function(e){return h(0,"device","mobile")}}))),React.createElement(m.RangeControl,{value:n.columns[this.state.device],onChange:function(t){return function(e,t,r){var a=fo({},n.columns);a[t]=e,o(mo({},"columns",a))}(t,e.state.device)},min:0,step:1,max:10}),React.createElement(m.ToggleControl,{label:Object(f.__)("No Gutters","woolentor"),checked:d,help:d?Object(f.__)("Enable No Gutters.","woolentor"):Object(f.__)("Toggle to show the Gutters.","woolentor"),onChange:function(){return o({noGutter:!d})}}),!d&&React.createElement(m.RangeControl,{label:Object(f.__)("Gutter Spacing","woolentor"),value:b,onChange:function(e){return o({itemSpace:e})},min:0,step:1,max:200})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Area","woolentor")),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:n.areaPadding,attributesKey:"areaPadding",setAttributes:o}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.areaBackgroundColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.areaBackgroundColor,onChange:function(e){return o({areaBackgroundColor:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Image","woolentor")),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Box Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.imageBoxColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.imageBoxColor,onChange:function(e){return o({imageBoxColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.imageMargin,attributesKey:"imageMargin",setAttributes:o}),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:n.imageBorderRadius,attributesKey:"imageBorderRadius",setAttributes:o}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.titleColor,onChange:function(e){return o({titleColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Hover Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.titleHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.titleHoverColor,onChange:function(e){return o({titleHoverColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.titleMargin,attributesKey:"titleMargin",setAttributes:o}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Count","woolentor")),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.countColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.countColor,onChange:function(e){return o({countColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Before Border Color","woolentor"),React.createElement("span",{style:fo(fo({},g),{},{backgroundColor:n.countBeforeColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.countBeforeColor,onChange:function(e){return o({countBeforeColor:e})}}))))}}])&&bo(t.prototype,n),l}(y.Component);function Oo(e){return(Oo="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(){return(_o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function Co(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Eo(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 Ro(e,t){return(Ro=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function jo(e,t){if(t&&("object"===Oo(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ko(e){return(ko=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var So=function(e){!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&&Ro(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=ko(o);if(r){var n=ko(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return jo(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={categoryData:[]},t}return t=l,(n=[{key:"componentDidMount",value:function(){this.fetchCategoryData()}},{key:"componentDidUpdate",value:function(e){var t,n=this.props.attributes,o=n.displayLimit,r=n.order;t="singleCat"==n.displayType?n.productCategory:"multipleCat"==n.displayType?n.productCategories:"";var a=e.attributes;("singleCat"==a.displayType?a.productCategory:"multipleCat"==a.displayType?a.productCategories:"")==t&&e.attributes.displayLimit==o&&e.attributes.order==r||this.fetchCategoryData()}},{key:"fetchCategoryData",value:function(){var e=this,t={queryLimit:this.props.attributes.displayLimit,queryOrder:this.props.attributes.order,queryType:"regular",wpnonce:woolentorData.security};"singleCat"==this.props.attributes.displayType?t.querySlug=this.props.attributes.productCategory:"multipleCat"==this.props.attributes.displayType?t.querySlug=this.props.attributes.productCategories:t.querySlug="";var n=Object(Y.addQueryArgs)("/woolentor/v1/category",t);K()({path:n}).then((function(t){return e.setState({categoryData:t})}))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,o=e.isSelected,r=e.setAttributes,a=e.clientId,l=t.blockUniqId,i=t.style;""==l&&r({blockUniqId:a});var c=this.state.categoryData,s=0,u=-1;function p(e){var t=e.className,n=e.onClick;return React.createElement(m.Button,{className:t,onClick:n},React.createElement("i",{className:"fa fa-angle-right"}))}function d(e){var t=e.className,n=e.onClick;return React.createElement(m.Button,{className:t,onClick:n},React.createElement("i",{className:"fa fa-angle-left"}))}var f,b,g,h={arrows:t.slarrows,prevArrow:React.createElement(d,null),nextArrow:React.createElement(p,null),dots:t.sldots,infinite:!0,autoplay:t.slautolay,autoplaySpeed:t.slautoplaySpeed,speed:t.slanimationSpeed,fade:!1,pauseOnHover:t.slpauseOnHover,slidesToShow:t.slitems,slidesToScroll:t.slscrollItem,rtl:t.slIsrtl,responsive:[{breakpoint:t.sltabletWidth,settings:{slidesToShow:t.sltabletDisplayColumns,slidesToScroll:t.sltabletScrollColumns}},{breakpoint:t.slMobileWidth,settings:{slidesToShow:t.slMobileDisplayColumns,slidesToScroll:t.slMobileScrollColumns}}]},v=function(e){var n=t[e]?t[e]:{},o="";if(""!=n.top||""!=n.right||""!=n.bottom||""!=n.left){var r=n.unit?n.unit:"px";o=n.top?o+n.top+r+" ":"0"+r+" ",o=n.right?o+n.right+r+" ":"0"+r+" ",o=n.bottom?o+n.bottom+r+" ":"0"+r+" ",o=n.left?o+n.left+r+" ":"0"+r+" "}return o},w=V()(n,Co({},"woolentor-columns-".concat(t.columns.desktop),t.columns.desktop),Co({},"woolentor-laptop-columns-".concat(t.columns.laptop),t.columns.laptop),Co({},"woolentor-tablet-columns-".concat(t.columns.tablet),t.columns.tablet),Co({},"woolentor-mobile-columns-".concat(t.columns.mobile),t.columns.mobile),Co({},"woolentor-area-".concat(t.align),t.align)),O=V()(Co({},"woolentor-row",!0!==t.sliderOn),Co({},"wlno-gutters",1==t.noGutter),Co({},"product-slider",1==t.sliderOn)),_=V()(Co({},"woolentor-col-".concat(t.columns.desktop),t.columns.desktop)),C=Z.a.div(vo||(f=["\n\t\t\t"," !important;\n\t\t\t","px !important;\n\t\t\t\n\t\t\t& [class*='ht-category-wrap']{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& [class*='ht-category-image']{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .ht-category-wrap .ht-category-image a.ht-category-border::before,.ht-category-wrap-2:hover::before,.ht-category-wrap .ht-category-image a.ht-category-border-2::before{\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& [class*='ht-category-content'] h3 a{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& [class*='ht-category-content'] h3 a:hover{\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& [class*='ht-category-content'] span{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& [class*='ht-category-content'] span::before{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t\n\t\t"],b||(b=f.slice(0)),vo=Object.freeze(Object.defineProperties(f,{raw:{value:Object.freeze(b)}}))),!t.noGutter&&"padding: 0 "+t.itemSpace+"px 0 "+t.itemSpace+"px",!0!==t.sliderOn&&!t.noGutter&&u>=t.columns&&"margin-top:"+t.itemSpace+t.itemSpace,t.areaBackgroundColor&&"background-color:"+t.areaBackgroundColor,t.areaPadding&&"padding:"+v("areaPadding"),t.imageMargin&&"margin:"+v("imageMargin"),t.imageBorderRadius&&"border-radius:"+v("imageBorderRadius"),t.imageBoxColor&&"border-color:"+t.imageBoxColor,t.titleColor&&"color:"+t.titleColor,t.titleMargin&&"margin:"+v("titleMargin"),t.titleHoverColor&&"color:"+t.titleHoverColor,t.countColor&&"color:"+t.countColor,t.countBeforeColor&&"background-color:"+t.countBeforeColor);return c.length>0&&(g=c.map((function(e,n){return s=4===s?0:s,s++,u++,React.createElement(React.Fragment,null,React.createElement(C,{className:_},"1"===i&&React.createElement("div",{className:"ht-category-wrap"},e.image&&React.createElement("div",{className:"ht-category-image ht-category-image-zoom"},React.createElement(m.Disabled,null,React.createElement("a",{className:"ht-category-border",href:e.link},Object(y.createElement)("span",{dangerouslySetInnerHTML:{__html:e.image[t.imageSize].html}})))),React.createElement("div",{className:"ht-category-content"},React.createElement("h3",null,React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},e.name))),1==t.showCount&&React.createElement("span",null,e.count))),"2"===i&&React.createElement("div",{className:"ht-category-wrap-2"},React.createElement("div",{className:"ht-category-content-2"},React.createElement("h3",null,React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},e.name)))),e.image&&React.createElement("div",{className:"ht-category-image-2"},React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},Object(y.createElement)("span",{dangerouslySetInnerHTML:{__html:e.image.full.html}}))))),"3"===i&&React.createElement("div",{className:"ht-category-wrap"},e.image?React.createElement("div",{className:"ht-category-image ht-category-image-zoom"},React.createElement(m.Disabled,null,React.createElement("a",{className:"ht-category-border-2",href:e.link},Object(y.createElement)("span",{dangerouslySetInnerHTML:{__html:e.image.full.html}})))):React.createElement("div",{className:"ht-category-image ht-category-image-zoom"},React.createElement(m.Disabled,null,React.createElement("a",{className:"ht-category-border-2",href:e.link},React.createElement("img",{src:e.placeholderImg,alt:e.name})))),React.createElement("div",{className:"ht-category-content-3 ht-category-content-3-bg"+s},React.createElement("h3",null,React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},e.name))))),"4"===i&&React.createElement("div",{className:"ht-category-wrap"},e.image&&React.createElement("div",{className:"ht-category-image ht-category-image-zoom"},React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},Object(y.createElement)("span",{dangerouslySetInnerHTML:{__html:e.image.full.html}})))),React.createElement("div",{className:"ht-category-content-4"},React.createElement("h3",null,React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},e.name)),1==t.showCount&&React.createElement("span",null,e.count)))),"5"===i&&React.createElement("div",{className:"ht-category-wrap"},e.image&&React.createElement("div",{className:"ht-category-image-3 ht-category-image-zoom"},React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},Object(y.createElement)("span",{dangerouslySetInnerHTML:{__html:e.image.full.html}})))),React.createElement("div",{className:"ht-category-content-5"},React.createElement("h3",null,React.createElement(m.Disabled,null,React.createElement("a",{href:e.link},e.name)))))))}))),React.createElement(y.Fragment,null,o&&React.createElement(wo,this.props),React.createElement("div",{className:w},React.createElement("div",{className:O},0==c.length?React.createElement(m.Spinner,null):1==t.sliderOn?React.createElement(J.a,_o({},h,{className:"product-slider"}),g):g)))}}])&&Eo(t.prototype,n),l}(y.Component),Po=n(19),Fo=React.createElement("svg",{"enable-background":"new 0 0 24 24",height:"512",viewBox:"0 0 24 24",width:"512",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"m22.5 24h-21c-.827 0-1.5-.673-1.5-1.5v-21c0-.827.673-1.5 1.5-1.5h21c.827 0 1.5.673 1.5 1.5v21c0 .827-.673 1.5-1.5 1.5zm-21-23c-.276 0-.5.224-.5.5v21c0 .276.224.5.5.5h21c.276 0 .5-.224.5-.5v-21c0-.276-.224-.5-.5-.5z"}),React.createElement("path",{d:"m23.5 16.5h-23c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h23c.276 0 .5.224.5.5s-.224.5-.5.5z"}),React.createElement("path",{d:"m23.5 8.5h-23c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h23c.276 0 .5.224.5.5s-.224.5-.5.5z"}),React.createElement("path",{d:"m8 24c-.276 0-.5-.224-.5-.5v-23c0-.276.224-.5.5-.5s.5.224.5.5v23c0 .276-.224.5-.5.5z"})),Ao=Po.name,To=Po.category,Bo=Po.attributes,xo={title:Object(f.__)("WL : Category Grid","woolentor"),description:Object(f.__)("Display product category grid.","woolentor"),icon:React.createElement(m.Icon,{icon:Fo}),keywords:["woolentor",Object(f.__)("shop category","woolentor"),Object(f.__)("category grid","woolentor"),Object(f.__)("product category","woolentor"),Object(f.__)("woocommerce","woolentor")],example:{attributes:{style:"1",showCount:!0}},supports:{align:["wide","full"]},attributes:Bo,edit:So,save:function(){return null}};function zo(e){return(zo="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 Do(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 Mo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Do(Object(n),!0).forEach((function(t){Lo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Do(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Lo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Io(e){return function(e){if(Array.isArray(e))return No(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return No(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?No(e,void 0):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function No(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ho(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 Wo(e,t){return(Wo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Go(e,t){if(t&&("object"===zo(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function qo(e){return(qo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Uo,Vo,Qo=function(e){!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&&Wo(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=qo(o);if(r){var n=qo(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Go(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={activeClass:!1},t}return t=l,(n=[{key:"render",value:function(){var e,t=this,n=this.props,o=n.attributes,r=n.setAttributes,a=o.showFirstItem,l={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"},i=function(e,t,n){var a=Io(o.faqList);a[n][t]=e,r({faqList:a})};return o.faqList.length&&(e=o.faqList.map((function(e,n){var a=t.state.activeClass===n?"woolentor_active_repeter":"";return React.createElement(y.Fragment,{key:n},React.createElement("div",{className:"woolentor_repeater-fields"},React.createElement("div",{className:"woolentor_repeater-tools",onClick:function(e){return function(e,n){n===t.state.activeClass?t.setState({activeClass:!1}):t.setState({activeClass:n})}(0,n)}},React.createElement("div",{className:"woolentor_repeater-item-title"},o.faqList[n].title),React.createElement("div",{className:"woolentor_repeater-item-remove"},React.createElement(m.IconButton,{className:"woolentor__remove-marker",icon:"no-alt",label:Object(f.__)("Delete Marker","woolentor"),onClick:function(){return function(e){var t=Io(o.faqList);t.splice(e,1),r({faqList:t})}(n)}}))),React.createElement("div",{className:a+" woolentor_repeater-controls"},React.createElement(m.TextControl,{label:Object(f.__)("Faq Title","woolentor"),className:"woolentor__marker-title",placeholder:Object(f.__)("Marker Title","woolentor"),value:o.faqList[n].title,onChange:function(e){return i(e,"title",n)}}),React.createElement(m.TextareaControl,{label:Object(f.__)("Faq Content","woolentor"),value:o.faqList[n].content,onChange:function(e){return i(e,"content",n)}}))))}))),React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement(m.PanelBody,{title:Object(f.__)("FAQ","woolentor"),initialOpen:!0},e,React.createElement(m.Button,{isDefault:!0,icon:"plus-alt2",onClick:function(){var e=Io(o.faqList);e.push({title:Object(f.__)("Faq Item #"+(o.faqList.length+1),"woolentor"),content:"",horizontal:"",verticle:""}),r({faqList:e}),t.setState({activeClass:o.faqList.length})}.bind(this)},Object(f.__)("Add FAQ","woolentor"))),React.createElement(m.PanelBody,{title:Object(f.__)("Settings","woolentor"),initialOpen:!1},React.createElement(m.ToggleControl,{label:Object(f.__)("Show First Item","woolentor"),checked:a,help:a?Object(f.__)("Enable first item.","woolentor"):Object(f.__)("Toggle to show the first item.","woolentor"),onChange:function(){return r({showFirstItem:!a})}}),React.createElement(m.SelectControl,{label:Object(f.__)("Icon Position","woolentor"),value:o.iconPosition,options:[{label:Object(f.__)("Left","woolentor"),value:"left"},{label:Object(f.__)("Right","woolentor"),value:"right"}],onChange:function(e){return r({iconPosition:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Style","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Title","woolentor")),React.createElement(m.SelectControl,{label:Object(f.__)("Border Type","woolentor"),value:o.titleBorderType,options:[{label:Object(f.__)("None","woolentor"),value:""},{label:Object(f.__)("Solid","woolentor"),value:"solid"},{label:Object(f.__)("Double","woolentor"),value:"double"},{label:Object(f.__)("Dotted","woolentor"),value:"dotted"},{label:Object(f.__)("Dashed","woolentor"),value:"dashed"},{label:Object(f.__)("Groove","woolentor"),value:"groove"}],onChange:function(e){return r({titleBorderType:e})}}),o.titleBorderType&&React.createElement(React.Fragment,null,React.createElement(tt,{lavel:Object(f.__)("Border Width","woolentor"),dimensions:o.titleBorderWidth,attributesKey:"titleBorderWidth",setAttributes:r}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.titleBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.titleBorderColor,onChange:function(e){return r({titleBorderColor:e})}})),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:o.titleBorderRadius,attributesKey:"titleBorderRadius",setAttributes:r}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.headBackgroundColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.headBackgroundColor,onChange:function(e){return r({headBackgroundColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Active Background Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.activeHeadBackgroundColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.activeHeadBackgroundColor,onChange:function(e){return r({activeHeadBackgroundColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.faqTitleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.faqTitleColor,onChange:function(e){return r({faqTitleColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Active Title Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.activeFaqTitleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.activeFaqTitleColor,onChange:function(e){return r({activeFaqTitleColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:o.titleSize,fallbackFontSize:o.titleSize,onChange:function(e){return r({titleSize:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Icon Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.iconColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.iconColor,onChange:function(e){return r({iconColor:e})}}),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Active Icon Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.activeIconColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.activeIconColor,onChange:function(e){return r({activeIconColor:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Content","woolentor")),React.createElement("h3",{style:{marginTop:15}},Object(f.__)("Color","woolentor"),React.createElement("span",{style:Mo(Mo({},l),{},{backgroundColor:o.contentColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:o.contentColor,onChange:function(e){return r({contentColor:e})}}),React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:o.contentSize,fallbackFontSize:o.contentSize,onChange:function(e){return r({contentSize:e})}}))))}}])&&Ho(t.prototype,n),l}(y.Component);function Ko(e){return(Ko="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 Yo(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Xo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jo(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 Zo(e,t){return(Zo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function $o(e,t){if(t&&("object"===Ko(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function er(e){return(er=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var tr=function(e){!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&&Zo(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=er(o);if(r){var n=er(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return $o(this,e)});function l(){return Xo(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"componentDidMount",value:function(){this.$el=jQuery(this.el);var e=this.$el.attr("id");new Accordion("#"+e,{duration:500,showItem:this.props.attributes.showFirstItem,elementClass:"htwoolentor-faq-card",questionClass:"htwoolentor-faq-head",answerClass:"htwoolentor-faq-body"})}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes,n=t.faqList;if(e.attributes.faqList!==n||t.showFirstItem!==e.attributes.showFirstItem){this.$el=jQuery(this.el);var o=this.$el.attr("id");new Accordion("#"+o,{duration:500,showItem:t.showFirstItem,elementClass:"htwoolentor-faq-card",questionClass:"htwoolentor-faq-head",answerClass:"htwoolentor-faq-body"}),jQuery(".htwoolentor-faq-card").on("click",(function(e){jQuery(this).toggleClass("is-active")}))}}},{key:"componentWillUnmount",value:function(){this.$el=jQuery(this.el);var e=this.$el.attr("id"),t=jQuery("#"+e);t.accordion&&(t.accordion("destroy"),t.accordion=!1)}},{key:"render",value:function(){var e=this,t=this.props,n=(t.name,t.attributes),o=t.className,r=t.isSelected,a=t.setAttributes,l=t.clientId,i=n.blockUniqId;n.bgProperty,l!==i&&a({blockUniqId:l});var c,s,u,p=function(e){var t=n[e]?n[e]:{},o="";if(""!=t.top||""!=t.right||""!=t.bottom||""!=t.left){var r=t.unit?t.unit:"px";o=t.top?o+t.top+r+" ":"0"+r+" ",o=t.right?o+t.right+r+" ":"0"+r+" ",o=t.bottom?o+t.bottom+r+" ":"0"+r+" ",o=t.left?o+t.left+r+" ":"0"+r+" "}return o},d=V()("htwoolentor-faq",(c={},s="woolentorfaq-icon-pos-".concat(n.iconPosition),u=n.iconPosition,s in c?Object.defineProperty(c,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):c[s]=u,c)),f=Z.a.div(Uo||(Uo=Yo(["\n\t\t\t",";\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t\t"," !important;\n\t\t\t& .htwoolentor-faq-head-text{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .htwoolentor-faq-head-indicator:before, .htwoolentor-faq-head-indicator:after{\n\t\t\t\t"," !important;\n\t\t\t}\n\t\t"])),n.headBackgroundColor&&"background-color:"+n.headBackgroundColor,n.titleBorderType&&"border-style:"+n.titleBorderType,n.titleBorderWidth&&"border-width:"+p("titleBorderWidth"),n.titleBorderColor&&"border-color:"+n.titleBorderColor,n.titleBorderRadius&&"border-radius:"+p("titleBorderRadius"),n.faqTitleColor&&"color:"+n.faqTitleColor,n.titleSize&&"font-size:"+n.titleSize,n.iconColor&&"background-color:"+n.iconColor),m=Z.a.div(Vo||(Vo=Yo(["\n\t\t\t",";\n\n\t\t\t& p{\n\t\t\t\t"," !important;\n\t\t\t}\n\t\t"])),n.contentColor&&"color:"+n.contentColor,n.contentSize&&"font-size:"+n.contentSize),b=React.createElement("span",{className:"htwoolentor-faq-head-indicator"}),g=n.faqList.map((function(e,t){var o=e.title?React.createElement("span",{class:"htwoolentor-faq-head-text"},e.title):"";return React.createElement("div",{key:t,className:"htwoolentor-faq-card"},"right"===n.iconPosition?React.createElement(f,{className:"htwoolentor-faq-head"},o,b):React.createElement(f,{className:"htwoolentor-faq-head"},b,o),React.createElement("div",{className:"htwoolentor-faq-body"},React.createElement(m,{className:"htwoolentor-faq-content"},e.content&&React.createElement("p",null,e.content))))}));return React.createElement(y.Fragment,null,r&&React.createElement(Qo,this.props),React.createElement("div",{className:o},React.createElement("div",{className:d,id:"htwoolentor-faq-"+i+Math.random().toString(36).substr(2,9),ref:function(t){return e.el=t}},g)))}}])&&Jo(t.prototype,n),l}(y.Component),nr=n(20),or=React.createElement("svg",{version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512",space:"preserve"},React.createElement("g",null,React.createElement("path",{d:"M256,0C114.516,0,0,114.497,0,256c0,141.484,114.497,256,256,256c141.484,0,256-114.497,256-256 C512,114.516,397.503,0,256,0z M256,472c-119.377,0-216-96.607-216-216c0-119.377,96.607-216,216-216 c119.377,0,216,96.607,216,216C472,375.377,375.393,472,256,472z"}),React.createElement("path",{d:"M256,128.5c-44.112,0-80,35.888-80,80c0,11.046,8.954,20,20,20s20-8.954,20-20c0-22.056,17.944-40,40-40 c22.056,0,40,17.944,40,40c0,22.056-17.944,40-40,40c-11.046,0-20,8.954-20,20v50c0,11.046,8.954,20,20,20 c11.046,0,20-8.954,20-20v-32.531c34.466-8.903,60-40.26,60-77.469C336,164.388,300.112,128.5,256,128.5z"}))),rr=nr.name,ar=nr.category,lr=nr.attributes,ir={title:Object(f.__)("WL : FAQ","woolentor"),description:Object(f.__)("Display faq.","woolentor"),icon:React.createElement(m.Icon,{icon:or}),keywords:[Object(f.__)("WooLentor","woolentor"),Object(f.__)("faq","woolentor"),Object(f.__)("accordion","woolentor"),Object(f.__)("question","woolentor"),Object(f.__)("answer","woolentor")],example:{},supports:{align:["wide","full"]},attributes:lr,edit:tr,save:function(){return null}};function cr(e){return(cr="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 sr(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 ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sr(Object(n),!0).forEach((function(t){pr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dr(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 fr(e,t){return(fr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function mr(e,t){if(t&&("object"===cr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function br(e){return(br=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var gr,hr,yr,vr=function(e){!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&&fr(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=br(o);if(r){var n=br(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return mr(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={activeTab:"general",titleTab:"normal",actionBtnTab:"normal",device:"desktop"},t}return t=l,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,o=t.setAttributes,r=n.productFilterType,a=n.perPage,l=n.customOrder,i=n.orderBy,c=n.order,s=n.selectedCategories,u={width:30,height:12,display:"inline-block",marginLeft:10,verticalAlign:"middle"},p=function(t,n,o){e.setState(pr({},n,o))};return React.createElement(y.Fragment,null,React.createElement(T.InspectorControls,null,React.createElement("div",{className:"woolentor-tabs-menu"},React.createElement(m.ButtonGroup,{className:"woolentor-tabs-menu-btn-group"},React.createElement(m.Button,{className:"general"===this.state.activeTab?"woolentor-tab-menu-item woolentor-tab-menu-active":"woolentor-tab-menu-item",icon:"admin-tools",value:"general",isPrimary:"general"===this.state.activeTab,isSecondary:"general"!==this.state.activeTab,onClick:function(e){return p(0,"activeTab","general")}},Object(f.__)("General","woolentor")),React.createElement(m.Button,{className:"styles"===this.state.activeTab?"woolentor-tab-menu-item woolentor-tab-menu-active":"woolentor-tab-menu-item",icon:"chart-pie",value:"styles",isPrimary:"styles"===this.state.activeTab,isSecondary:"styles"!==this.state.activeTab,onClick:function(e){return p(0,"activeTab","styles")}},Object(f.__)("Styles","woolentor")),React.createElement(m.Button,{className:"advanced"===this.state.activeTab?"woolentor-tab-menu-item woolentor-tab-menu-active":"woolentor-tab-menu-item",icon:"admin-generic",value:"advanced",isPrimary:"advanced"===this.state.activeTab,isSecondary:"advanced"!==this.state.activeTab,onClick:function(e){return p(0,"activeTab","advanced")}},Object(f.__)("Advanced","woolentor")))),React.createElement("div",{className:"woolentor-tabs-content"},"general"===this.state.activeTab&&React.createElement(React.Fragment,null,React.createElement(m.PanelBody,{title:Object(f.__)("Layout","woolentor"),initialOpen:!0},React.createElement(m.SelectControl,{label:Object(f.__)("Layout","woolentor"),value:n.layout,options:[{label:Object(f.__)("Layout One","woolentor"),value:"1"},{label:Object(f.__)("Layout Two","woolentor"),value:"2"},{label:Object(f.__)("Layout Three","woolentor"),value:"3"}],onChange:function(e){return o({layout:e})}}),React.createElement(m.PanelRow,{className:"woolentor-device-row",style:{minHeight:"auto"}},React.createElement("label",null,Object(f.__)("Columns","woolentor")),React.createElement(m.ButtonGroup,{className:"woolentor-device-button"},React.createElement(m.Button,{icon:"desktop",value:"desktop",label:Object(f.__)("Large","woolentor"),isPrimary:"desktop"===this.state.device,isSecondary:"desktop"!==this.state.device,onClick:function(e){return p(0,"device","desktop")}}),React.createElement(m.Button,{icon:"laptop",value:"laptop",label:Object(f.__)("Medium","woolentor"),isPrimary:"laptop"===this.state.device,isSecondary:"laptop"!==this.state.device,onClick:function(e){return p(0,"device","laptop")}}),React.createElement(m.Button,{icon:"tablet",value:"tablet",label:Object(f.__)("Small","woolentor"),isPrimary:"tablet"===this.state.device,isSecondary:"tablet"!==this.state.device,onClick:function(e){return p(0,"device","tablet")}}),React.createElement(m.Button,{icon:"smartphone",value:"mobile",label:Object(f.__)("Extra Small","woolentor"),isPrimary:"mobile"===this.state.device,isSecondary:"mobile"!==this.state.device,onClick:function(e){return p(0,"device","mobile")}}))),React.createElement(m.RangeControl,{value:n.columns[this.state.device],onChange:function(t){return function(e,t,r){var a=ur({},n.columns);a[t]=e,o(pr({},"columns",a))}(t,e.state.device)},min:0,step:1,max:6}),React.createElement(m.ToggleControl,{label:Object(f.__)("No Gutters","woolentor"),checked:n.noGutter,help:n.noGutter?Object(f.__)("Enable No Gutters.","woolentor"):Object(f.__)("Toggle to show the Gutters.","woolentor"),onChange:function(){return o({noGutter:!n.noGutter})}}),!n.noGutter&&React.createElement(m.RangeControl,{label:Object(f.__)("Gutter Spacing","woolentor"),value:n.itemSpace,onChange:function(e){return o({itemSpace:e})},min:0,step:1,max:200}),React.createElement(m.RangeControl,{label:Object(f.__)("Margin Bottom","woolentor"),value:n.itemMarginBottom,onChange:function(e){return o({itemMarginBottom:e})},min:0,step:1,max:1e3})),React.createElement(m.PanelBody,{title:Object(f.__)("Query Options","woolentor"),initialOpen:!1},React.createElement(m.SelectControl,{label:Object(f.__)("Filter By","woolentor"),value:r,options:[{label:Object(f.__)("Recent Products","woolentor"),value:"recent"},{label:Object(f.__)("Featured Products","woolentor"),value:"featured"},{label:Object(f.__)("Best Selling Products","woolentor"),value:"best_selling"},{label:Object(f.__)("Sale Products","woolentor"),value:"sale"},{label:Object(f.__)("Top Rated Products","woolentor"),value:"top_rated"},{label:Object(f.__)("Mixed order Products","woolentor"),value:"mixed_order"}],onChange:function(e){return o({productFilterType:e})}}),React.createElement(m.RangeControl,{label:Object(f.__)("Number Of Products","woolentor"),value:a,onChange:function(e){return o({perPage:e})},min:1,step:1,max:1e3}),React.createElement(m.ToggleControl,{label:Object(f.__)("Custom Order","woolentor"),checked:l,help:l?Object(f.__)("Enable custom order.","woolentor"):Object(f.__)("Toggle to show the custom order.","woolentor"),onChange:function(){return o({customOrder:!l})}}),React.createElement(A,{title:Object(f.__)("Product Categories","woolentor"),attributesKey:"selectedCategories",setAttributes:o,selectedTaxonomies:s,type:"multiple"}),l?React.createElement(React.Fragment,null,React.createElement(m.SelectControl,{label:Object(f.__)("Order","woolentor"),value:c,options:[{label:Object(f.__)("Descending","woolentor"),value:"DESC"},{label:Object(f.__)("Ascending","woolentor"),value:"ASC"}],onChange:function(e){return o({order:e})}}),React.createElement(m.SelectControl,{label:Object(f.__)("Orderby","woolentor"),value:i,options:[{label:Object(f.__)("None","woolentor"),value:"none"},{label:Object(f.__)("ID","woolentor"),value:"ID"},{label:Object(f.__)("Date","woolentor"),value:"date"},{label:Object(f.__)("Name","woolentor"),value:"name"},{label:Object(f.__)("Title","woolentor"),value:"title"},{label:Object(f.__)("Comment count","woolentor"),value:"comment_count"},{label:Object(f.__)("Random","woolentor"),value:"rand"}],onChange:function(e){return o({orderBy:e})}})):""),React.createElement(m.PanelBody,{title:Object(f.__)("Content Settings","woolentor"),initialOpen:!1},React.createElement(m.RangeControl,{label:Object(f.__)("Content Limit","woolentor"),value:n.contentLimit,onChange:function(e){return o({contentLimit:e})},min:1,step:1,max:1e3}),React.createElement(m.ToggleControl,{label:Object(f.__)("Show Title","woolentor"),checked:n.showTitle,help:n.showTitle?Object(f.__)("Enable Title.","woolentor"):Object(f.__)("Toggle to show the title.","woolentor"),onChange:function(){return o({showTitle:!n.showTitle})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Show Price","woolentor"),checked:n.showPrice,help:n.showPrice?Object(f.__)("Enable Price.","woolentor"):Object(f.__)("Toggle to show the price.","woolentor"),onChange:function(){return o({showPrice:!n.showPrice})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Show Content","woolentor"),checked:n.showContent,help:n.showContent?Object(f.__)("Enable Content.","woolentor"):Object(f.__)("Toggle to show the content.","woolentor"),onChange:function(){return o({showContent:!n.showContent})}}),React.createElement(m.ToggleControl,{label:Object(f.__)("Show Rating","woolentor"),checked:n.showRating,help:n.showRating?Object(f.__)("Enable Rating.","woolentor"):Object(f.__)("Toggle to show the rating.","woolentor"),onChange:function(){return o({showRating:!n.showRating})}}))),"styles"===this.state.activeTab&&React.createElement(React.Fragment,null,React.createElement(m.PanelBody,{title:Object(f.__)("Item","woolentor"),initialOpen:!1},React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.itemAreaBGColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.itemAreaBGColor,onChange:function(e){return o({itemAreaBGColor:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Title","woolentor"),initialOpen:!1},React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:n.titleSize,fallbackFontSize:n.titleSize,onChange:function(e){return o({titleSize:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.titleMargin,attributesKey:"titleMargin",setAttributes:o}),React.createElement(m.ButtonGroup,{className:"woolentor-tabs-menu-btn-group"},React.createElement(m.Button,{className:"normal"===this.state.titleTab?"woolentor-elements-tab-menu-item tab-menu-active":"woolentor-elements-tab-menu-item",value:"normal",isPrimary:"normal"===this.state.activeTab,isSecondary:"normal"!==this.state.activeTab,onClick:function(e){return p(0,"titleTab","normal")}},Object(f.__)("Normal","woolentor")),React.createElement(m.Button,{className:"hover"===this.state.titleTab?"woolentor-elements-tab-menu-item tab-menu-active":"woolentor-elements-tab-menu-item",value:"hover",isPrimary:"hover"===this.state.activeTab,isSecondary:"hover"!==this.state.activeTab,onClick:function(e){return p(0,"titleTab","hover")}},Object(f.__)("Hover","woolentor"))),"normal"===this.state.titleTab&&React.createElement("div",{className:"woolentor-element-tab-content"},React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.titleColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.titleColor,onChange:function(e){return o({titleColor:e})}})),"hover"===this.state.titleTab&&React.createElement("div",{className:"woolentor-element-tab-content"},React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.titleHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.titleHoverColor,onChange:function(e){return o({titleHoverColor:e})}}))),React.createElement(m.PanelBody,{title:Object(f.__)("Price","woolentor"),initialOpen:!1},React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Sale Price","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.salePriceColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.salePriceColor,onChange:function(e){return o({salePriceColor:e})}}),React.createElement("h2",{className:"woolentor-blocks-section-title"},Object(f.__)("Reguler Price","woolentor")),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.regulerPriceColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.regulerPriceColor,onChange:function(e){return o({regulerPriceColor:e})}})),React.createElement(m.PanelBody,{title:Object(f.__)("Content","woolentor"),initialOpen:!1},React.createElement(m.FontSizePicker,{fontSizes:[{name:Object(f.__)("Small","woolentor"),slug:"small",size:"12px"},{name:Object(f.__)("Medium","woolentor"),slug:"medium",size:"18px"},{name:Object(f.__)("Large","woolentor"),slug:"large",size:"24px"}],value:n.contentSize,fallbackFontSize:n.contentSize,onChange:function(e){return o({contentSize:e})}}),React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.cotentColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.cotentColor,onChange:function(e){return o({cotentColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.contentMargin,attributesKey:"contentMargin",setAttributes:o})),React.createElement(m.PanelBody,{title:Object(f.__)("Rating","woolentor"),initialOpen:!1},React.createElement("h3",null,Object(f.__)("Empty Rating Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.emptyRatingColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.emptyRatingColor,onChange:function(e){return o({emptyRatingColor:e})}}),React.createElement("h3",null,Object(f.__)("Rating Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.ratingColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.ratingColor,onChange:function(e){return o({ratingColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.ratingMargin,attributesKey:"ratingMargin",setAttributes:o})),React.createElement(m.PanelBody,{title:Object(f.__)("Action Button","woolentor"),initialOpen:!1},React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.actionBtnAreaBGColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.actionBtnAreaBGColor,onChange:function(e){return o({actionBtnAreaBGColor:e})}}),React.createElement(m.ButtonGroup,{className:"woolentor-tabs-menu-btn-group"},React.createElement(m.Button,{className:"normal"===this.state.actionBtnTab?"woolentor-elements-tab-menu-item tab-menu-active":"woolentor-elements-tab-menu-item",value:"normal",isPrimary:"normal"===this.state.actionBtnTab,isSecondary:"normal"!==this.state.actionBtnTab,onClick:function(e){return p(0,"actionBtnTab","normal")}},Object(f.__)("Normal","woolentor")),React.createElement(m.Button,{className:"hover"===this.state.actionBtnTab?"woolentor-elements-tab-menu-item tab-menu-active":"woolentor-elements-tab-menu-item",value:"hover",isPrimary:"hover"===this.state.actionBtnTab,isSecondary:"hover"!==this.state.actionBtnTab,onClick:function(e){return p(0,"actionBtnTab","hover")}},Object(f.__)("Hover","woolentor"))),"normal"===this.state.actionBtnTab&&React.createElement("div",{className:"woolentor-element-tab-content"},React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.actionBtnColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.actionBtnColor,onChange:function(e){return o({actionBtnColor:e})}}),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.actionBtnBGColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.actionBtnBGColor,onChange:function(e){return o({actionBtnBGColor:e})}}),React.createElement(tt,{lavel:Object(f.__)("Border Radius","woolentor"),dimensions:n.actionBtnBorderRadius,attributesKey:"actionBtnBorderRadius",setAttributes:o})),"hover"===this.state.actionBtnTab&&React.createElement("div",{className:"woolentor-element-tab-content"},React.createElement("h3",null,Object(f.__)("Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.actionBtnHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.actionBtnHoverColor,onChange:function(e){return o({actionBtnHoverColor:e})}}),React.createElement("h3",null,Object(f.__)("Background Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.actionBtnBgHoverColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.actionBtnBgHoverColor,onChange:function(e){return o({actionBtnBgHoverColor:e})}}))),React.createElement(m.PanelBody,{title:Object(f.__)("Image","woolentor"),initialOpen:!1},React.createElement("h3",null,Object(f.__)("Border Color","woolentor"),React.createElement("span",{style:ur(ur({},u),{},{backgroundColor:n.imageBorderColor})})),React.createElement(m.ColorPalette,{colors:[{name:"Black",color:"#000000"},{name:"Orange",color:"#FF6900"},{name:"Vivid Red",color:"#CF2E2E"},{name:"Pink",color:"#F78DA7"},{name:"White",color:"#FFFFFF"},{name:"Blue",color:"#8ED1FC"}],value:n.imageBorderColor,onChange:function(e){return o({imageBorderColor:e})}}))),"advanced"===this.state.activeTab&&React.createElement(React.Fragment,null,React.createElement(m.PanelBody,{title:Object(f.__)("Dimension","woolentor"),initialOpen:!1},React.createElement(tt,{lavel:Object(f.__)("Margin","woolentor"),dimensions:n.areaMargin,attributesKey:"areaMargin",setAttributes:o}),React.createElement(tt,{lavel:Object(f.__)("Padding","woolentor"),dimensions:n.areaPadding,attributesKey:"areaPadding",setAttributes:o})),React.createElement(m.PanelBody,{title:Object(f.__)("Background","woolentor"),initialOpen:!1},React.createElement(Mt,{title:Object(f.__)("Background Image","woolentor"),attributesKey:"areaBGProperty",setAttributes:o,bgProperty:n.areaBGProperty}))))))}}])&&dr(t.prototype,n),l}(y.Component);function wr(e){return(wr="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 Or(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function _r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cr(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 Er(e,t){return(Er=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Rr(e,t){if(t&&("object"===wr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function jr(e){return(jr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var kr=function(e){!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&&Er(e,t)}(l,e);var t,n,o,r,a=(o=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=jr(o);if(r){var n=jr(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return Rr(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={productData:[]},t}return t=l,(n=[{key:"componentDidMount",value:function(){this.fetchProductsData()}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes,n=t.perPage,o=t.productFilterType,r=t.customOrder,a=this.props.attributes.orderBy,l=this.props.attributes.order,i=this.props.attributes.selectedCategories;e.attributes.perPage==n&&e.attributes.productFilterType==o&&e.attributes.customOrder==r&&e.attributes.orderBy==a&&e.attributes.order==l&&e.attributes.selectedCategories==i||this.fetchProductsData()}},{key:"componentWillUnmount",value:function(){}},{key:"fetchProductsData",value:function(){var e=this,t={perPage:this.props.attributes.perPage,filterBy:this.props.attributes.productFilterType,wpnonce:woolentorData.security};1==this.props.attributes.customOrder&&(t.orderBy=this.props.attributes.orderBy,t.order=this.props.attributes.order),this.props.attributes.selectedCategories.length>0&&(t.categories=this.props.attributes.selectedCategories);var n=Object(Y.addQueryArgs)("/woolentor/v1/products",t);K()({path:n}).then((function(t){return e.setState({productData:t})}))}},{key:"render",value:function(){var e=this.props,t=(e.name,e.attributes),n=e.className,o=e.isSelected,r=e.setAttributes,a=e.clientId,l=t.blockUniqId,i=t.areaBGProperty;a!==l&&r({blockUniqId:a});var c,s=function(e){var n=t[e]?t[e]:{},o="";if(""!=n.top||""!=n.right||""!=n.bottom||""!=n.left){var r=n.unit?n.unit:"px";o=n.top?o+n.top+r+" ":"0"+r+" ",o=n.right?o+n.right+r+" ":"0"+r+" ",o=n.bottom?o+n.bottom+r+" ":"0"+r+" ",o=n.left?o+n.left+r+" ":"0"+r+" "}return o},u=V()("woocommerce","woolentor-product-curvy",_r({},"woolentor-columns-".concat(t.columns.desktop),t.columns.desktop),_r({},"woolentor-laptop-columns-".concat(t.columns.laptop),t.columns.laptop),_r({},"woolentor-tablet-columns-".concat(t.columns.tablet),t.columns.tablet),_r({},"woolentor-mobile-columns-".concat(t.columns.mobile),t.columns.mobile)),p=V()(_r({},"woolentor-col-".concat(t.columns.desktop),t.columns.desktop)),d=V()("wl_single-product-item",_r({},"wl_left-item",2==t.layout),_r({},"wl_dark-item",3==t.layout)),f=Z.a.div(gr||(gr=Or(["\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t\t",";\n\t\t"])),t.areaMargin&&"margin:"+s("areaMargin"),t.areaPadding&&"padding:"+s("areaPadding"),i.imageUrl&&"background-image:url("+i.imageUrl+")",i.position&&"background-position:"+i.position,i.attachment&&"background-attachment:"+i.attachment,i.repeat&&"background-repeat:"+i.repeat,i.size&&"background-size:"+i.size),b=Z.a.div(hr||(hr=Or(["\n\t\t\t"," !important;\n\t\t\t","\n\t\t"])),!t.noGutter&&"padding: 0 "+t.itemSpace+"px 0 "+t.itemSpace+"px",t.itemMarginBottom&&"margin-bottom:"+t.itemMarginBottom+"px;"),g=Z.a.div(yr||(yr=Or(["\n\t\t\t",";\n\n\t\t\t&.wl_dark-item .product-content{\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .product-content .product-content-top .title{\n\t\t\t\t"," !important;\n\t\t\t\t"," !important;\n\t\t\t}\n\t\t\t& .product-content .product-content-top .title a{\n\t\t\t\t"," !important;\n\t\t\t}\n\t\t\t& .product-content .product-content-top .title a:hover{\n\t\t\t\t"," !important;\n\t\t\t}\n\n\t\t\t& .product-content .product-content-top .product-price{\n\t\t\t\t"," !important;\n\t\t\t}\n\n\t\t\t& .product-content .product-content-top .product-price del{\n\t\t\t\t"," !important;\n\t\t\t}\n\n\t\t\t& .product-content .product-content-top p{\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .product-content .product-content-top .star-rating{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-content .product-content-top .star-rating::before{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-content .product-content-top .star-rating span{\n\t\t\t\t",";\n\t\t\t}\n\t\t\t& .product-content .product-content-top .star-rating {\n\t\t\t\t",";\n\t\t\t}\n\n\t\t\t& .product-content .action{\n\t\t\t\t","\n\t\t\t}\n\t\t\t& .product-content .action li a, .product-content .action li .woolentor-compare.compare::before{\n\t\t\t\t","\n\t\t\t}\n\t\t\t& .product-content .action li a{\n\t\t\t\t","\n\t\t\t\t","\n\t\t\t}\n\n\t\t\t& .product-content .action li a:hover, .product-content .action li .woolentor-compare.compare:hover::before{\n\t\t\t\t","\n\t\t\t}\n\t\t\t& .product-content .action li a:hover{\n\t\t\t\t","\n\t\t\t}\n\t\t\t& .product-thumbnail{\n\t\t\t\t","\n\t\t\t}\n\t\t\n\t\t"])),t.itemAreaBGColor&&"background-color:"+t.itemAreaBGColor,t.itemAreaBGColor&&"background-color:"+t.itemAreaBGColor,t.titleSize&&"font-size:"+t.titleSize,t.titleMargin&&"margin:"+s("titleMargin"),t.titleColor&&"color:"+t.titleColor,t.titleHoverColor&&"color:"+t.titleHoverColor,t.salePriceColor&&"color:"+t.salePriceColor,t.regulerPriceColor&&"color:"+t.regulerPriceColor,t.cotentColor&&"color:"+t.cotentColor,t.contentSize&&"font-size:"+t.contentSize,t.contentMargin&&"margin:"+s("contentMargin"),t.emptyRatingColor&&"color:"+t.emptyRatingColor,t.emptyRatingColor&&"color:"+t.emptyRatingColor,t.ratingColor&&"color:"+t.ratingColor,t.ratingMargin&&"margin:"+s("ratingMargin"),t.actionBtnAreaBGColor&&"background-color:"+t.actionBtnAreaBGColor+"!important;",t.actionBtnColor&&"color:"+t.actionBtnColor+"!important;",t.actionBtnBGColor&&"background-color:"+t.actionBtnBGColor+"!important;",t.actionBtnBorderRadius&&"border-radius:"+s("actionBtnBorderRadius")+"!important;",t.actionBtnHoverColor&&"color:"+t.actionBtnHoverColor+"!important;",t.actionBtnBgHoverColor&&"background-color:"+t.actionBtnBgHoverColor+"!important;",t.imageBorderColor&&"border-color:"+t.imageBorderColor+"!important;"),h=this.state.productData;return h.length>0&&(c=h.map((function(e,n){return React.createElement(b,{className:p},React.createElement(g,{className:d},React.createElement(m.Disabled,null,React.createElement("a",{href:e.permalink,className:"product-thumbnail"},Object(y.createElement)("div",{className:"images",dangerouslySetInnerHTML:{__html:e.image.full.html}}))),React.createElement("div",{className:"product-content"},React.createElement("div",{className:"product-content-top"},!0===t.showTitle&&React.createElement("h6",{className:"title"},React.createElement("a",{href:e.permalink},e.title)),!0===t.showPrice&&Object(y.createElement)("div",{className:"product-price",dangerouslySetInnerHTML:{__html:e.price_html}}),!0===t.showContent&&React.createElement("p",null,e.content.split(" ").slice(0,t.contentLimit).join(" ")),!0===t.showRating&&Object(y.createElement)("div",{className:"reading",dangerouslySetInnerHTML:{__html:e.rating.html}})),React.createElement("ul",{className:"action"},React.createElement("li",{className:"wl_cart"},React.createElement("a",{href:e.addtocart.link,"data-quantity":"1",className:"action-item"+e.addtocart.class,"data-product_id":e.id},React.createElement("i",{class:"fa fa-shopping-cart"}))),e.wishlist.status&&Object(y.createElement)("li",{dangerouslySetInnerHTML:{__html:e.wishlist.html}}),e.compare.status&&Object(y.createElement)("li",{dangerouslySetInnerHTML:{__html:e.compare.html}})))))}))),React.createElement(y.Fragment,null,o&&React.createElement(vr,this.props),React.createElement(f,{className:n},React.createElement("div",{className:u},0==h.length?React.createElement(m.Spinner,null):React.createElement("div",{className:!0===t.noGutter?"woolentor-row wlno-gutters":"woolentor-row"},c))))}}])&&Cr(t.prototype,n),l}(y.Component),Sr=n(21),Pr=React.createElement("svg",{id:"Capa_1","enable-background":"new 0 0 512 512",height:"512",viewBox:"0 0 512 512",width:"512",xmlns:"http://www.w3.org/2000/svg"},React.createElement("g",null,React.createElement("path",{d:"m166.717 225.43c-4.309 0-7.802 3.493-7.802 7.802s3.493 7.802 7.802 7.802 7.803-3.493 7.803-7.802-3.494-7.802-7.803-7.802z"}),React.createElement("path",{d:"m166.717 263.74c-4.309 0-7.802 3.493-7.802 7.803 0 4.309 3.493 7.802 7.802 7.802s7.803-3.493 7.803-7.802c-.001-4.31-3.494-7.803-7.803-7.803z"}),React.createElement("path",{d:"m166.717 302.049c-4.309 0-7.802 3.493-7.802 7.802s3.493 7.802 7.802 7.802 7.803-3.493 7.803-7.802c-.001-4.309-3.494-7.802-7.803-7.802z"}),React.createElement("path",{d:"m302.846 63.778h-90.035l-2.93-21.993c-.497-3.727-3.675-6.51-7.435-6.51h-17.57c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h11.003l2.93 21.993c.003.022.008.043.012.064.003.018.002.036.005.053l7.994 53.55c.549 3.674 3.703 6.393 7.418 6.393h80.614c3.715 0 6.869-2.719 7.418-6.393l7.994-53.55c.322-2.159-.311-4.351-1.736-6.003-1.425-1.654-3.5-2.604-5.682-2.604zm-14.458 53.55h-67.686l-5.755-38.55h79.196z"}),React.createElement("path",{d:"m248.916 165.704c0-12.407-10.094-22.5-22.5-22.5s-22.5 10.093-22.5 22.5 10.094 22.5 22.5 22.5 22.5-10.093 22.5-22.5zm-30 0c0-4.136 3.364-7.5 7.5-7.5s7.5 3.364 7.5 7.5-3.364 7.5-7.5 7.5-7.5-3.364-7.5-7.5z"}),React.createElement("path",{d:"m282.673 143.204c-12.406 0-22.5 10.093-22.5 22.5s10.094 22.5 22.5 22.5 22.5-10.093 22.5-22.5-10.094-22.5-22.5-22.5zm0 30c-4.136 0-7.5-3.364-7.5-7.5s3.364-7.5 7.5-7.5 7.5 3.364 7.5 7.5-3.364 7.5-7.5 7.5z"}),React.createElement("path",{d:"m279.948 225.733h-81.378c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h81.378c4.142 0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5z"}),React.createElement("path",{d:"m279.948 264.042h-81.378c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h81.378c4.142 0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5z"}),React.createElement("path",{d:"m279.948 302.351h-81.378c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h81.378c4.142 0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5z"}),React.createElement("g",null,React.createElement("path",{d:"m484.615 88.534h-84.393v-66.614c0-9.951-8.096-18.047-18.047-18.047h-252.349c-9.951 0-18.048 8.096-18.048 18.047v66.614h-19.645c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h19.646v259.248h-96.779v-246.862c0-6.83 5.557-12.386 12.386-12.386h34.747c4.143 0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5h-34.747c-15.101 0-27.386 12.286-27.386 27.386v291.442c0 15.1 12.285 27.385 27.386 27.385h166.31l-8.039 58.38h-24.209c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h189.248c4.143 0 7.5-3.358 7.5-7.5s-3.357-7.5-7.5-7.5h-24.209l-8.039-58.38h55.225c4.142 0 7.5-3.358 7.5-7.5s-3.358-7.5-7.5-7.5h-346.287c-6.829 0-12.386-5.556-12.386-12.385v-29.58h482v29.58c0 6.829-5.556 12.385-12.385 12.385h-80.942c-4.143 0-7.5 3.358-7.5 7.5s3.357 7.5 7.5 7.5h80.942c15.1 0 27.385-12.285 27.385-27.385v-291.442c0-15.1-12.285-27.386-27.385-27.386zm-173.269 404.593h-110.548l8.039-58.38h94.47zm75.208-186.168c-28.917 0-52.443-23.526-52.443-52.443s23.526-52.444 52.443-52.444 52.443 23.526 52.443 52.444-23.526 52.443-52.443 52.443zm-259.776-285.039c0-1.68 1.367-3.047 3.048-3.047h252.349c1.68 0 3.047 1.367 3.047 3.047v165.186c-36.574.715-66.111 30.669-66.111 67.41s29.537 66.695 66.111 67.41v40.61h-258.444zm273.444 340.863v-42.217c30.658-6.335 53.775-33.542 53.775-66.049s-23.118-59.714-53.775-66.05v-84.932h84.393c6.829 0 12.385 5.556 12.385 12.386v246.862z"}),React.createElement("path",{d:"m394.221 246.215c-4.215-1.49-10.156-1.779-12.221-5.464-.154-.191-.159-1.161.199-2.321.211-.685.763-1.893 2.083-2.291 1.891-.57 4.118-.173 6.035.466 2.912.971 6.118-.031 8.046-2.418.044-.054.087-.107.13-.162 3.168-3.921 1.627-9.835-3.085-11.626-.542-.206-1.099-.395-1.671-.567v-2.359c0-4.142-3.357-7.5-7.5-7.5s-7.5 3.358-7.5 7.5v2.722c-5.865 2.243-10.182 7.478-11.399 13.944-1.211 6.425.935 12.69 5.601 16.349 4.315 3.385 10.376 5.783 16.283 7.872 2.59.915 3.688 2.655 3.266 5.17-.332 1.975-2.032 5.324-6.3 5.352-4.606.03-5.695-.139-9.043-2.329-3.712-2.427-8.775-1.144-10.826 2.94-1.733 3.451-.383 7.68 2.861 9.774 3.572 2.307 6.456 3.498 9.557 4.088v3.177c0 4.142 3.357 7.5 7.5 7.5s7.5-3.358 7.5-7.5v-4.032c6.961-2.626 12.247-8.778 13.543-16.485 1.631-9.702-3.617-18.462-13.059-21.8z"})))),Fr=Sr.name,Ar=Sr.category,Tr=Sr.attributes,Br={title:Object(f.__)("WL : Product Curvy","woolentor"),description:Object(f.__)("Product Curvy.","woolentor"),icon:React.createElement(m.Icon,{icon:Pr}),keywords:[Object(f.__)("WooLentor","woolentor"),Object(f.__)("product","woolentor"),Object(f.__)("curvy","woolentor"),Object(f.__)("woocommerce","woolentor"),Object(f.__)("display product","woolentor")],example:{attributes:{columns:{desktop:"2"},perPage:"2"}},supports:{align:["wide","full"]},attributes:Tr,edit:kr,save:function(){return null}};function xr(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 zr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Dr=function(e){if(e){var t=e.name;if(t=t.replace("woolentor/",""),-1!=woolentorData.options.indexOf(t)){var n=e.name,o=e.category,r=e.settings;Object(d.registerBlockType)(n,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xr(Object(n),!0).forEach((function(t){zr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({category:o},r))}}},Mr=function(){[o,r,a,l,i,c,s,u,p].forEach(Dr)};Mr()}]);
1
+ (()=>{var e={184:(e,t)=>{var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var a=typeof o;if("string"===a||"number"===a)e.push(o);else if(Array.isArray(o)){if(o.length){var l=r.apply(null,o);l&&e.push(l)}}else if("object"===a)if(o.toString===Object.prototype.toString)for(var i in o)n.call(o,i)&&o[i]&&e.push(i);else e.push(o.toString())}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},988:(e,t,o)=>{var n=o(755),r=o(665).each;function a(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var o=this;this.listener=function(e){o.mql=e.currentTarget||e,o.assess()},this.mql.addListener(this.listener)}a.prototype={constuctor:a,addHandler:function(e){var t=new n(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;r(t,(function(o,n){if(o.equals(e))return o.destroy(),!t.splice(n,1)}))},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){r(this.handlers,(function(e){e.destroy()})),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";r(this.handlers,(function(t){t[e]()}))}},e.exports=a},177:(e,t,o)=>{var n=o(988),r=o(665),a=r.each,l=r.isFunction,i=r.isArray;function c(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}c.prototype={constructor:c,register:function(e,t,o){var r=this.queries,c=o&&this.browserIsIncapable;return r[e]||(r[e]=new n(e,c)),l(t)&&(t={match:t}),i(t)||(t=[t]),a(t,(function(t){l(t)&&(t={match:t}),r[e].addHandler(t)})),this},unregister:function(e,t){var o=this.queries[e];return o&&(t?o.removeHandler(t):(o.clear(),delete this.queries[e])),this}},e.exports=c},755:e=>{function t(e){this.options=e,!e.deferSetup&&this.setup()}t.prototype={constructor:t,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=t},665:e=>{e.exports={isFunction:function(e){return"function"==typeof e},isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},each:function(e,t){for(var o=0,n=e.length;o<n&&!1!==t(e[o],o);o++);}}},974:(e,t,o)=>{var n=o(177);e.exports=new n},679:(e,t,o)=>{"use strict";var n=o(864),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},l={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function c(e){return n.isMemo(e)?l:i[e.$$typeof]||r}i[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[n.Memo]=l;var s=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,m=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,o,n){if("string"!=typeof o){if(f){var r=p(o);r&&r!==f&&e(t,r,n)}var l=u(o);d&&(l=l.concat(d(o)));for(var i=c(t),b=c(o),g=0;g<l.length;++g){var y=l[g];if(!(a[y]||n&&n[y]||b&&b[y]||i&&i[y])){var h=m(o,y);try{s(t,y,h)}catch(e){}}}}return t}},973:(e,t,o)=>{var n=o(169),r=function(e){var t="",o=Object.keys(e);return o.forEach((function(r,a){var l=e[r];(function(e){return/[height|width]$/.test(e)})(r=n(r))&&"number"==typeof l&&(l+="px"),t+=!0===l?r:!1===l?"not "+r:"("+r+": "+l+")",a<o.length-1&&(t+=" and ")})),t};e.exports=function(e){var t="";return"string"==typeof e?e:e instanceof Array?(e.forEach((function(o,n){t+=r(o),n<e.length-1&&(t+=", ")})),t):r(e)}},296:(e,t,o)=>{var n=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,i=parseInt,c="object"==typeof o.g&&o.g&&o.g.Object===Object&&o.g,s="object"==typeof self&&self&&self.Object===Object&&self,u=c||s||Function("return this")(),d=Object.prototype.toString,m=Math.max,p=Math.min,f=function(){return u.Date.now()};function b(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==d.call(e)}(e))return NaN;if(b(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=b(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var o=a.test(e);return o||l.test(e)?i(e.slice(2),o?2:8):r.test(e)?NaN:+e}e.exports=function(e,t,o){var n,r,a,l,i,c,s=0,u=!1,d=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var o=n,a=r;return n=r=void 0,s=t,l=e.apply(a,o)}function w(e){return s=e,i=setTimeout(_,t),u?h(e):l}function v(e){var o=e-c;return void 0===c||o>=t||o<0||d&&e-s>=a}function _(){var e=f();if(v(e))return E(e);i=setTimeout(_,function(e){var o=t-(e-c);return d?p(o,a-(e-s)):o}(e))}function E(e){return i=void 0,y&&n?h(e):(n=r=void 0,l)}function R(){var e=f(),o=v(e);if(n=arguments,r=this,c=e,o){if(void 0===i)return w(c);if(d)return i=setTimeout(_,t),h(c)}return void 0===i&&(i=setTimeout(_,t)),l}return t=g(t)||0,b(o)&&(u=!!o.leading,a=(d="maxWait"in o)?m(g(o.maxWait)||0,t):a,y="trailing"in o?!!o.trailing:y),R.cancel=function(){void 0!==i&&clearTimeout(i),s=0,n=c=r=i=void 0},R.flush=function(){return void 0===i?l:E(f())},R}},921:(e,t)=>{"use strict";var o="function"==typeof Symbol&&Symbol.for,n=o?Symbol.for("react.element"):60103,r=o?Symbol.for("react.portal"):60106,a=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,i=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,s=o?Symbol.for("react.context"):60110,u=o?Symbol.for("react.async_mode"):60111,d=o?Symbol.for("react.concurrent_mode"):60111,m=o?Symbol.for("react.forward_ref"):60112,p=o?Symbol.for("react.suspense"):60113,f=o?Symbol.for("react.suspense_list"):60120,b=o?Symbol.for("react.memo"):60115,g=o?Symbol.for("react.lazy"):60116,y=o?Symbol.for("react.block"):60121,h=o?Symbol.for("react.fundamental"):60117,w=o?Symbol.for("react.responder"):60118,v=o?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case u:case d:case a:case i:case l:case p:return e;default:switch(e=e&&e.$$typeof){case s:case m:case g:case b:case c:return e;default:return t}}case r:return t}}}function E(e){return _(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=s,t.ContextProvider=c,t.Element=n,t.ForwardRef=m,t.Fragment=a,t.Lazy=g,t.Memo=b,t.Portal=r,t.Profiler=i,t.StrictMode=l,t.Suspense=p,t.isAsyncMode=function(e){return E(e)||_(e)===u},t.isConcurrentMode=E,t.isContextConsumer=function(e){return _(e)===s},t.isContextProvider=function(e){return _(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return _(e)===m},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===g},t.isMemo=function(e){return _(e)===b},t.isPortal=function(e){return _(e)===r},t.isProfiler=function(e){return _(e)===i},t.isStrictMode=function(e){return _(e)===l},t.isSuspense=function(e){return _(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===i||e===l||e===p||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===b||e.$$typeof===c||e.$$typeof===s||e.$$typeof===m||e.$$typeof===h||e.$$typeof===w||e.$$typeof===v||e.$$typeof===y)},t.typeOf=_},864:(e,t,o)=>{"use strict";e.exports=o(921)},205:(e,t,o)=>{"use strict";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},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.PrevArrow=t.NextArrow=void 0;var r=i(o(196)),a=i(o(184)),l=o(518);function i(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},c.apply(this,arguments)}function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function u(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?s(Object(o),!0).forEach((function(t){d(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):s(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function d(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t,o){return t&&p(e.prototype,t),o&&p(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function b(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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var o,n=w(e);if(t){var r=w(this).constructor;o=Reflect.construct(n,arguments,r)}else o=n.apply(this,arguments);return h(this,o)}}function h(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function w(e){return w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},w(e)}var v=function(e){b(o,e);var t=y(o);function o(){return m(this,o),t.apply(this,arguments)}return f(o,[{key:"clickHandler",value:function(e,t){t&&t.preventDefault(),this.props.clickHandler(e,t)}},{key:"render",value:function(){var e={"slick-arrow":!0,"slick-prev":!0},t=this.clickHandler.bind(this,{message:"previous"});!this.props.infinite&&(0===this.props.currentSlide||this.props.slideCount<=this.props.slidesToShow)&&(e["slick-disabled"]=!0,t=null);var o={key:"0","data-role":"none",className:(0,a.default)(e),style:{display:"block"},onClick:t},n={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount};return this.props.prevArrow?r.default.cloneElement(this.props.prevArrow,u(u({},o),n)):r.default.createElement("button",c({key:"0",type:"button"},o)," ","Previous")}}]),o}(r.default.PureComponent);t.PrevArrow=v;var _=function(e){b(o,e);var t=y(o);function o(){return m(this,o),t.apply(this,arguments)}return f(o,[{key:"clickHandler",value:function(e,t){t&&t.preventDefault(),this.props.clickHandler(e,t)}},{key:"render",value:function(){var e={"slick-arrow":!0,"slick-next":!0},t=this.clickHandler.bind(this,{message:"next"});(0,l.canGoNext)(this.props)||(e["slick-disabled"]=!0,t=null);var o={key:"1","data-role":"none",className:(0,a.default)(e),style:{display:"block"},onClick:t},n={currentSlide:this.props.currentSlide,slideCount:this.props.slideCount};return this.props.nextArrow?r.default.cloneElement(this.props.nextArrow,u(u({},o),n)):r.default.createElement("button",c({key:"1",type:"button"},o)," ","Next")}}]),o}(r.default.PureComponent);t.NextArrow=_},492:(e,t,o)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,r=(n=o(196))&&n.__esModule?n:{default:n},a={accessibility:!0,adaptiveHeight:!1,afterChange:null,appendDots:function(e){return r.default.createElement("ul",{style:{display:"block"}},e)},arrows:!0,autoplay:!1,autoplaySpeed:3e3,beforeChange:null,centerMode:!1,centerPadding:"50px",className:"",cssEase:"ease",customPaging:function(e){return r.default.createElement("button",null,e+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:null,nextArrow:null,onEdge:null,onInit:null,onLazyLoadError:null,onReInit:null,pauseOnDotsHover:!1,pauseOnFocus:!1,pauseOnHover:!0,prevArrow:null,responsive:null,rows:1,rtl:!1,slide:"div",slidesPerRow:1,slidesToScroll:1,slidesToShow:1,speed:500,swipe:!0,swipeEvent:null,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,waitForAnimate:!0};t.default=a},329:(e,t,o)=>{"use strict";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},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.Dots=void 0;var r=i(o(196)),a=i(o(184)),l=o(518);function i(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function s(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function p(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}var b=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(g,e);var t,o,n,i,b=(n=g,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=f(n);if(i){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return p(this,e)});function g(){return u(this,g),b.apply(this,arguments)}return t=g,o=[{key:"clickHandler",value:function(e,t){t.preventDefault(),this.props.clickHandler(e)}},{key:"render",value:function(){for(var e,t=this.props,o=t.onMouseEnter,n=t.onMouseOver,i=t.onMouseLeave,u=t.infinite,d=t.slidesToScroll,m=t.slidesToShow,p=t.slideCount,f=t.currentSlide,b=(e={slideCount:p,slidesToScroll:d,slidesToShow:m,infinite:u}).infinite?Math.ceil(e.slideCount/e.slidesToScroll):Math.ceil((e.slideCount-e.slidesToShow)/e.slidesToScroll)+1,g={onMouseEnter:o,onMouseOver:n,onMouseLeave:i},y=[],h=0;h<b;h++){var w=(h+1)*d-1,v=u?w:(0,l.clamp)(w,0,p-1),_=v-(d-1),E=u?_:(0,l.clamp)(_,0,p-1),R=(0,a.default)({"slick-active":u?f>=E&&f<=v:f===E}),O={message:"dots",index:h,slidesToScroll:d,currentSlide:f},C=this.clickHandler.bind(this,O);y=y.concat(r.default.createElement("li",{key:h,className:R},r.default.cloneElement(this.props.customPaging(h),{onClick:C})))}return r.default.cloneElement(this.props.appendDots(y),function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?c(Object(o),!0).forEach((function(t){s(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):c(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}({className:this.props.dotsClass},g))}}],o&&d(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),g}(r.default.PureComponent);t.Dots=b},66:(e,t,o)=>{"use strict";var n;t.Z=void 0;var r=((n=o(798))&&n.__esModule?n:{default:n}).default;t.Z=r},948:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={animating:!1,autoplaying:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,dragging:!1,edgeDragged:!1,initialized:!1,lazyLoadedList:[],listHeight:null,listWidth:null,scrolling:!1,slideCount:null,slideHeight:null,slideWidth:null,swipeLeft:null,swiped:!1,swiping:!1,touchObject:{startX:0,startY:0,curX:0,curY:0},trackStyle:{},trackWidth:0,targetSlide:0}},517:(e,t,o)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InnerSlider=void 0;var n=m(o(196)),r=m(o(948)),a=m(o(296)),l=m(o(184)),i=o(518),c=o(740),s=o(329),u=o(205),d=m(o(33));function m(e){return e&&e.__esModule?e:{default:e}}function p(e){return p="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},p(e)}function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},f.apply(this,arguments)}function b(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o,n,r={},a=Object.keys(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)o=a[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}function g(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function y(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?g(Object(o),!0).forEach((function(t){R(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):g(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function h(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function w(e,t){return w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},w(e,t)}function v(e,t){if(t&&("object"===p(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function R(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var O=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}(C,e);var t,o,m,g,O=(m=C,g=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=E(m);if(g){var o=E(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return v(this,e)});function C(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,C),R(_(t=O.call(this,e)),"listRefHandler",(function(e){return t.list=e})),R(_(t),"trackRefHandler",(function(e){return t.track=e})),R(_(t),"adaptHeight",(function(){if(t.props.adaptiveHeight&&t.list){var e=t.list.querySelector('[data-index="'.concat(t.state.currentSlide,'"]'));t.list.style.height=(0,i.getHeight)(e)+"px"}})),R(_(t),"componentDidMount",(function(){if(t.props.onInit&&t.props.onInit(),t.props.lazyLoad){var e=(0,i.getOnDemandLazySlides)(y(y({},t.props),t.state));e.length>0&&(t.setState((function(t){return{lazyLoadedList:t.lazyLoadedList.concat(e)}})),t.props.onLazyLoad&&t.props.onLazyLoad(e))}var o=y({listRef:t.list,trackRef:t.track},t.props);t.updateState(o,!0,(function(){t.adaptHeight(),t.props.autoplay&&t.autoPlay("update")})),"progressive"===t.props.lazyLoad&&(t.lazyLoadTimer=setInterval(t.progressiveLazyLoad,1e3)),t.ro=new d.default((function(){t.state.animating?(t.onWindowResized(!1),t.callbackTimers.push(setTimeout((function(){return t.onWindowResized()}),t.props.speed))):t.onWindowResized()})),t.ro.observe(t.list),document.querySelectorAll&&Array.prototype.forEach.call(document.querySelectorAll(".slick-slide"),(function(e){e.onfocus=t.props.pauseOnFocus?t.onSlideFocus:null,e.onblur=t.props.pauseOnFocus?t.onSlideBlur:null})),window.addEventListener?window.addEventListener("resize",t.onWindowResized):window.attachEvent("onresize",t.onWindowResized)})),R(_(t),"componentWillUnmount",(function(){t.animationEndCallback&&clearTimeout(t.animationEndCallback),t.lazyLoadTimer&&clearInterval(t.lazyLoadTimer),t.callbackTimers.length&&(t.callbackTimers.forEach((function(e){return clearTimeout(e)})),t.callbackTimers=[]),window.addEventListener?window.removeEventListener("resize",t.onWindowResized):window.detachEvent("onresize",t.onWindowResized),t.autoplayTimer&&clearInterval(t.autoplayTimer),t.ro.disconnect()})),R(_(t),"componentDidUpdate",(function(e){if(t.checkImagesLoad(),t.props.onReInit&&t.props.onReInit(),t.props.lazyLoad){var o=(0,i.getOnDemandLazySlides)(y(y({},t.props),t.state));o.length>0&&(t.setState((function(e){return{lazyLoadedList:e.lazyLoadedList.concat(o)}})),t.props.onLazyLoad&&t.props.onLazyLoad(o))}t.adaptHeight();var r=y(y({listRef:t.list,trackRef:t.track},t.props),t.state),a=t.didPropsChange(e);a&&t.updateState(r,a,(function(){t.state.currentSlide>=n.default.Children.count(t.props.children)&&t.changeSlide({message:"index",index:n.default.Children.count(t.props.children)-t.props.slidesToShow,currentSlide:t.state.currentSlide}),t.props.autoplay?t.autoPlay("update"):t.pause("paused")}))})),R(_(t),"onWindowResized",(function(e){t.debouncedResize&&t.debouncedResize.cancel(),t.debouncedResize=(0,a.default)((function(){return t.resizeWindow(e)}),50),t.debouncedResize()})),R(_(t),"resizeWindow",(function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],o=Boolean(t.track&&t.track.node);if(o){var n=y(y({listRef:t.list,trackRef:t.track},t.props),t.state);t.updateState(n,e,(function(){t.props.autoplay?t.autoPlay("update"):t.pause("paused")})),t.setState({animating:!1}),clearTimeout(t.animationEndCallback),delete t.animationEndCallback}})),R(_(t),"updateState",(function(e,o,r){var a=(0,i.initializedState)(e);e=y(y(y({},e),a),{},{slideIndex:a.currentSlide});var l=(0,i.getTrackLeft)(e);e=y(y({},e),{},{left:l});var c=(0,i.getTrackCSS)(e);(o||n.default.Children.count(t.props.children)!==n.default.Children.count(e.children))&&(a.trackStyle=c),t.setState(a,r)})),R(_(t),"ssrInit",(function(){if(t.props.variableWidth){var e=0,o=0,r=[],a=(0,i.getPreClones)(y(y(y({},t.props),t.state),{},{slideCount:t.props.children.length})),l=(0,i.getPostClones)(y(y(y({},t.props),t.state),{},{slideCount:t.props.children.length}));t.props.children.forEach((function(t){r.push(t.props.style.width),e+=t.props.style.width}));for(var c=0;c<a;c++)o+=r[r.length-1-c],e+=r[r.length-1-c];for(var s=0;s<l;s++)e+=r[s];for(var u=0;u<t.state.currentSlide;u++)o+=r[u];var d={width:e+"px",left:-o+"px"};if(t.props.centerMode){var m="".concat(r[t.state.currentSlide],"px");d.left="calc(".concat(d.left," + (100% - ").concat(m,") / 2 ) ")}return{trackStyle:d}}var p=n.default.Children.count(t.props.children),f=y(y(y({},t.props),t.state),{},{slideCount:p}),b=(0,i.getPreClones)(f)+(0,i.getPostClones)(f)+p,g=100/t.props.slidesToShow*b,h=100/b,w=-h*((0,i.getPreClones)(f)+t.state.currentSlide)*g/100;return t.props.centerMode&&(w+=(100-h*g/100)/2),{slideWidth:h+"%",trackStyle:{width:g+"%",left:w+"%"}}})),R(_(t),"checkImagesLoad",(function(){var e=t.list&&t.list.querySelectorAll&&t.list.querySelectorAll(".slick-slide img")||[],o=e.length,n=0;Array.prototype.forEach.call(e,(function(e){var r=function(){return++n&&n>=o&&t.onWindowResized()};if(e.onclick){var a=e.onclick;e.onclick=function(){a(),e.parentNode.focus()}}else e.onclick=function(){return e.parentNode.focus()};e.onload||(t.props.lazyLoad?e.onload=function(){t.adaptHeight(),t.callbackTimers.push(setTimeout(t.onWindowResized,t.props.speed))}:(e.onload=r,e.onerror=function(){r(),t.props.onLazyLoadError&&t.props.onLazyLoadError()}))}))})),R(_(t),"progressiveLazyLoad",(function(){for(var e=[],o=y(y({},t.props),t.state),n=t.state.currentSlide;n<t.state.slideCount+(0,i.getPostClones)(o);n++)if(t.state.lazyLoadedList.indexOf(n)<0){e.push(n);break}for(var r=t.state.currentSlide-1;r>=-(0,i.getPreClones)(o);r--)if(t.state.lazyLoadedList.indexOf(r)<0){e.push(r);break}e.length>0?(t.setState((function(t){return{lazyLoadedList:t.lazyLoadedList.concat(e)}})),t.props.onLazyLoad&&t.props.onLazyLoad(e)):t.lazyLoadTimer&&(clearInterval(t.lazyLoadTimer),delete t.lazyLoadTimer)})),R(_(t),"slideHandler",(function(e){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.props,r=n.asNavFor,a=n.beforeChange,l=n.onLazyLoad,c=n.speed,s=n.afterChange,u=t.state.currentSlide,d=(0,i.slideHandler)(y(y(y({index:e},t.props),t.state),{},{trackRef:t.track,useCSS:t.props.useCSS&&!o})),m=d.state,p=d.nextState;if(m){a&&a(u,m.currentSlide);var f=m.lazyLoadedList.filter((function(e){return t.state.lazyLoadedList.indexOf(e)<0}));l&&f.length>0&&l(f),!t.props.waitForAnimate&&t.animationEndCallback&&(clearTimeout(t.animationEndCallback),s&&s(u),delete t.animationEndCallback),t.setState(m,(function(){r&&t.asNavForIndex!==e&&(t.asNavForIndex=e,r.innerSlider.slideHandler(e)),p&&(t.animationEndCallback=setTimeout((function(){var e=p.animating,o=b(p,["animating"]);t.setState(o,(function(){t.callbackTimers.push(setTimeout((function(){return t.setState({animating:e})}),10)),s&&s(m.currentSlide),delete t.animationEndCallback}))}),c))}))}})),R(_(t),"changeSlide",(function(e){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=y(y({},t.props),t.state),r=(0,i.changeSlide)(n,e);if((0===r||r)&&(!0===o?t.slideHandler(r,o):t.slideHandler(r),t.props.autoplay&&t.autoPlay("update"),t.props.focusOnSelect)){var a=t.list.querySelectorAll(".slick-current");a[0]&&a[0].focus()}})),R(_(t),"clickHandler",(function(e){!1===t.clickable&&(e.stopPropagation(),e.preventDefault()),t.clickable=!0})),R(_(t),"keyHandler",(function(e){var o=(0,i.keyHandler)(e,t.props.accessibility,t.props.rtl);""!==o&&t.changeSlide({message:o})})),R(_(t),"selectHandler",(function(e){t.changeSlide(e)})),R(_(t),"disableBodyScroll",(function(){window.ontouchmove=function(e){(e=e||window.event).preventDefault&&e.preventDefault(),e.returnValue=!1}})),R(_(t),"enableBodyScroll",(function(){window.ontouchmove=null})),R(_(t),"swipeStart",(function(e){t.props.verticalSwiping&&t.disableBodyScroll();var o=(0,i.swipeStart)(e,t.props.swipe,t.props.draggable);""!==o&&t.setState(o)})),R(_(t),"swipeMove",(function(e){var o=(0,i.swipeMove)(e,y(y(y({},t.props),t.state),{},{trackRef:t.track,listRef:t.list,slideIndex:t.state.currentSlide}));o&&(o.swiping&&(t.clickable=!1),t.setState(o))})),R(_(t),"swipeEnd",(function(e){var o=(0,i.swipeEnd)(e,y(y(y({},t.props),t.state),{},{trackRef:t.track,listRef:t.list,slideIndex:t.state.currentSlide}));if(o){var n=o.triggerSlideHandler;delete o.triggerSlideHandler,t.setState(o),void 0!==n&&(t.slideHandler(n),t.props.verticalSwiping&&t.enableBodyScroll())}})),R(_(t),"touchEnd",(function(e){t.swipeEnd(e),t.clickable=!0})),R(_(t),"slickPrev",(function(){t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"previous"})}),0))})),R(_(t),"slickNext",(function(){t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"next"})}),0))})),R(_(t),"slickGoTo",(function(e){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e=Number(e),isNaN(e))return"";t.callbackTimers.push(setTimeout((function(){return t.changeSlide({message:"index",index:e,currentSlide:t.state.currentSlide},o)}),0))})),R(_(t),"play",(function(){var e;if(t.props.rtl)e=t.state.currentSlide-t.props.slidesToScroll;else{if(!(0,i.canGoNext)(y(y({},t.props),t.state)))return!1;e=t.state.currentSlide+t.props.slidesToScroll}t.slideHandler(e)})),R(_(t),"autoPlay",(function(e){t.autoplayTimer&&clearInterval(t.autoplayTimer);var o=t.state.autoplaying;if("update"===e){if("hovered"===o||"focused"===o||"paused"===o)return}else if("leave"===e){if("paused"===o||"focused"===o)return}else if("blur"===e&&("paused"===o||"hovered"===o))return;t.autoplayTimer=setInterval(t.play,t.props.autoplaySpeed+50),t.setState({autoplaying:"playing"})})),R(_(t),"pause",(function(e){t.autoplayTimer&&(clearInterval(t.autoplayTimer),t.autoplayTimer=null);var o=t.state.autoplaying;"paused"===e?t.setState({autoplaying:"paused"}):"focused"===e?"hovered"!==o&&"playing"!==o||t.setState({autoplaying:"focused"}):"playing"===o&&t.setState({autoplaying:"hovered"})})),R(_(t),"onDotsOver",(function(){return t.props.autoplay&&t.pause("hovered")})),R(_(t),"onDotsLeave",(function(){return t.props.autoplay&&"hovered"===t.state.autoplaying&&t.autoPlay("leave")})),R(_(t),"onTrackOver",(function(){return t.props.autoplay&&t.pause("hovered")})),R(_(t),"onTrackLeave",(function(){return t.props.autoplay&&"hovered"===t.state.autoplaying&&t.autoPlay("leave")})),R(_(t),"onSlideFocus",(function(){return t.props.autoplay&&t.pause("focused")})),R(_(t),"onSlideBlur",(function(){return t.props.autoplay&&"focused"===t.state.autoplaying&&t.autoPlay("blur")})),R(_(t),"render",(function(){var e,o,r,a=(0,l.default)("slick-slider",t.props.className,{"slick-vertical":t.props.vertical,"slick-initialized":!0}),d=y(y({},t.props),t.state),m=(0,i.extractObject)(d,["fade","cssEase","speed","infinite","centerMode","focusOnSelect","currentSlide","lazyLoad","lazyLoadedList","rtl","slideWidth","slideHeight","listHeight","vertical","slidesToShow","slidesToScroll","slideCount","trackStyle","variableWidth","unslick","centerPadding","targetSlide","useCSS"]),p=t.props.pauseOnHover;if(m=y(y({},m),{},{onMouseEnter:p?t.onTrackOver:null,onMouseLeave:p?t.onTrackLeave:null,onMouseOver:p?t.onTrackOver:null,focusOnSelect:t.props.focusOnSelect&&t.clickable?t.selectHandler:null}),!0===t.props.dots&&t.state.slideCount>=t.props.slidesToShow){var b=(0,i.extractObject)(d,["dotsClass","slideCount","slidesToShow","currentSlide","slidesToScroll","clickHandler","children","customPaging","infinite","appendDots"]),g=t.props.pauseOnDotsHover;b=y(y({},b),{},{clickHandler:t.changeSlide,onMouseEnter:g?t.onDotsLeave:null,onMouseOver:g?t.onDotsOver:null,onMouseLeave:g?t.onDotsLeave:null}),e=n.default.createElement(s.Dots,b)}var h=(0,i.extractObject)(d,["infinite","centerMode","currentSlide","slideCount","slidesToShow","prevArrow","nextArrow"]);h.clickHandler=t.changeSlide,t.props.arrows&&(o=n.default.createElement(u.PrevArrow,h),r=n.default.createElement(u.NextArrow,h));var w=null;t.props.vertical&&(w={height:t.state.listHeight});var v=null;!1===t.props.vertical?!0===t.props.centerMode&&(v={padding:"0px "+t.props.centerPadding}):!0===t.props.centerMode&&(v={padding:t.props.centerPadding+" 0px"});var _=y(y({},w),v),E=t.props.touchMove,R={className:"slick-list",style:_,onClick:t.clickHandler,onMouseDown:E?t.swipeStart:null,onMouseMove:t.state.dragging&&E?t.swipeMove:null,onMouseUp:E?t.swipeEnd:null,onMouseLeave:t.state.dragging&&E?t.swipeEnd:null,onTouchStart:E?t.swipeStart:null,onTouchMove:t.state.dragging&&E?t.swipeMove:null,onTouchEnd:E?t.touchEnd:null,onTouchCancel:t.state.dragging&&E?t.swipeEnd:null,onKeyDown:t.props.accessibility?t.keyHandler:null},O={className:a,dir:"ltr",style:t.props.style};return t.props.unslick&&(R={className:"slick-list"},O={className:a}),n.default.createElement("div",O,t.props.unslick?"":o,n.default.createElement("div",f({ref:t.listRefHandler},R),n.default.createElement(c.Track,f({ref:t.trackRefHandler},m),t.props.children)),t.props.unslick?"":r,t.props.unslick?"":e)})),t.list=null,t.track=null,t.state=y(y({},r.default),{},{currentSlide:t.props.initialSlide,slideCount:n.default.Children.count(t.props.children)}),t.callbackTimers=[],t.clickable=!0,t.debouncedResize=null;var o=t.ssrInit();return t.state=y(y({},t.state),o),t}return t=C,(o=[{key:"didPropsChange",value:function(e){for(var t=!1,o=0,r=Object.keys(this.props);o<r.length;o++){var a=r[o];if(!e.hasOwnProperty(a)){t=!0;break}if("object"!==p(e[a])&&"function"!=typeof e[a]&&e[a]!==this.props[a]){t=!0;break}}return t||n.default.Children.count(this.props.children)!==n.default.Children.count(e.children)}}])&&h(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),C}(n.default.Component);t.InnerSlider=O},798:(e,t,o)=>{"use strict";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},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(o(196)),a=o(517),l=s(o(973)),i=s(o(492)),c=o(518);function s(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},u.apply(this,arguments)}function d(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function m(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?d(Object(o),!0).forEach((function(t){h(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):d(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function p(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function b(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return g(e)}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function h(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var w=(0,c.canUseDOM)()&&o(974),v=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}(v,e);var t,o,n,s,d=(n=v,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=y(n);if(s){var o=y(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return b(this,e)});function v(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,v),h(g(t=d.call(this,e)),"innerSliderRefHandler",(function(e){return t.innerSlider=e})),h(g(t),"slickPrev",(function(){return t.innerSlider.slickPrev()})),h(g(t),"slickNext",(function(){return t.innerSlider.slickNext()})),h(g(t),"slickGoTo",(function(e){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.innerSlider.slickGoTo(e,o)})),h(g(t),"slickPause",(function(){return t.innerSlider.pause("paused")})),h(g(t),"slickPlay",(function(){return t.innerSlider.autoPlay("play")})),t.state={breakpoint:null},t._responsiveMediaHandlers=[],t}return t=v,(o=[{key:"media",value:function(e,t){w.register(e,t),this._responsiveMediaHandlers.push({query:e,handler:t})}},{key:"componentDidMount",value:function(){var e=this;if(this.props.responsive){var t=this.props.responsive.map((function(e){return e.breakpoint}));t.sort((function(e,t){return e-t})),t.forEach((function(o,n){var r;r=0===n?(0,l.default)({minWidth:0,maxWidth:o}):(0,l.default)({minWidth:t[n-1]+1,maxWidth:o}),(0,c.canUseDOM)()&&e.media(r,(function(){e.setState({breakpoint:o})}))}));var o=(0,l.default)({minWidth:t.slice(-1)[0]});(0,c.canUseDOM)()&&this.media(o,(function(){e.setState({breakpoint:null})}))}}},{key:"componentWillUnmount",value:function(){this._responsiveMediaHandlers.forEach((function(e){w.unregister(e.query,e.handler)}))}},{key:"render",value:function(){var e,t,o=this;(e=this.state.breakpoint?"unslick"===(t=this.props.responsive.filter((function(e){return e.breakpoint===o.state.breakpoint})))[0].settings?"unslick":m(m(m({},i.default),this.props),t[0].settings):m(m({},i.default),this.props)).centerMode&&(e.slidesToScroll,e.slidesToScroll=1),e.fade&&(e.slidesToShow,e.slidesToScroll,e.slidesToShow=1,e.slidesToScroll=1);var n=r.default.Children.toArray(this.props.children);n=n.filter((function(e){return"string"==typeof e?!!e.trim():!!e})),e.variableWidth&&(e.rows>1||e.slidesPerRow>1)&&(console.warn("variableWidth is not supported in case of rows > 1 or slidesPerRow > 1"),e.variableWidth=!1);for(var l=[],c=null,s=0;s<n.length;s+=e.rows*e.slidesPerRow){for(var d=[],p=s;p<s+e.rows*e.slidesPerRow;p+=e.slidesPerRow){for(var f=[],b=p;b<p+e.slidesPerRow&&(e.variableWidth&&n[b].props.style&&(c=n[b].props.style.width),!(b>=n.length));b+=1)f.push(r.default.cloneElement(n[b],{key:100*s+10*p+b,tabIndex:-1,style:{width:"".concat(100/e.slidesPerRow,"%"),display:"inline-block"}}));d.push(r.default.createElement("div",{key:10*s+p},f))}e.variableWidth?l.push(r.default.createElement("div",{key:s,style:{width:c}},d)):l.push(r.default.createElement("div",{key:s},d))}if("unslick"===e){var g="regular slider "+(this.props.className||"");return r.default.createElement("div",{className:g},n)}return l.length<=e.slidesToShow&&(e.unslick=!0),r.default.createElement(a.InnerSlider,u({style:this.props.style,ref:this.innerSliderRefHandler},e),l)}}])&&p(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),v}(r.default.Component);t.default=v},740:(e,t,o)=>{"use strict";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},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.Track=void 0;var r=i(o(196)),a=i(o(184)),l=o(518);function i(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},c.apply(this,arguments)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function m(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function b(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function g(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?b(Object(o),!0).forEach((function(t){y(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):b(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function y(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var h=function(e){var t,o,n,r,a;return n=(a=e.rtl?e.slideCount-1-e.index:e.index)<0||a>=e.slideCount,e.centerMode?(r=Math.floor(e.slidesToShow/2),o=(a-e.currentSlide)%e.slideCount==0,a>e.currentSlide-r-1&&a<=e.currentSlide+r&&(t=!0)):t=e.currentSlide<=a&&a<e.currentSlide+e.slidesToShow,{"slick-slide":!0,"slick-active":t,"slick-center":o,"slick-cloned":n,"slick-current":a===(e.targetSlide<0?e.targetSlide+e.slideCount:e.targetSlide>=e.slideCount?e.targetSlide-e.slideCount:e.targetSlide)}},w=function(e,t){return e.key||t},v=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(v,e);var t,o,n,i,b=(n=v,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=f(n);if(i){var o=f(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return m(this,e)});function v(){var e;s(this,v);for(var t=arguments.length,o=new Array(t),n=0;n<t;n++)o[n]=arguments[n];return y(p(e=b.call.apply(b,[this].concat(o))),"node",null),y(p(e),"handleRef",(function(t){e.node=t})),e}return t=v,(o=[{key:"render",value:function(){var e=function(e){var t,o=[],n=[],i=[],c=r.default.Children.count(e.children),s=(0,l.lazyStartIndex)(e),u=(0,l.lazyEndIndex)(e);return r.default.Children.forEach(e.children,(function(d,m){var p,f={message:"children",index:m,slidesToScroll:e.slidesToScroll,currentSlide:e.currentSlide};p=!e.lazyLoad||e.lazyLoad&&e.lazyLoadedList.indexOf(m)>=0?d:r.default.createElement("div",null);var b=function(e){var t={};return void 0!==e.variableWidth&&!1!==e.variableWidth||(t.width=e.slideWidth),e.fade&&(t.position="relative",e.vertical?t.top=-e.index*parseInt(e.slideHeight):t.left=-e.index*parseInt(e.slideWidth),t.opacity=e.currentSlide===e.index?1:0,e.useCSS&&(t.transition="opacity "+e.speed+"ms "+e.cssEase+", visibility "+e.speed+"ms "+e.cssEase)),t}(g(g({},e),{},{index:m})),y=p.props.className||"",v=h(g(g({},e),{},{index:m}));if(o.push(r.default.cloneElement(p,{key:"original"+w(p,m),"data-index":m,className:(0,a.default)(v,y),tabIndex:"-1","aria-hidden":!v["slick-active"],style:g(g({outline:"none"},p.props.style||{}),b),onClick:function(t){p.props&&p.props.onClick&&p.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(f)}})),e.infinite&&!1===e.fade){var _=c-m;_<=(0,l.getPreClones)(e)&&c!==e.slidesToShow&&((t=-_)>=s&&(p=d),v=h(g(g({},e),{},{index:t})),n.push(r.default.cloneElement(p,{key:"precloned"+w(p,t),"data-index":t,tabIndex:"-1",className:(0,a.default)(v,y),"aria-hidden":!v["slick-active"],style:g(g({},p.props.style||{}),b),onClick:function(t){p.props&&p.props.onClick&&p.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(f)}}))),c!==e.slidesToShow&&((t=c+m)<u&&(p=d),v=h(g(g({},e),{},{index:t})),i.push(r.default.cloneElement(p,{key:"postcloned"+w(p,t),"data-index":t,tabIndex:"-1",className:(0,a.default)(v,y),"aria-hidden":!v["slick-active"],style:g(g({},p.props.style||{}),b),onClick:function(t){p.props&&p.props.onClick&&p.props.onClick(t),e.focusOnSelect&&e.focusOnSelect(f)}})))}})),e.rtl?n.concat(o,i).reverse():n.concat(o,i)}(this.props),t=this.props,o={onMouseEnter:t.onMouseEnter,onMouseOver:t.onMouseOver,onMouseLeave:t.onMouseLeave};return r.default.createElement("div",c({ref:this.handleRef,className:"slick-track",style:this.props.trackStyle},o),e)}}])&&u(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),v}(r.default.PureComponent);t.Track=v},518:(e,t,o)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkSpecKeys=t.checkNavigable=t.changeSlide=t.canUseDOM=t.canGoNext=void 0,t.clamp=c,t.swipeStart=t.swipeMove=t.swipeEnd=t.slidesOnRight=t.slidesOnLeft=t.slideHandler=t.siblingDirection=t.safePreventDefault=t.lazyStartIndex=t.lazySlidesOnRight=t.lazySlidesOnLeft=t.lazyEndIndex=t.keyHandler=t.initializedState=t.getWidth=t.getTrackLeft=t.getTrackCSS=t.getTrackAnimateCSS=t.getTotalSlides=t.getSwipeDirection=t.getSlideCount=t.getRequiredLazySlides=t.getPreClones=t.getPostClones=t.getOnDemandLazySlides=t.getNavigableIndexes=t.getHeight=t.extractObject=void 0;var n,r=(n=o(196))&&n.__esModule?n:{default:n};function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function l(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){i(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function c(e,t,o){return Math.max(t,Math.min(e,o))}var s=function(e){["onTouchStart","onTouchMove","onWheel"].includes(e._reactName)||e.preventDefault()};t.safePreventDefault=s;var u=function(e){for(var t=[],o=d(e),n=m(e),r=o;r<n;r++)e.lazyLoadedList.indexOf(r)<0&&t.push(r);return t};t.getOnDemandLazySlides=u,t.getRequiredLazySlides=function(e){for(var t=[],o=d(e),n=m(e),r=o;r<n;r++)t.push(r);return t};var d=function(e){return e.currentSlide-p(e)};t.lazyStartIndex=d;var m=function(e){return e.currentSlide+f(e)};t.lazyEndIndex=m;var p=function(e){return e.centerMode?Math.floor(e.slidesToShow/2)+(parseInt(e.centerPadding)>0?1:0):0};t.lazySlidesOnLeft=p;var f=function(e){return e.centerMode?Math.floor((e.slidesToShow-1)/2)+1+(parseInt(e.centerPadding)>0?1:0):e.slidesToShow};t.lazySlidesOnRight=f;var b=function(e){return e&&e.offsetWidth||0};t.getWidth=b;var g=function(e){return e&&e.offsetHeight||0};t.getHeight=g;var y=function(e){var t,o,n,r,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t=e.startX-e.curX,o=e.startY-e.curY,n=Math.atan2(o,t),(r=Math.round(180*n/Math.PI))<0&&(r=360-Math.abs(r)),r<=45&&r>=0||r<=360&&r>=315?"left":r>=135&&r<=225?"right":!0===a?r>=35&&r<=135?"up":"down":"vertical"};t.getSwipeDirection=y;var h=function(e){var t=!0;return e.infinite||(e.centerMode&&e.currentSlide>=e.slideCount-1||e.slideCount<=e.slidesToShow||e.currentSlide>=e.slideCount-e.slidesToShow)&&(t=!1),t};t.canGoNext=h,t.extractObject=function(e,t){var o={};return t.forEach((function(t){return o[t]=e[t]})),o},t.initializedState=function(e){var t,o=r.default.Children.count(e.children),n=e.listRef,a=Math.ceil(b(n)),i=e.trackRef&&e.trackRef.node,c=Math.ceil(b(i));if(e.vertical)t=a;else{var s=e.centerMode&&2*parseInt(e.centerPadding);"string"==typeof e.centerPadding&&"%"===e.centerPadding.slice(-1)&&(s*=a/100),t=Math.ceil((a-s)/e.slidesToShow)}var d=n&&g(n.querySelector('[data-index="0"]')),m=d*e.slidesToShow,p=void 0===e.currentSlide?e.initialSlide:e.currentSlide;e.rtl&&void 0===e.currentSlide&&(p=o-1-e.initialSlide);var f=e.lazyLoadedList||[],y=u(l(l({},e),{},{currentSlide:p,lazyLoadedList:f})),h={slideCount:o,slideWidth:t,listWidth:a,trackWidth:c,currentSlide:p,slideHeight:d,listHeight:m,lazyLoadedList:f=f.concat(y)};return null===e.autoplaying&&e.autoplay&&(h.autoplaying="playing"),h},t.slideHandler=function(e){var t=e.waitForAnimate,o=e.animating,n=e.fade,r=e.infinite,a=e.index,i=e.slideCount,s=e.lazyLoad,d=e.currentSlide,m=e.centerMode,p=e.slidesToScroll,f=e.slidesToShow,b=e.useCSS,g=e.lazyLoadedList;if(t&&o)return{};var y,w,v,_=a,E={},S={},P=r?a:c(a,0,i-1);if(n){if(!r&&(a<0||a>=i))return{};a<0?_=a+i:a>=i&&(_=a-i),s&&g.indexOf(_)<0&&(g=g.concat(_)),E={animating:!0,currentSlide:_,lazyLoadedList:g,targetSlide:_},S={animating:!1,targetSlide:_}}else y=_,_<0?(y=_+i,r?i%p!=0&&(y=i-i%p):y=0):!h(e)&&_>d?_=y=d:m&&_>=i?(_=r?i:i-1,y=r?0:i-1):_>=i&&(y=_-i,r?i%p!=0&&(y=0):y=i-f),!r&&_+f>=i&&(y=i-f),w=C(l(l({},e),{},{slideIndex:_})),v=C(l(l({},e),{},{slideIndex:y})),r||(w===v&&(_=y),w=v),s&&(g=g.concat(u(l(l({},e),{},{currentSlide:_})))),b?(E={animating:!0,currentSlide:y,trackStyle:O(l(l({},e),{},{left:w})),lazyLoadedList:g,targetSlide:P},S={animating:!1,currentSlide:y,trackStyle:R(l(l({},e),{},{left:v})),swipeLeft:null,targetSlide:P}):E={currentSlide:y,trackStyle:R(l(l({},e),{},{left:v})),lazyLoadedList:g,targetSlide:P};return{state:E,nextState:S}},t.changeSlide=function(e,t){var o,n,r,a,i=e.slidesToScroll,c=e.slidesToShow,s=e.slideCount,u=e.currentSlide,d=e.targetSlide,m=e.lazyLoad,p=e.infinite;if(o=s%i!=0?0:(s-u)%i,"previous"===t.message)a=u-(r=0===o?i:c-o),m&&!p&&(a=-1==(n=u-r)?s-1:n),p||(a=d-i);else if("next"===t.message)a=u+(r=0===o?i:o),m&&!p&&(a=(u+i)%s+o),p||(a=d+i);else if("dots"===t.message)a=t.index*t.slidesToScroll;else if("children"===t.message){if(a=t.index,p){var f=k(l(l({},e),{},{targetSlide:a}));a>t.currentSlide&&"left"===f?a-=s:a<t.currentSlide&&"right"===f&&(a+=s)}}else"index"===t.message&&(a=Number(t.index));return a},t.keyHandler=function(e,t,o){return e.target.tagName.match("TEXTAREA|INPUT|SELECT")||!t?"":37===e.keyCode?o?"next":"previous":39===e.keyCode?o?"previous":"next":""},t.swipeStart=function(e,t,o){return"IMG"===e.target.tagName&&s(e),!t||!o&&-1!==e.type.indexOf("mouse")?"":{dragging:!0,touchObject:{startX:e.touches?e.touches[0].pageX:e.clientX,startY:e.touches?e.touches[0].pageY:e.clientY,curX:e.touches?e.touches[0].pageX:e.clientX,curY:e.touches?e.touches[0].pageY:e.clientY}}},t.swipeMove=function(e,t){var o=t.scrolling,n=t.animating,r=t.vertical,a=t.swipeToSlide,i=t.verticalSwiping,c=t.rtl,u=t.currentSlide,d=t.edgeFriction,m=t.edgeDragged,p=t.onEdge,f=t.swiped,b=t.swiping,g=t.slideCount,w=t.slidesToScroll,v=t.infinite,_=t.touchObject,E=t.swipeEvent,O=t.listHeight,S=t.listWidth;if(!o){if(n)return s(e);r&&a&&i&&s(e);var P,B={},k=C(t);_.curX=e.touches?e.touches[0].pageX:e.clientX,_.curY=e.touches?e.touches[0].pageY:e.clientY,_.swipeLength=Math.round(Math.sqrt(Math.pow(_.curX-_.startX,2)));var N=Math.round(Math.sqrt(Math.pow(_.curY-_.startY,2)));if(!i&&!b&&N>10)return{scrolling:!0};i&&(_.swipeLength=N);var L=(c?-1:1)*(_.curX>_.startX?1:-1);i&&(L=_.curY>_.startY?1:-1);var j=Math.ceil(g/w),x=y(t.touchObject,i),z=_.swipeLength;return v||(0===u&&("right"===x||"down"===x)||u+1>=j&&("left"===x||"up"===x)||!h(t)&&("left"===x||"up"===x))&&(z=_.swipeLength*d,!1===m&&p&&(p(x),B.edgeDragged=!0)),!f&&E&&(E(x),B.swiped=!0),P=r?k+z*(O/S)*L:c?k-z*L:k+z*L,i&&(P=k+z*L),B=l(l({},B),{},{touchObject:_,swipeLeft:P,trackStyle:R(l(l({},t),{},{left:P}))}),Math.abs(_.curX-_.startX)<.8*Math.abs(_.curY-_.startY)||_.swipeLength>10&&(B.swiping=!0,s(e)),B}},t.swipeEnd=function(e,t){var o=t.dragging,n=t.swipe,r=t.touchObject,a=t.listWidth,i=t.touchThreshold,c=t.verticalSwiping,u=t.listHeight,d=t.swipeToSlide,m=t.scrolling,p=t.onSwipe,f=t.targetSlide,b=t.currentSlide,g=t.infinite;if(!o)return n&&s(e),{};var h=c?u/i:a/i,w=y(r,c),E={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(m)return E;if(!r.swipeLength)return E;if(r.swipeLength>h){var R,S;s(e),p&&p(w);var P=g?b:f;switch(w){case"left":case"up":S=P+_(t),R=d?v(t,S):S,E.currentDirection=0;break;case"right":case"down":S=P-_(t),R=d?v(t,S):S,E.currentDirection=1;break;default:R=P}E.triggerSlideHandler=R}else{var B=C(t);E.trackStyle=O(l(l({},t),{},{left:B}))}return E};var w=function(e){for(var t=e.infinite?2*e.slideCount:e.slideCount,o=e.infinite?-1*e.slidesToShow:0,n=e.infinite?-1*e.slidesToShow:0,r=[];o<t;)r.push(o),o=n+e.slidesToScroll,n+=Math.min(e.slidesToScroll,e.slidesToShow);return r};t.getNavigableIndexes=w;var v=function(e,t){var o=w(e),n=0;if(t>o[o.length-1])t=o[o.length-1];else for(var r in o){if(t<o[r]){t=n;break}n=o[r]}return t};t.checkNavigable=v;var _=function(e){var t=e.centerMode?e.slideWidth*Math.floor(e.slidesToShow/2):0;if(e.swipeToSlide){var o,n=e.listRef,r=n.querySelectorAll&&n.querySelectorAll(".slick-slide")||[];if(Array.from(r).every((function(n){if(e.vertical){if(n.offsetTop+g(n)/2>-1*e.swipeLeft)return o=n,!1}else if(n.offsetLeft-t+b(n)/2>-1*e.swipeLeft)return o=n,!1;return!0})),!o)return 0;var a=!0===e.rtl?e.slideCount-e.currentSlide:e.currentSlide;return Math.abs(o.dataset.index-a)||1}return e.slidesToScroll};t.getSlideCount=_;var E=function(e,t){return t.reduce((function(t,o){return t&&e.hasOwnProperty(o)}),!0)?null:console.error("Keys Missing:",e)};t.checkSpecKeys=E;var R=function(e){var t,o;E(e,["left","variableWidth","slideCount","slidesToShow","slideWidth"]);var n=e.slideCount+2*e.slidesToShow;e.vertical?o=n*e.slideHeight:t=B(e)*e.slideWidth;var r={opacity:1,transition:"",WebkitTransition:""};if(e.useTransform){var a=e.vertical?"translate3d(0px, "+e.left+"px, 0px)":"translate3d("+e.left+"px, 0px, 0px)",i=e.vertical?"translate3d(0px, "+e.left+"px, 0px)":"translate3d("+e.left+"px, 0px, 0px)",c=e.vertical?"translateY("+e.left+"px)":"translateX("+e.left+"px)";r=l(l({},r),{},{WebkitTransform:a,transform:i,msTransform:c})}else e.vertical?r.top=e.left:r.left=e.left;return e.fade&&(r={opacity:1}),t&&(r.width=t),o&&(r.height=o),window&&!window.addEventListener&&window.attachEvent&&(e.vertical?r.marginTop=e.left+"px":r.marginLeft=e.left+"px"),r};t.getTrackCSS=R;var O=function(e){E(e,["left","variableWidth","slideCount","slidesToShow","slideWidth","speed","cssEase"]);var t=R(e);return e.useTransform?(t.WebkitTransition="-webkit-transform "+e.speed+"ms "+e.cssEase,t.transition="transform "+e.speed+"ms "+e.cssEase):e.vertical?t.transition="top "+e.speed+"ms "+e.cssEase:t.transition="left "+e.speed+"ms "+e.cssEase,t};t.getTrackAnimateCSS=O;var C=function(e){if(e.unslick)return 0;E(e,["slideIndex","trackRef","infinite","centerMode","slideCount","slidesToShow","slidesToScroll","slideWidth","listWidth","variableWidth","slideHeight"]);var t,o,n=e.slideIndex,r=e.trackRef,a=e.infinite,l=e.centerMode,i=e.slideCount,c=e.slidesToShow,s=e.slidesToScroll,u=e.slideWidth,d=e.listWidth,m=e.variableWidth,p=e.slideHeight,f=e.fade,b=e.vertical;if(f||1===e.slideCount)return 0;var g=0;if(a?(g=-S(e),i%s!=0&&n+s>i&&(g=-(n>i?c-(n-i):i%s)),l&&(g+=parseInt(c/2))):(i%s!=0&&n+s>i&&(g=c-i%s),l&&(g=parseInt(c/2))),t=b?n*p*-1+g*p:n*u*-1+g*u,!0===m){var y,h=r&&r.node;if(y=n+S(e),t=(o=h&&h.childNodes[y])?-1*o.offsetLeft:0,!0===l){y=a?n+S(e):n,o=h&&h.children[y],t=0;for(var w=0;w<y;w++)t-=h&&h.children[w]&&h.children[w].offsetWidth;t-=parseInt(e.centerPadding),t+=o&&(d-o.offsetWidth)/2}}return t};t.getTrackLeft=C;var S=function(e){return e.unslick||!e.infinite?0:e.variableWidth?e.slideCount:e.slidesToShow+(e.centerMode?1:0)};t.getPreClones=S;var P=function(e){return e.unslick||!e.infinite?0:e.slideCount};t.getPostClones=P;var B=function(e){return 1===e.slideCount?1:S(e)+e.slideCount+P(e)};t.getTotalSlides=B;var k=function(e){return e.targetSlide>e.currentSlide?e.targetSlide>e.currentSlide+N(e)?"left":"right":e.targetSlide<e.currentSlide-L(e)?"right":"left"};t.siblingDirection=k;var N=function(e){var t=e.slidesToShow,o=e.centerMode,n=e.rtl,r=e.centerPadding;if(o){var a=(t-1)/2+1;return parseInt(r)>0&&(a+=1),n&&t%2==0&&(a+=1),a}return n?0:t-1};t.slidesOnRight=N;var L=function(e){var t=e.slidesToShow,o=e.centerMode,n=e.rtl,r=e.centerPadding;if(o){var a=(t-1)/2+1;return parseInt(r)>0&&(a+=1),n||t%2!=0||(a+=1),a}return n?t-1:0};t.slidesOnLeft=L,t.canUseDOM=function(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}},33:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>R});var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var o=-1;return e.some((function(e,n){return e[0]===t&&(o=n,!0)})),o}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var o=e(this.__entries__,t),n=this.__entries__[o];return n&&n[1]},t.prototype.set=function(t,o){var n=e(this.__entries__,t);~n?this.__entries__[n][1]=o:this.__entries__.push([t,o])},t.prototype.delete=function(t){var o=this.__entries__,n=e(o,t);~n&&o.splice(n,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var o=0,n=this.__entries__;o<n.length;o++){var r=n[o];e.call(t,r[1],r[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a=void 0!==o.g&&o.g.Math===Math?o.g:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),l="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},i=["top","right","bottom","left","width","height","size","weight"],c="undefined"!=typeof MutationObserver,s=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var o=!1,n=!1,r=0;function a(){o&&(o=!1,e()),n&&c()}function i(){l(a)}function c(){var e=Date.now();if(o){if(e-r<2)return;n=!0}else o=!0,n=!1,setTimeout(i,20);r=e}return c}(this.refresh.bind(this))}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,o=t.indexOf(e);~o&&t.splice(o,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,o=void 0===t?"":t;i.some((function(e){return!!~o.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var o=0,n=Object.keys(t);o<n.length;o++){var r=n[o];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},d=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},m=y(0,0,0,0);function p(e){return parseFloat(e)||0}function f(e){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];return t.reduce((function(t,o){return t+p(e["border-"+o+"-width"])}),0)}var b="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof d(e).SVGGraphicsElement}:function(e){return e instanceof d(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return r?b(e)?function(e){var t=e.getBBox();return y(0,0,t.width,t.height)}(e):function(e){var t=e.clientWidth,o=e.clientHeight;if(!t&&!o)return m;var n=d(e).getComputedStyle(e),r=function(e){for(var t={},o=0,n=["top","right","bottom","left"];o<n.length;o++){var r=n[o],a=e["padding-"+r];t[r]=p(a)}return t}(n),a=r.left+r.right,l=r.top+r.bottom,i=p(n.width),c=p(n.height);if("border-box"===n.boxSizing&&(Math.round(i+a)!==t&&(i-=f(n,"left","right")+a),Math.round(c+l)!==o&&(c-=f(n,"top","bottom")+l)),!function(e){return e===d(e).document.documentElement}(e)){var s=Math.round(i+a)-t,u=Math.round(c+l)-o;1!==Math.abs(s)&&(i-=s),1!==Math.abs(u)&&(c-=u)}return y(r.left,r.top,i,c)}(e):m}function y(e,t,o,n){return{x:e,y:t,width:o,height:n}}var h=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),w=function(e,t){var o,n,r,a,l,i,c,s=(n=(o=t).x,r=o.y,a=o.width,l=o.height,i="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,c=Object.create(i.prototype),u(c,{x:n,y:r,width:a,height:l,top:r,right:n+a,bottom:l+r,left:n}),c);u(this,{target:e,contentRect:s})},v=function(){function e(e,t,o){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=o}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new h(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new w(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),_="undefined"!=typeof WeakMap?new WeakMap:new n,E=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var o=s.getInstance(),n=new v(t,o,this);_.set(this,n)};["observe","unobserve","disconnect"].forEach((function(e){E.prototype[e]=function(){var t;return(t=_.get(this))[e].apply(t,arguments)}}));const R=void 0!==a.ResizeObserver?a.ResizeObserver:E},774:e=>{e.exports=function(e,t,o,n){var r=o?o.call(n,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),l=Object.keys(t);if(a.length!==l.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var s=a[c];if(!i(s))return!1;var u=e[s],d=t[s];if(!1===(r=o?o.call(n,u,d,s):void 0)||void 0===r&&u!==d)return!1}return!0}},169:e=>{e.exports=function(e){return e.replace(/[A-Z]/g,(function(e){return"-"+e.toLowerCase()})).toLowerCase()}},196:e=>{"use strict";e.exports=window.React}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e={};o.r(e),o.d(e,{category:()=>Ao,metadata:()=>zo,name:()=>To,settings:()=>Io});var t={};o.r(t),o.d(t,{category:()=>sn,metadata:()=>an,name:()=>cn,settings:()=>dn});var n={};o.r(n),o.d(n,{category:()=>qn,metadata:()=>Hn,name:()=>Gn,settings:()=>Vn});var r={};o.r(r),o.d(r,{category:()=>hr,metadata:()=>br,name:()=>yr,settings:()=>vr});var a={};o.r(a),o.d(a,{category:()=>Fr,metadata:()=>Kr,name:()=>Hr,settings:()=>qr});var l={};o.r(l),o.d(l,{category:()=>ba,metadata:()=>ma,name:()=>fa,settings:()=>ya});var i={};o.r(i),o.d(i,{category:()=>Ha,metadata:()=>Wa,name:()=>Da,settings:()=>Ga});var c={};o.r(c),o.d(c,{category:()=>fl,metadata:()=>dl,name:()=>pl,settings:()=>gl});var s={};o.r(s),o.d(s,{category:()=>Kl,metadata:()=>Ml,name:()=>Wl,settings:()=>Hl});var u={};o.r(u),o.d(u,{category:()=>li,metadata:()=>ni,name:()=>ai,settings:()=>ci});var d={};o.r(d),o.d(d,{category:()=>Ei,metadata:()=>wi,name:()=>_i,settings:()=>Oi});var m={};o.r(m),o.d(m,{category:()=>Ii,metadata:()=>Ti,name:()=>Mi,settings:()=>Ki});var p={};o.r(p),o.d(p,{category:()=>ec,metadata:()=>Xi,name:()=>$i,settings:()=>oc});var f={};o.r(f),o.d(f,{category:()=>yc,metadata:()=>fc,name:()=>gc,settings:()=>wc});var b={};o.r(b),o.d(b,{category:()=>xc,metadata:()=>Nc,name:()=>jc,settings:()=>Tc});var g={};o.r(g),o.d(g,{category:()=>Yc,metadata:()=>Uc,name:()=>Qc,settings:()=>Xc});var y={};o.r(y),o.d(y,{category:()=>ds,metadata:()=>cs,name:()=>us,settings:()=>ps});var h={};o.r(h),o.d(h,{category:()=>Ps,metadata:()=>Os,name:()=>Ss,settings:()=>ks});var w={};o.r(w),o.d(w,{category:()=>Fs,metadata:()=>Ks,name:()=>Hs,settings:()=>qs});var v={};o.r(v),o.d(v,{category:()=>au,metadata:()=>ou,name:()=>ru,settings:()=>iu});var _={};o.r(_),o.d(_,{category:()=>Eu,metadata:()=>wu,name:()=>_u,settings:()=>Ou});var E={};o.r(E),o.d(E,{category:()=>Iu,metadata:()=>Tu,name:()=>Mu,settings:()=>Ku});var R={};o.r(R),o.d(R,{category:()=>td,metadata:()=>Zu,name:()=>ed,settings:()=>nd});var O={};o.r(O),o.d(O,{category:()=>Sd,metadata:()=>Rd,name:()=>Cd,settings:()=>Bd});var C={};o.r(C),o.d(C,{category:()=>Xd,metadata:()=>Qd,name:()=>Jd,settings:()=>$d});var S={};o.r(S),o.d(S,{category:()=>vm,metadata:()=>ym,name:()=>wm,settings:()=>Em});const P=window.wp.blocks,B=window.wp.i18n,k=window.wp.components;function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}var L,j=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",width:"20",height:"20",viewBox:"0 0 40 40"},React.createElement("image",{id:"woolentor-logo",width:"40",height:"40",href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADHFJREFUeNrsXU2IHMcV7m7NSnEU8IAvvgQmEHTV+JCDNwaN4oB1UNAIx7nO7sWQ5CBtcvAlYS0CAZ9GOoSActjZUyDESGZ9kA7OjEDWHrW6GoHHOAcfEphAHMjuaif12tWT3pn++arrVf/Wg2Z3pZme7npffe97r17XuE7N7Ot3e23xoysP+v2S/K+OPFCbyJ9TcXwhjgP6/fzdyUGdxsutgcPJ0T3p6K6ik7PaRALiEf0uQDGzAMh3hvfFcU06vl2CyyIwfCSO+1VjCLeCTu+X/HIpZNwXx24VwOCW3PE0wwfi2KgowxIA7khmmFkA4I4nh9+QMb0ONmv9+J3R2Xd+ccd13akFQLLjt3MScrnat37zJ8f77vfp15E4bpUFCK51vHkjxxMAloyAsCWAUGhoaJUgxm9LNV9ba73+VtQ/E+j78/mcwsL7jWIAqeqHFRZ3SvbS7//suK+8mpY5bAogTHJnpwKcT2nc501x/pkL3TTnk3VOvnw+FmMzlJOjfgCgGxPHjvj1nlOO4k0+AFh/C3rd8f5D+nFTHE9laKwPAGS59mlTZv0pAFx8A3rdi4PHCzYQB7HB+7UAgFT4T+uq8BOd333Dcb/9ndTXnXx24Mz/+dXyP2+LsRubDgmeYecT5e84DbUz3R9i9P/kYdx/9WRI6FYKADLej5tI+Yv0Ssz81utXMPp/9jhRIMqQ0K8EACRljeue23PG/vl//p32MhrTezKclhcAIbHXdRpuMP3vP1Q57Q43CDxm54+bKPai6J8EYJrRzA+p/0JA4DE7v+1Yc87wxP5cQOAxOL8tlb51vrSY2n9E/P9U52NYQOAxOH9sY36I/l95NVj2TaZ/kfdnoH92EOgywD3r/GXxp1z507WhTp3A05j9w6anelG29ubbJtR/WoqYuWLoZXQ+0c5N6+6lwRTUD6z8+fR/8uVzzo8OQrF5AEi6GVp3Zxd/jLM/bF3JyuYAYBU/T/w/fvLA1CXcVC0ZqzLAthV9Mc7HGj986o9Y+eO0HRU9AAPgcG/Us3E/AQDrhdL/sh7YYQXAfD5vr10d7CAIbywALuae/iVZHw0FKAPQzO+gKU4TYz/S+OGv/Jmlf+VQ4AGzvyNjP1zjtuo/DgCf5nlZ7cBvugywiCfoKleTTGVMNBZ/dLKCTmYAiNlPwq+XBe029kfQf3rjh5FQoMMA25HxzorB0HgYafzgtF5Sm3lLZfYv3rR+xTnaG1n6FxOBs/GDzkdCO1hNPBGC8Whvl0M40kSeqDLAtq7oaYL654r9dC56gLT15k8d70LXP6iplB4ra+mL71gW8FRnvwryrfrH1D8JybOD92JTybMb73GE3RsqDHCDK/bVmf65Gj8ovU6rIzDUYPpRGcEKAOSL+unovwIVP2o7+9fBvj8g9iNMgoAtCwtEMcAGWq4sqjBEg0GLL0yDYpT+09Q/3UOO97GBZAEDillIjCdaOv7kr7k6/tzPf3cqHhLFHo4+cF58dpDrdXA1fqBAYmogoSe2Ns7fnYwiGUAqxc7x/gOoaOGLwQvd/Jz/q+HKwNPf5349zO06VJx29MmHbJkEci7QriWFgMEidu1jTQvoMqiuJankhVLOSZNwNX6iTMLcQ9APLxItA6Cvirg8xCB9RlqcpIGkHDoP53M5rZV/A+mKn70Q/QebK/8/foFxFa2HZ0q3BLjWfvZL6LVrVwfGBRVn6bfAHoJrUQwwWLmJJxjyWgb7BGhWqzAMhQqjAECdlhJCNTeP0LVeFAB6qyjGxKCpVMavjV8dKItFU6FAqfEjZdwYNo/QzQZ6CwCE9thfvRlwDdsEC5wFqT8qFJhYseQs/cJMYq6HoBdmgF4sAkExSDfEKQYprcu63uDX1jOCJ9FpTIs/6FgZ7iG4FAZAN0nNIkUIFVRDs1jTgeQszgUr9N6QsInSv+EWslMMcCnxptCUkCkMIGkfR+3AhPqH6B/sITjef2ASAH7ml8oAAaWhYlA39qqkfdC5FEVknBjlavwoQewPW9eTArCdemPgBekuW6qmfcj5dMvEnI0fKEvm1EHc8RzwUa8XYDqis0KokvapiCNdRoHVf8oYwT0E2fYOymIXCQAd6ObAgoTK/ng6ad/hH38LVypp0Nd+spEZlHDjR8r1wExiOPaH6wEwAMjg9YEMC0QqaR/NDhrs/44+wGfxj97OpE/WYMp+zHauHDuIewSAl9FXo8j0wCdlT83+DbyEe/iXPyxm3dHHu7AgPLehXiaGH/kGGj8K2jwi+bochce9VVITtGVqIfxAwJDDw6GI2tPRWnnQaQsPTgGNHznF/lMAUDJUDKI3rJKq+QCM6EA6VAgFJAjRLKPijR+GAICKQTB39uv2oEOOBPVHqX+6JrQ1TaXOAG/4mJb7l2fziEgAdFTfhIqUtBmk0sRBg5MUfvzQAKaGFAbSagPwci3gtBJtHsEEAHCPm7TuGRVRdiSFX1J4ONzFQ0FaC1lNGj/4Q8Ai5wUvNk4MnpGPP6mkfcjr0NpAGvvUpPHDDAA4wkCWtA8xqg2goSCuhQztc6xA44c5AKDbnUS1juukfQg7obUBH4gRgpBz5a9lfudwbQBMTbNAWARxpH2p1yXegxZT/NpAKBQo7fX/jGnlr7jNIzQBAIrBMKVypH1Q2FAQhOFrUlmurUjjh5kQENAt3DpOIGBM+6D3K9QGgm5idB2jSo0fxgCgIl5oIYQz7ePWD+SsYHMGiP6BR77LHPvDANB6qlLlOUI07aNzcjzs6dcGFICELkdDjR/l3DouEgD/0j0J5/o1OY32xeEyv4bAXGBJ65HM+VtDihOBC6plXMA4/tuH7AUREoRcKhtZ+SvgW0Oy2oQFAFxr2HQeE/sN+Kzy8S4boyB6hzONLrUGQGkRYpK9XWP5sF8bYNAVVW38iLFH3vm7k5n4ZaY9M57pFTPIOabToUPNzAJ5SKbgbw1RtWmQBmpPDZXW8bjZb9rIeTqhAFr5K/5bQ1TsIADAoyLDAFfahwFtlFlkVrnxI8oE+x+wMQBKkabTPigUKLSQqTitzI0fURlAIAIXfxTBAibSvtSZnEFvIPdV5saPKAG4AIAUgiwsoKIDTKV9UChQXGhKXfkr57eGwAzAxgIqixsm0z4o9IBZAWfjR9GlX2kzMel9f4c3ivzIYfpWMGodT2uEyCPtQ8Qnrf6lrVFwNn7Qw6Gt9WJ3W58fH0+cuz9wTgGAEPH1uz0KBdpfCkkxlhycNLB5C784oxYy2qY9jr6RZWmVjTGK3N52abI7yyGA7D7bwNLDmxEZgb9Cl/PWrmk6JG6tgK4faSyp4M7pCz+74X+V3zV3j/OTSBwFqA/W0UsiglZoPLxt+/wfX0Ehil7/0nCvUs53Xfd6JAAkCD53Mjwr0FSj4g/tVVwh2xQAGMWFALJd69ba2izs/DgAjOw44Xby9+dVutwV364AQGQDU04xWHfL2rpekN1JBUDcC63FGy0zF13TAMXfdEXExr1aiMGxk7CDqLVoQUgpYUly/dMz/UL3sgDARAUA5PyxdWstbCJC++VIYMS9Q9aKJ3bsamG3Ypkh6xutVWr2TzIBwLJALWwrURsAJ9i0Y1hZu01tX1oAkHUBGwqqZzPEb+jDobcdhgdIrOVL/bLTK9Fc9Gw2LaxH2peVAQJBeNuObSWoH9ZtqvsDUEw5sGNcatuUuo0fADKmbDoMj5JZM2Ij4SOlhTzlHUJkWrFlx7p0lskvbtZPE6Jwx4n4PnprhcX911SoXxsAEgR2xbAc9lpawYctBCzZdSsKSyH6MvvA1f10+a1j1Ejatr4oxPkjnRNobxMnM4PLNjPI3W7pOp+FAUJMQI8BjS0T5JbusSzSeVxXJOOQZQLztsXlfFYGCDFBx/nm6aKu9VX5Yr5xAISE4diCgDXP3+J2vjEAhIBgi0U8zr+sk+rlogFidAHFKls2zm7k9O+Zcr5xBljKEEgXdKxPYaN2LuOTx83rbqQuoJDQt75NpfzrSZ28lQRACAh9CQRbL1i1+1Lp55ZKu0XcpWSDoRWIC5tKx0/y/mC3yLuWfYbDBqeLNNPvyHhfSAHNLcMoCCAQE2w3TCRSTn8ryxp+7QDQMCCUwvGlBECNgTCTAq80ji81AJY0wqDCYnEqY/yoqBhfaQAsZQ2UPt6ogGCcSZrfNVnBaxQAlsBAYYGY4ZpTnqISOXpSFadXGgAxYYKOi/JnO0eHP3O+eQxrWtXxqzwAYhgiYImXQyGjl8HJMxnHv5B/T6s2w9PsfwIMAOhUCXLerUHIAAAAAElFTkSuQmCC"}));(0,P.setCategories)([{slug:"woolentor-blocks",title:(0,B.__)("WooLentor","woolentor"),icon:React.createElement(k.Icon,{icon:j})},{slug:"woolentor-single-product",title:(0,B.__)("WooLentor Single Product","woolentor"),icon:React.createElement(k.Icon,{icon:j})},{slug:"woolentor-shop",title:(0,B.__)("WooLentor Shop","woolentor"),icon:React.createElement(k.Icon,{icon:j})}].concat(function(e){if(Array.isArray(e))return N(e)}(L=(0,P.getCategories)().filter((function(e){return"woolentor-blocks"!==e.slug})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(L)||function(e,t){if(e){if("string"==typeof e)return N(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?N(e,t):void 0}}(L)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()));var x=function(e){var t=e.unit?e.unit:"px";return""!=e.top||""!=e.right||""!=e.bottom||""!=e.left?(e.top||0)+t+" "+(e.right||0)+t+" "+(e.bottom||0)+t+" "+(e.left||0)+t:""};function z(e){return z="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},z(e)}var T=function(e,t,o){return e.replace(new RegExp(t,"g"),o)},A=function(e){return"object"==z(e)&&0!=Object.keys(e).length},M=function(e,t){return e.replace(new RegExp("{{WOOLENROE_BLOCKS}}","g"),".woolentorblock-"+t)},I=function(e,t){var o="";return t.forEach((function(e){o+=e+";"})),e+"{"+o+"}"},W=function(e,t){var o="";return t.forEach((function(t){o+=e+t})),o},K=function(e,t,o,n){if(n="object"!=z(n)?n:D(n).data,"string"==typeof e){if(e){if(n){var r=M(e,t);return"boolean"==typeof n?[r]:-1==r.indexOf("{{")&&r.indexOf("{")<0?[r+n]:[T(r,"{{"+o+"}}",n)]}return[]}return[M(n,t)]}var a=[];return e.forEach((function(e){a.push(T(M(e,t),"{{"+o+"}}",n))})),a},D=function(e){return e.imageUrl?{data:(t=e,o="{",t.imageUrl&&(o+="background-image:url("+t.imageUrl+");"),t.position&&(o+="background-position:"+t.position+";"),t.attachment&&(o+="background-attachment:"+t.attachment+";"),t.repeat&&(o+="background-repeat:"+t.repeat+";"),t.size&&(o+="background-size:"+t.size+";"),"{}"!=(o+="}")?o:{}),action:"append"}:void 0!==e.top||void 0!==e.left||void 0!==e.right||void 0!==e.bottom?{data:x(e),action:"replace"}:{data:"",action:"append"};var t,o},H=function(e,t){var o=!0;return t.hasOwnProperty("dependency")&&t.dependency.forEach((function(t){var n=o;if("=="==(t=t[0]).condition)if("string"==typeof t.value||"number"==typeof t.value||"boolean"==typeof t.value)o=e[t.key]==t.value;else{var r=!1;t.value.forEach((function(o){e[t.key]==o&&(r=!0)})),r&&(o=!0)}else if("!="==t.condition)if("string"==typeof t.value||"number"==typeof t.value||"boolean"==typeof t.value)o=e[t.key]!=t.value;else{var a=!1;t.value.forEach((function(o){e[t.key]!=o&&(a=!0)})),a&&(o=!0)}o=0!=n&&o})),o};function F(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(o){var r="",a=[],l=[],i=[],c=[],s=[];return Object.keys(e).forEach((function(r){var u="string"==typeof t?wp.blocks.getBlockType(t).attributes:t;if(u[r]&&u[r].hasOwnProperty("style")){var d=u[r].style;if(d.hasOwnProperty("selector")){var m=d.selector;if(H(e,d))if("object"==z(e[r])){var p=!1,f="";if(e[r].desktop&&(p=!0,f="object"==z(e[r].desktop)?D(e[r].desktop).data:e[r].desktop+(e[r].unit||""),a=a.concat(K(m,o,r,f))),e[r].laptop&&(p=!0,f="object"==z(e[r].laptop)?D(e[r].laptop).data:e[r].laptop+(e[r].unit||""),l=l.concat(K(m,o,r,f))),e[r].tablet&&(p=!0,f="object"==z(e[r].tablet)?D(e[r].tablet).data:e[r].tablet+(e[r].unit||""),i=i.concat(K(m,o,r,f))),e[r].mobile&&(p=!0,f="object"==z(e[r].mobile)?D(e[r].mobile).data:e[r].mobile+(e[r].unit||""),c=c.concat(K(m,o,r,f))),!p){var b=D(e[r]),g=M(m,o);"object"==z(b.data)?0!=Object.keys(b.data).length&&(b.data.background&&s.push(g+b.data.background),A(b.data.desktop)&&a.push(I(g,b.data.desktop)),A(b.data.laptop)&&l.push(I(g,b.data.laptop)),A(b.data.tablet)&&i.push(I(g,b.data.tablet)),A(b.data.mobile)&&c.push(I(g,b.data.mobile)),b.data.simple&&s.push(g+b.data.simple),b.data.font&&a.unshift(b.data.font),b.data.shape&&(b.data.shape.forEach((function(e){s.push(g+e)})),A(b.data.data.desktop)&&a.push(W(g,b.data.data.desktop)),A(b.data.data.laptop)&&l.push(W(g,b.data.data.laptop)),A(b.data.data.tablet)&&i.push(W(g,b.data.data.tablet)),A(b.data.data.mobile)&&c.push(W(g,b.data.data.mobile)))):b.data&&-1==b.data.indexOf("{{")&&("append"==b.action?s.push(g+b.data):s.push(K(m,o,r,b.data)))}}else"hideDesktop"==r?n&&(s=s.concat("@media (min-width: 1200px) {"+K(m,o,r,e[r])+"}")):"hideLaptop"==r?n&&(s=s.concat("@media only screen and (max-width: 1199px) and (min-width: 991px) {"+K(m,o,r,e[r])+"}")):"hideTablet"==r?n&&(s=s.concat("@media only screen and (max-width: 992px) and (min-width: 767px) {"+K(m,o,r,e[r])+"}")):"hideMobile"==r?n&&(s=s.concat("@media (max-width: 768px) {"+K(m,o,r,e[r])+"}")):e[r]&&(s=s.concat(K(m,o,r,e[r])))}}})),a.length>0&&(r+=a.join("")),l.length>0&&(r+="@media (min-width: 992px) and (max-width: 1200px) {"+l.join("")+"}"),i.length>0&&(r+="@media (min-width: 768px) and (max-width: 991px) {"+i.join("")+"}"),c.length>0&&(r+="@media (max-width: 767px) {"+c.join("")+"}"),s.length>0&&(r+=s.join("")),n?r:void 0}}var G="";function q(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return 1==t&&(G="",t=!1),e.map((function(e){var t=e.attributes,o=e.name;"woolentor"===o.split("/")[0]&&t.blockUniqId&&(G+=F(t,o,t.blockUniqId,!0)),e.innerBlocks&&e.innerBlocks.length>0&&q(e.innerBlocks)})),G}function U(e){e.forEach((function(e){var t;-1!=e.name.indexOf("core/block")&&(t=e.attributes.ref,wp.apiFetch({path:"/woolentor/v1/get_post",method:"POST",data:{post_id:t}}).then((function(e){if(e.success){var t=q(wp.blocks.parse(e.data),!0);t.css&&wp.apiFetch({path:"/woolentor/v1/appened_css",method:"POST",data:{inner_css:t.css,post_id:select("core/editor").getCurrentPostId()}}).then((function(e){e.success}))}}))),e.innerBlocks&&e.innerBlocks.length>0&&U(e.innerBlocks)}))}function V(){var e=wp.data.select("core/block-editor").getBlocks(),t=wp.data.select("core/editor").getCurrentPostId,o=function(e){var t=!1;return function e(o){o.forEach((function(o){-1!=o.name.indexOf("woolentor/")&&(t=!0),o.innerBlocks&&o.innerBlocks.length>0&&e(o.innerBlocks)}))}(e),t}(e),n=q(e,!0);U(e),function(e,t,o){return wp.apiFetch({path:"/woolentor/v1/save_css",method:"POST",data:{block_css:t,post_id:e,has_block:o}}).then((function(e){return e}))}(t(),n,o).then((function(e){}))}const Q=window.wp.element,Y=window.wp.blockEditor,J=window.wp.compose,X=window.wp.data;function Z(e){return Z="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},Z(e)}function $(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function ee(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return te(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?te(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function oe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ne(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function re(e,t){return re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},re(e,t)}function ae(e,t){if(t&&("object"===Z(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function le(e){return le=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},le(e)}var ie=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&re(e,t)}(l,e);var t,o,n,r,a=(n=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=le(n);if(r){var o=le(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return ae(this,e)});function l(){return oe(this,l),a.apply(this,arguments)}return t=l,(o=[{key:"render",value:function(){var e,t=this.props,o=t.setAttributes,n=t.selectedTaxonomies,r=t.attributesKey,a=t.title,l=t.type,i=t.taxnomiesList,c=function(){var e=[];return i&&i.forEach((function(t,o){e.push({label:t.name,value:t.slug})})),e};if("multiple"==l){var s=c();s.length>0&&(e=s.map((function(e,t){return React.createElement(k.CheckboxControl,{key:e.value,label:e.label,onChange:function(t){return function(e,t){var a=-1!==n.indexOf(t)?ee(n):[].concat(ee(n),[t]);if(0==e){var l=a.indexOf(t);a.splice(l,1)}o($({},r,a))}(t,e.value)},checked:-1!==n.indexOf(e.value)})})))}return React.createElement(Q.Fragment,null,React.createElement("div",{className:"woolentor-component-taxonomy-area"},"single"!=l&&React.createElement("h2",{className:"woolentor-component-area-title"},a),React.createElement("div",{className:"woolentor-component-taxonomy-fileds"},"single"==l?0==c().length?React.createElement(k.Spinner,null):React.createElement(k.SelectControl,{label:a,value:n,options:c(),onChange:function(e){return o($({},r,e))}}):e||React.createElement(k.Spinner,null))))}}])&&ne(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),l}(Q.Component);const ce=(0,J.compose)([(0,X.withSelect)((function(e,t){return{taxnomiesList:(0,e("core").getEntityRecords)("taxonomy",t.taxonomy?t.taxonomy:"product_cat",{orderby:"name",order:"asc",hide_empty:!0})}}))])(ie);function se(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function ue(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?se(Object(o),!0).forEach((function(t){de(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):se(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function de(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}const me=function(e){var t=e.setAttributes,o=e.lavel,n=e.dimensions,r=e.attributesKey,a=function(o,a){var l=ue({},n);if(e.responsive){var i=n.hasOwnProperty(n.device)?n[n.device].link:"yes";l[n.device]="yes"===i?{top:o,right:o,bottom:o,left:o,link:"yes",unit:n.hasOwnProperty(n.device)&&""!=l[n.device].unit?l[n.device].unit:"px"}:de({top:""!==l[n.device].top?l[n.device].top:"0",right:""!==l[n.device].right?l[n.device].right:"0",bottom:""!==l[n.device].bottom?l[n.device].bottom:"0",left:""!==l[n.device].left?l[n.device].left:"0",link:"no",unit:""!==l[n.device].unit?l[n.device].unit:"px"},a,o)}else"yes"===l.link?(l.top=o,l.right=o,l.bottom=o,l.left=o,l.link="yes"):(l.top=""!==l.top?l.top:"0",l.right=""!==l.right?l.right:"0",l.bottom=""!==l.bottom?l.bottom:"0",l.left=""!==l.left?l.left:"0",l.link="no",l[a]=o);t(de({},r,l))},l=function(o){var a=ue({},n),l=o.target.getAttribute("data-value");e.responsive?a[n.device].unit=l:a.unit=l,t(de({},r,a))},i=function(e,o,a){var l=ue({},n);l[o]=a,t(de({},r,l))},c=n.hasOwnProperty(n.device)?n[n.device].top:n.top?n.top:"",s=n.hasOwnProperty(n.device)?n[n.device].right:n.right?n.right:"",u=n.hasOwnProperty(n.device)?n[n.device].bottom:n.bottom?n.bottom:"",d=n.hasOwnProperty(n.device)?n[n.device].left:n.left?n.left:"",m=n.hasOwnProperty(n.device)?n[n.device].unit:n.unit?n.unit:"px",p=n.hasOwnProperty(n.device)?n[n.device].link:n.link?n.link:"yes",f=n.device;return React.createElement(Q.Fragment,null,React.createElement("div",{className:"wp-block-selector-woolentor-dimensions-control"},React.createElement(k.PanelRow,{className:"woolentor-panel-row-height-auto",style:{minHeight:"auto"}},React.createElement("label",{className:"woolentor-control-title"},o),e.responsive&&React.createElement("div",{className:"woolentor-control-responsive-switchers-button"},React.createElement("span",{className:"desktop"===f&&"device-selected","data-device":"desktop",onClick:function(e){return i(0,"device","desktop")}},React.createElement("span",{className:"dashicons dashicons-desktop"})),React.createElement("span",{className:"laptop"===f&&"device-selected","data-device":"laptop",onClick:function(e){return i(0,"device","laptop")}},React.createElement("span",{className:"dashicons dashicons-laptop"})),React.createElement("span",{className:"tablet"===f&&"device-selected","data-device":"tablet",onClick:function(e){return i(0,"device","tablet")}},React.createElement("span",{className:"dashicons dashicons-tablet"})),React.createElement("span",{className:"mobile"===f&&"device-selected","data-device":"mobile",onClick:function(e){return i(0,"device","mobile")}},React.createElement("span",{className:"dashicons dashicons-smartphone"}))),React.createElement("div",{className:"woolentor-units-choices"},React.createElement("span",{className:"px"===m&&"unit-active","data-value":"px",onClick:l},(0,B.__)("PX","woolentor")),React.createElement("span",{className:"%"===m&&"unit-active","data-value":"%",onClick:l},(0,B.__)("%","woolentor")),React.createElement("span",{className:"em"===m&&"unit-active","data-value":"em",onClick:l},(0,B.__)("EM","woolentor")))),React.createElement(k.PanelRow,null,React.createElement(k.__experimentalNumberControl,{label:(0,B.__)("Top","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"top")},shiftStep:10,value:c,labelPosition:"bottom"}),React.createElement(k.__experimentalNumberControl,{label:(0,B.__)("Right","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"right")},shiftStep:10,value:s,labelPosition:"bottom"}),React.createElement(k.__experimentalNumberControl,{label:(0,B.__)("Bottom","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"bottom")},shiftStep:10,value:u,labelPosition:"bottom"}),React.createElement(k.__experimentalNumberControl,{label:(0,B.__)("Left","woolentor"),isShiftStepEnabled:!0,onChange:function(e){return a(e,"left")},shiftStep:10,value:d,labelPosition:"bottom"}),React.createElement(k.Button,{icon:"admin-links",value:"yes",isPrimary:"yes"===p,isSecondary:"yes"!==p,onClick:function(){var o=ue({},n);e.responsive?"yes"===o[n.device].link?o[n.device].link="no":o[n.device].link="yes":"yes"===o.link?o.link="no":o.link="yes",t(de({},r,o))},title:(0,B.__)("Link values together","woolentor"),showTooltip:!0}))))};function pe(e){return pe="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},pe(e)}function fe(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function be(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?fe(Object(o),!0).forEach((function(t){ge(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):fe(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function ge(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function he(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function we(e,t){return we=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},we(e,t)}function ve(e,t){if(t&&("object"===pe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_e(e)}var Ee=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&we(e,t)}(l,e);var t,o,n,r,a=(n=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=_e(n);if(r){var o=_e(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return ve(this,e)});function l(){return ye(this,l),a.apply(this,arguments)}return t=l,(o=[{key:"render",value:function(){var e=this.props,t=e.setAttributes,o=e.title,n=e.bgProperty,r=e.attributesKey,a=e.uploadImage,l=function(e,o){var a=be({},n);a[o]=e,t(ge({},r,a))},i=["image","png"],c=React.createElement("p",null,(0,B.__)("To edit the banner image, you need permission to upload media.","woolentor")),s=function(e){var o=be({},n);o.imageId=e.id,o.imageUrl=e.url,t(ge({},r,o))};return React.createElement(Q.Fragment,null,React.createElement("div",{className:"wp-block-selector-woolentor-background-control"},o&&React.createElement("h3",null,o),React.createElement("div",{className:"wp-block-image-selector-woolentor-image-uploader"},React.createElement(Y.MediaUploadCheck,{fallback:c},React.createElement(Y.MediaUpload,{title:o,onSelect:s,allowedTypes:i,value:n.imageId,render:function(e){var t=e.open;return React.createElement(k.Button,{className:n.imageId?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t},!n.imageId&&(0,B.__)("Set ","woolentor")+o,!!n.imageId&&!a&&React.createElement(k.Spinner,null),!!n.imageId&&a&&React.createElement("img",{src:a.source_url,alt:o}))}})),!!n.imageId&&a&&React.createElement(Y.MediaUploadCheck,null,React.createElement(Y.MediaUpload,{title:o,onSelect:s,allowedTypes:i,value:n.imageId,render:function(e){var t=e.open;return React.createElement(k.Button,{onClick:t,isDefault:!0,isLarge:!0},(0,B.__)("Replace image","woolentor"))}})),!!n.imageId&&React.createElement(Y.MediaUploadCheck,null,React.createElement(k.Button,{onClick:function(){var e=be({},n);e.imageId=void 0,e.imageUrl=void 0,t(ge({},r,e))},isLink:!0,isDestructive:!0},(0,B.__)("Remove image","woolentor")))),React.createElement(k.SelectControl,{label:(0,B.__)("Position","woolentor"),labelPosition:"side",value:n.position,options:[{label:(0,B.__)("Default","woolentor"),value:""},{label:(0,B.__)("Center Center","woolentor"),value:"center center"},{label:(0,B.__)("Center Left","woolentor"),value:"center left"},{label:(0,B.__)("Center Right","woolentor"),value:"center right"},{label:(0,B.__)("Top Center","woolentor"),value:"top center"},{label:(0,B.__)("Top Left","woolentor"),value:"top left"},{label:(0,B.__)("Top Right","woolentor"),value:"top right"},{label:(0,B.__)("Bottom Center","woolentor"),value:"bottom center"},{label:(0,B.__)("Bottom Left","woolentor"),value:"bottom left"},{label:(0,B.__)("Bottom Right","woolentor"),value:"bottom right"}],onChange:function(e){return l(e,"position")}}),React.createElement(k.SelectControl,{label:(0,B.__)("Attachment","woolentor"),labelPosition:"side",value:n.attachment,options:[{label:(0,B.__)("Default","woolentor"),value:""},{label:(0,B.__)("Scroll","woolentor"),value:"scroll"},{label:(0,B.__)("Fixed","woolentor"),value:"fixed"}],onChange:function(e){return l(e,"attachment")}}),React.createElement(k.SelectControl,{label:(0,B.__)("Repeat","woolentor"),labelPosition:"side",value:n.repeat,options:[{label:(0,B.__)("Default","woolentor"),value:""},{label:(0,B.__)("No-repeat","woolentor"),value:"no-repeat"},{label:(0,B.__)("Repeat","woolentor"),value:"repeat"},{label:(0,B.__)("Repeat-x","woolentor"),value:"repeat-x"},{label:(0,B.__)("Repeat-y","woolentor"),value:"repeat-y"}],onChange:function(e){return l(e,"repeat")}}),React.createElement(k.SelectControl,{label:(0,B.__)("Size","woolentor"),labelPosition:"side",value:n.size,options:[{label:(0,B.__)("Default","woolentor"),value:""},{label:(0,B.__)("Auto","woolentor"),value:"auto"},{label:(0,B.__)("Cover","woolentor"),value:"cover"},{label:(0,B.__)("Contain","woolentor"),value:"contain"}],onChange:function(e){return l(e,"size")}})))}}])&&he(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),l}(Q.Component);const Re=(0,J.compose)((0,X.withSelect)((function(e,t){var o=e("core").getMedia,n=t.bgProperty;return{uploadImage:n.imageId?o(n.imageId):null}})))(Ee);var Oe=[{label:(0,B.__)("H1","woolentor"),value:"h1"},{label:(0,B.__)("H2","woolentor"),value:"h2"},{label:(0,B.__)("H3","woolentor"),value:"h3"},{label:(0,B.__)("H4","woolentor"),value:"h4"},{label:(0,B.__)("H5","woolentor"),value:"h5"},{label:(0,B.__)("H6","woolentor"),value:"h6"},{label:(0,B.__)("P","woolentor"),value:"p"},{label:(0,B.__)("div","woolentor"),value:"div"},{label:(0,B.__)("span","woolentor"),value:"span"}],Ce=[{label:(0,B.__)("None","woolentor"),value:""},{label:(0,B.__)("Solid","woolentor"),value:"solid"},{label:(0,B.__)("Double","woolentor"),value:"double"},{label:(0,B.__)("Dotted","woolentor"),value:"dotted"},{label:(0,B.__)("Dashed","woolentor"),value:"dashed"},{label:(0,B.__)("Groove","woolentor"),value:"groove"},{label:(0,B.__)("Inset","woolentor"),value:"inset"},{label:(0,B.__)("Outset","woolentor"),value:"outset"},{label:(0,B.__)("Ridge","woolentor"),value:"ridge"}],Se=((0,B.__)("Recent Products","woolentor"),(0,B.__)("Featured Products","woolentor"),(0,B.__)("Best Selling Products","woolentor"),(0,B.__)("Sale Products","woolentor"),(0,B.__)("Top Rated Products","woolentor"),(0,B.__)("Mixed order Products","woolentor"),(0,B.__)("Descending","woolentor"),(0,B.__)("Ascending","woolentor"),(0,B.__)("None","woolentor"),(0,B.__)("ID","woolentor"),(0,B.__)("Date","woolentor"),(0,B.__)("Name","woolentor"),(0,B.__)("Title","woolentor"),(0,B.__)("Comment count","woolentor"),(0,B.__)("Random","woolentor"),[{label:(0,B.__)(React.createElement(k.Dashicon,{icon:"editor-alignleft"})),value:"left"},{label:(0,B.__)(React.createElement(k.Dashicon,{icon:"editor-aligncenter"})),value:"center"},{label:(0,B.__)(React.createElement(k.Dashicon,{icon:"editor-alignright"})),value:"right"},{label:(0,B.__)(React.createElement(k.Dashicon,{icon:"editor-justify"})),value:"justify"}]);function Pe(e){return Pe="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},Pe(e)}function Be(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function ke(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function Ne(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Le(e,t){return Le=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Le(e,t)}function je(e,t){if(t&&("object"===Pe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function xe(e){return xe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},xe(e)}(0,B.__)(React.createElement(k.Dashicon,{icon:"desktop"})),(0,B.__)(React.createElement(k.Dashicon,{icon:"laptop"})),(0,B.__)(React.createElement(k.Dashicon,{icon:"tablet"})),(0,B.__)(React.createElement(k.Dashicon,{icon:"smartphone"}));var ze=function(e){!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}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Le(e,t)}(l,e);var t,o,n,r,a=(n=l,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=xe(n);if(r){var o=xe(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return je(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=a.call(this,e)).state={device:"desktop"},t}return t=l,o=[{key:"render",value:function(){var e=this,t=this.props,o=t.attributes,n=t.setAttributes,r=o.style,a=(o.columns,o.rows),l=o.productTab,i=o.slider,c=o.productFilterType,s=o.perPage,u=o.customOrder,d=o.orderBy,m=o.order,p=o.selectedCategories,f=o.slitems,b=o.slarrows,g=o.sldots,y=o.slpauseOnHover,h=o.slautolay,w=o.slautoplaySpeed,v=o.slanimationSpeed,_=o.slscrollItem,E=o.sltabletDisplayColumns,R=o.sltabletScrollColumns,O=o.sltabletWidth,C=o.slMobileDisplayColumns,S=o.slMobileScrollColumns,P=o.slMobileWidth,N=function(t,o,n){e.setState(ke({},o,n))};return React.createElement(Y.InspectorControls,null,React.createElement("div",{className:"woolentor-panel-control"},React.createElement(k.TabPanel,{className:"woolentor-tabs-menu",activeClass:"woolentor-tab-menu-active is-primary",tabs:[{name:"general",title:(0,B.__)("Genaral","woolentor"),className:"woolentor-tab-menu-item general"},{name:"styles",title:(0,B.__)("Styles","woolentor"),className:"woolentor-tab-menu-item styles"},{name:"advanced",title:(0,B.__)("Advanced","woolentor"),className:"woolentor-tab-menu-item advanced"}]},(function(t){return React.createElement("div",{className:"woolentor-tab-controls "+t.name},"general"===t.name&&React.createElement(React.Fragment,null,React.createElement(k.PanelBody,{title:(0,B.__)("Layout","woolentor"),initialOpen:!0},React.createElement(k.SelectControl,{label:(0,B.__)("Product Style","woolentor"),value:r,options:[{label:(0,B.__)("Style One","woolentor"),value:"1"},{label:(0,B.__)("Style Two","woolentor"),value:"2"},{label:(0,B.__)("Style Three","woolentor"),value:"3"}],onChange:function(e){return n({style:e})}}),React.createElement(k.PanelRow,{className:"woolentor-device-row",style:{minHeight:"auto"}},React.createElement("label",null,(0,B.__)("Columns","woolentor")),React.createElement(k.ButtonGroup,{className:"woolentor-device-button"},React.createElement(k.Button,{icon:"desktop",value:"desktop",label:(0,B.__)("Large","woolentor"),isPrimary:"desktop"===e.state.device,isSecondary:"desktop"!==e.state.device,onClick:function(e){return N(0,"device","desktop")}}),React.createElement(k.Button,{icon:"laptop",value:"laptop",label:(0,B.__)("Medium","woolentor"),isPrimary:"laptop"===e.state.device,isSecondary:"laptop"!==e.state.device,onClick:function(e){return N(0,"device","laptop")}}),React.createElement(k.Button,{icon:"tablet",value:"tablet",label:(0,B.__)("Small","woolentor"),isPrimary:"tablet"===e.state.device,isSecondary:"tablet"!==e.state.device,onClick:function(e){return N(0,"device","tablet")}}),React.createElement(k.Button,{icon:"smartphone",value:"mobile",label:(0,B.__)("Extra Small","woolentor"),isPrimary:"mobile"===e.state.device,isSecondary:"mobile"!==e.state.device,onClick:function(e){return N(0,"device","mobile")}}))),React.createElement(k.RangeControl,{value:o.columns[e.state.device],onChange:function(t){return function(e,t,r){var a=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?Be(Object(o),!0).forEach((function(t){ke(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Be(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}({},o[r]);a[t]=e,n(ke({},r,a))}(t,e.state.device,"columns")},min:0,step:1,max:6}),React.createElement(k.RangeControl,{label:(0,B.__)("Rows","woolentor"),value:a,onChange:function(e){return n({rows:e})},min:1,step:1,max:20}),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Tab","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:l,onChange:function(){return n({productTab:!l})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Slider","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:i,onChange:function(){return n({slider:!i})}})))),React.createElement(k.PanelBody,{title:(0,B.__)("Query Options","woolentor"),initialOpen:!1},React.createElement(k.SelectControl,{label:(0,B.__)("Filter By","woolentor"),value:c,options:[{label:(0,B.__)("Recent Products","woolentor"),value:"recent"},{label:(0,B.__)("Featured Products","woolentor"),value:"featured"},{label:(0,B.__)("Best Selling Products","woolentor"),value:"best_selling"},{label:(0,B.__)("Sale Products","woolentor"),value:"sale"},{label:(0,B.__)("Top Rated Products","woolentor"),value:"top_rated"},{label:(0,B.__)("Mixed order Products","woolentor"),value:"mixed_order"}],onChange:function(e){return n({productFilterType:e})}}),React.createElement(k.RangeControl,{label:(0,B.__)("Number Of Products","woolentor"),value:s,onChange:function(e){return n({perPage:e})},min:1,step:1,max:1e3}),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Custom Order","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:u,onChange:function(){return n({customOrder:!u})}}))),React.createElement(ce,{title:(0,B.__)("Product Categories","woolentor"),attributesKey:"selectedCategories",setAttributes:n,selectedTaxonomies:p,type:"multiple"}),u?React.createElement(React.Fragment,null,React.createElement(k.SelectControl,{label:(0,B.__)("Order","woolentor"),value:m,options:[{label:(0,B.__)("Descending","woolentor"),value:"DESC"},{label:(0,B.__)("Ascending","woolentor"),value:"ASC"}],onChange:function(e){return n({order:e})}}),React.createElement(k.SelectControl,{label:(0,B.__)("Orderby","woolentor"),value:d,options:[{label:(0,B.__)("None","woolentor"),value:"none"},{label:(0,B.__)("ID","woolentor"),value:"ID"},{label:(0,B.__)("Date","woolentor"),value:"date"},{label:(0,B.__)("Name","woolentor"),value:"name"},{label:(0,B.__)("Title","woolentor"),value:"title"},{label:(0,B.__)("Comment count","woolentor"),value:"comment_count"},{label:(0,B.__)("Random","woolentor"),value:"rand"}],onChange:function(e){return n({orderBy:e})}})):""),1==i&&React.createElement(k.PanelBody,{title:(0,B.__)("Slider Options","woolentor"),initialOpen:!1},React.createElement(k.RangeControl,{label:(0,B.__)("Slider Items","woolentor"),value:f,onChange:function(e){return n({slitems:e})},min:1,step:1,max:10}),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Slider Arrow","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:b,onChange:function(){return n({slarrows:!b})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Slider dots","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:g,onChange:function(){return n({sldots:!g})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Pause on Hover?","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:y,onChange:function(){return n({slpauseOnHover:!y})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Slider auto play","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ToggleControl,{checked:h,onChange:function(){return n({slautolay:!h})}}))),React.createElement(k.RangeControl,{label:(0,B.__)("Autoplay speed","woolentor"),value:w,onChange:function(e){return n({slautoplaySpeed:e})},min:1,step:1,max:1e5}),React.createElement(k.RangeControl,{label:(0,B.__)("Autoplay animation speed","woolentor"),value:v,onChange:function(e){return n({slanimationSpeed:e})},min:1,step:1,max:1e5}),React.createElement(k.RangeControl,{label:(0,B.__)("Slider item to scroll","woolentor"),value:_,onChange:function(e){return n({slscrollItem:e})},min:1,step:1,max:1e5}),React.createElement("h3",null,(0,B.__)("Tablet Screen options","woolentor")),React.createElement(k.RangeControl,{label:(0,B.__)("Slider Items","woolentor"),value:E,onChange:function(e){return n({sltabletDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(k.RangeControl,{label:(0,B.__)("Slider item to scroll","woolentor"),value:R,onChange:function(e){return n({sltabletScrollColumns:e})},min:1,step:1,max:8}),React.createElement(k.RangeControl,{label:(0,B.__)("Tablet Screen Resolution","woolentor"),value:O,onChange:function(e){return n({sltabletWidth:e})},min:1,step:1,max:1500}),React.createElement("h3",null,(0,B.__)("Mobile Phone Screen options","woolentor")),React.createElement(k.RangeControl,{label:(0,B.__)("Slider Items","woolentor"),value:C,onChange:function(e){return n({slMobileDisplayColumns:e})},min:1,step:1,max:8}),React.createElement(k.RangeControl,{label:(0,B.__)("Slider item to scroll","woolentor"),value:S,onChange:function(e){return n({slMobileScrollColumns:e})},min:1,step:1,max:8}),React.createElement(k.RangeControl,{label:(0,B.__)("Mobile Screen Resolution","woolentor"),value:P,onChange:function(e){return n({slMobileWidth:e})},min:1,step:1,max:1500}))),"styles"===t.name&&React.createElement(React.Fragment,null,React.createElement(k.PanelBody,{title:(0,B.__)("Content","woolentor"),initialOpen:!1},React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Alignment","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ButtonGroup,{className:"woolentor-alignment-btn-group"},Se.map((function(e){return React.createElement(k.Button,{isPrimary:o.contentAlign===e.value,isSecondary:o.contentAlign!==e.value,onClick:function(){return n({contentAlign:o.contentAlign===e.value?"":e.value})}},e.label)})))))),React.createElement(k.PanelBody,{title:(0,B.__)("Title","woolentor"),initialOpen:!1},React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.titleColor,onChange:function(e){return n({titleColor:e})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Hover Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.titleHoverColor,onChange:function(e){return n({titleHoverColor:e})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Alignment","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ButtonGroup,{className:"woolentor-alignment-btn-group"},Se.map((function(e){return React.createElement(k.Button,{isPrimary:o.titleAlign===e.value,isSecondary:o.titleAlign!==e.value,onClick:function(){return n({titleAlign:o.titleAlign===e.value?"":e.value})}},e.label)})))))),React.createElement(k.PanelBody,{title:(0,B.__)("Price","woolentor"),initialOpen:!1},React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.priceColor,onChange:function(e){return n({priceColor:e})}})))),React.createElement(k.PanelBody,{title:(0,B.__)("Action Button","woolentor"),initialOpen:!1},React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.actionBtnColor,onChange:function(e){return n({actionBtnColor:e})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Background Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.actionBtnBgColor,onChange:function(e){return n({actionBtnBgColor:e})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Hover Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.actionBtnHoverColor,onChange:function(e){return n({actionBtnHoverColor:e})}}))),React.createElement("div",{className:"woolentor-field-section"},React.createElement("label",null,(0,B.__)("Hover Background Color","woolentor")),React.createElement("div",{className:"woolentor-field-wrap"},React.createElement(k.ColorPalette,{value:o.actionBtnHoverBgColor,onChange:function(e){return n({actionBtnHoverBgColor:e})}}))))),"advanced"===t.name&&React.createElement(React.Fragment,null,React.createElement(k.PanelBody,{title:(0,B.__)("Dimension","woolentor"),initialOpen:!1},React.createElement(me,{lavel:(0,B.__)("Padding","woolentor"),dimensions:o.areaPadding,attributesKey:"areaPadding",setAttributes:n})),React.createElement(k.PanelBody,{title:(0,B.__)("Background","woolentor"),initialOpen:!1},React.createElement(Re,{title:(0,B.__)("Background Image","woolentor"),attributesKey:"areaBGProperty",setAttributes:n,bgProperty:o.areaBGProperty}))))}))))}}],o&&Ne(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),l}(Q.Component);const Te=ze;function Ae(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return void 0!==e&&""!=e?"".concat(t,": ").concat(e).concat(o,";"):""}function Me(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=e||{},r="";if(""!=n.top||""!=n.right||""!=n.bottom||""!=n.left){var a=n.unit?n.unit:"px";r=n.top?r+n.top+a+" ":"0"+a+" ",r=n.right?r+n.right+a+" ":"0"+a+" ",r=n.bottom?r+n.bottom+a+" ":"0"+a+" ",r=n.left?r+n.left+a+" ":"0"+a+" "}var l=Ae(r,t,o);return""!=l?l:""}function Ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=e||{},n="";return o.imageUrl&&(n+=Ae("url("+o.imageUrl+")","background-image",t)),o.position&&(n+=Ae(o.position,"background-position",t)),o.attachment&&(n+=Ae(o.attachment,"background-attachment",t)),o.repeat&&(n+=Ae(o.repeat,"background-repeat",t)),o.size&&(n+=Ae(o.size,"background-size",t)),n}var We=o(184),Ke=o.n(We);const De=window.wp.apiFetch;var He=o.n(De);const Fe=window.wp.url;var Ge=o(66),qe=o(864),Ue=o(196),Ve=o.n(Ue),Qe=o(774),Ye=o.n(Qe);const Je=function(e){function t(e,n,c,s,m){for(var p,f,b,g,v,E=0,R=0,O=0,C=0,S=0,j=0,z=b=p=0,A=0,M=0,I=0,W=0,K=c.length,D=K-1,H="",F="",G="",q="";A<K;){if(f=c.charCodeAt(A),A===D&&0!==R+C+O+E&&(0!==R&&(f=47===R?10:47),C=O=E=0,K++,D++),0===R+C+O+E){if(A===D&&(0<M&&(H=H.replace(d,"")),0<H.trim().length)){switch(f){case 32:case 9:case 59:case 13:case 10:break;default:H+=c.charAt(A)}f=59}switch(f){case 123:for(p=(H=H.trim()).charCodeAt(0),b=1,W=++A;A<K;){switch(f=c.charCodeAt(A)){case 123:b++;break;case 125:b--;break;case 47:switch(f=c.charCodeAt(A+1)){case 42:case 47:e:{for(z=A+1;z<D;++z)switch(c.charCodeAt(z)){case 47:if(42===f&&42===c.charCodeAt(z-1)&&A+2!==z){A=z+1;break e}break;case 10:if(47===f){A=z+1;break e}}A=z}}break;case 91:f++;case 40:f++;case 34:case 39:for(;A++<D&&c.charCodeAt(A)!==f;);}if(0===b)break;A++}if(b=c.substring(W,A),0===p&&(p=(H=H.replace(u,"").trim()).charCodeAt(0)),64===p){switch(0<M&&(H=H.replace(d,"")),f=H.charCodeAt(1)){case 100:case 109:case 115:case 45:M=n;break;default:M=L}if(W=(b=t(n,M,b,f,m+1)).length,0<x&&(v=i(3,b,M=o(L,H,I),n,B,P,W,f,m,s),H=M.join(""),void 0!==v&&0===(W=(b=v.trim()).length)&&(f=0,b="")),0<W)switch(f){case 115:H=H.replace(_,l);case 100:case 109:case 45:b=H+"{"+b+"}";break;case 107:b=(H=H.replace(y,"$1 $2"))+"{"+b+"}",b=1===N||2===N&&a("@"+b,3)?"@-webkit-"+b+"@"+b:"@"+b;break;default:b=H+b,112===s&&(F+=b,b="")}else b=""}else b=t(n,o(n,H,I),b,s,m+1);G+=b,b=I=M=z=p=0,H="",f=c.charCodeAt(++A);break;case 125:case 59:if(1<(W=(H=(0<M?H.replace(d,""):H).trim()).length))switch(0===z&&(p=H.charCodeAt(0),45===p||96<p&&123>p)&&(W=(H=H.replace(" ",":")).length),0<x&&void 0!==(v=i(1,H,n,e,B,P,F.length,s,m,s))&&0===(W=(H=v.trim()).length)&&(H="\0\0"),p=H.charCodeAt(0),f=H.charCodeAt(1),p){case 0:break;case 64:if(105===f||99===f){q+=H+c.charAt(A);break}default:58!==H.charCodeAt(W-1)&&(F+=r(H,p,f,H.charCodeAt(2)))}I=M=z=p=0,H="",f=c.charCodeAt(++A)}}switch(f){case 13:case 10:47===R?R=0:0===1+p&&107!==s&&0<H.length&&(M=1,H+="\0"),0<x*T&&i(0,H,n,e,B,P,F.length,s,m,s),P=1,B++;break;case 59:case 125:if(0===R+C+O+E){P++;break}default:switch(P++,g=c.charAt(A),f){case 9:case 32:if(0===C+E+R)switch(S){case 44:case 58:case 9:case 32:g="";break;default:32!==f&&(g=" ")}break;case 0:g="\\0";break;case 12:g="\\f";break;case 11:g="\\v";break;case 38:0===C+R+E&&(M=I=1,g="\f"+g);break;case 108:if(0===C+R+E+k&&0<z)switch(A-z){case 2:112===S&&58===c.charCodeAt(A-3)&&(k=S);case 8:111===j&&(k=j)}break;case 58:0===C+R+E&&(z=A);break;case 44:0===R+O+C+E&&(M=1,g+="\r");break;case 34:case 39:0===R&&(C=C===f?0:0===C?f:C);break;case 91:0===C+R+O&&E++;break;case 93:0===C+R+O&&E--;break;case 41:0===C+R+E&&O--;break;case 40:0===C+R+E&&(0===p&&(2*S+3*j==533||(p=1)),O++);break;case 64:0===R+O+C+E+z+b&&(b=1);break;case 42:case 47:if(!(0<C+E+O))switch(R){case 0:switch(2*f+3*c.charCodeAt(A+1)){case 235:R=47;break;case 220:W=A,R=42}break;case 42:47===f&&42===S&&W+2!==A&&(33===c.charCodeAt(W+2)&&(F+=c.substring(W,A+1)),g="",R=0)}}0===R&&(H+=g)}j=S,S=f,A++}if(0<(W=F.length)){if(M=n,0<x&&void 0!==(v=i(2,F,M,e,B,P,W,s,m,s))&&0===(F=v).length)return q+F+G;if(F=M.join(",")+"{"+F+"}",0!=N*k){switch(2!==N||a(F,2)||(k=0),k){case 111:F=F.replace(w,":-moz-$1")+F;break;case 112:F=F.replace(h,"::-webkit-input-$1")+F.replace(h,"::-moz-$1")+F.replace(h,":-ms-input-$1")+F}k=0}}return q+F+G}function o(e,t,o){var r=t.trim().split(b);t=r;var a=r.length,l=e.length;switch(l){case 0:case 1:var i=0;for(e=0===l?"":e[0]+" ";i<a;++i)t[i]=n(e,t[i],o).trim();break;default:var c=i=0;for(t=[];i<a;++i)for(var s=0;s<l;++s)t[c++]=n(e[s]+" ",r[i],o).trim()}return t}function n(e,t,o){var n=t.charCodeAt(0);switch(33>n&&(n=(t=t.trim()).charCodeAt(0)),n){case 38:return t.replace(g,"$1"+e.trim());case 58:return e.trim()+t.replace(g,"$1"+e.trim());default:if(0<1*o&&0<t.indexOf("\f"))return t.replace(g,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function r(e,t,o,n){var l=e+";",i=2*t+3*o+4*n;if(944===i){e=l.indexOf(":",9)+1;var c=l.substring(e,l.length-1).trim();return c=l.substring(0,e).trim()+c+";",1===N||2===N&&a(c,1)?"-webkit-"+c+c:c}if(0===N||2===N&&!a(l,1))return l;switch(i){case 1015:return 97===l.charCodeAt(10)?"-webkit-"+l+l:l;case 951:return 116===l.charCodeAt(3)?"-webkit-"+l+l:l;case 963:return 110===l.charCodeAt(5)?"-webkit-"+l+l:l;case 1009:if(100!==l.charCodeAt(4))break;case 969:case 942:return"-webkit-"+l+l;case 978:return"-webkit-"+l+"-moz-"+l+l;case 1019:case 983:return"-webkit-"+l+"-moz-"+l+"-ms-"+l+l;case 883:if(45===l.charCodeAt(8))return"-webkit-"+l+l;if(0<l.indexOf("image-set(",11))return l.replace(S,"$1-webkit-$2")+l;break;case 932:if(45===l.charCodeAt(4))switch(l.charCodeAt(5)){case 103:return"-webkit-box-"+l.replace("-grow","")+"-webkit-"+l+"-ms-"+l.replace("grow","positive")+l;case 115:return"-webkit-"+l+"-ms-"+l.replace("shrink","negative")+l;case 98:return"-webkit-"+l+"-ms-"+l.replace("basis","preferred-size")+l}return"-webkit-"+l+"-ms-"+l+l;case 964:return"-webkit-"+l+"-ms-flex-"+l+l;case 1023:if(99!==l.charCodeAt(8))break;return"-webkit-box-pack"+(c=l.substring(l.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+l+"-ms-flex-pack"+c+l;case 1005:return p.test(l)?l.replace(m,":-webkit-")+l.replace(m,":-moz-")+l:l;case 1e3:switch(t=(c=l.substring(13).trim()).indexOf("-")+1,c.charCodeAt(0)+c.charCodeAt(t)){case 226:c=l.replace(v,"tb");break;case 232:c=l.replace(v,"tb-rl");break;case 220:c=l.replace(v,"lr");break;default:return l}return"-webkit-"+l+"-ms-"+c+l;case 1017:if(-1===l.indexOf("sticky",9))break;case 975:switch(t=(l=e).length-10,i=(c=(33===l.charCodeAt(t)?l.substring(0,t):l).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|c.charCodeAt(7))){case 203:if(111>c.charCodeAt(8))break;case 115:l=l.replace(c,"-webkit-"+c)+";"+l;break;case 207:case 102:l=l.replace(c,"-webkit-"+(102<i?"inline-":"")+"box")+";"+l.replace(c,"-webkit-"+c)+";"+l.replace(c,"-ms-"+c+"box")+";"+l}return l+";";case 938:if(45===l.charCodeAt(5))switch(l.charCodeAt(6)){case 105:return c=l.replace("-items",""),"-webkit-"+l+"-webkit-box-"+c+"-ms-flex-"+c+l;case 115:return"-webkit-"+l+"-ms-flex-item-"+l.replace(R,"")+l;default:return"-webkit-"+l+"-ms-flex-line-pack"+l.replace("align-content","").replace(R,"")+l}break;case 973:case 989:if(45!==l.charCodeAt(3)||122===l.charCodeAt(4))break;case 931:case 953:if(!0===C.test(e))return 115===(c=e.substring(e.indexOf(":")+1)).charCodeAt(0)?r(e.replace("stretch","fill-available"),t,o,n).replace(":fill-available",":stretch"):l.replace(c,"-webkit-"+c)+l.replace(c,"-moz-"+c.replace("fill-",""))+l;break;case 962:if(l="-webkit-"+l+(102===l.charCodeAt(5)?"-ms-"+l:"")+l,211===o+n&&105===l.charCodeAt(13)&&0<l.indexOf("transform",10))return l.substring(0,l.indexOf(";",27)+1).replace(f,"$1-webkit-$2")+l}return l}function a(e,t){var o=e.indexOf(1===t?":":"{"),n=e.substring(0,3!==t?o:10);return o=e.substring(o+1,e.length-1),z(2!==t?n:n.replace(O,"$1"),o,t)}function l(e,t){var o=r(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return o!==t+";"?o.replace(E," or ($1)").substring(4):"("+t+")"}function i(e,t,o,n,r,a,l,i,c,u){for(var d,m=0,p=t;m<x;++m)switch(d=j[m].call(s,e,p,o,n,r,a,l,i,c,u)){case void 0:case!1:case!0:case null:break;default:p=d}if(p!==t)return p}function c(e){return void 0!==(e=e.prefix)&&(z=null,e?"function"!=typeof e?N=1:(N=2,z=e):N=0),c}function s(e,o){var n=e;if(33>n.charCodeAt(0)&&(n=n.trim()),n=[n],0<x){var r=i(-1,o,n,n,B,P,0,0,0,0);void 0!==r&&"string"==typeof r&&(o=r)}var a=t(L,n,o,0,0);return 0<x&&void 0!==(r=i(-2,a,n,n,B,P,a.length,0,0,0))&&(a=r),k=0,P=B=1,a}var u=/^\0+/g,d=/[\0\r\f]/g,m=/: */g,p=/zoo|gra/,f=/([,: ])(transform)/g,b=/,\r+?/g,g=/([\t\r\n ])*\f?&/g,y=/@(k\w+)\s*(\S*)\s*/,h=/::(place)/g,w=/:(read-only)/g,v=/[svh]\w+-[tblr]{2}/,_=/\(\s*(.*)\s*\)/g,E=/([\s\S]*?);/g,R=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,C=/stretch|:\s*\w+\-(?:conte|avail)/,S=/([^-])(image-set\()/,P=1,B=1,k=0,N=1,L=[],j=[],x=0,z=null,T=0;return s.use=function e(t){switch(t){case void 0:case null:x=j.length=0;break;default:if("function"==typeof t)j[x++]=t;else if("object"==typeof t)for(var o=0,n=t.length;o<n;++o)e(t[o]);else T=0|!!t}return e},s.set=c,void 0!==e&&c(e),s},Xe={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var Ze=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/;const $e=function(e){var t=Object.create(null);return function(e){return void 0===t[e]&&(t[e]=(o=e,Ze.test(o)||111===o.charCodeAt(0)&&110===o.charCodeAt(1)&&o.charCodeAt(2)<91)),t[e];var o}}();var et=o(679),tt=o.n(et);function ot(){return(ot=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e}).apply(this,arguments)}var nt=function(e,t){for(var o=[e[0]],n=0,r=t.length;n<r;n+=1)o.push(t[n],e[n+1]);return o},rt=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!(0,qe.typeOf)(e)},at=Object.freeze([]),lt=Object.freeze({});function it(e){return"function"==typeof e}function ct(e){return e.displayName||e.name||"Component"}function st(e){return e&&"string"==typeof e.styledComponentId}var ut="undefined"!=typeof process&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",dt="undefined"!=typeof window&&"HTMLElement"in window,mt=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&"false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY);function pt(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(o.length>0?" Args: "+o.join(", "):""))}var ft=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,o=0;o<e;o++)t+=this.groupSizes[o];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var o=this.groupSizes,n=o.length,r=n;e>=r;)(r<<=1)<0&&pt(16,""+e);this.groupSizes=new Uint32Array(r),this.groupSizes.set(o),this.length=r;for(var a=n;a<r;a++)this.groupSizes[a]=0}for(var l=this.indexOfGroup(e+1),i=0,c=t.length;i<c;i++)this.tag.insertRule(l,t[i])&&(this.groupSizes[e]++,l++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],o=this.indexOfGroup(e),n=o+t;this.groupSizes[e]=0;for(var r=o;r<n;r++)this.tag.deleteRule(o)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var o=this.groupSizes[e],n=this.indexOfGroup(e),r=n+o,a=n;a<r;a++)t+=this.tag.getRule(a)+"/*!sc*/\n";return t},e}(),bt=new Map,gt=new Map,yt=1,ht=function(e){if(bt.has(e))return bt.get(e);for(;gt.has(yt);)yt++;var t=yt++;return bt.set(e,t),gt.set(t,e),t},wt=function(e){return gt.get(e)},vt=function(e,t){t>=yt&&(yt=t+1),bt.set(e,t),gt.set(t,e)},_t="style["+ut+'][data-styled-version="5.3.5"]',Et=new RegExp("^"+ut+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),Rt=function(e,t,o){for(var n,r=o.split(","),a=0,l=r.length;a<l;a++)(n=r[a])&&e.registerName(t,n)},Ot=function(e,t){for(var o=(t.textContent||"").split("/*!sc*/\n"),n=[],r=0,a=o.length;r<a;r++){var l=o[r].trim();if(l){var i=l.match(Et);if(i){var c=0|parseInt(i[1],10),s=i[2];0!==c&&(vt(s,c),Rt(e,s,i[3]),e.getTag().insertRules(c,n)),n.length=0}else n.push(l)}}},Ct=function(){return"undefined"!=typeof window&&void 0!==window.__webpack_nonce__?window.__webpack_nonce__:null},St=function(e){var t=document.head,o=e||t,n=document.createElement("style"),r=function(e){for(var t=e.childNodes,o=t.length;o>=0;o--){var n=t[o];if(n&&1===n.nodeType&&n.hasAttribute(ut))return n}}(o),a=void 0!==r?r.nextSibling:null;n.setAttribute(ut,"active"),n.setAttribute("data-styled-version","5.3.5");var l=Ct();return l&&n.setAttribute("nonce",l),o.insertBefore(n,a),n},Pt=function(){function e(e){var t=this.element=St(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,o=0,n=t.length;o<n;o++){var r=t[o];if(r.ownerNode===e)return r}pt(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),Bt=function(){function e(e){var t=this.element=St(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var o=document.createTextNode(t),n=this.nodes[e];return this.element.insertBefore(o,n||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),kt=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),Nt=dt,Lt={isServer:!dt,useCSSOMInjection:!mt},jt=function(){function e(e,t,o){void 0===e&&(e=lt),void 0===t&&(t={}),this.options=ot({},Lt,{},e),this.gs=t,this.names=new Map(o),this.server=!!e.isServer,!this.server&&dt&&Nt&&(Nt=!1,function(e){for(var t=document.querySelectorAll(_t),o=0,n=t.length;o<n;o++){var r=t[o];r&&"active"!==r.getAttribute(ut)&&(Ot(e,r),r.parentNode&&r.parentNode.removeChild(r))}}(this))}e.registerId=function(e){return ht(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,o){return void 0===o&&(o=!0),new e(ot({},this.options,{},t),this.gs,o&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(o=(t=this.options).isServer,n=t.useCSSOMInjection,r=t.target,e=o?new kt(r):n?new Pt(r):new Bt(r),new ft(e)));var e,t,o,n,r},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(ht(e),this.names.has(e))this.names.get(e).add(t);else{var o=new Set;o.add(t),this.names.set(e,o)}},t.insertRules=function(e,t,o){this.registerName(e,t),this.getTag().insertRules(ht(e),o)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(ht(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),o=t.length,n="",r=0;r<o;r++){var a=wt(r);if(void 0!==a){var l=e.names.get(a),i=t